String.prototype.Trim= new Function("return this.replace(/^\\s+|\\s+$/g,'')")	
//확인창 띄우기 - 삭제등 확인하는 팝업을 다르게 띄울수 있도록 이 함수를 사용한다.
//confirm_popup("버튼수(1/2)", "메세지", "색상(blue/red등)", "가로창사이즈", "세로창사이즈")
function confirm_popup(button_count, err_message, info_kind, swidth, sheight ,form_name ,elm){
	if(button_count==1){
		alert(err_message);
		return true;
	}else if(button_count==2){
		message_clear(form_name,elm);
		message_update(form_name,elm,err_message);
		return true;
	}else{
		if(confirm(err_message)){
			return true;
		}else{
			return false;
		}
	}
} 

__d = document;
// tagName 및 elements Name의 DOM 검색 
__d.getElementsByNameEx = function(name, tagName)
{
    var container = arguments[2] ? arguments[2] : __d;
 
    var eles = container.getElementsByTagName(tagName);
    var result = new Array();
    var count = 0;
    for (var i=0; i < eles.length; i++)
    {
        if (eles[i].name == name)
        {
            result[count] = eles[i];
            count ++;
        }
    }
   
    return result;
}

// 필수 입력값 유무체크한후 경고창 뛰우기
//inputCheck("폼이름", "엘리먼트이름", "항목", "문자/숫자/한글/영문/영문,숫자/이메일(S,N,K,E,EN,EM)", ["길이구분(S:small, B:big, F:fix, R:range)"], [최소길이], [최대길이], "필수여부(Y/N)")
function inputCheck(form_name,elm,msg,strORNum,len_gubun,s_len,b_len,essential,pop_type,pop_message){
	if(pop_type==undefined||pop_type==""){
		pop_type = 1;
	}	
	message_clear(form_name,elm); // 메시지 초기화
	if(!eval("document."+ form_name +"."+ elm)){
		if(pop_message==undefined||pop_message==""){
			pop_message = elm + " is not an object";
		}
		confirm_popup(pop_type, pop_message, "red", "", "",form_name,elm);
		return false;
	}
	var form = eval("document."+ form_name +"."+ elm);
	if(form.type=="text" || form.type=="textarea" || form.type=="password" || form.type=="file"){
		var inputStr = form.value.Trim();
		if(essential=="Y"){
			if (inputStr==""){			
				if(pop_message==undefined||pop_message==""){
					pop_message = msg+"를 입력하여 주십시오";
				}
				confirm_popup(pop_type,pop_message, "red", "", "",form_name,elm);
				form.value="";
				try{
					form.focus();
				}catch(e){				
				}
				return false;
			}
		}else{
			if (inputStr==""){
				return true;
			}
		}		
		if(!FuncCheck(strORNum,form_name,elm,msg,pop_type,pop_message)){return false;}
		if (len_gubun!=""){
			if(!lenCheck(form_name, elm, msg ,len_gubun,s_len,b_len,pop_type)){return false;}
		}
	}else if(form.type==undefined || form.type=="radio"){
	//라디오 버튼
		if(!form.length){
			if(form.type=="radio"){
				if(!form.checked){
					if(pop_message==undefined||pop_message==""){
						pop_message = "Please select "+ msg;
					}				
					confirm_popup(pop_type, pop_message, "red", "", "",form_name,elm);
					return false;	
				}
				return true;
			}else{
				confirm_popup(pop_type,form.type, "red", "", "",form_name,elm);
				return false;
			}			
		}
		var elm_len = form.length;
		var ok = 0;
		if(elm_len<=0){		
			if(pop_message==undefined||pop_message==""){
				pop_message = elm + " is not an object";
			}					
			confirm_popup(pop_type,pop_message, "red", "", "",form_name,elm);
			return false;
		}
		for(var i=0;i<elm_len;i++) { 
			if (form[i].checked) { 
				ok = i+1;
			}
		}
		if(ok < 1) { 	
			if(pop_message==undefined||pop_message==""){
				pop_message = "Please select "+ msg;
			}				
			confirm_popup(pop_type, pop_message, "red", "", "",form_name,elm);
			return false;
		}
	}else if(form.type=="checkbox"){
	//체크박스
		if(essential=="Y"){
			if(!form.checked){
				if(pop_message==undefined||pop_message==""){
					pop_message = "Please select "+ msg;
				}					
				confirm_popup(pop_type,pop_message, "red", "", "",form_name,elm);
				return false;
			}
		}
	}else if(form.type.indexOf("select") != -1){
	//셀렉트 박스
		var inputStr = form.options[form.selectedIndex].value;
		if(essential=="Y"){
			if (inputStr==""){
				if(pop_message==undefined||pop_message==""){
					pop_message = "Please select "+ msg;
				}			
				confirm_popup(pop_type,pop_message, "red", "", "",form_name,elm);
				form.value="";
				form.focus();
				return false;
			}
		}else{
			if (inputStr==""){
				return true;
			}
		}
		if(!FuncCheck(strORNum,form_name,elm,msg)){return false;}
		if (len_gubun!=""){
			if(!lenCheck(form_name, elm, msg ,len_gubun,s_len,b_len,pop_type)){return false;}
		}
	}else{
	//그외
		confirm_popup(pop_type, form.type, "red", "", "",form_name,elm);
		return false;
	}
	return true;
}
//함수값체크
function FuncCheck(value,form_name,elm,msg,pop_type,pop_message){
	switch (value){
		case "S":
			//문자
			break;
		case "N":
			//숫자
			if(!IsNumber(form_name,elm,msg)){return false;}
			break;
		case "K":
			//한글
			if(!IsKor(form_name,elm,msg)){return false;}
			break;
		case "E":
			//영문
			if(!IsEng(form_name,elm,msg)){return false;}
			break;
		case "EN":
			//영문,숫자
			if(!IsNumEng(form_name,elm,msg)){return false;}
			break;
		case "EM":
			//이메일
			pop_message = "이메일 주소를 입력하여 주십시오.";
			if(!IsEmail(form_name,elm,msg,pop_type,pop_message)){return false;}
			break;
		case "JUNGAK":
			//전각문자
			pop_message = msg+"는 전각문자만 입력이 가능합니다.";
			if(!IsJapanJun(form_name, elm, msg, pop_type, pop_message)){return false;}
			break;	
		default:
	}
	return true;
}
//입력값이 숫자인지 체크 //사용법 IsNumber(폼이름, 엘리먼트이름, 유효하지 않을경우 메세지)
function IsNumber(form_name,elm,msg) {	
	var form = eval("document."+ form_name +"."+ elm);
	for(var i = 0; i < form.value.length; i++) {
		var chr = form.value.substr(i,1);
		if(chr < '0' || chr > '9') {            
			confirm_popup(1,msg +" must be typed in numbers", "red", "", "");
			form.focus();
			return false;
		}
	}
	return true;   
}
//길이체크 //사용법 lenCheck("폼이름", "엘리먼트이름", "항목", "길이구분(S:small, B:big, F:fix, R:range)", [최소길이], [최대길이])
function lenCheck(form_name, elm, msg ,len_gubun,s_len,b_len,pop_type,pop_message){
	if(pop_type==undefined||pop_type==""){
		pop_type = 1;
	}
	var form = eval("document."+ form_name +"."+ elm);
	var inputStr = form.value.Trim();
	try{
		if (len_gubun=="S"){	//보다 작은 값
			if (inputStr.length > parseInt(s_len)){
				if(pop_message==undefined||pop_message==""){
					pop_message = msg + " must be shorter than or equal to "+ s_len + " words";
				}
				confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
				form.focus();
				return false;
			}
		}else if (len_gubun=="B"){	//보다 큰 값
			if (inputStr.length < parseInt(s_len)){
				if(pop_message==undefined||pop_message==""){
					pop_message = msg + " must be longer than or equal to " + s_len + " words";
				}		
				confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
				form.focus();
				return false;
			}
		}else if (len_gubun=="F"){	//고정된 값
			if (inputStr.length != parseInt(s_len)){
				if(pop_message==undefined||pop_message==""){
					pop_message = msg + " must be longer than or equal to " + s_len + " words";
				}		
				confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
				form.focus();
				return false;
			}
		}else if (len_gubun=="R"){	//범위 값
			if (inputStr.length < parseInt(s_len) || inputStr.length > parseInt(b_len)){
				if(pop_message==undefined||pop_message==""){
					pop_message = msg + " must be longer than " + s_len + " and shorter than "+ b_len +" words";
				}		
				confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
				form.focus();
				return false;
			}
		}
	}catch(e){
		alert("lenCheck "+ e.toString());
	}
	return true;
}
//영문 입력 //사용법 IsEng(폼이름, 엘리먼트이름, 항목)
function IsEng(form_name,elm,msg) {
	var form = eval("document."+ form_name +"."+ elm);
	var inputStr = form.value.Trim()
	for(var i = 0; i < inputStr.length; i++) {
		 var chr = form.value.substr(i,1);         
		 if ((chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z')) {
			confirm_popup(1,msg + " 항목은 영문으로 입력해 주세요.", "red", "", "");
			form.focus();
			return false;
		 }
	}
	return true;   
}
//영문 숫자조합 입력 //사용법 IsNumEng(폼이름, 엘리먼트이름, 항목)
function IsNumEng(form_name,elm,msg) {
	var form = eval("document."+ form_name +"."+ elm);
	var inputStr = form.value.Trim()
	for(var i = 0; i < inputStr.length; i++) {
		 var chr = form.value.substr(i,1);         
		 if ((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z')) {
			confirm_popup(1,msg + " must be typed in English or numbers or both combined", "red", "", "");
			form.focus();
			return false;
		 }
	}
	return true;   
}
//이메일체크(도메인)
function IsEmail(form_name,elm,msg,pop_type,pop_message) {
	if(pop_type==undefined||pop_type==""){
		pop_type = 1;
	}
	var form = eval("document."+ form_name +"."+ elm);
	var inputStr = form.value.Trim();
	if (inputStr=='')
	{
		if(pop_message==undefined||pop_message==""){
			pop_message = "Please enter "+ msg;
		}		
		confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
		form.focus();
		return false;
	}
	emailField = inputStr;
	var regMail =/^[._a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	if (!regMail.test(emailField))	{
		if (emailField!=""){
			if(pop_message==undefined||pop_message==""){
				pop_message = msg +" you entered is invalid";
			}			
			confirm_popup(pop_type,pop_message, "red", "", "",form_name ,elm);
			form.focus();
			return false;
		}
	}
	return true;
}
//팝업 중앙에 띄우기 //NewWindow("URL", "팝업명", "가로Size", "세로Size", "스크롤바") 
function NewWindow(mypage, myname, w, h, scroll,status) {
	var win = null;	
	LeftPosition=(screen.width) ? (screen.width-w)/2 : 0;
	TopPosition=(screen.height) ? (screen.height-h)/2 : 0;				
	settings='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',resizable=no, scrollbars=' + scroll;
	if(status) settings+=',status='+status;
	win=window.open(mypage,myname,settings);
}		
//쿠키값 가져오기
function getCookie(Name) {
	var search = Name + "=";	
	if(document.cookie.length > 0){
		offset = document.cookie.indexOf(search)
		if(offset != -1){
			offset += search.length;
			end = document.cookie.indexOf(";", offset)
			if(end == -1){
				end = document.cookie.length;
			}
			return unescape(document.cookie.substring(offset, end));
		}
	}
	return "";
}
//쿠키값 지정하기
function setCookie(name, value, expires) {
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expires );
	document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString();
}

function setCookie(name, value) {
	var expires = new Date();
	expires.setTime(expires.getTime() + 1000*60*60*24*365);
	document.cookie = name + "=" + escape(value) +
	(expires == null ? "" : "; expires=" + expires.toGMTString());
}

//쿠키 삭제
function deleteCookie(name) {
	if(getCookie(name)) {
		document.cookie = name + "=" + ";  path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}	
}

function delCookie(name) {
	var expires = new Date();
	expires.setTime(expires.getTime(-1)); //과거 시간으로 바꾸기
	document.cookie = name + "= ; expires=" + expires.toGMTString();
}
	
	
function assert_msglen(message, maximum) {
	var inc = 0;
	var nbytes = 0;
	var msg = "";
	var msglen = message.length;
	for (i=0; i<msglen; i++) {
		var ch = message.charAt(i);
		if (escape(ch).length > 4) {
			inc = 2;
		} else if (ch == '\n') {
			if (message.charAt(i-1) != '\r') {
				inc = 1;
			}
		} else if (ch == '<' || ch == '>') {
			inc = 4;
		} else {
			inc = 1;
		}
		if ((nbytes + inc) > maximum) {
			break;
		}
		nbytes += inc;
		msg += ch;
	}
	if (nbytes == maximum) {
		msg = msg + "....";
	}
	return msg;
}
//업로드 이미지 체크
function isImageFile(file) {
	var imgArray = new Array(".gif", ".jpg", ".png",".bmp", ".jpeg");
	if (!file) 
		return false;
	while(file.indexOf("\\")!=-1){
		file = file.slice(file.indexOf("\\") + 1);
		ext = file.slice(file.indexOf(".")).toLowerCase();
		for (var i = 0; i < (imgArray).length; i++) {
			if (imgArray[i] == ext){
				return true;
				break;
			}
		}
	}
	return false;
}
//날짜형식 체크
function isValidDate(objValue) { 
    var pt = /^\d{2}-\d{2}-\d{4}$/;
    if (!pt.test(objValue)) {
		alert("Please enter date in mm-dd-yyyy format.");
		return false;
	}     
    var m = parseInt(objValue.substr(0,2), 10) - 1;
    var d = parseInt(objValue.substr(3,2), 10);
    var y = parseInt(objValue.substr(6,4), 10);    
    var dt = new Date(y, m, d); 
    if (dt.getFullYear() == y && dt.getMonth() == m && dt.getDate() == d) { 
        return true; 
    } else { 
		alert("Invalid date.");
        return false; 
    } 
}
// 숫자만 입력 체크
function IsNumCheck() {
	if ((event.keyCode<48) || (event.keyCode>57)) {
		event.returnValue=false;
	}
}
function alertGo(msg, url)
{
	if(msg!="")	alert(msg);
	window.location.href = url;
}
function getPageUrl() {	
    var path = document.URL.split('/');
    var str = "";
    str = path[path.length - 1];    
    var retVal = "";
    if (str.indexOf("?")) 
    {
    	retVal = str.split('?');
    	retVal = retVal[0];
    } else {
    	retVal = str;
    }   
    return retVal;
}	
//문자열 내의 HTML 태그제거
function stripHTMLtag(string) {
   var objStrip = new RegExp();
   if(string!=null){
	   objStrip = /[<][^>]*[>]/gi;
	   return string.replace(objStrip, "");
   }else{
	    return "";
   }
}
// DIV Zindex 변경
function pChange(st) {
	if( st == 1 ) {
		document.getElementById("header").style.height = "250px";
	} else {
		document.getElementById("header").style.height = "100px";
	}
}
//국제전화번호 형식체크
function isValidPhone(objValue, form_name, elm, err_message) {   	
	for(var i = 0; i < objValue.length; i++) {
		var ch = objValue.substring(i,i+1);       
		 if ((ch!='(') && (ch!=')') && (ch!='-') && (ch!='+') && (ch!=' ') && (ch < '0' || ch > '9')) {
			confirm_popup(2, err_message, "red", "", "", form_name, elm);
			return false;
		 }
	}	
	return true;
}
//아이피 형식체크
function isValidIP(objValue) {
	var re = /([1]\d\d|[2][0-5][0-5]|[1-9][0-9]|[0-9]){1}(\.([1]\d\d|[2][0-5][0-5]|[1-9][0-9]|[0-9])){3}/gi;    //+(\.\d)*)/
	if (objValue.match(re) == null) {
		alert("Invalid IP address.");
		return false;
	} else {
		return true;
	}
}
//버전 형식체크
function isValidVersion(objValue) {
	for (var j=0; j < objValue.length ; j++ ) {
		var ch= objValue.substring(j,j+1);
		if(j==0){
			// 숫자로 시작
			if(ch<'0' || ch> '9'){
				alert("Invalid Version");
				return false;	
			}		
		}
		if((ch!='.')&&(ch<'0' || ch > '9')){
			alert("Invalid Version");
			return false;
		}
	}	
	return true;
}
function isValidPwd( str, form_name, elm, err_message) {
    //var isPW = /^[a-z0-9_~`!@\\#\$%\^&\*()-\+=\|\[\]\{\};:'"<,>.?/]{6,12}$/;
    var isPW = /^[a-z0-9]{6,12}$/;
    if ( !isPW.test(str) ) {
        confirm_popup(2, err_message, "red", "", "", form_name, elm);
        return false;
    }
    return true;
}
function strReplace(str, src, dest) {
	//str 은 원문자열이고 src는 바꾸고자하는 문자열, dest는 src를 대체할 문자열임
    var reg = new RegExp(src, "gi");
    return str.replace(reg, dest);
}
// div 메시지 초기화 // message_clear(폼명) // message_clear("aForm")
function message_clear(form_name,elm){
	var len = $(form_name).length;
	try{			
		var obj = $(form_name+"_"+elm+"_message");
		obj.update("");
		obj.style.visibility = "hidden";
		obj.style.display = "none";
	}catch(e){
	}

}
/*
function message_clear(form_name,elm){
	var len = $(form_name).length;
	for(i=0;i<len;i++){
		try{			
			var obj = $(form_name+"_"+$(form_name)[i].name+"_message");
			obj.update("");
			obj.style.visibility = "hidden";
			obj.style.display = "none";
		}catch(e){
		}
	}
}
*/


// div에 메시지 입력 // message_update(form_name,elm,err_message);
function message_update(form_name,elm,err_message){
	try{
		$(form_name+"_"+elm+"_message").style.visibility = "visible";
		$(form_name+"_"+elm+"_message").style.display = "";
		$(form_name+"_"+elm+"_message").update(err_message);
	}catch(e){
	}
}
// 검색어 볼드체 변경 //makeSearchBold(content, $("searchWord").value);
function makeSearchBold(str, src) {
	var ret = "";
	var index = -1;
	var _src = "";
	var _ret = "";
	index = str.toUpperCase().indexOf(src.toUpperCase());			
	if(index>-1){
		_src = str.substring(index,(index+src.length));	// 검색어 이전글
		_ret = str.substring((index+src.length),str.length);	// 검색어 다음글
		ret = str.substring(0,index) +"<b>"+ _src +"</b>" + makeSearchBold(_ret,src); //
	}else{
		ret = str;
	}		
	return ret;
}
function setCookieDomain (name,value,expires,path,domain,secure) {
	var todayDate = new Date();
	todayDate.setDate( todayDate.getDate() + expires );
	  document.cookie = name + "=" + escape (value) +
	   	((expires) ? "; expires=" + todayDate.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
	    ((domain) ? "; domain=" + domain : "") +
	    ((secure) ? "; secure" : "");
}