var currentHotel;
var savedHotels = new Array();

function enquiryDiscard()
{
	document.getElementById('enquiryPopup').style.display = 'none';
	document.getElementById('hotelStatus' + currentHotel).className = 'hotelStatus hotelRejected';
	//document.getElementById('hotelStatus' + currentHotel).innerHTML = 'Rejected';
	
	for (i = 0; i < savedHotels.length; i++)
	{
		if (savedHotels[i] == currentHotel)
		{
			savedHotels.splice(i, 1);
			document.getElementById('hotelCount').innerHTML = savedHotels.length;
			return;
		}
	}
}

function enquirySave()
{
	document.getElementById('enquiryPopup').style.display = 'none';
	document.getElementById('hotelStatus' + currentHotel).className = 'hotelSaved hotelStatus';
	//document.getElementById('hotelStatus' + currentHotel).innerHTML = 'Saved';
	for (i = 0; i < savedHotels.length; i++)
	{
		if (savedHotels[i] == currentHotel)
			return;
	}
	savedHotels[savedHotels.length] = currentHotel;
	document.getElementById('hotelCount').innerHTML = savedHotels.length;
}

function showHotel(hotelID, month)
{
	currentHotel = hotelID;
	var popup = document.getElementById('enquiryPopup');
	ajaxRequest(ROOT + '/enquiry-ajax/', 'hotelID=' + hotelID + '&month=' + month);
	return false;
}

function getSavedHotels()
{
	var i;
	var s = '';
	
	if (!savedHotels.length)
		return '';
		
	s = 'Automatically added: \n';
	
	for (i = 0; i < savedHotels.length; i++)
	{
		s += 'Customer may be interested in hotel ' + hotelName[savedHotels[i]] + '.\n';
	}
	return s;
}

function submitEnquiry()
{
	document.getElementById('ExtraInfo').value += getSavedHotels();
}

function validateForm()
{
	var eName = document.getElementById('CustName');
	var eMail = document.getElementById('CustEMail');
	var ePhone = document.getElementById('CustPhone1');

	if (!eName.value.match(/[a-z]/i))
	{
		alert('Please enter your name');
		eName.focus();
		return false;
	}
	
	if (!eMail.value.match(/^[\w-.]+@[\w][\w-.]*\.\w+$/i))
	{
		alert('Please enter a valid e-mail address');
		eMail.focus();
		return false;
	}
	
	var tel = ePhone.value;
	ePhone.value = fixTelephoneNumber(tel);
	if (ePhone.value == "")
	{
		alert("Please ensure that your telephone number is valid");
		ePhone.value = tel;
		ePhone.focus();
		return false;
	}
	
	return true;
}

function validateHoliday()
{
	var f = document.forms['enqform'];
	var e = f.elements;
	
	e.CustName.value = e.CustName.value.replace(/^\s+|\s+$/g, '');
	e.CustSurname.value = e.CustSurname.value.replace(/^\s+|\s+$/g, '');
	
	if (!e.CustName.value.length)
	{
		alert("Please enter your first name.");
		e.CustName.focus();	
		return false;
	}
	
	if (!e.CustSurname.value.length)
	{
		alert("Please enter your surname.");
		e.CustSurname.focus();	
		return false;
	}
	
	if (!e.CustEMail.value.length)
	{
		alert("Please enter your email address so we can answer your enquiry.");
		e.CustEMail.focus();	
		return false;
	}
	
	if (!e.CustEMail.value.match(/^[\w-.]+@[\w-]+.[\w-.]+$/))
	{
		alert("Please enter a valid email address.");
		e.CustEMail.focus();
		return false;
	}
	
	var tel = e.CustPhone1.value;
	e.CustPhone1.value = fixTelephoneNumber(e.CustPhone1.value);
	
	if (e.CustPhone1.value == "" && tel != "")
	{
		alert("Please ensure that your telephone number is valid");
		e.CustPhone1.value = tel;
		e.CustPhone1.focus();
		return false;
	}
	
	tel = e.CustPhone2.value;
	e.CustPhone2.value = fixTelephoneNumber(e.CustPhone2.value);
	
	if (e.CustPhone2.value == "" && tel != "")
	{
		alert("Please ensure that your telephone number is valid");
		e.CustPhone2.value = tel;
		e.CustPhone2.focus();
		return false;
	}
	
	if (e.CustPhone1.value == "" && e.CustPhone2.value == "")
	{
		alert("Please enter your telephone number so we can answer your enquiry.");
		e.CustPhone1.value = tel;
		e.CustPhone1.focus();
		return false;
	}
	
	return true;
}

function fixTelephoneNumber(number, mobile)
{
	// OFCOM telephone number specification: http://www.ofcom.org.uk/telecoms/ioi/numbers/numplan0207.pdf
	if (number == "") return "";

	// Replace any non-digit with nothing
	number = number.replace(/[\D]/g, '');
	// if it starts with a zero, make it start with the country code
	if (number.substr(0, 1) == "0")
	{
		number = "44" + number.substr(1);
	}
	
	if (mobile)
	{
		// Check it's a valid mobile area
		var Numbers = new Array("71", "72", "73", "74", "75", "77", "78", "79");
		var valid = false;
		var s = number.substr(0, 4);
		for (n in Numbers)
		{
			if (s == "44" + Numbers[n])
			{
				valid = true;
				break;
			}
		}
		if (!valid) return "";
	}
	
	if (number.length != 11 && number.length != 12) return "";
	return number;
}






function validateOneStageEnquiry(form, prefix)
{
	prefix += '_';
	
	var elm = form.elements[prefix + 'Duration'];
	if (!elm.options[elm.selectedIndex].value)
	{
		alert('Please select a duration');
		elm.focus();
		return false;
	}
	
	var elements = ['CustName', 'CustSurname', 'CustEMail'];
	var elementNames = ['first name', 'surname', 'e-mail address'];
	var i;
	for (i = 0; i < elements.length; i++)
	{
		elm = document.getElementById(prefix + elements[i]);
		if (!elm.value)
		{
			alert('Please enter your ' + elementNames[i]);
			elm.focus();
			return false;
		}
	}
	
	var phone1 = document.getElementById(prefix + 'CustPhone1');
	var tel = phone1.value;
	phone1.value = fixTelephoneNumber(tel);
	
	if (phone1.value == "" && tel != "")
	{
		alert("Please ensure that your telephone number is valid");
		phone1.value = tel;
		phone1.focus();
		return false;
	}
	
	var phone2 = document.getElementById(prefix + 'CustPhone2');
	var tel = phone2.value;
	phone2.value = fixTelephoneNumber(tel);
	
	if (phone2.value == "" && tel != "")
	{
		alert("Please ensure that your telephone number is valid");
		phone2.value = tel;
		phone2.focus();
		return false;
	}

	var email = document.getElementById(prefix + 'CustEMail');
	if (!email.value.match(/^[\w-.]+@[\w-]+\.[\w-.]+$/))
	{
		alert("Please enter a valid email address.");
		email.focus();
		return false;
	}
	
	elm = document.getElementById(prefix + 'CustPhone1');
	var elm2 = document.getElementById(prefix + 'CustPhone1');
	if (elm.value == '' && elm2.value == '')
	{
		alert('Please enter your daytime or evening telephone number');
		elm.focus();
		return false;
	}
	
	var e = form.elements;
	var hasWeddingOptions = false;
	var checkedWeddingOptions = 0;
	
	for (var i = 0; i < e.length; i++)
	{
		if (e[i].name.match(/wedding_\d+$/))
		{
			hasWeddingOptions = true;
			
			if (e[i].checked)
				checkedWeddingOptions++;
		}
	}
	
	if (hasWeddingOptions && !checkedWeddingOptions)
	{
		alert('Please choose where you might like to get married');
		return false;
	}
	
	return true;
}