/*
Miscellaneous functions
*/

/////////
/// Temp
/////////

if (!window.onload) {
	window.onload = SelectParkAndUnit;
}
function SelectParkAndUnit() {
	var frm = document.requestform;
	var strQS = window.location.search;
	var strItem;
	var re = /[?]holidaypark=([^&]*)&unit=([^&]*)/gi;
	
	if (re.test(strQS)) {
		if (frm && frm.holidaypark && frm.unit) {
			strItem = strQS.replace(re, '$1');
			SelectItem(frm.holidaypark, strItem);
			GetParkUnits(frm.holidaypark);

			strItem = strQS.replace(re, '$2');
			SelectItem(frm.unit, strItem);
		}
	}
}
function SelectItem(lst, strItem) {
	for (var i = 0; i < lst.length; i++) {
		if (lst[i].text == strItem) {
			lst.selectedIndex = i;
			break;
		}
	}
}


////////////////////////////////
// Change to different park home page
////////////////////////////////
function SwitchPark(lst) {
	if (lst) {
		if (lst.selectedIndex != 0) location.href = lst.value; 
	}
	return false;
}

function ParkRedirect(lst, strPage, blnNewWindow, blnMainSite) {
	var strURL;
	if (lst) {
		if (lst.selectedIndex != 0 && lst.value != '') {
			strURL = 'park-redirect.aspx?Park=' + lst.value + '&Page=' + strPage + '&MainSite=' + ((blnMainSite) ? 1 : 0);
			if (blnNewWindow)
				self.open(strURL, '_blank');
			else
				location.href = strURL;
		} else {
			lst.selectedIndex = 0;
		}
	}
	return false;
}

////////////////////////////////
// Popup functions
////////////////////////////////
function popup(url, title, width, height, scroll) {
	var s = 'menubar=no,toolbar=no,location=no,resizable=yes,status=yes'
	s += ',scrollbars=' + scroll
	s += ',width=' + width + ',height=' + height;
	s += ',top=' + (screen.availHeight - height) / 2 + ',left=' + (screen.availWidth - width) / 2;

	//close existing window
	if (navigator.newwindow) navigator.newwindow.close();
	
	//save new window object in navigator object and activate
	navigator.newwindow = self.open(url, title, s);
	addPopupEvents(navigator.newwindow);
	navigator.newwindow.focus();
	
	return false;
}

function popupSlideshow() {
	return popup('', 'Slideshow', 760, 530, 'no')
}

function popupShortbreakPrices() {
	return popup('', 'ShortbreakPrices', 490, 470, 'yes')
}

function popupPOIDetails() {
	return popup('', 'POIDetails', 500, 400, 'yes')
}

function CloseWindow() {
	window.close();
	if (window.opener)
		if (!window.opener.closed)
			window.opener.focus();
}

function addPopupEvents(wnd) {
	if (wnd && wnd.document) {
		wnd.document.onkeydown = KeyDown;
	}
}

function KeyDown(e) {
	if (e && e.which == 27) CloseWindow(); //Netscape
	else if (event && event.keyCode == 27) CloseWindow(); //IE
}

////////////////////////////////
// Form submission functions
////////////////////////////////
var msg = '', errmsg = '', focuselement = null;

function FormSubmit(frm) {
	//Loop through form elements, checking for a non-empty value, a selection, or valid email
	// Use the TITLE attribute of the element as the error message, adding for each error
	// Focus is set to the first offending element
	
	msg = '';
	errmsg = '';
	focuselement = null;

	for (var i = 0; i <= frm.elements.length - 1; i++) {
		CheckElement(frm.elements[i])
	}
	
	if (msg == '') {
		frm.submit();
	} else {
		msg = 'You need to complete the form fully before proceeding\n\n' + msg;
		alert(msg);
		if (focuselement && focuselement.focus) focuselement.focus();
	}
	
	return false;	
}

function CheckElement(element) {
	var blnEmailProblem, blnTelephoneProblem;
	errmsg = element.title;

	blnEmailProblem = false;
	if (element.name == 'emailaddress') {
		if (element.value == '') {
			blnEmailProblem = RequestedOffers(element);
		} else {
			blnEmailProblem = !ValidEmail(element.value);
		}
	}

	if (element.name == 'telephone') {
		if (element.value == '') {
			blnTelephoneProblem = ProvisionalBooking(element);
		}
	}

	if ( (element.title != '' && element.value == '') || blnEmailProblem || blnTelephoneProblem) {
		msg += errmsg + '\n';
		if (!focuselement) focuselement = element;
		
		
	
	}
}
      
  


function ValidEmail(email) {
	var valid, re = /^[a-z0-9_-]+(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+)+$/ig;
	valid = re.test(email);
	if (!valid) errmsg = 'Please enter a valid email address';
	return valid;
}

function RequestedOffers(element) {
	var blnReceive;

	if (element && element.form && element.form.receiveoffers) {
		blnReceive = (element.form.receiveoffers.value == 'Yes');
		if (blnReceive)
			errmsg = 'Must enter an email address to receive special offers';
	} else {
		blnReceive = false;
	}
	
	return blnReceive;
}

function ProvisionalBooking(element) {
	var blnProvisional;

	if (element && element.form && element.form.provisional) {
		blnProvisional = (element.form.provisional.value = null);
		if (blnProvisional)
			errmsg = 'Must enter a telephone number for a provisional booking';
	} else {
		blnProvisional = false;
	}
	
	return blnProvisional;
}

function ProvisionalChange(lst) {	
	if (lst.value == 'Yes') {
		lst.form.form_id.value = 'book-provisional';
		lst.form.subject.value = 'Provisional Booking' + lst.form.subject_default.value;
		lst.form.return_ok.value = lst.form.return_ok_provisional.value;
		lst.form.action = lst.form.action_provisional.value;
	} else {
		lst.form.form_id.value = 'book';
		lst.form.subject.value = 'Booking Enquiry' + lst.form.subject_default.value;
		lst.form.return_ok.value = lst.form.return_ok_enquiry.value;
		lst.form.action = lst.form.action_enquiry.value;
	}
}


function NoneWithCheck(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].checked){ return false; }
		}
		return true;
	}
	
			
			
		




function GetParkUnits(lstParks) {
	
	var lstUnits = lstParks.form.unit;
	

	lstUnits.selectedIndex = 0;
	for (i = lstUnits.length - 1; i > 0 ; i--) {
		lstUnits.options.remove(i);
	}

	if (lstParks.value == '') {

		if (lstParks.selectedIndex != 0) lstParks.selectedIndex = 0;
	} else {

		var i, opt
		var txtUnits = lstParks.form[lstParks.options[lstParks.selectedIndex].value];


		var aUnits = txtUnits.value.split('|')
		for (i = 0; i < aUnits.length; i++) {
			opt = new Option();
			opt.text = aUnits[i];
			opt.value = aUnits[i];
			lstUnits.options[lstUnits.options.length]=new Option(opt.text,opt.value);
		}
	}
}



