/*********************************************
#-> °ø¹éÁ¦°Å
*********************************************/
String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.ltrim = function()
{
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function()
{
	return this.replace(/\s+$/,"");
}

/**
* string String::cut(int len)
* ±ÛÀÚ¸¦ ¾Õ¿¡¼­ºÎÅÍ ¿øÇÏ´Â ¹ÙÀÌÆ®¸¸Å­ Àß¶ó ¸®ÅÏÇÕ´Ï´Ù.
* ÇÑ±ÛÀÇ °æ¿ì 2¹ÙÀÌÆ®·Î °è»êÇÏ¸ç, ±ÛÀÚ Áß°£¿¡¼­ Àß¸®Áö ¾Ê½À´Ï´Ù.
*/
String.prototype.cut = function(len)
{
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++)
	{
		l += (str.charCodeAt(i) > 128) ? 2 : 1;
		if (l > len) return str.substring(0,i) + "...";
	}

	return str;
}

/**
* bool String::bytes(void)
* ÇØ´ç½ºÆ®¸µÀÇ ¹ÙÀÌÆ®´ÜÀ§ ±æÀÌ¸¦ ¸®ÅÏÇÕ´Ï´Ù. (±âÁ¸ÀÇ length ¼Ó¼ºÀº 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ ÇÑ±ÛÀÚ·Î °£ÁÖÇÕ´Ï´Ù)
*/
String.prototype.bytes = function()
{
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;

	return l;
}

/*
	³¯Â¥ Ã¼Å© ÇÔ¼ö
	pattern : yyyy-mm-dd
*/
var checkDate = function(val, msg)
{
	var date_pattern = new RegExp(/^19|20[0-9]{2}-0|1[0-9]-[0-3][0-9]$/);

	if(val.match(date_pattern))
	{
		var date_array = val.split('-');
		var year = date_array[0];
		// Attention! Javascript consider months in the range 0 - 11
		var month = date_array[1] - 1;
		var day = date_array[2];

		// Date °´Ã¼ »ý¼º
		source_date = new Date(year, month, day);

		if(year != source_date.getFullYear() || month != source_date.getMonth() || day != source_date.getDate())
		{
			alert('Incorrect Date . Please enter corrent Date Format . (ex : yyyy-mm-dd)');
			return false;
		}

		return true;
	}
	else
	{
		alert(msg);
		return false;
	}
}

// ÄÞ¸¶¼³Á¤
var setComma = function(str)
{
	str = ""+str+"";
	var retValue = "";
	for(k=0; k<str.length; k++)
	{
		if(k > 0 && (k%3)==0)
			retValue = str.charAt(str.length - k -1) + "," + retValue;
		else
			retValue = str.charAt(str.length - k -1) + retValue;
	}
	return retValue;
}

// ÄÞ¸¶Á¦°Å
var removeComma = function(str)
{
    return str.replace(/,/gi,"");
}

//
function isValidEmail(email)
{
	// ÀÌ¸ÞÀÏ ÁÖ¼Ò¸¦ ÆÇº°ÇÏ±â À§ÇÑ Á¤±Ô½Ä
	var format = /^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+\.[0-9a-zA-Z-]+$/;
	
	// ÀÎÀÚ email¸¦ Á¤±Ô½Ä format À¸·Î °Ë»ö
	if (email.search(format) != -1)
	{
		// Á¤±Ô½Ä°ú ÀÏÄ¡ÇÏ´Â ¹®ÀÚ°¡ ÀÖÀ¸¸é true
		return true;
	}
	else
	{
		// ¾øÀ¸¸é false
		return false;
	}
}

function MultiCheckValue(target, chk_char, max_len)
{
	if(target.length >= 1)
	{
		for(var i = 0; i < chk_char.length; i++)
		{
			if(target.indexOf(chk_char.charAt(i)) >= 0)
				return false;
		}
	}
	return true;
}

function MultinoncheckValue(target, chk_char, max_len)
{
	if(chk_char.length >= 1)
	{
		for(var i = 0; i < target.length; i++)
		{
			if(chk_char.indexOf(target.substring(i, i+1)) < 0)
				return true;
		}
	}
	return false;
}

function multi_form_check_domain(domain_val)
{
	var temp=0;
	var char_length = domain_val.length;
	var domain_name	= new Array();
	var special_4 = ' ~!@#$%^&*()_=+|\\{}[];"\'<>?\/';	// : ,
	var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var numeric = '1234567890';

	var han_dom_tld = new Array(".com", ".net" , ".org", ".kr", ".biz", ".info");
	var eng_dom_tld = new Array(".com", ".net" , ".org", ".kr", ".co.kr", ".info", ".biz", ".cn", ".com.cn", ".net.cn", ".cc", ".tv", ".name", ".asia", ".pe.kr", ".re.kr", ".ne.kr", ".seoul.kr", ".busan.kr", ".daegu.kr", ".incheon.kr", ".gwangju.kr", ".daejeon.kr", ".ulsan.kr", ".gyeonggi.kr", ".gangwon.kr", ".chungbuk.kr", ".chungnam.kr", ".jeonbuk.kr", ".jeonnam.kr", ".gyeongbuk.kr", ".gyeongnam.kr", ".jeju.kr", ".go.kr", ".or.kr", ".ac.kr", ".hs.kr", ".ms.kr", ".es.kr", ".sc.kr", ".kg.kr");

	if(char_length == 0)
	{
		window.alert('Enter a domain name.');
		return false;
	}
	else
	{
		var total_enter = 0;
		var start_at = 0;

		for(var i = 0, j = 0; i <= char_length; i++)
		{
			var one_char = domain_val.charAt(i);

			if(one_char == '\n')
			{
				domain_name[j++] = domain_val.substring(start_at, i-1);
				start_at = i+1;
			}
			else if(i == char_length)
				domain_name[j++] = domain_val.substring(start_at, i);
		}

		for(i = 0, valid_domain = 0; i < domain_name.length; i++)
		{
			valid_check = false;
			domain_name[i] = domain_name[i].replace(/(^\s*)|(\s*$)/g, "");
			// °ø¹éÀ» Á¦°ÅÇØÁØ´Ù.
			domain_name[i] = domain_name[i].trim();

			if(domain_name[i] != null && domain_name[i].length > 0)
			{
				if (domain_name[i].charAt(0) == '.') {
					window.alert("Not begin with '.(period)'.");
					return false;
				}

				if (domain_name[i].charAt(0) == '-') {
					window.alert("Not begin with '-(hypen)'.");
					return false;
				}

				if(domain_name[i].charAt(domain_name[i].length-1) == '-') {
					window.alert("Not  '-(hypen)' at the end of a domain name.");
					return false;
				}

				if(MultiCheckValue(domain_name[i], special_4, 67) == false) {
					window.alert(domain_name[i] + " Not allowed value in a domain name.");
					return false;
				}

				var domain_kind = domain_name[i].substr(domain_name[i].indexOf('.')).toLowerCase();
				var origin_domainname = domain_name[i].substr(0, domain_name[i].length - domain_kind.length);

				if(origin_domainname.length < 1) {
					window.alert(domain_name[i] + 'Wrong domain name format. Check it out and Retry please.');
					return false;
				}
				else {
					if(origin_domainname.charAt(origin_domainname.length-1) == '-') {
						window.alert("Not  '-(hypen)' at the end of a domain name.");
						return false;
					}
				}

				if (MultinoncheckValue(domain_name[i], numeric+alpha+'.-', 67) == true)
				{				
					// ÇÑ±Û µµ¸ÞÀÎ
					if(origin_domainname.length < 2 || origin_domainname.length > 17) {
						alert ("Minimum is 2 charaters and Maximum is 17 characters in a Multilingual domain.");
						return false;
					}

					for(j = 0; j < han_dom_tld.length; j++)
					{
						if(domain_kind == han_dom_tld[j])
							valid_check = true;
					}

					if(valid_check == false)
					{
						window.alert(domain_name[i] + " Korean Language domain is allowed only for .kr, .com, .net, .org, .biz, .info");
						return false;
					}
				}
				else
				{
					// ¿µ¹® µµ¸ÞÀÎ
					if(origin_domainname.length < 1 || origin_domainname.length > 63) {
						alert ("Minimum is 2 charaters and Maximum is 63 characters in an ASCII domain");
						return false;
					}

					for(j = 0; j < eng_dom_tld.length; j++)
					{

						if(domain_kind == eng_dom_tld[j])
							valid_check = true;
					}

					if(valid_check == false){
						 alert(domain_name[i] + " The domain is not the object of registration. Please try again.");
						return false;
					}
				}

				valid_domain++;
			}
		}

		if(valid_domain > 20){
			window.alert("You entered  " + valid_domain + " domain names.\nMaximum 20 domain names are allowed for searching at a time.");
			return false;
		}
	}

	return true;
}

var onSupportCheck = function()
{
	var f = document.frmSupport;

	if (f.name.value.trim().length == 0)
	{
		alert("Enter a Name.");
		f.name.focus();
		return false;
	}

	if (f.email.value.trim().length == 0)
	{
		alert("Enter an Email.");
		f.email.focus();
		return false;
	}

	if (f.domain_name.value.trim().length == 0)
	{
		alert("Enter a Domain Name related to subject.");
		f.domain_name.focus();
		return false;
	}

	if (f.subject.value.trim().length == 0)
	{
		alert("Enter a Subject.");
		f.subject.focus();
		return false;
	}

	if (f.content.value.trim().length == 0)
	{
		alert("Enter a Message.");
		f.content.focus();
		return false;
	}

	return true;
}

var onPartnerCheck = function ()
{
	var f = document.frmPartner;
	var reg_email = /^[\w\-]+@(?:(?:[\w\-]{2,}\.)+[a-zA-Z]{2,})$/;

	if (f.id.value.trim().length == 0)
	{
		alert("Enter an ID.");
		f.id.focus();
		return false;
	}
	if (f.passwd.value.trim().length == 0)
	{
		alert("Enter a Password.");
		f.passwd.focus();
		return false;
	}
	if (f.applicant.value.trim().length == 0)
	{
		alert("Enter a Applicant.");
		f.applicant.focus();
		return false;
	}
	if (f.company_name.value.trim().length == 0)
	{
		alert("Enter a Company Name.");
		f.company_name.focus();
		return false;
	}
	if (f.tel.value.trim().length == 0)
	{
		alert("Enter a Tel.");
		f.tel.focus();
		return false;
	}
	if (f.email.value.trim().length == 0)
	{
		alert("Enter a Email.");
		f.email.focus();
		return false;
	}
	if ( !reg_email.test(f.email.value.trim()) )
	{
		alert("Incorrect Email Address Format.");
		f.email.focus();
		return false;
	}
	if (f.url.value.trim().length == 0)
	{
		alert("Enter a Web Site URL.");
		f.url.focus();
		return false;
	}
	if (f.addr1.value.trim().length == 0)
	{
		alert("Enter a Address.");
		f.addr1.focus();
		return false;
	}
	if (f.city.value.trim().length == 0)
	{
		alert("Enter a City.");
		f.city.focus();
		return false;
	}
	if (f.country.value.trim().length == 0)
	{
		alert("Enter a Country.");
		f.country.focus();
		return false;
	}

	return true;
}

var onBack = function ()
{
	document.frmConfirm.action = "partner02.php";
	document.frmConfirm.submit();
}

var onConfirm = function ()
{
	document.frmConfirm.action = "/eng_proc/kr_api_partner.php";
	document.frmConfirm.submit();
}
