// JavaScript Document

function aff(id){
  if(document.getElementById(id))
    document.getElementById(id).style.display="block";
}

function cache(id){
  if(document.getElementById(id))
    document.getElementById(id).style.display="none";
}

//preload d'image
var tabPre=new Array()
function prechargimg() {
  var doc=document;
  if(doc.images){
    if(!doc.precharg)
      doc.precharg=new Array();
    var i,j=doc.precharg.length;
    var x=tabPre;
    for(i=0; i<x.length; i++){
      if (x[i].indexOf("#")!=0){
        doc.precharg[j]=new Image;
        doc.precharg[j++].src=x[i];
      }
    }
  }
}

var anLa="";
var id=0;
/* Boucle de vérification de la largeur tapée*/
function verifAv(){
  if(document.getElementById('largAvan').largeur.value!=anLa){
    anLa=document.getElementById('largAvan').largeur.value;
    calcAv();
    calcPrixAv();
  }
  setTimeout("verifAv();",100);
}

/* Calcul des avancée disponibles*/
function calcAv(){
  if(document.getElementById('largAvan').largeur.value=='')
    var lg=0;
  else
    var lg=document.getElementById('largAvan').largeur.value;
  
  if(lg>=100){
    //on parcours tout le tableau de largeur pour chercher la bonne ligne
    var trouve=false;
    var min=9999;
    var max=-1;
    for(var cpt=0;cpt<tabLa.length;cpt++){
      //on recherche min et max
      if(tabLa[cpt]!=0 && tabLa[cpt]<min)
        min=tabLa[cpt];
      if(tabLa[cpt]>max)
        max=tabLa[cpt];
        
      if(parseFloat(lg)>=parseFloat(tabLa[cpt]))
        id=tabLa[cpt];
    }

    //on a notre identifiant donc on recherche à cette ligne là ce qu'il faut garder ou non
    for(var i=0;i<tabAv.length;i++){
      //on recherche si on est dans la limite
      if(tabLA[id][tabAv[i]]=='0'){
        //on invalide
        document.getElementById("ch"+tabAv[i]).disabled = true;
        document.getElementById("av"+tabAv[i]).className="off";
         if(document.getElementById('largAvan').av.length)
           document.getElementById('largAvan').av[i].checked=false;
         else
            document.getElementById('largAvan').av.checked=false;
      }else{
        //on valide
        document.getElementById("ch"+tabAv[i]).disabled = false;
        document.getElementById("av"+tabAv[i]).className="on";
        trouve=true;
      }
    }
    
    //on est hors limite
    if(!trouve)
      wErreur('Vous devez saisir une valeur entre '+min+" et "+(max-1),"erreur");
  }else{

    for(var i=0;i<tabAv.length;i++){
      //on invalide
      document.getElementById("ch"+tabAv[i]).disabled = true;
      document.getElementById("av"+tabAv[i]).className="off";
      if(document.getElementById('largAvan').av.length)
         document.getElementById('largAvan').av[i].checked=false;
      else
         document.getElementById('largAvan').av.checked=false;
    }
  }
}


/* Calcul du prix en fonction de l'avancée*/
function calcPrixAv(){
  var lg=id;
  var av=0;
  
  if(document.getElementById('largAvan').av.length){  	
   for(var i=0;i<document.getElementById('largAvan').av.length;i++){
     if(document.getElementById('largAvan').av[i].checked)
       av=document.getElementById('largAvan').av[i].value;
   }
  }else{
     if(document.getElementById('largAvan').av.checked)
       av=document.getElementById('largAvan').av.value;
  }
  if(lg==0 || av==0)
    document.getElementById('prixEC').innerHTML="0 &euro;";
  else
    document.getElementById('prixEC').innerHTML=Math.floor(parseFloat(tabLA[lg][av]))+" &euro;";
}

function calcPrixDim(id){
   if(!tabPrix[id])
      document.getElementById('prixEC').innerHTML="0 &euro;";
   else{
      var tabVal = id.split('_');
      document.getElementById('largeur').value = tabVal[0];
      document.getElementById('avancee').value = tabVal[1];
      document.getElementById('hauteur').value = tabVal[2];
      document.getElementById('prixEC').innerHTML=Math.floor(parseFloat(tabPrix[id]))+" &euro;";
   }
}

/* Calcul du prix en fonction du diamètre*/
function calcPrixDiam(){
  var av=0;
  for(var i=0;i<document.getElementById('largAvan').larg.length;i++){
    if(document.getElementById('largAvan').larg[i].checked)
      av=document.getElementById('largAvan').larg[i].value;
  }
  if(av==0)
    document.getElementById('prixEC').innerHTML="0 &euro;";
  else
    document.getElementById('prixEC').innerHTML=Math.floor(parseFloat(tabLA[av]))+" &euro;";
}

/* Calcul du prix en fonction de l'avancée*/
var lamb=0;
var supPlafond=0;
var piedJardin=0;
var laquage=0;
var auvent=0;
var coulisse=0;
var scellement=0;
var motorisation=0;
var automatisme=0;
var telPatio=0;
var socle=0;
var housse=0;
var eclairage=0;
var volant=0;
var moteurSecours=0;
var toileEnr=0;
var pitonBetonManille=0;
var pitonBoisManille=0;
var pitonBetonRidoir=0;
var pitonBoisRidoir=0;
var pitonBetonPoulie=0;
var pitonBoisPoulie=0;
var matSangle150=0;
var matSangle200=0;
var matSangle300=0;
var matPoulie150=0;
var matPoulie200=0;
var matPoulie300=0;
function calcPrixOption(){
  var prixFin=parseFloat(prixBase)+parseInt(lamb)+parseInt(supPlafond)+parseInt(piedJardin)+parseInt(laquage)+parseInt(auvent)+parseInt(coulisse)+parseInt(scellement)+parseInt(motorisation)+parseInt(automatisme)+parseInt(telPatio)+parseInt(socle)+parseInt(housse)+parseInt(eclairage)+parseInt(volant)+parseInt(moteurSecours)+parseInt(toileEnr)+parseInt(pitonBetonManille)+parseInt(pitonBoisManille)+parseInt(pitonBetonRidoir)+parseInt(pitonBoisRidoir)+parseInt(pitonBetonPoulie)+parseInt(pitonBoisPoulie)+parseInt(matSangle150)+parseInt(matSangle200)+parseInt(matSangle300)+parseInt(matPoulie150)+parseInt(matPoulie200)+parseInt(matPoulie300);
 
  document.getElementById('prixEC').innerHTML=prixFin+" &euro;";
  document.forms.recOpt.prixFinal.value=prixFin;  
}



var tabRef=new Array();
var tabTh=new Array();
var tabZoom=new Array();
var tabPrix=new Array();
/* Voir la toile appliquée sur un store*/
/*function viewTh(ref){
  if(document.getElementById("zoom")!="undefined" && tabTh[ref]!=undefined)
    document.getElementById("zoom").innerHTML="<a href='#'  onclick=\"var nw=window.open('inc/agr.php?ref="+ref+"','agr','width=500,height=500');nw.focus();\"><img src='"+tabTh[ref]+"'/></a>";
  else
    document.getElementById("zoom").innerHTML="";
  document.getElementById("prixEC").innerHTML=tabPrix[ref]+" &euro;";
  document.getElementById("ref_toile").value=ref;
  document.getElementById("prixFin").value=tabPrix[ref];
  //on parcourt tous les refs pour changer le style des images
  for(var i=0;i<tabRef.length;i++){
    if(tabRef[i]==ref)
      document.getElementById("toi"+tabRef[i]).style.backgroundColor="#FBECD6";    
    else
      document.getElementById("toi"+tabRef[i]).style.backgroundColor="#FFFFFF";
  }
}*/

function viewTh(ref){
  document.getElementById("zoom").style.visibility="visible";
  document.getElementById("imZoom").src=tabTh[ref];
}

function selTh(ref){
  document.getElementById("prixEC").innerHTML=Math.floor(tabPrix[ref])+" &euro;";
  document.getElementById("ref_toile").value=ref;
  document.getElementById("prixFin").value=Math.floor(tabPrix[ref]);
  //on parcourt tous les refs pour changer le style des images
  for(var i=0;i<tabRef.length;i++){
    if(tabRef[i]==ref)
      document.getElementById("toi"+tabRef[i]).style.backgroundColor="#FBECD6";    
    else
      document.getElementById("toi"+tabRef[i]).style.backgroundColor="#FFFFFF";
  }
}

function hideTh(){
  document.getElementById("zoom").style.visibility="hidden";
}

/* Validation de formulaire*/
function valideFormInsc(nomForm,sub){
  /*
    nomForm   : nom du formulaire
    sub       : indique s'il faut soumettre le formulaire ou non
    nomC     : nom de champ
    typeD     : type de demande
      - nnc champ nécessaire
      - ve  email valide
      - nf  pas la première option
      - ch  checké obligatoirement
      - vd  date valide
      - mi  minimum de check pour un tableau de résultat
      - ma  maximum de check pour un tableau de résultat
      - test  test libre
     mess     : message de d'erreur 
  */
  var form=document.getElementById(nomForm);
  if(form!=undefined){
    var messErr="Les erreurs suivantes sont survenues :\n";
    var messE="";
    for(var i=2;i<arguments.length;i+=3){
      var nomC=arguments[i];
      if(form[nomC]!=undefined){
        var typeC=form[nomC].type;
        var typeD=arguments[(i+1)];
        var tabD=typeD.split(" ");
        var mess=arguments[(i+2)];
        
        switch(tabD[0]){
          case "nnc":{
            if((typeC=="text" || typeC=="textarea" || typeC=="hidden") && form[nomC].value=="")
              messE+="\t- "+mess+"\n";
          }break;
          case "ve":{
            if(typeC=="text"){
              var erreur=false;
              
              pos=form[nomC].value.indexOf("@")
              if(pos<2)
                erreur=true;
              
              pos2=form[nomC].value.lastIndexOf(".")
              if(pos2<5 || (pos2+2)>(form[nomC].value.length-1))
                erreur=true;
              
              if(erreur)
                messE+="\t- "+mess+"\n";
            }
          }break;
          case "nf":{
            if(typeC=="select-one" && form[nomC][0].selected)
              messE+="\t- "+mess+"\n";
          }break;
          case "vd":{
            var erreur=false;
            tab=form[nomC].value.split("/");
            //on regarde si le dernier élèment est l'année sur 4 chiffres
            if(tab[(tab.length-1)].length!=4)
              erreur=true;
            else{
              //on parcourt tous les élèments du tableau pour vérifier leur validité, dabord s'ils sont entier puis s'ils sont valide
              if((tab.length==2 && (isNaN(tab[0]) || isNaN(tab[1]))) || (tab.length==3 && (isNaN(tab[0]) || isNaN(tab[1]) || isNaN(tab[1]))))
                erreur=true
              else{
                lst30=new Array(4,6,9,11);
                switch(tab.length){
                  case 2:{  //format mm/aaaa
                    if(tab[0]>12)
                      erreur=true;
                  }break;
                  case 3:{  //format jj/mm/aaaa
                    //on regarde le nombre de jour dans le mois correspondant
                    if(tab[0]>31 || (tab[1]==2 && tab[0]>29))
                      erreur=true;
                    else{
                      //on parcourt le tableau des mois à 30 jours
                      for(var cpt =0; cpt<lst30.length; cpt++){
                        if(lst30[cpt]==tab[1] && tab[0]>30)
                          erreur=true;
                      }
                    }
                  }break;
                  default:{
                    erreur=true;
                  }break;
                }
              }
            }
            
            if(erreur)
                messE+="\t- "+mess+"\n";
          }break;
          case "ch":{
            if(!form[nomC].checked)
              messE+="\t- "+mess+"\n";
          }break;
          case "mi":{
            var cpt=0;
            if(form[nomC].length){
               for(var j=0;j<form[nomC].length;j++){
                  if(form[nomC][j].checked)
                    cpt++;
                }	
            }else{
              if(form[nomC].checked)
               cpt++;
            }

            if(cpt<tabD[1])
              messE+="\t- "+mess+"\n";
          }break;
          case "ma":{
            var cpt=0;
            for(var j=0;j<form[nomC].length;j++){
              if(form[nomC][j].checked)
                cpt++;
            }
            if(cpt>tabD[1])
              messE+="\t- "+mess+"\n";
          }break;
          case "sup":{
            if(form[nomC].value<tabD[1])
              messE+="\t- "+mess+"\n";
          }break;
          case "inf":{
            if(form[nomC].value>tabD[1])
              messE+="\t- "+mess+"\n";
          }break;
        }
      }
    }
    if(messE!=""){
      if(document.getElementById("wErr")){
        //c'est un message au format HTML donc on change les \n en <br>
        messErr=messErr.replace("\n","<br />");
        messErr="<h4>"+messErr+"</h4>";
        while(messE.search("\n")!=-1 || messE.search("\t")!=-1){
          messE=messE.replace("\t","&nbsp;&nbsp;&nbsp;");
          messE=messE.replace("\n","<br />");
        }
        wErreur(messE,"erreur",false);
        //wErreur(messErr+messE,"erreur",false);
      }else
        alert(messErr+messE);
      return false;
    }else{
      if(sub)
        form.submit();
      return true;
    }
  }else{
    return true
  }
}
