// JavaScript function for contact form
var TCopen;

function shTC() {
	var theDiv=$('takecontact');
	var cont=$('form_container');
	if (theDiv.style.display=="none") {
		// theDiv.style.display="block";
		Effect.SlideDown(theDiv);
		TCopen=true;
	} else {
		//theDiv.style.display="none";
		Effect.SlideUp(theDiv);
		TCopen=false;
	}
}
function checkObjet(sel) {
	var cc=$('catalogue');
	for (i=0; i<sel.options.length; i++) {
		if (sel.options[i].value=='cat' && sel.options[i].selected) {
			cc.checked='checked';
			i=sel.options.length;
		} else {
			cc.checked='';
		}
	}
	
}

function validateFields() {
	var frmEl = $('contact_form');
	var posName = $('prenom');
	var posFamily = $('nom');
	var posEmail = $('email');
	var posAdresse = $('adresse');
	var posCap = $('cap');
	var posVille = $('ville');
	var sc = $('submit_contact');
	
	var whiteSpace = /^[\s]+$/;
	if ( posName.value == '' || whiteSpace.test(posName.value) ||
		posFamily.value == '' || whiteSpace.test(posFamily.value) ||
		posEmail.value == '' || whiteSpace.test(posEmail.value) ||
		posAdresse.value == '' || whiteSpace.test(posAdresse.value) ||
		posCap.value == '' || whiteSpace.test(posCap.value) ||
		posVille.value == '' || whiteSpace.test(posVille.value) ) {
		
		alert("Veuillez remplir tous les champs, s.v.p.!");
		sc.style.display='block';
	} else {
		if (formId=='data_form') {
			var posTel = $('tel');
			if ( posTel.value == '' || whiteSpace.test(posTel.value)) {
				alert("Veuillez remplir tous les champs, s.v.p.!");
				return;
			}
		}
		sc.style.display='none';
		sendPosEmail();
	}
}
function sendPosEmail () {
	//var success = $('emailSuccess');
	var posName = $('prenom');
	var posFamily = $('nom');
	var posEmail = $('email');
	var posAdresse = $('adresse');
	var posCap = $('cap');
	var posVille = $('ville');
	var posPays = $('pays');
	var posTel = $('tel');
	var posFax = $('fax');
	
	try { // contact form
		var posRegard = $('objet');
		var posText = $('msg');
		var posRecont= $('recontact');
		
		if (posRecont.checked) {
			var posPar= $('parcourrier');
			if (posPar.checked) {
				recon=1;
			} else {
				posPar= $('paremail');
				if (posPar.checked) {
					recon=2;
				} else {
					posPar= $('partel');
					if (posPar.checked) {
						recon=3;
					} else {
						posPar= $('parfax');
						if (posPar.checked) {
							recon=4;
						} else {
							recon=0;
						}
					}
				}
			}
		} else {
			recon=0;
		}
	} catch(e) { // data form
		var posCmd = $('posCmd').value;
		var payMode;
		if ($('paypal').checked)
			payMode=1;
		else
			payMode=2;
	}
	
	var page = "http://www.scoobike.ch/scripts/php/xmlHttpRequest.php?contact="+(formId=='data_form'?'':'true')+"&xml=true";
	
	for (i=0; i<posPays.options.length; i++) {
		if (posPays.options[i].selected) {
			pays=posPays.options[i].value;
		}
	}
	
	if (formId!='data_form')
		showContactTimer(); // quickly begin the load bar
	//success.style.display = 'none'; // hide the success bar (incase this is a multi-email
	
	// convert (&, +, =) to string equivs. Needed so URL encoded POST won't choke.
	var str1 = posName.value;
	str1 = str1.replace(/&/g,"**am**");
	str1 = str1.replace(/=/g,"**eq**");
	str1 = str1.replace(/\+/g,"**pl**");
	var str2 = posEmail.value;
	str2 = str2.replace(/&/g,"**am**");
	str2 = str2.replace(/=/g,"**eq**");
	str2 = str2.replace(/\+/g,"**pl**");
	var str3 = posFamily.value;
	str3 = str3.replace(/&/g,"**am**");
	str3 = str3.replace(/=/g,"**eq**");
	str3 = str3.replace(/\+/g,"**pl**");
	var str5 = posTel.value;
	str5 = str5.replace(/&/g,"**am**");
	str5 = str5.replace(/=/g,"**eq**");
	str5 = str5.replace(/\+/g,"**pl**");
	var str6 = posFax.value;
	str6 = str6.replace(/&/g,"**am**");
	str6 = str6.replace(/=/g,"**eq**");
	str6 = str6.replace(/\+/g,"**pl**");
	var str7 = posAdresse.value;
	str7 = str7.replace(/&/g,"**am**");
	str7 = str7.replace(/=/g,"**eq**");
	str7 = str7.replace(/\+/g,"**pl**");
	
	var stuff;
	if (formId!='data_form') {
		var str4 = posText.value;
		str4 = str4.replace(/&/g,"**am**");
		str4 = str4.replace(/=/g,"**eq**");
		str4 = str4.replace(/\+/g,"**pl**");
		var str8 = pays+"-"+posCap.value+" "+posVille.value;
		str8 = str8.replace(/&/g,"**am**");
		str8 = str8.replace(/=/g,"**eq**");
		str8 = str8.replace(/\+/g,"**pl**");
		
		stuff = "posName="+str1+"&posFamily="+str3+"&posEmail="+str2+"&posRegard="+posRegard.value+"&posText="+str4+"&posTel="+str5+
					"&posFax="+str6+"&posAdresse="+str7+"&posLoc="+str8+"&recon="+recon+"&cat="+$('catalogue').checked+"&tg="+$('test').checked;
	} else {
		// DATA stuff
		var str9 = posCap.value;
		str9 = str9.replace(/&/g,"**am**");
		str9 = str9.replace(/=/g,"**eq**");
		str9 = str9.replace(/\+/g,"**pl**");
		
		var str10 = posVille.value;
		str10 = str10.replace(/&/g,"**am**");
		str10 = str10.replace(/=/g,"**eq**");
		str10 = str10.replace(/\+/g,"**pl**");
		
		stuff = "posCmd="+posCmd+"&posName="+str1+"&posFamily="+str3+"&posEmail="+str2+"&posTel="+str5+
					"&posFax="+str6+"&posAdresse="+str7+"&posCap="+str9+"&posPays="+pays+"&posVille="+str10+"&posPay="+payMode+"&l="+lang;
		
		var steps=$('stepsImg');
		steps.src=stepImgBasePath+"cmd_step3.gif";
	}
				
	loadXMLPosDoc(page, stuff);
}
function showContactTimer () {
	var cont=$('form_container');
	var success=$('success_container');
	cont.style.border='none';
	if (TCopen)
		cont.style.height='570px';
	else
		cont.style.height='480px';
	cont.morph('height:90px; background-image:url(http://www.scoobike.ch/images/letter_icon.gif); background-repeat:none;', { duration:2.0});
	var pulse=$('pulsing_wait');
	success.style.display='block';
	success.pulsate();
}

var formId;
var stepImgBasePath;
var lang;
function setFormName(n, l) {
	formId=n;
	lang=l;
	stepImgBasePath='http://www.scoobike.ch/languages/'+lang+'/images/';
}

function ajaxContact() {
	if (!formId) {
		formId='contact_form';
	}
	var frmEl = $(formId);
	addEvent(frmEl, 'submit', validateFields, false);
	frmEl.onsubmit = function() { return false; }
}
addEvent(window, 'load',ajaxContact, false);

///////
/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 9;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	var bracket=3
	strPhone=trim(strPhone)
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
function validatePhoneFax(wht){
	var Phone=wht;
	var ok=$(wht.name+'ok');
	var nope=$(wht.name+'nope');
	var par=$('par'+wht.name);
	
	if ((Phone.value==null)||(Phone.value=="")){
		ok.style.display="none";
		nope.style.color="#FF0000";
		nope.style.display="inline";
		try {
			par.disabled="disabled";
			if (par.checked) par.checked='';
		} catch(e) {}
		return false
	}
	if (checkInternationalPhone(Phone.value)==false){
		ok.style.display="none";
		nope.style.color="#FF0000";
		nope.style.display="inline";
		try {
			par.disabled="disabled";
			if (par.checked) par.checked='';
		} catch(e) {}
		return false
	}
	
	ok.style.display="inline";
	nope.style.display="none";
	try { par.disabled=""; } catch(e) {}
	return true
 }
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}

function validateEmail(){
	var emailID=$('email');
	var ok=$('emailok');
	var nope=$('emailnope');
	var par=$('paremail');
	
	if ((emailID.value==null)||(emailID.value=="")){
		ok.style.display="none";
		nope.style.color="#FF0000";
		nope.style.display="inline";
		try {
			par.disabled="disabled";
			if (par.checked) par.checked='';
		} catch(e) {}
		return false
	}
	if (echeck(emailID.value)==false){
		ok.style.display="none";
		nope.style.color="#FF0000";
		nope.style.display="inline";
		try {
			par.disabled="disabled";
			if (par.checked) par.checked='';
		} catch(e) {}
		return false
	}
	ok.style.display="inline";
	nope.style.display="none";
	try { par.disabled=""; } catch(e) {}
	return true
 }