function validate()
{
	// Validation du user input
	if (checkField('firstName') == false)
	{ return false; }

	if (checkField('lastName') == false)
	{ return false;	}

	if (checkField('phone') == false)
	{ return false;	}

	if (checkEmail('email') == false)
	{ return false;	}

	// on fait le submit ici apres la validation AJAX du code
	if (checkCaptcha('code') == false)
	{ return false;	}
}

function displayErrMsg(type)
{
		var msg = document.getElementById("formMsg");
		if (type == "text")
		{
			msg.innerHTML = document.getElementById("msgmandatory").value;
		}
		else if (type == "captcha")
		{
			msg.innerHTML = document.getElementById("msgcaptcha").value;
		}
		else
		{
			msg.innerHTML = document.getElementById("msgemail").value;
		}
}

function checkField(field)
{
	var fieldObj = document.getElementById(field);
	if ( fieldObj.value == null || fieldObj.value.length == 0 )
	{
		displayErrMsg('text');
		fieldObj.focus();
		fieldObj.select();
		return false;
	}
	return true;
}

function checkEmail(field)
{
	//var objRegExp  = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
	var objRegExp  = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;;

	if (checkField(field) == false)
	{ return false; }
	
	var email = document.getElementById(field);

	//check for valid email
	if (objRegExp.test(email.value) == false)
	{
		displayErrMsg('email');
		email.focus();
		email.select();
		return false;
	}
	// tout est OK !
	return true;
}

function changeCaptcha()
{
	document.getElementById('captcha').src = '/common/antispam.php?time=' +  new Date ().getSeconds ();
}

////////////////////////////////////////
// Verification du Captcha avec AJAX
////////////////////////////////////////

var url = '/common/antispam-check.php?code=';
var captchaOK = 2;
// 2 - not yet checked, 1 - correct, 0 - failed

function getHTTPObject()
{
    try
    {
        req = new XMLHttpRequest();
    }
    catch (err1)
    {
        try
        {
            req = new ActiveXObject("Msxml12.XMLHTTP");
        }
        catch (err2)
        {
            try
            {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (err3)
            {
                req = false;
            }
        }
    }
    return req;
}

var http = getHTTPObject();

function handleHttpResponse()
{
    if (http.readyState == 4)
    {
        captchaOK = http.responseText;
        if(captchaOK != 1)
        {
			displayErrMsg('captcha');
            document.getElementById('code').value="";
			changeCaptcha();
            document.getElementById('code').focus();
            return false;
        }
        document.getElementById('form').submit();
    }
}

function checkCode(field,img)
{
	http.open("GET", url + escape(document.getElementById(field).value), true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);
}

function checkCaptcha(field)
{
	if ( checkField(field) == false )
	{ return false;	}
	
	checkCode(field,'captcha');
}
