﻿//document.oncontextmenu = function() {return false}
//document.onselectstart = function() {return false}
document.ondragstart = function() {return false}

/*
if(navigator.userAgent.indexOf('Firefox') >= 0) {
    (function() {
        var events = ['keydown', 'keypress', 'keyup', 'mousedown', 'mouseover', 'mouseout', 'mousemove', 'mousedrag', 'click', 'dblclick'];
        for (var i = 0; i < events.length; i++) {
            window.addEventListener(events[i], function(e) { window.event = e; }, true);
        }
    }());
};
*/


/*----------------------------------------------------------------------------*/
/* Numeric Functions                                                          */
/*----------------------------------------------------------------------------*/
function IsNumeric(asText) {
	if(typeof(asText) == 'number') return true;
	var s1 = Trim(asText.replace(/,/g, ''));
	var s2 = parseFloat(s1);
	if(s1 == s2) return true;
	return false;
}

function Val(asText) {
	if(typeof(asText) == 'number') return asText;
	var r = parseInt(Trim(asText.replace(/,/g, '')));
	if(isNaN(r)) return 0;
	return r;
}


/*----------------------------------------------------------------------------*/
/* String Functions                                                           */
/*----------------------------------------------------------------------------*/
function Trim(str) {return str.replace(/(^\s*)|(\s*$)/g, '');}
function LTrim(str) {return str.replace(/(^\s*)/g, '');}
function RTrim(str) {return str.replace(/(\s*$)/g, '');}
function Left(str, n){
	if(n <= 0)
	    return '';
	else if(n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if(n <= 0)
       return '';
    else if(n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
String.prototype.Trim = function() {return this.replace(/(^\s*)|(\s*$)/g, '');}
String.prototype.LTrim = function() {return this.replace(/(^\s*)/g, '');}
String.prototype.RTrim = function() {return str.replace(/(\s*$)/g, '');}
String.prototype.Left = function(n) {if(n <= 0) return ''; else if(n > this.length) return this; else return this.substring(0,n);}
String.prototype.Right = function(n) {if(n <= 0) return ''; else if(n > this.length) return this; else {var iLen = this.length; return this.substring(iLen, iLen - n);}}

/*----------------------------------------------------------------------------*/
/* Date Functions                                                             */
/*----------------------------------------------------------------------------*/
function IsDate(asDate) {
	var sOrgDate, sPatt;
	var sYear = '', sMonth = '', sDay = '';
	var iYear = 0, iMonth = 0, iDay = 0;

	sPatt = /\//g; asDate = asDate.replace(sPatt,'');
	sPatt = /-/g;  asDate = asDate.replace(sPatt,'');
	sPatt = /\./g; asDate = asDate.replace(sPatt,'');

	if(asDate == '') return '';
	if(asDate.length != 8)
		return '';
	else {
		sYear = asDate.substring(0,4);
		sMonth = asDate.substring(4,6);
		sDay = asDate.substring(6,8);
	}

	if(isNaN(sYear) || isNaN(sMonth) || isNaN(sDay)) return '';

	iYear = parseInt(sYear,'10');
	iMonth = parseInt(sMonth,'10');
	iDay = parseInt(sDay,'10');

	if (iYear < 1) iYear = 0;
	if (iMonth < 1 || iMonth > 12)  iMonth = 0;
	if (iDay < 1) iDay = 0;

	if ( iMonth == 1 || iMonth == 3 || iMonth == 5 || iMonth == 7 || iMonth == 8 ||
		iMonth == 10 || iMonth == 12)  {
		if (iDay > 31) iDay = 0;
	} else if (iMonth == 4 || iMonth == 6 ||  iMonth == 9 || iMonth == 11) {
		if (iDay > 30) iDay = 0;
	} else if (iMonth == 2 ) {
		if (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) {
			if (iDay > 28) iDay = 0;
		} else if (iDay > 29)
			iDay = 0;
	}
	if(iYear == 0 || iMonth == 0 || iDay == 0)
		return '';
	else
		return sYear + '-' + sMonth + '-' + sDay;
}
function WeekdayName(adDate) {
	var d = new Date(adDate), i = d.getDay();
	if(i == 0) return '일요일';
	if(i == 1) return '월요일';
	if(i == 2) return '화요일';
	if(i == 3) return '수요일';
	if(i == 4) return '목요일';
	if(i == 5) return '금요일';
	if(i == 6) return '토요일';
	return '';
}
function FormatYMD(adDate) {
	//Date Type Data --> String Type Data (yyyy/mm/dd)
	var d = new Date(adDate);
	return d.getFullYear().toString() + '/' + Right((d.getMonth() + 101).toString(), 2) + '/' + Right((d.getDate() + 100).toString(), 2);
}
function FormatHMS(adDate) {
	//Date Type Data --> String Type Data (hh:mm:ss)
	var d = new Date(adDate);
	return Right((d.getHours() + 100), 2) + ':' + Right((d.getMinutes() + 100).toString(), 2) + ':' + Right((d.getSeconds() + 100).toString(), 2);
}
function FormatYMDHMS(adDate) {
	//Date Type Data --> String Type Data (yyyy/mm/dd hh:mm:ss)
	return FormatYMD(adDate) + ' ' + FormatHMS(adDate);
}
function FullDateToYmd(aoObject) {
	//풀어쓴 날짜문자열을 YMD형태로 바꾼다. aoObject : value속성이 있는 Object
	var lsDate = (aoObject.value.substr(0, 4) + '/' + aoObject.value.substr(6, 2) + '/' + aoObject.value.substr(10, 2)).replace(/ /g, '0');
	if(!IsDate(lsDate)) return false;
	
	aoObject.value = FormatYMD(Date.parse(lsDate)).replace(/\//g, '');
}
function YmdToFullDate(aoObject) {
	//입력한 YMD를 풀어쓴 날짜문자열로 바꾼다. aoObject : value속성이 있는 Object
	var lsDate = Left(Trim(aoObject.value), 8);
    if(lsDate.length < 8) return false;
    
    lsDate = Left(lsDate, 4) + '/' + lsDate.substr(4, 2) + '/' + Right(lsDate, 2);
    if(!IsDate(lsDate)) return false;
    aoObject.value = DisplayDate(Date.parse(lsDate));
}
function DisplayDate(adDate) {
	//날짜형의 데이터를 풀어쓴다.
	var d = new Date(adDate);
	if(d.getFullYear() <= 1900) return false;
	return d.getFullYear().toString() + '년 ' + (d.getMonth() < 9 ? ' ' : '') + (d.getMonth() + 1).toString() + '월 '
		+ (d.getDate() < 10 ? ' ' : '') + d.getDate().toString() + '일 ' + WeekdayName(adDate);
}
function DisplayDateTime(adDate) {
	//날짜형의 데이터를 풀어쓴다.(시분까지)
	var d = new Date(adDate);
	if(d.getFullYear() <= 1900) return false;
    return d.getFullYear().toString() + '년 ' + (d.getMonth() < 9 ? ' ' : '') + (d.getMonth() + 1).toString() + '월 '
		+ (d.getDate() < 10 ? ' ' : '') + d.getDate().toString() + '일 ' + WeekdayName(adDate) + ' '
		+ (d.getHours() < 10 ? '0' : '') + d.getHours().toString() + ':' + (d.getMinutes() < 10 ? '0' : '') + d.getMinutes().toString();
}


/*----------------------------------------------------------------------------*/
/* keyCode Check Functions                                                    */
/*     onkeydown="return KeyCheck(false);"                                    */
/*----------------------------------------------------------------------------*/
function NextFocus() {
	if(window.event.keyCode == 13) window.event.keyCode = 9;
	return true;
}
function KeyCheck(abEnterNext) {
	var liCode = window.event.keyCode;
	//Ctrl+C, Ctrl+V, Ctrl+X
	if(window.event.ctrlKey && (liCode == 67 || liCode == 86 || liCode == 88)) return true;
	//BackSpace(8), Tab(9), Del(46), Escape(27)
    if(liCode == 8 || liCode == 9 || liCode == 46 || liCode == 27) return true;
    //Home(36), End(35), Left(37), Right(39)
    if(liCode == 36 || liCode == 35 || liCode == 37 || liCode == 39) return true;
    //Number(48~57), Number-Keypad(96~105)
    if((liCode >= 48 && liCode <= 57) || (liCode >= 96 && liCode <= 105)) return true;
    //Enter(13)
    if(liCode == 13) { if(abEnterNext) window.event.keyCode = 9; return true; }
	//alert('숫자키만 입력가능!!');
	return false;
}
function KeyCheckM(abEnterNext) {
	var liCode = window.event.keyCode;
	//Minus(189), Minus-KeyPad(109)
    if(liCode == 109 || liCode == 189) return true;
    return KeyCheck(abEnterNext);
}
function KeyCheckS(abEnterNext) {
	var liCode = window.event.keyCode;
	//Space(32)
    if(liCode == 32) return true;
    return KeyCheck(abEnterNext);
}
function KeyCheckA(abEnterNext) {
	var liCode = window.event.keyCode;
	//Alphabet(65~90)
    if(liCode >=65 && liCode <= 90) return true;
	return KeyCheckS(abEnterNext);
}


/*----------------------------------------------------------------------------*/
/* HTML Node Functions                                                        */
/*----------------------------------------------------------------------------*/
function GetNodeTop(aoNode) {
	var liTop = 0, loItem1 = aoNode, loItem2;
	
	while(true) {
		liTop += loItem1.offsetTop;
		loItem2 = loItem1.offsetParent;
		if(loItem2.tagName == 'BODY') break;
		loItem1 = loItem2;
	}
	return liTop;
}

function GetNodeLeft(aoNode) {
	var liLeft = 0, loItem1 = aoNode, loItem2;
	
	while(true) {
		liLeft += loItem1.offsetLeft;
		loItem2 = loItem1.offsetParent;
		if(loItem2.tagName == 'BODY') break;
		loItem1 = loItem2;
	}
	return liLeft;
}


/*----------------------------------------------------------------------------*/
/* Window Functions                                                           */
/*----------------------------------------------------------------------------*/
function IsInternetExplorer() {
	if(navigator.appName == 'Microsoft Internet Explorer') return true;
	return false;
}
function GetIE_Version() {
	var lsString, lasField, liIndex;
	
	lsString = navigator.appVersion;
	lsString = Left(lsString, lsString.lastIndexOf(')'));
	lsString = lsString.substr(lsString.indexOf('(') + 1, lsString.length - lsString.indexOf('('));
	lasField = lsString.split(';');
	
	for(liIndex = 0; liIndex <= lasField.length; liIndex++) {
		lasField[liIndex] = Trim(lasField[liIndex]);
		if(Left(lasField[liIndex], 4) == 'MSIE') {
			lsString = lasField[liIndex];
			lsString = lsString.substr(lsString.indexOf(' ') + 1, lsString.length - lsString.indexOf(' '));
			return parseFloat(lsString);
		}
	}
	return 0;
}
function OpenWindow(asURL, asName, aiWidth, aiHeight) {
	var liLeft = Math.round((parseInt(screen.availWidth) - aiWidth) / 2);
	var liTop = Math.round((parseInt(screen.availHeight) - aiHeight) / 2);
	return window.open(asURL, asName.replace(/-/g, '_').replace(/^/g, '_'), 'toolbar=no,location=yes,directory=no,menubar=no,scrollbars=no,resizable=no,status=yes,width=' + aiWidth.toString() + ',height=' + aiHeight.toString() + ',left=' + liLeft.toString() + ',top=' + liTop.toString());
}
function OpenWindowS(asURL, asName, aiWidth, aiHeight) {
	//scrollbar enable
	var liLeft = Math.round((parseInt(screen.availWidth) - aiWidth) / 2);
	var liTop = Math.round((parseInt(screen.availHeight) - aiHeight) / 2);
	return window.open(asURL, asName.replace(/-/g, '_').replace(/^/g, '_'), 'toolbar=no,location=yes,directory=no,menubar=no,scrollbars=yes,resizable=no,status=yes,width=' + aiWidth.toString() + ',height=' + aiHeight.toString() + ',left=' + liLeft.toString() + ',top=' + liTop.toString());
}
function InsertForm(asFormID, asAction, asMethod, asTarget) {
	var loForm = document.getElementById(asFormID);
	if(document.body==null||typeof(document.body)=='undefined') document.write('<body></body>');
	if(loForm!==null) document.body.removeChild(loForm);
	
	loForm = document.createElement('FORM');
	loForm.id = asFormID;
	loForm.action = asAction;
	loForm.method = asMethod;
	loForm.target = asTarget;
	loForm.style.display = 'none';
	document.body.appendChild(loForm);
	return loForm;
}
function InsertFormInput(aoForm, asName, asValue) {
	if(aoForm==null||typeof(aoForm)=='undefined') return false;
	
	var loInput = document.createElement('INPUT');
	loInput.type = 'hidden';
	loInput.name = asName;
	loInput.value = asValue;
	aoForm.appendChild(loInput);
	return loInput;
}


/*----------------------------------------------------------------------------*/
/* SocialNumber Check Functions                                               */
/*----------------------------------------------------------------------------*/
function IsJuminNumber(asNumber) {
	var lsKey = '234567892345', liTotal = 0, liIndex;
	
	if(asNumber.length != 13) return false;
	if(!IsNumeric(asNumber)) return false;
	if(parseInt(asNumber.substr(6, 1)) == 0 || parseInt(asNumber.substr(6, 1)) > 4) return false;
	if(parseInt(asNumber.substr(2, 2)) == 0 || parseInt(asNumber.substr(2, 2)) > 12) return false;
	if(parseInt(asNumber.substr(4, 2)) == 0 || parseInt(asNumber.substr(4, 2)) > 31) return false;
	
	for(liIndex = 0; liIndex < 12; liIndex++)
		liTotal += parseInt(asNumber.substr(liIndex, 1)) * parseInt(lsKey.substr(liIndex, 1));
	
	liTotal = 11 - (liTotal % 11);
	if(Right(asNumber, 1) != Right(liTotal.toString(), 1)) return false;
	
	return true;
}
function IsBisunessNumber(asNumber) {
	var lsKey = '1371371351', liTotal = 0, liIndex, lsTemp;
	
	if(asNumber.length != 10) return false;
	if(!IsNumeric(asNumber)) return false;
	
	for(liIndex = 0; liIndex < 8; liIndex ++)
		liTotal += parseInt(asNumber.substr(liIndex, 1)) * parseInt(lsKey.substr(liIndex, 1));
	
	lsTemp = Right('0' + (parseInt(asNumber.substr(8, 1)) * parseInt(lsKey.substr(8, 1))).toString(), 2);
	liTotal += Math.floor(Left(lsTemp, 1)) + Math.floor(Right(lsTemp, 1));
	if(Right(asNumber, 1) != ((10 - (liTotal % 10)) % 10).toString()) return false;
	
	return true;
}
function IsCorpNumber(asNumber) {
	var lsKey = '121212121212', liTotal = 0, liIndex, lsTemp;
	
	if(asNumber.length != 13) return false;
	if(!IsNumeric(asNumber)) return false;
	
	liIndex = parseInt(asNumber.substr(4, 2));
	if(liIndex < 11 || (liIndex > 14 && liIndex < 21) || (liIndex > 22 && liIndex < 31) || (liIndex > 50 && liIndex < 71) || (liIndex > 71 && liIndex < 81) || liIndex > 85) return false;
	for(liIndex = 0; liIndex < 12; liIndex++)
		liTotal += parseInt(asNumber.substr(liIndex, 1)) * parseInt(lsKey.substr(liIndex, 1));
	
	lsTemp = asNumber.substr(6, 6);
	if(Right(asNumber, 1) != ((10 - (liTotal % 10)) % 10).toString() 
		|| lsTemp == '000000' || lsTemp == '111111' || lsTemp == '222222' || lsTemp == '333333' 
		|| lsTemp == '444444' || lsTemp == '555555' || lsTemp == '666666' || lsTemp == '777777' 
		|| lsTemp == '888888' || lsTemp == '999999') return false;
	
	return true;
}


/*----------------------------------------------------------------------------*/
/* WaitMessage Functions                                                      */
/*----------------------------------------------------------------------------*/
function ShowWaitMsg() {
	var loDiv = document.getElementById('divWaitMsg');
	loDiv.style.left = (parseInt(document.body.scrollLeft) + (parseInt(document.body.clientWidth) - parseInt(loDiv.style.width)) / 2).toString();
	loDiv.style.top = (parseInt(document.body.scrollTop) + (parseInt(document.body.clientHeight) - parseInt(loDiv.style.height)) / 2).toString();
	loDiv.style.display = '';
}
function HideWaitMsg() {
    document.getElementById('divWaitMsg').style.display = 'none';
}
function WaitNavigate(asUrl) {
    ShowWaitMsg();
    location.href = asUrl;
}


/*----------------------------------------------------------------------------*/
/* Cookie Functions                                                           */
/*----------------------------------------------------------------------------*/
function SetCookie(name, value, expirdays, path, domain, secure) {
    var today = new Date();
    var expires = new Date();
    if (expirdays==null || expirdays==0) expirdays=1;
    expires.setTime(today.getTime() + 3600000*24*expirdays);

    document.cookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
}
function GetCookie(name) {
   var dc = document.cookie;
   var prefix = name + "=";
   var begin = dc.indexOf("; " + prefix);
   if (begin == -1) {
      begin = dc.indexOf(prefix);
      if (begin != 0) return null;
   } else {
      begin += 2;
   }
   var end = document.cookie.indexOf(";", begin);
   if (end == -1) {
      end = dc.length;
   }
   return unescape(dc.substring(begin + prefix.length, end));
}
function DelCookie(name, path, domain) {
   if (GetCookie(name)) {
      document.cookie = name + "=" +
         ((path) ? "; path=" + path : "") +
         ((domain) ? "; domain=" + domain : "") +
         "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}

