var XMLHttpArray = [
        function() {return new XMLHttpRequest()},
        function() {return new ActiveXObject("Msxml2.XMLHTTP")},
        function() {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject(){
        var xmlhttp = false;
        for(var i=0; i<XMLHttpArray.length; i++){
                try{
                        xmlhttp = XMLHttpArray[i]();
                }catch(e){
                        continue;
                }
                break;
        }
        return xmlhttp;
}

function AjaxRequest(url,callback,method){
	var rnd = Math.random();
	var name = escape(document.getElementById("name").value);
	var email = escape(document.getElementById("email").value);
	var subject = escape(document.getElementById("subject").value);
        var to = escape(document.getElementById("to").value);
	var body = escape(document.getElementById("body").value);
        var recaptchach = escape(document.getElementById("recaptcha_challenge_field").value);
        var recaptcharesp = escape(document.getElementById("recaptcha_response_field").value);
        var tel = escape(document.getElementById("tel").value);
	var contactme = escape(document.getElementById("contactme").checked);

        var req = createXMLHTTPObject();
        req.onreadystatechange= function(){
                if(req.readyState != 4) return;
                if(req.status != 200) return;
                callback(req);
        }
        req.open(method,url);
        req.setRequestHeader('User-Agent', 'XMLHTTP Agent');
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send('name='+name+'&email='+email+'&subject='+subject+'&body='+body+'&rnd='+rnd+"&to="+to+"&recaptcha_challenge_field="+recaptchach+"&recaptcha_response_field="+recaptcharesp+"&tel="+tel+"&contactme="+contactme);
}

function AjaxResponse(req){
        var resp=req.responseText;
	switch(resp) {
		case "\nCAPTCHA_NOK" :
			Recaptcha.reload();
			alert("Les mots que vous avez entrez ne correspondent pas avec ceux de l'image.\nMerci de reessayer.");
			document.getElementById("submit").disabled = false;
			document.getElementById("submit").value='Envoyer';		
			break;
		case "\nOK" :
			document.getElementById("contact_us").style.display = "none";
	//		parent.document.getElementById("blockrandom").style.height = "300px";
			document.getElementById("email_status").style.display = "";
			document.getElementById("email_status").innerHTML = "Merci pour votre message, nous vous répondrons dans les plus brefs délais.";
			break;
		case "\nNOK" :
		default :  
			document.getElementById("submit").disabled = true;
			alert("Une erreur est survenue. Veuillez reessayer plus tard.");
			break;
	}
}

function check_values() {
	var valid = '';
	
	var name = document.getElementById("name").value;
	var email = document.getElementById("email").value;
	var subject = document.getElementById("subject").value;
        var body = document.getElementById("to").value;
	var body = document.getElementById("body").value;
	if(trim(name) == "" ||
		trim(email) == "" ||
		trim(subject) == "" ||
		trim(body) == "") {
			alert("Veuillez renseigner tous les champs SVP.");
	} else {
		if(isEmail(email)) {
			document.getElementById("submit").disabled = true;
			document.getElementById("submit").value = 'Veuillez patienter...';
			AjaxRequest("/contact_us/contact.php", AjaxResponse, "POST");
		} else {
			alert("Votre email semble incorrect.\nMerci de le vérifier.");
			document.getElementById("email").focus();
			document.getElementById("email").select();
		}
	}
}


function trim(a) {
	a = a.replace(/^s*(S*(s+S+)*)s*$/, "$1");
	return a;
}

function isEmail(a) {
   return (a.indexOf(".") > 0) && (a.indexOf("@") > 0);
}


function textLimit(field, maxlen) {
	if (field.value.length > maxlen)
		alert('Vous avez atteint la taille limite de votre message.');
	if (field.value.length > maxlen)
		field.value = field.value.substring(0, maxlen);
} 
