
// big booking box 

var updateTotalValue = 0;

function checkAvailability(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function sm_checkAvailability(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function checkAvailabilitySmart(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function updateCheckAvailAll(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = new Date();

	updateCheckAvailDo(column,cForm,cDate);
}

function sm_updateCheckAvailAll(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = new Date();

	updateCheckAvailDo(column,cForm,cDate);
}

function updateCheckAvailDo(column,cForm,cDate)
{
	var sDate  = getDate(cForm,0);setDate(cForm,sDate,0);	//Get Start Date & Set Correct StartDate
	var eDate  = getDate(cForm,2);setDate(cForm,eDate,1);	//Get EndDate & Set Correct EndDate

//-Change StartDate or Number of Nights------------------------------------------------------------
	if(column=='sDate' || column=='Nights')
	{
		var sDate  = getDate(cForm,0);
		if(sDate.getTime()<cDate.getTime())
		{
			setDate(cForm,cDate,0);
			sDate  = getDate(cForm,0);
		}
		var eDate  = getDate(cForm,1);
		setDate(cForm,eDate,1);
	}
//-Change EndDate----------------------------------------------------------------------------------
	else if(column=='eDate')
	{
//-Check If selected end date is before first date-------------------------------------------------
		if(eDate.getTime()<cDate.getTime())
		{
			setDate(cForm,cDate,0);				// Set StartDate to first Date
			var sDate  = getDate(cForm,0);		// Get StartDate
			var eDate  = getDate(cForm,1);		// Get EndDate (StartDate + Nights)
			setDate(cForm,eDate,1);				// Set EndDate
		}
//-Check If selected end date is before start date
		else if(eDate.getTime()<=sDate.getTime())
		{
			eDate = sDate;
			eDate.setDate(eDate.getDate()+1);
			setDate(cForm,eDate,1);				// Set EndDate
		}
//-Set Number of nights.
		var sDate  = getDate(cForm,0);			// Get StartDate
		var eDate  = getDate(cForm,2);			// Get EndDate
			
		var cTime  = eDate.getTime() - sDate.getTime();
		var nDate  = new Date(cTime);
		var cValue = Number(nDate.getDate()) - 1;
		cValue = Math.floor(cTime / (1000 * 60 * 60 * 24));
		var cElement = cForm.elements['checkHotel[Nights]'];
		setElement(cElement,cValue);
	}
}

function getDate(cForm,InOut)
{
	var cElement = cForm.elements['checkHotel[sDay]'];
	var sDay = cElement[cElement.selectedIndex].value;
	var cElement = cForm.elements['checkHotel[sMonth]'];
	var sMonth = cElement[cElement.selectedIndex].value;
	var cElement = cForm.elements['checkHotel[sYear]'];
	var sYear = cElement[cElement.selectedIndex].value;

	var cDate = new Date(sYear,(sMonth-1),sDay);
	if(InOut==1)
	{
		var cElement = cForm.elements['checkHotel[Nights]'];
		var Nights = cElement[cElement.selectedIndex].value;
		cDate.setDate(cDate.getDate()+Number(Nights));
	}
	if(InOut==2)
	{
		var cElement = cForm.elements['checkHotel[eDay]'];
		var eDay = cElement[cElement.selectedIndex].value;
		var cElement = cForm.elements['checkHotel[eMonth]'];
		var eMonth = cElement[cElement.selectedIndex].value;
		var cElement = cForm.elements['checkHotel[eYear]'];
		var eYear = cElement[cElement.selectedIndex].value;

		var cDate = new Date(eYear,(eMonth-1),eDay);

	}
	return(cDate);
}

function setDate(cForm,cDate,InOut)
{
	if(InOut==0)
	{
		var cElement = cForm.elements['checkHotel[sDay]'];
		var cValue = Number(cDate.getDate());setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[sMonth]'];
		var cValue = Number(cDate.getMonth())+1;setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[sYear]'];
		var cValue = Number(cDate.getFullYear());setElement(cElement,cValue);
	}
	else
	{
		var cElement = cForm.elements['checkHotel[eDay]'];
		var cValue = Number(cDate.getDate());setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[eMonth]'];
		var cValue = Number(cDate.getMonth())+1;setElement(cElement,cValue);

		var cElement = cForm.elements['checkHotel[eYear]'];
		var cValue = Number(cDate.getFullYear());setElement(cElement,cValue);
	}
}

function setElement(cElement,cValue)
{
	for(var i=0;i<cElement.length;i++)
	{
		if(Number(cElement.options[i].value)==cValue)
		{
			cElement.selectedIndex = i;
			break;
		}
	}
	if(i==cElement.length) {
		if((cElement.name.indexOf("Year")!=-1) || (cElement.name.indexOf("Nights")!=-1)) {
			var oldYear = Number(cElement.options[cElement.length - 1].value) + 1;
			while (oldYear<=cValue)
			{
				cElement.options[cElement.length] = new Option(oldYear, oldYear);
				oldYear = oldYear + 1;
			}
			cElement.selectedIndex = cElement.length - 1;
		}
	}
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
function loadCurrency(CurrencyCode)
{
	var cForm    = document.forms['hotelCurrency'];
	var cElement = cForm.elements['CurrencyCode'];

	var cName = cElement.options[cElement.selectedIndex].value;

	for(i=0;i<Currency.length;i+=2){if(Currency[i]==CurrencyCode){var cHotelRate=Currency[(i+1)];break;}}
	for(i=0;i<Currency.length;i+=2){if(Currency[i]==cName){var cRate=Currency[(i+1)];break;}}

	var cRate = Number(cRate)/Number(cHotelRate);
	return(cRate);
}

function updateRate(checkAvailForm,CurrencyCode)
{
	var cRate = loadCurrency(CurrencyCode);

	var nForm    = document.forms['hotelCurrency'];
	var nElement = nForm.elements['CurrencyCode'];

	var cName = nElement.options[nElement.selectedIndex].text;

	for(i=0;i<Hotel.length;i++)
	{
		var cForm  = document.forms['hotelRate['+i+']'];
		for(j=0;j<Hotel[i].length;j+=5)
		{
			var cSource  = 'Currency_2_'+i+'_'+Hotel[i][j];
			var cElement = cForm.elements[cSource];
			cElement.value = Math.round(Hotel[i][(j+3)]/Number(cRate));
			if(cElement.value==0){cElement.value='';}
			else
			{
				cElement.value = cElement.value + ' ' + cName;
			}
			var cElement = cForm.elements['Currency_3_'+i+'_'+Hotel[i][j]];
			cElement.value = Math.round(Hotel[i][(j+4)]/Number(cRate));
			if(cElement.value==0){cElement.value='';}
			else
			{
				cElement.value = cElement.value + ' ' + cName;
			}
		}
		if(updateTotalValue==1)
		{
			updateTotal(checkAvailForm,i,CurrencyCode,cRate);
		}
	}
}

function updateApproxTotal(checkAvailForm,CurrencyCode)
{
	var cForm    = document.forms[checkAvailForm];
	var cElement = cForm.elements['checkHotel[Accommodation]'];
	var cRate    = loadCurrency(CurrencyCode);

	i = cElement.options[cElement.selectedIndex].value;
	if(i!='--')
	{
		updateTotal(i,CurrencyCode,cRate);
	}
	else
	{
		var cElement = cForm.elements['checkHotel[ApproxTotal]'];
		cElement.value = "";
	}
	updateTotalValue=1;
}

function updateTotal(checkAvailForm,i,CurrencyCode,cRate)
{
	var cForm  = document.forms[checkAvailForm];
	var sDate  = getDate(cForm,0);
	var eDate  = getDate(cForm,1);
	var cValue = 0;

	var cDate = sDate;
	for(;cDate.getTime()<eDate.getTime();)
	{
		for(j=0;j<Hotel[i].length;j+=5)
		{
			if(Number(Hotel[i][(j+1)])<=(cDate.getTime()/1000) && Number(Hotel[i][(j+2)])>=(cDate.getTime()/1000))
			{
				cValue += Number(Hotel[i][(j+3)]);break;
			}
		}
		cDate.setDate(cDate.getDate()+1);
	}

	var cElement = cForm.elements['checkHotel[TotalRooms]'];
	var TotalRooms = cElement[cElement.selectedIndex].value;

	var cElement = cForm.elements['checkHotel[ApproxTotal]'];

	var xValue = Number(Math.round(Number(TotalRooms) * Number(cValue/Number(cRate))));

	if(xValue==0)
	{
		cElement.value = '';
	}
	else
	{
		var nForm    = document.forms['hotelCurrency'];
		var nElement = nForm.elements['CurrencyCode'];

		var cName = nElement.options[nElement.selectedIndex].text;

		cElement.value = xValue + ' ' + cName;
	}
}

function updateCheckAvail(checkAvailForm,column)
{
	var cForm = document.forms[checkAvailForm];
	var cDate = getcDate();
	updateCheckAvailDo(column,cForm,cDate);
}

function bookRoom(checkAvailForm)
{
	var cForm = document.forms[checkAvailForm];
	cForm.submit();
}

function getcDate()
{
	var cDate = new Date();
	var mDate = new Date();
	mDate.setFullYear(mDate.getFullYear()+10);

	for(var i=0;i<Hotel.length;i++)
	{
		if((Number(Hotel[i][1])*1000)<mDate.getTime())
		{
			mDate = new Date((Number(Hotel[i][1])*1000));
		}
	}
	if(mDate.getFullYear()!=(cDate.getFullYear()+10))
	{
		cDate = mDate;
	}
	return(cDate);
}

function setYear()
{
	var sDays  = new Date().getTime() + (3*86400000);
	var sDate  = new Date(sDays);
	var cYear = Number(sDate.getFullYear());
	if(cYear<1900) {
		if(!document.all) cYear = Number(sDate.getYear()) + 1900;
		else cYear = Number(sDate.getYear());
	}
	document.write("<option value =" + cYear + ">" +cYear+"</option>");
	document.write("<option value =" + (cYear+1) + ">" +(cYear+1)+"</option>");	
}


sm_updateCheckAvailAll('checkAvailStandard','Nights');

// end big booking box

// small booking box

﻿var ckAvailStartTdyShort = new Date();
var ckAvailStartTdyDateShift = 1;
//remove time from Date
ckAvailStartTdyShort = new Date(ckAvailStartTdyShort.getFullYear(),  ckAvailStartTdyShort.getMonth(), ckAvailStartTdyShort.getDate());
var ckAvailStartDateShort = new Date(ckAvailStartTdyShort.getFullYear(),  ckAvailStartTdyShort.getMonth(), ckAvailStartTdyShort.getDate() + ckAvailStartTdyDateShift);

function getElcheckavailabilityShort(tmpname) {
	return document.forms['checkAvailQuick'].elements[tmpname];
}

function shortAddDate(cDate, addDay)
{
	return new Date(cDate.getFullYear(),  cDate.getMonth(), cDate.getDate() + addDay);
}

function showChangeDateShort(values) { 
	if(values=='in') {
		setAllDate(getElcheckavailabilityShort('txtCheck_InShort').value,'in');
	}
	else 
	if (values=='out')
	{
		setAllDate(getElcheckavailabilityShort('txtCheck_OutShort').value,'out');
	}
}

function setAllDate(cDate,InOut) {
	if (InOut=='in')
	{
		var startDate = ChStrtoDate(cDate);
		var endDate = ChStrtoDate(getElcheckavailabilityShort('txtCheck_OutShort').value);
		if(startDate<ckAvailStartTdyShort) startDate = ckAvailStartTdyShort;
		if(startDate>=endDate) endDate = shortAddDate(startDate, ckAvailStartTdyDateShift);
	}
	else 
	if (InOut=='out')
	{
		var startDate = ChStrtoDate(getElcheckavailabilityShort('txtCheck_InShort').value);
		var endDate = ChStrtoDate(cDate);
		if(startDate<ckAvailStartTdyShort) startDate = ckAvailStartTdyShort;
		if(startDate>=endDate) endDate = shortAddDate(startDate, ckAvailStartTdyDateShift);
	}
	else
	{
		var startDate = ckAvailStartTdyShort;
		var endDate = ckAvailStartDateShort;
	}

	var Nights = Math.floor((endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24)); 
	getElcheckavailabilityShort('checkHotel[Nights]').value = Nights;
	
	getElcheckavailabilityShort('txtCheck_InShort').value = ChDatetoStr(startDate);
	getElcheckavailabilityShort('txtCheck_OutShort').value = ChDatetoStr(endDate);
	
	var arrtmpDate = ChDatetoStr(startDate).split("/");
	var b = getElcheckavailabilityShort('checkHotel[sMonth2]');
	setElementShort(b, arrtmpDate[1]+'/'+arrtmpDate[2]);
	var b = getElcheckavailabilityShort('checkHotel[sYear]');
	b.value = arrtmpDate[2];
	var b = getElcheckavailabilityShort('checkHotel[sMonth]');
	b.value = arrtmpDate[1];
	var b = getElcheckavailabilityShort('checkHotel[sDay]');
	setElementShort(b, arrtmpDate[0]);

	var arrtmpDate = ChDatetoStr(endDate).split("/");
	var b = getElcheckavailabilityShort('checkHotel[eMonth2]');
	setElementShort(b, arrtmpDate[1]+'/'+arrtmpDate[2]);
	var b = getElcheckavailabilityShort('checkHotel[eYear]');
	b.value = arrtmpDate[2];
	var b = getElcheckavailabilityShort('checkHotel[eMonth]');
	b.value = arrtmpDate[1];
	var b = getElcheckavailabilityShort('checkHotel[eDay]');
	setElementShort(b, arrtmpDate[0]);
}

function createlistYearShort() {
	var a = getElcheckavailabilityShort('checkHotel[sMonth2]');
	a.length = 0;
	createListInOptions(ckAvailStartTdyShort, a);

	var b = getElcheckavailabilityShort('checkHotel[eMonth2]');
	b.length = 0;
	createListInOptions(ckAvailStartDateShort, b);
	
	getElcheckavailabilityShort('checkHotel[Nights]').value = ckAvailStartTdyDateShift;
}

function createListInOptions(tmptoday, obj)
{
	var sMonth = tmptoday.getMonth() + 1;
	var sYear = tmptoday.getFullYear();
	var i = 0;
	var arrmonth;

	var lang = getElcheckavailabilityShort('checkHotel[LanguageCode]').value;
	if(lang=="ja") arrmonth = new Array("", "1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
	else arrmonth = new Array("", "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	for(i=0;i<=17;i++) {
		sYearShow = String(sYear).substring(2,4);
		obj.options[i]=new Option(arrmonth[sMonth] +' ' + sYearShow, padZero(sMonth)+'/'+sYear);
		sMonth = sMonth + 1;
		if(sMonth>=13) {
			sMonth = 1;
			sYear = sYear + 1;
		}
	}
}

var ddd = 0;
function setDefDateShort() {
	ddd = ddd + 1;
	getElcheckavailabilityShort('txtCheck_InShort').value = ChDatetoStr(ckAvailStartTdyShort);
	getElcheckavailabilityShort('txtCheck_OutShort').value = ChDatetoStr(ckAvailStartDateShort);

	setAllDate(ChDatetoStr(ckAvailStartTdyShort), 'in');
	setAllDate(ChDatetoStr(ckAvailStartDateShort), 'out');
}

function ChDatetoStr(cDate) {
	return padZero(cDate.getDate()) + '/' + padZero(cDate.getMonth() + 1) + '/' + cDate.getFullYear();
}

function ChStrtoDate(cDate) {
	var arrcDate = cDate.split("/");
	return new Date(arrcDate[2], Number(arrcDate[1])-1, Number(arrcDate[0]));
}

function setElementShort(cElement,cValue)
{
	for(var i=0;i<cElement.length;i++)
	{
		if(cElement.options[i].value==cValue)
		{
			cElement.selectedIndex = i; 
			break;
		}
	}
	if(i==cElement.length) {
		if(ddd<=2) setDefDateShort();
		return false;
	}
}

function updateCheckAvailAllShort(column, frommonth)
{
	if(column=='sDate')
	{
		var cElement = getElcheckavailabilityShort('checkHotel[sDay]');
		var sDay = cElement[cElement.selectedIndex].value;
		var cElement = getElcheckavailabilityShort('checkHotel[sMonth2]');
		var tmpMonth = cElement[cElement.selectedIndex].value;
		setAllDate(sDay +'/' + tmpMonth, 'in');
	}
	else 
	if(column=='eDate') 
	{
		var cElement = getElcheckavailabilityShort('checkHotel[eDay]');
		var sDay = cElement[cElement.selectedIndex].value;
		var cElement = getElcheckavailabilityShort('checkHotel[eMonth2]');
		var tmpMonth = cElement[cElement.selectedIndex].value;
		setAllDate(sDay +'/' + tmpMonth, 'out');
	}
}

function padZero(num) {
	return (num< 10) ? '0' + num : num ;
}

createlistYearShort();
setDefDateShort();


if(String(typeof(crossobj))=="undefined") {
	if(String(typeof(hasLongType))=="undefined") var hasShortType = "true";
	else var hasShortType = "false";
}


	if(String(typeof(crossobj))=="undefined") {
		var fixedX = -1			// x position (-1 if to appear below control)
		var fixedY = -1			// y position (-1 if to appear below control)
		var startAt = 0			// 0 - sunday ; 1 - monday
		var showWeekNumber = 1		// 0 - don't show; 1 - show
		var showToday = 1			// 0 - don't show; 1 - show
		var imgDir = "http://static.asiawebdirect.com/booking-boxes/images/"
		var mouseX = 0;
		var mouseY = 0;
		var gotoString = "Go To Current Month"
		var todayString = "Today is"
		var weekString = "Wk";

		//var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
		//var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically."
		//var selectMonthMessage = "Click to select a month."
		//var selectYearMessage = "Click to select a year."

		var scrollLeftMessage = ""
		var scrollRightMessage = ""
		var selectMonthMessage = ""
		var selectYearMessage = ""

		var closeCalendarMessage = "Close"
		var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date.

		var crossobj, crossMonthObj, crossYearObj
		var monthSelected, yearSelected, dateSelected
		var omonthSelected, oyearSelected, odateSelected
		var monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2
		var ctlToPlaceValue1, ctlToPlaceValue2, ctlNow, dateFormat
		var nStartingYear

		var bPageLoaded=false
		var ie=document.all
		var dom=document.getElementById

		var ns4=document.layers
		var today = new Date()
		var dateNow = today.getDate()
		var monthNow = today.getMonth()
		var yearNow = today.getYear()
		var imgsrc = new Array("drop1.gif","drop1.gif","left1.gif","left1.gif","right1.gif","right1.gif")
		var img = new Array()
		var badDate = imgDir + "baddate.gif"

		var imgBL = imgDir + "cornerbotleft.gif"
		var imgBR = imgDir + "cornerbotright.gif"
		var imgTL = imgDir + "cornertopleft.gif"
		var imgTR = imgDir + "cornertopright.gif"

		var bShow = false;
		var iStart,iEnd

		/* hides <select> and <applet> objects (for IE only) */
		function hideElement( elmID, overDiv )
		{
		  if( ie )
		  {
			for( i = 0; i < document.all.tags( elmID ).length; i++ )
			{
			  obj = document.all.tags( elmID )[i];
			  if( !obj || !obj.offsetParent )
			  {
				continue;
			  }

			  // Find the element's offsetTop and offsetLeft relative to the BODY tag.
			  objLeft   = obj.offsetLeft;
			  objTop    = obj.offsetTop;
			  objParent = obj.offsetParent;

			  while( objParent.tagName.toUpperCase() != "BODY" && objParent.tagName.toUpperCase() != "HTML")
			  {
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			  }

			  objHeight = obj.offsetHeight - 5;
			  objWidth = obj.offsetWidth;

				var tmpoverDivoffsetTop = overDiv.offsetTop;
				if(LongIsinLayer || ShortIsinLayer) {
					aTag = document.getElementById(LayerParentCalendar);
					//if(aTag!=null) tmpoverDivoffsetTop += aTag.offsetTop;
					if(aTag!=null)
					{
						if(String(aTag.style.top)!="")
						{
							tmpoverDivoffsetTop += aTag.offsetTop;
						}
					}
				}

			  if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
			  else if(( tmpoverDivoffsetTop + overDiv.offsetHeight ) <= objTop );
			  else if( tmpoverDivoffsetTop >= ( objTop + objHeight ));
			  else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
			  else
			  {
				obj.style.visibility = "hidden";
				obj.style.display = "none";
			  }
			}
		  }
		}

		/*
		* unhides <select> and <applet> objects (for IE only)
		*/
		function showElement( elmID )
		{
			if( ie )
			{
				for( i = 0; i < document.all.tags( elmID ).length; i++ )
				{
					obj = document.all.tags( elmID )[i];

					if( !obj || !obj.offsetParent )
					{
						continue;
					}
					if(obj.style.visibility=="hidden" && obj.style.display=="none"){
						obj.style.visibility = "visible";
						obj.style.display = "";
					}
				}
			}
		}

		function HolidayRec (d, m, y, desc)
		{
			this.d = d
			this.m = m
			this.y = y
			this.desc = desc
		}


		var HolidaysCounter = 0
		var Holidays = new Array()

		function addHoliday (d, m, y, desc)
		{
			Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
		}


		if (dom)
		{
			for(i=0;i<imgsrc.length;i++)
			{
				img[i] = new Image
				img[i].src = imgDir + imgsrc[i]
			}
			mainLayer = "<div onclick='bShow=true' id='calendar' style='z-index:+999;position:absolute;visibility:hidden;'>"
			mainLayer += "	<table cellspacing=0 cellpadding=0 style='font-family:arial;font-size:11px;'>"
			mainLayer += "		<tr><td>"
			mainLayer += "			<table width=100% cellspacing=0 cellpadding=0 border=0>"
			mainLayer += "				<tr><td><img src="+imgTL+"></td>";
			mainLayer += "					<td bgcolor='#ffbf00' style='padding-top:3px;font-family:arial; font-size:11px;' width=158><font color='#ffffff'><B><span id='caption'></span></B></font></td>"
			mainLayer += "					<td align=right bgcolor='#ffbf00'>"
			mainLayer += "						<table id='closeButton' cellpadding=0 cellspacing=1 border=0 bgcolor=#f9d35f>"
			mainLayer += "							<tr><td><a href='javascript:hideCalendar()'onMouseOver='document.getElementById(\"closeButton\").className=\"whiteBorder\"' onMouseOut='document.getElementById(\"closeButton\").className=\"\"'><IMG SRC='"+imgDir+"close.gif' BORDER='0' ALT='"+closeCalendarMessage+"'></a></td></tr>"
			mainLayer += "						</table></td>"
			mainLayer += "					<td><img src="+imgTR+"></td></tr>"
			mainLayer += "			</table>"
			mainLayer += "		</td></tr>"
			mainLayer += "		<tr><td style='padding:0px' bgcolor=#ffffff>"
			mainLayer += "			<table width=100% cellspacing=0 cellpadding=0 border=0>"
			mainLayer += "				<tr><td width=1 bgcolor=#FFBF00></td><td bgcolor=#FFFFFF><span id='calendarcontent'></span></td><td width=1 bgcolor=#FFBF00></td></tr>"
			mainLayer += "			</table>"
			mainLayer += "		</td></tr>"

			if (showToday==1)
				mainLayer += "<tr><td align=center><table width=100% cellspacing=0 cellpadding=0 border=0><tr><td rowspan=2 width=1><img src=" + imgBL + "></td><td align=center height=5 bgcolor=#FFFFFF><span id='lblToday' style='font-family:Verdana;font-size:9px;'></span></td><td rowspan=2><img src=" + imgBR + "></td></tr><tr><td bgcolor=#FFBF00 width=100% height=1></td></tr></table></td></tr>";

			mainLayer += "</table></div><div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>";

			document.write (mainLayer);
		}

		//var	monthName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")

		var monthName = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

		if (startAt==0)
		{
			dayName = new Array ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
		}
		else
		{
			dayName = new Array ("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
		}
		var	styleAnchor="text-decoration:none;color:black;"

		// Set Border Color of Selected Date
		var	styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"
		//var	styleLightBorder="border-style:solid;border-width:1px;border-color:#FF0000;"

		function swapImage(srcImg, destImg){
			if (ie)	{ document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
		}

		function initca() {
			if (!ns4)
			{
				if (!ie) { yearNow += 1900	}

				crossobj=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar
				hideCalendar()
				crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth	: document.selectMonth
				crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear

				monthConstructed=false;
				yearConstructed=false;

				if (showToday==1)
				{
					//document.getElementById("lblToday").innerHTML =	todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3)	+ "	" +	yearNow	+ "</a>"
				}

				
				sHTML1="<span id='spanLeft' style='border-style:solid;border-width:1;border-color:#f9d35f;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#FFFFFF\";window.status=\""+scrollLeftMessage+"\"' onclick=\"javascript:decMonth()\" onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#f9d35f\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG align=middle id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;"
				sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#f9d35f;cursor:pointer' onmouseover='swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#FFFFFF\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#f9d35f\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG align=middle id='changeRight' SRC='"+imgDir+"right1.gif'	width=10 height=11 BORDER=0>&nbsp</span>&nbsp"
				
				sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#f9d35f;cursor:pointer' onmouseover='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#FFFFFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#f9d35f\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;"
				sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#f9d35f;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#FFFFFF\";window.status=\""+selectYearMessage+"\"' onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#f9d35f\";window.status=\"\"'	onclick='popUpYear()'></span>"
				//sHTML1+="<span id='spanYear' style='display: none; border-style:solid;border-width:1;border-color:#f9d35f;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#FFFFFF\";window.status=\""+selectYearMessage+"\"' onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#f9d35f\";window.status=\"\"'	onclick='popUpYear()'></span>&nbsp;"

				document.getElementById("caption").innerHTML  =	sHTML1

				bPageLoaded=true;
			}
			checkhasOtherCalendar();
		}

		var LongIsinLayer = false;
		var ShortIsinLayer = false;
		var LayerParentCalendar = "";

		function checkhasOtherCalendar() {
			if(LongIsinLayer==false) {
				for( j = 0; j < document.getElementsByTagName('div').length; j++ )
				{
					divtmp = document.getElementsByTagName('div')[j];
					
					for( i = 0; i < divtmp.getElementsByTagName('img').length; i++ )
					{
						obj = divtmp.getElementsByTagName('img')[i];
						if(obj.src.indexOf('images/calendar/calendar.gif')!=-1)
						{
							if(String(obj.onclick).indexOf('opencalendar')!=-1)
							{
								LongIsinLayer = true;
								ShortIsinLayer = true;
								LayerParentCalendar = divtmp.id;
								break;
							}
						}
					}
				}
			}
		}

		function hideCalendar()	{
			try
			{
				crossobj.visibility="hidden";
				if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
				if (crossYearObj !=	null){crossYearObj.visibility="hidden"}

				showElement( 'SELECT' );
				showElement( 'APPLET' );
			} catch(e) {}
		}

		function padZero(num) {
			return (num< 10) ? '0' + num : num ;
		}

		function constructDate(d,m,y)
		{
			sTmp = dateFormat
			sTmp = sTmp.replace	("dd","<e>")
			sTmp = sTmp.replace	("d","<d>")
			sTmp = sTmp.replace	("<e>",padZero(d))
			sTmp = sTmp.replace	("<d>",d)
			sTmp = sTmp.replace	("mmm","<o>")
			sTmp = sTmp.replace	("mm","<n>")
			sTmp = sTmp.replace	("m","<m>")
			sTmp = sTmp.replace	("<m>",m+1)
			sTmp = sTmp.replace	("<n>",padZero(m+1))
			sTmp = sTmp.replace	("<o>",monthName[m])
			return sTmp.replace ("yyyy",y)
		}

		var eventdoonclose;
		function closeCalendar() {
			var	sTmp
			hideCalendar();
			if (yearSelected>(yearNow+prefixyearAddOn))
			{
				var strvar = padZero(dateNow) + "/" + (padZero(monthNow+1)) + "/" + yearNow;
			} 
			else 
			{
				var strvar = padZero(dateSelected) + "/" + (padZero(monthSelected+1)) + "/" + yearSelected;
			}
			ctlToPlaceValue1.value = strvar;
			eval(eventdoonclose);
		}

		/*** Year Pulldown	***/
		function StartDecYear()
		{
			intervalID2=setInterval("decYear()",80)
		}

		function StartIncYear()
		{
			intervalID2=setInterval("incYear()",80)
		}

		/*** Month Pulldown	***/
		function StartDecMonth()
		{
			intervalID1=setInterval("decMonth()",80)
		}

		function StartIncMonth()
		{
			intervalID1=setInterval("incMonth()",80)
		}

		function incMonth () {
			monthSelected++
			if (monthSelected>11) {
				monthSelected=0
				yearSelected++
			}
			constructCalendar()
		}

		function decMonth () {
			monthSelected--
			if (monthSelected<0) {
				monthSelected=11
				yearSelected--
			}
			constructCalendar()
		}

		function constructMonth() {
			popDownYear()
		//	if (!monthConstructed) {
				sHTML =	""
				iStart=0;
				iEnd=12;

					//iStart=monthNow;
					j=0;
					k=0;

					for(i=iStart; i<iEnd; i++) {
						j = i;
						sName =	monthName[j];
						//j = i + monthNow
						//if (j<=11) {
						//	k = yearNow
						//	sName =	monthName[j];
						//} else {
						//	j = j-12
						//	k = yearNow + 1
						//	sName =	monthName[j];
						//}
						k = yearSelected;
						if (i==monthSelected){
							sName =	"<B>" +	sName +	"</B>"
						}
						sHTML += "<tr><td id='m" + j + "/" + k + "' onmouseover='this.style.backgroundColor=\"#FFBF00\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + j + ";yearSelected="+k+";constructCalendar();popDownMonth();event.cancelBubble=true' class=calendar10>&nbsp;" + sName + " &nbsp;</td></tr>"
					}

				document.getElementById("selectMonth").innerHTML = "<table width=43 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#FFBF00;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>"

				monthConstructed=true
		//	}
		}

		function popUpMonth() {
			constructMonth()
			crossMonthObj.visibility = (dom||ie)? "visible"	: "show"
			var oldcrossMonthObjleft = crossMonthObj.left;
			crossMonthObj.left = parseInt(crossobj.left) + 50
			if(crossMonthObj.left==oldcrossMonthObjleft) crossMonthObj.left = (parseInt(crossobj.left) + 50) +'px';
			var oldcrossMonthObjtop= crossMonthObj.top;
			crossMonthObj.top = parseInt(crossobj.top) + 26
			if(crossMonthObj.top==oldcrossMonthObjtop) crossMonthObj.top = (parseInt(crossobj.top) + 26) +'px';

			hideElement( 'SELECT', document.getElementById("selectMonth") );
			hideElement( 'APPLET', document.getElementById("selectMonth") );
		}

		function popDownMonth()	{
			crossMonthObj.visibility= "hidden"
		}

		/*** Year Pulldown ***/

		function incYear() {
			for	(i=0; i<7; i++){
				newYear	= (i+nStartingYear)+1
				if (newYear==yearSelected)
				{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
				else
				{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
				document.getElementById("y"+i).innerHTML = txtYear
			}
			nStartingYear ++;
			bShow=true
		}

		function decYear() {
			for	(i=0; i<7; i++){
				newYear	= (i+nStartingYear)-1
				if (newYear==yearSelected)
				{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
				else
				{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
				document.getElementById("y"+i).innerHTML = txtYear
			}
			nStartingYear --;
			bShow=true
		}

		function selectYear(nYear) {
			yearSelected=parseInt(nYear+nStartingYear);
			yearConstructed=false;
			constructMonth();
			constructCalendar();
			popDownYear();
		}

		function constructYear() {
			popDownMonth()
			sHTML =	""
			if (!yearConstructed) {
				sHTML =	"";
				//sHTML =	"<tr><td align='center'	onmouseover='this.style.backgroundColor=\"#FFBF00\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

				j =	0
				nStartingYear =	yearNow;
				for	(i=(yearNow); i<=(yearNow+prefixyearAddOn); i++) {
					sName =	i;
					if (i==yearSelected){
						sName =	"<B>" +	sName +	"</B>"
					}

					sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFBF00\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true' class=calendar10>&nbsp;" + sName + "&nbsp;</td></tr>"
					j ++;
				}

				//sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"

				document.getElementById("selectYear").innerHTML	= "<table width=47 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#FFBF00;'	bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"

				yearConstructed	= true
			}
		}

		function popDownYear() {
			clearInterval(intervalID1)
			clearTimeout(timeoutID1)
			clearInterval(intervalID2)
			clearTimeout(timeoutID2)
			crossYearObj.visibility= "hidden"
		}

		function popUpYear() {
			var	leftOffset

			constructYear()

			crossYearObj.visibility	= (dom||ie)? "visible" : "show"
			leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
			if (ie)
			{
				leftOffset += 6
			}
			var oldcrossYearObjleft = crossYearObj.left;
			crossYearObj.left =	leftOffset
			if(crossYearObj.left==oldcrossYearObjleft) crossYearObj.left = leftOffset +'px';
			var oldcrossYearObjtop = crossYearObj.top;
			crossYearObj.top = parseInt(crossobj.top) +	26
			if(crossYearObj.top==oldcrossYearObjtop) crossYearObj.top = (parseInt(crossobj.top) +	26) +'px';
		}

		/*** calendar ***/
	   function WeekNbr(n) {
		  // Algorithm used:
		  // From Klaus Tondering's Calendar document (The Authority/Guru)
		  // hhtp://www.tondering.dk/claus/calendar.html
		  // a = (14-month) / 12
		  // y = year + 4800 - a
		  // m = month + 12a - 3
		  // J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
		  // d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
		  // L = d4 / 1460
		  // d1 = ((d4 - L) mod 365) + L
		  // WeekNumber = d1 / 7 + 1

		  year = n.getFullYear();
		  month = n.getMonth() + 1;
		  if (startAt == 0) {
			 day = n.getDate() + 1;
		  }
		  else {
			 day = n.getDate();
		  }

		  a = Math.floor((14-month) / 12);
		  y = year + 4800 - a;
		  m = month + 12 * a - 3;
		  b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
		  J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
		  d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
		  L = Math.floor(d4 / 1460);
		  d1 = ((d4 - L) % 365) + L;
		  week = Math.floor(d1/7) + 1;

		  return week;
	   }

		function constructCalendar () {
			tmpyearSelected = yearSelected;
			
			//if ((monthSelected<monthNow) && (yearSelected==yearNow)) yearSelected = yearSelected+1;	//For dropdown changed

			var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
			var dateMessage
			var startDate =	new Date (tmpyearSelected,monthSelected,1)
			var endDate

			if (monthSelected==1)
			{
				endDate	= new Date (tmpyearSelected,monthSelected+1,1);
				endDate	= new Date (endDate - (24*60*60*1000));
				numDaysInMonth = endDate.getDate()
			}
			else
			{
				numDaysInMonth = aNumDays[monthSelected];
			}

			datePointer	= 0
			dayPointer = startDate.getDay() - startAt

			if (dayPointer<0)
			{
				dayPointer = 6
			}

			sHTML =	"<table	 border=0 style='font-family:verdana;font-size:10px;'><tr>"

			//if (showWeekNumber==1)
			//{
			//	sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>"
			//}

			for	(i=0; i<7; i++)	{
				//sHTML += "<td width='' align='right'><B>"+ dayName[i]+"</B></td>"
				sHTML += "<td width='' align='center' class=calendar10>"+ dayName[i]+"</td>"
			}
			sHTML +="</tr><tr>"

			//if (showWeekNumber==1)
		//	{
		//		sHTML += "<td align=right>" + WeekNbr(startDate) + "&nbsp;</td>"
		//	}

			for	( var i=1; i<=dayPointer;i++ )
			{
				sHTML += "<td class=calendar10>&nbsp;</td>"
			}

			for	( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
			{
				dayPointer++;
				//sHTML += "<td align=right>"
				sStyle=styleAnchor
				if ((datePointer==odateSelected) && (monthSelected==omonthSelected) && (yearSelected==oyearSelected))
				{ sStyle+=styleLightBorder }

				sHint = ""
				for (k=0;k<HolidaysCounter;k++)
				{
					if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
					{
						if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
						{
							sStyle+="background-color:#FFDDDD;"
							sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
						}
					}
				}

				var regexp= /\"/g
				sHint=sHint.replace(regexp,"&quot;")
				dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "

				currentDate = new Date(yearSelected, monthSelected, datePointer)
				//alert(currentDate)

				if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
				{
					sHTML += "<td align=right class=calendar10>"
					sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
				//else if	(dayPointer % 7 == (startAt * -1)+1)
				//{
				//	sHTML += "<td align=right>"
				//	sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>" }
				else
				{
					sHTML += "<td align=right class=calendar10>"
					sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>" }

				sHTML += ""
				if ((dayPointer+startAt) % 7 == startAt) {
					sHTML += "</tr><tr>"
				//	if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
				//	{
				//		sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "&nbsp;</td>"
				//	}
				}
			}

			document.getElementById("calendarcontent").innerHTML   = sHTML
			document.getElementById("spanMonth").innerHTML = "&nbsp;" + monthName[monthSelected] + " &nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
			document.getElementById("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
		}

		var prefixyearAddOn = 1;
		function prefixYear(values) {
			if(values==1) {
				prefixyearAddOn = 1;
			} else {
				var tnow = new Date();
				var sMonth = tnow.getMonth() + 1;
				var sYear = tnow.getFullYear();
				var sYearOld = sYear;
				var i;
				for(i=0;i<=17;i++) {
					sMonth = sMonth + 1;
					if(sMonth>=13) {
						sMonth = 1;
						sYear = sYear + 1;
					}
				}
				prefixyearAddOn = sYear - sYearOld;
			}
		}

		function opencalendar(format,ctl1,ctl2, eventonclose, FixShowX, FixShowY) {
			eventdoonclose = eventonclose;
			hideCalendar();
			var	leftpos=0
			var	toppos=0
			if (bPageLoaded)
			{
				if ( crossobj.visibility ==	"hidden" ) {
					ctlToPlaceValue1	= ctl1
					ctlToPlaceValue2	= ctl2
					dateFormat=format;

					formatChar = "/"
					aFormat	= dateFormat.split(formatChar)

					tokensChanged =	0
					if ( formatChar	!= "" )
					{
						var strDate
						if (ctl1.value == "")
						{
							strDate = padZero(dateNow) + "/" + padZero(monthNow + 1) + "/" + yearNow;
						}
						else
						{
							strDate = ctl1.value;
						}

						aData =	strDate.split(formatChar)

						for	(i=0;i<3;i++)
						{
							if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
							{
								dateSelected = parseInt(aData[i], 10)
								tokensChanged ++
							}
							else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
							{
								monthSelected =	parseInt(aData[i], 10) - 1
								tokensChanged ++
							}
							else if	(aFormat[i]=="yyyy")
							{
								yearSelected = parseInt(aData[i], 10)
								tokensChanged ++
							}
							else if	(aFormat[i]=="mmm")
							{
								for	(j=0; j<12;	j++)
								{
									if (aData[i]==monthName[j])
									{
										monthSelected=j
										tokensChanged ++
									}
								}
							}
						}
					}

					if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
					{
						dateSelected = dateNow
						monthSelected =	monthNow
						yearSelected = yearNow
					}

					odateSelected=dateSelected;
					omonthSelected=monthSelected;
					oyearSelected=yearSelected;

					if(ctl1.type == "hidden") {
						toppos = ctl2.y;
						leftpos = ctl2.x;
						if(String(toppos)=="undefined") {
							toppos = FixShowY;
							leftpos = FixShowX;
							toppos = Math.ceil(ctl2.clientHeight/2) + toppos;
						} else toppos = ctl2.clientHeight + toppos;
					} else {
						toppos = ctl1.y;
						leftpos = ctl1.x;
						if(String(toppos)=="undefined") {
							toppos = ctl2.y;
							leftpos = ctl2.x;
							if(String(toppos)=="undefined") {
								toppos = FixShowY;
								leftpos = FixShowX;
								toppos = Math.ceil(ctl2.clientHeight/2) + toppos;
							} else toppos = ctl2.clientHeight + toppos;
						} else toppos = ctl2.clientHeight + toppos;
					}

					if(LongIsinLayer || ShortIsinLayer) {
						aTag = document.getElementById(LayerParentCalendar);
						if(aTag!=null) {
							var ctl1IsInThisLayer = aTag.getElementsByTagName('input')[ctl1.name];
							if((ctl1IsInThisLayer==null) || (ie)) toppos -= aTag.offsetTop;
						}
					}
					leftpos = leftpos - document.getElementById("calendar").clientWidth;
					if(leftpos<0) leftpos = 0;
					var tmpscrollTop = document.body.scrollTop;
					if(tmpscrollTop==0) {
						try {
							tmpscrollTop = document.documentElement.scrollTop;
						} catch(e) {tmpscrollTop = 0;}
					}
					if(ie) toppos = toppos + tmpscrollTop;
					var oldcrossobjleft = crossobj.left;
					crossobj.left =	fixedX==-1 ? leftpos : fixedX;
					if(crossobj.left==oldcrossobjleft) crossobj.left =	fixedX==-1 ? leftpos +'px' : fixedX + 'px';
					var oldcrossobjtop = crossobj.top;
					crossobj.top = fixedY==-1 ? toppos + 10 :	fixedY;
					if(crossobj.top==oldcrossobjtop) crossobj.top = fixedY==-1 ? (toppos + 10) +'px' :	fixedY +'px';


	var OP = (navigator.userAgent.indexOf('Opera') != -1);
	var OP = (navigator.userAgent.indexOf('Opera') != -1);
	var IE = (navigator.userAgent.indexOf('MSIE') != -1 && !OP);
	var GK = (navigator.userAgent.indexOf('Gecko') != -1);
	var SA = (navigator.userAgent.indexOf('Safari') != -1);
	var DOM = document.getElementById;
	var tmpcursorDistance = 5;

	var tmpHeight = 0;
	var tmpwidth = document.getElementById("calendar").clientWidth;

	var winX = getWinX() - (((GK && !SA) || OP) ? 17 : 0);
	var winY = getWinY() - (((GK && !SA) || OP) ? 17 : 0);
	var x = mouseX - 210;
	var y = mouseY + 10;

	if(x + tmpwidth + tmpcursorDistance > winX + getScrX())
	x -= tmpwidth + tmpcursorDistance;
	else x += tmpcursorDistance;

	var tmpobj;
	
	if(DOM) tmpobj = document.getElementById('calendar');
	else if(IE) tmpobj = document.all.calendar;

	if(DOM) tmpHeight = tmpobj.offsetHeight;
	else if(IE) tmpHeight = tmpobj.style.pixelHeight;

	if(y + tmpHeight + tmpcursorDistance > winY + getScrY())
	y -= tmpHeight;
	else y += tmpcursorDistance;

	if(x<0) x = 1;

	if(LongIsinLayer || ShortIsinLayer) {
	//var jueo=1;if(jueo==0) {
		aTag = document.getElementById(LayerParentCalendar);
		if(aTag!=null) {
			var ctl1IsInThisLayer = aTag.getElementsByTagName('input')[ctl1.name];
			//alert(aTag.style.top);alert(aTag.offsetTop);
			//alert(LayerParentCalendar);alert(ctl1IsInThisLayer);alert(ie);
			//if((ctl1IsInThisLayer==null) || (ie)) 
			if(String(aTag.style.top)!="")
			{
				y -= aTag.offsetTop;
			}
		}
	}

	crossobj.left = x + 'px';
	crossobj.top = y + 'px';

					constructCalendar (1, monthSelected, yearSelected);
					crossobj.visibility=(dom||ie)? "visible" : "show"

					hideElement( 'SELECT', document.getElementById("calendar") );
					hideElement( 'APPLET', document.getElementById("calendar") );

					bShow = true;
				}
				else
				{
					hideCalendar();
					if (ctlNow!=ctl1) {opencalendar(format,ctl1,ctl2, eventonclose, FixShowX, FixShowY)}
				}
				ctlNow = ctl1;
			}
		}

		var _is_ie=document.all;
		var _have_dom=document.getElementById;
		function getEl(tmpname) {
			var a = (_have_dom)?document.getElementById(tmpname) : _is_ie? eval("document.all."+tmpname)	: eval("document."+tmpname)
			return a;
		}

		function checkattach(wevent,names,wfunc) {
			var oldonload;
			oldonload = eval(wevent);
			if(typeof(oldonload)=='function') {
				eval(wevent+'=function '+names+'() {oldonload();'+wfunc+'();}');
			} else {
				eval(wevent+'=function '+names+'() {'+wfunc+'();}');
			}
		}

		function hidecal1 () {
			if (event.keyCode==27)
			{
				hideCalendar()
			}
		}

		checkattach("document.onkeypress","addhideandonkeypress","hidecal1");

		function hidecal2 () {
			if (!bShow)
			{
				hideCalendar()
			}
			bShow = false
		}

		checkattach("document.onclick","addhideandonclick","hidecal2");

		//checkattach("window.onload","onloadinitca","initca");
		initca();


function getScrX() {
  var offset = 0;
  if(window.pageXOffset)
    offset = window.pageXOffset;
  else if(document.documentElement && document.documentElement.scrollLeft)
    offset = document.documentElement.scrollLeft;
  else if(document.body && document.body.scrollLeft)
    offset = document.body.scrollLeft;
  return offset;
}

function getScrY() {
  var offset = 0;
  if(window.pageYOffset)
    offset = window.pageYOffset;
  else if(document.documentElement && document.documentElement.scrollTop)
    offset = document.documentElement.scrollTop;
  else if(document.body && document.body.scrollTop)
    offset = document.body.scrollTop;
  return offset;
}

function getWinX() {
  var size = 0;
  if(window.innerWidth)
    size = window.innerWidth;
  else if(document.documentElement && document.documentElement.clientWidth)
    size = document.documentElement.clientWidth;
  else if(document.body && document.body.clientWidth)
    size = document.body.clientWidth;
  else size = screen.width;
  return size;
}

function getWinY() {
  var size = 0;
  if(window.innerHeight)
    size = window.innerHeight;
  else if(document.documentElement && document.documentElement.clientHeight)
    size = document.documentElement.clientHeight;
  else if(document.body && document.body.clientHeight)
    size = document.body.clientHeight;
  else size = screen.height;
  return size;
}

function getMouseXY(e) {
  if(e && e.pageX != null) {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  else if(event && event.clientX != null) {
    mouseX = event.clientX + getScrX();
    mouseY = event.clientY + getScrY();
  }
  if(mouseX < 0) mouseX = 0;
  if(mouseY < 0) mouseY = 0;
  //if(tooltip && tooltip.active) tooltip.move();
}

document.onmousemove = getMouseXY;
	}



// end small booking box



