var timer = null;
var curStyle = "day";
var gx = 0;
var gy = 0;
var input_date;
var this_page;

function fun1(evnt) {   
 gx = evnt.pageX;
 gy = evnt.pageY;
 return true;   
  }
if(navigator.appName.indexOf("Netscape") != -1) {
document.onmousemove = fun1;
}

var d = new Date();
var dc;
var monthname=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var data = new Array(6);
data[0] = new Array(0,0,0,0,0,0,0);
data[1] = new Array(0,0,0,0,0,0,0);
data[2] = new Array(0,0,0,0,0,0,0);
data[3] = new Array(0,0,0,0,0,0,0);
data[4] = new Array(0,0,0,0,0,0,0);
data[5] = new Array(0,0,0,0,0,0,0);

var dataStyle = new Array(6);	//Property is set to default as available.
dataStyle[0] = new Array("A","A","A","A","A","A","A");
dataStyle[1] = new Array("A","A","A","A","A","A","A");
dataStyle[2] = new Array("A","A","A","A","A","A","A");
dataStyle[3] = new Array("A","A","A","A","A","A","A");
dataStyle[4] = new Array("A","A","A","A","A","A","A");
dataStyle[5] = new Array("A","A","A","A","A","A","A");

isDOM = (document.getElementById) ? true : false;
isNS4 = (document.layers) ? true : false;
isIE = (document.all) ? true : false;
isIE4 = isIE && !isDOM;
isMac = (navigator.appVersion.indexOf("Mac") != -1);
isIE4M = isIE4 && isMac;


isOpera = (navigator.userAgent.indexOf("Opera")!=-1);
isKonqueror = (navigator.userAgent.indexOf("Konqueror")!=-1);
isMenu = !isOpera && !isKonqueror && !isIE4M && (isDOM || isNS4 || isIE4);
isNS6 = (navigator.vendor == ("Netscape6") || navigator.product == ("Gecko"));
isBrowserString = isNS4 ? "ns4" : isDOM ? "dom" : "ie4";

function msOver(td) {
   curStyle = td.className;
   td.className = "day_c";
}

function msOut(td) {   td.className = curStyle; }


function getRealLeft(el) {
    xPos = el.offsetLeft;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function getRealTop(el) {
    yPos = el.offsetTop;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return yPos;
}


function PlaceAtElement(elementid,pos){
	var TheAnchor = isDOM ? document.getElementById(elementid) : isIE4 ? document.all(elementid) : document.anchors[elementid];
	if(isNS6){
		TheAnchor.style.position = "relative";
		MarginWidth = parseInt(document.body.getAttribute("marginwidth"));
		MarginWidth = (isNaN(MarginWidth)) ? 8 : MarginWidth;
	}

	switch (pos){
		case "left":
			retVal = isIE ? getRealLeft(TheAnchor) : isNS4 ? TheAnchor.x : TheAnchor.offsetLeft + MarginWidth - 8 ;
			break;
		case "top":
			retVal = isIE ? getRealTop(TheAnchor)+18 : isNS4 ? TheAnchor.y+10 : TheAnchor.offsetTop + TheAnchor.offsetHeight;
			break;
		case "bottom":
			retVal = isIE ? getRealTop(TheAnchor)-150 : isNS4 ? TheAnchor.y-142 : TheAnchor.offsetTop + TheAnchor.offsetHeight;
		break;
	}
	return retVal;
}

function chgDD(k,hID) {
if(hID==null || hID==undefined) hID="";
	var dd = new Date(d.getFullYear(), d.getMonth() + k, d.getDate() );
	currentMonth = new Date()
	currentMonth.setHours(0,0,0,0);
	currentMonth.setDate(1);
	if( dd<currentMonth) return;
	
	d.setMonth(d.getMonth() + k);
	document.getElementById('month_year').innerHTML = monthname[d.getMonth()] + ' ' + d.getFullYear();
	
	//Next line is only for the calendar on the PropertyDetails page because it has 2 calendars
	if(document.getElementById('avkCalendarPropertyDetails')!=null) document.getElementById('month_yearPropertyDetails').innerHTML = monthname[d.getMonth()] + ' ' + d.getFullYear();

	for (i=0;i<6;i++)
		for (j=0;j<7;j++) data[i][j] = 0;
			dd.setDate(1);
			
	i = 0;
	do {
		data[i][dd.getDay()] = dd.getDate();
		dataStyle[i][dd.getDay()] = propertyAvailable(hID.substring(1),dd); //substring is done because hID value has two p [e.g. pp12]

		if (dd.getDay() == 6) i++;
		dd.setDate(dd.getDate() + 1);
	}  while (dd.getDate() != 1);

	for (i=0;i<6;i++)
		for (j=0;j<7;j++) {
			colName = hID+"c" +i+""+j;			
			if (data[i][j] == 0) {
				document.getElementById(colName).innerHTML= "&nbsp;";				
				document.getElementById(colName).className = "day_out";
			}
			else{
				document.getElementById(colName).innerHTML= data[i][j];
				document.getElementById(colName).className = "freeday";
				if( dataStyle[i][j] == "C" )
					document.getElementById(colName).className = "checkin";
				if( dataStyle[i][j] == "N" )
					document.getElementById(colName).className = "booked";
				
				if (dc != undefined)
					if (dc.getDate() ==  data[i][j])
						document.getElementById(colName).className = "day_c";

			}
		}
 }

function chg1(k,hID) {
	var d1 = document.getElementById("hid"+hID).value;	
	d1 = new Date()
	d1.setDate(1);
	d1.setHours(0,0,0,0);
	currentMonth = new Date()
	currentMonth.setHours(0,0,0,0);
	currentMonth.setDate(1);
	if(document.getElementById("hid"+hID).value != "") d1 = new Date(document.getElementById("hid"+hID).value);

	d1.setMonth(d1.getMonth() + k);
	if (d1<currentMonth) return; //Cannot go past current month.

	document.getElementById("hid"+hID).value = monthname[d1.getMonth()] + d1.getDate() + ', ' + d1.getFullYear();

	document.getElementById(hID+'month_year').innerHTML = monthname[d1.getMonth()] + ' ' + d1.getFullYear();
	
	var dd = new Date(d1);
	
	for (i=0;i<6;i++)
 		for (j=0;j<7;j++) data[i][j] = 0;
	 	
	dd.setDate(1);
	
	i = 0;
	do {
		data[i][dd.getDay()] = dd.getDate();
		dataStyle[i][dd.getDay()] = propertyAvailable(hID,dd); //substring is done because hID value has two p [e.g. pp12]

		if (dd.getDay() == 6) i++;
		dd.setDate(dd.getDate() + 1);
	}  while (dd.getDate() != 1);
	
	for (i=0;i<6;i++)
		for (j=0;j<7;j++) {
			colName = hID+"c" +i+""+j;
			if (data[i][j] == 0) {
				document.getElementById(colName).innerHTML= "&nbsp;";
				document.getElementById(colName).className = "cdnoday";
			}
			else {
				document.getElementById(colName).innerHTML= data[i][j];
				document.getElementById(colName).className = "cdfreeday";
				if( dataStyle[i][j] == "C" )
					document.getElementById(colName).className = "cdcheckin";
				if( dataStyle[i][j] == "N" )
					document.getElementById(colName).className = "cdbooked";

				if (dc != undefined)
					if (dc.getDate() ==  data[i][j])
						document.getElementById(colName).className = "cdnoday";
			}
		}
}

function setDate(i,j) {
	if (data[i][j]!=0) {
		m = d.getMonth()+1;
		input_date.value=  m + "/" + data[i][j] +  "/" + d.getFullYear();
	}
	strInputDateID = input_date.id;
	if (strInputDateID.indexOf("in") > 0) {
		strHidCheckIn =		document.getElementById('hidCheckIn');
		strHidCheckIn.value =   m + "/" + data[i][j] +  "/" + d.getFullYear();
	}
	else{
		strHidCheckOut = document.getElementById('hidCheckOut');
		strHidCheckOut.value =   m + "/" + data[i][j] +  "/" + d.getFullYear();
	}
	hd();
}

function getDate(cel,remove,page,hID) {
	input_date = cel;
	this_page = page;
	if (cel.value.length !=0) {
		d = new Date(cel.value); 
		if (d == 'NaN') d = new Date();
		dc = new Date(d); 
	}
	chgDD(0,hID);
	
	var CalendarName = 'avkCalendar';
	if (this_page == 'PropertyDetails') CalendarName = 'avkCalendarPropertyDetails';

	document.getElementById(CalendarName).style.left=PlaceAtElement(cel.name,'left');

	if (this_page == 'PropertyDetails') {
		document.getElementById(CalendarName).style.top=PlaceAtElement(cel.name,'bottom');
	}
	else {
		document.getElementById(CalendarName).style.top=PlaceAtElement(cel.name,'top');
	}

	document.getElementById(CalendarName).style.visibility = "visible";

	if (this_page == 'PropertyDetails') { 
		//Close the other calendar.............
		document.getElementById('avkCalendar').style.visibility='hidden';
		document.getElementById('RentPageSearch1_ddlbDailyPriceMin').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbBedroomMin').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbDailyPriceMax').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbBedroomMax').style.visibility='visible';
	}
	if (this_page == 'rent') {
		//Close the other calendar.............
		if(document.getElementById('avkCalendarPropertyDetails')!=null) document.getElementById('avkCalendarPropertyDetails').style.visibility='hidden';
		
		if (remove == 'left') {
			document.getElementById('RentPageSearch1_ddlbDailyPriceMin').style.visibility='hidden';
			document.getElementById('RentPageSearch1_ddlbBedroomMin').style.visibility='hidden';
			document.getElementById('RentPageSearch1_ddlbDailyPriceMax').style.visibility='hidden';
			document.getElementById('RentPageSearch1_ddlbBedroomMax').style.visibility='hidden';
		}
		if (remove == 'right') {
			document.getElementById('RentPageSearch1_ddlbDailyPriceMax').style.visibility='hidden';
			document.getElementById('RentPageSearch1_ddlbBedroomMax').style.visibility='hidden';
			document.getElementById('RentPageSearch1_ddlbDailyPriceMin').style.visibility='visible';
			document.getElementById('RentPageSearch1_ddlbBedroomMin').style.visibility='visible';
		}
	}
	
	if (this_page == 'home') {
		if (remove == 'left') {
			document.getElementById('priceMin').style.visibility='hidden';
			document.getElementById('priceMax').style.visibility='hidden';
			document.getElementById('ddlbTopBedroomMin').style.visibility='hidden';
			document.getElementById('ddlbTopBedroomMax').style.visibility='visible';
			document.getElementById('ddlbCountryCB').style.visibility='hidden';
			document.getElementById('ddlbCountryHI').style.visibility='hidden';
			document.getElementById('ddlbCountryLA').style.visibility='hidden';
			document.getElementById('ddlbTopChildren').style.visibility='hidden';
			document.getElementById('ddlbTopAdults').style.visibility='hidden';
		}
		if (remove == 'right') {
			document.getElementById('priceMin').style.visibility='visible';
			document.getElementById('priceMax').style.visibility='visible';
			document.getElementById('ddlbTopBedroomMax').style.visibility='hidden';
			document.getElementById('ddlbTopBedroomMin').style.visibility='hidden';
			document.getElementById('ddlbCountryCB').style.visibility='hidden';
			document.getElementById('ddlbCountryHI').style.visibility='hidden';
			document.getElementById('ddlbCountryLA').style.visibility='hidden';
			document.getElementById('ddlbTopChildren').style.visibility='visible';
			document.getElementById('ddlbTopAdults').style.visibility='visible';
		}
	}
}

function hd() {
if (isIE) document.getElementById('avkCalendar').filters[0].apply();
document.getElementById('avkCalendar').style.visibility='hidden';
if(document.getElementById('avkCalendarPropertyDetails')!=null) document.getElementById('avkCalendarPropertyDetails').style.visibility='hidden';

	if (this_page == 'rent') {
		document.getElementById('RentPageSearch1_ddlbDailyPriceMin').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbBedroomMin').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbDailyPriceMax').style.visibility='visible';
		document.getElementById('RentPageSearch1_ddlbBedroomMax').style.visibility='visible';
	}
	if (this_page == 'home') {
		document.getElementById('priceMin').style.visibility='visible';
		document.getElementById('priceMax').style.visibility='visible';
		document.getElementById('ddlbTopBedroomMin').style.visibility='visible';
		document.getElementById('ddlbTopBedroomMax').style.visibility='visible';
		document.getElementById('ddlbCountryCB').style.visibility='visible';
		document.getElementById('ddlbCountryHI').style.visibility='visible';
		document.getElementById('ddlbCountryLA').style.visibility='visible';
			
		document.getElementById('ddlbTopChildren').style.visibility='visible';
		document.getElementById('ddlbTopAdults').style.visibility='visible';
	}
if (isIE) document.getElementById('avkCalendar').filters[0].play();
}


function setHandler() {return "Finish decoding.";}
