var bool,
f = {
	$:function (id){
		return document.getElementById(id);
	},
	
	clearChildren:function (n){
		while (n.firstChild){
			n.removeChild(n.firstChild)
		}
		return n;
	}
};



//Setup Dates
var setInD = function(inId,niId,outId){
	var inDate = new Date();
	inDate.setDate(inDate.getDate() + 1);
	var str = makeDate(inDate);
	if(inId){var inDay = f.$(inId);}
	else{var inDay = f.$("book_in_dd");}
	inDay.value=str;
	setOutD(inDate,inId,niId,outId);
}


var chkNights = function(inId){
	if(inId){var nights = f.$(inId).value;}
	else{var nights = f.$("nights").value;}
	nights = parseInt(nights);
	return nights;
}

var setOutD = function(outDate,inId,niId,outId){
	var n = chkNights(niId);
	if(outDate){
		outDate.setDate(outDate.getDate()+n);
	}
	else{
		if(inId){var inDay = f.$(inId).value;}
		else{var inDay = f.$("book_in_dd").value;}
		var inDaySplit = inDay.split("/");
		outDate = new Date(inDaySplit[2],inDaySplit[1]-1,inDaySplit[0]);
		outDate.setDate(outDate.getDate()+n);
	}
	
	var str = makeDate(outDate);
	if(outId){var outDay = f.$(outId);}
	else{var outDay = f.$("book_out_dd");}
	outDay.value=str;
}

var setNights = function(inId,niId,outId){
	
	//Find value in check in box, split it, turn into numbers and create a new date object
	if(inId){var inDay = f.$(inId).value;}
	else{var inDay = f.$("book_in_dd").value;}
	var inDaySplit = inDay.split("/");
	inDaySplit[0] = Number(inDaySplit[0]);
	inDaySplit[1] = Number(inDaySplit[1]);
	inDaySplit[2] = Number(inDaySplit[2]);
	inDaySplit[1] =inDaySplit[1]-1;
	var inDate = new Date(inDaySplit[2],inDaySplit[1],inDaySplit[0]);

	//Find value in check out box, split it, turn into numbers and create a new date object
	if(outId){var outDay = f.$(outId);}
	else{var outDay = f.$("book_out_dd");}
	
	var outDaySplit = outDay.value.split("/");

	outDaySplit[0] = Number(outDaySplit[0]);
	outDaySplit[1] = Number(outDaySplit[1]);
	outDaySplit[2] = Number(outDaySplit[2]);
	
	outDaySplit[1] = outDaySplit[1]-1;
	var outDate = new Date(outDaySplit[2],outDaySplit[1],outDaySplit[0]);
	
	//Subtract the check in date from the check out date to find the difference. Then find the amount of days and put into the nights box.
	var n = outDate-inDate;
	var nD = (n/1000/60/60/24);
	
	if(niId){		
		if(nD<1){f.$(niId).value = "--";}
		else{f.$(niId).value = Math.ceil(nD);}}
	else{
		
		if(nD<1){f.$("nights").value = "--";}
		else{f.$("nights").value = Math.ceil(nD);}
		
	}


}


var makeDate = function(da){
	var currDate = da.getDate();
	var currMth = da.getMonth();	
	var currYr = da.getFullYear();
	currMth++;
	if(currDate<10){currDate="0"+currDate}
	if(currMth<10){currMth="0"+currMth}
	var str = currDate+"/"+currMth+"/"+currYr;
	return str;
}



//Select a hotel
var redirect = {
	init:function(){
		if(f.$("hotel_name")){
			var selectHotelForm = f.$("hotel_name").parentNode.parentNode.parentNode;
			selectHotelForm.onsubmit = function(){
				var url = f.$("hotel_name").options[f.$("hotel_name").selectedIndex].value;
				document.location.href = url;
				return false;
			}
		}
		if(f.$("location")){
			var reservationForm = f.$("location").parentNode.parentNode.parentNode;
			reservationForm.onsubmit = function(){
				var url = f.$("location").options[f.$("location").selectedIndex].value;
				document.location.href = url;
				return false;
			}
		}
	}
}



// Form Help

var formhelp = {
	selected: null,

	init:function(formid){
		var form = f.$(formid);
		form.className = form.className + ' formhelp';

		var labels = form.getElementsByTagName('label');
		for (i=0; i<labels.length; i++) {
			if(labels[i].className == 'help') {
				labels[i].className = labels[i].className + ' hidden';

				var helpLink = document.createElement('a');
					helpLink.href = '#' + labels[i].id;
					helpLink.className = 'help-link';
					helpLink.appendChild(document.createTextNode('?'));

					helpLink.onclick = formhelp.toggle;

				labels[i].parentNode.insertBefore(helpLink, labels[i]);
			}
		}
	},

	toggle:function(){
		var helpID = this.href.match('[^#/]*$');

		if(formhelp.selected){
			formhelp.selected.className = formhelp.selected.className + ' hidden';
		}

		formhelp.selected = f.$(helpID);
		formhelp.selected.className = formhelp.selected.className.replace(' hidden', '');

		return false;
	}
}



var chkForm = {
	init:function(){
		
		var joinEmail = document.getElementById("joinform_email-address").value;
		var email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		
		var result = email.test(joinEmail);
		if(result==false){
			
			var fo = document.getElementById("joinform");
			var emailError = document.getElementById("email-error")
			if(emailError){
				fo.removeChild(emailError);
			}
			
			var error = document.createElement("p");
			error.className="error";
			error.id="email-error";
			error.innerHTML = "Please enter a valid email address";
			fo.insertBefore(error,fo.firstChild);
			return false;	
		}
		else{
			var fo = document.getElementById("joinform");
			var emailError = document.getElementById("email-error")
			if(emailError){
				fo.removeChild(emailError);
			}
			return true;
			
		}
		
		
	}	
}



window.onload = init;

function init(){
	if(f.$("nights")){
		f.$("nights").onchange = function(){setOutD();}
	}
	if(f.$("book_in_dd")){
		f.$("book_in_dd").onchange = function(){setOutD();}
	}
	if(f.$("book_out_dd")){
		f.$("book_out_dd").onchange = function(){setNights();}
	}
	
	if(f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingNights")){
		f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingNights").onchange = function(){setOutD("","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckInDate","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingNights","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckOutDate");}
	}
	if(f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckInDate")){
		f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckInDate").onchange = function(){setOutD("","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckInDate","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingNights","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckOutDate");}
	}
	if(f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckOutDate")){
		f.$("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckOutDate").onchange = function(){setNights("ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckInDate","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingNights","ctl00_ctl00_container_main_ctrlAddNewBooking_txtAddNewBookingCheckOutDate");}
	}
	
	
	if(f.$("location") || f.$("hotel_name")){
		redirect.init();
	}
	if(f.$("joinform")){
		formhelp.init("joinform");
	}
	if(f.$("exampleform")){
		formhelp.init("exampleform");
	}
}


// CLEAR FORM FIELD
function clearText(thefield){
if (thefield.defaultValue==thefield.value)
thefield.value = ""
}

var des ="";
