function replaceSubstring(fromChar, toChar, fieldValue)  {
var entry = fieldValue;
var out = fromChar;
var add = toChar;
var temp = "" + entry;
     while (temp.indexOf(out) > -1) {
          pos= temp.indexOf(out);
          temp = "" + (temp.substring(0, pos) + add + temp.substring((pos + out.length), temp.length));
     }
  return temp;
}

function dureemois(DURan) {
   var DURmois;
   DURmois = DURan * 12;
   return DURmois;
}

function tauxmois(Ian) {
   var Imens;
   Imens = Math.pow((1+Ian),(1/12)) - 1;
   return Imens;
}

function capitalfin(VERSinit, VERSmens, DURan, Ian) {
   var Kfin;
   Kfin = (VERSinit * Math.pow((1 + (Ian/100)), DURan)) + (VERSmens * (1 + tauxmois(Ian/100)) * ((Math.pow(1 + tauxmois(Ian/100), dureemois(DURan) -1) - 1)/tauxmois(Ian/100)));
   return Kfin;
}

function versementinitial(VERSmens, DURan, Ian, Kfin) {
   var VERSinit;
   VERSinit = (Kfin - VERSmens * (1 + tauxmois(Ian/100)) * ((Math.pow(1 + tauxmois(Ian/100), dureemois(DURan) -1) - 1)/tauxmois(Ian/100))) * (1/(Math.pow(1 + (Ian/100), DURan)));
   return VERSinit;
}

function versementmensuel(VERSinit, DURan, Ian, Kfin) {
   var VERSmens;
   VERSmens = (Kfin - VERSinit * Math.pow(1 + (Ian/100), DURan)) * (tauxmois(Ian/100)/((1 + tauxmois(Ian/100)) * (Math.pow(1 + tauxmois(Ian/100), dureemois(DURan) - 1) - 1)));
   return VERSmens;
}

function duree(VERSinit, VERSmens, Ian, Kfin) {
   var KfinTmp = 0;
   var DURan = 0;
   for (DURan = 1; DURan < 60; DURan++) {
      KfinTmp = (VERSinit * Math.pow((1 + (Ian/100)), DURan)) + (VERSmens * (1 + tauxmois(Ian/100)) * ((Math.pow(1 + tauxmois(Ian/100), dureemois(DURan) -1) - 1)/tauxmois(Ian/100)));
      if (Math.round(KfinTmp) >= Kfin) {
         return DURan;
      }
   }
   DURan = 60;
   return DURan;
}

function getAction() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&typeaction=", 1);
   if (pos1 == -1) {
      return "1";
   } else {
      pos2 = query_string.indexOf("&", pos1+12);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var typeaction = query_string.substring(pos1+12, pos2);
      return typeaction;
   }
}

function eraseForm(form) {
   for(i = 0; i < (form.elements.length); i++) {
      if (form.elements[i].name != "typeaction") {
         form.elements[i].value = "";
      }
   }
}

function setURL(form) {
   var url = new String(window.location);
   var pos = url.lastIndexOf("?");
   var temp;
   var flag = 0;
   var firstaction = getAction();
   var currentaction = form.typeaction.value;
   var msg = "Les données que vous nous avez indiquées sont incomplètes et ne permettent pas d'effectuer le calcul.\nMerci de préciser :\n";
   if (pos != -1) {
      url = url.substring(0, url.lastIndexOf("?"));
   }
   url += "?OpenDocument";
   for(i = 0; i < (form.elements.length); i++) {
      temp = form.elements[i].value;
      temp = replaceSubstring("EUR", "", replaceSubstring("eur", "", replaceSubstring("EURO", "", replaceSubstring("euro", "", replaceSubstring("EUROS", "", replaceSubstring("euros", "", replaceSubstring("&#8364;", "", replaceSubstring("AN", "", replaceSubstring("an", "", replaceSubstring("ANS", "", replaceSubstring("ans", "", replaceSubstring("%", "", replaceSubstring(",", ".", replaceSubstring(" ", "", temp))))))))))))));
      if (temp == parseFloat(temp) && temp != "") {
         switch(form.elements[i].name) {
            case "Kfin" :
               temp = Math.round(temp);
               if (temp <= 0) {
                  alert("Merci de bien vouloir indiquer un montant supérieur à 0 pour votre capital souhaité.");
                  form.elements[i].select();
                  return;
               }
               if (temp > 10000000) {
                  alert("Merci de bien vouloir saisir un montant inférieur ou égal à 10 000 000 d'euros (10 millions).");
                  form.elements[i].select();
                  return;
               }
               break;
            case "VERSinit" :
               temp = Math.round(temp);
               if (temp <= 0) {
                  alert("Merci de bien vouloir indiquer un montant supérieur à 0 pour votre versement initial.");
                  form.elements[i].select();
                  return;
               }
               if (temp > 10000000) {
                  alert("Merci de bien vouloir saisir un montant inférieur ou égal à 10 000 000 d'euros (10 millions).");
                  form.elements[i].select();
                  return;
               }
               break;
            case "VERSmens" :
               temp = Math.round(temp);
               if (temp < 0 || temp > 10000000) {
                  alert("Merci de bien vouloir saisir un montant inférieur ou égal à 10 000 000 d'euros (10 millions).");
                  form.elements[i].select();
                  return;
               }
               break;
            case "Ian" :
               if (temp <= 0) {
                  alert("Merci de bien vouloir saisir un taux d'intérêt strictement positif et inférieur ou égal à 4 %.");
                  form.elements[i].select();
                  return;
               }
               if (temp > 4) {
                  alert("Merci de bien vouloir saisir un taux d'intérêt inférieur ou égal à 4 %.");
                  form.elements[i].select();
                  return;
               }
               break;
            case "DURan" :
               temp = Math.round(temp);
               if (temp <= 0) {
                  alert("Merci de bien vouloir saisir une durée strictement positive et inférieure ou égale à 60 ans.");
                  form.elements[i].select();
                  return;
               }
               if (temp > 60) {
                  alert("Merci de bien vouloir saisir une durée inférieure ou égale à 60 ans.");
                  form.elements[i].select();
                  return;
               }
               break;
            default  :
               temp = form.elements[i].value;
         }
         url += "&" + form.elements[i].name + "=" + temp;
      } else {
         switch(form.elements[i].name) {
            case "Kfin" :
               flag = 1;
               msg += "- le montant de votre capital souhaité\n";
               break;
            case "VERSinit" :
               flag = 1;
               msg += "- le montant de votre versement initial, supérieur à 0 euro\n";
               break;
            case "VERSmens" :
               flag = 1;
               msg += "- le montant de votre versement mensuel (entre 0 et 10 000 000 d'euros)\n";
               break;
            case "Ian" :
               flag = 1;
               msg += "- le taux d'intérêt strictement positif et inférieur ou égal à 4 %\n";
               break;
            case "DURan" :
               flag = 1;
               msg += "- la durée de votre placement (durée strictement positive et inférieure ou égale à 60 ans)\n";
               break;
            default  :
               temp = form.elements[i].value;
               url += "&" + form.elements[i].name + "=" + temp;
         }
      }
   }
   if (flag == 1 && firstaction == currentaction) {
      alert(msg);
      return;
   }
   window.location = url
}

function getVERSinit() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&VERSinit=", 1);
   if (pos1 == -1) {
      return "";
   } else {
      pos2 = query_string.indexOf("&", pos1+10);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var VERSinitStr = query_string.substring(pos1+10, pos2);
      return VERSinitStr;
   }
}

function getVERSmens() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&VERSmens=", 1);
   if (pos1 == -1) {
      return "";
   } else {
      pos2 = query_string.indexOf("&", pos1+10);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var VERSmensStr = query_string.substring(pos1+10, pos2);
      return VERSmensStr;
   }
}

function getIan() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&Ian=", 1);
   if (pos1 == -1) {
      return "";
   } else {
      pos2 = query_string.indexOf("&", pos1+5);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var IanStr = query_string.substring(pos1+5, pos2);
      return IanStr;
   }
}

function getDURan() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&DURan=", 1);
   if (pos1 == -1) {
      return "";
   } else {
      pos2 = query_string.indexOf("&", pos1+7);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var DURanStr = query_string.substring(pos1+7, pos2);
      return DURanStr;
   }
}

function getKfin() {
   var pos1;
   var pos2;
   var url = new String(window.location);
   var query_string = url.substring(url.lastIndexOf("?"), url.length);
   pos1 = query_string.indexOf("&Kfin=", 1);
   if (pos1 == -1) {
      return "";
   } else {
      pos2 = query_string.indexOf("&", pos1+6);
      if (pos2 == -1) {
         pos2 = query_string.length;
      }
      var KfinStr = query_string.substring(pos1+6, pos2);
      return KfinStr;
   }
}

function getSep(Valeur) {
   var posSep = 0;
   var sizeLen = 0;
   var Montant = new String(Valeur);
   var tmpMontant = new String("");
   sizeLen = Montant.length;
   for (i = 0 ; i < sizeLen ; i++) {
      posSep = posSep + 1;
      tmpMontant = Montant.substring((sizeLen - (i+1)), (sizeLen - i)) + tmpMontant;
      if (posSep == 3 && (i + 1) != sizeLen) {
         tmpMontant = " " + tmpMontant
         posSep = 0;
      }
   }
   return tmpMontant;
}

function sitestatJS(ns_l) {
   ns_l += "&ns__t=" + new Date().getTime();
   ns_pixelUrl = ns_l;
   if (document.images) {
      ns_1 = new Image();
      ns_1.src = ns_l;
   } else {
      document.write("<img src=" + ns_l + " border=1 nosave width=1 height=1>");
   }
}

