setCustomForm = function(form) {
var formroot;
if(!(formroot=xGetElementById(form))) return;
var value = getValue(formroot);
var li=xGetElementsByTagName("LI",formroot);
for (i=0; i<li.length; i++){
	var name = li[i].innerHTML;
	var IEinput = '<input name="_'+name+'"class="radio">';
	for (j=0;j<3;j++){
		var radio = document.createElement(IE?IEinput:'input');//name and class way with IE!
		radio.onclick = function(){this.checked = true};
		if(!IE) radio.setAttribute('name', "_"+name);//don't work with IE
		if(!IE) radio.setAttribute('class', "radio");//don't work with IE
		radio.setAttribute('type',"radio");
		radio.setAttribute('value',"_"+value[j]);
		li[i].appendChild(radio);
		}	
	for (j=0;j<3;j++) xLeft(li[i].childNodes[j+1],100+j*45);
	}
var div=xGetElementsByTagName("div",formroot);
for (j=0;j<3;j++) xLeft(div[j],100+j*45);
}

function getValue(ele){
switch(ele.id){
	case 'CountryChoiceForm':
	value = new Array('no','maybe','yes');
	break;
	case 'ActivityChoiceForm':
	value = new Array('not','ok','lot');
	break;
	}
return value;
}

function showCustomForm(show) {
var box = xGetElementById('checkcustom');
var custom = xGetElementById('customform');
if((!show && !box.checked)) {xDisplay(custom,'none'); xDisplay('contactpic','block');xGetElementById('main_frame2').className=null;}
	else {box.checked = true;  xGetElementById('main_frame2').className='custom'; xDisplay('contactpic','none'); xDisplay(custom,'block');}
setTimeout('positionne()',50);
}

function showCompeteForm() {
xDisplay('contactpic','none');
xDisplay('competitionform','block');
}

function showBookedDate() {
var box = xGetElementById('booktour');
if(!box.checked) xHide('booking'); else xShow('booking');
}

function showBookingConditions(){
window.open('../booking_conditions/booking_conditions.html','','target=_blank, width=550, height=500,left=400, top=100, scrollbars=yes, location=no, menubar=no');
}

function showCompetitionConditions(){
window.open('../booking_conditions/competition_conditions.html','','target=_blank, width=550, height=300,left=400, top=300, scrollbars=yes, location=no, menubar=no');}


function setTourForm(){
var ele = xGetElementsByTagName("h2",xGetElementById('main_content'));//title
var forms = xGetElementsByTagName("form",xGetElementById('main_frame2'));//title
var form = forms[0];
form.tourref.value=(ele[0])?ele[0].innerHTML:'No title';//assign tour title to tour form
form.booktour.checked = false;//reset booking form
form.scheduled_dates.options[0].selected = true;
var dates = xGetElementsByClassName('dates',xGetElementById('main_content'),'ul');//get dates list
if(dates[0]) dates = xGetElementsByTagName('li',dates[0]);//get dates list
if(dates.length>1) for (i=0; i<dates.length; i++){//if custom tour or no dates, dates.lenght=1
						var dat = document.createElement('option');
						dat.innerHTML = dates[i].innerHTML;
						form.scheduled_dates.appendChild(dat);
						}
	else {xDisplay('departure_dates','none');xDisplay('private_date','block');form.scheduled_dates.options[1].selected = true;}
form.scheduled_dates.onchange = function(){if (this.options[1].selected) xDisplay('private_date','block'); else xDisplay('private_date','none');}
}

function testFormRedirect(varname){
var url = window.location.href;
var qparts = url.split("?");
if (qparts.length<=1) return false;
var vars = qparts[1].split("&");
var value = "";
for (i=0;i<vars.length;i++){
    var parts = vars[i].split("=");
    if (parts[0] == varname){
      value = parts[1];
      break;
    }
  } 
value = unescape(value);// Convert escape code
value.replace(/\+/g," ");// Convert "+"s to " "s
return value;
}

function formThankYou(name){
var thanks=xGetElementById('thankyou');
var message = thanks.innerHTML.replace(/Thank you/,'Thank you&nbsp;<b>'+name+'</b>');
thanks.innerHTML = message;
var form = xGetElementById('contactform') || xGetElementById('TourForm') ||  xGetElementById('competitionform');
if (form) {xDisplay(form,'none');xDisplay(thanks,'block')}
if (!xGetElementById('TourForm')) {xGetElementById('main_frame2').className=null; xDisplay('contactpic','block');}
}

function submitForm(form){
var errors="";
errors += validateText(form.firstname);
if (form.surname) errors += validateText(form.surname);
if (form.age) errors += validateNumber(form.age,2,2);
if (form.country) errors += validateText(form.country);
errors += validatePhone(form.tel);
errors += validateEmail(form.email);
var box = xGetElementById('checkcustom') || xGetElementById('booktour');
if (box && box.checked) {
	if (form.budget) errors += validateBudget(form.budget);
	if (form.scheduled_dates && !form.scheduled_dates.options[1].selected) {form.date.value='';errors += validateScheduledDates(form.scheduled_dates);}
	if (form.date && (!form.scheduled_dates || form.scheduled_dates.selectedIndex==1)) errors += validateDate(form.date);
	if (form.days) errors += validateSelection(form.days,"number of ");
	if (form.accommodation) errors += validateSelection(form.accommodation,"type of ");
	if (form.tour) errors += validateSelection(form.tour,"type of ");
	errors += validateSelection(form.people,"number of ");
	}
	else {//reset values of hidden forms
		if (form.scheduled_dates && form.scheduled_dates.options.length>2) {form.scheduled_dates.options[0].selected = true;xDisplay('private_date','none');}
		if(form.date) form.date.value='';
		if(form.days) form.days.options[0].selected = true;
		if(form.budget) form.budget.options[0].selected = true;
		if(form.people) form.people.options[0].selected = true;
		if (form.accommodation) form.accommodation.options[0].selected = true;
		if (form.tour) form.tour.options[0].selected = true;
		}

if (errors) {alert('The following errors have appeared:\n'+errors);return false};
var firstname = form.firstname.value;
var url = window.location.href;
url = unescape(url);
var qparts = url.split("?");//test if url has extension code (from a tour page)
//if (qparts.length>1) url = qparts[0]; //remove the ? extension
var ext =  (qparts.length>1)?"&name=":"?name=";
var value = url+ext+firstname;
form.redirect.setAttribute('value',value);
return true;
}

function validateText(field){
var error = "";
var text=field.name;
if (field.value=="") error = '- ' +text+' must be given.\n';
	else if (field.value.length < 2) error = text+' is invalid\n';
return error;	
}

function validatePhone(fld) {
var error = "";
var stripped = fld.value.replace(/[\(\)\.\-\ ]/gi,"");     
if (fld.value == "") error = "- Telephone must be given.\n";
	else if (isNaN(stripped) || stripped.length < 8) error = "Telephone is invalid.\n";
return error;
}

function validateNumber(field,m,M) {
var error = "";
var text=field.name;
if (field.value=="") error = '- ' + text+' must be given.\n';
	else if (isNaN(field.value) || field.value.length < m  || field.value.length > M  ) error = text+' is invalid\n';
return error;	
}

function validateEmail(fld) {
var error="";
var tfld = trim(fld.value);// value of field with whitespace trimmed off
var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (fld.value == "") error = "- An Email must be given.\n";
	else if (!emailFilter.test(tfld) || fld.value.match(illegalChars)) error = "- Email address is invalid.\n";
return error;
}
function trim(s){return s.replace(/^\s+|\s+$/, '')}

function validateBudget(field) {
var error = "";
if (field.selectedIndex == 0) error = "- Select a budget.\n";
return error;
}

function validateDate(field){
var error = "";
var text=field.name;
if (field.value=="") error = "- A date of travel must be given.\n";
return error;
}

function validateScheduledDates(field) {
var error = "";
if (field.selectedIndex == 0) error = "- Select a departure date.\n";
return error;
}

function validateSelection(field,type) {
var error = "";
if (field.selectedIndex == 0) error = "- Select the "+type+field.name+".\n";
return error;
}
