<!--
// --------------------------------------------
// °ø¿ë object
// created by junsang_cho
//					2006.05.08
// --------------------------------------------

var SERVE = new function(){
	this.Elem = function(elem){
		var el = null;
		if(document.getElementById(elem)){
			el = document.getElementById(elem);
		}else if(document.getElementsByName(elem).length > 0){
			el = document.getElementsByName(elem);
		}else{
			el = null;
		}
		return el;
	}

	this.Dom;
	this.Util = function(){
		this.RegExp;
	}

	this.Xml;
}


//--------------------------
//Dom °ü·Ã object
//--------------------------
SERVE.Dom = new function(){
	this.Focus = function(elem, msg){
		el = SERVE.Elem(elem);
		if(el){
			if(msg)	alert(msg);
			el.focus();
		}
	}
	this.Clear  = function(elem, msg){
		el = SERVE.Elem(elem);
		if(el){
			if(msg)	alert(msg);
			el.value = '';
			el.focus();
		}
	}

	this.setStyle = function(elem, stylePropertyName, strVal){
		el = SERVE.Elem(elem);
		if(el)			el.style[stylePropertyName] = strVal;
	}
	this.getStyle = function(elem, stylePropertyName){
		el = SERVE.Elem(elem);
		return ((el)	? el.style[stylePropertyName] : '');
	}

	this.Disabled = function(elem, val){
		el = SERVE.Elem(elem);
		if(val!='undefined'){
			if(el)		el.disabled = val;
		}else{
			return ((el) ? el.disabled : false);
		}
	}
	this.Checked = function(elem, val){
		el = SERVE.Elem(elem);
		if(val!='undefined' || val==null){
			if(el)	el.checked = val;
		}else{
			return ((el) ? el.checked : false);
		}
	}

	this.setInnerHTML = function(elem, strHtml){
		el = SERVE.Elem(elem);
		if(el)		el.innerHTML = strHtml;
	}
	this.getInnerHTML = function(elem){
		el = SERVE.Elem(elem);
		return ((el) ? el.innerHTML : '');
	}

	this.Src = function(elem, strSrc){
		el = SERVE.Elem(elem);
		if(el)	el.src = strSrc;
	}

	//set attribute
	this.setAttributeValue = function(elem, attri, val){
		el = SERVE.Elem(elem);
		if(el){
			if(SERVE.Util.getNavigatorType()==1){
				var st = document.createAttribute(attri);
				   st.value = val;
				   el.setAttributeNode(st);
			}else{
				el.setAttribute(attri, val);
			}
		}
	}

	//select-one element
	this.Options = new function(){
		this.Add = function(elem, idx, text, value, selectedflag){
			el = SERVE.Elem(elem);
			if(el) el.options[idx] = new Option(text, value); 
			if (selectedflag)
			{
				el.options[idx].selected = true;
			}
		}

		this.setLen = function(elem, len){
			el = SERVE.Elem(elem);
			if(el) el.options.length = len;
		}
		this.getLen = function(elem){
			el = SERVE.Elem(elem);
			return ((el) ? el.options.length : null); 
		}

		this.getSelectedIndex = function(elem){
			el = SERVE.Elem(elem);
			return ((el) ? el.options.selectedIndex : -1);
		}
		this.setSelectedIndex = function(elem, idx){
			el = SERVE.Elem(elem);
			if(el)		el.options[idx].selected = true;
		}

		this.getValue = function(elem, idx){
			el = SERVE.Elem(elem);
			if(idx){
				return ((el) ? el.options[idx].value : '');
			}else{
				return ((el) ? el.options[el.selectedIndex].value : '');
			}
		}
		this.getText = function(elem){
			el = SERVE.Elem(elem);
			return ((el) ? el.options[el.selectedIndex].text : '');
		}
		this.setValue = function(elem, val){
			el = SERVE.Elem(elem);
			if(el) el.value = val; 
		}

	}

	//get element value
	this.getValue = function(elem){
		el = SERVE.Elem(elem);
		if(el){
			var el_temp;
			if(typeof(el.type) != 'undefined'){
				el_temp = el;
			}else if(el.length > 0){
				el_temp = el[0];		//radio, checkbox
			}else{
				el_temp = el;
			}
				
			switch (el_temp.type) {
				// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
				return el.value;
				break;
				// Radio buttons
			case 'radio':
				var formElem = document.getElementsByName(elem);
				for(var i=0; i < formElem.length; i++){
					if (formElem[i].checked) {
						return (formElem[i].value);
						break;
					}
				}
				return '';
				break;
					// Checkboxes
			case 'checkbox':
				var formElem = document.getElementsByName(elem);
				var strVal = '';
				for(var i=0; i < formElem.length; i++){
					if (formElem[i].checked) {
						// Append value as comma-delimited string
						if(strVal==''){
							strVal = formElem[i].value;
						}else{
							strVal += ',' + formElem[i].value;
						}
					}
				}
				return strVal;
				break;		
			}
		}else{
			return '';
		}
	}

	//set element value
	this.setValue = function(elem, val, idx){
		el = SERVE.Elem(elem);
		if(el){
			var el_temp;
			if(typeof(el.type) != 'undefined'){
				el_temp = el;
			}else if(el.length > 0){
				el_temp = el[0];		//radio, checkbox
			}else{
				el_temp = el;
			}
				
			switch (el_temp.type) {
			// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
				el.value = val;
				break;
			// Radio buttons
			case 'radio':
				var formElem = document.getElementsByName(elem);
				for(var i=0; i< formElem.length ; i++){
					if(idx){
						if(i==idx)	 formElem[i].checked = true;
					}else{
						if(formElem[i].value == val)	formElem[i].checked = true;
					}
				}
				break;
				// Checkboxes
			case 'checkbox':
				var formElem = document.getElementsByName(elem);
				var tmp_val, tmp_idx;		
				(val.indexOf(","))	? tmp_val = val.split(",") : tmp_val = val ;
				(idx) ? ((idx.indexOf(",")) ? tmp_idx = idx.split(",") : tmp_idx = idx) : tmp_idx = null;

				for(var i=0; i < formElem.length; i++){
					if(tmp_idx){
						if (tmp_idx.length > 0){
							if(tmp_idx == i)	formElem[i].checked = true;
						}else{
							formElem[tmp_idx].checked = true;
						}
					}else{
						if(tmp_val.length > 0){
							for(var k=0; k < tmp_val.length ; k++){
								if(formElem[i].value == tmp_val[k])	formElem[i].checked = true;
							}
						}else{
							if(formElem[i].value == tmp_val)	formElem[i].checked = true;
						}
					}
				}
				break;		
			}
		}
	}
	
	//ÀÌ¹ÌÁö ·Îµå½ÇÆÐÃ³¸®
	this.onError = function(elem,defaultImage){
		el = SERVE.Elem(elem);
		if(el){
			el.src=defaultImage;
		}
	}

}

//------------------------------
//°øÅëÀ¸·Î »ç¿ëÇÒ¼ö ÀÖ´Â ÇÔ¼öµé...
//------------------------------
SERVE.Util = new function(){
	//ºê¶ó¿ìÁ® Å¸ÀÔÈ®ÀÎ
	this.getNavigatorType = function() {
		if ( navigator.appName == "Microsoft Internet Explorer" )
			return 1;  
		else if ( navigator.appName == "Netscape" )
			return 2;	
		else 
			return 0;
	}

	//»õÃ¢¶ç¿ì±â
	this.openWin = function(file_URL, W_size, H_size, menubar_YN, status_YN, scroll_YN, resizable_YN,toolbar_YN, hotkeys_YN, left, top) {
		var w_option="";
		if(W_size=="fullscreen"){
			w_option = "fullscreen=yes";
		}else{
			(W_size)			? w_option += "width="+W_size : w_option +="width=800";
			(W_size)			? w_option +=",height="+H_size : w_option +=",height=600";
			(menubar_YN)	? w_option +=",menubar="+menubar_YN : w_option +=",menubar=no";
			(status_YN)		? w_option +=",status="+status_YN : w_option +=",status=no";
			(scroll_YN)			? w_option +=",scrollbars="+scroll_YN : w_option +=",scrollbars=no";
			(resizable_YN)	? w_option +=",resizable="+resizable_YN : w_option +=",resizable=no";
			(toolbar_YN)		? w_option +=",toolbar="+toolbar_YN : w_option +=",toolbar=no";
			(hotkeys_YN)		? w_option +=",hotkeys="+hotkeys_YN : w_option +=",hotkeys=no";
			(left)					? w_option +=",left="+left : "" ;
			(top)					? w_option +=",top="+top : "" ;
		}
		window.open(file_URL,'', w_option);
		return;
	}

	//trim
	this.trim = function(s){
		s = s.replace(/^\s*/,'').replace(/\s*$/, '');
		return s;
	}

	//ÀÔ·Â°ª byte Ã¼Å©
	this.lenB = function(elem , maxCnt)
	{
		el = SERVE.Elem(elem);
		if(el){
			var len = 0;
			var str;
			var count = 0;
			var temp;
			var tNameCnt;

			tNameCnt = elem+'Cnt';		//Ä«¿îÆ® Ç¥½Ã element id;

			str = new String(el.value);
			len = str.length;

			for (k=0 ; k < len ; k++){
				temp = str.charAt(k);
				if (escape(temp).length > 4) {
					count += 1;
				}
				else if (temp == '\r' && str.charAt(k+1) == '\n') { // \r\nÀÏ °æ¿ì
					count += 1;
				}
				else if (temp != '\n') {
					count += 0.5;
				}
			}

			if (count > parseInt(maxCnt)){
				el.blur();
				var msg = "ÇÑ±Û:"+parseInt(maxCnt)+"ÀÚ, ¿µ¹®:"+ (2 * parseInt(maxCnt))+"ÀÚ ÀÌ³»·Î ÀÔ·ÂÇÏ¼¼¿ä.\n Á¤»óÀûÀ¸·Î ÀÔ·ÂÀÌ ¾ÈµË´Ï´Ù.";
				this.cutB(elem, maxCnt)
				SERVE.Dom.Focus(elem, msg);
			}
			else{
				if(SERVE.Elem(tNameCnt))	 	SERVE.Dom.setValue(tNameCnt , parseInt(maxCnt) - parseInt(count) );
			}
		}else{
		}
	}

	//±ÛÀÚ¼ö ÀÚ¸£±â
	this.cutB = function(elem, maxCnt) {
		el = SERVE.Elem(elem);
		if(el){
			var str,msg;
			var len=0;
			var temp;
			var count;
			count = 0;

			msg = SERVE.Dom.getValue( elem );
			str = new String(msg);
			len = str.length;

			for(k=0 ; k < len ; k++) {
				temp = str.charAt(k);
				if(escape(temp).length > 4) {
					count += 1;
				}
				else if (temp == '\r' && str.charAt(k+1) == '\n') { // \r\nÀÏ °æ¿ì
					count += 1;
				}
				else if(temp != '\n') {
					count += 0.5;
				}

				if(count > parseInt(maxCnt) ) {
					str = str.substring(0,k);
					break;
				}
			}
			
			SERVE.Dom.setValue( elem , str );
			this.lenB(elem, maxCnt);
		}
	}

	this.m2p = function(m)                           // m2 ¸¦ ÆòÀ» ¹Ù²Ù¾î ÁÖ´Â°Í
	{
		return ((m) ? Math.round(m*3.3058*100)/100 : 0);
	}
	this.p2m = function(p)                            // ÆòÀ» m2 ·Î ¹Ù²Ù¾î ÁÖ´Â°Í
	{
		return ((p) ? Math.round(p*0.3025*100)/100 : 0);
	}

	//ÇÑÀÚÃ¼Å©
	this.isHanja = function(strVal){
		var c=escape(str);
		c=c.replace('%','');
		return ((c >= 'u4E00' && c<= 'u9FFF') ? true : false);
	}

	//flash
	this.flash = function(filename, width, height, wmode, quality, bgcolor, scale){
		var str_quality = (quality) ? quality : "high";
		var str_wmode = (wmode) ? wmode : "opapue" ;
		var str = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + width +'" height="'+ height +'">';
			str +='<PARAM NAME="movie" value="'+ filename +'"/>';
			str +='<PARAM NAME="quality" VALUE="'+ str_quality +'"/>';
			str +='<PARAM NAME="wmode" value="'+ str_wmode +'"/>';
			if(bgcolor) str +='<PARAM NAME="bgcolor" VALUE="'+ bgcolor +'"/>';
			if(scale) str +='<param name="scale" value="'+ scale +'"/>';
			str +='<param name="allowScriptAccess" value="always"/>';

			str +='<EMBED TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ';
			str +=' src="'+ filename +'" width="'+ width +'" height="'+ height +'" wmode="'+ wmode +'" ';
			if(bgcolor) str +=' bgcolor="' + bgcolor +'" ';
			if(scale) str +=' scale="' + scale +'" ';
			str +=' allowScriptAccess="always"';
			str +='></EMBED>';
			str +='</OBJECT>';
		document.write(str);
	}

	//*************************
	//Á¤±Ô½Ä
	//*************************
	this.RegExp = new function(){
		var regNum =/^[0-9]+$/;			//¼ýÀÚ¸¸...
		var regMinusNum =/^[-]{0,1}[0-9]+$/;			//¼ýÀÚ¸¸(À½¼ö°¡´É)...
		var regPhone =/^[0-9]{1}[0-9-]{1,14}$/;		//ÀüÈ­¹øÈ£
		var regMobile =/^[0-9]{3}-[0-9]{3,4}-[0-9]{4}$/;			//ÇÚµåÆù¹øÈ£
		var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;		//¸ÞÀÏ
		var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;			//µµ¸ÞÀÎ
		var regAlpha =/^[a-zA-Z]+$/;		//¿µ¹®¸¸...
		var regHost =/^[a-zA-Z-]+$/;		//¿µ¹®°ú - ¸¸..
		var regHangul =/[°¡-ÆR¤¡-¤¾]/;				// ÇÑ±Û..
		var regHangulEng =/[°¡-ÆRa-zA-Z]/;			//ÇÑ±Û°ú¿µ¹®...
		var regHangulOnly =/^[°¡-ÆR]*$/;				//ÇÑ±Û¸¸...
		var regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,15}$/;		//¾ÆÀÌµð 4ÀÚ~15ÀÚ ÀÌ³» ¿µ¹®°ú¼öÀÚ _,- ¸¸ »ç¿ë, Ã¹ÀÚ ¿µ¹®
		var regDate =/^[1-2]{1}[0-9]{3}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$/;				//³¯Â¥Çü½Ä
		var regDong = /^[°¡-¹Ùa-gA-G0-9]/;
		var regDecimal =/^[.0-9]+$/;	//¼Ò¼öÁ¡ Æ÷ÇÔ
		var regHangulEngNum =/[°¡-ÆRa-zA-Z0-9]/;			//ÇÑ±Û°ú ¿µ¹®°ú ¼ýÀÚ...

		this.match = function(pattern, chkVal){
			var patten = eval(pattern);
			if(chkVal){
				return pattern.test(chkVal);
			}else{
				return false;
			}
		}

		this.replace = function(pattern, chkVal, repStr){
			var patten = eval(pattern);
			chkVal.replace(pattern, repStr);
		}
	}

	this.centerOnWindow = function(elemID){
	   // 'obj' is the positionable object
		var obj = SERVE.Elem(elemID);
		// window scroll factors
		var scrollX = 0, scrollY = 0;
		if (document.body && typeof document.body.scrollTop != "undefined") {
			scrollX += document.body.scrollLeft;
			scrollY += document.body.scrollTop;
			if (document.body.parentNode && 
				typeof document.body.parentNode.scrollTop != "undefined") {
				scrollX += document.body.parentNode.scrollLeft;
				scrollY += document.body.parentNode.scrollTop;
			}
		} else if (typeof window.pageXOffset != "undefined") {
			scrollX += window.pageXOffset;
			scrollY += window.pageYOffset;
		}
		var x = Math.round((this.getInsideWindowWidth()/2) - 
			(parseInt(obj.style.width)/2)) + scrollX;
		var y = Math.round((this.getInsideWindowHeight()/2) - 
			(parseInt(obj.style.height)/2)) + scrollY - 100;
		var y1 = parseInt(obj.style.height) + scrollY;

		if(this.getNavigatorType()!=1){
			x = (x+"px");
			y = (y+"px");
			y1 = (y1+"px");
		}
		SERVE.Dom.setStyle(elemID,"left",x);
		SERVE.Dom.setStyle(elemID,"top",y1);
	}

	var isIE6CSS;
	// Return the available content height space in browser window
	this.getInsideWindowHeight = function(){
		if (window.innerHeight){
			return window.innerHeight;
		} else if (isIE6CSS) {
			// measure the html element's clientHeight
			return document.body.parentElement.clientHeight;
		} else if (document.body && document.body.clientHeight) {
			return document.body.clientHeight;
		}
		return 0;
	}
	// Return the available content width space in browser window
	this.getInsideWindowWidth = function(){
		if (window.innerWidth) {
			return window.innerWidth;
		} else if (isIE6CSS) {
			// measure the html element's clientWidth
			return document.body.parentElement.clientWidth;
		} else if (document.body && document.body.clientWidth) {
			return document.body.clientWidth;
		}
		return 0;
	}

	//progress bar
	this.ProgressBar = new function(){
		this.create = function(w){
			document.write('<div id="progress_bar" style="width:'+w+';text-align:left;border:0;background-color:#FFFFFF"></div>');
		}
		
		this.start = false;
		this.width =  0;	
		this.play = function(){
			if(this.start){
				this.width += 1;
				var strHtml = "<table width='"+this.width+"'><tr><td height='16' bgcolor='blue'><hr size='0' style='color:blue' noshade='noshade' width='"+this.width+"'/></td></tr></table>";
				try{
					SERVE.Dom.setInnerHTML("progress_bar",strHtml);
					if(this.start)	setTimeout('SERVE.Util.ProgressBar.play()',500)
				}catch(e){
				}
			}else{
				this.width = 0;
				SERVE.Dom.setInnerHTML("progress_bar","");
			}
		}
	}

	//·¹ÀÌ¾î ÆË¾÷Ã¢ »ý¼ºÇÏ±â
	this.PopupWin = new function(){
		this.width = 481;
		this.height = 200;
		this.zindex = 98;
		this.left = 300;
		this.top = 200;
		this.progressbar = 0;		//progressbar width¸¦ ¼³Á¤
		this.onclick = 'SERVE.Dom.setStyle(\'Action_div\',\'display\',\'none\');SERVE.Dom.setStyle(\'Action_ifr\',\'display\',\'none\');';
		this.position = "center"

		this.create = function(){
			var win = ''
			win += '<iframe id="Action_ifr" src="" frameborder="0" style="position:absolute;display:none;z-index:'+this.zindex+';background-color:#ffefd5;border:1px solid #b4b4b4;padding:0px;text-align:center;left:'+this.left+';top:'+this.top+';width:'+this.width+';height:'+this.height+';"></iframe>';
			win += '<div id="Action_div" style="position:absolute;display:none;z-index:'+(this.zindex + 1)+';background-color:#ffefd5;border:1px solid #b4b4b4;padding:0px;text-align:center;left:'+this.left+';top:'+this.top+';width:'+this.width+';height:'+this.height+';">';
			win += '<div style="border:3px solid #dadada;  width:'+this.width+';">';
			win += '<div id="Action_div_msg" style="height:180px;font-size:9pt;backgound:#F3F5FC; color:#464646;padding:8px 2px 2px 8px">';
			win += '<p align="center"><font size="4pt" color="#CC3366"><b>"" Ã³¸®ÁßÀÔ´Ï´Ù. Àá½Ã¸¸ ±â´Ù·ÁÁÖ¼¼¿ä.""</b></font>';
			if (this.progressbar >0){
				win += '<div id="progress_bar" style="width:'+this.progressbar+';text-align:left;border:0;background-color:#FFFFFF"></div>';
			}
			win += '</p></div>';
			win += '<div style="background:#f4f4f4;font-size:12px;height:25px;padding-top:2px;">';
			win += '<div style="font-size:9pt;color:blue">';
			win += "* »õ·Î¿î Àû¿ë»çÇ×Àº È®ÀÎÇÏ½Ã·Á¸é, ¾Æ·¡ 'È®ÀÎ'¹öÆ°À» Å¬¸¯ÇÏ½Ã°Å³ª,<br/> '»õ·Î°íÄ§(F5)'À» ÇØÁÖ½Ã¸é µË´Ï´Ù.";
			win += '</div>';
			win += '<input type="button" style="border:solid 1px;margin-bottom:3px" id="Action_btn" value=" È® ÀÎ " onclick="'+ this.onclick +'"/>';
			win += '</div>';
			win += '</div>';
			win += '</div>';
			document.write(win);

			if(this.position=='center'){
				SERVE.Util.centerOnWindow("Action_ifr");
				SERVE.Util.centerOnWindow("Action_div");
			}
		}

		this.message = function(msg){
			if(msg=='undefined' || msg==null || msg==''){
				msg = '<p align="center"><font size="4pt" color="#CC3366"><b>"" Ã³¸®ÁßÀÔ´Ï´Ù. Àá½Ã¸¸ ±â´Ù·ÁÁÖ¼¼¿ä.""</b></font></p>';
			}
			SERVE.Dom.setInnerHTML("Action_div_msg",msg);
		}

		this.display = function(val){
			SERVE.Dom.setStyle("Action_ifr","display",val);
			SERVE.Dom.setStyle("Action_div","display",val);
		}

		this.Focus = function(){
			SERVE.Dom.Focus("Action_btn");
		}
	}

	//comma Ã³¸®
	this.formatCommas = function(numString) {
		if(isNaN(numString)){
			return numString;
		}else{
			var tempNum1, tempNum2;
			numString = numString.toString();
			if(numString.indexOf(".")!=-1){
				var tempNum = numString.split(".");
				tempNum1 = tempNum[0];
				tempNum2 = "."+tempNum[1];
			}else{
				tempNum1 = numString;
				tempNum2 = "";
			}
			var re = /(-?\d+)(\d{3})/;
			while (re.test(tempNum1)) {
				tempNum1 = tempNum1.replace(re, "$1,$2");
			}
			return tempNum1+tempNum2;
		}
	}

	//comma Á¦°Å
	this.stripCommas = function(numString){
		var re = /,/g;
		return numString.replace(re,"");
	}


	//list navigator
	this.pageNavigator = function( pageSize, blkSize, totalRowCount, currentPage, link ) {

		var firstImg  = "<img src=/image/community/common/btn_prev02.gif width=15 height=15 hspace=3 border=0>"
		var prevImg   = "ÀÌÀü"
		var nextImg   = "´ÙÀ½"
		var lastImg   = "<img src=/image/community/common/btn_next02.gif width=15 height=15 hspace=3 border=0>"


		if( totalRowCount * pageSize * blkSize == 0 ) return "";

		firstPage = 1;
		lastPage  = Math.ceil( totalRowCount / pageSize );

		currentPage = ( currentPage < 1 ) ? 1 : currentPage;
		currentPage = ( currentPage > lastPage ) ? lastPage : currentPage;

		currentBlkFirstPage = Math.floor((currentPage-1)/blkSize) * blkSize + 1;
		prevBlkLastPage     = currentBlkFirstPage - 1;
		nextBlkFirstPage    = currentBlkFirstPage + blkSize;

		toFirst = (currentPage==firstPage) ? firstImg : "<a href='" +link+firstPage+"'>"+firstImg+"</a>";		//Ã¹ÆäÀÌÁö
		toLast  = (currentPage==lastPage)  ? lastImg  : "<a href='" +link+lastPage+ "'>"+lastImg +"</a>";	//¸¶Áö¸·ÆäÀÌÁö

		toPrev = (prevBlkLastPage<=firstPage) ? prevImg : "<a href='" +link+prevBlkLastPage+ "' class='icon_gray_before'>" +prevImg+"</a>";	//ÀÌÀü ÆäÀÌÁö ºí·°
		toNext = (nextBlkFirstPage>lastPage)  ? nextImg : "<a href='" +link+nextBlkFirstPage+"' class='icon_gray_next'>"+nextImg+"</a>";		//´ÙÀ½ ÆäÀÌÁö ºí·°

		blkPageNavi = "";
		for( i=currentBlkFirstPage; i<currentBlkFirstPage+blkSize && i<=lastPage; i++ ) {
			blkPageNavi += (i==currentPage) ? "<a href='"+link+i+"' class='no_line_text_green'>"+i+"</a>" : "<a href='"+link+i+"' class='no_line_bg'>"+i+"</a> ";
		}

		pageNavi = '';
		pageNavi = '<span class="maemul_list_select">';
		pageNavi += toPrev;
		pageNavi += blkPageNavi;
		pageNavi += toNext;
		pageNavi += '</span>'

		return pageNavi;
	}

	//list navigator
	this.pageNavigatorNew = function( pageSize, blkSize, totalRowCount, currentPage, link ) {

		var firstImg  = "<img src='http://img.serve.co.kr/reserve/common/btn/btn_pre.gif' border='0'>"
		var prevImg   = "<img src='http://img.serve.co.kr/reserve/common/btn/btn_first.gif' width=13 height=14 hspace=3 border=0>"
		var nextImg   = "<img src='http://img.serve.co.kr/reserve/common/btn/btn_end.gif' width=13 height=14 hspace=3 border=0>"
		var lastImg   = "<img src='http://img.serve.co.kr/reserve/common/btn/btn_nx.gif' border='0'>"


		if( totalRowCount * pageSize * blkSize == 0 ) return "";

		firstPage = 1;
		lastPage  = Math.ceil( totalRowCount / pageSize );

		currentPage = ( currentPage < 1 ) ? 1 : currentPage;
		currentPage = ( currentPage > lastPage ) ? lastPage : currentPage;

		currentBlkFirstPage = Math.floor((currentPage-1)/blkSize) * blkSize + 1;
		prevBlkLastPage     = currentBlkFirstPage - 1;
		nextBlkFirstPage    = currentBlkFirstPage + blkSize;

		toFirst = (currentPage==firstPage) ? firstImg : "<a href='" +link+firstPage+"'>"+firstImg+"</a>";		//Ã¹ÆäÀÌÁö
		toLast  = (currentPage==lastPage)  ? lastImg  : "<a href='" +link+lastPage+ "'>"+lastImg +"</a>";	//¸¶Áö¸·ÆäÀÌÁö

		toPrev = (prevBlkLastPage<=firstPage) ? prevImg : "<a href='" +link+prevBlkLastPage+ "'>" +prevImg+"</a>";	//ÀÌÀü ÆäÀÌÁö ºí·°
		toNext = (nextBlkFirstPage>lastPage)  ? nextImg : "<a href='" +link+nextBlkFirstPage+"'>"+nextImg+"</a>";		//´ÙÀ½ ÆäÀÌÁö ºí·°

		blkPageNavi = "";
		blkPAgeNavi = "<span class='SV1_wp_pagenavi'>";
		for( i=currentBlkFirstPage; i<currentBlkFirstPage+blkSize && i<=lastPage; i++ ) {
			blkPageNavi += (i==currentPage) ? "<a href='"+link+i+"'><span class='SV1_current'>"+i+"</span></a> | " : "<a href='"+link+i+"'>"+i+"</a> | ";
		}
		blkPAgeNavi = "</span>"

		pageNavi = '';
		
		pageNavi += toPrev;
		pageNavi += blkPageNavi;
		pageNavi += toNext;
		
		return pageNavi;
	}

	//get cookie
	this.getCookie = function(name) {
		var aCookie = document.cookie.split("; ");
		for (var i=0; i < aCookie.length; i++)
		{
			var aCrumb = aCookie[i].split("=");
			if (name == unescape(aCrumb[0]))
			return unescape(unescape(aCrumb[1]));
		}
		return ""	;
	}
	
	//set cookie
	this.setCookie = function( name, value, Dday, domain ) {
		var todayDate = new Date();
		if(Dday==null || Dday=='undefined')	Dday=365;
		todayDate.setDate( todayDate.getDate()+Dday);
		var cookie_str;
		if(domain=='undefined' || domain==null)	domain="serve.co.kr"
		document.cookie = name + "=" + unescape(escape( value )) + "; path=/;expires="+ todayDate.toGMTString() +"; domain="+domain+";";		
	}

	//get cookie
	this.getCookie_key = function(strKey, name) {
		var aCookie = document.cookie.split("; ");
		var keyCookie=""
		for (var i=0; i < aCookie.length; i++)
		{
			var aCrumb = aCookie[i].split("=");
			if (strKey == unescape(aCrumb[0]))
			keyCookie = unescape(unescape(aCookie[i].replace(aCrumb[0]+'=','')));
		}
		if(keyCookie!=""){
			var kCookie = keyCookie.split("&");
			for (var i=0; i < kCookie.length; i++)
			{
				var kCrumb = kCookie[i].split("=");
				if (name == kCrumb[0]){
					return kCrumb[1];
				}
			}
			return ""	;
		}
	}
	
	//set cookie - subkey
	this.setCookie_key = function( name, subkey, value, Dday, domain ) {
		var todayDate = new Date();
		if(Dday==null || Dday=='undefined')	Dday=365;
		todayDate.setDate( todayDate.getDate()+Dday);
		
		var aCookie = document.cookie.split("; ");
		var keyCookie=""
		
		for (var i=0; i < aCookie.length; i++)
		{
			var aCrumb = aCookie[i].split("=");
			if (name == unescape(aCrumb[0]))
			keyCookie = unescape(unescape(aCookie[i].replace(aCrumb[0]+'=','')));
		}
			
		var cookie_str = subkey+'='+escape(escape( value ));
		
		if(keyCookie!="")
		{
			if(keyCookie.indexOf(subkey+"=") != -1)
			{
				var kCookie = keyCookie.split("&");
				var kCookie_temp=""
				//°°Àº subkey ÀÖÀ¸¸é..Á¦¿Ü½ÃÅ´.
				for (var i=0; i < kCookie.length; i++)
				{
					var kCrumb = kCookie[i].split("=");
					if (subkey != kCrumb[0])
					{
						if (kCookie_temp!="") kCookie_temp += "&";
						kCookie_temp += kCrumb[0] +"="+ escape(escape( kCrumb[1] ));
					}
				}
				if (kCookie_temp != "")
				{
					cookie_str = kCookie_temp + '&'+subkey+'='+escape(escape( value )); 
				}
				else
				{
					cookie_str = subkey+'='+escape(escape( value )); 
				}
			}
			else
			{
				cookie_str = escape(keyCookie) + '&'+subkey+'='+escape(escape( value ));
			}
		}
		if(domain=='undefined' || domain==null)	domain="serve.co.kr"
		document.cookie = name + "=" + cookie_str + "; path=/;expires="+ todayDate.toGMTString() +"; domain="+domain+";";
	}
	
	//ÇØÅ·À§ÇèÀÌ ÀÖ´Â Tag È®ÀÎ Ã³¸®.
	this.unSafeTag = function(str){
		var validTag = new Array("javascript>","script>","iframe>","javascript:");
		str = str.toLowerCase();
		//alert(str);
		for(i=0; i < validTag.length; i++){
			if (str.indexOf(validTag[i]) != -1){
				alert("script, Javascript, iframe ÅÂ±×´Â È¨ÆäÀÌÁö°¡ ±úÁö°Å³ª ÇØÅ·µîÀÇ À§ÇèÀÌ ÀÖÀ¸¹Ç·Î Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.");
				return false;
			}
		}
	} 

	//ÅÂ±×, 5°³±îÁö ÀÔ·Â°¡´É
	this.chkTag = function(str){
		var validTag = str.split(',');	
		for (var i=0; i < validTag.length; i++) {
			if (validTag.length > 5) {
				alert("ÅÂ±×´Â ´Ü¾î·Î 5°³±îÁö, 5¹øÂ° ´Ü¾î µÚ¿¡ ½°Ç¥(,)´Â ¾øÀÌ µî·ÏÇØÁÖ½Ê½Ã¿À.");
				return false;
			}
		}
	} 

	//get¹æ½ÄÀ¸·Î Àü´ÞµÈ °ª ¾Ë¾Æ³»±â
	this.getQuerystring = function(str, param){
		var ret='';
		if(str.length > 0){
			if(str.indexOf('?') != -1){
				var str_temp;
				str_temp = str.substring(str.indexOf('?') + 1);
				var str_arr = str_temp.split('&');
				var str_arr1;
				for(var i=0; i< str_arr.length; i++){
					str_arr1 = str_arr[i].split('=');
					if(str_arr1[0] == param){
						ret = unescape(str_arr1[1]);
						break;
					}
				}
			}
		}
		return ret;
	}

	//form °ªµéÀ» stringÀ¸·Î ¿¬°áÇØ¼­ ¹Þ¾Æ¿Â´Ù.
	this.form2string = function(formId){
		var form=document.getElementById(formId);
		var qs="",fieldname="",fieldtype="",el;	
		for(var i=0;i<form.elements.length;i++)
		{
			el = form.elements[i];
			fieldname = el.name;
			fieldtype = el.type;
			if(fieldtype=='checkbox' || fieldtype =='radio'){
				fieldvalue = SERVE.Dom.getValue(fieldname);
				i = i + (form.elements[fieldname].length - 1);
			}else{
				fieldvalue = escape(el.value);
			}
			if(qs!="") qs+="&";
			qs += (fieldname+"="+fieldvalue);
		}
		//alert(qs);
		return qs;
	}
	
	this.masterIdCheck = function(emp_seq){
		emp_seq = new RegExp(emp_seq); 
		var mstId = '483613 , 457913 , 893928 , 813477 , 713079, 942348'; //test1 , test , jineyam ,´ã´çÀÚ , akwcna248, mogwai2

		if(mstId.match(emp_seq)){
			return true;
		}else{
			return false;
		}
	}

	//tab ¸¶¿ì½º¿À¹ö Æã¼Ç divId:µð½ºÇÃ·¹ÀÌ¿µ¿ª¾ÆÀÌµð ,tabNum:ÇöÀçÅÇ¹øÈ£,tabLength:ÃÑÅÇ°³¼ö,className:ÅÇÅ¬·¡½º³×ÀÓ(ÅÇÀÌ¹ÌÁö)
	this.changeTab = function(divId,tabNum,tabLength,className){
		
		var tabId	=	divId+'Tab';
		var hrefId	=	divId+'Href';
		var moreId	=	divId+'More';
		className	=	className.split("|");

		for (i=1;i<tabLength+1;i++)	{
			if (tabNum == i){
				SERVE.Dom.setStyle(divId+i,'display','');

				if (SERVE.Elem(tabId+i) !== null){
					SERVE.Dom.setAttributeValue(tabId+i, "class", className[0]);
					if (SERVE.Elem(moreId) !== null){
						if (SERVE.Elem(hrefId+i) == null){
							SERVE.Elem(moreId).href = SERVE.Elem(tabId+i).href; 						
						}else{
							SERVE.Elem(moreId).href = SERVE.Elem(hrefId+i).href;
						}
					}
				}
			}
			else{	
				SERVE.Dom.setStyle(divId+i,'display','none');
				if (tabId !== ''){
					SERVE.Dom.setAttributeValue(tabId+i, "class", className[1]);
				}
			}
		}
	}

}



// mozila¿¡¼­µµ selectNodes/selectSingleNode »ç¿ëÇÏ±âÀ§ÇØ ±âº» ¼ÂÆÃ
// mozXPath [http://km0ti0n.blunted.co.uk/mozxpath/] km0ti0n@gmail.com
// Code licensed under Creative Commons Attribution-ShareAlike License 
// http://creativecommons.org/licenses/by-sa/2.5/
if( document.implementation.hasFeature("XPath", "3.0") )
{
	XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
	{
		if( !xNode ) { xNode = this; } 

			var oNSResolver = this.createNSResolver(this.documentElement)
			var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
			var aResult = [];
			for( var i = 0; i < aItems.snapshotLength; i++)
			{
				aResult[i] =  aItems.snapshotItem(i);
			}
  
			return aResult;
	}
	
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
	{
		if( !xNode ) { xNode = this; } 

			var xItems = this.selectNodes(cXPathString, xNode);
			if( xItems.length > 0 )
			{
				return xItems[0];
			}
			else
			{
				return null;
			}
	}

	Element.prototype.selectNodes = function(cXPathString)
	{
		if(this.ownerDocument.selectNodes)
		{
			return this.ownerDocument.selectNodes(cXPathString, this);
		}
			else{throw "For XML Elements Only";}
	}

	Element.prototype.selectSingleNode = function(cXPathString)
	{ 
		if(this.ownerDocument.selectSingleNode)
		{
			return this.ownerDocument.selectSingleNode(cXPathString, this);
		}
		else{throw "For XML Elements Only";}
	}

}

SERVE.Xml = new function(){
	this.xmlHttp=function(url, functionName, strParam, strAsync, returnType, strDocName){
		var xmlReq = null;
		if(window.XMLHttpRequest){
			xmlReq =  new XMLHttpRequest();
		}
		else if(window.ActiveXObject){
			
			var libs = new Array('MSXML4','MSXML3','MSXML2','Microsoft');
			for (var i=0; i<libs.length; i++) {
			    try {
			        xmlReq = new ActiveXObject(libs[i]+".XMLHTTP");
			        break;
			    } catch(e) { continue; }
			}

			if (xmlReq == null) alert("XMLHttpRequest °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.");
/*			
			try{
				xmlReq = new ActiveObject("Msxml2.XMLHTTP");
			}catch(e){
				xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
			}
*/			
		}

		var Async = true;
		(strAsync!='undefined') ? ( Async = strAsync ) : (Async = true);
		xmlReq.open("post",url , Async);
		if (Async){
			xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
			xmlReq.setRequestHeader("Accept-Language","ko")
			xmlReq.onreadystatechange = function(){
																if(xmlReq.readyState==4)		//¿Ï·á»óÅÂ
																{
																	if(xmlReq.status == 200)		//Á¤»ó
																	{
																			var xmlDoc = null
																			if(document.domain){
																					xmlDoc = SERVE.Xml.loadXML(xmlReq.responseText);
																			}else{
																					xmlDoc = xmlReq.responseXML
																			}
																			if(functionName!='undefined')	 eval(functionName);
																	}else{
																		var xmlDoc;
																		xmlDoc = xmlReq.status
																		if(functionName!='undefined')	 eval(functionName);
																	}
																}
															}

		}
		xmlReq.send(strParam);
	}

	//xml string ÀÐ±â
	this.loadXML = function(strXml){
		if(window.ActiveXObject){
			var xmlParse = new ActiveXObject("Msxml2.DOMDocument.3.0");

			xmlParse.async = false;
			xmlParse.loadXML(strXml);

			if (xmlParse.parseError.errorCode != 0) {
			   var myErr = xmlParse.parseError;
			} else {
			   return xmlParse;
			}

		//		return xmlParse.documentElement;
		}else{
			var domParser = new DOMParser();
			var xmlDoc = domParser.parseFromString(strXml, 'application/xml');
			parseError = SERVE.Xml.checkForParseError(xmlDoc);
			if(parseError.errorCode == 0){
				return xmlDoc;
			}else{
				return null;
				alert(parseError.reason);
			}
		}
	}
	
	//xml parsing  ¿¡·¯Ã³¸®
	this.checkForParseError = function(xmlDocument) {
		var errorNamespace =
		'http://www.mozilla.org/newlayout/xml/parsererror.xml';
		var documentElement = xmlDocument.documentElement;
		var parseError = { errorCode : 0 };
		if (documentElement.nodeName == 'parsererror' && documentElement.namespaceURI == errorNamespace) {
			parseError.errorCode = 1;
			var sourceText =
			documentElement.getElementsByTagNameNS(errorNamespace, 'sourcetext')[0];
			if (sourceText != null) {
				parseError.srcText = sourceText.firstChild.data
			}
			parseError.reason = documentElement.firstChild.data;
		}
		return parseError;
	}

	//xml value °Ë»ö
	this.getNodeValue = function(xml, nodeName){
		if(xml){
			try{
				if(xml.selectSingleNode(nodeName).hasChildNodes()){
						return xml.selectSingleNode(nodeName).firstChild.nodeValue;
				}else{
					return '';
				}
			}catch(e){
		//		alert(nodeName);
		//		alert(e.message);
			}
		}
	}


}
//-->
