function isCapsLockOn()
{
	var c = (Browser.IE) ? window.BROWSERSAFE_EVENT.keyCode : window.BROWSERSAFE_EVENT.which;
	var shift = (Browser.IE) ? window.BROWSERSAFE_EVENT.shiftKey : (window.BROWSERSAFE_EVENT.modifier&Event.SHIFT_MASK);
	
	return (((c >= 65 && c <= 90) && !shift ) || ((c >= 97 && c <= 122) && shift));	
}
function isValidJUMINNo(no)
{
	var pattern = new RegExp('[0-9]{13}', 'i');
	if(pattern.exec(no) == null){ return false; }
	
	var last   = parseInt(no.charAt(12));
	var sum = 0;
	
	for(var i = 0; i < 12; i++)
	{
		sum += parseInt(no.charAt(i)) * (i%8+2);
	}
	
	return ( (11 - sum %11)%10 == last ); 
}
function isValidEmail(s)
{
	var pattern = new RegExp('^[_~a-zA-Z0-9\\-]+@[0-9a-zA-z]([0-9a-zA-Z\\-]+\\.[0-9a-zA-Z\\-]+)+[0-9a-zA-z]$', 'i');
	return (pattern.exec(s) != null);
}
function isValidPhone(s)
{
   var pattern = new RegExp('^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$', 'i');
   return (pattern.exec(s) != null);
}
function isValidCellPhone(s)
{
   var pattern = new RegExp('^[0-9]{3}-[0-9]{3,4}-[0-9]{4}$', 'i');
   return (pattern.exec(s) != null);
}
function checkForm()
{
	if($E("name").value == "")
	{
		MessageBox("È¸¿ø°¡ÀÔ", "È¯ÀÚÀÌ¸§ÀÌ ºñ¾îÀÖ½À´Ï´Ù.", MB_OK);
		return false;	
	}	
	
	/*
	var sno = $E("sno1").value + $E("sno2").value; 
	if(isValidJUMINNo(sno) == false)
	{
		MessageBox("È¸¿ø°¡ÀÔ", "ÁÖ¹Îµî·Ï¹øÈ£°¡ ºñ¾îÀÖ°Å³ª À¯È¿ÇÑ ÁÖ¹Îµî·Ï ¹øÈ£°¡ ¾Æ´Õ´Ï´Ù.", MB_OK);
		return false;	
	}
	*/
	
	if($E("phone1_1").value == "" && $E("phone2_1").value == "")
	{
		MessageBox("È¸¿ø°¡ÀÔ", "¿¬¶ôÀÌ °¡´ÉÇÑ  À¯¹«¼± ÀüÈ­¹øÈ£Áß ÇÏ³ª´Â ÀÔ·Â µÇ¾î¾ß ÇÕ´Ï´Ù.", MB_OK);
		return false;
	}
	
	if($E("phone1_1").value != "")
	{
		var phone = $E("phone1_1").value + "-" + $E("phone1_2").value + "-" + $E("phone1_3").value;
		if(isValidPhone(phone) == false)
		{
			MessageBox("È¸¿ø°¡ÀÔ", "ÀüÈ­¹øÈ£°¡ ºñ¾îÀÖ°Å³ª ¿Ã¹Ù¸¥ Çü½ÄÀÇ ÀüÈ­ ¹øÈ£°¡ ¾Æ´Õ´Ï´Ù.", MB_OK);
			return false;	
		}
	}
	
	if($E("phone2_1").value != "")
	{
		var phone = $E("phone2_1").value + "-" + $E("phone2_2").value + "-" + $E("phone2_3").value;
		if(isValidCellPhone(phone) == false)
		{
			MessageBox("È¸¿ø°¡ÀÔ", "ÇÚµåÆù ¹øÈ£°¡ ºñ¾îÀÖ°Å³ª ¿Ã¹Ù¸¥ Çü½ÄÀÇ ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Õ´Ï´Ù.", MB_OK);
			return false;	
		}
	}

	var email = $E("email").value;
	if(email != "" && isValidEmail(email) == false)
	{
		MessageBox("È¸¿ø°¡ÀÔ", "À¯È¿ÇÑ ÀÌ¸ÞÀÏÀÌ ¾Æ´Õ´Ï´Ù.", MB_OK);
		return false;	
	}

	if($E("zipcode1").value == "" || $E("zipcode2").value == ""	|| $E("address1").value == "" || $E("address2").value == "")
	{
		MessageBox("È¸¿ø°¡ÀÔ", "¿ìÆí¹øÈ£ ¶Ç´Â ÁÖ¼Ò°¡ ºñ¾îÀÖ°Å³ª ¿Ã¹Ù¸¥ Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù.", MB_OK);
		return false;		
	}

	return true;
}
window.onZipcodeSelected = function()
{
	var zipcodes = arguments[0].split("-");
	
	$EP("zipcode1", "value", zipcodes[0]);
	$EP("zipcode2", "value", zipcodes[1]);
	$EP("address1", "value", arguments[1]);
	$E("address2").focus();		
}

var ReserveApp = Class.extend(Application);
ReserveApp.prototype.constructorFunction = function()
{
}
ReserveApp.prototype.initInstance = function()
{
	Application.prototype.initInstance.call(this);
	
	ON_EVENTMOUSE(MOUSECLICK, "btnFindZip", "onFindZipClicked");
	ON_EVENTMOUSE(MOUSECLICK, "zipcode1", "onFindZipClicked");
	ON_EVENTMOUSE(MOUSECLICK, "zipcode2", "onFindZipClicked");
	ON_EVENTMOUSE(MOUSECLICK, "address1", "onFindZipClicked");

	var y = now.getFullYear();
	var m = now.getMonth()+1;
	if(m < 10){ m = '0'+m; }
	var d = now.getDate()+1;
	if(d < 10){ d = '0'+d; }

	$EP("date", "value", y+"-"+m+"-"+d)	
	//XMLHTTPREQUEST_ASYNCMAP(window)
	//{
	//}XMLHTTPREQUEST_ASYNCMAP	
}
ReserveApp.prototype.onInputRomanDigitKeyPress = function()
{
	//Caps LockÀÌ ÄÑÁ®ÀÖ´ÂÁö Ã¼Å©ÇÕ´Ï´Ù.
	if(isCapsLockOn() == true)
	{
		MessageBox("È¸¿øÁ¤º¸ ÀÔ·Â", "<strong>Caps Lock</strong>ÀÌ ÄÑÁ® ÀÖ½À´Ï´Ù. ²ô°í ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä.", MB_OK, null);
		return false;
	}
	//¿µ¹®(¼Ò¹®ÀÚ)¿Í ¼ýÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ´Â ÀÔ·ÂÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.
	if(Browser.IE == false && (arguments[1] == 8 || arguments[1] == 0))
	{
		return true;
	}
	var c = String.fromCharCode(arguments[1]);
	var pattern = new RegExp('[a-z0-9]', 'g');
	return (pattern.exec(c) != null);
}
ReserveApp.prototype.onInputIdKeyUp = function()
{
	var sId = $EP("id_j", "value");
	$ES("btnChkId", "display", ((sId.length < 6) ? "none" : ""));				
	
	var bCheck = (sId == $EP("id_j", "idChecked"));
	$EP("btnChkId", "src", ((bCheck == true) ? this.images["check_ok"].src :  this.images["check_req"].src));						
	$ES("btnChkId", "cursor", ((bCheck == true) ? "default" : "pointer"));

	return true;
}
ReserveApp.prototype.onFindZipClicked = function()
{
	var wdgtZipWindow = new ZipcodeWindowWidget();
	wdgtZipWindow.create("¿ìÆí¹øÈ£ Ã£±â", new Rect(200, 300, 550, 300), 0);	
}

theApp = new ReserveApp(); 




/*
wafxÀÇ ±âº» À§Á¬µéÀ» °Å½ºÅÍ¸¶ÀÌÂ¡ÇÏ±â À§ÇÑ 
subclaasing À§Á¬µéÀ» Á¤ÀÇÇÕ´Ï´Ù.
*/

//Find Zipcode À§Á¬
var ZipcodeWindowWidget = Class.extend(WindowWidget);
ZipcodeWindowWidget.prototype.constructorFunction = function()
{
	this.imageSubmitButton = [];
	this.imageSubmitButton["out"] = new Image();
	this.imageSubmitButton["out"].src = "/wafxapp/images/btn_findzip.gif";
	this.imageSubmitButton["over"] = new Image();
	this.imageSubmitButton["over"].src = "/wafxapp/images/btn_findzip_on.gif";
	 
}
ZipcodeWindowWidget.prototype.goSearch = function()
{
	var kwd = this.$EP("input", "value");
		
	if(kwd == "")
	{
		this.$E("input").focus();
		return;
	}

	this.$ES("search", "marginBottom", "15px");
	this.$ES("indicator", "display", "");
	this.$ES("addrlist", "display", "none");
	
	window.sendRequest(this, "findzipcode", "zipcode.php?kwd="+encodeURIComponent(kwd));	
}
ZipcodeWindowWidget.prototype.onRenderClient = function()
{
	var elClient = arguments[0];
	
	$ES(elClient, "textAlign", "left");
	elClient.innerHTML = "<div class='zipfind_example1'>°Ë»öÇÏ½Ç  Áö¿ª(µ¿/À¾/¸é)À» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.</div><div class='zipfind_example2'>¿¹) \"¼­ÃÊ\", \"Áø»ó¸é\"</div>" +
			             "<div class='zipfind_search' id='" + this.$EID_STR("search") + "'><input type='text' maxlength=120 name='kwd' style='height: 21px;' id='" + this.$EID_STR("input") + "'><img id='" + this.$EID_STR("submit") + "' alt='search button' style='margin-left:-3px;'></div>" +
						 "<div class='zipfind_indicator' style='display:none' id='" + this.$EID_STR("indicator") + "'><img src='/wafxapp/images/indicator.gif'></div>" +
						 "<ul class='zipfind_addrlist' style='display:none' id='" + this.$EID_STR("addrlist") + "' ></ul>";
						 
	this.$EP("submit", "src", this.imageSubmitButton["out"].src);

	//WAFX_EVENT_MAP(SelectWidget)
	//{
	ON_EVENTMOUSE(MOUSEOVER, this.$EID_STR("submit"), "onSubmitMouseOver");
	ON_EVENTMOUSE(MOUSEOUT, this.$EID_STR("submit"), "onSubmitMouseOut");
	ON_EVENTMOUSE(MOUSECLICK, this.$EID_STR("submit"), "onSubmit");
	ON_EVENTMOUSE(MOUSEWHEEL, this.$EID_STR("addrlist"), "onAddrListMouseWheel");
	ON_EVENTKEY(KEYPRESS, this.$EID_STR("input"), "onInputKeyPress");
	//}WAFX_EVENT_MAP
	
	//XMLHTTPREQUEST_ASYNCMAP(window)
	//{
	XMLHTTPREQUEST_ASYNCMAP("findzipcode", "onZipcodeFound");
	//}XMLHTTPREQUEST_ASYNCMAP
}

ZipcodeWindowWidget.prototype.onShow = function()
{
	WindowWidget.prototype.onShow.call(this);
		
	this.$E('input').focus();
}

ZipcodeWindowWidget.prototype.onAddrListMouseWheel = function()
{
	var list = arguments[0];
	
	window.status = BROWSERSAFE_EVENT.wheelDelta;
	
	if(BROWSERSAFE_EVENT.wheelDelta < 0)
	{
		if(list.scrollTop+list.clientHeight - BROWSERSAFE_EVENT.wheelDelta/3 >= list.scrollHeight)
		{
			list.scrollTop = list.scrollHeight - list.clientHeight;
			return false;		
		}
	}
	else
	{
		if(list.scrollTop - BROWSERSAFE_EVENT.wheelDelta/3 <= 0)
		{
			list.scrollTop = 0;
			return false;
		}		
	}

	return true;
}

ZipcodeWindowWidget.prototype.onInputKeyPress = function()
{
	if(arguments[1] == 13)
	{
		this.goSearch();
		return false;
	}
	
	return true;
}
ZipcodeWindowWidget.prototype.onSubmitMouseOver = function()
{
	this.$EP("submit", "src", this.imageSubmitButton["over"].src);		
}
ZipcodeWindowWidget.prototype.onSubmitMouseOut = function()
{
	this.$EP("submit", "src", this.imageSubmitButton["out"].src);
}
ZipcodeWindowWidget.prototype.onSubmit = function()
{
	this.goSearch();
}
ZipcodeWindowWidget.prototype.onHttpRequestTimeOut = function()
{
	MessageBox("¿ìÆí¹øÈ£ Ã£±â", "¼­¹ö·ÎºÎÅÍ ÀÀ´äÀÌ ¾ø½À´Ï´Ù. ´Ù½Ã ½ÃµµÇØ ÁÖ½Ê½Ã¿À.", MB_OK);
	this.$ES("indicator", "display", "none");
}
ZipcodeWindowWidget.prototype.onAddrClicked = function()
{
	this.widgetParent["onZipcodeSelected"](arguments[0].zipcode, arguments[0].address);
	this.closeWindow();
}
ZipcodeWindowWidget.prototype.onZipcodeFound = function()
{
	var xmlDoc = arguments[0];
	var rootNode = xmlDoc.documentElement;

	var namespace = (Browser.IE) ? "" : "Postalcodes:";
	var xpath = namespace + "Postalcode";
	var nodesZipcode = $xpathNodes(rootNode, xpath);
	
	var elAddrList = this.$E('addrlist');
	var count = nodesZipcode.length;

	//list¸¦ ºñ¿ó´Ï´Ù.
	elAddrList.innerHTML = "";
	
	if(count == 0)
	{
		elAddrList.innerHTML = "<P style='margin-top:70px; text-align: center; font-weight: bold; color:#FF7800'>°Ë»ö³»¿ëÀÌ ¾ø½À´Ï´Ù.</P>";
	}
	else
	{	
		//list¿¡ µ¥ÀÌÅ¸¸¦ ³Ö½À´Ï´Ù.
		for(var i = 0; i < count; i++)
		{
			xpath = namespace + "Number/text()";
			var node = $xpathNode(nodesZipcode[i], xpath);
			var zipcode = (node == null) ? "" : node.nodeValue;
		
			xpath = namespace + "Address1/text()"; 
			node = $xpathNode(nodesZipcode[i], xpath);
			var addr1 = (node == null) ? "" : node.nodeValue

			xpath = namespace + "Address2/text()";
			node = $xpathNode(nodesZipcode[i], xpath);
			var addr2 = (node == null) ? "" : node.nodeValue

			var li = $NE(elAddrList, BROWSERSAFE_ELEMENTSTRING("li"), null, null);
			li["zipcode"] = zipcode;
			li["address"] = addr1;  
			li.innerHTML = (addr1 + " " + addr2);

			ON_EVENTMOUSE(MOUSECLICK, li, "onAddrClicked");  		
			ON_EVENTMOUSE(MOUSEOVER, li, "onAddrMouseOver");  		
			ON_EVENTMOUSE(MOUSEOUT, li, "onAddrMouseOut");  		
			
		}
	}	

	this.$ES("indicator", "display", "none");
	this.$ES("addrlist", "display", "");
	this.$ES("search", "marginBottom", "15px");
}

ZipcodeWindowWidget.prototype.onAddrMouseOver = function()
{
	$ES(arguments[0], "backgroundColor", "#DCF2FC");
}

ZipcodeWindowWidget.prototype.onAddrMouseOut = function()
{
	$ES(arguments[0], "backgroundColor", "#FEFEFE");
}



//Calendar
function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('fc'))
		if (!isChild(CSE,getObj('fc')))
			getObj('fc').style.display='none';
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
	
document.write('<table id="fc" style="position:absolute;border-collapse:collapse;background:#FFFFFF;border:1px solid #B99174;display:none; z-index:10" cellpadding=2>');
document.write('<tr><td style="cursor:pointer" onclick="csubm()"><img src="/wafxapp/images/arrowleftmonth.gif"></td><td colspan=5 id="mns" align="center" style="font:bold 13px Arial"></td><td align="right" style="cursor:pointer" onclick="caddm()"><img src="/wafxapp/images/arrowrightmonth.gif"></td></tr>');
document.write('<tr>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px; color: #FF0000">ÀÏ</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">¿ù</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">È­</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">¼ö</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">¸ñ</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">±Ý</td>' +
			   '<td align=center style="background:#ECE9E2; padding-top: 3px;">Åä</td></tr>');
for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');
	for(var tt=1;tt<=7;tt++) {
		num=7 * (kk-1) - (-tt);
		document.write('<td id="v' + num + '" style="width:18px;height:18px">&nbsp;</td>');
	}
	document.write('</tr>');
}
document.write('</table>');

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);


// Calendar script
var now = new Date;
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();

var updobj;
function lcs(ielem) {

	updobj=ielem;
	getObj('fc').style.left=Left(ielem);
	getObj('fc').style.top=Top(ielem)+ielem.offsetHeight;
	getObj('fc').style.display='';
	
	// First check date is valid
	curdt=ielem.value;
	curdtarr=curdt.split('-');
	isdt=true;
	for(var k=0;k<curdtarr.length;k++) {
		if (isNaN(curdtarr[k]))
			isdt=false;
	}
	if (isdt&(curdtarr.length==3)) {
		ccm=curdtarr[1]-1;
		ccy=curdtarr[0];
		prepcalendar(curdtarr[2],curdtarr[1]-1,curdtarr[0]);
	}
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
	evtTgt(EvtObj(e)).style.background='#FFCC66';
}
function cs_out(e) {
	evtTgt(EvtObj(e)).style.background='#E1E6E9';
}
function cs_click(e) {
	var date = calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
	var dates = date.split("/");
	if(dates[1] < 10)
	{
		dates[1] = "0" + dates[1];
	}
	if(dates[0] < 10)
	{
		dates[0] = "0" + dates[0];
	}

	updobj.value= dates[2] + "-" + dates[1] + "-" + dates[0];

	getObj('fc').style.display='none';
	
}

var mn=new Array('1¿ù','2¿ù','3¿ù','4¿ù','5¿ù','6¿ù','7¿ù','8¿ù','9¿ù','10¿ù','11¿ù','12¿ù');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);

function f_cps(obj) {
	obj.style.background='#E1E6E9';
	obj.style.font='10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #B99174';
	obj.style.cursor='pointer';
}

function f_cpps(obj) {
	obj.style.background='#E1E6E9';
	obj.style.font='10px Arial';
	obj.style.color='#ABABAB';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #B99174';
	obj.style.cursor='default';
}

function f_hds(obj) {
	obj.style.background='#F3B103';
	obj.style.font='bold 10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.border='1px solid #B99174';
	obj.style.cursor='pointer';
}

// day selected
function prepcalendar(hd,cm,cy) {
	now=new Date();
	sd=now.getDate();
	td=new Date();
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	cd=td.getDay();
	getObj('mns').innerHTML=cy + '³â ' + mn[cm];
	marr=((cy%4)==0)?mnl:mnn;
	for(var d=1;d<=42;d++) {
		f_cps(getObj('v'+parseInt(d)));
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
			dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy));
			htd=((hd!='')&&(d-cd==hd));
			if (dip)
				f_cpps(getObj('v'+parseInt(d)));
			else if (htd)
				f_hds(getObj('v'+parseInt(d)));
			else
				f_cps(getObj('v'+parseInt(d)));

			getObj('v'+parseInt(d)).onmouseover=(dip)?null:cs_over;
			getObj('v'+parseInt(d)).onmouseout=(dip)?null:cs_out;
			getObj('v'+parseInt(d)).onclick=(dip)?null:cs_click;
			
			getObj('v'+parseInt(d)).innerHTML=d-cd;	
			calvalarr[d]=''+(d-cd)+'/'+(cm-(-1))+'/'+cy;
		}
		else {
			getObj('v'+d).innerHTML='&nbsp;';
			getObj('v'+parseInt(d)).onmouseover=null;
			getObj('v'+parseInt(d)).onmouseout=null;
			getObj('v'+parseInt(d)).style.cursor='default';
			}
	}
}

prepcalendar('',ccm,ccy);
//getObj('fc'+cc).style.visibility='hidden';

function caddm() {
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm+=1;
	if (ccm>=12) {
		ccm=0;
		ccy++;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

function csubm() {
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm-=1;
	if (ccm<0) {
		ccm=11;
		ccy--;
	}
	cdayf();
	prepcalendar('',ccm,ccy);
}

function cdayf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else {
	ccy=sccy;
	ccm=sccm;
	//cfd=scfd;
	}
}