
function checkEmail(email){   
    var verif = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$/
    if (email.length == 0){
        alert("Veuillez renseigner votre email.");
        return false;
    }
    if (verif.exec(email) == null)
    {
        alert("Veuillez renseigner une adresse e-mail valide.");
        return false;
    }
    else
    {
        return true;
    } 
}

function check_codepostal(txt, pays, type) {
	var valid = false;
    if (pays == id_france && txt.length==5) {
		xmlHttp=getXmlHttpRequest();
        xmlHttp.open('GET','/ajax/commune2.txt.vtl?codepostal='+txt+'&pays='+pays,false);
        xmlHttp.send(null);
		response = xmlHttp.responseText;
		if(parseInt(response) != 0) valid = true;
		var type2 = type == "expediteur" ? "expéditeur" : type;
		if(!valid) alert("Le code postal "+type2+" que vous avez indiqué est inconnu.\n\nAttention : pour les villes subdivisées en arrondissements, vous devez indiquer le code postal d'un arrondissement.\nExemples : 75001, 69001, 13001, ...");
	}
};

function hasRestriction(pz_id) {
	xmlHttp=getXmlHttpRequest();
	xmlHttp.open('GET','/ajax/restrictions.txt.vtl?pz_id='+pz_id,false);
	xmlHttp.send(null);
	var response = xmlHttp.responseText;
	if(parseInt(response) == 0)
		document.getElementById('restriction').style.display = "none";
	else
		document.getElementById('restriction').style.display = "inline";
}

// teste si un type d'objet est interdit pour le pays actuellement selectionne
// si l'objet est interdit on recoit en plus l'index du premier type de contenu valide
function changeListTypeObjet(pz_id)
{
	hasRestriction(pz_id);
	ChangeTypePliColis("");
};

function showRestrictions() {
	var spz = document.getElementById('pz_id');
	var pzid = spz.options[spz.selectedIndex].value;
	popup("/popup_restrictions.html?pzid="+pzid);
}



// called by popup_choix_commune.html
// type = 0 -> expediteur
// type = 1 -> destinataire
function setLocalization(cp, ville, type) {
	if(type == "0") {
		document.getElementById('codepostal_depart').value = cp;
//		document.getElementById('expville').innerHTML = "<input class=\"inplg\" name=\"expediteur.ville\" id=\"expediteurville\" type=\"text\" value=\""+ ville +"\"/>";
		// on ne veut pas que cet input soit editable
//		document.getElementById('expediteurville').readOnly = true;
	} else {
		document.getElementById('cp_dest').value = cp;
//		document.getElementById('nom_ville').innerHTML = "<input class=\"inplg\" name=\"destinataire.ville\" id=\"commune_dest\" type=\"text\" value=\""+ ville +"\"/>";
		// on ne veut pas que cet input soit editable
//		document.getElementById('commune_dest').readOnly = true;
	}
}

// Cette fonction sépare le code postal et la ville en 2 champs distincts dans le cas 
// où l'autocomplete a été disponible pour renseigner les informations.
function handleAutoComplete() {
    var pz_id = document.getElementById('pz_id').value;
    if (pz_id == "76" || pz_id == "7" || pz_id == "122" || pz_id == "145" || pz_id == "243") {
        var tableau_dest = document.getElementById("cp_dest").value.split(/ /);
        var ville_dest = document.getElementById("cp_dest").value.replace(/\d{5}/, "").replace(/^\s+/, "").replace(/\s+$/, "").replace(/  /, " ").replace(/[àâä]/gi,"a").replace(/[éèêë]/gi,"e").replace(/[îï]/gi,"i").replace(/[ôö]/gi,"o").replace(/[ùûü]/gi,"u").toUpperCase();

        if (ville_dest && ville_dest != "" && !isNaN(document.getElementById("cp_dest").value.substring(0,5)))
            document.getElementById("choix_ville_fr").innerHTML = "<input type='hidden' name='destinataire.ville' value='"+ville_dest+"'/>";
        for (var i = 0; i < tableau_dest.length; i++) {
            if (tableau_dest[i].match(/\d{5}/))
             document.getElementById("cp_dest").value = tableau_dest[i];
        }
    }
    if  (pz_id == "85" || pz_id == "93" || pz_id == "203" || pz_id == "148" || pz_id == "195" || pz_id == "201" || pz_id == "183" || pz_id == "168") {
        // Sur les pages de landing on ne gere pas actuellement les pbs de cp/ville 
        // et l'autocomplete n'est disponible que pour la France metropolitaine (76)
        if(document.getElementById("ville_dest")) {
            var ville_dest = document.getElementById("ville_dest").value.replace(/\d{5}/, "").replace(/^\s+/, "").replace(/\s+$/, "").replace(/  /, " ").replace(/[àâä]/gi,"a").replace(/[éèêë]/gi,"e").replace(/[îï]/gi,"i").replace(/[ôö]/gi,"o").replace(/[ùûü]/gi,"u").toUpperCase();
            var code_postal = document.getElementById("ville_dest").value.replace(/\D/gi, "");

            document.getElementById("cp_ville_dest").innerHTML = "<input type='hidden' name='destinataire.codepostal' value='"+code_postal+"'/>";
            if (ville_dest && ville_dest != "")
              document.getElementById("ville_dest").value = ville_dest;
        }
    }

	var tableau_exp = document.getElementById("codepostal_depart").value.split(/ /);
	var ville_exp = document.getElementById("codepostal_depart").value.replace(/\d{5}/, "").replace(/^\s+/, "").replace(/\s+$/, "").replace(/  /, " ").replace(/[àâä]/gi,"a").replace(/[éèêë]/gi,"e").replace(/[îï]/gi,"i").replace(/[ôö]/gi,"o").replace(/[ùûü]/gi,"u").toUpperCase();
    if (ville_exp && ville_exp != "" && !isNaN(document.getElementById("codepostal_depart").value.substring(0,5)))
		document.getElementById("choix_ville_exp").innerHTML = "<input type='hidden' name='expediteur.ville' value='"+ville_exp+"'/>";
        for (var j = 0; j < tableau_exp.length; j++) {
            if (tableau_exp[j].match(/\d{5}/))
             document.getElementById("codepostal_depart").value = tableau_exp[j];
	}
}

function checkAll() {
    // on gère l'éventuel autocomplete sur les champs de cp/ville
    handleAutoComplete();

	var sOption = document.getElementById('to_id').options[document.getElementById('to_id').selectedIndex];
	if(sOption.value == 0) {
		alert("Veuillez selectionner un type de contenu");
        document.getElementById("contenu_description").style.background = "yellow";
		return false;
	} else document.getElementById("contenu_description").style.background = "white";

    var emailIn = document.getElementById("email");
    if(emailIn) {
        var email = emailIn.value;
        if(email == "votre adresse email") email = "";
        if(email.length > 0 && !checkEmail(email)) {
            return false;
        }
    }

    // pour que l'anim continue a tourner, 2 hacks :
    // 1) pour firefox, on execute le submit sur un timeout
    // 2) pour i.e., on recharge l'image
    showAnim(true);
    setTimeout('document.envoi.submit(); document.anim.src = document.anim.src;',50);
    return false;
}


function init_radios(val) {
//    boldlabel(document.getElementById('radio_colis'));
    ChangeTypePliColis(val);
//    boldlabel(document.getElementById('envoi_collecte_particulier'));
//    boldlabel(document.getElementById('envoi_livraison_particulier'));
    checkUnitaire(document.getElementById('groupe_0_nb').value);
}

var nbGroupes = 1; // compteur pour les id des groupes
var nbDisplayed = 0; // nombre de groupes affiches

// Si l'utilisateur ajoute une ligne, on doit sauvegarder les valeurs qu'il a entrees
// sinon on perd ces informations en mettant a jour le innerHTML...
function saveValues() {
	var groupes = new Array();
	var size = 0; // index d'ajout
	for (var i = 1; i<nbGroupes; i++) {
		// verifie que le groupe existe bien et qu'il n'a pas ete supprime.
		if(document.getElementById("groupe"+i) && document.getElementById("groupe_"+i+"_nb")) {
			var listInfos = new Array();
			listInfos[0] = document.getElementById("groupe_"+i+"_nb").value;
			listInfos[1] = document.getElementById("poids_"+i).value;
			listInfos[2] = document.getElementById("longueur_"+i).value;
			listInfos[3] = document.getElementById("largeur_"+i).value;
			listInfos[4] = document.getElementById("hauteur_"+i).value;
			groupes[size] = listInfos;
			size++;
		}
	}
	return groupes;
}

function setValues(listValues) {
	var index = 0;
	for (var i = 1; i<nbGroupes; i++) {
		// verifie que le groupe existe bien et qu'il n'a pas ete supprime.
		if(document.getElementById("groupe"+i) && document.getElementById("groupe_"+i+"_nb")) {
			var listInfos = listValues[index];
			document.getElementById("groupe_"+i+"_nb").value = listInfos[0];
			document.getElementById("poids_"+i).value = listInfos[1];
			document.getElementById("longueur_"+i).value = listInfos[2];
			document.getElementById("largeur_"+i).value = listInfos[3];
			document.getElementById("hauteur_"+i).value = listInfos[4];
			index++;
		}
	}
	// hack IE, sinon quand on ajoute une ligne puis qu'on la supprime, la hauteur
	// du div 'div_groupage' est toujours prise en compte
	document.getElementById('div_groupage').style.display = "block";
}

// todo : finaliser
function addLine() {
	// on recupere l'info du type selectionne
	var obj = document.envoi.elements['type_envoi'].value;
	var pli = (obj == "Pli");
	var palette = (obj == "Palette");

	if(palette) {
		var hlabel = document.getElementById("label_hauteur");
		if(hlabel) {
			hlabel.style.left = "30px";
		}
	}
	xmlHttp=getXmlHttpRequest();
	xmlHttp.open('GET','/ajax/envoi_nombre.txt.vtl?nb='+nbGroupes+'&palette='+palette+'&pli='+pli,false);
	xmlHttp.send(null);
	var response = xmlHttp.responseText;
	var arrayValues = saveValues();
	document.getElementById('div_groupage').innerHTML += response;
	setValues(arrayValues);
	nbGroupes++;
	nbDisplayed++;

	// update changeTypePliColis
	ChangeTypePliColis(obj);

    checkUnitaire(2);

    return false;
}

function delLine(id) {
	var parent = document.getElementById(id);
	parent.parentNode.removeChild(parent);
	nbDisplayed--;
	// hack IE, sinon quand on ajoute une ligne puis qu'on la supprime, la hauteur
	// du div 'div_groupage' est toujours prise en compte
	if(nbDisplayed == 0) document.getElementById('div_groupage').style.display = "none";
	return false;
}

// on supprime dans les 2 listes
function delContact(id) {
	xmlHttp=getXmlHttpRequest();
	// expediteur
	xmlHttp.open('GET','/ajax/delete_contact.txt.vtl?id='+id+"&type=exp&screen=index",false);
	xmlHttp.send(null);
	document.getElementById('listexped').innerHTML = xmlHttp.responseText;
	// destinataire (on ne fait que rafraichir)
	xmlHttp.open('GET','/ajax/delete_contact.txt.vtl?type=dest&screen=index',false);
	xmlHttp.send(null);
	document.getElementById('listdest').innerHTML = xmlHttp.responseText;
}

function checkUnitaire(val) {
    if(val>1) {
        document.getElementById("unitaire1").style.display = "inline";
        document.getElementById("unitaire2").style.display = "inline";
    }
    // on ne cache pas, trop complique...
}


function checkCookie() {
	if (document.cookie.length == 0 || document.cookie.indexOf("JSESSIONID") == -1)
		alert("Afin de pouvoir utiliser le site, veuillez accepter les cookies.");
}
