﻿function getParameter(parameter) { 
	var loc = decodeURIComponent(location.search.substring(1, location.search.length));
	var param_value = false;
	var params = loc.split("&");
	for (i=0; i<params.length;i++) {
		param_name = params[i].substring(0,params[i].indexOf('='));
		if (param_name == parameter) {
				param_value = decodeURIComponent(params[i].substring(params[i].indexOf('=')+1));
		}
	}
	if (param_value) {
		return param_value;
	}
	else {
		return false; //Here determine return if no parameter is found
	}
}
function openWindow(url, target, w, h, scroll) {
	var popOption = "width="+w+"px, height="+h+"px, toolbar=0,location=0,status=0,menubar=0,scrollbars="+scroll+",resizable=0";
	window.open(url, target, popOption);
}

function formSubmit(formname, action) {
	$('#'+formname).attr("action", action);
	$('#'+formname).submit();
}
/*Email Format Checker
 * @param	email
 * @return true/false
 * */
function emilChk(email){
    var reg_email=/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$/;
    if(!reg_email.test(email)){
    	return false;
    }else{
    	return true;
    }
}
function emailChange(val, addrid) {
	var email = $("#" + addrid);
	if( val == "" ) {
		email.removeAttr("readonly");
		email.val("");
	}
	else {
		email.attr("readonly", "readonly");
		email.val(val);
	}
}
/* Change Format Phone Number
* 예)  02282342232 - 02-8234-2232
*   0312437845 - 031-124-7845
*   01071050616 - 010-7105-0616
* @param num
* @return
*/
function phone_format(num){
	num = num.replace(/[^0-9]/g,'');
	return num.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
}

/*
 * 전화번호 체크
 */
function phoneChk(num){
	var regex = /^\d{2,3}-\d{3,4}-\d{4}$/;
	var regex2 = /^\d{4}-\d{4}$/;
	if(regex.test(num)){
		return true;
	}else{		
		return regex2.test(num);
	}
};

/*
 * 한글 체크 
 * */
function CheckHangul(str) { 
    strarr = new Array(str.length); 
    schar = new Array('/','.','>','<',',','?','}','{',' ','\\','|','(',')','+','='); 
    flag = true; 
    for (i=0; i<str.length; i++) { 
        for (j=0; j<schar.length; j++) { 
            if (schar[j] ==str.charAt(i)) { 
            	return false;
            } 
        } 
        strarr[i] = str.charAt(i); 
        if ((strarr[i] >=0) && (strarr[i] <=9)) { 
        	return false;
        } else if ((strarr[i] >='a') && (strarr[i] <='z')) { 
        	return false;
        } else if ((strarr[i] >='A') && (strarr[i] <='Z')) { 
        	return false;
        } else if ((escape(strarr[i]) > '%60') && (escape(strarr[i]) <'%80') ) { 
        	return false;
        } 
    } 
    return true;
}

/*
 * 영문 체크
 */
function isEng(str) {
	for(var i=0;i<str.length;i++){ 
		achar = str.charCodeAt(i);		
		if( achar > 128 ){
			return false; 
		} 
	} 
	return true; 
}

/*
 * 영문 체크
 */
function isEng2(obj) {
	str = obj.value;
	for(var i=0;i<str.length;i++){ 
		achar = str.charCodeAt(i);		
		if( achar > 128 ){
			alert("영문으로 입력하여 주세요.");
			obj.value = str.substring(0, str.length - 1 );
			obj.focus();
			return false; 
		} 
	} 
	return true; 
};

/*
 * 숫자 체크
 */
function checkNumber(str) { 
    if (str.length > 0) { 
        for (i = 0; i < str.length; i++) {  
            if (str.charAt(i) < '0' || str.charAt(i) > '9') { 
            	return false;
            } 
        } 
    } 
    return true;
}

/* 특수문자 체크 */
function specialCharChk(str){
//	var re =/[~!@\#$%<>^&*\()\-=+_\']/gi;
	var re =/[!\#$%<>^&*\()\+\'\"]/gi;
	return re.test(str);
}

/* text id/최대 길이를 넣으면 입력된 내용이 최대 길이를 초과했는지 체크(한글 3바아트/영문1바이트) */
function isObjectLength(id, maxlength){
	var str = $('#' + id ).val();
	var i, length = 0;

	for(i = 0; i < str.length; i++){
		(str.charCodeAt(i)  > 255) ? length += 3 : length++;
	}

	if(length > maxlength){
		return false;
	}
	
	return true;
}

/*
 * 날짜포맷에 맞는지 검사
 */
function isDateFormat(d) {
	var regex = /^\d{4}-\d{1,2}-\d{1,2}$/;
	return regex.test(d);
}

/*
 * 윤년여부 검사
 */
function isLeaf(year) {
    var leaf = false;

    if(year % 4 == 0) {
        leaf = true;

        if(year % 100 == 0) {
            leaf = false;
        }

        if(year % 400 == 0) {
            leaf = true;
        }
    }

    return leaf;
}

/*
 * 날짜가 유효한지 검사
 */
function isValidDate(d) {
    // 포맷에 안맞으면 false리턴
    if(!isDateFormat(d)) {
        return false;
    }

    var month_day = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

    var dateToken = d.split('-');
    var year = Number(dateToken[0]);
    var month = Number(dateToken[1]);
    var day = Number(dateToken[2]);
    
    // 날짜가 0이면 false
    if(day == 0) {
        return false;
    }

    var isValid = false;

    // 윤년일때
    if(isLeaf(year)) {
        if(month == 2) {
            if(day <= month_day[month-1] + 1) {
                isValid = true;
            }
        } else {
            if(day <= month_day[month-1]) {
                isValid = true;
            }
        }
    } else {
        if(day <= month_day[month-1]) {
            isValid = true;
        }
    }

    return isValid;
}

function calDateRange(val1, val2)
{
    var FORMAT = "-";

    // FORMAT을 포함한 길이 체크
    if (val1.length != 10 || val2.length != 10)
        return null;

    // FORMAT이 있는지 체크
    if (val1.indexOf(FORMAT) < 0 || val2.indexOf(FORMAT) < 0)
        return null;

    // 년도, 월, 일로 분리
    var start_dt = val1.split(FORMAT);
    var end_dt = val2.split(FORMAT);

    // 월 - 1(자바스크립트는 월이 0부터 시작하기 때문에...)
    // Number()를 이용하여 08, 09월을 10진수로 인식하게 함.
    start_dt[1] = (Number(start_dt[1]) - 1) + "";
    end_dt[1] = (Number(end_dt[1]) - 1) + "";

    var from_dt = new Date(start_dt[0], start_dt[1], start_dt[2]);
    var to_dt = new Date(end_dt[0], end_dt[1], end_dt[2]);

    return (to_dt.getTime() - from_dt.getTime()) / 1000 / 60 / 60 / 24;
}

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+$/,"");      
}; 

copyToClipboard = function(txt) {
	if(window.clipboardData) {
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
	} else if(navigator.userAgent.indexOf("Opera") != -1) {
		window.location = txt;
	} else if (window.netscape) {
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		} catch (e) {
			alert("You need set 'signed.applets.codebase_principal_support=true' at about:config'");
			return false;
		}

    	var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);

    	if (!clip)
    		return;
    	var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);

    	if (!trans)
    		return;

    	trans.addDataFlavor('text/unicode');
    	
    	var str = new Object();
    	var len = new Object();
    	
    	var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);

    	var copytext = txt;
    	
    	str.data = copytext;
    	trans.setTransferData("text/unicode",str,copytext.length*2);
    	
    	var clipid = Components.interfaces.nsIClipboard;

    	if (!clip)
    		return false;

    	clip.setData(trans,null,clipid.kGlobalClipboard);
	}
	alert("복사 되었습니다.");
};

function specialObj(obj){
	if((obj.keyCode > 32 && obj.keyCode < 40) || obj.keyCode == 42 || obj.keyCode == 43 || obj.keyCode == 45 || obj.keyCode == 60 || obj.keyCode == 62 || obj.keyCode == 63 || obj.keyCode == 96 || obj.keyCode == 123 || obj.keyCode == 125){
		alert(jQuery.validator.messages["onspecialkey"]);
		obj.returnValue = false;
	}
}

function specialMinus(obj){
	if(obj.keyCode != 45){
//		if((obj.keyCode > 32 && obj.keyCode < 48) || (obj.keyCode > 57 && obj.keyCode < 65) || (obj.keyCode > 90 && obj.keyCode < 97)){
		if((obj.keyCode > 32 && obj.keyCode < 40) || obj.keyCode == 42 || obj.keyCode == 43 || obj.keyCode == 60 || obj.keyCode == 62 || obj.keyCode == 63 || obj.keyCode == 96 || obj.keyCode == 123 || obj.keyCode == 125){
			alert(jQuery.validator.messages["onspecialkey"]);
			obj.returnValue = false;
		}
	}
}

/**
 * 주민등록번호 유효성 체크 
 * usage  : j_jumins ( document.[form name].[input name1].value, document.[form name].[input name2].value );
 */
function j_jumins(p_J1,p_J2)
{
    var v_SUM=0;
    
    // 주민등록번호 1 ~ 6 자리까지의 처리
    // 주민등록번호에 숫자가 아닌 문자가 있을 때 처리
     for(v_i=0 ; v_i < p_J1.length ; v_i++)
     {
        
        if (p_J1.charAt(v_i) >= 0 || p_J1.charAt(v_i) <= 9) {
            // 숫자면 값을 곱해 더한다.
              if(v_i == 0){
                  v_SUM = (v_i+2) * p_J1.charAt(v_i);
              }else{ 
                  v_SUM = v_SUM +(v_i+2) * p_J1.charAt(v_i);
              }
         }else{
             // 숫자가 아닌 문자가 있을 때의 처리
             alert("숫자만 입력하세요");
             return false;
         }
    }
    
    for(v_i=0 ; v_i < 2 ; v_i++)
    {
    // 주민등록번호 7 ~  8 자리까지의 처리
        if (p_J2.charAt(v_i) >= 0 || p_J2.charAt(v_i) <= 9) {
            v_SUM = v_SUM + (v_i+8) * p_J2.charAt(v_i);
        }else{
            // 숫자가 아닌 문자가 있을 때의 처리
            alert("숫자만 입력하세요");
            return false;
        }
    }
    
    for(v_i=2 ; v_i < 6 ; v_i++)
    {
        // 주민등록번호 9 ~ 12 자리까지의 처리
        if (p_J2.charAt(v_i) >= 0 || p_J2.charAt(v_i) <= 9) {
           v_SUM = v_SUM + (v_i) * p_J2.charAt(v_i);
        }else{
            // 숫자가 아닌 문자가 있을 때의 처리
            alert("숫자만 입력하세요");
            return false;
        }
    }
    
    // 나머지 구하기
    var v_Isv_SUM = v_SUM % 11;
    // 나머지가 0 이면 10 을 설정
    if(v_Isv_SUM == 0)
    {
       var v_IsCODE = 10;    
    }
    else if(v_Isv_SUM ==1)  // 나머지가 1 이면 11 을 설정
    {
       var v_IsCODE = 11;
    }
    else
    {
       var v_IsCODE = v_Isv_SUM;
    }
    
    // 나머지를 11 에서 뺀다
    var v_Is1 = 11 - v_IsCODE;
    if (p_J2.charAt(6) >= 0 || p_J2.charAt(6) <= 9) {
       var v_Is2 = parseInt(p_J2.charAt(6));
    }else{
        // 숫자가 아닌 문자가 있을 때의 처리
        alert("숫자만 입력하세요");
    }
        
    if(v_Is1 != v_Is2){
        // 주민등록번호가 틀릴 때의 처리
        alert("유효하지 않은 주민등록 번호입니다.\n\n확인 후 다시 입력해 주세요.");
        return false;
    }else{
         return true;
    }      
 }

	function isSSN(str) {
	
		
		var str1 = str.substring(0,6);
		var str2 = str.substring(6);
	
		var hap = 0;
		for(var i=0; i<6; i++) {
			var temp = str1.charAt(i)*(i+2);
			hap += temp; 
		}
	
		var n1 = str2.charAt(0);
		var n2 = str2.charAt(1);
		var n3 = str2.charAt(2);
		var n4 = str2.charAt(3);
		var n5 = str2.charAt(4);
		var n6 = str2.charAt(5);
		var n7 = str2.charAt(6);
	
		hap += n1*8 + n2*9 + n3*2 + n4*3 + n5*4 + n6*5;
		hap %= 11;
		hap = 11-hap;
		hap %= 10;
		if(hap != n7) {
			return false; 
		}
		
		return true;
	} 

/*
 * 사업자등록번호 체크
 * usage  : check_busino ( businnessNo );
*/
function check_busino(vencod) { 
  var sum = 0; 
  var getlist = new Array(10); 
  var chkvalue =new Array("1","3","7","1","3","7","1","3","5"); 

  try {
    for(var i=0; i<10; i++) { 
      getlist[i] = vencod.substring(i, i+1); 
    } 

    for(var i=0; i<9; i++) { 
      sum += getlist[i]*chkvalue[i]; 
    } 

    sum = sum + parseInt((getlist[8]*5)/10); 
    sidliy = sum % 10; 
    sidchk = 0; 

    if(sidliy != 0) { 
      sidchk = 10 - sidliy; 
    } else {
      sidchk = 0; 
    } 

    if(sidchk != getlist[9]) { 
      return false; 
    } 
    return true; 
  } catch(e) {
    return false;
  }
}


//maxlength 만큼 옮기면 다음으로 이동하기....
function nextFocus(sFormName,sNow,sNext)
{
	var sForm = 'document.'+ sFormName +'.'
	var oNow = eval(sForm + sNow);

	if (typeof oNow == 'object')
	{
		if ( oNow.value.length == oNow.maxLength)
		{
			var oNext = eval(sForm + sNext);

			if ((typeof oNext) == 'object')
				oNext.focus();
		}
	}
}


/*
 * 이메일 유효성 검사
 */
function checkEmail(email) {
	
	var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null)
  return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
     var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
     if(splitted[2].match(regexp_ip) == null) return false;
      }
      return true;
    }
 return false;
}

/*
 * 외국인등록번호 유효성 체크
 */

function isValid_fgnno(socno) 
{ 

	var total =0; 
	var parity = 0; 
	var fgnNo = new Array(13); 

	for(i=0;i < 13;i++) fgnNo[i] = parseInt(socno.charAt(i)); 

	if(fgnNo[11] < 6) return false; 

	if((parity = fgnNo[7]*10 + fgnNo[8])&1) return false; 

	var weight = 2; 

	for(i=0,total=0;i < 12;i++) 
	{ 
		var sum = fgnNo[i] * weight; 
		
		total += sum; 
		
		if(++weight > 9) weight=2; 
	
	} 

	if((total = 11 - (total%11)) >= 10) total -= 10; 
	
	if((total += 2) >= 10) total -= 10; 
	
	if(total != fgnNo[12]) return false; 
	
	return true; 
}

String.prototype.substringAfterLast = function (separator){
	strArray = this.split(separator) ;
	return strArray[strArray.length - 1] ;
};

String.prototype.isImageFileType = function(){
	if(this == '') return true ;
	var imgExt = ',jpg,gif,'; 
	if (imgExt.indexOf(',' + this.substringAfterLast('.').toLowerCase() + ',') >= 0) {
			return true ;
		} else return false ;
};

// 숫자 체크 1
checkNumber = function(obj, msg){
	try{
		eval(obj.value);
	}catch(e){
		alert(msg);
		obj.value = (obj.value).substring(0, (obj.value).length - 1 ); 
		obj.focus();
		return false;
	}

	return true;
};

// 숫자 체크 2
function onlyNumber() {
	 if (window.event){ // IE코드
        var code = window.event.keyCode;
	 }else{ // 타브라우저
        var code = Ev.which;
	 }
	 
	if (code < 48 || code > 57){
		alert("숫자만 입력하실 수 있습니다.");
		
		 if (window.event){
			 event.returnValue = false;
		 }else{
			 Ev.preventDefault();
		 }
	}
};

//숫자 체크 3
function onlyNumber2(obj) {
	if(/[^0-9]/g.test(obj.value)) {
		alert("숫자만 입력하실 수 있습니다.");
		obj.value = "";
		obj.focus();
	}
};

/* EnterKey  */
function handleEnter (field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;	
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;
		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		return false;
	} 
	else
	return true;
};



