  function transfo(LongitudePoint,LatitudePoint){
 /* if (document.getElementById("TypeZone").value==03){
  var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,44.1*Math.PI/180,0.99987750,600000,200000,-168,-60,320,293.466021);
  }
 if (document.getElementById("TypeZone").value==02){
    var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,46.8*Math.PI/180,0.99987742,600000,200000,-168,-60,320,293.466021);
}
if (document.getElementById("TypeZone").value==01){
    var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,49.5*Math.PI/180,0.99987734,600000,200000,-168,-60,320,293.466021);
}
if (document.getElementById("TypeZone").value==04){
    var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,42.165*Math.PI/180,0.99994471,234.358,185861.369,-168,-60,320,293.466021);
}
if (document.getElementById("TypeZone").value==05){
    var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,46.8*Math.PI/180,0.99987742,600000,2200000,-168,-60,320,293.466021);
}*/

var parametre=new Array(Math.PI, 6378249.2,0.08248325676,2.33722916667*Math.PI/180,44.1*Math.PI/180,0.99987750,600000,200000,-168,-60,320,293.466021);


LongiLati = Geo2_Geo1(LongitudePoint, LatitudePoint,-parametre[8],-parametre[9],-parametre[10], parametre[11], parametre[2], parametre[1]).split(",");
//alert(parseFloat(LongiLati[0]).toFixed(6)+"   ,   "+parseFloat(LongiLati[1]) .toFixed(6));
LongiLati[0]=parseFloat(LongiLati[0]).toFixed(6);
LongiLati[1]=parseFloat(LongiLati[1]).toFixed(6);
EstNord = LatiLongiToEstNord(LongiLati[1]*Math.PI/180, LongiLati[0]*Math.PI/180, parametre[6],parametre[7], parametre[5],parametre[1], parametre[2], parametre[3], parametre[4]).split(",");
    
  
  return (parseInt(EstNord[0])+";"+parseInt(EstNord[1]));
  }

function Geo2_Geo1(Lambda1,  Phi1,  Tx1,  Ty1,  Tz1,  ff,  Excentricite,  DemiGrdAxe){
        //Permet de calculer la transformation entre 2 systèmes à l'aide des formules de Molodensky
  with (Math){
  //alert(Lambda1+';'+Phi1+';'+Tx1+';'+Ty1+';'+Tz1+';'+ff+';'+Excentricite+';'+DemiGrdAxe);
         var ww = 1 - pow(Excentricite ,2) * pow(sin(Phi1),2);
         var n1 = DemiGrdAxe / pow(ww ,(1 / 2));
         var ro = (DemiGrdAxe * (1 - pow(Excentricite, 2))) / pow(ww , (3 / 2));
         var Deltaa = DemiGrdAxe - 6378137;
         var Deltaf = 1 / ff - 1 /298.257223563;
         var longi = Lambda1 + (-Tx1 * sin(Lambda1) + Ty1 * cos(Lambda1)) / (n1 * cos(Phi1));
         var lati = Phi1 + (-Tx1 * sin(Phi1) * cos(Lambda1) - Ty1 * sin(Phi1) * sin(Lambda1) + Tz1 * cos(Phi1) + ((DemiGrdAxe * Deltaf) + (1 / ff) * Deltaa) * sin(2 * Phi1)) / ro;
   }    
    return(longi + "," + lati);
}

function LatiLongiToEstNord( lati,  longi,  xo,  yo,  ko,  DemiGrdAxe,  Excentricite,  lambda0,  Lati0){
    
        var n = Math.sin(Lati0);
        var grdN = DemiGrdAxe / (Math.sqrt(1 - Math.pow(Excentricite ,2) * Math.pow(Math.sin(Lati0),2)));
        var cc = ko * grdN / Math.tan(Lati0) * Math.exp(n * LatitudeIsometrique(Lati0, Excentricite));
    var xs = xo;
        var ys = yo + ko * grdN / Math.tan(Lati0);
        var EstResultat = xs + (cc * Math.exp(-n * LatitudeIsometrique(lati, Excentricite)) * Math.sin(n * (longi - lambda0)))+40;
    var NordResultat = ys - (cc * Math.exp(-n * LatitudeIsometrique(lati, Excentricite)) * Math.cos(n * (longi - lambda0)))+10;
        return(EstResultat+","+NordResultat);
}

     function LatitudeIsometrique(phi, Excentricite){
    
       /* Calcul de la latitude isométrique à partir de la latitude*/
      var LatitudeIsometrique = Math.log(Math.tan(Math.PI/ 4 + phi / 2) * Math.pow(((1 - Excentricite * Math.sin(phi)) / (1 + Excentricite * Math.sin(phi))) , (Excentricite / 2)));
    return(LatitudeIsometrique);
}


function EstNordToLatiLongi(EstD,NordD,xo,yo,ko,Excentricite,DemiGrdAxe,Lati0,lambda0){
  with(Math){
  var n = sin(Lati0);
  var grdN1 = DemiGrdAxe / (sqrt(1 - (pow(Excentricite,2) * pow(sin(Lati0),2))));
  var cc = ko * grdN1 / tan(Lati0) * exp(n * LatitudeIsometrique(Lati0, Excentricite));
  var xs = xo;
  var ys = yo + ko * grdN1 / tan(Lati0);
  var r = sqrt(pow((EstD - xs),2) + pow((NordD - ys), 2));
  var gamma = atan((EstD - xs) / (ys - NordD));
  var lambda = lambda0 + gamma / n;
  var latise = (-1 / n) * log(abs(r / cc));
  var epsilone = 0.00000000001;
  var Phi0 = 2 * atan(exp(latise)) - PI / 2;
  var Phi2 = 2 * atan(pow(((1 + Excentricite * sin(Phi0)) / (1 - Excentricite * sin(Phi0))) , (Excentricite / 2)) * exp(latise)) - PI / 2;
while (epsilone < abs(Phi2 - Phi0)){
  var Phi0 = Phi2;
  var Phi2 = 2 * atan(pow(((1 + Excentricite * sin(Phi0)) / (1 - Excentricite * sin(Phi0))) , (Excentricite / 2)) * exp(latise)) - PI / 2;
  }
}
return (lambda+","+Phi2);

}

function Geo1_Geo2(LambdaFin,PhiFin,Tx1,Ty1,Tz1,ff,Excentricite,DemiGrdAxe){
with(Math){
  var ww = 1 - pow(Excentricite,2) * pow((sin(PhiFin)),2);
  var n1 = DemiGrdAxe / pow(ww,(1 / 2));
  var ro = (DemiGrdAxe * (1 - pow(Excentricite),2)) / pow(ww,(3 / 2));
  var Deltaa = 6378137 - DemiGrdAxe;
  var Deltaf = 1 / 298.257222101 - 1 / ff;
  var longi = LambdaFin + (-Tx1 * sin(LambdaFin) + Ty1 * cos(LambdaFin)) / (n1 * cos(PhiFin));
  var lati = PhiFin + (-Tx1 * sin(PhiFin) * cos(LambdaFin) - Ty1 * sin(PhiFin) * sin(LambdaFin) + Tz1 * cos(PhiFin) + (DemiGrdAxe * Deltaf + 1 / ff * Deltaa) * sin(2 * PhiFin)) / ro;
}
return (longi+","+lati);
}
