var public_description = new init();
var curObj;
var curObj2;
var ctime ="";

//get current date..
var now_date   = new Date();
var s_year     = now_date.getYear();
if( s_year<1900) s_year=s_year+1900;
var s_month    = return0(now_date.getMonth()+1);
var s_day      = return0(now_date.getDate());
var dtype      = "YYYY/MM/DD";
var strLang    = "";
//var month_name=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var month_name = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
var day_name   = new Array('Su','Mo','Tu','We','Th','Fr','Sa');
var isSelect   = 0;
var calWidth   = 170;
var menuPopup;


function init()
{
   this.put_datetype   = put_datetype;
   this.put_curDate    = put_curDate;
   this.put_month_name = put_month_name;
   this.put_day_name   = put_day_name;
   this.put_select     = put_select;
   this.put_calWidth   = put_calWidth;
}

function hover(on, el)
{
   //var el = window.event.srcElement;
   //var el = menuPopup.event.srcElement;
   if (el && el.nodeName == "TD")
   {
      if (el.title == '') return;
      if (on)
      {
         el.style.border = '0px solid #D0D0D0';
         el.style.background = '#FFFFFF';
      }
      else
      {
         el.style.border = '0px solid #F6F6F6';
         el.style.background = '#F6F6F6';
      }
   }
}

function choose(y,m, el)
{
   //var el = window.event.srcElement;
   if (el && el.nodeName == "TD")
   {
      if (el.title == '') return;
      return_date(y,m,el.title);
   }
}

function put_datetype(str)
{
   dtype = str;
}

function put_month_name(str)
{
   month_name = str;
}

function put_day_name(str)
{
   day_name = str;
}

function put_select(str)
{
   isSelect = str;
}

function put_calWidth(str)
{
   calWidth = str;
}

function put_curDate(str)
{
	var y=0,m=0,d=0;
	ctime = "";
	if (str.length == 0 )
	{
		y = s_year;
		m = s_month;
		d = s_day;
	}
	else
	{
		y = parseInt(str.substring(0,4),10);
		m = parseInt(str.substring(4,6),10);
		d = parseInt(str.substring(6,8),10);

		if (str.length >= 14) ctime = str.substring(8,14);
	}

	show_current(y,m,d);

	return(false);
}

function setLang( lang )
{

	if( lang != null || lang != "" )
		strLang = lang;
	else
		strLang = "E";
}

function return0(str)
{
	str=""+str;
	if (str.length==1) str="0"+str;
	return str;
}

function dreplace( str , old_char , new_char )
{
	if( str == null || str == "" ) return;
	else
	{
		var fromindex = 0;
		var temp = "";
		for(var i=0 ; i<str.length ; i++)
		{
			fromindex = i;
			pos = str.indexOf(old_char,fromindex);
			if( pos != -1 )
			{
				temp = str.substring(0,pos) + new_char + str.substring(pos+old_char.length);
				str = temp;
				i = pos+new_char.length-1;
			} else break;
		}
		return str;
	}
}

//open calendar
function show_current(y,m,d)
{
	s_year=y;
	s_month=m;
	s_day=d;

	make_calendar(s_year,s_month,s_day)
}

//processing changed date
function return_date(year_item, month_item, day_item)
{
	if( year_item < 1900) year_item = 1900 + year_item;

	month_item=return0(month_item);
	day_item=return0(day_item);
	//make_calendar(year_item,month_item,day_item);
	input_date(year_item,month_item,day_item);
}

//output selected date
function input_date(year_item, month_item, day_item)
{


	var m_name  = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	var m_name2 = new Array('JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER');
	if( year_item < 1900) year_item = 1900 + year_item;
	month_item  = ""+month_item;
	day_item    = ""+day_item;
	month_item2 = return0(month_item);
	day_item2   = return0(day_item);

	realDate = dtype.toUpperCase();
	if      (realDate.indexOf("YYYY") !=-1) realDate=dreplace(realDate, "YYYY", year_item);
	else if (realDate.indexOf("YY")   !=-1) realDate=dreplace(realDate, "YY"  , year_item.toString().substr(2,2));
	if      (realDate.indexOf("DD")   !=-1) realDate=dreplace(realDate, "DD"  , day_item2);
	else if (realDate.indexOf("D")    !=-1) realDate=dreplace(realDate, "D"   , day_item);
	if      (realDate.indexOf("MON")  !=-1) realDate=dreplace(realDate, "MON" , m_name[parseInt(month_item,10)  -1]);
	else if (realDate.indexOf("MMMM") !=-1) realDate=dreplace(realDate, "MMMM", m_name2[parseInt(month_item,10) -1]);
	else if (realDate.indexOf("MMM")  !=-1) realDate=dreplace(realDate, "MMM" , m_name[parseInt(month_item,10)  -1]);
	else if (realDate.indexOf("MM")   !=-1) realDate=dreplace(realDate, "MM"  , month_item2);
	else if (realDate.indexOf("M")    !=-1) realDate=dreplace(realDate, "M"   , month_item);

	//var backupidval = year_item + "-" + month_item2 + "-" + day_item2;
	var backupidval = realDate;
	var backupval   = realDate;

		

  //window.external.raiseEvent(backupidval,backupval);
  /*
    if(scriptId=="setEndDate")
    {
          setEndDate(backupidval);
    }
    else if(scriptId=="setDate3")
    {
        setDate3(backupidval);
    }
    else
    {
        setStartDate(scriptId, backupidval);
    }
    */

	setCalDate(scriptId, backupidval);
    menuPopup.hide();
}

function setCalDate(targetName, returnStr)
{
    eval(targetName).value = returnStr;
    if(this.flgNewCalendar == true)
    {
        //Æã¼Ç È£Ãâ
        if(this.strMethod != null)
            eval(this.strMethod);
    }
    else
    {
        nightchk();
    }
	/*
	if(document.form1.checkInDate != null)
	{
	    nightchk();
	}
	else
	{
	    nightchk3();
	}
	*/
}

// selected date
function get_date()
{
	var y = s_year;
	var m = s_month;
	var d = s_day;

	getDate  = getCalDate(scriptId);
	typeDate = scriptType.toUpperCase();

	if (getDate.length == typeDate.length)
	{
		if      (typeDate.indexOf("YYYY") !=-1) y = getDate.substr(typeDate.indexOf("YYYY"), 4);
		else if (typeDate.indexOf("YY")   !=-1) y = getDate.substr(typeDate.indexOf("YY"),   2);
		if      (typeDate.indexOf("DD")   !=-1) d = getDate.substr(typeDate.indexOf("DD"),   2);
		else if (typeDate.indexOf("D")    !=-1) d = getDate.substr(typeDate.indexOf("D"),    1);
		if      (typeDate.indexOf("MM")   !=-1) m = getDate.substr(typeDate.indexOf("MM"),   2);
		else if (typeDate.indexOf("M")    !=-1) m = getDate.substr(typeDate.indexOf("M"),    1);
	}
	showCalendarPopup(y,m,d);
}

function getCalDate(targetName)
{
	return eval(targetName).value;	
}

//draw calendar UI
function make_calendar(y,m,d)
{
    y = parseInt(y, 10);
    m = parseInt(m, 10);
    d = parseInt(d, 10);

	var content="";


    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
        isIe = 1;
    }
    else
    {
        isIe = 0;
    }

    if(isIe)
    {

    	var day_num=new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

        if (m == 0) { y = y - 1; m = 12; }
        else if (m == 13) { y = y + 1; m = 1; }

    	if(((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) day_num[1]=29;

    	var first   = new Date(y,m-1, 1);
    	firstday    = first.getDay()+1
    	DaysInMonth = day_num[m-1]

    	if ((m-2) == -1) DaysInBefMonth = day_num[11]
    	else DaysInBefMonth = day_num[m-2]


    	if (d > DaysInMonth) day = DaysInMonth
    	else day = d


    	content=content + "<table width='180' border='0' cellpadding='0' cellspacing='0'" + 
			 "onmouseover='parent.hover(true, window.event.srcElement)' onmouseout='parent.hover(false, window.event.srcElement)' onclick='parent.choose(" + y + "," + m + ", window.event.srcElement)'>\n";
		content=content + "<tr><td height='10'><img src='../../hotelinfo/image/cal_box_01.gif'></td></tr>\n";
		content=content + "<tr><td height='160' background='../../hotelinfo/image/cal_box_02.gif' align='center' valign='top'>\n";
		content=content + "<table width='160' height='26' border='0' cellpadding='0' cellspacing='0' background='../../hotelinfo/image/cal_box_04.gif'>\n";
		content=content + "<FORM style=font-family:verdana; NAME=calendar>\n";
		content=content + "<tr><td align='center'>\n";


      if (isSelect)
      {
    	   content=content + "<select style='font-size:8pt;' name=years  onChange='parent.showCalendarPopup(this.value, calendar.months.value,"+ day+")'>\n"

       	 for( i=1901 ;i <= 2037;i++)
    	   {
    		   content=content + "<option value=" + i
    		   if (i ==y) content=content +  " selected>" + i  + "</option>\n"
    		   else content=content +  ">" + i + "</option>\n"
    	   }

         content=content + "</select>&nbsp;\n"
    	 content=content + "<select style='font-size:8pt;' name=months onChange='parent.showCalendarPopup(calendar.years.value, this.value,"+ day+")'>\n"

    	   for (i=1 ;i<= 12;i++)
    	   {
    		    content=content + "<option value=" + i
    		    if (i ==m) content=content +  " selected>"
    		    else content=content +  ">"

    		    content=content + month_name[i-1]  + "</option>\n"
    	   }

    	   content=content + "</select >\n"
      }
      else
      {
         content=content + "<font style='font-size:9pt;font-family:verdana; font-weight:bold; vertical-align:middle;'>";
    	 content=content + "<span style='cursor:pointer' font-weight:bold' onClick='parent.showCalendarPopup(" + (y-1) + "," + m + "," + day + ");' ><img src=../../hotelinfo/image/cal_arrow_01.gif align=absmiddle></span>" + y;
    	 content=content + "<span style='cursor:pointer' onClick='parent.showCalendarPopup(" + (y+1) + "," + m + "," + day + ");' ><img src=../../hotelinfo/image/cal_arrow_02.gif align=absmiddle></span>";

		 content=content + "<img src='../../hotelinfo/image/cal_line2.gif' align='absmiddle'>";

    	 content=content + "<span style='cursor:pointer' onClick='parent.showCalendarPopup(" + y + "," + (m-1) + "," + day + ");' >&nbsp;<img src=../../hotelinfo/image/cal_arrow_03.gif align=absmiddle></span>" + m;
    	 content=content + "<span style='cursor:pointer' onClick='parent.showCalendarPopup(" + y + "," + (m+1) + "," + day + ");' ><img src=../../hotelinfo/image/cal_arrow_04.gif align=absmiddle></span>";
         content=content + "</font>";
      }
				
      	content=content + "</td></tr>\n"
		content=content + "</table>\n"
		content=content + "<table width='160' border='0' cellpadding='0' cellspacing='0'>\n"
		content=content + "<tr><td height='5'></td></tr>\n"
		content=content + "<tr><td><img src='../../hotelinfo/image/cal_box_05.gif'></td></tr>\n"
		content=content + "<tr><td bgcolor='#F6F6F6' valign='top' align='center'>\n"
		content=content + "<table width='110' border='0' cellpadding='2' cellspacing='0'>\n"
		content=content + "<tr align='center'>\n"

    	content=content + "<td style='font-size:8pt;color:#B9322F;font-family:verdana;'>" + day_name[0] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#000000;font-family:verdana;'>" + day_name[1] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#000000;font-family:verdana;'>" + day_name[2] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#000000;font-family:verdana;'>" + day_name[3] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#000000;font-family:verdana;'>" + day_name[4] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#000000;font-family:verdana;'>" + day_name[5] + "</td>\n"
    	content=content + "<td style='font-size:8pt;color:#274AB0;font-family:verdana;'>" + day_name[6] + "</td>\n"
		
		content=content + "</tr>\n"
		content=content + "<tr><td colspan='7' align='center'><img src='../../hotelinfo/image/cal_line.gif'></td></tr>\n"
		content=content + "<tr align='center'>\n"

    	var column = 0

    	for (i=1 ; i <= (firstday-1);i++)
    	{
    		content=content + "<td></td>\n"
    		column =column + 1
    	}

    	for( i=1 ; i<= DaysInMonth;i++)
    	{
    		if(y == s_year && m == s_month && i == s_day) content=content+"<td style='color:red;font-size:8pt;font-family:verdana;font-weight:bold;background-color:#F6F6F6; vertical-align:middle; cursor:pointer'\n"
    		else if(column ==0) content=content+"<td style='font-size:8pt;font-family:verdana;background-color:#F6F6F6;vertical-align:middle;color:#B9322F; cursor:pointer'\n"
    		else if(column ==6) content=content+"<td style='font-size:8pt;font-family:verdana;background-color:#F6F6F6;vertical-align:middle;color:#274AB0;cursor:pointer'\n"
    		else  content=content+"<td style='font-size:8pt;font-family:verdana;background-color:#F6F6F6;vertical-align:middle;color:black;cursor:pointer'\n"
    		content = content + " title=" + i + ">" + i;
    		
    		column  = column + 1
    		content = content + "</td>\n"

    		if(column == 7 && i < DaysInMonth)
    		{
    			content = content + "</tr><tr align='center'>\n"
    			column = 0
    		}
    	}

    	if((column > 0) && (column < 7))
    	{
    		for (i=1 ;i <= (7-column) ; i++)
    			content=content+"<td></td>\n"
    			

    	}
    		


     
      content=content +"</tr>\n"
	  content=content +"</table>\n"
	  content=content +"</td></tr>\n"
	  content=content +"<tr><td><img src='../../hotelinfo/image/cal_box_07.gif'></td></tr>\n"
	  content=content +"</table>\n"
	  content=content +"</td></tr>\n"
	  content=content +"<tr><td height='5' background='../../hotelinfo/image/cal_box_02.gif'></td></tr>\n"
	  content=content +"<tr><td align='center' background='../../hotelinfo/image/cal_box_02.gif'><img src='../../hotelinfo/image/cal_deco.gif'><span style='font-size: 8px;font-family:tahoma,verdana; color:red; text-decoration:none; cursor:pointer' onClick='parent.showCalendarPopup(" + s_year + "," + s_month + "," + s_day + ");' ><img src='../../hotelinfo/image/cal_today.gif' border='0'></span></td></tr>\n"
	  content=content +"<tr><td height='3' background='../../hotelinfo/image/cal_box_02.gif'></td></tr>\n"
	  content=content +"<tr><td height='10'><img src='../../hotelinfo/image/cal_box_03.gif'></td></tr></form>\n"
	  content=content +"</table>\n";

     
      menuPopup = window.createPopup();
      menuPopup.document.body.innerHTML = content;
  }
}

function lostFocus()
{
    menuPopup.document.calendar.years.focus();
        //menuPopup.document.calendar.all['tempFocus'].focus();
        //menuPopup.document.calendar.tempFocus.focus();
    menuPopup.document.calendar.years.blur();
}

function closePopup()
{
    if(menuPopup != null)
    {
        menuPopup.hide();
    }
}
 menuDelay  = 50;  //delay before menu appears
 menuSpeed  = 5;   //speed which menu appears (lower=faster)
 menuOffset = 2;   //offset of menu from mouse pointer

 menuWidth  = 180;
 menuHeight = 213; //menu height

var scriptId;
var scriptType;
var idx = 0;

var menuXPos = 0;
var menuYPos = 0;

// #####  ±âÁ¸¿¡ ¾²´ø Æã¼Ç
function callCalPop(scriptId, scriptType)
{
    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
	}
	else
	{
    	return alert("Version of Internet Explorer must higher than 5.5");
	}

    this.scriptId   = scriptId;
	this.scriptType = scriptType;
	this.dtype      = scriptType;

	menuXPos = parseInt(event.clientX);
	menuYPos = parseInt(event.clientY);

	get_date();
    
}

var flgNewCalendar = false;
var strMethod = null;

// ##### »õ·Î ¸Í±Ù È£Ãâ Æã¼Ç
function callCalendar(scriptId,scriptType,_strMethod)
{
    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
	}
	else
	{
    	return alert("Version of Internet Explorer must higher than 5.5");
	}
    flgNewCalendar = true;
    strMethod = _strMethod;
    
    this.scriptId   = "document.getElementById('"+scriptId+"')";
	this.scriptType = scriptType;
	this.dtype      = scriptType;
    
	menuXPos = parseInt(event.clientX);
	menuYPos = parseInt(event.clientY);

	get_date();
}

/*

// 2006.12.26 ¼öÁ¤
// ÀÌ°Å È£ÃâÇÏ´Â ºÎºÐ ÀÖ´Ù¸é,  inho.lee ÇÑÅ× ¹®ÀÇ ¿ä¸Á
// ÇÏµå ÄÚµù ÇÏÁö ¸¶¼À

function callCalPopArry(scriptId, scriptType, idx)
{
    if(window.navigator.appName == "Microsoft Internet Explorer" && window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE") + 5, window.navigator.appVersion.indexOf("MSIE") + 8) >= 5.5)
    {
	}
	else
	{
    	return alert("Version of Internet Explorer must higher than 5.5");
	}

    var varStartCWDate = document.getElementsByName(scriptId)[idx]; 
    
    this.scriptId   = varStartCWDate;
	this.scriptType = scriptType;
	this.dtype      = scriptType;
	this.idx        = idx;

	menuXPos = parseInt(event.clientX);
	menuYPos = parseInt(event.clientY);

	get_date();
    
}
*/
function showCalendarPopup(sYear,sMonth,sDay)
{
    
	make_calendar(sYear,sMonth,sDay);

    menuXIncrement = menuWidth / menuSpeed;
    menuYIncrement = menuHeight / menuSpeed;

    menuTimer = setTimeout("openMenu(0,0)", menuDelay);

    return false;
}


function openMenu(height, width)
{
    iHeight = height;
    iWidth = width;


    if(iHeight < menuHeight)
    {
        menuTimer = setTimeout("openMenu(iHeight + menuYIncrement, iWidth + menuXIncrement)", 1);
    }
    else
    {
        menuPopup.show(menuXPos, menuYPos, iWidth, iHeight, document.body);
        clearTimeout(menuTimer);
    }
}
function nightchk(){
    objform=document.form1;			
    if(objform.checkInDate.value != ""){
	    ValofcheckOutDate();
    }else{
	    alert("Select CheckIn Date.");
    }
}
/*

// 2006.12.26 ¼öÁ¤
// ÀÌ°Å È£ÃâÇÏ´Â ºÎºÐ ÀÖ´Ù¸é,  inho.lee ÇÑÅ× ¹®ÀÇ ¿ä¸Á
// ÇÏµå ÄÚµù ÇÏÁö ¸¶¼À


function nightchk2(param){
			objform="document.form1.checkInDate"+param;
			if(objform.value != ""){
				ValofcheckOutDate2(param);
			}else{
				alert("Select CheckIn Date.");
			}
}
function nightchk3(){
			if(scriptId.value != ""){
				ValofcheckOutDate3();
			}else{
				alert("Select CheckIn Date.");
			}		
}
*/
function ValofcheckOutDate(){	
		    var days = 1 ;
		    
			var chkInDateVal= document.getElementsByName("checkInDate")[0];
			var checkOutDate= document.getElementsByName("checkOutDate")[0];	
			var night= document.getElementsByName("night")[0];	
//			var daysobj= document.getElementsByName("days")[0];							

			checkOutDate.value=addDays(chkInDateVal,night.value);	
			days += (night.value) - 0;
//			daysobj.value = days - 0;
}

/*

// 2006.12.26 ¼öÁ¤
// ÀÌ°Å È£ÃâÇÏ´Â ºÎºÐ ÀÖ´Ù¸é,  inho.lee ÇÑÅ× ¹®ÀÇ ¿ä¸Á
// ÇÏµå ÄÚµù ÇÏÁö ¸¶¼À

function ValofcheckOutDate2(param){	
		    var days = 1 ;
			objform="document.form1.checkInDate"+param;		
			objform2="document.form1.checkOutnDate"+param;		
			objform3="document.form1.night"+param;		
			objform4="document.form1.days"+param;		
			chkInDateVal=objform.value;
			objform2.value=addDays(chkInDateVal,objform3.selectedIndex);	
			days += (objform3.value) - 0;
			objform4.value = days - 0;
}
function ValofcheckOutDate3(){	
		    var days = 1 ;
		    
			var chkInDateVal= document.getElementsByName("checkInDate[]")[this.idx];
			var checkOutDate= document.getElementsByName("checkOutDate[]")[this.idx];	
			var night= document.getElementsByName("night[]")[this.idx];	
			var daysobj= document.getElementsByName("days[]")[this.idx];							

			checkOutDate.value=addDays(chkInDateVal,night.selectedIndex);	
			days += (night.value) - 0;
			daysobj.value = days - 0;
}
*/
function addDays(isoDate, noOfDays) {
			var aDate=cvtISOToDate(isoDate);
			if (!aDate) return "";
			var millis=86400000 * noOfDays;
			aDate=new Date(aDate.getTime()+millis);
			with (aDate) {
				var mm=getMonth()+1;
				if (mm<10) {mm='0'+mm;}
				var dd=getDate();
				if (dd<10) {dd='0'+dd;}
				return (getFullYear() + '-' + mm + '-' + dd);
			}
}
function cvtISOToDate(isoDate) {
			var atomDate= isoDate.value.split('-');
			var aDate=new Date(parseInt(atomDate[0],10),parseInt(atomDate[1],10)-1,parseInt(atomDate[2],10),6,0,0);
			return aDate;
}

