function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

function onItemCheck(item) {
  var en = item.checked;
  var item = item.getAttribute("item");
  var elements = getElementsByAttribute(document.documentElement, "*", "item", item);
  for (var i=0;i<elements.length;i++) {
    var node = elements[i];
    if (node.getAttribute("class") != "itemcheck") {
      if (en)
        node.removeAttribute("disabled");
      else
        node.setAttribute("disabled", "true");
    }
  }
}

function initList() {
  var checkboxes = getElementsByAttribute(document.documentElement, "input", "class", "itemcheck");
  for (var i=0;i<checkboxes.length;i++) {
    onItemCheck(checkboxes[i]);
  }
}

function checkNumeric(field, keyword) {
  if (isNaN(field.value) ||
      field.value == 0) {
    field.focus();
    alert("Veuillez entrer un " + keyword + " valide");
    return false;
  }
  return true;
}

function calculateTotal() {
  var tdmnumber = parseInt(getElementsByAttribute(document.documentElement, "input", "name", "tdmnumber")[0].value);
  var bctdmnumber = parseInt(getElementsByAttribute(document.documentElement, "input", "name", "bctdmnumber")[0].value);
  var bctdmvdonumber = parseInt(getElementsByAttribute(document.documentElement, "input", "name", "bctdmvdonumber")[0].value);
  var initnumber = parseInt(getElementsByAttribute(document.documentElement, "input", "name", "initnumber")[0].value);
  var pacnumber = parseInt(getElementsByAttribute(document.documentElement, "input", "name", "pacnumber")[0].value);
  var tdmcheck = document.getElementById("tdmcheck").checked;
  var bctdmcheck = document.getElementById("bctdmcheck").checked;
  var bctdmvdocheck = document.getElementById("bctdmvdocheck").checked;
  var initcheck = document.getElementById("initcheck").checked;
  var paccheck = document.getElementById("paccheck").checked;
  var coupon = document.getElementById("reduc").value;
  if (!tdmcheck) tdmnumber = 0;
  if (!bctdmcheck) bctdmnumber = 0;
  if (!bctdmvdocheck) bctdmvdonumber = 0;
  if (!initcheck) initnumber = 0;
  if (!paccheck) pacnumber = 0;
  var total;
  if (coupon && coupon != "") 
    total = parseInt(coupon, 10); 
  else
    total = tdmnumber * 240 + bctdmnumber * 320 + bctdmvdonumber * 350 + initnumber * 360 + pacnumber * 1110; 
  document.getElementById("montant").setAttribute("value", total);
  if (!tdmcheck && !bctdmcheck && !bctdmvdocheck && !initcheck && !paccheck)
    return 0;
  return total;
}

function checkMandatory(oForm) {
  sAlert1 = "Valeur de champ manquante ";
  sAlert2 = "Adresse électronique non valide ";
  if (oForm.nom.value == "") {
    oForm.nom.focus();
    alert(sAlert1 + "'Nom'");
    return (false);
  }
  if (oForm.prenom.value == "") {
    oForm.prenom.focus();
    alert(sAlert1 + "'Prénom'");
    return (false);
  }
  if (oForm.tel.value == "") {
    oForm.tel.focus();
    alert(sAlert1 + "'Téléphone'");
    return (false);
  }
  if (oForm.mail.value == "" || oForm.mail.value.indexOf ('@', 0) < 1 || oForm.mail.value.indexOf ('.', 0) < 1) {
    oForm.mail.focus();
    alert(sAlert2 + "'e-mail'");
    return (false);
  }
  if (oForm.poids.value == "") {
    oForm.poids.focus();
    alert(sAlert1 + "'Poids'");
    return (false);
  }
  if (oForm.age.value == "") {
    oForm.age.focus();
    alert(sAlert1 + "'Age'");
    return (false);
  }
  if (oForm.cheque.checked == false && oForm.cb.checked == false) {
    oForm.cheque.focus();
    alert(sAlert1 + "'Règlement'");
    return (false);
  }
    if (oForm.email.checked == false && oForm.courrier.checked == false && oForm.both.checked == false) {
    oForm.email.focus();
    alert(sAlert1 + "'Mode d envoi'");
    return (false);
  }
  if (oForm.oui.checked == false) {
    alert("Avant de continuer, merci d\'accepter les conditions affichées.");
    return (false);
  }
  return (true);
}

function checkForm(form) {
  if (!checkMandatory(form)) return false;
  if (!checkNumeric(document.getElementById("cp"), "code postal")) return false;
  var i = 1;
  var textFields = getElementsByAttribute(document.documentElement, "input", "class", "itemnumber");
  for (var i=0;i<textFields.length;i++) {
    if (!checkNumeric(textFields[i], "nombre")) return false;
  }
  calculateTotal()
  if (calculateTotal() == 0) {
    alert("Votre panier est vide");
    return false;
  }
  return true;
}

