// ==========================
// 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;
	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<3) {
		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);

  }


}
