// ==========================
// BBS 사용가능한 함수모음
// ==========================

	// Element 자동 셋팅
	function getElement(id) 
	{ 
		if(document.all) return document.all(id); 
		if(document.getElementById) return document.getElementById(id); 
	}

	// 왼쪽 공백 제거
	String.prototype.ltrim = function()
	{
		var re = /\s*((\S+\s*)*)/;
		return this.replace(re, "$1");
	}

	// 오른쪽 공백 제거
	String.prototype.rtrim = function()
	{
		var re = /((\s*\S+)*)\s*/;
		return this.replace(re, "$1");
	}

	// 좌우 공백 제거
	String.prototype.trim = function() {
		return this.ltrim().rtrim();
	}



	//팝업

	function popup(url,wName,w,h){
	window.open(url,wName,'width='+w+',height='+h+',resizable=0,scrollbars=1');
	}

	function popupNS(url,wName,w,h){
	window.open(url,wName,'width='+w+',height='+h+',resizable=0,scrollbars=0');
	}

	function popupFull(url,wName,w,h){
	window.open(url,wName,'width='+w+',height='+h+',resizable=1,scrollbars=1,statusbar=1,menubar=1,toolbar=1,location=1');
	}

	function popupNoscroll(url,wName,w,h){
	window.open(url,wName,'width='+w+',height='+h+',resizable=0,scrollbars=0,statusbar=0,menubar=0,toolbar=0,location=0');
	}


	//에디터 관련
	function stripHTMLtag(string) { 
	   var objStrip = new RegExp(); 
	   objStrip = /[<][^>]*[>]/gi; 
	   return string.replace(objStrip, ""); 
	} 



	//원내배치도
	function plot(value){
		document.getElementById("plotLeft").src = "/images/cs/icon_tit" + value +".gif"
		document.getElementById("plotCenter").src = "/images/cs/img_tit" + value +".gif"

		var varTargetLength = document.getElementsByName("target");

		for(var i = 0; i < varTargetLength.length; i++){
			varTargetLength[i].src = "/images/cs/btn_tit" + ("0" + i) +"_off.gif";
		}
			
		document.getElementById("target" + value).src = "/images/cs/btn_tit" + value +"_on.gif"

	}


function chk_text(obj, msg) {
    if(!obj.value){
        window.alert(msg);
        obj.focus();
        return false;
    }else{
        return true;
    }
}

//공백처리 공용함수
function strblank(obj){
	var str = obj.value;
	if(str.indexOf(" ") >=0){
		alert("공백은 허용되지 않습니다.");
		obj.select();
		obj.focus();
		return false;
	}else{
		return true;
	}
}

//공백처리 공용함수
function strblank2(obj){
	var str = obj.value;
	if(str.indexOf(" ") >=0){
		alert("공백은 허용되지 않습니다.");
		obj.select();
		obj.focus();
		return false;
	}else{
		return true;
	}
}

//주민번호체크
function chkJuminNum(obj1, obj2, str) 
{ 
	if(!isInput(obj1,"주민번호앞자리를 입력하세요")) 
		return false; 
	if(!isChkLen(obj1,"주민번호자릿수가 맞지 않습니다.",6)) 
		return false; 
	if(!isInput(obj2,"주민번호뒷자리를 입력하세요")) 
		return false; 
	if(!isChkLen(obj2,"주민번호자릿수가 맞지 않습니다.",7)) 
		return false; 
    alert(" ");
	if( isJuminNum(obj1.value, obj2.value) == false) 
	{ 
		alert(str); 
		obj1.focus(); 
		obj1.select(); 
		return false; 
	} 
	return true; 
} 

// 문자열 length체크
function isChkLen(obj,msg,len){ 
	if(obj.value.length != len){ 
		alert(msg); 
		obj.focus(); 
		return false; 
	} 
	return true 
} 


// 입력되었는지 체크
function isInput(obj,msg){ 
	if(obj.value.length==0 || obj.value==""){ 
		alert(msg); 
		obj.focus(); 
		return false; 
	} 
	return true; 
} 

// 주민번호체크
function isJuminNum(aNum1, aNum2) 
{ 
	var tot=0, result=0, re=0, se_arg=0; 
	var chk_num=""; 
	var aNum = aNum1 + aNum2; 
	
	if (aNum.length != 13) 
	{ 
		return false; 
	}else { 
		for (var i=0; i <12; i++) 
		{ 
			if (isNaN(aNum.substr(i, 1))) 
				return false; 
			se_arg = i; 
		
			//외국인 인 경우 
			if(i==6) { 
				if (aNum.substr(i, 1) == 7 || aNum.substr(i, 1) == 8  || aNum.substr(i, 1) == 5 ) 
					return true 
			} 
			
			if (i >= 8) 
				se_arg = i - 8; 
			tot = tot + Number(aNum.substr(i, 1)) * (se_arg + 2) 
		} 
	
		if (chk_num != "err") 
		{ 
			re = tot % 11; 
			result = 11 - re; 
			if (result >= 10) result = result - 10; 
			if (result != Number(aNum.substr(12, 1))) 
				return false; 
			if ((Number(aNum.substr(6, 1)) < 1) || (Number(aNum.substr(6, 1)) > 4)) 
				return false; 
		} 
	} 
	return true; 
} 

// 영문자와 숫자만 가능
function onlyEngNum(obj) { 
	var inText = obj.value; 
	var ret; 
	
	for (var i = 0; i < inText.length; i++) { 
		ret = inText.charCodeAt(i); 
		if ((ret > 122) || (ret < 48) || (ret > 57 && ret < 65) || (ret > 90 && ret < 97)) { 
			alert("영문자와 숫자만을 입력하세요"); 
			obj.value = ""; 
			obj.focus(); 
			return false; 
		} 
	} 
	return true; 
}


// 문자열 length 범위
function isStrRng(obj,msg,len1,len2){ 
	if(obj.value.length <len1 || obj.value.length > len2){ 
		alert(msg); 
		obj.focus(); 
		return false; 
	} 
	return true;
} 

// 영문자와 숫자만 가능
function onlyEngNum2(obj) { 
	var inText = obj.value; 
	var ret; 
	
	for (var i = 0; i < inText.length; i++) { 
		ret = inText.charCodeAt(i); 
		if ((ret > 122) || (ret < 32) || (ret > 59 && ret < 63) || (ret ==34) || (ret==39) || (ret ==60) || (ret ==62) ) { 
			alert("영문자와 숫자,특수문자만을 입력하세요"); 
			obj.value = ""; 
			obj.focus(); 
			return false; 
		} 
	} 
	return true; 
}

// 값의 동일여부 체크
function isEqual(obj1,obj2,msg) 
{ 
	if(obj1.value != obj2.value){
		alert(msg); 
		obj1.value="" ;
		obj2.value="" ;
		obj1.focus();
		return false; 
	}
	return true; 
} 

// 이메일체크
function chkEmail(obj1){
	if(!isInput(obj1,"이메일을 입력해 주세요")) 
		return false; 
//	if(!emailCheck(obj1.value)){ 
//		obj1.focus(); 
//		return false; 
//	}
	return true; 
}

// email 체크
function emailCheck (emailStr) { 
	var emailPat=/^(.+)@(.+)$/ 
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" 
	var validChars="\[^\\s" + specialChars + "\]" 
	var firstChars=validChars 
	var quotedUser="(\"[^\"]*\")" 
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ 
	var atom="(" + firstChars + validChars + "*" + ")" 
	var word="(" + atom + "|" + quotedUser + ")" 
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$") 
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") 

	var matchArray=emailStr.match(emailPat) 
	if (matchArray==null) { 
		alert("E-mail 주소가 정확하지 않습니다.\n @ 와 . 을 확인하십시오") 
		return false 
	} 
	var user=matchArray[1] 
	var domain=matchArray[2] 
	
	if (user.match(userPat)==null) { 
		alert("메일 아이디가 정확한 것 같지 않습니다.") 
		return false 
	} 

	var IPArray=domain.match(ipDomainPat) 
	if (IPArray!=null) { 
		for (var i=1;i<=4;i++) { 
			if (IPArray[i]>255) { 
				alert("IP가 정확하지 않습니다!") 
				return false 
			} 
		} 
		return true 
	} 

	var domainArray=domain.match(domainPat) 
	
	if (domainArray==null) { 
		alert("도메인 이름이 정확한 것 같지 않습니다.") 
		return false 
	} 
	var atomPat=new RegExp(atom,"g") 
	var domArr=domain.match(atomPat) 
	var len=domArr.length 
	
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) { 
		alert("도메인명의 국가코드는 2자보다 크고 3자보다 작아야 합니다") 
		return false 
	} 
	
	if (domArr[domArr.length-1].length==2 && len<2) { 
		var errStr="This address ends in two characters, which is a country" 
		errStr+=" code. Country codes must be preceded by " 
		errStr+="a hostname and category (like com, co, pub, pu, etc.)" 
		alert(errStr) 
		return false 
	} 
	
	if (domArr[domArr.length-1].length==3 && len<2) { 
		var errStr="이 주소는 호스트명이 일치하지 않습니다" 
		alert(errStr) 
		return false 
	} 
	return true; 
} 


function ValidTopString(String) {
  var RetValue = true;
  var Count;
  // ID의 첫글자는 영문자만 입력가능
  var PermitChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  Count = 0;
  for (var j = 0; j < PermitChar.length; j++) 
  {
    if(String.charAt(0) == PermitChar.charAt(j)) 
	{
	  Count++;
	  break;
    }
  }
  if (Count != 0) 
  {
    RetValue = false;
  }
  return RetValue;
}


function chk(f){
 var str = f.value;
 r0=/[A-z]/gi;
 r1=/[0-9]/gi;
 t0=str.search(r0);
 t1=str.search(r1);
 if(t0!=-1&&t1!=-1){
  return false;
 } else {
  return true;
 }
}




/**
 * yyyymmdd 형태를 yyyy-mm-dd형태로
 */
function ps_formatDate(dt, div){
	var ret = dt;
	if(dt && dt.length==8){
		ret = dt.substring(0,4)+div+dt.substring(4,6)+div+dt.substring(6,8);
	}
	return ret;
}

/**
 * hhss 형태를 hh:ss형태로
 */
function ps_formatTime(dt, div){
	var ret = dt;
	if(dt && dt.length==4){
		ret = dt.substring(0,2)+div+dt.substring(2,4);
	}
	return ret;
}

/**
 * 예약일 날짜포멧출력
 */
function sc_date(dt){
	document.write(ps_formatDate(dt, "."));
}
/**
 * 예약시각 시각포멧출력
 */
function sc_time(dt){
	document.write(ps_formatTime(dt, ":"));
}



//rss 20090609

function CopyPath_2(inputPath) {
	//thank you
   // meintext = eval(inputPath + ".value");
   meintext = inputPath;

   if (window.clipboardData) { 

       // the IE-manier 
       window.clipboardData.setData("Text", meintext); 
		 var txt = window.clipboardData.getData('Text');
			if(txt == meintext){
				alert('RSS 정보를 복사 하였습니다.');
			} else {
				alert('클립보드 액서스 허용을 해주시기 바랍니다.');
			}
       // waarschijnlijk niet de beste manier om Moz/NS te detecteren; 
       // het is mij echter onbekend vanaf welke versie dit precies werkt: 
   }else if (window.netscape){ 

      // dit is belangrijk maar staat nergens duidelijk vermeld: 
      // you have to sign the code to enable this, or see notes below 
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 

      // maak een interface naar het clipboard 
      var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 
      if (!clip) return; 

      // maak een transferable 
      var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 
      if (!trans) return; 

      // specificeer wat voor soort data we op willen halen; text in dit geval 
      trans.addDataFlavor('text/unicode'); 

      // om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig om het in op te slaan 
      var str = new Object(); 
      var len = new Object(); 

      var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 

      var copytext=meintext; 

      str.data=copytext; 

      trans.setTransferData("text/unicode",str,copytext.length*2); 

      var clipid=Components.interfaces.nsIClipboard; 

      if (!clip) {
		  alert('클립보드 액서스 허용을 해주시기 바랍니다.');
		  return false; 
		}else {
			alert('RSS 정보를 복사 하였습니다.'); 
		}
      clip.setData(trans,null,clipid.kGlobalClipboard); 

  } 


}

