//    Last changed:   $Date: 2008-12-16 13:10:39 +0000 (Tue, 16 Dec 2008) $
//    Last change by: $Author: dave $
//    File @ sub rev: $Rev: 5595 $

var page_is_reloading = false;
var debug_basket_submit = false;

function booknow(inUrl) {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	document.location = inUrl;
}

function sendfeedbackform() {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	try {
		inForm = document.sendfeedback;
	} catch (err) {
		page_is_reloading = false;
		return;
	}
	if( inForm.feedbackname.value == '' ) {
		alert('Please Enter your Name.');
		page_is_reloading = false;
		return;
	}
	if( inForm.feedbackemail.value == '' ) {
		alert('Please Enter your E-mail address.');
		page_is_reloading = false;
		return;
	}
	if( inForm.feedbackmessage.value == '' ) {
		alert('Please Enter a Feedback Message.');
		page_is_reloading = false;
		return;
	}
	inForm.submit();
}

function calReload(inUrl) {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	document.location = inUrl;
}

function calFormReload(inUrl) {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	try {
		inForm = document.filterclasses;
		inForm.filterOffset.value = 1;
		inForm.calendarDate.checked = true;
		inForm.classDate.value = '';
		inForm.action = inUrl;
	} catch (err) {
		document.location = inUrl;
		return;
	}
	inForm.submit();
}

function calListReload(inUrl) {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	try {
		inForm = document.filterclasses;
		inForm.filterOffset.value = 1;
		inForm.action = inUrl;
	} catch (err) {
		document.location = inUrl;
		return;
	}
	inForm.submit();
}

function formWeekChange() {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	try {
		inForm = document.filterclasses;
		inForm.calendarMonth.checked = false;
	} catch (err) {
		return;
	}
}

function moveResultsDisplay(inChange) {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	try {
		inForm = document.filterclasses;
		inForm.filterOffset.value = Number(inForm.filterOffset.value) + inChange;
	} catch (err) {
		page_is_reloading = false;
		return;
	}
	inForm.submit();
}

function formFilter() {
	var inForm;
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	try {
		inForm = document.filterclasses;
		inForm.filterOffset.value = 1;
	} catch (err) {
		page_is_reloading = false;
		return;
	}
	inForm.submit();
}

function formReload(inForm) {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	inForm.submit();
}


// basket functions

function getFieldValue(inForm, inInput)
{
	var fieldValue = '';
	var formField;
	try {
		formField = inForm[inInput];
	} catch (err) {
		try {
			formField = inForm(inInput);
		} catch (err) {
			return fieldValue;
		}
	}
	fieldValue = formField.value;
	if( formField.type == "checkbox" ) {
		if( formField.checked == false ) {
			fieldValue = '';
		}
	}
	return fieldValue;
}

function toLong(inVal) {
	if( isNaN(inVal) == true ) {
		return -1;
	}
	return Number(inVal);
}

function add_item() {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var bform = document.basket_form;
	var itemStr = escape(bform.add_text.value);
	var itemQty = escape(bform.add_quantity.value);
	document.location = 'sb_process.asp?action=add&itemstr='+itemStr+'&itemqty='+itemQty;
}

function remove_item(inItem) {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var itemStr = escape(inItem);
	var bform = document.basket_items;
	bform.action = 'sb_process.asp?action=remove&itemstr='+itemStr;
	bform.submit();
}

function update_items() {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var bform = document.basket_items;
	bform.submit();
}

function removeall_items() {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var retval = confirm('Remove all items from the Basket ?');
	if( retval == true ) {
		var bform = document.basket_items;
		bform.action = 'sb_process.asp?action=removeall&itemstr=0';
		bform.submit();
	} else {
		page_is_reloading = false;
	}
}

function reload_items() {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var new_loc = document.location;
	document.location = new_loc;
}


function quantity_change(inID) {
	var baseS = 'quantity_';
	var idVal = ''+inID;
	var idNum;
	var newId;
	var newDom;
	var newVal;
	var chkId;
	var chkDom;
	var chkVal;
	var changeId;
	var changeDom;
	var showWarning = false;
	if( idVal.length <= baseS.length ) {
		return;
	}
	if( idVal.substr(0, baseS.length) != baseS ) {
		return;
	}
	idNum = idVal.substr(baseS.length);
	if( isNaN(idNum) == true ) {
		return;
	}
	idNum = Number(idNum);
	newId = inID;
	newDom = findDOM(newId, 0);
	newVal = newDom.value;
	chkId = 'placesleft_'+idNum;
	chkDom = findDOM(chkId, 0);
	chkVal = chkDom.value;
	changeId = 'placestext_'+idNum;
	changeDom = findDOM(changeId, 0);
	if( isNaN(newVal) == true ) {
		return;
	}
	newVal = Number(newVal);
	if( isNaN(chkVal) == true ) {
		// ensure chkVal is less than newVal
		chkVal = newVal - 1;
	}
	if( newVal > 0 ) {
		if( chkVal < newVal ) {
			showWarning = true;
		}
	}
	try {
		if( showWarning == true ) {
			changeDom.innerHTML = '! only ';
			newDom.style.background = '#ef1010';
		} else {
			changeDom.innerHTML = '';
			newDom.style.background = '#ffffff';
		}
	} catch (err) {
		return;
	}
}

function submit_items() {
	if( page_is_reloading == true ) {
		return;
	}
	page_is_reloading = true;
	var cancel_submit = false;
	var cancel_count = 0;
	var bform = document.basket_items;
	var max_n = bform.item_count.value;

	// nothing in the basket
	if( max_n < 0 ) {
		alert('Basket is empty.');
		page_is_reloading = false;
		return;
	}

	for( var n=0; n<=max_n; n++ ) {
		var cur_key = getFieldValue(bform, 'key_'+n);
		var cur_qty = toLong(getFieldValue(bform, 'quantity_'+n));
		var cur_lft = toLong(getFieldValue(bform, 'placesleft_'+n));
		if( cur_qty > 0 ) {
			if( cur_lft < cur_qty ) {
				cancel_submit = true;
				cancel_count++;
			}
		}
	}

	if( cancel_submit == true ) {
		if( cancel_count > 1 ) {
			alert('Some bookings are for more than the available number of places.');
		} else {
			alert('One booking is for more than the available number of places.');
		}
	}

	// one or more basket quantities more than places left
	if( cancel_submit == true && debug_basket_submit == false ) {
		page_is_reloading = false;
		return;
	}

	// basket seems ok - submit to process script
	bform.action = 'process_basket.php';
	bform.submit();
}
