var reqXML;
var reqXML_login;
var extra_1=20;
//var extra_2=25;
//var canccost=15;
var deposit=0;
var balance=0;
var gt=0;

		// EXTRAS
		
		// DOGS
		var unit_names = new Array(20);
		unit_names[1] = "Herring Masters";
		unit_names[2] = "Cheviot Cottage";
		unit_names[3] = "St Cuthbert's Cottage";
		unit_names[4] = "Beachbanks";
		unit_names[5] = "Puffin Cottage";
		unit_names[6] = "Gable Cottage";
		unit_names[7] = "White Sails Cottage";
		unit_names[8] = "Flores Cottage";
		unit_names[9] = "Highgarth Cottage";
		unit_names[11] = "Coble Cottage";
		unit_names[12] = "Herring House";
		unit_names[13] = "Quarry Bank";
		unit_names[14] = "Harbour View Cottage";
		unit_names[15] = "The Coracle";
		unit_names[16] = "Farne View";
		unit_names[17] = "Harbourside";
		unit_names[18] = "Kipper Cottage";
		unit_names[19] = "Kittiwake Cottage";
		unit_names[20] = "Seaside House";
		unit_names[21] = "3 Smugglers Cove";

		var extra1_ids = new Array(20);		
		extra1_ids[1] = 2;
		extra1_ids[2] = 3;
		extra1_ids[3] = 4;
		extra1_ids[4] = 5;
		extra1_ids[5] = 6;
		extra1_ids[6] = 7;
		extra1_ids[7] = 8;
		extra1_ids[8] = 9;
		extra1_ids[9] = 10;
		extra1_ids[11] = 0;
		extra1_ids[12] = 11;
		extra1_ids[13] = 12;
		extra1_ids[14] = 0;
		extra1_ids[15] = 13;
		extra1_ids[16] = 14;
		extra1_ids[17] = 19;
		extra1_ids[18] = 16;
		extra1_ids[19] = 0;
		extra1_ids[20] = 17;
		extra1_ids[21] = 18;

function querystring(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == 4)
		s = s.substr(0, 1)+','+s.substr(1, s.length - 1);
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;

	return s;
}


function roundNumber(field, places) {
	var rnum = field;
	var rlength = places; // The number of decimal places to round to
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	return CurrencyFormatted(newnumber);
}

function show_party_members(value) {
	// SHOW PARTY MEMBERS
	var party_size = value;
	for (i = 2; i <= party_size; i++)
		$('partyMember'+i).show();
	// HIDE THE REST
	var num = parseInt(party_size) + 1;
	for (i = num; i <= 6; i++) {
		if ($('partyMember'+i).visible())
			$('partyMember'+i).hide()
	}
}

function init_data() {
	var unitid = document.frm.unitid.value;
	
	document.getElementById("unit_name").innerHTML = unit_names[unitid];
	//document.getElementById("extra_1").value = extra1_ids[unitid];
	
	var extra1_current_val = querystring('extra_1');
	var extra1_current_val_array = extra1_current_val.split('_')
	var extra1_current_val_num = extra1_current_val_array[1];

	document.getElementById("extra_1").options.length = 0;
	for (i = 0; i <= 3; i++) {
		var optn = document.createElement('OPTION');
		optn.text = i;
		optn.value = extra1_ids[unitid]+'_'+i;
		if (i == extra1_current_val_num)
			optn.selected = true;
		document.getElementById("extra_1").options.add(optn);
	}
}

function calc_all(name, all_gets, startDate) {
	if (name=='unitid' || name=='party_size' || name=='period' || name=='extra_1') {
		var unitid = document.frm.unitid.value;
		var extra_1 = document.frm.extra_1.value;
	
		if (extra1_ids[unitid] == 0) {
			document.getElementById("fs_extras_content").style.display='none';
			document.getElementById("fs_extras_total").style.display='none';
			extra_1 = 0;
		} else {
			document.getElementById("fs_extras_content").style.display='block';
			document.getElementById("fs_extras_total").style.display='block';
		}

		myurl = "calc_all.php?"+all_gets;
		myurl = myurl + "&arrival_date="+startDate;
		myurl = myurl + "&unitid="+unitid;
		myurl = myurl + "&period="+document.frm.period.value;
		myurl = myurl + "&party_size="+document.frm.party_size.value;
		var extra1_value = document.frm.extra_1.value;
		var extra1_value_selected = extra1_value.split('_');
		myurl = myurl + "&extra_1="+extra1_value_selected[0];
		if (extra1_value_selected[1] > 0)
			myurl = myurl + "&extra_1_num="+extra1_value_selected[1];
		//myurl=myurl+"&extra_2="+document.frm.extra_2.checked;
		//myurl=myurl+"&canc="+document.frm.cancellation_plan.checked;
		if (window.XMLHttpRequest) {
			reqXML = new XMLHttpRequest();
			reqXML.onreadystatechange = MyStateChange;
			reqXML.open("GET", myurl, true);
			reqXML.send(null);
		}	else if (window.ActiveXObject) {
			reqXML = new ActiveXObject("Microsoft.XMLHTTP");
			if (reqXML) {
				reqXML.onreadystatechange = MyStateChange;
				reqXML.open("GET", myurl, true);
				reqXML.send(null);
			}
		} else {
			alert('This browser is not supported');
		}
	}
	etotal=0;
	//if (document.frm.extra_1.checked) etotal=etotal+(extra_1-0);
	//if (document.frm.extra_2.checked) etotal=etotal+(extra_2-0);
	//if (document.frm.cancellation_plan.checked) etotal=etotal+(canccost-0);
	document.getElementById("extratotal").innerHTML='&pound;'+formatNumValue(etotal-0);
	document.getElementById("grandtotal1").innerHTML='&pound;'+roundNumber(gt, 2);
	document.getElementById("grandtotal2").innerHTML='&pound;'+roundNumber(gt, 2);
	document.getElementById("grandtotal3").innerHTML='&pound;'+roundNumber(gt, 2);
	document.getElementById("deposit").innerHTML='&pound;'+roundNumber(deposit, 2);
	document.getElementById("balance").innerHTML='&pound;'+roundNumber(balance, 2);
}

function formatNumValue(value)
{
	valueString = value.toString();
	pos = valueString.length - valueString.indexOf('.');
	pos = (pos > valueString.length) ? -1 : pos;
	switch (pos)
	{
		case -1:
			return valueString + ".00";
			break;
		case 1:
			return valueString + "0";
			break;
		case 2:
			return valueString;
			break;
		default:
			return valueString.slice(0, valueString.indexOf('.') + 2);
	}
}

function MyStateChange() {
	if (reqXML.readyState == 4) {
		if (reqXML.status == 200) {
			repl=reqXML.responseText.split('|');
		}	else {
			repl=new Array('Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working','Not working');
		}
		document.getElementById("enddate").innerHTML=repl[0];
		document.getElementById("subtotal").innerHTML=repl[1];
		document.getElementById("extra_1_label").innerHTML='Dog - '+repl[2];
		//document.getElementById("extra_2_label").innerHTML='High Chair - '+repl[4];
		extra_1=repl[3];
		//extra_2=repl[5];
		etotal=0;
		gt=repl[6];
		deposit=repl[7];
		balance=repl[8];
		var extra1_value = document.frm.extra_1.value;
		var extra1_value_selected = extra1_value.split('_');
		if (extra1_value_selected[1] > 0)
			etotal = etotal + (extra_1 - 0);
		//if (document.frm.extra_2.checked) etotal=etotal+(extra_2-0);
		//if (document.frm.cancellation_plan.checked) etotal=etotal+(canccost);
		document.getElementById("extratotal").innerHTML='&pound;'+formatNumValue(etotal-0);
		document.getElementById("grandtotal1").innerHTML='&pound;'+roundNumber(gt, 2);
		document.getElementById("grandtotal2").innerHTML='&pound;'+roundNumber(gt, 2);
		document.getElementById("grandtotal3").innerHTML='&pound;'+roundNumber(gt, 2);
		document.getElementById("deposit").innerHTML='&pound;'+roundNumber(deposit, 2);
		document.getElementById("balance").innerHTML='&pound;'+roundNumber(balance, 2);
	}
}

function LogInAjaxCall(userName, password) {
	myurl="login_ajax.php?";
	myurl=myurl+"username=" + userName;
	myurl=myurl+"&pw=" + password;
	if (window.XMLHttpRequest) {
		reqXML_login = new XMLHttpRequest();
		reqXML_login.onreadystatechange = MyStateChange_login;
		reqXML_login.open("GET", myurl, true);
		reqXML_login.send(null);
	}	else if (window.ActiveXObject) {
		reqXML_login = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqXML_login) {
			reqXML_login.onreadystatechange = MyStateChange_login;
			reqXML_login.open("GET", myurl, true);
			reqXML_login.send(null);
		}
	} else { 
		alert('This browser is not supported');
	}
}

var logInTries = 0;
var logInGood = 0;
function MyStateChange_login() {
	if (reqXML_login.readyState == 4) {
		if (reqXML_login.status == 200) {
			repl=reqXML_login.responseText.split('|');
			if (repl[1].search('Not existing') != -1)
			{
				logInTries++;
				document.customerLogInForm.userName.value = "failed login";
				$('hideSite').show();
				$('accountDetails').show();
				
				if (logInTries >= 3)
				{
					$('logInFailedBox').show();
					$('logInBox').hide();
				}
				else
				{
					$('logInBox').show();
				}
			}
		}
		num=repl.length;
		for(n=0;n<num;n=n+2) if (document.frm[repl[n]]) document.frm[repl[n]].value=repl[n+1];
	}
}

var reqXML_login_check;
function customerLogIn_check() {
	myurl="login_check_ajax.php?";
	myurl=myurl+"username="+document.frm.mpm_user_name.value;
	myurl=myurl+"&fn="+document.frm.mpm_firstname.value;
	myurl=myurl+"&ln="+document.frm.mpm_lastname.value;
	myurl=myurl+"&email="+document.frm.mpm_email.value;
	myurl=myurl+"&logInGood="+logInGood;
	if (window.XMLHttpRequest) {
		reqXML_login_check = new XMLHttpRequest();
		reqXML_login_check.onreadystatechange = MyStateChange_login_check;
		reqXML_login_check.open("GET", myurl, true);
		reqXML_login_check.send(null);
	}	else if (window.ActiveXObject) {
		reqXML_login_check = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqXML_login_check) {
			reqXML_login_check.onreadystatechange = MyStateChange_login_check;
			reqXML_login_check.open("GET", myurl, true);
			reqXML_login_check.send(null);
		}
	} else { 
		alert('This browser is not supported');
	}
}

function MyStateChange_login_check() {
	if (reqXML_login_check.readyState == 4) {
		if (reqXML_login_check.status == 200) {
			repl=reqXML_login_check.responseText;
		}	else {
			repl='Not working';
		}
		if (repl!='ok') alert(repl);
		else document.frm.submit();
	}
}

function ext_formValidation(formHandler, fieldValidations) {
	isval = formValidation(formHandler, fieldValidations);
	if (!isval) return false;
	else return true;
	/*if (formHandler=='frm') {
		customerLogIn_check();
		return false;
	}
	else return true;*/
}