// JavaScript Document for Quelle
// Version : 0.1
// Authors : François OLIVIER


function toLowerCase(input){
	$(input).val($(input).val().toLowerCase());
}

function toUpperCase(input){
	$(input).val($(input).val().toUpperCase());
}

function verif_login(){
	var idlogin = document.getElementById('login');
	var idpass = document.getElementById('pass');
	var idlogin_c = document.getElementById('login_c');
	var pass_c = document.getElementById('pass_c');

	if(idpass.value=='Votre mot de passe')idpass.value=''; 
	if(idlogin.value=='Votre adresse e-mail')idlogin.value='';
	
	if(verfi_vide(idlogin.value)){
		if(idlogin_c!=null && idlogin_c!='') idlogin.value=idlogin_c.value;
		if(pass_c!=null && pass_c!='') idpass.value=pass_c.value;
	}
	
	if ((verfi_vide(idlogin) || verfi_vide(idpass.value))){
		lightbox('lb3');
		return false;
	}
	else{	 
		LoginProceed();
		return false;
	}
}

function conrol_password(email){
	if(verif_email(email)){
		password(email);
	}else{
		alert("Email invalide");
	}
}
function verif_email(email){
	indexPoint = email.lastIndexOf(".");
	indexArro = email.indexOf("@");
	if(indexPoint>=0 && indexArro>=0 && indexArro < indexPoint){
		return true;	
	}else{
		return false;
	}
}

function verif_numerique(variable){
	var exp = new RegExp("^[0-9]+$","g");
	return exp.test(variable);
}



function verfi_vide(variable){
	if(variable==null || variable=='') return true;
	else return false;
}

function verifDate(date){
	var date_s = date.value;
	var exp = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$","g");
	if(!exp.test(date_s)){
		alert("date invalide");
		return false;
	}
	return true;
}

function verifMontant(montant){
	var montant_s = montant.value;
	var exp = new RegExp("^[0-9]{1,5},[0-9]{2}$","g");
	var exp2 = new RegExp("^[0-9]{1,5}$","g");
	if(!exp.test(montant_s) && !exp2.test(montant_s)){
		alert("montant invalide");
		return false;
	}
	return true;
}

function addOption(selectId,value){
	var selectElm = document.getElementById(selectId);
	var optAdd = document.createElement('option');
	optAdd.text = value;
	optAdd.value = value;

    try {
    	selectElm.add(optAdd,null); 
    }
    catch(ex) {
    	selectElm.add(optAdd,1);
    }
}
function setModifAdresse(){
	if(document.getElementById("modif_a")!=null)
		document.getElementById("modif_a").value="1";
}



function showToolTip(sText, e) {
    var oSpan = document.getElementById("toolTip_a" );
    oSpan.innerHTML = sText;
    oSpan.style.left = (e.clientX) + "px";
    oSpan.style.top = (e.clientY) + "px";
    oSpan.style.display = "inline";
};

function hideToolTip(e) {
    var oSpan = document.getElementById("toolTip_a" );
    oSpan.style.display = "none";
};


/**
 * Méthode de vérification des champs en fonction de leur class
 * 
 */
function tunnelVerifAllChamp(idDiv){
	result = true;

	$(idDiv+" .msgErr").remove();

	// Vérification de la validité d'un champ
	$(idDiv+" .required").each(function(){
		if($(this).val() == ""){
			result = false;
			$(this).after("<a class='msgErr'><br/> Ce champ est obligatoire. </a>");
		}
	});

	// Vérification que le champ est bien au format numéric
	$(idDiv+" .numeric").each(function(){
		if($(this).val() != "" && isNaN(this.value)){
			result = false;
			$(this).after("<a class='msgErr'><br/> Ce champ n'est pas un numérique. </a>");	
		}
	});
	
	// Vérification du format date
	$(idDiv+" .date").each(function(){
		
		reg =  new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{2}$","g");

		if($(this).val() != "" && reg.test(this.value)==0){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le format de la date soit être au format jj/mm/aa </a>");	
		}
	});
	
	// Vérification du format d'un montant
	$(idDiv+" .montant").each(function(){
		
		var exp = new RegExp("^[0-9]{1,5},[0-9]{2}$","g");
		var exp2 = new RegExp("^[0-9]{1,5}$","g");

		if($(this).val() != "" && !exp.test($(this).val()) && !exp2.test($(this).val())){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le format du montant doit être xxx,xx</a>");	
		}
	});	
	
	// Vérification de la validité d'un mail
	$(idDiv+" .mail").each(function(){
		exp = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
		reg = new RegExp(exp);

		if($(this).val() != "" && reg.test(this.value)==0){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le format de l'adresse mail est invalide. </a>");	
		}
	});

	// Vérification de la validité du mot de passe
	$(idDiv+" .password").each(function(){
		if($(this).val()!= "" && $(this).val().length < 6){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le mot de passe doit faire plus de 6 caractères. </a>");	
		}
	});

	// Vérification de la validité du numero de carte bleu num_cb
	$(idDiv+" .num_cb").each(function(){

		if($(this).val()!= "" && $(this).val().length != 16){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le numero de carte bleu doit faire 16 chiffres. </a>");	
		}
	});

	// Vérification de la validité de la carte privilege quelle
	$(idDiv+" .num_cpq").each(function(){
		if($(this).val()!= "" && $(this).val().length != 1){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le numero de Carte Privilège Quelle La Source doit faire 15 chiffres au moins. </a>");	
		}
	});

	// Vérification de la validité du cryptogramme
	$(idDiv+" .crypto").each(function(){
		if($(this).val()!= "" && $(this).val().length != 3){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le cryptogramme se compose de 3 chiffres. </a>");	
		}
	});
	
	// Vérification de la validité du numéro de telephone
	$(idDiv+" .telephone").each(function(){
		exp = "^0[1-99]([0-9]{2}){4}$";
		reg = new RegExp(exp);
		if($(this).val() != "" && reg.test(this.value)==0){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le téléphone saisi n'est pas correct. </a>");	
		}
	});
	
	
	
	$(idDiv+" .code_postal").each(function(){
		if($(this).val().length != 5  ){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le code postal n'est pas correct, celui-ci doit comporter 5 chiffres</a>");	
		}
	});
	
	// Vérification de la validité du code postal hors dom
	$(idDiv+" .code_postal_non_dom").each(function(){
		if($(this).val().length != 5 || (parseInt($(this).val())>97000 && parseInt($(this).val())!=98000 )){
			$(this).after("<a class='msgErr'><br/> Le code postal n'est pas correct, celui-ci doit comporter 5 chiffres et ne doit pas faire partie des Départements d'Outre Mer</a>");
			result = false;
		}
	});
	
	// Vérification de la validité du code potal dom
	$(idDiv+" .code_postal_dom").each(function(){
		if($(this).val().length != 5 || (parseInt($(this).val())<=97000 || parseInt($(this).val())>=98000 )  ){
			result = false;
			$(this).after("<a class='msgErr'><br/> Le code postal n'est pas correct, celui-ci doit comporter 5 chiffres et doit faire partie des Départements d'Outre Mer</a>");	
		}
	});

	// Vérification que le champ est bien une chaine standard
	$(idDiv+" .standardCh").each(function(){
		
		expAccent = "";
		for(i=192; i<=255; i++)
		{
			expAccent+= Chr(i);
		}
		expAccent+= '-';

		exp = "^([a-zA-Z "+ expAccent +"])*$";
		
		reg = new RegExp(exp);

		if( $(this).val() == "" || (reg.test($(this).val())==0) ){
			result = false;
			$(this).after("<a class='msgErr'><br/>Certain caractères ne sont pas valides</a>");	
		}
	});

	// Vérification de l'égalité de deux champs
	val="";
	newVal="";
	$(idDiv+" .same").each(function(){

		newVal = $(this).val();
		if(val!="" && val != newVal ){
			result = false;
			$(this).after("<a class='msgErr'><br/> Ce champ n'est pas identique au précédent. </a>");	
		}
		val = newVal;
	});

	return result;

}


/**
 * Méthode de vérification des champs en fonction de leur class
 * 
 */

function tunnelVerifChamp(champ){
	var valide = true
	$(".msgErr").remove();

	varClass = $(champ).attr("");
	// Vérification de la validité d'un champ
	if($(champ).hasClass("required")){
		if($(champ).val() == ""){
			//$(champ).after("<a class='msgErr'><br/> Ce champ est obligatoire. </a>");
			valide = false;
		}	
	}

	// On met les champ ayant pour classe toLowerCase en minuscule
	if($(champ).hasClass("toLowerCase")){
		toLowerCase(champ);
	}
	
	// On met les champs ayant pour classe toUpperCase en majuscule
	if($(champ).hasClass("toUpperCase")){
		toUpperCase(champ);
	}
	
	// Vérification que le champ est bien au format numéric
	if($(champ).hasClass("numeric")){
		if($(champ).val() != "" && isNaN($(champ).val())){
			valide = false;
			
		}
	}
	
	// Vérification du format date
	if($(champ).hasClass("date")){
		reg =  new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{2}$","g");
		
		if($(champ).val() != "" && reg.test($(champ).val())==0){
			valide = false;
		}
	}
	
	// Vérification du format d'un montant
	if($(champ).hasClass("montant")){
		var exp = new RegExp("^[0-9]{1,5},[0-9]{2}$","g");
		var exp2 = new RegExp("^[0-9]{1,5}$","g");
		
		if($(champ).val() != "" && !exp.test($(champ).val()) && !exp2.test($(champ).val())){
			valide = false;
		}
	}
	
	

	// Vérification de la validité d'un mail
	if($(champ).hasClass("mail")){
		exp = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
		reg = new RegExp(exp);
		toLowerCase(champ);
		
		if($(champ).val() != "" && reg.test(champ.value)==0){
			valide = false;
			//$(champ).after("<a class='msgErr'><br/> Le format de l'adresse mail est invalide. </a>");	
		} else {
			Ajax_Call("/VAD/NomDomain?champ="+champ.id+"&email="+$(champ).val());
		}
	}

	// Vérification de la validité du mot de passe
	if($(champ).hasClass("password")){
		if($(champ).val() != "" && $(champ).val().length < 6){
			valide = false;
			//$(champ).after("<a class='msgErr'><br/> Le mot de passe doit faire plus de 6 caractères. </a>");	
		}
	}

	// Vérification de la validité du numero de carte bleu
	if($(champ).hasClass("num_cb")){
		if($(champ).val() != "" && $(champ).val().length != 16){
			valide = false;
			//$(champ).after("<a class='msgErr'><br/> Le numero de Carte Bleu doit faire 16 chiffres. </a>");	
		}
	}

	// Vérification de la validité du numero de carte privilège
	if($(champ).hasClass("num_cpq")){
		if($(champ).val() != "" && $(champ).val().length < 15){
			valide = false;
			//$(champ).after("<a class='msgErr'><br/> Le numero de Carte Privilège Quelle doit faire 17 chiffres. </a>");	
		}
	}

	// Vérification de la validité du cryptogramme
	if($(champ).hasClass("crypto")){
		if($(champ).val() != "" && $(champ).val().length != 3){
			valide = false;
			//$(champ).after("<a class='msgErr'><br/> Le cryptogramme soit faire 3 chiffres. </a>");	
		}
	}
	
	// Vérification de la validité du numéro de telephone
	if($(champ).hasClass("telephone")){
		exp = "^0[1-99]([0-9]{2}){4}$";
		reg = new RegExp(exp);
		if($(champ).val() != "" && reg.test(champ.value)==0){
		//if($(champ).val() != "" && $(champ).val().length < 10){
			valide = false;
			
		}
	}
	
	// Vérification de la validité du code postal
	if($(champ).hasClass("code_postal")){
		if($(champ).val() != "" && $(champ).val().length != 5){
			
			
			valide = false;	
		}
	}
	
	if($(champ).hasClass("code_postal_non_dom")){
		if($(champ).val().length != 5 || parseInt($(champ).val())>97000 && parseInt($(champ).val())!=98000  ){
			valide = false;	
		}
	}
	
	
	// Vérification de la validité du code potal dom
	if($(champ).hasClass("code_postal_dom")){
		if($(champ).val().length != 5 || (parseInt($(champ).val())<=97000 || parseInt($(champ).val())>=98000 )  ){
			valide = false;	
		}
	}
	
	// Vérification que le champ est bien une chaine standard
	if($(champ).hasClass("standardCh")){
		expAccent = "";
		for(i=192; i<=255; i++)
		{
			expAccent+= Chr(i);
		}
		expAccent+= '-';
		exp = "^([a-zA-Z "+ expAccent +"])*$";
		
		reg = new RegExp(exp);

		if( $(champ).val() == "" || (reg.test($(champ).val())==0) )
			valide = false;	
	}
	
	
	
	
	

	// Suppression de l'image suiavnt le champs
	var next = $(champ).next();
	if(next.hasClass("droite")){
		next.remove();
	}
	
	// Affichage de l'image 
	if(valide){
		$(champ).after("<img src='/VAD/res/quelle/images/quelle/icon_ok.gif' class='droite' />");
	}else{
		$(champ).after("<img src='/VAD/res/quelle/images/quelle/icon_ko.gif' class='droite' />");
	}
	afficheBoutonValidation();
	
	return valide;
	
}



