function init() {

	/* Instructions requises pour l'étape 1 et 2 
	//Masque les message d'aide */
	var i, collId;
    collId = document.getElementsByTagName("P");
	for (i = 0; i<collId.length; i++) {
		if (/^txtAide/.exec(collId[i].id)) {
			collId[i].style.display = 'none';
        }
	}
	
	/* Instructions requises pour l'étape 1 */
	if (document.description && document.description.poids) {
		var curElement = document.description.poids;
		if (document.description.destination.options[document.description.destination.options.selectedIndex].value.split('|')[8] == "2") {
			for (i=(curElement.options.length-1); i>=0; i--) 
				if (parseInt(curElement.options[i].value.split('-')[0]) >= 2000) curElement.remove(i);
		}
		if (parseInt(document.description.poids.options[document.description.poids.options.selectedIndex].value.split('-')[1]) > 2000) {
			document.description.emballage[1].checked = true;
			document.getElementById("embal").style.display = "none";
		}
	}
	
	/* Instructions requises pour l'étape 2 */
	if (document.options) {
		var curForm = document.options;
		if (curForm.vd && curForm.vd.checked != true) curForm.montantVd.disabled = true;
		if (curForm.crbt && curForm.crbt.checked != true) {
			curForm.montantCrbt.disabled = true;
			for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = true;
		}
	}
}

/* Fonctions requises pour l'étape 1 et 2 
// Affiche les message d'aide */
function displayHelp(e) {
     /* Event handling code adapted from http://www.quirksmode.org/js/events_properties.html */
     if (typeof e == 'undefined') {
         var e = window.event;
     }
     var source;
     if (typeof e.target != 'undefined') {
         source = e.target;
     } else if (typeof e.srcElement != 'undefined') {
         source = e.srcElement;
     } else {
         return true;
     }
     /* For most browsers, targ would now be a link element; Safari
        however returns a text node so we need to check the node
        type to make sure
     if (source.nodeType == 3) {
         source = source.parentNode;
     } */
	 if (source.tagName != "A") {
         source = source.parentNode;
     }
     if (source.tagName == "A") {
		 var id = source.href.split('#a')[1];
	     var elem = document.getElementById("txtA"+id);
	
	     if (elem.style.display != 'none') {
	         elem.style.display = 'none';
	     } else {
	         elem.style.display = 'block';
	     }
	     return false;
	 } else return true;
}

/* Fonctions requises pour l'étape 1 */
function checkWeightValue() {
	// si la tranche de poids est supérieure à 2 kg, pas d'affranchissement possible.
	var curElement = document.description.poids;
	var curOption = curElement.options[curElement.options.selectedIndex].value;
	if (parseInt(curOption.split('-')[1]) > 2000) {
		document.description.emballage[1].checked = true;
		document.getElementById("embal").style.display = "none";
	} else {
		document.getElementById("embal").style.display = "block";
	}
}

function checkPoids() {
	// si le pays le permet, ajout de deux tranches de poids supplémentaires
	var curElement = document.description.poids;
	var curOption = document.description.destination.options[document.description.destination.options.selectedIndex].value;
	if (curOption.split('|')[8] == "2") {
		for (i=(curElement.options.length-1); i>=0; i--) 
			if (parseInt(curElement.options[i].value.split('-')[0]) >= 2000) curElement.remove(i);
		checkWeightValue();
	} else {
		if (curElement.options[curElement.options.length-1].value.split('-')[1] != "3000") {
			curElement.options[curElement.options.length] = new Option("2001-3000","2001-3000");
			//curElement.options[curElement.options.length] = new Option("2501-3000","2501-3000");
		}
	}
}

/* Fonctions requises pour l'étape 2 */
function checkCompatibilities(curOption) {
	var curForm = document.options;
	if (curOption.name == "aucun") {
		if (curOption.checked) {
			curForm.reco.checked = false;
			curForm.ar.checked = false;
			if (curForm.eda) curForm.eda.checked = false;
			if (curForm.vd) {
				curForm.vd.checked = false;
				curForm.montantVd.value = "";
				curForm.montantVd.disabled = true;
			}
			if (curForm.crbt) {
				curForm.crbt.checked = false;
				curForm.montantCrbt.value = "";
				curForm.montantCrbt.disabled = true;
				for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = true;
			}
		} else {
			curOption.checked = true;
		}
	}
	if (curOption.name == "reco") {
		if (curOption.checked) {
			curForm.aucun.checked = false;
			if (curForm.eda) curForm.eda.checked = false;
		} else {
			curForm.aucun.checked = true;
			curForm.ar.checked = false;
			if (curForm.vd) {
				curForm.vd.checked = false;
				curForm.montantVd.value = "";
				curForm.montantVd.disabled = true;
			}
			if (curForm.crbt) {
				curForm.crbt.checked = false;
				curForm.montantCrbt.value = "";
				curForm.montantCrbt.disabled = true;
				for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = true;
			}
		}
	}
	if (curOption.name == "ar" && curOption.checked) {
		curForm.reco.checked = true;
		curForm.aucun.checked = false;
		if (curForm.eda) curForm.eda.checked = false;
	}
	if (curOption.name == "crbt") {
		if (curOption.checked) {
			curForm.reco.checked = true;
			curForm.aucun.checked = false;
			if (curForm.eda) curForm.eda.checked = false;
			if (curForm.crbt) curForm.montantCrbt.disabled = false;
			if (curForm.crbt) for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = false;
		} else {
			if (curForm.crbt) curForm.montantCrbt.disabled = true;
			if (curForm.crbt) curForm.montantCrbt.value = "";
			if (curForm.crbt) for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = true;
		}
	}
	if (curOption.name == "vd") {
		if (curOption.checked) {
			curForm.reco.checked = true;
			curForm.aucun.checked = false;
			if (curForm.eda) curForm.eda.checked = false;
			if (curForm.vd) curForm.montantVd.disabled = false;
		} else {
			if (curForm.vd) curForm.montantVd.disabled = true;
			if (curForm.vd) curForm.montantVd.value = "";
		}
	}
	if (curOption.name == "eda") {
		if (curOption.checked) {
			curForm.reco.checked = false;
			curForm.ar.checked = false; 
			curForm.aucun.checked = false;
			if (curForm.vd) {
				curForm.vd.checked = false;
				curForm.montantVd.value = "";
				curForm.montantVd.disabled = true;
			}
			if (curForm.crbt) {
				curForm.crbt.checked = false;
				curForm.montantCrbt.value = "";
				curForm.montantCrbt.disabled = true;
				for (i=0; i<curForm.paiementCrbt.length; i++) curForm.paiementCrbt[i].disabled = true;
			}
		} else {
			curForm.aucun.checked = true;
		}
	}
}

function roundFloatNumber(val) {
  // Format to have only two decimal digits
  var temp =  Math.round(val * 100);
  temp = temp / 100;
  return temp;
}

function checkValue(curOption) {
	/*Fonction de contrôle à la perte du focus par le champ en cours d'utilisation
	//S'assure que la valeur du champ texte est un montant valide (valeur décimale).*/
	var curForm = document.options;
	if (curOption.value != "" && curOption.value.indexOf(",")) curOption.value = curOption.value.replace(/,/,".");

	if (curOption.value != "" && parseFloat(curOption.value)) {
		if (curOption.name == "montantVd" && (curOption.value>roundFloatNumber(vd_pays*dts))) {
			alert("Veuillez respecter la valeur maximale pour le montant de la Valeur déclarée.");
			curOption.value = "";
			curOption.focus();
		}
		if (curOption.name == "montantCrbt" && (curOption.value>roundFloatNumber(crbt_pays*dts))) {
			alert("Veuillez respecter la valeur maximale pour le montant du Contre remboursement.");
			curOption.value = "";
			curOption.focus();
		} 
	} else {
		if (curOption.name == "montantVd") alert("Merci de saisir une valeur numérique pour le montant de la Valeur déclarée.");
		curOption.value = "";
	}
}

function checkCoherence() {
	/*Fonction de contrôle à la soumission du formulaire
	//S'assure que le champ texte associé à certaines options est non vide si l'option est cochée.*/
	var curForm = document.options;
	var message = "";
	if (curForm.vd && curForm.vd.checked == true && curForm.montantVd.value == "") message += "Merci de saisir le montant de la Valeur déclarée\n";
	if (message != "") {
		alert(message);
		return false;
	} else return true;
}

onload=init;
document.onclick=displayHelp;
