/*
 ********************************************************
 *
 * File Name	: common.js
 * Discription 	: javascript common function
 * Version      : 1.0
 * Creation    	: 2006.02.02.
 * Update      	:
 *
 ********************************************************
 */
	var selind = 0;
	
	String.prototype.trim = function(){
		return this.replace(/(^\s*)|(\s*$)/g,"");
	}

	String.prototype.delMask = function(){
		var comma = /,/gi;
		var slash = /\//gi;
		var hipen = /-/gi;
		var collon = /:/gi;
		if( this.length == 0 ) {
			return "";
		}
		return this.replace(comma,'').replace(slash,'').replace(hipen,'').replace(collon,'');
	}
 
 	function fParseFloat(txt){
	    var tmpflt= 0.0;
	    if ( !isNaN(txt) && typeof txt != 'string' ) return( parseFloat(txt) );
	    if ( isNaN(txt) ) tmpflt = parseFloat(txt.delMask());
	    else tmpflt =  parseFloat(txt) ;
	    if ( isNaN(tmpflt) ) return(0.0);
	    else  return( tmpflt );
	}
	
	function fParseInt(txt){
	    var tmpint= 0;
	    if ( !isNaN(txt) && typeof txt != 'string' ) return( parseInt(txt) );
	    if ( txt.trim().length == 0 ) return(0);
	    if ( isNaN(txt) ) tmpint = parseInt(txt.delMask());
	    else tmpint = parseInt(txt);
	    if ( isNaN(tmpint) ) return(0);
	    else  return( tmpint );
	}

	function fOnlyNum(obj){
		var inText = obj.value;
		var ret;

		for (var i = 0; i < inText.length; i++) {
		    ret = inText.charCodeAt(i);
			if (!((ret > 47) && (ret < 58)))  {
				alert("¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");
				obj.value = "";
				obj.focus();
				return false;
			}
		}
		return true;
	}

	function fNumOnly() {
	   key = event.keyCode;
	   if ( key == 13 ) {      // ??,TAB
		  return true;
	   }
	   if ( key == 9 ) {
		  return true;
	   }
	   if ((key == 40) || (key == 38 )) {    // ?, ?? ???
		   event.returnValue = true;
		  return true;
	   }
	   if (( key > 95) && ( key < 106 )) {   // ??? ?? key
		  event.returnValue = true;
		  return true;
	   }
	   if (( key > 47) && ( key < 58 )) {    // ??? ?? ?? key
		  event.returnValue = true;
		  return true;
	   }
	   if (( key == 37)||( key == 39 )||( key == 46)||( key == 8 )||( key == 16)) {  // ?,? ???,DEL,BACKS,SHIFT,-
		  event.returnValue = true;
		  return true;
	   }
	   event.cancelBubble = true;
	   event.returnValue=false;
	   return false;
	}

	function fChkDate(){
	   for(var i=0;i<fChkDate.arguments.length;i++){
		   if (fDate_chk2(fChkDate.arguments[i])){
			   alert("["+arguments[i].value+"]? ?? ?????.");
			   return (true);
		   }
	   }
	   return (false);
	}

	function fCalendar(obj) {
	   if ( obj.disabled == true ) return false;
	   Xpos = event.clientX - 90;
	   Ypos = event.clientY + 130;
	   if ( Ypos > 550 ) Ypos = Ypos - 250;
	   var tmpstr = "dialogTop:" + Ypos + "; dialogLeft:" + Xpos + "; dialogWidth:168px; dialogHeight:235px; resizable:no; status:no;help:no;center:no" ;
	   var ret = window.showModalDialog("../popup/calendar.html", obj.value, tmpstr );
	   if (ret == null || ret == 'closed') return;
	   obj.value = ret;
	}

	function fCalMonth(obj) {
	   if ( obj.disabled == true ) return false;
	   Xpos = event.clientX - 90;
	   Ypos = event.clientY + 130;
	   if ( Ypos > 550 ) Ypos = Ypos - 250;
	   var tmpstr = "dialogTop:" + Ypos + "; dialogLeft:" + Xpos + "; dialogWidth:200px; dialogHeight:235px; resizable:no; status:no;help:no;center:no" ;
	   var ret = window.showModalDialog("../popup/cal_month.html", obj.value, tmpstr );
	   if (ret == null || ret == 'closed') return;
	   obj.value = ret;
	}

	function fDate_chk(obj) {
	   var Arg = obj.value.toString().trim();
	   if(Arg.length == 0) {
		  return('');
	   }
	   var KeyCd = 0;
	   if (event != null) KeyCd = event.keyCode;
	   if(KeyCd == 8 || KeyCd == 46 || (KeyCd >= 37 && KeyCd <= 40)) return(Arg);
	   var LastMon = new Array("0131", "0229", "0331", "0430", "0531", "0630", "0731", "0831", "0930", "1031", "1130", "1231");
	   var LastMonth;
	   var len = Arg.length;
	   if(Arg.charAt(len - 1) < "0" || Arg.charAt(len - 1) > "9") {
		  if(len == 6 || len == 9) {
			 Arg = Arg.substring(0, len - 2);
			 len = len - 2;
		  }
		  else {
			 Arg = Arg.substring(0, len - 1);
			 len = len - 1;
		  }
	   }
	   if(Arg.substring(0, 5) % 4 != 0) LastMon[1] = "0228";
	   switch(len) {
		  case 4: if( (parseInt(Arg) < 1890) || (parseInt(Arg) > 2030) ) {
					 alert("1890 ~ 2030 ±¸°£¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù. " + Arg);
					 event.returnValue = false;
					 return "";
					 break;
				  }
				  Arg = Arg + "-"; break;
		  case 5: Arg = Arg.substring(0, 4) + "-" + Arg.substring(4, 5);
				  if(Arg.substring(5, 6) > 1) Arg = Arg.substring(0, 5);
				  break;
		  case 6: if(Arg.substring(5, 6) > 1) Arg = Arg.substring(0, 5);
		  case 7: if( Arg > 6 && obj.maxLength > 7 ) Arg = Arg + "-";
				  if ( (Arg.substring(5, 6) == 1 && Arg.substring(6, 7) > 2) || (Arg.substring(5, 7) == 00))
					  Arg = Arg.substring(0, 6);
				  break;
		  case 8: Arg = Arg.substring(0, 7) + "-" + Arg.substring(7, 8);
				  break;
		  case 9: for(var i=0; i<12; i++) {
					 LastMonth = LastMon[i];
					 if(Arg.substring(5, 7) == LastMonth.substring(0, 2)) {
						if(Arg.substring(8, 9) > LastMonth.substring(2, 3)) Arg = Arg.substring(0, 8);
						break;
					 }
				   }
		  case 10: if(Arg.substring(8, 10) == 00) Arg = Arg.substring(0, 9);
				   for(var i=0; i<12; i++) {
					  LastMonth = LastMon[i];
					  if(Arg.substring(5, 7) == LastMonth.substring(0, 2)) {
						 if(Arg.substring(8, 10) > LastMonth.substring(2, 4)) {
							Arg = Arg.substring(0, 9);
						 }
						 break;
					  }
				   }
	   }
	   return(Arg);
	}

	function fDate_chk2(obj) {
	   var Arg = obj.value.toString();
	   if(Arg.length == 0) {
		  return(false);
	   }
	   if(Arg.length != 10) {
		  return(true);
	   }
	   var LastMon = new Array("0131", "0229", "0331", "0430", "0531", "0630", "0731", "0831", "0930", "1031", "1130", "1231");
	   var LastMonth;
	   if(Arg.substring(0, 5) % 4 != 0) LastMon[1] = "0228";
	   for(var i=0; i<12; i++) {
		  LastMonth = LastMon[i];
		  if(Arg.substring(5, 7) == LastMonth.substring(0, 2)) {
			 if( (Arg.substring(8, 10) >="01") && (Arg.substring(8, 10) <= LastMonth.substring(2, 4))) {
				return(false);
			 }
		  }
	   }
	   return(true);
	}

	function fInsDate(obj) {
		key = event.keyCode;
		if ( event.keyCode == 16 && event.srcElement.isTextEdit) return false;
		if( (event.type == 'keyup' && event.keyCode == 13) ||  event.keyCode == 9 ) {
		   event.returnValue = true;
		   return;
		}
		if( ( key == 13 )||( key == 9 )) {
		   if ( (obj.value.trim().length == obj.maxLength) || (event.type == "keydown") ) return;
		   obj.value = "";
		   return;
		}
		if ( (selind == 1) && (event.type == "keydown") ) {
		  selind = 0;
		  obj.value= "";
		  return;
		}
		obj.value = fDate_chk(obj);
	}

	function fComma2(obj) {
		if ( event.keyCode == 16 && event.srcElement.isTextEdit) return false;
		if( (event.type == 'keyup' && event.keyCode == 13) || event.keyCode == 9 ) {
		   event.returnValue = true;
		   return;
		}
		if ( obj.value.length > 1 && obj.value.charAt(0) == '0' ){
			obj.value = obj.value.substring(1);
			selind = 0;
			event.cancelBubble = true;
			return;
		}
		obj.value = fInsComma(obj.value);
	}
	function fCommaDot(obj) {
		if ( event.keyCode == 16 && event.srcElement.isTextEdit) return false;
		if( (event.type == 'keyup' && event.keyCode == 13) || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39) return;
		if ( (obj.value.length == 2) &&
			 ((event != null && obj.value.charAt(0) == '0') ||
			 (event == null && obj.value.charAt(0) == '0')) ){
			if ((obj.value.substring(0, 2) == "00") || ( obj.value.substring(0, 2) != "0." ) ) {
			   obj.value = obj.value.substring(1);
			   selind = 0;
			   event.cancelBubble = true;
			   return;
			}
		}
		obj.value = fInsComma(obj.value);
	}

	// ÄÄ¸¶ »ðÀÔ(event ¹ß»ý½Ã »ç¿ë)
	function fInsComma(val) {
	   var vals = "";
	   vals = val.toString();
	   if ( (selind == 1) && (event.type == "keydown") && (event.keyCode != 13) ) {
		   selind = 0;
		   event.cancelBubble = true;
		   return "";
	   }
	   if (vals.indexOf(".") != -1 ) {
		   var dotpos = vals.split(".");
		   if ( dotpos[1].length > 2 ) {
			   event.cancelBubble = true;
			   event.returnValue = false;
			   vals = vals.substring( 0, vals.length - 1);
			   if ( event.type == "keyup" ) alert("¼Ò¼ýÁ¡ÀÌÇÏ µÎÀÚ¸® ±îÁö¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù.");
			   return vals;
		   }
	   }
	   var pas = "";
	   comma=/,/gi;
	   var sol = fDchk2(vals.replace(comma,''));
	   for ( i=0; i<sol.length; i++ ) {
		  pas += sol[i];
	   }
	   return pas;
	}	

	// ÄÄ¸¶ ¹× µµÆ® À§Ä¡ °è»ê(ÀÔ·Â¿ë ¼Ò¼ýÁ¡)
	function fDchk2(num) {
		num = num.toString();
		var dot = 0;
		var dottmp = new Array();
		dot = ( num.indexOf(".") != -1 )? num.length - num.indexOf("."): 0;
		var vlen = num.length - dot ;
		var c = 1;
		var tmp = new Array();
		for ( i = vlen ; i > -1; i-- ) {
			c++;
			tmp[i] = ( ( c%3 == 0 ) && ( i != vlen - 1) )? num.charAt(i) + "," : num.charAt(i);
		}
		if ( dot > 1 ) {
			var numArr = num.split(".");
			if ( numArr != null ) {
				for ( var i = 0; i < tmp.length; i++ ) {
				   dottmp[i] = tmp[i];
				}
				dottmp[tmp.length-1] = dottmp[tmp.length-1] + numArr[1];
				return dottmp ;
			}
		}
		return tmp;
	}

	function fTrOver(obj) {
		obj.style.background   = '#eef5f9';
	}

	function fTrOut(obj) {
		obj.style.background   = '#ffffff';
	}

	/**
	 * ³¯Â¥ÀÔ·Â °´Ã¼°£ÀÇ ±â°£(³¯Â¥Â÷ÀÌ)À» ¸®ÅÏÇÑ´Ù.
	 * @param objFrom	³¯Â¥ÀÔ·Â(½ÃÀÛÀÏÀÚ)°´Ã¼
	 * @param objTo		³¯Â¥ÀÔ·Â(¸¶Áö¸·ÀÏÀÚ)°´Ã¼
	 * return
	 */
	function fGetPeriod(objFrom, objTo) {

		var tmp1 = objFrom.value.delMask();
		var tmp2 = objTo.value.delMask();

		var fromYear = parseInt(tmp1.substring(0,4));
		var fromMonth = parseInt(tmp1.substring(4,6), 10);
		var fromDate = parseInt(tmp1.substring(6,8), 10);

		var toYear = parseInt(tmp2.substring(0,4));
		var toMonth = parseInt(tmp2.substring(4,6), 10);
		var toDate = parseInt(tmp2.substring(6,8), 10);

		var from = new Date(fromYear, fromMonth-1, fromDate);

		var to = new Date(toYear, toMonth-1, toDate);

		var NC = ( to.getTime() - from.getTime()) / (24*60*60*1000);

		return Math.ceil(NC);

	}

	/**
	 * ³¯Â¥ÀÔ·Â °´Ã¼°£ÀÇ ³¯Â¥ ÀüÈÄ °ªÀÌ ¸Â´ÂÁö ¿©ºÎ¸¦ Ã¼Å©ÇÏ¿© ¸®ÅÏÇÑ´Ù.
	 * @param objFrom
	 * @param objTo
	 * return boolean true: ÀüÈÄ¸ÂÀ½ false: ÀüÈÄ¹Ù²ñ
	 */
	function fIsFromTo( objFrom, objTo ) {
		var isVal = true;

		var tmp1 = objFrom.value.delMask();
		var tmp2 = objTo.value.delMask();

		if( parseInt(tmp1,10) - parseInt(tmp2,10) > 0 ) {
			isVal = false;
		}
		return isVal;
	}

	// ÁÖ¹Î¹øÈ£ Ã¼Å©
	function chkJuminNo(jumin1, jumin2) {

			var yy     = jumin1.substr(0,2);        // ³âµµ
			var mm     = jumin1.substr(2,2);        // ¿ù
			var dd     = jumin1.substr(4,2);        // ÀÏ
			var genda  = jumin2.substr(0,1);        // ¼ºº°
			var msg, ss, cc;

			// ¼ýÀÚ°¡ ¾Æ´Ñ °ÍÀ» ÀÔ·ÂÇÑ °æ¿ì
			if (!isNumeric(jumin1)) {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// ±æÀÌ°¡ 6ÀÌ ¾Æ´Ñ °æ¿ì
			if (jumin1.length != 6) {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// Ã¹¹øÂ° ÀÚ·á¿¡¼­ ¿¬¿ùÀÏ(YYMMDD) Çü½Ä Áß ±âº» ±¸¼º °Ë»ç
			if (yy < "00" || yy > "99" ||
					mm < "01" || mm > "12" ||
					dd < "01" || dd > "31") {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// ¼ýÀÚ°¡ ¾Æ´Ñ °ÍÀ» ÀÔ·ÂÇÑ °æ¿ì
			if (!isNumeric(jumin2)) {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// ±æÀÌ°¡ 7ÀÌ ¾Æ´Ñ °æ¿ì
			if (jumin2.length != 7) {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// ¼ºº°ºÎºÐÀÌ 1 ~ 4 °¡ ¾Æ´Ñ °æ¿ì
			if (genda < "1" || genda > "4") {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// ¿¬µµ °è»ê - 1 ¶Ç´Â 2: 1900³â´ë, 3 ¶Ç´Â 4: 2000³â´ë
			cc = (genda == "1" || genda == "2") ? "19" : "20";
			// Ã¹¹øÂ° ÀÚ·á¿¡¼­ ¿¬¿ùÀÏ(YYMMDD) Çü½Ä Áß ³¯Â¥ Çü½Ä °Ë»ç
			if (isYYYYMMDD(parseInt(cc+yy), parseInt(mm), parseInt(dd)) == false) {
					alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			// Check Digit °Ë»ç
			if (!isSSN(jumin1, jumin2)) {
					alert("ÀÔ·ÂÇÑ ÁÖ¹Îµî·Ï¹øÈ£¸¦ °ËÅäÇÑ ÈÄ, ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
			}
			return true;
	}

	function isYYYYMMDD(y, m, d) {
			switch (m) {
			case 2:        // 2¿ùÀÇ °æ¿ì
					if (d > 29) return false;
					if (d == 29) {
							// 2¿ù 29ÀÇ °æ¿ì ´çÇØ°¡ À±³âÀÎÁö¸¦ È®ÀÎ
							if ((y % 4 != 0) || (y % 100 == 0) && (y % 400 != 0))
									return false;
					}
					break;
			case 4:        // ÀÛÀº ´ÞÀÇ °æ¿ì
			case 6:
			case 9:
			case 11:
					if (d == 31) return false;
			}
			// Å« ´ÞÀÇ °æ¿ì
			return true;
	}
	function isNumeric(s) {
			for (i=0; i<s.length; i++) {
					c = s.substr(i, 1);
					if (c < "0" || c > "9") return false;
			}
			return true;
	}
	function isSSN(s1, s2) {
			n = 2;
			sum = 0;
			for (i=0; i<s1.length; i++)
					sum += parseInt(s1.substr(i, 1)) * n++;
			for (i=0; i<s2.length-1; i++) {
					sum += parseInt(s2.substr(i, 1)) * n++;
					if (n == 10) n = 2;
			}
			c = 11 - sum % 11;
			if (c == 11) c = 1;
			if (c == 10) c = 0;
			if (c != parseInt(s2.substr(6, 1))) return false;
			else return true;
	}
	
	
	function fBlockMenu() {
		document.all.gnbSubA.style.display = "none";
		document.all.gnbSubB.style.display = "none";
		document.all.gnbSubC.style.display = "none";
		document.all.gnbSubD.style.display = "none";
		document.all.gnbSubE.style.display = "none";
		/*
		document.all.gnbSubF.style.display = "none";
		document.all.gnbSubG.style.display = "none";
		document.all.gnbSubH.style.display = "none";
		*/
	}

	function fToggleMenu(currMenu) {
		fBlockMenu();
		thiMenu = eval("document.all." + currMenu + ".style");
		thiMenu.display = "block";
	}

	function fFileDown(gbn, filename) {
		var opener = window.open("/common/file_down.asp?gbn=" + gbn + "&filename=" + filename,"","");
	}