/*---------------------------------------------
Cacher afficher dans un input
---------------------------------------------*/

function clearInput(thisId, valDefault) {
		if (thisId.value == valDefault) {thisId.value=''};
}

function fillInput(thisId, valDefault) {
		if (thisId.value == '') {thisId.value=valDefault};
}

/*---------------------------------------------
function isValidEmail(strEmail)
---------------------------------------------*/
function isValidEmail(strEmail) {
	if (!/^[\.\w-_]+@[\.\w-_]+\.\w{2,4}$/g.test(strEmail))
		return true;
	else
		return false;
}

var tempo = new Array();
var max_mois = new Array();
for (n=1;n<100;n++) {
	if (n==4 || n==6 || n==9 || n==11) max_mois[n] = 30;
	else max_mois[n] = 31;
}


function CheckDate(quoi,p_jour,p_mois,p_an) {
	// Gestion des heures/Minutes/secondes 
	ArQuoi = quoi.split(' ');
	// -----------------------------------
	quoi = ArQuoi[0];
	//quoi = quoi.replace(/-/g,'/');
	tempo = quoi.split('/');
	if (tempo.length < 3)	return false;
	
	if(isNaN(tempo[(p_jour-1)])) 	return false;
	if(isNaN(tempo[(p_mois-1)])) 	return false;
	if(isNaN(tempo[(p_an-1)])) 	return false;
	
	jour = eval(tempo[(p_jour-1)]);
	mois = eval(tempo[(p_mois-1)]);
	an = eval(tempo[(p_an-1)]);
	if (bisx(an)) max_mois[2] = 29;
	else  max_mois[2] = 28;
	t_tempo = (jour<=max_mois[mois] && mois<=12 && mois>=1);
	return t_tempo;
}

function bisx(quoi) {
	if ((quoi % 100 == 0) && (quoi % 400 == 0)) return true;
	else if ((quoi % 4) == 0) return true;
	return false;
}

function ComparerDates(LeParam1,LeParam2){
    // Compare 2 dates au format jj/mm/aaaa
    // Renvoye 0 si égalité, 1 si la première est supérieure, sinon 2
    
    //var LeParam1 = DateAnglaise(LeParam1,"/");// Ne pas oublier d'utiliser cette fonction
    // pour convertir en date anglaise, sinon le 05/07/2003 sera compris "7 mai 2003" par JavaScript
    
    //var LeParam2 = DateAnglaise(LeParam2,"/");
    LeParam1 = Date.parse(LeParam1);
    LeParam2 = Date.parse(LeParam2);
    
    if (LeParam1 == LeParam2) { 
    return 0;
    }
    
    if (LeParam1 > LeParam2){
    return 1;
    }else{
    return 2;
    }
  }

function checkForm(oForm) {
   
	var msgAlert = 'Erreur sur les champs suivants :\n\n';
    var msgtxt = ' est vide  !\n';
    var msgtxtEmail = ' n\'est pas valide \n';
    var msgtxtPwdidem = ' n\'est identique à la confirmation \n';
    var msgtxtNonumeric = 'n\'est pas de type numerique \n';
    var attributeMandatory = 'MANDATORY';
    var attributeName = 'REALNAME';
    var attributeGood = 'GOODFORMAT';
    var attributeType = 'DATATYPE';
    var status = true;
  
    var len = oForm.elements.length;var va='';
    for(var i=0;i<len;i++) {
	  if (null != oForm.elements[i].getAttribute(attributeMandatory)) {
 		switch (oForm.elements[i].getAttribute(attributeType)) {
			case 'EMAIL' :
				if (!/^[\.\w-_]+@[\.\w-_]+\.\w{2,3}$/g.test(oForm.elements[i].value)) {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtEmail;status = false;}
			break;
			case 'DATE' :
				if ( ! CheckDate(oForm.elements[i].value, 1, 2, 3))  {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtEmail;status = false;}
			break;
			case 'SAME' :
				if (oForm.elements[i].value != oForm.elements[i+1].value) {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtPwdidem;status = false;}
			break;	
			case 'NUMERIC' :
				if (isNaN(oForm.elements[i].value)) {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtNonumeric;status = false;}
			break;	
			case 'SELECT' :
				if (oForm.elements[i].options[oForm.elements[i].selectedIndex].value=='' || oForm.elements[i].options[oForm.elements[i].selectedIndex].value=='NULL') {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxt;status = false;}
			break;
			default :
				if (trim(oForm.elements[i].value)=='') {
					msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxt;
					status = false;
				}
			break;
        }
      }else{
        if (null != oForm.elements[i].getAttribute(attributeGood)) {
	        switch (oForm.elements[i].getAttribute(attributeType)) {
	        case 'EMAIL' :
	            if ((!/^[\.\w-_]+@[\.\w-_]+\.\w{2,3}$/g.test(oForm.elements[i].value))&& (oForm.elements[i].value!='')){msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtEmail;status = false;}
			break;
			case 'DATE' :
				if (( ! CheckDate(oForm.elements[i].value, 1, 2, 3))&&(oForm.elements[i].value != ''))  {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtEmail;status = false;}
			break;
			case 'NUMERIC' :
				if (isNaN(oForm.elements[i].value)) {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxtNonumeric;status = false;}
			break;	
	        case 'SELECT' :
	            if (oForm.elements[i].options[oForm.elements[i].selectedIndex].value=='' || oForm.elements[i].options[oForm.elements[i].selectedIndex].value=='NULL') {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxt;status = false;}
			break;
	        default :
	            if (trim(oForm.elements[i].value)=='') {msgAlert = msgAlert + '- ' + oForm.elements[i].getAttribute(attributeName)+msgtxt;status = false;}break;
	        }
	   }        
     }
    }

	if(!status){alert(msgAlert);}
 		return status;    
    
}

/*---------------------------------------------
function trim(string)
---------------------------------------------*/

function trim(string) 
{ 
return string.replace(/(^\s*)|(\s*$)/g,''); 
} 
