<!--
//===========================================================
// 도메인 검색에 멀티프로세싱 도입 관련 javascript 함수
//===========================================================

function DOMAIN_CHECK(){
// 도메인 유효성 체크 및 검색페이지 연결
	var form = document.f1;
	var host = form.domain_name.value;

	//[1.1] 도메인명 유무
	host = host.toLowerCase();
	host = host.trim();
	if( host == null || host.trim() == "" ) {
		alert("도메인명을 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}
	else{
		if ( host.substr(0,4) == "www." || host.substr(0,4) == "WWW." )
		{
			host = host.replace("www.","").replace("WWW.","");
		}

		var dname = host.split(".");
		asize=dname.length;

		form.dom_name.value=dname[0];

		//[1.2] 도메인 유효성 채크
		if(asize<2 || !dname[1])
		{
			alert("도메인이 올바르지 않습니다. \n다시 입력해 주세요.");
			form.domain_name.focus();
			return false;
		}
		else{

			domain_type = "." + dname[asize-1];

			krstr = /[가-힣]/;
			if(!krstr.test(form.dom_name.value)){
				types = ".com|.net|.asia|.kr|.mobi|.eu|.in|.biz|.info|.org|.name|.ac|.tw|.tv|.cc|.cn";
				types_enable = ".jp|.to";

				types_buf = types.split("|");
				types_enable_buf = types_enable.split("|");
				types_check = 0;

				if (domain_type.trim() == "cn" ){
					//cn 도메인 (중문.cn)
					if(!DomainSearch_Cn(form)) return false;
				} else {
					//영문 도메인
					if(!DomainSearch_Eng(form)) return false;
				}

			 } else {
				//한글 도메인
				kor_types = ".com|.net|.org|.kr|.info|.biz|.한국";

				var kor_types_buf = kor_types.split("|");
				kor_types_check=0;
				for (var j = 0; j < kor_types_buf.length; j++)
				{
					if(domain_type.trim()==kor_types_buf[j].trim()){
						kor_types_check = 1;
					}
				}
				if(kor_types_check == 1){
					if(!DomainSearch_Kor(form)) return false;
				}
				else
				{
					alert("["+host+"]\n\n한글도메인을 지원하지 않는 타입입니다. \n다시 입력해 주세요.");
					form.domain_name.focus();
					return false;
				}
			}
		}
	}
	type = form.service_type.value;
	if( type == null || type.trim() == "" ) {
		alert("서비스를 선택하세요.");
		return false;
	}

	form.elements["domains[]"].value = host;
	submitFormMod(type);

}

function submitFormMod(type)
{
	if ( type == 'modify_ns' ) {
		document.f1.action = "/ns_service/ns_form.php";
	} else if ( type == 'dns' ) {
		document.f1.action = "/ns_service/dns_form.php";
	} else if ( type == 'mx' ) {
		document.f1.action = "/ns_service/mx_form.php";
	} else if ( type == 'cname' ) {
		document.f1.action = "/ns_service/cname_form.php";
	} else if ( type == 'host' ) {
		document.f1.action = "/ns_service/host_form.php";
	} else if ( type == 'spf' ) {
		document.f1.action = "/ns_service/spf_form.php";
	}
	document.f1.submit();
}


function trimString (str) {
       str = this != window? this : str;
       return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
String.prototype.trim = trimString;


// 영문도메인 유효성 체크
function DomainSearch_Eng(form)
{
	var eng_host = form.dom_name.value.toLowerCase();
	var strlength = eng_host.length;

	var str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-";
	var j=0,a=0;

	//[1.1] 도메인명 유무
	eng_host = eng_host.trim();
	if( eng_host == null || eng_host.trim() == "" ) {
		alert("도메인명을 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.2] 도메인길이 체크
	if(eng_host.length < 2 || eng_host.length > 63)
	{
		alert("도메인 이름은 최소 2자, 최대 63자까지 가능합니다.");
		form.domain_name.focus();
		return false;
	}

	//[1.3] 도메인명 유효 체크
	for(i=0;i<eng_host.length;i++)
	{
		temp = eng_host.charAt(i);

		if(temp == " ") {
			alert("유효하지 않은 도메인 이름입니다. \n도메인 이름은 공백을 포함할 수 없습니다. \n\n다시 입력해 주십시오!!");
			form.domain_name.focus();
			return false;
		}
		if(eng_host.value != "" && str.indexOf(temp) < 0)
		{
			alert("도메인 이름은 특수문자를 포함할 수 없습니다. \n\n다시 입력해 주십시오!!");
			form.domain_name.focus();
			return false;
		}
	}

	//[1.4] "-"  으로 시작하는 것 금지
	if( eng_host.indexOf("-") == 0 ) {
		alert("하이픈(-)으로 시작하는 도메인명은 등록하실 수 없습니다. \n다시 입력해주십시오.");
		form.domain_name.focus();
		return false;
	}

	//[1.5] "-"  으로 끝나는 것 금지
	if( eng_host.lastIndexOf("-") == (strlength-1) ) {
		alert("하이픈(-)으로 끝나는 도메인명은 등록하실 수 없습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.6] "bq--"  으로 시작하는 것 금지
	if( eng_host.indexOf("bq--") == 0 ) {
		alert("bq--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}

	//[1.7] "xn--"  으로 시작하는 것 금지
	if( eng_host.indexOf("xn--") == 0 ) {
		alert("xn--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}

	return true;
}

// 한글도메인 유효성 체크
function DomainSearch_Kor(form)
{
	var kor_host = form.dom_name.value;

	//[1.1] 도메인명 유무
	if( kor_host == null || kor_host.trim() == "" ) {
		alert("도메인명을 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.2] 도메인명 형식 체크
	var valid_dom = /^[가-힣a-zA-Z0-9\-]+$/;
	if(!valid_dom.test(kor_host)){
		alert("도메인 형식이 맞지 않습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}
	//[1.3] 길이 검사 : 최소 2자 - 17자 까지
	// 길이검사시 한글영문의 경우 영문을 1글자로 계산하게되면 안됨.
	// 한글한글자에 대해 영문은 0.5자로 계산하여 17자를 계산하도록함.

	var strlength = kor_host.length;
	junkyAlphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-";
	var strlength2 = 0; //한글포함한 경우의 길이계산을 위한 별도의 변수할당.
	for ( var i = 0; i < strlength; i++ ) {
		if ( junkyAlphabet.indexOf( kor_host.charAt(i) ) >= 0 ) {
			strlength2 = strlength2 + 0.5;
		} else {
			strlength2 = strlength2 + 1;
		}
	}

	if( strlength2 < 1 || strlength2 > 17 ) {
		alert("도메인명은 최소 2자에서 최대 17까지만 등록가능합니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.4] "-"  으로 시작하는 것 금지
	if( kor_host.indexOf("-") == 0 ) {
		alert("하이픈(-)으로 시작하는 도메인명은 등록하실 수 없습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.5] "-"  으로 끝나는 것 금지
	if( kor_host.lastIndexOf("-") == (strlength-1) ) {
		alert("하이픈(-)으로 끝나는 도메인명은 등록하실 수 없습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.6]"bq--"  으로 시작하는 것 금지
	if( kor_host.indexOf("bq--") == 0 ) {
		alert("bq--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}

	//[1.7] "xn--"  으로 시작하는 것 금지
	if( kor_host.indexOf("xn--") == 0 ) {
		alert("xn--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}
	return true;
}

// CN 도메인 유효성 체크 및 검색페이지 연결
function DomainSearch_Cn(form)
{
	var cn_host = form.dom_name.value;
	var strlength = cn_host.length;

	var str="`!@~#$%^&*()_+=|\.,;'";
	var j=0,a=0;

	//[1.1] 도메인명 유무
	cn_host = cn_host.trim();
	if( cn_host == null || cn_host.trim() == "" ) {
		alert("도메인명을 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.2] 도메인길이 체크
	if(cn_host.length < 2 || cn_host.length > 63)
	{
		alert("도메인 이름은 최소 2자, 최대 63자까지 가능합니다.");
		form.domain_name.focus();
		return false;
	}

	//[1.3] 도메인명 유효성 체크
	for(i=0;i<cn_host.length;i++)
	{
		temp = cn_host.charAt(i);

		if(temp == " ") {
			alert("도메인 이름은 공백을 포함할 수 없습니다. \n다시 입력해 주세요");
			form.domain_name.focus();
			return false;
		} else if(temp == ".") {
			alert("도메인 이름은 . 를 포함할 수 없습니다. \n다시 입력해 주세요");
			form.domain_name.focus();
			return false;
		}

		if( str.indexOf(temp) > 0)
		{
			alert("도메인 이름은 [ "+temp+"] 특수문자를 포함할 수 없습니다. \n다시 입력해 주세요");
			form.domain_name.focus();
			return false;
		}
	}

	//[1.4] "-"  으로 시작하는 것 금지
	if( cn_host.indexOf("-") == 0 ) {
		alert("하이픈(-)으로 시작하는 도메인명은 등록하실 수 없습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.5] "-"  으로 끝나는 것 금지
	if( cn_host.lastIndexOf("-") == (strlength-1) ) {
		alert("하이픈(-)으로 끝나는 도메인명은 등록하실 수 없습니다. \n다시 입력해 주세요.");
		form.domain_name.focus();
		return false;
	}

	//[1.6] "bq--"  으로 시작하는 것 금지
	if( cn_host.indexOf("bq--") == 0 ) {
		alert("bq--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}

	//[1.7] "xn--"  으로 시작하는 것 금지
	if( cn_host.indexOf("xn--") == 0 ) {
		alert("xn--으로 시작하는 도메인명은 예약어이므로 등록하실 수 없습니다. \n다시 입력해 주세요");
		form.domain_name.focus();
		return false;
	}

	return true;
}

function fGetXY (aTag){
  var oTmp = aTag;

  this.pt = new Object();
  this.pt.x = 0; this.pt.y = 0; this.pt.h = 0; this.pt.w = 0;

  do {
  	this.pt.x += oTmp.offsetLeft;
  	this.pt.y += oTmp.offsetTop;
	this.pt.h += oTmp.offsetHeight;
  	this.pt.w = oTmp.offsetWidth;
  	oTmp = oTmp.offsetParent;
  } while(oTmp.tagName!="BODY");

  return this.pt;
}
