/* File name: form.js
   Author	: David Matthey 
   Purpose	: Validate a form 
   Date		: 28.11.2009 
*/

var errorColor="#F2959A";

function validateForm(form){
	var reason=""

	with(form)
	{
		reason+=validateTextFieldNotEmpty(surname);
		reason+=validateTextFieldNotEmpty(name);
		reason+=validateRadioButtons(gender);
		reason+=validateTextFieldNotEmpty(address);
		reason+=validateZip(zip);
		reason+=validateTextFieldNotEmpty(city);
		reason+=validateEmail(email);
	}

	if(reason!=""){
		alert("Certains champs ne sont pas corrects: \n\n" + reason);
		return false;
	}
	return true;
}

function validateTextFieldNotEmpty(field, fieldName){
	with (field)
	  {
	  if (value.length==0)
	 	{
		changeBackgroundColor(field, errorColor);
	    return "Le champ "+fieldName+" est vide.\n";
	    }
	  }
	 changeBackgroundColor(field, "White");
	 return "";
}

function validateRadioButtons(field, fieldName){
	if(field[0].checked==false && field[1].checked==false){
		return "Le champ " + fieldName + " n'est pas spécifié.\n";
	}
	return "";
}

function validateZip(field, fieldName){
with (field)
  {
	var re = new RegExp("^[0-9]{4}$");
	if (value.match(re)) {
		 	changeBackgroundColor(field, "White");
		    return "";
		} else {
		    changeBackgroundColor(field, errorColor);
		    return "Le "+fieldName+" spécifié n'est pas valide.\n";
		 }
	}
}

function validateEmail(field)
{
with (field)
  {
  apos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (apos<1||dotpos-apos<2)
    {
	changeBackgroundColor(field, errorColor);
	return "L'adresse email spécifiée n'est pas valide";
	}
	changeBackgroundColor(field, "White");
  	return "";
  }
}

function changeBackgroundColor(field, color){
	field.style.background=color;
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}