var addActionListener = function(obj,eventStr,func){
	if (obj.addEventListener){		 
		obj.addEventListener(eventStr,func,false);
	}else{ 
		obj.attachEvent("on"+eventStr,func);
	}
}

function initSimpleSelectedValue(objarg,comparevalue)	{
	var obj=document.getElementById(objarg);
	sindex=0;
	var m=0;
	
	if(comparevalue=='')	return;
	cnt=obj.options.length;

	for(i=0;i<cnt;i++)	{		

		if(comparevalue==obj.options[i].value)	{
			obj.selectedIndex=i;
			return;
		}
	}		
}

function getQueryString(frmobj) {
	var queryString = "";
	var numElements = frmobj.elements.length-1;

	for(var i=0; i<numElements; i++){
		if(i < numElements-1){
			queryString += frmobj.elements[i].name + "=" + escape(frmobj.elements[i].value) + "&";	
		} else {
			queryString += frmobj.elements[i].name + "=" + escape(frmobj.elements[i].value);
		}
	}
	return queryString;
}

function checkRequired(str){
	if(str == null || str.length == 0) return false;
	return true;
}

String.prototype.trim = function() {
    return this.replace(/^\s*/,'').replace(/\s*$/, ''); ;
}

function getXmlHttpRequest() {
     var xmlhttp = false
     //Mozila
	 if(window.XMLHttpRequest){
	   xmlhttp = new XMLHttpRequest()
	 } else {
	 //IE
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
	 }
	 
	 return xmlhttp;
}

function getData(url,func){
    var xmlhttp = getXmlHttpRequest();
    var data;
	 xmlhttp.open("GET", url, true);	 	 
	 xmlhttp.onreadystatechange = function() {	
	    if (xmlhttp.readyState == 4) {
	       if (xmlhttp.status == 200) {                	
             data = xmlhttp.responseText; 
             func = eval(func);    
             func(data.trim());

	       }
	       else
	       {
	            alet("GET Data Failed");
	       }
	     }
	    }
   xmlhttp.send(null);
   return false;
}

function getDataByPost(url,query,func){
    var xmlhttp = getXmlHttpRequest();
    var data;
	 xmlhttp.open("POST", url, true);
	 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    	 
	 xmlhttp.onreadystatechange = function() {
	    if (xmlhttp.readyState == 4) {
	       if (xmlhttp.status == 200) {                
            
             data = xmlhttp.responseText; 
             func = eval(func);    
             func(data.trim());

	       }
	       else
	       {
	            alert("GET Data Failed");
	       }
	     }
	    }
   xmlhttp.send(query);
   return false;
}	

function checkEmailStr(emailStr) {
   if (emailStr.length == 0) {
       return false;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=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) {
       return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
       return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
       for (var i = 1; i <= 4; i++) {
          if (IPArray[i] > 255) {
             return false;
          }
       }
       return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
       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)) {
       return false;
   }
   if (len < 2) {
       return false;
   }
   return true;
}


////// Local Server Time 
Date.prototype.getTimeZone = function() {
	return this.timeZone;
}
Date.prototype.setTimeZone = function(t) {
	this.timeZone = t.toUpperCase();
}
Date.prototype.adjustTimeZone = function() {
	/*************************************
	* US. 2007 energy policy
	* DST starts:      at 2:00am in standard time
	*                  on the second Sunday in March
	* DST ends:        at 2:00am in daylight time
	*                  on the first Sunday in November
	* ***********************************
	*/
	
	var pdtStartInPST = new Date(this.getFullYear(),2,8,2,0);
	if ( pdtStartInPST.getDay() > 0 ) {
		pdtStartInPST = new Date(this.getFullYear(),2,8+7-pdtStartInPST.getDay(),2,0);
	}
	pdtStartInPDT = new Date(pdtStartInPST.getTime() + 1000*60*60);
	
	var pstStartInPST = new Date(this.getFullYear(),10,1,1,0);
	if ( pstStartInPST.getDay() > 0 ) {
		pstStartInPST = new Date(this.getFullYear(),10,7-pstStartInPST.getDay(),1,0);
	}
	pstStartInPDT = new Date(pstStartInPST.getTime() + 1000*60*60);
	
	if ( this.getTimeZone() == "PDT" ) {
		if ( this.getTime() >= pstStartInPDT.getTime() || this.getTime() < pdtStartInPDT.getTime() ) {
			this.setTime(this.getTime() - 1000*60*60);
			this.setTimeZone("PST");
		}
	} else if ( this.getTimeZone() == "PST" ) {
		if ( this.getTime() >= pdtStartInPST.getTime() && this.getTime() < pstStartInPST.getTime() ) {
			this.setTime(this.getTime() + 1000*60*60);
			this.setTimeZone("PDT");
		}	
	}
}

var _local_clock = new Date();

function setLocalServerTime(year, month, day, hour, min, sec, timeZone) {
	_local_clock = new Date(year, month, day, hour, min, sec);
	_local_clock.setTimeZone(timeZone);
	_local_clock.adjustTimeZone();
}
function startClockTimer() {
	_local_clock.setTime(_local_clock.getTime() + 1000);
	_local_clock.adjustTimeZone();
	setTimeout("startClockTimer()", 1000);
}
function getLocalClockDate() {
	return _local_clock;
}
function getLocalTimeString() {

	var clock_hours = _local_clock.getHours();
	var clock_minutes = _local_clock.getMinutes();
	var clock_seconds = _local_clock.getSeconds();
	if (clock_hours < 10){
		clock_hours = "0" + clock_hours;
	}
	if (clock_minutes < 10){
		clock_minutes = "0" + clock_minutes;
	}
	if (clock_seconds < 10){
		clock_seconds = "0" + clock_seconds;
	}
	return clock_hours + ":" + clock_minutes + ":" + clock_seconds;
}
function getLocalDateString() {
	var month = _local_clock.getMonth()+1;
	var date = _local_clock.getDate();
	if (month < 10){
		month = "0" + month;
	}
	if (date < 10){
		date = "0" + date;
	}
	return _local_clock.getFullYear()+"-"+month+"-"+date;
}
///////////////////////////

String.prototype.bytes = function(){
    var str = this;
    var l = 0;
    for (var i = 0; i < str.length; i++) 
        l += (str.charCodeAt(i) > 128) ? 2 : 1;
    return l;
}

//byte수 체크
function chkBytes(sz, obj, e){
	if (!e) var e = window.event;
    if (obj.value.bytes() > sz) {
        if (e.keyCode != '8') {//백스페이스는 지우기작업시 바이트 체크하지 않기 위해서
        	return true;
        }
    }
    return false;
}

function cutText(sz, obj){
    var tmpStr;
    var temp = 0;
    var onechar;
    var tcount = 0;
    
    tmpStr = new String(obj.value);
    temp = tmpStr.length;
    for (var k = 0; k < temp; k++) {
        onechar = tmpStr.charAt(k);
        if (escape(onechar).length > 4) {
            tcount += 2;
        }
        else if (onechar != '\r') {
            tcount++;
        }
        else {
            tcount++;
        }
        
        if (tcount > sz) {
            tmpStr = tmpStr.substring(0, k);
            break;
        }
    }
    return tmpStr;
    
}
