/******************************************************************************/
/* DRYADE : Design Service Proxy (RATP)                                       */
/* Auteur : Eric GEORGES [eric.georges@dryade.net]             Octobre 2000   */
/* modif : Vladimir Veljkovic									Avril 2004    */
/* modif : Pascal CYNAMON (Completion)						15 septembre 2004 */
/* modif : Vladimir Veljkovic (URL Appel)					02 mars      2009 */
/* aide à la saisie, lorsqu'on est en mode station							  */
/* on exécute la complexion.js, lorsqu'on met une lettre ou plusieurs		  */
/******************************************************************************/ 
var STING_MAX_LENGTH = 256

//Pour Netscape 4.7 : cette fonction permet lorsque la station n'est pas trouvée de dévalider les coordonnées en les intégrant pas dans la chaine
//Parce que si on passe par un submit, on envoie des coordonées vides qui affiche un plan blanc.
//On passe la valeur du champ + l'indice soit Adresse - Station - Lieu :
function netscape47(valeur,aSelTab)
{

 switch (aSelTab)
 { 
  case "RUE" :
  {
   window.open("/Proxi/proxi.php?type=Adresse&session_id=1616113&lang=FRA&Profil=RATP&adresse="+valeur+"&Reseau=900000");
   break;
  } 
  case "ARRET" :
  {
   window.open("/Proxi/proxi.php?type=station&session_id=1616113&lang=FRA&Profil=RATP&adresse=&Reseau=900000&nom_station="+valeur+"&nom_lieux=");
   break;
  }
  case "LIEU" :
  { 
   window.open("/Proxi/proxi.php?type=lieux&session_id=1616113&lang=FRA&Profil=RATP&Reseau=900000&nom_lieux="+valeur);
   break;
  }  
  default:
    //Instruction_par_défaut
  break;
 }
}

// Remet à zéro une partie d'un formulaire + gestion du focus

function erase_form()

{

aSelTab = test_button();

   if ( aSelTab == "1" )

   { //efface le contenu du champs de saisie adresse et redonne le focus

     if (document.form1.adp.type == "hidden"){

      	  document.form1.adp.value = " ";

	      document.fproxi.etape.value = "NEW";

	      document.fproxi.submit();

         }

      else {

         document.form1.adp.value = "";

         document.form1.adp.focus();

           }

   }

   else if ( aSelTab == "2" )

           { //efface le contenu du champs de saisie commune et station

            // et redonne le focus à la commune

           document.fproxi.commune_station.value = "";

           document.fproxi.commune_station.focus();

           document.form1.adp.value = "";

           reset_button();

           }

   else if ( aSelTab == "3" )

           { //efface le contenu du champs de saisie commune et nom du lieux

            // et redonne le focus à la commune

           document.fproxi.commune_lieux.value = "";

           document.fproxi.commune_lieux.focus();

          document.form1.adp.value = "";

          }         

}



// fonction modifier pour les formulaires d'ambiguités : retour à la page précédente

function modify_form()

{

    aSelTab = test_button();

    if ( aSelTab == "1" && document.fproxi.modify )

        {

        document.fproxi.modify.value = "1";

        document.fproxi.submit();

        }

        else if ( aSelTab == "2" && document.fproxi.modify)

                {

                document.fproxi.modify.value = "1";

                document.fproxi.submit();

                }

        else if ( aSelTab == "3" && document.fproxi.modify)

                {

               document.fproxi.modify.value = "1";

               document.fproxi.submit();

                }

}



// Fonction de validation du formulaire dans le cas des ambiguités

function validate_form()

{

      aSelTab = test_button();

      if ( aSelTab == "RUE" )

         {

          document.fproxi.submit();

         }

         else if ( aSelTab == "ARRET" )

         {

          document.fproxi.submit();

         }

         else if ( aSelTab == "LIEU" )

         {

          document.fproxi.submit();

         }

}



// Fonction affectation aSelTab
function test_button(){

if (document.form1.type_dep[0].checked==1) aSelTab="RUE";

	else if (document.form1.type_dep[1].checked==1) aSelTab="ARRET";

		else if(document.form1.type_dep[2].checked==1) aSelTab="LIEU";

	else aSelTab="RUE";

return aSelTab;

}

// Fonction de verification sur validation d'un formulaire, gère le résultat de la completion :
function check_form(form1)
{
 var adresseContent;
 var commune_stationContent;
 var commune_lieuxContent;
 var nom_stationContent;
 var nom_lieuxContent;
 var nom;
 var flag =0; //Pour Netscape 4.7, utilisé pour savoir si la station a été trouvé dans la liste des stations prédéfinies.
 
 //On réinitialise les valeurs
 document.fproxi.x.value = "";
 document.fproxi.y.value = "";

 aSelTab = test_button();
 //*********************************************************************************************************************************************
 // CAS onglet "adresse"
 //*********************************************************************************************************************************************
 if ( aSelTab == "RUE" )
 {
  // valide de nouveau le champ adresse
  document.fproxi.cmd.value="LexicoAdresse";	
  adresseContent = form1.adp.value;
  document.fproxi["Recherche[Saisie]"].value = form1.adp.value;
  // on dévalide les coordonnées X et Y, utilisés seulement dans le cas STATION
  document.fproxi.x.disabled = true;
  document.fproxi.y.disabled = true;
  //  on devalide station et lieux afin de corriger le bug y_aller dans la fenetre de resultat
//  document.fproxi.nom_station.disabled = true;
//  document.fproxi.nom_lieux.disabled = true;
  //	
  if (adresseContent == "")
  {
   alert("Veuillez saisir une adresse SVP");
   form1.adp.focus();
   return;
  }
  if ( adresseContent.length > STING_MAX_LENGTH )
  {
   form1.adp.value = "";
   form1.adp.focus();
   return;     
  }
  if ( navigator.userAgent.indexOf('Mozilla/4.7') != -1 ) netscape47(form1.adp.value,aSelTab);
  else {
   form1.adp.value = TrimGD(adresseContent);
//   document.fproxi.type.value = "Adresse";
   document.fproxi["Recherche[Saisie]"].value=form1.adp.value;
   document.fproxi.submit();
  }
  // reinit methode
//  document.fproxi.type.value == "NA";
 }
 //*********************************************************************************************************************************************
 // CAS onglet "station", on exécute la completion c-à-d aide à la saisie...
 //*********************************************************************************************************************************************
 else if ( aSelTab == "ARRET" )	
 {
  // on revalide station	
//  document.fproxi.nom.disabled = false;
  commune_stationContent = "";
  document.fproxi.cmd.value="LexicoStation";	  
  // on revalide les coordonnées X et Y
  document.fproxi.x.disabled = false;
  document.fproxi.y.disabled = false;
  // on devalide adresse et lieux afin de corriger le bug y_aller dans la fenetre de resultat
/*commente vlad 2009
document.fproxi.nom_lieux.disabled = true;
  document.fproxi.adresse.disabled = true;*/
//  document.fproxi.type.disabled = true;
  
//  document.fproxi.session_id.disabled = true;
//  document.fproxi.Reseau.disabled = true;
  //On récupère la valeur du champ départ.
  nom = form1.adp.value;
document.fproxi["Recherche[Saisie]"].value = form1.adp.value;
  if (nom == "")
  {
   alert("veuillez saisir un nom de station SVP");
   form1.adp.focus();
   return;
  }
  if ( nom.length > STING_MAX_LENGTH )
  {
   form1.adp.value = "";
   form1.adp.focus();
   return;
  }
  //On récupère les coordonnées X et Y pour lever l'ambiguïté sur une station, c-à-d, qu'on affichera directement le plan de quartier 
  //correspondant à la station
  //Je regarde dans le tableau des stations si cela correspond au champ de saisie adp (situé sur la page d'accueil du site index.php)
  //Le tableau des stations "StationsArray" est soit chargé dans la page d'accueil index.php, soit via un js "stationArray" pour le navigateur OPERA.
  if ( navigator.userAgent.indexOf('Mozilla/4.7') != -1 ) { //Pour N4.7, je récupère le tableau défini en JS + Mettre le nom de la station en minuscule
   //StationsArray=stationArrayReady;
   nom = nom.toLowerCase();
  }
  for (var i=0; i < StationsArray.length; ++i)
   {
    if ( navigator.userAgent.indexOf('Mozilla/4.7') != -1 ) //Pour N4.7, je récupère la valeur du tableau de stations et la mets en minuscule.
     StationsArray[i] =  StationsArray[i].toLowerCase();
    if ( nom == StationsArray[i])
    { 
     var x = i*6; 
	 var y = i*7;
	 //les coordonnées à extraire sont chargées dans la page d'accueil du site index.php via un js "stationscoord"
	 //ils sont sous formes de chaines de caractères, on les extrait par un substring
	 var Resultatx = station_x.substring((x),(x+6)); //On récupère la coordonnée X qui a une taille de 6.
     var Resultaty = station_y.substring((y),(y+7)); //On récupère la coordonnée Y qui a une taille de 7.
     document.fproxi.x.value = Resultatx;
     document.fproxi.y.value = Resultaty;
	 flag = 1;
    }
   }
   //Pour N4.7, dans le cas où la station n'existe pas, on dévalide les coordonnées x et y.
   if (( navigator.userAgent.indexOf('Mozilla/4.7') != -1 ) && ( flag == 0))
   {
     netscape47(form1.adp.value,aSelTab);
   } else 
   {	
    form1.adp.value = TrimGD(nom);
//    document.fproxi.type.value ="Station";
    document.fproxi["Recherche[Saisie]"].value = form1.adp.value;
//    document.fproxi.tmpl.value = "CITEFUTEE";
    document.fproxi.submit();
//    document.fproxi.type.value == "NA";
   }
 }
 //*********************************************************************************************************************************************
 // CAS onglet "lieu"
 //*********************************************************************************************************************************************
 else if ( aSelTab == "LIEU" )
 {
  // on revalide lieux	
//  document.fproxi.nom.disabled = false;	
  document.fproxi.cmd.value="LexicoLieu";	
  //
 //on dévalide station et adresse afin de corriger le bug y_aller dans la fenetre de resultat
//  document.fproxi.nom_station.disabled = true;
//  document.fproxi.adresse.disabled = true;
 //on dévalide les coordonnées X et Y, utilisés seulement dans le cas STATION
  document.fproxi.x.disabled = true;
  document.fproxi.y.disabled = true;
 //
//  commune_lieuxContent ="";
  nom = form1.adp.value;
  document.fproxi["Recherche[Saisie]"].value = form1.adp.value;
  if (nom == "")
  {
   alert("Veuillez saisir un lieu SVP");
   form1.adp.focus();
   return;
  }
  if ( nom.length > STING_MAX_LENGTH )
  {
   form1.adp.value = "";
   form1.adp.focus();
   return;
  }
  if ( navigator.userAgent.indexOf('Mozilla/4.7') != -1 ) netscape47(form1.adp.value,aSelTab);
  else {
   form1.adp.value = TrimGD(nom);
//   document.fproxi.type.value = "Lieu";
   document.fproxi["Recherche[Saisie]"].value=form1.adp.value;
   document.fproxi.submit();
//   document.fproxi.type.value == "NA";		
  }
 }

}
/**********************************************************************************************************************************************/
// Fonction qui retire les blancs en tête et en queue d'une chaine
function TrimGD(s)
{
 var p
 var c
 p = 0 ;

 for (p=0;p<s.length;p++)
 {
  c = s.charAt(p)
  if (c != ' ' && c != '\t' && c != '\n' && c != '\r') break ;
 }
 if (p == s.length) return ""
 else if (p) s = s.substr(p)
 for (p=s.length-1;p>=0;p--)
 {
  c = s.charAt(p) ;
  if (c != ' ' && c != '\t' && c != '\n' && c != '\r') break;
 }
 if (p != (s.length - 1))
 {
  s = s.substr(0,p+1);
  return s
 }
  return s
}