///////////////////////////////////////////////////////////////////////////////
/////////// AJAX FUNCTIONS FOR ONLUINE BOOKING SEARCH /////////////////////////
///////////////////////////////////////////////////////////////////////////////



	function loadDefault(size,clearSess){
		//initiate the proxy with a local var 
		var r = new respond()
		//define the response function 
		r.setCallbackHandler(displayDefaults)
		//define the error handler 
		r.setErrorHandler(errorHandler)
		//call the echo function from the CFC 
		r.loadInitial(size,clearSess)
	}
	
	function loadDefaultMicro(size,clearSess,beID){
		//initiate the proxy with a local var 
		var r = new respond()
		//define the response function 
		r.setCallbackHandler(displayDefaults)
		//define the error handler 
		r.setErrorHandler(errorHandler)
		//call the echo function from the CFC 
		r.loadInitial(size,clearSess,beID)
	}
	
	function displayDefaults(resp){
		document.getElementById("locationSelect").innerHTML = resp.LOCATIONS;
		document.getElementById("accomName").innerHTML = resp.LISTINGS;
		document.getElementById("propTypeSelect").innerHTML = resp.ACCOMTYPE;
	
	}
	
	function showAdvanced(){
		if(document.getElementById('advancedOptions').style.display == "none"){
			document.getElementById('advancedOptions').style.display = "block";
			document.getElementById('advPlus').src = "/images/layout/accommbooking/minus.jpg";
		}else{
			document.getElementById('advancedOptions').style.display = "none";
			document.getElementById('advPlus').src = "/images/layout/accommbooking/advArrow.jpg";
		}
	}
	
	

	function showOperators(locationID,size){
		var propTypeID = "";
		propTypeID = document.getElementById('searchBookType').value;
		//if(locationID != ""){
			//initiate the proxy with a local var 
			var r = new respond()
			//define the response function 
			r.setCallbackHandler(displayResponse)
			//define the error handler 
			r.setErrorHandler(errorHandler)
			//call the echo function from the CFC 
			r.getOperatorsByLocationID(locationID,size,propTypeID)
		//}else{
			//return false;
		//}
	}
	
	function displayResponse(resp) {
		
		document.getElementById("accomName").innerHTML = resp.ACCOMNAME;
		document.getElementById("propTypeSelect").innerHTML = resp.PROPTYPE;
	}
	
	
	function propTypeSelected(propType,size){
		var location = "";
		location = document.getElementById('searchBookLocation').value;
		//alert(location);
		//if(locationID != ""){
			//initiate the proxy with a local var 
			var r = new respond()
			//define the response function 
			r.setCallbackHandler(displayPropType)
			//define the error handler 
			r.setErrorHandler(errorHandler)
			//call the echo function from the CFC 
			r.getLocationsByPropType(propType,size,location)
		//}else{
			//return false;
		//}
	}
	
	function displayPropType(resp) {
		
		document.getElementById("accomName").innerHTML = resp.ACCOMNAME;
		document.getElementById("locationSelect").innerHTML = resp.LOCATION;
	}
	
	// Error handler for the asynchronous functions 
	function errorHandler(statusCode,statusMsg) {
		alert(statusCode+': '+statusMsg)
	}
	
	function accomNameSelected(accomID){

		if(accomID != ""){
			document.getElementById('searchBookLocation').disabled = true;
			document.getElementById('searchBookType').disabled = true;
			//document.getElementById('searchMaxPrice').disabled = true;
		}else{
			document.getElementById('searchBookLocation').disabled = false;
			document.getElementById('searchBookType').disabled = false;
			//document.getElementById('searchMaxPrice').disabled = false;
		}
	}
	
function accomNameSelectedSA(accomID){

		if(accomID != ""){
			document.getElementById('searchAllLocation').disabled = true;
			document.getElementById('searchAllType').disabled = true;
		}else{
			document.getElementById('searchAllLocation').disabled = false;
			document.getElementById('searchAllType').disabled = false;
		}
	}
	
function accomLocType(val){
	if(val != ""){
			document.getElementById('searchAllName').disabled = true;
		}else{
			document.getElementById('searchAllName').disabled = false;

		}
	}
	
	function arriveDate(){
		//var startDateCal = new CalendarPopup();
		//startDateCal.setReturnFunction('setArrivalValues');
	
		//startDateCal.showCalendar('arrivalDate');
		glbDatePicked = "arrival";
		displayDatePicker('arrivalDate');
		
	}
	
	function arriveDateSearch(id){
		//var startDateCal = new CalendarPopup();
		//startDateCal.setReturnFunction('setArrivalValues');
	
		//startDateCal.showCalendar('arrivalDate');
		glbDatePicked = "arrival";
		displayDatePicker('arrivalDate'+id);
		
	}
	
	function setArrivalValues(y,m,d){
		document.getElementById('arrivalDate').value =LZ(d)+"/"+LZ(m)+"/"+ y;
	}
	
	function departDate(){
		//var startDateCal = new CalendarPopup();
		//startDateCal.setReturnFunction('setDepartValues');
	
		//startDateCal.showCalendar('depDate');
		glbDatePicked = "departure";
		displayDatePicker('departureDate');
	}
	
	function departDateSearch(id){
		//var startDateCal = new CalendarPopup();
		//startDateCal.setReturnFunction('setDepartValues');
	
		//startDateCal.showCalendar('depDate');
		glbDatePicked = "departure";
		displayDatePicker('departureDate'+id);
	}
	
	function setDepartValues(y,m,d){
		document.getElementById('departureDate').value =LZ(d)+"/"+LZ(m)+"/"+ y;
	}
	
	function checkSub(){
	
		var subForm = true;
		var alertMessage = "";
		var myDate = new Date();
		if(document.getElementById('arrivalDate').value == "check in"){
			var arDay = myDate.getDate();
			var arMonth = myDate.getMonth();
			
			if(arDay.toString().length == 1){
				arDay = '0'+arDay;
			}
			
			if(arMonth.toString().length == 1){
				arMonth = '0'+arMonth;
			}
			
			document.getElementById('arrivalDate').value = arDay+"/"+arMonth+"/"+myDate.getFullYear();
		}
		
		if(document.getElementById('departureDate').value == "check out"){
			var depDay = myDate.getDate() + 1;
			var depMonth = myDate.getMonth();
	
			if(depDay.toString().length == 1){
				depDay = '0'+depDay;
			}
			if(depMonth.toString().length == 1){
				depMonth = '0'+depMonth;
			}
			
			document.getElementById('departureDate').value =  depDay+"/"+depMonth+"/"+myDate.getFullYear();
		}
		
		var arrivalDate =  myIsDate(document.getElementById('arrivalDate').value);
		var DepartDate =  myIsDate(document.getElementById('departureDate').value)

		if(!arrivalDate ) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check in date \n" ;
		}
		if(!DepartDate) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check out date \n";
		}
		
		if((parseInt(document.getElementById('searchBookAdults').value) + parseInt(document.getElementById('searchBookChildren').value)) > 10){
			subForm = false;
			alertMessage = alertMessage + "You have exceeded the maximum number of adults/children. \n No more than 10 adults/children may be entered. \n";
		}
		
		
		dt1 = new Date();
		dt2 = new Date();
		
		dt1 = getDateObject(document.getElementById('arrivalDate').value,"/");
		dt2 = getDateObject(document.getElementById('departureDate').value,"/");
		dtNow = new Date();
		//dtNow = Date();
		

		
		if(dt1>dt2){
			subForm = false;
			alertMessage = alertMessage + "check in cannot be after departure date \n";
		}
		
		/*alert(dtNow);
		alert('Date Comp '+dt1.getDate()+' '+dtNow.getDate()+ '\n Month Comp '+dt1.getMonth()+' '+dtNow.getMonth()+'\n Year Comp '+dt1.getFullYear()+' '+ dtNow.getFullYear());
		*/
		
		if((dt1.getDate() < dtNow.getDate()) && (  (dt1.getMonth() == (dtNow.getMonth())) ||  (dt1.getMonth() < (dtNow.getMonth()))   ) && (dt1.getFullYear() == dtNow.getFullYear())){
			subForm = false;
			alertMessage = alertMessage + "The check in must be at least todays date or after. \n";
		}
		
		

		if(alertMessage != ""){
			alert(alertMessage);
		}else{
			//document.getElementById('process').innerHTML = '<img alt="Noosa Accommodation - Online Booking" src="/images/layout/ajax-loader.gif" height="30" border="0">';
		}

		if(subForm){
			document.searchBooking.submit();
		}
		return subForm;
	}
	
	
	function checkSearchSub(id){
	
		var subForm = true;
		var alertMessage = "";
		
		var arrivalDate =  myIsDate(document.getElementById('arrivalDate'+id).value);
		var DepartDate =  myIsDate(document.getElementById('departureDate'+id).value)

		if(!arrivalDate ) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check in date \n" ;
		}
		if(!DepartDate) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check out date \n";
		}
		
		if((parseInt(document.getElementById('searchBookAdults'+id).value) + parseInt(document.getElementById('searchBookChildren'+id).value)) > 10){
			subForm = false;
			alertMessage = alertMessage + "You have exceeded the maximum number of adults/children. \n No more than 10 adults/children may be entered. \n";
		}
		
		
		dt1 = new Date();
		dt2 = new Date();
		
		dt1 = getDateObject(document.getElementById('arrivalDate'+id).value,"/");
		dt2 = getDateObject(document.getElementById('departureDate'+id).value,"/");
		dtNow = new Date();
		//dtNow = Date();
		

		
		if(dt1>dt2){
			subForm = false;
			alertMessage = alertMessage + "check in cannot be after departure date \n";
		}
		
		/*alert(dtNow);
		alert('Date Comp '+dt1.getDate()+' '+dtNow.getDate()+ '\n Month Comp '+dt1.getMonth()+' '+dtNow.getMonth()+'\n Year Comp '+dt1.getFullYear()+' '+ dtNow.getFullYear());
		*/
		
		if((dt1.getDate() < dtNow.getDate()) && ((dt1.getMonth() == (dtNow.getMonth())) ||  (dt1.getMonth() < (dtNow.getMonth()))   ) && (dt1.getFullYear() == dtNow.getFullYear())){
			subForm = false;
			alertMessage = alertMessage + "The check in must be at least todays date or after. \n";
		}
		
		

		if(alertMessage != ""){
			alert(alertMessage);
		}else{
			//document.getElementById('process').innerHTML = '<img alt="Noosa Accommodation - Online Booking" src="/images/layout/ajax-loader.gif" height="30" border="0">';
		}

		if(subForm){
		
			// WE SET THE VALUES OF THE FIRST FORM ON THE PAGE AND SUBMIT IT
			document.searchBooking.arrivalDate.value = document.getElementById('arrivalDate'+id).value;
			document.searchBooking.departureDate.value = document.getElementById('departureDate'+id).value;
			document.searchBooking.searchBookAdults.value = document.getElementById('searchBookAdults'+id).value;
			document.searchBooking.searchBookChildren.value = document.getElementById('searchBookChildren'+id).value;
			document.searchBooking.searchBookInfants.value = document.getElementById('searchBookInfants'+id).value;
			document.forms["searchBooking"].searchBookName.value = document.forms["searchBooking"+id].searchBookName.value;

			document.searchBooking.submit();
		}
		return subForm;

	
	}
	
	function getDateObject(dateString,dateSeperator)
	{
		//This function return a date object after accepting 
		//a date string ans dateseparator as arguments
		var curValue=dateString;
		var sepChar=dateSeperator;
		var curPos=0;
		var cDate,cMonth,cYear;
	
		//extract day portion
		curPos=dateString.indexOf(sepChar);
		cDate=dateString.substring(0,curPos);
		
		//extract month portion				
		endPos=dateString.indexOf(sepChar,curPos+1);			
		cMonth=dateString.substring(curPos+1,endPos);
	
		//extract year portion				
		curPos=endPos;
		endPos=curPos+5;			
		cYear=curValue.substring(curPos+1,endPos);
		
		//Create Date Object
		dtObject=new Date(cYear,(cMonth - 1),cDate);	
		return dtObject;
	}
	
function myIsDate(mystring){

	var mystring, myresult ;
	var mystring = new Date(mystring);

	if(mystring == "Invalid Date"){
		myresult=true;
	}else{
		isNaN(mystring) ? myresult=false : myresult=true ;
	}
	return myresult ;

}

function resetSearchForm(size){
	loadDefault(size,1);

	document.getElementById('searchBookLocation').value = "";
	document.getElementById('searchBookName').value = "";
	document.getElementById('searchBookType').value = "";
	//document.getElementById('searchMaxPrice').value = "";
	
	if(document.getElementById('searchBookLocation').disabled){
		document.getElementById('searchBookLocation').disabled = false;
	}

	
	if(document.getElementById('searchBookType').disabled){
		document.getElementById('searchBookType').disabled = false;
	}
	
	document.getElementById('searchBookAdults').value = 1;
	document.getElementById('searchBookChildren').value = 0;
	document.getElementById('searchBookInfants').value = 0;
	
	document.getElementById('arrivalDate').value = "check in";
	document.getElementById('departureDate').value = "check out";

	
}

function resetDetailSearchForm(id){

	document.getElementById('searchBookAdults'+id).value = 1;
	document.getElementById('searchBookChildren'+id).value = 0;
	document.getElementById('searchBookInfants'+id).value = 0;
	
	document.getElementById('arrivalDate'+id).value = "check in";
	document.getElementById('departureDate'+id).value = "check out";


}

function resetSearchAllForm(){

	document.getElementById('searchAllName').value = "";
	document.getElementById('searchAllLocation').value = "";
	document.getElementById('searchAllType').value = "";

	
	if(document.getElementById('searchAllLocation').disabled){
		document.getElementById('searchAllLocation').disabled = false;
	}
	
	if(document.getElementById('searchAllName').disabled){
		document.getElementById('searchAllName').disabled = false;
	}
	

	if(document.getElementById('searchAllType').disabled){
		document.getElementById('searchAllType').disabled = false;
	}

	
}

function checkSubAvail(){
	
		var subForm = true;
		var alertMessage = "";
		
		var arrivalDate =  myIsDate(document.getElementById('arrivalDate').value);
		var DepartDate =  myIsDate(document.getElementById('departureDate').value)

		if(!arrivalDate ) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check in date \n" ;
		}
		if(!DepartDate) {
			subForm = false;
			alertMessage = alertMessage + "you must enter a valid check out date \n";
		}
		
		if((parseInt(document.getElementById('searchBookAdults').value) + parseInt(document.getElementById('searchBookChildren').value)) > 10){
			subForm = false;
			alertMessage = alertMessage + "You have exceeded the maximum number of adults/children. \n No more than 10 adults/children may be entered. \n";
		}
		
		
		dt1 = new Date();
		dt2 = new Date();
		
		dt1 = getDateObject(document.getElementById('arrivalDate').value,"/");
		dt2 = getDateObject(document.getElementById('departureDate').value,"/");
		dtNow = new Date();
		//dtNow = Date();
		

		
		if(dt1>dt2){
			subForm = false;
			alertMessage = alertMessage + "check in cannot be after departure date \n";
		}
		
		/*alert(dtNow);
		alert('Date Comp '+dt1.getDate()+' '+dtNow.getDate()+ '\n Month Comp '+dt1.getMonth()+' '+dtNow.getMonth()+'\n Year Comp '+dt1.getFullYear()+' '+ dtNow.getFullYear());
		*/
		
		if((dt1.getDate() < dtNow.getDate()) && (  (dt1.getMonth() == (dtNow.getMonth()+1)) ||  (dt1.getMonth() < (dtNow.getMonth()+1))   ) && (dt1.getFullYear() == dtNow.getFullYear())){
			subForm = false;
			alertMessage = alertMessage + "The check in must be at least todays date or after. \n";
		}
		
		

		if(alertMessage != ""){
			alert(alertMessage);
		}else{
			//document.getElementById('process').innerHTML = '<img alt="Noosa Accommodation - Online Booking" src="/images/layout/ajax-loader.gif" height="30" border="0">';
		}

		if(subForm){
			document.searchBookingAvail.submit();
		}
		return subForm;
	}
