var onloadcalls=[];

function body_onload() {
	for(var i=0;i<onloadcalls.length;i++) {
		eval(onloadcalls[i]);
	}
}

function changeNumberField(field,isdecimal) {
	var value=field.value;
	var okchars='1234567890';
	if(isdecimal) okchars+='.';
	var newvalue='';
	for(var i=0;i<value.length;i++) {
		if(okchars.indexOf(value.charAt(i))>-1) {
			newvalue+=value.charAt(i);
		}
	}
	if(value!=newvalue) {
		field.value=newvalue;
	}
}

function onBlurNameCase(field) {
	var val=String(field.value);
	if(val.toLowerCase!=undefined && val.split!=undefined) {
		if(val!='' && val.toLowerCase()==val || val.toUpperCase()==val) {
			var words=val.split(' ');
			for(var i=0;i<words.length;i++) {
				words[i]=words[i].charAt(0).toUpperCase()+words[i].substring(1).toLowerCase();
			}
			field.value=words.join(' ');
		}
	}
}

function paymentClick(buttonobj) {
	var agreeobj=document.getElementById('agree');
	var insuranceobj=document.getElementById('insurance');
	if(!agreeobj.checked) {
		alert('Please check that you agree to the conditions above. Thanks.');
		return false;
	} else if(!insuranceobj.checked) {
		alert('Please check that you have travel insurance for this journey or you will book it very shortly. Thanks.');
		return false;
	} else {
		buttonobj.disabled=true;
		buttonobj.style.color='#b0b0b0';
		buttonobj.style.backgroundColor='#308030';
		buttonobj.style.borderStyle='dashed';
		return true;
	}
}

///////////////////////////////////////////////////////////////

function togglecheckbox(elementid) {
	var element=document.getElementById(elementid);
	if(element) {
		element.checked=!element.checked;
		element.onchange();
	}
}

function trip_changeplaces(element,url) {
	document.location=url+'&places='+element.value;
}

function trip_selectoption(element,pricedelta) {
	var priceelement=document.getElementById('tripprice');
	var price=Number(priceelement.value);
	if(element.checked) {
		price+=pricedelta;
	} else {
		price-=pricedelta;
	}
	priceelement.value=price;
	setprice();
}

function setprice() {
	var priceelement=document.getElementById('tripprice');
	var pricestr=String(priceelement.value);
	while(pricestr.length<4) pricestr=' '+pricestr;
	var d;
	var delement;
	for(var i=0;i<pricestr.length;i++) {
		d=pricestr.charAt(i);
		delement=document.getElementById('price'+i);
		if(d==' ') {
			delement.src='/images/spacer.gif';
		} else {
			delement.src='/images/font/numbers/'+d+'.gif';
		}
	}
}

function toggle(elementid) {
	var element=document.getElementById(elementid);
	if(element) if(element.style) {
		if(element.style.display=='block') {
			element.style.display='none';
		} else {
			element.style.display='block';
		}
	}
}

function showpaa(ceid) {
	var found;
	if(tceids!=undefined) {
		var ceids;
		var row;
		for(var i=0;i<tceids.length;i++) {
			if(ceid==-1) {
				found=true;
			} else {
				ceids=tceids[i];
				found=false;
				for(var j=0;j<ceids.length;j++) {
					if(ceids[j]==ceid) found=true;
				}
			}
			row=document.getElementById('paarow'+i);
			if(found) {
				row.style.display='';
			} else {
				row.style.display='none';
			}
		}
		if(sections!=undefined) {
			var isallhidden;
			for(var i=0;i<sections.length;i++) {
				isallhidden=true;
				for(var j=0;j<sections[i].length;j++) {
					row=document.getElementById('paarow'+sections[i][j]);
					if(row.style.display!='none') isallhidden=false;
				}
				row=document.getElementById('section'+i);
				if(isallhidden) {
					row.style.display='none';
				} else {
					row.style.display='';
				}
			}
		}
	}
}

function reportissue(content,pagetitle) {
	var win=window.open('/admin/reportissue.asp?content='+content+'&pagetitle='+pagetitle,'oakhallreportissue','title=no,width=550,height=400');
	win.focus();
}

function popupfaq(faqid) {
	var win=window.open('/popup/faq/?faqid='+faqid,'oakhallfaqid','title=no,width=550,height=400,resize=yes,scrollbars=yes');
	win.focus();
}

function teamon(teamname) {
	var pic=document.getElementById('teamphoto');
	if(pic) {
		pic.src='/images/pages/team/'+teamname+'.jpg';
	}
}

function teamoff(teamname) {
	var pic=document.getElementById('teamphoto');
	if(pic) {
		pic.src='/images/pages/team/basi.gif';
	}
}

function titleChange(titleobj) {
	var genderobj=titleobj.form['gender'];
	if(genderobj) {
		switch(titleobj.value) {
			case 'Mr':
			case 'Master':
				genderobj.selectedIndex=1;
				break;
			case 'Miss':
			case 'Mrs':
				genderobj.selectedIndex=2;
				break;
		}
	}
}

function dobChange(form) {
	var agedesc='';
	var dd=Number(form['dob_date'].value);
	var mm=Number(form['dob_month'].value);
	var yy=Number(form['dob_year'].value);
	
	if(!isNaN(yy) && mm!=0 && !isNaN(dd)) {
		if(form['dob_year'].value!='') {
			if(yy<10) {
				yy+=2000;
			} else if(yy<100) {
				yy+=1900;
			}
			var dob=new Date(yy,mm-1,dd);
			var now=new Date();
			var age=0;
			while(dob.getTime()<now.getTime()) {
				dob=new Date(yy+age+2,mm-1,dd);
				age++;
			}
			if(age>90) window.alert('Warning: Entered old age. Please confirm date of birth is entered correctly.');
			agedesc='&nbsp;(<b>Age</b>: '+age+')';
		}
	}
	var agespan=document.getElementById('agedisplay');
	if(agespan) agespan.innerHTML=agedesc;
}

function nationalityDDChange(dd) {
	if(dd.selectedIndex>0) {
		var otherfield=dd.form['nationality'];
		otherfield.value='';
	}
}

function nationalityOtherBlur(otherfield) {
	var val=String(otherfield.value);
	while(val.length>0 && val.charAt(0)==' ') val=val.substring(1);
	if(val.length>0) {
		var dd=otherfield.form['nationalityid'];
		dd.selectedIndex=0;
	}
}

function ajax(jsfntocall,url) {
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			eval(jsfntocall+'(xmlHttp.responseText)');
		}
	}
	xmlHttp.open('GET',url,true);
	xmlHttp.send(null);
}

var haspoppedupparking=false;

function otfordParking(cb,guestid,parkingceid,price) {
	recalcprice(cb);
	if(cb.checked) {
		haspoppedupparking=true;
		window.open('/popup/misc/otfordparking.asp?guestid='+guestid+'&parkingceid='+parkingceid+'&price='+price,'oakhall_popup_otford_parking','width=420,height=300,resize=0,title=0').focus();
	}
}

function suggestOtfordParking(cb,guestid,parkingceid,price) {
	if(!haspoppedupparking) {
		otfordParking(cb,guestid,parkingceid,price);
	}
}

function noneMeetAtResort(cb,guestid) {
	recalcprice(cb);
	if(cb.checked) {
		window.open('/popup/misc/nonemeetatresort.asp?guestid='+guestid,'oakhall_popup_none_meet_at_resort','width=420,height=300,resize=0,title=0').focus();
	}
}

function displayAnchors() {
	var anchorslist=document.getElementById('anchorslist');
	if(anchorslist) {
		var a;
		var prompt;
		var html='';
		for(var i=0;i<document.anchors.length;i++) {
			a=document.anchors[i];
			html+='<a href="#'+a.name+'">'+a.name+'</a>';
		}
		anchorslist.innerHTML=html;
	}
}
