// InitJS.js
// Contient le code javascript pour gérer le comportement de Ajax Map de PTV
//
// 22 avril 2008

function rmsPoint(x, y)
{
    this.X = x;
    this.Y = y;
}

function rmsPointRapport(x, y, dt, state, speed, idt, iDuration, sAddress, xgeo, ygeo)
{
    this.x = x;
    this.y = y;
    this.xgeo=xgeo;
    this.ygeo=ygeo;
    this.dt = dt;
    this.state = state;
    this.speed = speed;
    this.idt=idt;
    this.iPOI=-1;
    this.iDuration = iDuration;
    this.sAddress = sAddress;
}

function TestGeocodeAddresse()
{
    var tZC = document.getElementById("codepostal"); 
    var tLOC = document.getElementById("ville"); 
    var panSA = document.getElementById("adresse"); 
    WS_GetMap.GeocodeEx("F", "", tZC.value, tLOC.value, "", panSA.value, "", 10000, OnTestGeocodeGratuitSucceeded);                          
}

function OnTestGeocodeGratuitSucceeded(result)
{
    if (result == null){
        alert("Il n'y a aucun r\351sultat pour ce g\351ocodage");
        return;
   }
   var lattitude =  (result.y/100000);
   var longitude =  (result.x/100000);
   sRes = "latitude=" + lattitude + " longitude=" + longitude + " qualit\351=" + result.quality +" %" + 
	+ result.zipcode + " " + result.city + " " + result.street;
   // On affiche un message surgissant
   alert(sRes);
}


function TestGeocodeInverse()
{
    var reg=new RegExp("(,)", "g");
    var lati = document.getElementById("latitude").value;
    var longi = document.getElementById("longitude").value;
    lati = lati.replace(reg,".");
    longi = longi.replace(reg,".");
    
    var dlati = parseInt(parseFloat(lati) * 100000); 
    var dlongi = parseInt(parseFloat(longi) * 100000);
    if (isNaN(dlati)){alert("la latitude n'est pas reconnue");return;}
    if (isNaN(dlongi)){alert("la longitude n'est pas reconnue");return;}
      
    
   
    p = new rmsPoint(dlongi, dlati);
    WS_GetMap.ReverseGeocodeEx(p, 10000, OnTestReverseGeocodeGratuitSucceeded);                          
}



function OnTestReverseGeocodeGratuitSucceeded(result)
{
    var cpostal=result.zipcode;
    var ville=result.city;
    var adresse=result.street;

   if (result == null)
   {
        alert("Il n'y a aucun r\351sultat pour ce g\351ocodage invers\351");
        return;
   }
   
   if ((cpostal == null)&&(ville == null)&&(adresse == null))
   {
        VilleProche();
        return;
   }
   
   sRes =  adresse + " " + cpostal + " " + ville;
   alert(sRes); 

}

function VilleProche()
{   var reg=new RegExp("(,)", "g");
    var lati = document.getElementById("latitude").value;
    var longi = document.getElementById("longitude").value;
    lati = lati.replace(reg,".");
    longi = longi.replace(reg,".");
    
    var dlati = parseInt(parseFloat(lati) * 100000); 
    var dlongi = parseInt(parseFloat(longi) * 100000);
    if (isNaN(dlati)){alert("la latitude n'est pas reconnue");return;}
    if (isNaN(dlongi)){alert("la longitude n'est pas reconnue");return;}
    
    WS_GetMap.ReverseGeocodeXY(dlongi,dlati,100,OnTestReverseGeocodeGratuitSucceeded)}

function OnTestReverseGeocodeXYSucceeded(result)
{OnTestReverseGeocodeGratuitSucceeded(result);}
