//EXPAND MENU
function expandMenu() {
	document.getElementById("info").style.display="block";
}
//VALIDATE MEMBER REGISTRATION
function validateRegister() {
	var emptyFields="";

	if(document.register.firstName.value=="") {
		emptyFields+="Please enter your first name.\n";
	}
	
	if(document.register.surname.value=="") {
		emptyFields+="Please enter your surname.\n";
	}
	
	if(document.register.address.value=="") {
		emptyFields+="Please enter your address.\n";
	}
	
	if(document.register.county.value=="") {
		emptyFields+="Please enter your county/state.\n";
	}
	
	if(document.register.postcode.value=="") {
		emptyFields+="Please enter your postcode/ZIP code.\n";
	}
	
	if((document.register.phone2.value=="(0)")||(document.register.phone1.value=="")||(document.register.phone2.value=="")||(document.register.phone3.value=="")) {
		emptyFields+="Please enter your complete telephone number.\n";
	}
	
	if(document.register.email.value=="") {
		emptyFields+="Please enter your email address.\n";		
	}
	
	if(document.register.confirm_email.value=="") {
		emptyFields+="Please confirm your email address.\n";
	}
	
	if((document.register.email.value!="")&&(document.register.confirm_email.value!="")&&(document.register.email.value!=document.register.confirm_email.value)) {
		emptyFields+="Your email address' do not match, please check and confirm it again.\n";
	}
	
	if(document.register.password.value=="") {
		emptyFields+="Please enter a password.\n";
	}
	
	if((document.register.password.value!="")&&(document.register.password.value.length<8)) {
		emptyFields+="Please make sure your password is a minimum of 8 characters.\n";
	}
	
	if(document.getElementById('free_on')) {
		if((document.getElementById('regular').checked==false) && (document.getElementById('premium').checked==false)) {
			emptyFields+="Please select which package you wish to register for.\n";
		}
	}
	
	if(!document.getElementById('free_on')) {
		if((document.getElementById('regular1').checked==false) && (document.getElementById('premium1').checked==false) && (document.getElementById('regular2').checked==false) && (document.getElementById('premium2').checked==false)) {
			emptyFields+="Please select which package you wish to register.\n";
		}
	}
	
	if(document.register.terms.checked==false) {
		emptyFields+="You must accept the terms and conditions of WannaVilla before you can proceed.\n";
	}
	
	if(emptyFields) {
		var errors="To successfully complete the registration process you must: \n";
		alert(errors+emptyFields);		
		return false;
	}else{
		return true;
	}
}

//VALIDATE MEMBER LOGIN
function validateLogin() {
	var emptyFields="";
	
	if((document.login.email.value=="")||(document.login.password.value=="")) {
		emptyFields+="Please enter both your email and password to login.\n";
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
}

//VALIDATE CHANGING DETAILS
function validateDetails() {
	var emptyFields="";
	
	if(document.details.firstName.value=="")
		{
			emptyFields+="Please enter your first name.\n";
		}
		
	if(document.details.surname.value=="")
		{
			emptyFields+="Please enter your surname.\n";
		}
		
	if(document.details.address.value=="")
		{
			emptyFields+="Please enter your address.\n";
		}
		
	if(document.details.county.value=="")
		{
			emptyFields+="Please enter your county or state.\n";
		}
		
	if(document.details.postcode.value=="")
		{
			emptyFields+="Please enter your postcode or ZIPcode.\n";
		}
		
	if(document.details.country.value=="")
		{
			emptyFields+="Please enter your country.\n";
		}
		
	if((document.details.phone1.value=="")||(document.details.phone2.value=="")||(document.details.phone3.value==""))
		{
			emptyFields+="Please complete your telephone number.\n";
		}
		
	if(document.details.email.value=="")
		{
			emptyFields+="Please complete your email address.\n";
		}
		
	if((document.details.email.value!="")&&(document.details.email.value!=document.details.confirm_email.value))
		{
			emptyFields+="Your email address' do not match, please check and try again.\n";
		}
		
	if(document.details.password.value=="")
		{
			emptyFields+="Please enter a password.\n";
		}
		
	if(emptyFields)
		{
			alert(emptyFields);
			return false;
		}else{
			return true;
		}
}

//VILLA LOCATIONS
//CHANGES AREA DEPENDANT ON LOCATION
function dynamicSelect(id1, id2) {
	// Feature test to see if there is enough W3C DOM support
	if (document.getElementById && document.getElementsByTagName) {
		// Obtain references to both select boxes
		var sel1 = document.getElementById(id1);
		var sel2 = document.getElementById(id2);
		// Clone the dynamic select box
		var clone = sel2.cloneNode(true);
		// Obtain references to all cloned options 
		var clonedOptions = clone.getElementsByTagName("option");
		// Onload init: call a generic function to display the related options in the dynamic select box
		refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		// Onchange of the main select box: call a generic function to display the related options in the dynamic select box
		sel1.onchange = function() {
			refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		};
	}
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
	// Delete all options of the dynamic select box
	while (sel2.options.length) {
		sel2.remove(0);
	}
	// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
	// Iterate through all cloned options
	for (var i = 0; i < clonedOptions.length; i++) {
		// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
		if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
			// Clone the option from the hidden option pool and append it to the dynamic select box
			sel2.appendChild(clonedOptions[i].cloneNode(true));
		}
	}
}

//CHANGES COMMUNITY DEPENDANT ON AREA
function changeComm(id1, id2) {
	// Feature test to see if there is enough W3C DOM support
	if (document.getElementById && document.getElementsByTagName) {
		// Obtain references to both select boxes
		var area = document.getElementById(id1);
		var community = document.getElementById(id2);
		// Clone the dynamic select box
		var clone = community.cloneNode(true);
		// Obtain references to all cloned options 
		var clonedOptions = clone.getElementsByTagName("option");
		// Onload init: call a generic function to display the related options in the dynamic select box
		refreshDynamicSelectOptions(area, community, clonedOptions);
		// Onchange of the main select box: call a generic function to display the related options in the dynamic select box
		area.onchange = function() {
			refreshCommunitySelectOptions(area, community, clonedOptions);
		}
	}
}
function refreshCommunitySelectOptions(area, community, clonedOptions) {
	// Delete all options of the dynamic select box
	while (community.options.length) {
		community.remove(0);
	}
	// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" + area.options[area.selectedIndex].value + ")( |$)");
	// Iterate through all cloned options
	for (var i = 0; i < clonedOptions.length; i++) {
		// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
		if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
			// Clone the option from the hidden option pool and append it to the dynamic select box
			community.appendChild(clonedOptions[i].cloneNode(true));
		}
	}
}

function setGrid(gridRef, community) {
	villaCommunity=document.getElementById(community).value;
	
	if(villaCommunity!="N/A") {
		document.getElementById('grid_letter').value=gridRef[villaCommunity][0];
		document.getElementById('grid_number').value=gridRef[villaCommunity][1];
	}else{
		document.getElementById('grid_letter').value="N/A";
		document.getElementById('grid_number').value="N/A";
	}
	
}

//VILLA REGISTRATION CHECK BOXES
function checkBox(field_name) {
	var input_name=(field_name);
	var new_name=(field_name+"_2");
	if(document.getElementById(input_name).checked==true) {
		document.getElementById(new_name).checked=true;
	}else{
		document.getElementById(new_name).checked=false;
	}
}

function villaRegistration() {
	var emptyFields="";
	var iconCount=0;
	var icons=Array();
	icons[0]=document.getElementById("baby_facilities");
	icons[1]=document.getElementById("internet_access");
	icons[2]=document.getElementById("games_room");
	icons[3]=document.getElementById("heated_pool");
	icons[4]=document.getElementById("communal_pool");
	icons[5]=document.getElementById("no_smoking");
	icons[6]=document.getElementById("hot_tub");
	icons[7]=document.getElementById("wheelchair_access");
	icons[8]=document.getElementById("own_pool");
	
	for(var i=0; i<icons.length; i++) {
		if(icons[i].checked==true) {
			iconCount++;
		}
	}
	
	if(iconCount>8) {
		emptyFields+="You have selected greater than 8 icons, please check and try again.\n";
	}
	
	/*var descLen=document.getElementById("villa_description").value;
	
	if(descLen.length>190) {
		emptyFields+="Please make sure your property description is a maximum of 190 characters.\n";
	}*/
	
	if(document.getElementById("tc_agree").checked!=true) {
		emptyFields+="You must accept WannaVilla's terms and conditions before submitting your villa.\n";
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
}

//REGISTERING DATES
function changeDay() {
	if(document.getElementById("from_day").value==31) {
		document.getElementById("to_day").value=1;
	}else{
		document.getElementById("to_day").value=document.getElementById("from_day").value;
	}
}

function changeMonth() {
	var fromMonth=document.getElementById("from_month").value;
	var fromDay=document.getElementById("from_day").value;
	
	//FIND IF ITS THE LAST DAY OF THE MONTH
	if(fromDay==31) {
		//IS THE MONTH DECEMBER
		if(document.getElementById("from_month").value==12) {
			document.getElementById("to_month").value=1;
		}else{
			updateMonth=Number(document.getElementById("from_month").value)+1;
			document.getElementById("to_month").value=updateMonth;
		}
	}else{
		updateMonth=Number(document.getElementById("from_month").value)+1;
		document.getElementById("to_month").value=updateMonth;
	}
	
	//IF THE FROM DATE IS THE LAST DAY IN DECEMBER UPDATE THE YEAR
	if((fromMonth==12)&&(document.getElementById("from_day").value==31)) {
		document.getElementById("to_year").value=Number(document.getElementById("to_year").value)+1;
	}
}

function changeYear() {
	var fromMonth=document.getElementById("from_month").value;
	
	if(fromMonth!=12) {
		document.getElementById("to_year").value=document.getElementById("from_year").value;
	}
}

//VALIDATE RATES/LATE/SUPER DEALS
function validateRates(type) {
	var emptyFields="";
	
	var dateRanges=Array();
	dateRanges["1"]=31;
	dateRanges["2"]=29;
	dateRanges["3"]=31;
	dateRanges["4"]=30;
	dateRanges["5"]=31;
	dateRanges["6"]=30;
	dateRanges["7"]=31;
	dateRanges["8"]=31;
	dateRanges["9"]=30;
	dateRanges["10"]=31;
	dateRanges["11"]=30;
	dateRanges["12"]=31;
	
	var toMonth=document.getElementById("to_month").value;
	var fromMonth=document.getElementById("from_month").value;
	
	//CHECK DATE IS IN MONTH
	if(document.getElementById("to_day").value>dateRanges[toMonth]) {
		emptyFields="Please review your dates before proceeding.\n";
	}
	
	if(document.getElementById("from_day").value>dateRanges[fromMonth]) {
		emptyFields="Please review your dates before proceeding.\n";
	}
	
	/*if((document.getElementById("to_day").value>document.getElementById("from_day").value)||((toMonth>fromMonth))||((document.getElementById("to_year").value>document.getElementById("from_year").value))) {
		emptyFields="Please review your dates before proceeding.\n";																		  
	}*/
	
	if(((document.getElementById("pounds").value=="")||(document.getElementById("pounds").value==0))&&((document.getElementById("dollars").value=="")||(document.getElementById("dollars").value==0))) {
		emptyFields+="Please enter the cost per night in either pounds or dollars\n";
	}
	
	//IF A DEAL IS BEING ADDED THE LENGTH CANNOT BE MORE THAT 21 DAYS
	if(type=="deal") {
		var fy=document.getElementById("from_year").value;
		var fm=document.getElementById("from_month").value;
		var fd=document.getElementById("from_day").value;
		var ty=document.getElementById("to_year").value;
		var tm=document.getElementById("to_month").value;
		var td=document.getElementById("to_day").value;
		
		var from=fy+fm+fd;
		var to=ty+tm+td;
		var difference=Date.UTC(ty,tm,td,0,0,0,0)-Date.UTC(fy,fm,fd,0,0,0,0);
		var difference=difference/1000/60/60/24;
		if(difference>21) {
			emptyFields+="The maximum period of time for a Supa or Late Deal is 21 days.\n";
		}
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
}

//VALIDATE CONTACT OWNER FORM
function validateOwner() {
	var emptyFields="";
	

	if((document.getElementById("from_day").value=="") || (document.getElementById("from_month").value==""))
	{
			emptyFields+="Please leave a date of arrival.\n";
	}
	if((document.getElementById("to_day").value=="") || (document.getElementById("to_month").value=="")) {
			emptyFields+="Please leave a date of departure.\n";
	}

if(document.getElementById("party").value=="") {
			emptyFields+="Please leave a total party size.\n";
	}
if(document.getElementById("question").value=="") {
		emptyFields+="Please leave a question for the property owner.\n";
	}
	
	
	if((document.getElementById("email").value=="")) {
		emptyFields+="Please leave your email address.\n";
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
}
function totalDates() {
	
	var to_day=document.getElementById("to_day").value;
	var to_year_month_raw=document.getElementById("to_month").value;
	var to_year_month=to_year_month_raw.split(',');
	var to_year=to_year_month[0];
	var to_month=(to_year_month[1]-1);
	var from_day=document.getElementById("from_day").value;
	var from_year_month_raw=document.getElementById("from_month").value;
	var from_year_month=from_year_month_raw.split(',');
	var from_year=from_year_month[0];
	var from_month=(from_year_month[1]-1);

	// Set the from date at 0:00h - then convert to milliseconds
	var from_date=new Date();
	from_date.setFullYear(from_year,from_month,from_day);
	from_date.setHours(0);
	from_date.setMinutes(0);
	from_date.setSeconds(0);
	from_date.setMilliseconds(0);
	from_date=from_date.getTime();
	
	// Set the to date at 0:00h - then convert to milliseconds
	var to_date=new Date();
	to_date.setFullYear(to_year,to_month,to_day);
	to_date.setHours(0);
	to_date.setMinutes(0);
	to_date.setSeconds(0);
	to_date.setMilliseconds(0);
	to_date=to_date.getTime();
	//alert(from_date+' - '+to_date);
	
	//var date1_ms = new Date(to_month,to_day);
	//var date2_ms = new Date(from_month,from_day);
	
	// The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24;

    // Convert both dates to milliseconds
	
	
    // Calculate the difference in milliseconds
    var difference_ms = Math.ceil(to_date - from_date);
    // Convert back to days and return
	var total = Math.round(difference_ms/ONE_DAY);
	//alert('To month/day: '+to_month+'/'+to_day+' - From month/day: '+from_month+'/'+from_day);

	if(!isNaN(total)) {
	document.getElementById('total').value = total+" nights";
		document.getElementById('total_nights').value = total+" nights";
}
}
//VALIDATE BOOKMARK LOGIN 
function validateBooklog() {
	var fields=document.getElementsByTagName("input");
	var emptyFields="";
	for(var i=0;i<(fields.length-1);i++) {
		if(fields[i].value=="") {
			emptyFields="Please enter an email address and a password.\n";
		}
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
	
}

//DELETE USER BOOKMARKS
function deleteMark() {
	var decision=confirm("Are you sure you wish to delete this bookmark.\n");
	
	if(decision==true) {
		return true;
	}else{
		return false;
	}
}

//VALIDATE FORM WHEN PURCHASING NEW PROPERTY
function validateNewProperty() {
	var emptyFields="";
	var selects=document.getElementsByTagName("select");
	for(var i=0; i < selects.length; i++) {
		if(selects[i].value=="0") {
			emptyFields+="Please enter the number of properties you wish to purchage.\n";
		}
	}
	
	if((document.getElementById("reg_quart").checked!=true)&&(document.getElementById("reg_anual").checked!=true)&&(document.getElementById("prem_quart").checked!=true)&&(document.getElementById("prem_anual").checked!=true)) {
		emptyFields+="Please select which package you want.\n";
	}
	
	if(document.getElementById("terms").checked!=true) {
		emptyFields+="Please accept Wannavillas terms and conditions before proceeding.\n";
	}
	
	if(emptyFields) {
		alert(emptyFields);
		return false;
	}else{
		return true;
	}
	
	
}

//MAX CHARS FOR VILLA DESCRIPTION
function stopText(tbid,words) {
	var element=document.getElementById(tbid).value;
	var myArray = element.split(' ');
	//var maxLength=document.getElementById(tbid).value.length;
	if(myArray.length>words) {
		alert("You have entered more than the 30 limit.  Please try again.\n");
		document.getElementById(tbid).value='';
		for (i=0;i<words;i++) {
			document.getElementById(tbid).value+=myArray[i];
			if (i<(words-1)) {
				document.getElementById(tbid).value+=" "; } }
		return; }
	}