//--------------------------------------------------------------------------------------------------------------------*
//function which handles checking the entire res form for errors before submitting
function validateResrv(formData) 
{
	 if (formData.kind.value == "")
	 {
		 alert("Please check room type!!");
		 formData.kind.focus();
		 return false;
	 }
     var validity=true;
     if (!isBrowserSupp()) 
     {	
        return validity;
     }
     var outMIdx  = parseMonth(formData.outmonth.options[formData.outmonth.options.selectedIndex].text, formData.outmonth);
     var outDIdx  = parseDay(formData.outday.options[formData.outday.options.selectedIndex].text, formData.outday);
     var inMIdx   = parseMonth(formData.inmonth.options[formData.inmonth.options.selectedIndex].text, formData.inmonth);
     var inDIdx   = parseDay(formData.inday.options[formData.inday.options.selectedIndex].text, formData.inday);
     var inYrIdx  = formData.inyear.options.selectedIndex;
     var outYrIdx = formData.outyear.options.selectedIndex;
     
     inYrUTC  = (parseInt(formData.inyear.options[inYrIdx].text));
     outYrUTC = (parseInt(formData.outyear.options[outYrIdx].text));
     inMUTC   = (inMIdx - 1);
     outMUTC  = (outMIdx - 1);
     //inDUTC   = inDIdx + 1;
     //outDUTC  = outDIdx + 1;
     inDUTC   = inDIdx;
     outDUTC  = outDIdx;
//-------> Date --> Calendar     1999.12.07
     //inDate   = new Calendar();
     //inDate.set(inYrUTC, inMUTC, inDUTC, 0, 0, 0);
     //outDate  = new Calendar();
     //outDate.set(outYrUTC, outMUTC, outDUTC, 0, 0, 0 );
     inDate   = new Date(inYrUTC,inMUTC,inDUTC,0,0,0);
     outDate  = new Date(outYrUTC,outMUTC,outDUTC,0,0,0);
     //--> ´çÀÏ ¿¹¾àÀ» ÇÒ ¼ö ¾ø°Ô ÇÏ±â À§ÇØ...2000.05.18
     var pdate = new Date();
     var pyy = pdate.getYear();
     var pmm = pdate.getMonth();
     var pdd = pdate.getDate();
     var pymd = pyy*10000+pmm*100+pdd;
     var fyy = inDate.getYear();
     var fmm = inDate.getMonth();
     var fdd = inDate.getDate();
     var fymd = fyy*10000+fmm*100+fdd;
     var DateChk1 = "20021224";
	 var DateChk2 = "20020519";
	 var DateChk3 = "20020621";
	 var myy = document.resrvForm.inyear.value;
	 var mmm = document.resrvForm.inmonth.value;
	 var mdd = document.resrvForm.inday.value;
	 var kkk = myy+mmm+mdd

     if (fymd == pymd) {
        alert("\n        Sorry!!! \n Cannot make reservation for Today \n");
     	validity= false;
     } else if (fymd < pymd) {
        alert("\n       Sorry!!! \n Cannot make reservation for previous days");
     	validity= false;
     } else if ((kkk == DateChk1)||(kkk > DateChk2 && kkk < DateChk3)) {	//datechk¶ó´Â ±â°£¿¡´Â ¿¹¾àÀ» ¸øÇÏµµ·Ï ÇÑ´Ù
		 alert("Sorry !!! Cannot make reservation for this Period.\n\n Phone : 82-2-330-7770.");
		 validity= false;
     } else {    
	     var inDtVal  = inDate.getTime();
	     var outDtVal = outDate.getTime();
	     
	     if (inDtVal > outDtVal) 
	     {
	        alert("Invalid Departure date selected " + inDate + "/" + outDate);
	     	validity= false;
	     }
	     else 
	     {
	     	var numDays = Math.round((outDtVal-inDtVal)/(1000*60*60*24));
	     	if (numDays > 21)
	     	{
	     	    alert("Cannot make reservations for more than 21 days");
	     		validity= false;
	     	}
	     }
     }	
     return validity;
	 
	
}

//--------------------------------------------------------------------------------------------------------------------*
//converts month string from form into number for use later	
function getMonthNumber(input)
{
    if (input == "Jan") {return "1"}
    if (input == "Feb")	{return "2"}
	if (input == "Mar") {return "3"}
    if (input == "Apr")	{return "4"}
    if (input == "May")	{return "5"}
	if (input == "Jun")	{return "6"}
    if (input == "Jul")	{return "7"}
    if (input == "Aug")	{return "8"}
	if (input == "Sep")	{return "9"}
    if (input == "Oct")	{return "10"}
    if (input == "Nov")	{return "11"}
	if (input == "Dec")	{return "12"}
}

//--------------------------------------------------------------------------------------------------------------------*
//checks if browser is Netscape 2.0 since the options array properties don't work with Netscape 2.0x
function isBrowserSupp() 
{
    if (((navigator.appVersion.indexOf("2.0")) != -1) && (navigator.appName.indexOf("Netscape") != -1))
    {
        return false;
   	}
    else 
   	{
   	    return true;
   	}
}

//--------------------------------------------------------------------------------------------------------------------*
function isLeapYear(yrStr)
{
    var leapYear=false;
    if ((parseInt(yrStr, 10)%4) == 0)
	{
        leapYear=true;
    }
    return leapYear;
}

//--------------------------------------------------------------------------------------------------------------------*
function getDaysInMonth(mthIdx, YrStr)
{
    var maxDays=31

    if (mthIdx==2) 
    {
	    if (isLeapYear(YrStr))
	    {
		    maxDays=29;
		}
	    else 
		{
		    maxDays=28;
		}
	}

    if (mthIdx==4 || mthIdx==6 || mthIdx==9 || mthIdx==11)
	{
        maxDays=30;
	}
    return maxDays;
}

//--------------------------------------------------------------------------------------------------------------------*
//the function which does some magic to the date fields
function adjustDate(mthIdx, Dt, Yr) 
{
    var value=0; 		
    var numDays=getDaysInMonth(mthIdx, Yr.options[Yr.options.selectedIndex].text);
    
    if (mthIdx==2) 
    {
        if (Dt.options.selectedIndex < numDays)
    	{
    		return 0;
    	}
    	else 
    	{
    		//check for leap year
    		Dt.options.selectedIndex=numDays;
    		if (numDays==29)
    		{
    			return 99;
    		}
    		else 
    		{
    			return 1;
    		}
    	}
    }

    if (Dt.options.selectedIndex < numDays)
    {
    	value=0;
    }
    else 
    {
    	if (Dt.options.selectedIndex > numDays)
    	{
    		Dt.options.selectedIndex--;
    		value=3;
    	}
    	else 
    	{
    		//index is 31 or 30
    		value=2;
    	}
    }

    return value;
}

//--------------------------------------------------------------------------------------------------------------------*
function parseMonth(mth, inM)
{
    var i=1;
    var retval =1;

    for (i=1;i<=12;i++)
	{
	    if (mth == inM.options[i].text)
		{
		    retval=i;	
		    break;
		}	
	}

	return retval;
}

//--------------------------------------------------------------------------------------------------------------------*
function parseDay(day, inD)
{
    var i=1;
    var retval =1;

    for (i=1;i<=31;i++)
	{
	    if (day == inD.options[i].text)
		{
		    retval=i;	
		    break;
		}	
	}

    return retval;
}

//--------------------------------------------------------------------------------------------------------------------*
function parseYear(year, inY)
{
    var retval=0;
    var i=0;

    for (i=0; i<=5; i++)
    {
   
	    if (year == inY.options[i].text)
	    {
		    retval=i;	
		    break;
		}	
     }

    return retval;
}

//--------------------------------------------------------------------------------------------------------------------*
//changes departure month when arrival month is changed
function inMonthChange(inM, outM, inD, outD, inY, outY) 
{
    if (!isBrowserSupp())
	{
 	    return;
	}

    inM.options.selectedIndex = parseMonth(inM.options[inM.options.selectedIndex].text, inM);
    inD.options.selectedIndex = parseDay(inD.options[inD.options.selectedIndex].text, inD);
    var res = adjustDate(inM.options.selectedIndex, inD,inY);

    if (res != 0)
	{
	    outD.options.selectedIndex=1;
	    outM.options.selectedIndex = inM.options.selectedIndex + 1;
	}
    else 
	{
	    outM.options.selectedIndex = inM.options.selectedIndex;
	    outD.options.selectedIndex = inD.options.selectedIndex+1;
	}

    outY.options.selectedIndex = inY.options.selectedIndex;
    if ((inM.options.selectedIndex == 12) && (inD.options.selectedIndex == 31))
	{
	    outM.options.selectedIndex=1;
	    outY.options.selectedIndex++;
	}

    return;
}
	
//--------------------------------------------------------------------------------------------------------------------*
//changes departure day when arrival day is changed
function inDayChange(inD, outD, inM, outM, inY, outY) 
{
    if (!isBrowserSupp())
	{
 	    return;
	}	
	
    var Inmth = inM.options.selectedIndex;
    inM.options.selectedIndex = parseMonth(inM.options[Inmth].text, inM);
    inD.options.selectedIndex = parseDay(inD.options[inD.options.selectedIndex].text, inD);

    var res =adjustDate(Inmth, inD, inY)
    if (res != 0)
	{
	    outD.options.selectedIndex=1;
	    outM.options.selectedIndex=inM.options.selectedIndex + 1;
	}
    else
	{
	    outM.options.selectedIndex = inM.options.selectedIndex;
	    outD.options.selectedIndex = inD.options.selectedIndex+1;
	}

    outY.options.selectedIndex = inY.options.selectedIndex;
    if ((inM.options.selectedIndex == 12) && (inD.options.selectedIndex == 31))
	{
	    outM.options.selectedIndex=1;
	    outY.options.selectedIndex++;
	}

    return;
}
	
//--------------------------------------------------------------------------------------------------------------------*
//changes departure year when arrival year is changed
function inYearChange(inY, outY, inM, outM, inD, outD) 
{
    if (!isBrowserSupp()) 
	{
	    return;			
	}

    inM.options.selectedIndex = parseMonth(inM.options[inM.options.selectedIndex].text, inM);
    outY.options.selectedIndex = inY.options.selectedIndex;
    adjustDate(inM.options.selectedIndex, inD,inY);
    return;
}	

//--------------------------------------------------------------------------------------------------------------------*
function outMonthChange(outM, outD, outY) 
{
    if (!isBrowserSupp())
	{
	    return;			
	}

    outM.options.selectedIndex = parseMonth(outM.options[outM.options.selectedIndex].text, outM);
    outD.options.selectedIndex = parseDay(outD.options[outD.options.selectedIndex].text, outD);
    adjustDate(outM.options.selectedIndex,outD,outY);	
    return;	
}

//--------------------------------------------------------------------------------------------------------------------*
function outDayChange(outD, outM, outY) 
{
    if (!isBrowserSupp())
	{
	    return;			
	}

    outM.options.selectedIndex = parseMonth(outM.options[outM.options.selectedIndex].text, outM);
    outD.options.selectedIndex = parseDay(outD.options[outD.options.selectedIndex].text, outD);
    adjustDate(outM.options.selectedIndex,outD,outY);		
    return;	
}

//--------------------------------------------------------------------------------------------------------------------*
function outYearChange(outY, outM, outD) 
{
    if (!isBrowserSupp())
	{
	    return;			
	}

    outM.options.selectedIndex = parseMonth(outM.options[outM.options.selectedIndex].text, outM);
    outD.options.selectedIndex = parseDay(outD.options[outD.options.selectedIndex].text, outD);
    adjustDate(outM.options.selectedIndex,outD,outY);		
    return;	
}

//--------------------------------------------------------------------------------------------------------------------*
//Calendar Section
//--------------------------------------------------------------------------------------------------------------------*
//calculation functions
function nextMonth(month) 
{
    if (month==12)
	{
	    return 1;
	}
    else
	{
	    return (month+1);
	}
}

//--------------------------------------------------------------------------------------------------------------------*
function prevMonth(month) 
{
    var prevMonth = (month-1)

    if (month==1)
	{
	    prevMonth = 12;
	}

    return prevMonth
}

//--------------------------------------------------------------------------------------------------------------------*
//increments or decrements month when it goes past Jan or Dec
function changeYear(direction,month,year)
{
    var theYear = year

    if (direction=="next")
	{
	    if (month == 12)
		{
		    theYear = (year+1)
		}
	}

    if (direction=="prev")
	{
	    if (month == 1)
		{
		    theYear = (year-1)
		}
	}

    return theYear
}

//--------------------------------------------------------------------------------------------------------------------*
//opens a new window for the calendar
function createCalendar(month,year,io) 
{
    if (!isBrowserSupp())
	{
	    alert("Your browser is outdated and does not support this feature")
 	    return;
	}

    if (navigator.appVersion.indexOf("Mac",0) != -1) 
	{
    	calendarWindow = window.open("","Calendar","width=175,height=190,resizable=no,scrollbars=no,top=100,left=100");
  	} 
    else 
	{
	    calendarWindow = window.open("","Calendar","width=175,height=190,resizable=no,scrollbars=no,top=100,left=100");
  	}

    var mthIdx = month.options.selectedIndex
    var mthVal = getMonthNumber(month.options[mthIdx].text)
    var yearVal = year.options[year.options.selectedIndex].text

    //call the function to populate the window
    generateCalendar(calendarWindow,mthVal,yearVal,io)
}

//--------------------------------------------------------------------------------------------------------------------*
//generates the meat of the calendar
function generateCalendar(target,month,year,io) 
{
    if (!isBrowserSupp())
	{
 	    return;
	}	

    var monthName = new Array ("January","February","March","April","May","June","July","August","September","October","November","December")

    //begin table for calendar
    target.document.open()
    calendar = "<html><head><title>calendar</title><style>td {font-family:verdana;font-size:8pt;text-decoration:none},A {text-decoration:none}</style></head><body bgcolor=ffffff onload='this.focus();'>"
    calendar +="<table border=0 cellspacing=0 cellpadding=1 width=152 bgcolor=FAF4E1>"
    calendar +="<tr valign=top>"

    var mthIdx = parseInt(month);
    var endday = getDaysInMonth(mthIdx, year)

    //month header
    calendar +="<td colspan=7 align=center bgcolor=#ffffff height=25>"
    var index = (mthIdx-1)
    calendar +="<b><font face='verdana,Arial,Futura' size=2 color=#6C5715>" + monthName[index] + " " + year + "</font></b></td></tr>"
	var servername="http://www.hotelseokyo.co.kr/english"
    //writes in the day of the week labels
    calendar +="</tr><tr align=center>"
    calendar +="<td colspan=7><img src="+servername+"/common/image/ca.gif width=152 height=18></td>"
    calendar +="</tr>"

   
	wholeDate = month + "/01/" + year
    thedate   = new Date(wholeDate)
    firstDay  = thedate.getDay()

    selectedmonth = mthIdx;
    var today     = new Date();
    var thisyear  = today.getYear() + 1900;

    //adb selectedyear = document.resrvForm.inyear.options.selectedIndex
    selectedyear = year

    var lastDay  = (endday + firstDay+1)

    calendar +="<tr>"
    for (var i = 1; i < lastDay; i++)
	{
	    if (i <= firstDay)
		{
		    // 'empty' boxes prior to first day
		    calendar +="<td>&nbsp;</td>"
		}
	    else 
		{
		    // enter date number
		    calendar +="<td align=center><a href='JavaScript:self.close();opener.closeCalendar"+io+"("+(i-firstDay) + ")'> "+(i-firstDay)+"</a></td>"
		}

	    //must start new row after each week
	    if (i % 7 == 0 &&  i != lastDay)
		{
		    calendar +="</tr><tr>"
		}
	}

    calendar +="</tr>"

    //separator line
    calendar +="<tr><td colspan=7 align=center width=152 height=3></td></tr>"

    //next month and previous month buttons
    var goPrevMonth = prevMonth(mthIdx)
    var goNextMonth = nextMonth(mthIdx)
    var nextYear    = changeYear("next",parseInt(month),parseInt(year))
    var prevYear    = changeYear("prev",parseInt(month),parseInt(year))

    if(navigator.userAgent.indexOf('MSIE',0) != -1)
	{
	    calendar +="<tr height=20><td align=left colspan=3 bgcolor=#F7ECCC><a href='javascript:opener.generateCalendar(self,"+goPrevMonth+","+prevYear+",\""+io+"\")'><img src="+servername+"/common/image/pre.gif border=0></a></td>"
	    calendar +="<td align=center colspan=1 bgcolor=#F7ECCC>&nbsp;</td>"
	    calendar +="<td align=right colspan=3 bgcolor=#F7ECCC><a href='javascript:opener.generateCalendar(self,"+goNextMonth+","+nextYear+",\""+io+"\")'><img src="+servername+"/common/image/next.gif border=0></a></td></tr>"
	    calendar +="</table></body></html>"
	    target.document.close()
	}
    else
	{
	    calendar +="<form><tr height=20><td align=left colspan=3 bgcolor=#F7ECCC><input type=button value=' < '"+
                   "onClick='document.clear();opener.generateCalendar(opener.calendarWindow,"+goPrevMonth+","+prevYear+",\""+io+"\")'></td>"
	    calendar +="<td align=center colspan=1 bgcolor=#F7ECCC>&nbsp;</td>"
	    calendar +="<td align=right colspan=3 bgcolor=#F7ECCC><input type=button value=' > '"+
                   "onClick='document.clear();opener.generateCalendar(opener.calendarWindow,"+goNextMonth+","+nextYear+",\""+io+"\")'></td></tr></form>"
	    calendar +="</table></body></html>"
	}

    target.document.write(calendar);
    target.document.close()	
}

//---------------------------------------------------------------------------------------------------------------------
//changes date when a date is clicked
function closeCalendarIn(day)
{
    var yrIdx = parseYear(selectedyear,document.resrvForm.inyear );

    document.resrvForm.inmonth.options.selectedIndex=selectedmonth;

    //adb document.resrvForm.inyear.options.selectedIndex= selectedyear;
    document.resrvForm.inyear.options.selectedIndex= yrIdx;
    document.resrvForm.inday.options.selectedIndex=parseInt(day);
    var res = adjustDate(selectedmonth, document.resrvForm.inday, document.resrvForm.inyear); 

    if (res != 0)
	{
	    document.resrvForm.outday.options.selectedIndex=1;
	    document.resrvForm.outmonth.options.selectedIndex = document.resrvForm.inmonth.options.selectedIndex+1;
	}
    else 
	{
	    document.resrvForm.outmonth.options.selectedIndex = document.resrvForm.inmonth.options.selectedIndex;
	    document.resrvForm.outday.options.selectedIndex = document.resrvForm.inday.options.selectedIndex+1;
	}

    document.resrvForm.outyear.options.selectedIndex = document.resrvForm.inyear.options.selectedIndex;
    if ((document.resrvForm.inmonth.options.selectedIndex == 12) && (document.resrvForm.inday.options.selectedIndex == 31))
	{
	    document.resrvForm.outmonth.options.selectedIndex=1;
	    document.resrvForm.outyear.options.selectedIndex+1;
	}

    return;
}

//---------------------------------------------------------------------------------------------------------------------
function closeCalendarOut(day)
{
    var yrIdx = parseYear(selectedyear,document.resrvForm.outyear );
    document.resrvForm.outmonth.options.selectedIndex=selectedmonth;
    document.resrvForm.outyear.options.selectedIndex=yrIdx;
    document.resrvForm.outday.options.selectedIndex=parseInt(day);
    var res = adjustDate(selectedmonth, document.resrvForm.outday, document.resrvForm.outyear); 
}