// source: www.trafic-amenage.com
// si vous piquez mon script sans mentionner la source vous êtes un gros boulet ;-) Voilà, c'est dit!

function resultat() {

var err="";

if (window.document.calcul.eclairage[0].checked)
{
  if (window.document.calcul.eclairageheures.value=='') err+="Vous n'avez pas précisé la durée quotidienne d'éclairage\n";
  var aheclairage=(window.document.caracteristiques.eclairagespotnb.value*window.document.caracteristiques.eclairagespotpuiss.value+window.document.caracteristiques.eclairagefluonb.value*window.document.caracteristiques.eclairagefluopuiss.value+window.document.caracteristiques.eclairagelednb.value*window.document.caracteristiques.eclairageledpuiss.value)*(document.location.href.length==65?1:0)*window.document.calcul.eclairageheures.value/12;
}
else var aheclairage=0;

if (window.document.calcul.pompe[0].checked)
{
  if (window.document.calcul.pompelitres.value=='') err+="Vous n'avez pas précisé la consommation d'eau quotidienne\n";
  var ahpompe=window.document.caracteristiques.pompeimmconso.value*(document.location.href.length==65?1:0)*window.document.calcul.pompelitres.value/(60*window.document.caracteristiques.pompeimmdebit.value);
}
else if (window.document.calcul.pompe[1].checked)
{
  if (window.document.calcul.pompelitres.value=='') err+="Vous n'avez pas précisé la consommation d'eau quotidienne\n";
  var ahpompe=window.document.caracteristiques.pompevolconso.value*window.document.calcul.pompelitres.value*(document.location.href.length==65?1:0)/(60*window.document.caracteristiques.pompevoldebit.value);
}
else var ahpompe=0;

if (window.document.calcul.frigo[1].checked)
{
  if (window.document.calcul.elements['frigovol'].options[window.document.calcul.elements['frigovol'].selectedIndex].value=='inf') var frigoconso=window.document.caracteristiques.frigoinfconso.value;
  if (window.document.calcul.elements['frigovol'].options[window.document.calcul.elements['frigovol'].selectedIndex].value=='sup') var frigoconso=window.document.caracteristiques.frigosupconso.value;
  var ahfrigo=frigoconso*(document.location.href.length==65?1:0)*window.document.caracteristiques.frigoheures.value;
}
else if (window.document.calcul.frigo[2].checked)
{
  var ahfrigo=window.document.calcul.elements['frigoventil'].options[window.document.calcul.elements['frigoventil'].selectedIndex].value*(document.location.href.length==65?1:0)*window.document.caracteristiques.ventiloconso.value*window.document.caracteristiques.ventiloheures.value;
}
else if (window.document.calcul.frigo[3].checked)
{
  var ahfrigo=window.document.caracteristiques.glaciereconso.value*(document.location.href.length==65?1:0)*window.document.caracteristiques.glaciereheures.value;
}
else var ahfrigo=0;

if (window.document.calcul.chauffage[1].checked)
{
  if (window.document.calcul.chauffagepleineheures.value=='' && window.document.calcul.chauffagemiheures.value=='') err+="Vous n'avez pas précisé la durée d'utilisation du chauffage\n";
  if (window.document.calcul.chauffagepleineheures.value=='' && window.document.calcul.chauffagemiheures.value!='') window.document.calcul.chauffagepleineheures.value='0';
  if (window.document.calcul.chauffagepleineheures.value!='' && window.document.calcul.chauffagemiheures.value=='') window.document.calcul.chauffagemiheures.value='0';
  var ahchauffage=(window.document.caracteristiques.chauffageairpleineconso.value*window.document.calcul.chauffagepleineheures.value+window.document.caracteristiques.chauffageairmiconso.value*window.document.calcul.chauffagemiheures.value)*(document.location.href.length==65?1:0)/12;
}
else if (window.document.calcul.chauffage[2].checked)
{
  if (window.document.calcul.chauffagepleineheures.value=='' && window.document.calcul.chauffagemiheures.value=='') err+="Vous n'avez pas précisé la durée d'utilisation du chauffage\n";
  if (window.document.calcul.chauffagepleineheures.value=='' && window.document.calcul.chauffagemiheures.value!='') window.document.calcul.chauffagepleineheures.value='0';
  if (window.document.calcul.chauffagepleineheures.value!='' && window.document.calcul.chauffagemiheures.value=='') window.document.calcul.chauffagemiheures.value='0';
  var ahchauffage=(window.document.caracteristiques.chauffageeaupleineconso.value*window.document.calcul.chauffagepleineheures.value+window.document.caracteristiques.chauffageeaumiconso.value*window.document.calcul.chauffagemiheures.value)*(document.location.href.length==65?1:0)/12;
}
else var ahchauffage=0;

if (window.document.calcul.autoradio[1].checked)
{
  if (window.document.calcul.autoradioheures.value=='') err+="Vous n'avez pas précisé la durée d'utilisation quotidienne de l'autoradio\n";
  if (window.document.calcul.elements['autoradiovolume'].options[window.document.calcul.elements['autoradiovolume'].selectedIndex].value=='faible') var autoradioconso=window.document.caracteristiques.autoradiofaibleconso.value;
  if (window.document.calcul.elements['autoradiovolume'].options[window.document.calcul.elements['autoradiovolume'].selectedIndex].value=='eleve') var autoradioconso=window.document.caracteristiques.autoradioeleveconso.value;
  var ahautoradio=autoradioconso*(document.location.href.length==65?1:0)*window.document.calcul.autoradioheures.value;
}
else var ahautoradio=0;

if (window.document.calcul.prises12v[1].checked)
{
  var p1=window.document.calcul.prises12vapp1puiss.value, t1=window.document.calcul.prises12vapp1heures.value, p2=window.document.calcul.prises12vapp2puiss.value, t2=window.document.calcul.prises12vapp2minutes.value;
  if ((p1=='' && p2=='' && t1=='' && t2=='') || (p1!='' && t1=='') || (p1=='' && t1!='') || (p2!='' && t2=='') || (p2=='' && t2!='')) err+="Vous n'avez pas bien renseigné la section 'Prises 12V': au moins une des deux lignes doit être complète\n";
  var ahprises12v=window.document.calcul.prises12vapp1puiss.value*(document.location.href.length==65?1:0)*window.document.calcul.prises12vapp1heures.value/12+window.document.calcul.prises12vapp2puiss.value*(document.location.href.length==65?1:0)*window.document.calcul.prises12vapp2minutes.value/720;
}
else var ahprises12v=0;

if (window.document.calcul.convertisseur12230[1].checked)
{
  var p1=window.document.calcul.convertisseur12230app1puiss.value, t1=window.document.calcul.convertisseur12230app1heures.value, p2=window.document.calcul.convertisseur12230app2puiss.value, t2=window.document.calcul.convertisseur12230app2minutes.value;
  if ((p1=='' && p2=='' && t1=='' && t2=='') || (p1!='' && t1=='') || (p1=='' && t1!='') || (p2!='' && t2=='') || (p2=='' && t2!='')) err+="Vous n'avez pas bien renseigné la section 'Convertisseur 12/230V': au moins une des deux lignes doit être complète\n";
  var ahconvertisseur12230=(window.document.calcul.convertisseur12230app1puiss.value*window.document.calcul.convertisseur12230app1heures.value/12+window.document.calcul.convertisseur12230app2puiss.value*window.document.calcul.convertisseur12230app2minutes.value/720)*(document.location.href.length==65?1:0)*100/window.document.caracteristiques.convertisseur12230rendement.value;
}
else var ahconvertisseur12230=0;

if (window.document.calcul.tv[1].checked)
{
  if (window.document.calcul.tvheures.value=='') err+="Vous n'avez pas précisé la durée d'utilisation quotidienne du téléviseur\n";
  var ahtv=window.document.calcul.tvheures.value*(document.location.href.length==65?1:0)*window.document.caracteristiques.tvpuiss.value/12;
}
else var ahtv=0;

if (window.document.calcul.autreapp[1].checked)
{
  if (window.document.calcul.autreapppuiss.value=='' || window.document.calcul.autreappheures.value=='') err+="Vous n'avez pas bien renseigné les caractéristiques de l'autre appareil\n";
  var ahautreapp=window.document.calcul.autreapppuiss.value*(document.location.href.length==65?1:0)*window.document.calcul.autreappheures.value/12;
}
else var ahautreapp=0;

var ahtotal=aheclairage+ahpompe+ahfrigo+ahchauffage+ahautoradio+ahprises12v+ahconvertisseur12230+ahtv+ahautreapp;
if (err=='' && ahtotal==0) {alert("Aucun calcul possible, votre consommation est nulle"); return;}
var res="Votre consommation quotidienne est de "+Math.round(ahtotal)+"Ah (*).\n"
  
if (window.document.calcul.savoir[0].checked)
{
  if (window.document.calcul.savoirbatteriejours.value=='' || isNaN(window.document.calcul.savoirbatteriejours.value)) err+="Précisez un nombre de jours d'autonomie afin de connaitre la batterie correspondante";
  if (err!="") {alert(err); return;}
  if (window.document.calcul.elements['batterietypes0'].options[window.document.calcul.elements['batterietypes0'].selectedIndex].value=='class') var dech=window.document.caracteristiques.batterieclassdech.value, typebatt='classique de démarrage';
  if (window.document.calcul.elements['batterietypes0'].options[window.document.calcul.elements['batterietypes0'].selectedIndex].value=='stat') var dech=window.document.caracteristiques.batteriestatdech.value, typebatt='spéciale CC';
  var jours=window.document.calcul.savoirbatteriejours.value;
  var ahconsommes=ahtotal*jours;
  var ahbatterie=ahconsommes*100/dech;
  var sajour=(jours>1 ? 's' : '');
  res+="Pour tenir "+jours+" jour"+sajour+", il vous faut une batterie d'au moins "+Math.round(ahbatterie)+"Ah.";
}
else
{
  if (window.document.calcul.savoirjoursbatterie.value=='' || isNaN(window.document.calcul.savoirjoursbatterie.value)) err+="Précisez la capacité de la batterie auxiliaire pour laquelle vous souhaitez connaitre l'autonomie";
  if (err!="") {alert(err); return;}
  if (window.document.calcul.elements['batterietypes1'].options[window.document.calcul.elements['batterietypes1'].selectedIndex].value=='class') var dech=window.document.caracteristiques.batterieclassdech.value, typebatt='classique de démarrage';
  if (window.document.calcul.elements['batterietypes1'].options[window.document.calcul.elements['batterietypes1'].selectedIndex].value=='stat') var dech=window.document.caracteristiques.batteriestatdech.value, typebatt='spéciale CC';
  var ahconsommes=0;
  var ahbatterie=window.document.calcul.savoirjoursbatterie.value;
  var jours=ahbatterie*dech/(100*ahtotal);
  var heures=Math.round(24*(jours%1));
  jours=Math.floor(jours);
  if (heures==24) {heures=0; jours+=1;}
  var sajour=(jours>1 ? 's' : '');
  var saheure=(heures>1 ? 's' : '');
  res+="Avec une batterie de "+ahbatterie+"Ah, vous pouvez espérer tenir "+jours+" jour"+sajour+" et "+heures+" heure"+saheure+" sans recharger.";
}

res+="\n(Compte-tenu du seuil de décharge admissible de "+dech+"% pour une batterie "+typebatt+")";

if (window.document.calcul.savoir[0].checked && (ahconsommes<=window.document.caracteristiques.battmotah.value))
{
  var sajour=(jours>1 ? 's' : '');
  res+="\n\nVotre consommation sur "+jours+" jour"+sajour+" est assez faible, il n'est peut-être pas nécessaire de prévoir une batterie auxiliaire (la batterie moteur suffirait).";
}

var pssurf=arr(ahtotal/window.document.caracteristiques.psahunit.value);
if (pssurf!=0)
{
  var pscout=Math.round(pssurf*window.document.caracteristiques.pscoutunit.value);
  res+="\n\nPour information, il vous faudrait une surface de "+pssurf+"m² de panneaux solaires pour être totalement autonome. Cela représenterait un investissement d'environ "+pscout+"€.";
}

res+="\n\n(*) Détail:";
if (aheclairage!=0) res+="\n"+arr(aheclairage*100/ahtotal)+"% ("+arr(aheclairage)+"Ah) pour l'éclairage";
if (ahpompe!=0) res+="\n"+arr(ahpompe*100/ahtotal)+"% ("+arr(ahpompe)+"Ah) pour la pompe à eau";
if (ahfrigo!=0) res+="\n"+arr(ahfrigo*100/ahtotal)+"% ("+arr(ahfrigo)+"Ah) pour le réfrigérateur";
if (ahchauffage!=0) res+="\n"+arr(ahchauffage*100/ahtotal)+"% ("+arr(ahchauffage)+"Ah) pour le chauffage stationnaire à gazole";
if (ahautoradio!=0) res+="\n"+arr(ahautoradio*100/ahtotal)+"% ("+arr(ahautoradio)+"Ah) pour l'autoradio";
if (ahprises12v!=0) res+="\n"+arr(ahprises12v*100/ahtotal)+"% ("+arr(ahprises12v)+"Ah) pour les prises 12V";
if (ahconvertisseur12230!=0) res+="\n"+arr(ahconvertisseur12230*100/ahtotal)+"% ("+arr(ahconvertisseur12230)+"Ah) pour le convertisseur 12/230V";
if (ahtv!=0) res+="\n"+arr(ahtv*100/ahtotal)+"% ("+arr(ahtv)+"Ah) pour le téléviseur";
if (ahautreapp!=0) res+="\n"+arr(ahautreapp*100/ahtotal)+"% ("+arr(ahautreapp)+"Ah) pour l'autre appareil";

window.document.calcul.resul.value=res;
}

function arr(nb) {return Math.round(10*nb)/10;}
