function getS(s)
{
	return document.getElementById(s) ? document.getElementById(s) : null;
}

function createXmlHttpRequest()
{
	var xmlHttp = null;

	if(window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		alert('Unknown Browser!');
	}
	return xmlHttp;
}

function sendXmlHttpRequest(url, oForm, fnCallBack) {
    var xmlHttp = createXmlHttpRequest();
    	//xmlHttp.setRequestHeader("Contet-Type", "application/x-www-form-urlencoded;charset=euc-kr");
	if (fnCallBack != undefined)
	{
		xmlHttp.onreadystatechange = function()
									{
										if(xmlHttp.readyState == 4)
										{
											if(xmlHttp.status == 200)
											{
												eval(fnCallBack)(xmlHttp);
											}
										}
									};
	}

	var arrQrt = [];

	for (var name in oForm )
	{
		arrQrt.push(name + '=' + escape(oForm[name]));
	}

	var strQrt = arrQrt.join('&');

    xmlHttp.open("POST", url, fnCallBack == undefined ? false : true);
	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');
    xmlHttp.send(strQrt);

	if (fnCallBack == undefined)
		return xmlHttp;
}

//Text To XML Type
function createXMLFromString(string)
{
	var xmlDocument;
	var xmlParser;
		if(window.ActiveXObject){   //IE일 경우
			xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
			xmlDocument.async = false;
			xmlDocument.loadXML(string);
	   } else if (window.XMLHttpRequest) {   //Firefox, Netscape일 경우
		   	xmlParser = new DOMParser();
		   	xmlDocument = xmlParser.parseFromString(string, 'text/xml');
	   } else {
		   return null;
	   }
	   return xmlDocument;
}

function goLogin()
{
	var hstName = top.document.location.hostname;
	var rtlurl=document.location.href;
	rtlurl=escape(document.location.href);
	document.location.href='http://' + hstName + '/jboard/login.php?prevurl='+rtlurl ;
}

var loc_para = new Array();
function getLocation()
{
	var url_para = document.location.search.split('&');
	var ele_para;
	for (var i=0; i<url_para.length; i++) {
		ele_para = url_para[i].replace("?", "").split("=");
		loc_para[i] = [ele_para[0], ele_para[1]];
	}
}

function getEle(paraName) {
	var rtnValue = "";
	for (var i=0; i < loc_para.length; i++) {
		if (loc_para[i][0] == paraName) {
			rtnValue = loc_para[i][0] + "=" + loc_para[i][1];
		}
	}
	return rtnValue;
}

function setEleValue(paraName, paraValue) {
	var valueCheck = false;
	for (var i=0; i < loc_para.length; i++) {
		if (loc_para[i][0] == paraName) {
			if(paraValue == "" || paraValue == 0) {
				loc_para[i][0] = "";
				loc_para[i][1] = "";
			} else {
				loc_para[i][1] = paraValue;
			}
			valueCheck = true;
		}
	}
	if (valueCheck == false) {
		loc_para[loc_para.length] = [paraName, paraValue];
	}
}

var isNS4 = (navigator.appName=="Netscape")?1:0;
var invalidaddress=new Array();
	//invalidaddress[0]="daum";
	//invalidaddress[1]="hanmail";

// 공백제거 함수
function trim(str){   
    var leftI = 0;
    var rightI = 0;
    for(i = 0; i<str.length;i++)
    {
    	if(str.substring(i,i+1)==" " || str.substring(i,i+1)=="　")
    	{
    		leftI++;
    	}else{
    		break;
    	}
    }
	str = str.substring(leftI,str.length);
	for(j=str.length; j>0;j--)
	{
		if(str.substring(j-1,j)==" " || str.substring(j-1,j)=="　")
		{
			rightI++;
		}else{
			break;
		}
	}
	str = str.substring(0,str.length - rightI);
	return str;
}

// 한글입력방지 함수
function nonkr(strValue) {
	onvalue = strValue;
	chkValue = onvalue.search(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힝]/);

	if (onvalue == "") {
		return false;
	} else if (chkValue != -1) {
		return false;
	} else {
		return true;
	}
}

// 값 유무 체크 메서드
function isFilled( elm ) {
	eml = trim(elm.value);
    if ( elm.value == "" || elm.value == null ) 
    	return false; 
    else 
    	return true;
}


// 특수문자를 제외한 문자만을 체크하는 함수
function checkOnlyString(event)
{
	if(!isNS4){
		if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97)){
				event.returnValue = false;
		}
	}else{
		if ((event.which > 32 && event.which < 48) || (event.which > 57 && event.which < 65) || (event.which > 90 && event.which < 97)) {
				return false;
		}
	}
}

// 두개의 문자열 값이 같은지 비교하는 함수
function CompareString(str1, str2)
{
	if (str1 == str2) {
		return true;
	} else {
		return false;
	}
}

// 숫자만  체크 하는 함수.
function checkOnlyNumber(numStr){
    var anum=/(^\d+$)|(^\d+\.\d+$)/;
    if (anum.test(numStr))
        testresult=true;
    else{
        alert("숫자만 입력가능합니다.!");
        testresult=false;
    }
    return (testresult);
}

// 사업자 등록번호 체크 함수
function checkCompayRegisterNum(numValue) {
    var strNumb = numValue;
    if (strNumb.length != 10) {
        return false;
    }
    sumMod  =   0;
	sumMod  +=  parseInt(strNumb.substring(0,1));
	sumMod  +=  parseInt(strNumb.substring(1,2)) * 3 % 10;
	sumMod  +=  parseInt(strNumb.substring(2,3)) * 7 % 10;
	sumMod  +=  parseInt(strNumb.substring(3,4)) * 1 % 10;
	sumMod  +=  parseInt(strNumb.substring(4,5)) * 3 % 10;
	sumMod  +=  parseInt(strNumb.substring(5,6)) * 7 % 10;
	sumMod  +=  parseInt(strNumb.substring(6,7)) * 1 % 10;
	sumMod  +=  parseInt(strNumb.substring(7,8)) * 3 % 10;
	sumMod  +=  Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
	sumMod  +=  parseInt(strNumb.substring(8,9)) * 5 % 10;
	sumMod  +=  parseInt(strNumb.substring(9,10));
	
    if (sumMod % 10  !=  0) {
        return false;
    } else {
    	return true;
    }
}

// 주민번호 적법성 검사
function jumincheck(ssn1, ssn2){
		var str_serial1 = ssn1;
		var str_serial2 = ssn2;
 
		var digit=0;
		for (var i=0;i<str_serial1.length;i++){
			var str_dig=str_serial1.substring(i,i+1);
			if (str_dig<'0' || str_dig>'9'){ 
			digit=digit+1;
		}
	}

	if ((str_serial1 == '') || ( digit != 0 )){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	}

	var digit1=0;
	for (var i=0;i<str_serial2.length;i++){
		var str_dig1=str_serial2.substring(i,i+1);
		if (str_dig1<'0' || str_dig1>'9'){ 
			digit1=digit1+1;
		}
	}

	if ((str_serial2 == '') || ( digit1 != 0 )){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	}

	if (str_serial1.substring(2,3) > 1){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	}

	if (str_serial1.substring(4,5) > 3){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	} 

	if (str_serial2.substring(0,1) > 4 || str_serial2.substring(0,1) == 0){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	}

	var a1=str_serial1.substring(0,1);
	var a2=str_serial1.substring(1,2);
	var a3=str_serial1.substring(2,3);
	var a4=str_serial1.substring(3,4);
	var a5=str_serial1.substring(4,5);
	var a6=str_serial1.substring(5,6);

	var check_digit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7;

	var b1=str_serial2.substring(0,1);
	var b2=str_serial2.substring(1,2);
	var b3=str_serial2.substring(2,3);
	var b4=str_serial2.substring(3,4);
	var b5=str_serial2.substring(4,5);
	var b6=str_serial2.substring(5,6);
	var b7=str_serial2.substring(6,7);

	var check_digit=check_digit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5;

	check_digit = check_digit%11;
	check_digit = 11 - check_digit;
	check_digit = check_digit%10;

	if (check_digit != b7){
		//alert('잘못된 주민등록번호입니다.\n\n다시 확인하시고 입력해 주세요.');
		return false;   
	}

	else{
		return true;
	}
}

//외국인 등록번호 검사
function check_no(ssn1, ssn2){
	var fgn_reg_no = ssn1 + ssn2;
	if ((fgn_reg_no.charAt(6) == "5") || (fgn_reg_no.charAt(6) == "6"))
	{
	   birthYear = "19";
	}
	else if ((fgn_reg_no.charAt(6) == "7") || (fgn_reg_no.charAt(6) == "8"))
	{
	   birthYear = "20";
	}
	else if ((fgn_reg_no.charAt(6) == "9") || (fgn_reg_no.charAt(6) == "0"))
	{
	   birthYear = "18";
	}
	else
	{
	  // alert("혹은 외국인 등록번호에 오류가 있습니다. 다시 확인하십시오.");
	  return false;
	}        
	birthYear += fgn_reg_no.substr(0, 2);
	birthMonth = fgn_reg_no.substr(2, 2) - 1;
	birthDate = fgn_reg_no.substr(4, 2);
	birth = new Date(birthYear, birthMonth, birthDate);
	
	if ( birth.getYear() % 100 != fgn_reg_no.substr(0, 2) ||
		 birth.getMonth() != birthMonth ||
		 birth.getDate() != birthDate) {
	  //alert('생년월일에 오류가 있습니다. 다시 확인하십시오.');
	  return false;
	}
	
	if (fgn_no_chksum(fgn_reg_no) == false){
		// alert('외국인등록번호에 오류가 있습니다. 다시 확인하십시오.');
		return false;
	}
	else {
		return true;
	}
	
}

// 외국인 등록번호 검사
function fgn_no_chksum(reg_no) {
	var sum = 0;
	var odd = 0;
	
	buf = new Array(13);
	for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));

	odd = buf[7]*10 + buf[8];
	
	if (odd%2 != 0) {
	  return false;
	}

	if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
	  return false;
	}
		
	multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
	for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);


	sum=11-(sum%11);
	
	if (sum>=10) sum-=10;

	sum += 2;

	if (sum>=10) sum-=10;

	if ( sum != buf[12]) {
		return false;
	}
	else {
		return true;
	}
}

// 이메일 유효성 체크 함수
function checkemail(strEmail)
{
	var invalidcheck=0;
	var str=strEmail;
	var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str))
	{
		var tempstring=str.split("@");
			tempstring=tempstring[1].split(".");
			
		for (i=0;i<invalidaddress.length;i++)
		{
			if (tempstring[0]==invalidaddress[i])
				invalidcheck=1;
		}
		
		if (invalidcheck!=1)
			return true;
		else{
			alert("Daum, Hanmail 은 사용할수 없는 메일 주소 입니다");
			return false;
		}
	}
	else
	{
		alert("이메일 주소가 유효하지 않습니다");
		return false;
	}
}

function viewTable(divname,opt)
{
	if(document.getElementById(divname))
	{
		if(opt)
		{
			document.getElementById(divname).style.display=opt;
		}
		else
		{
			if(document.getElementById(divname).style.display=='none') document.getElementById(divname).style.display='';
			else document.getElementById(divname).style.display='none';
		}
	}
}

//코멘트 최대 입력 가능 글자수 체크 함수
function updChr_new(length_limit, obj_textarea, limit_txt_name)
{
	var length = calculate_msglen_new(obj_textarea.value);
	var txtLimit_obj = document.getElementById(limit_txt_name);
	txtLimit_obj.innerText = length;
	if (length > length_limit) 
	{
		alert("최대 " + length_limit + "byte이므로 초과된 글자수는 자동으로 삭제됩니다.");
		obj_textarea.value = obj_textarea.value.replace(/\r\n$/, "");
		obj_textarea.value = assert_msglen_new(obj_textarea.value, length_limit, limit_txt_name);
	}
}

// 문자열 길이계산 함수
function calculate_msglen_new(message)
{
	var nbytes = 0;
	for (i=0; i<message.length; i++) 
	{
		var ch = message.charAt(i);
		if(escape(ch).length > 4) 
		{
			nbytes += 2;
		} 
		else if (ch == '\n') 
		{
			if (message.charAt(i-1) != '\r') 
			{
				nbytes += 1;
			}
		} 
		else if (ch == '<' || ch == '>') 
		{
			nbytes += 4;
		} 
		else 
		{
			nbytes += 1;
		}
	}
	return nbytes;
}

// 문자열 길이계산 함수
function assert_msglen_new(message, maximum, limit_txt_name)
{
	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;
	}
	document.getElementById(limit_txt_name).innerText = nbytes;
	return msg;
}

//HTML 로 넘어온 <img ... > 태그의 폭이 테이블폭보다 크다면 테이블폭을 적용한다.
function resizeBoardImage(imageWidth, borderColor) {
    var target = document.getElementsByName('target_resize_image[]');
    var imageHeight = 0;
    if (target) {
        for(i=0; i<target.length; i++) { 
            // 원래 사이즈를 저장해 놓는다
            target[i].tmp_width  = target[i].width;
            target[i].tmp_height = target[i].height;
            // 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
            if(target[i].width > imageWidth) {
                imageHeight = parseFloat(target[i].width / target[i].height)
                target[i].width = imageWidth;
                target[i].height = parseInt(imageWidth / imageHeight);
                target[i].style.cursor = 'pointer';

                // 스타일에 적용된 이미지의 폭과 높이를 삭제한다
                target[i].style.width = '';
                target[i].style.height = '';
            }

            if (borderColor) {
                target[i].style.borderWidth = '1px';
                target[i].style.borderStyle = 'solid';
                target[i].style.borderColor = borderColor;
            }
        }
    }
}

//이미지의 크기에 따라 새창의 크기가 변경됩니다.
//zzzz님께서 알려주셨습니다. 2005/04/12
function image_window(img)
{
 var w = img.tmp_width; 
 var h = img.tmp_height; 
 var winl = (screen.width-w)/2; 
 var wint = (screen.height-h)/3; 

 if (w >= screen.width) { 
     winl = 0; 
     h = (parseInt)(w * (h / w)); 
 } 

 if (h >= screen.height) { 
     wint = 0; 
     w = (parseInt)(h * (w / h)); 
 } 

 var js_url = "<script language='JavaScript1.2'> \n"; 
     js_url += "<!-- \n"; 
     js_url += "var ie=document.all; \n"; 
     js_url += "var nn6=document.getElementById&&!document.all; \n"; 
     js_url += "var isdrag=false; \n"; 
     js_url += "var x,y; \n"; 
     js_url += "var dobj; \n"; 
     js_url += "function movemouse(e) \n"; 
     js_url += "{ \n"; 
     js_url += "  if (isdrag) \n"; 
     js_url += "  { \n"; 
     js_url += "    dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x; \n"; 
     js_url += "    dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y; \n"; 
     js_url += "    return false; \n"; 
     js_url += "  } \n"; 
     js_url += "} \n"; 
     js_url += "function selectmouse(e) \n"; 
     js_url += "{ \n"; 
     js_url += "  var fobj      = nn6 ? e.target : event.srcElement; \n"; 
     js_url += "  var topelement = nn6 ? 'HTML' : 'BODY'; \n"; 
     js_url += "  while (fobj.tagName != topelement && fobj.className != 'dragme') \n"; 
     js_url += "  { \n"; 
     js_url += "    fobj = nn6 ? fobj.parentNode : fobj.parentElement; \n"; 
     js_url += "  } \n"; 
     js_url += "  if (fobj.className=='dragme') \n"; 
     js_url += "  { \n"; 
     js_url += "    isdrag = true; \n"; 
     js_url += "    dobj = fobj; \n"; 
     js_url += "    tx = parseInt(dobj.style.left+0); \n"; 
     js_url += "    ty = parseInt(dobj.style.top+0); \n"; 
     js_url += "    x = nn6 ? e.clientX : event.clientX; \n"; 
     js_url += "    y = nn6 ? e.clientY : event.clientY; \n"; 
     js_url += "    document.onmousemove=movemouse; \n"; 
     js_url += "    return false; \n"; 
     js_url += "  } \n"; 
     js_url += "} \n"; 
     js_url += "document.onmousedown=selectmouse; \n"; 
     js_url += "document.onmouseup=new Function('isdrag=false'); \n"; 
     js_url += "//--> \n"; 
     js_url += "</"+"script> \n"; 

 var settings;

 /*if (g4_is_gecko) {
     settings  ='width='+(w+10)+','; 
     settings +='height='+(h+10)+','; 
 } else {
     settings  ='width='+w+','; 
     settings +='height='+h+','; 
 }*/
 settings  ='width='+w+','; 
 settings +='height='+h+','; 
 
 settings +='top='+wint+','; 
 settings +='left='+winl+','; 
 settings +='scrollbars=no,'; 
 settings +='resizable=yes,'; 
 settings +='status=no'; 


 win=window.open("","image_window",settings); 
 win.document.open(); 
 win.document.write ("<html><head> \n<meta http-equiv='imagetoolbar' CONTENT='no'> \n<meta http-equiv='content-type' content='text/html; charset=utf-8'>\n"); 
 var size = "이미지 사이즈 : "+w+" x "+h;
 win.document.write ("<title>"+size+"</title> \n"); 
 if(w >= screen.width || h >= screen.height) { 
     win.document.write (js_url); 
     var click = "ondblclick='window.close();' style='cursor:move' title=' "+size+" \n\n 이미지 사이즈가 화면보다 큽니다. \n 왼쪽 버튼을 클릭한 후 마우스를 움직여서 보세요. \n\n 더블 클릭하면 닫혀요. '"; 
 } 
 else 
     var click = "onclick='window.close();' style='cursor:pointer' title=' "+size+" \n\n 클릭하면 닫혀요. '"; 
 win.document.write ("<style>.dragme{position:relative;}</style> \n"); 
 win.document.write ("</head> \n\n"); 
 win.document.write ("<body leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n"); 
 win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img src='"+img.src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+"></td></tr></table>");
 win.document.write ("</body></html>"); 
 win.document.close(); 

 if(parseInt(navigator.appVersion) >= 4){win.window.focus();} 
}

function setCookie(c_name,value,expiredays)
{
   var exdate=new Date();
   exdate.setDate(exdate.getDate()+expiredays);
   document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
	    }
	}
	return "";
}

function deleteCookie( cookieName )
{
	var expireDate = new Date();

 	//어제 날짜를 쿠키 소멸 날짜로 설정한다.
 	expireDate.setDate( expireDate.getDate() - 1 );
 	document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString() + "; path=/";
}

function selectBoxAddOption(objName, strText, strValue)
{
	var objOption = document.createElement("option");       
    	objOption.text = strText;
    	objOption.value = strValue;
    	getS(objName).options.add(objOption);
}

function selectBoxSelectIndex(objName, indexNum)
{
	getS(objName).selectedIndex = indexNum;
}

function selectBoxValue(objName, strValue)
{
	getS(objName).value = strValue;
	if (strValue == '') getS(objName).selectedIndex = 0;
}

function WCString_stringToHtml(sSrc) 
{ 
    if (sSrc == null) 
        return ""; 
    
    var sData = new String(sSrc); 
    var sBuf = ""; 
    var nCount = sData.length; 
    for (var i=0;i<nCount;i++) 
    { 
        var cChar = sData.charAt(i); 
        
        if (cChar == '\'') 
        { 
            sBuf += "'"; 
            continue; 
        } 
        if (cChar == '#') 
        { 
            sBuf += "#"; 
            continue; 
        } 
        if (cChar == '&') 
        { 
            sBuf += "&"; 
            continue; 
        } 
        if (cChar == '<') 
        { 
            sBuf += "<"; 
            continue; 
        } 
        if (cChar == '>') 
        { 
            sBuf += ">"; 
            continue; 
        } 
        if (cChar == '\r') 
        { 
            continue; 
        } 
        if (cChar == '\n') 
        { 
            sBuf += "<br>"; // "\\n"; 
            continue; 
        } 
        sBuf += sData.charAt(i); 
    } 
    return sBuf; 
}

function toPrice(money, cipher) {
	var len, strb, revslice;
	strb = money.toString();
	strb = strb.replace(/,/g, '');
	strb = getOnlyNumeric(strb);
	strb = parseInt(strb, 10);
	 
	if(isNaN(strb))
		return '';
	strb = strb.toString();
	len = strb.length;

	if(len < 4)
		return strb;

	if(cipher == undefined)
		cipher = 3;

	count = len/cipher;
	slice = new Array();

	for(var i=0; i<count; ++i) {
		if(i*cipher >= len)
			break;
		slice[i] = strb.slice((i+1) * -cipher, len - (i*cipher));
	}

	revslice = slice.reverse();
	return revslice.join(',');
}

// 문자열을 제거하고 숫자만 반환한다.
function getOnlyNumeric(str) {
	var chrTmp, strTmp;
	var len;

	len = str.length;
	strTmp = '';
	 
	for(var i=0; i<len; ++i) {
		chrTmp = str.charCodeAt(i);
		if((chrTmp > 47 || chrTmp <= 31) && chrTmp < 58) {
			strTmp = strTmp + String.fromCharCode(chrTmp);
		}
	}

	return strTmp;
}

