// Verification de la validité du code postal
// Paramètres: CP - inputbox Code Postal
// Conditions: null: test standard (tout sauf départements 20,97,98)
//             1: test standard avec Monaco (sauf département 20,97)
//             autre: tous les départements autorisés
// Retour: true si le code est valide. Affiche un message d'erreur et false si non valide
function VerifieDepartement(CP)
{
  var res=false;
  if(CP.value.length<2)
  {
    CP.value = '';
  }
  else if (isNaN(CP.value))
  {
    CP.value = '';
  }
  else res = true;
  return res;
}

function VerifieCodePostal(CP,Conditions)
{
  var res=false;
  if(CP.value.length<5)
  {
    alert("Code postal incorrect !");
    CP.value = '';
  }
  else if (isNaN(CP.value))
  {
    alert("Vous devez entrer que des chiffres !");
    CP.value = '';
  }
  else
  {
    var Tmp = CP.value.substring(0,2);
    var Tmp2 = CP.value.substring(0,3);
    
    if(typeof(Conditions)=="undefined")
    {
      if ((Tmp == 20)||(Tmp == 97)||(Tmp == 98))
      {
        alert("Département interdit");
        CP.value = '';
      }
      else
        res=true;
    }
    else
    {
      if (Conditions==1 && ((Tmp == 20)||(Tmp == 97)))
      {
        alert("Département interdit");
        CP.value = '';
      }
      else
      if (Conditions==2 && ((Tmp == 98)||(Tmp == 97)))
      {
        alert("Département interdit");
        CP.value = '';
      }
      else
      { 
      	// La Condition 'T' ne correspond plus à tout , mais au TOM , 
      	// dont le code postal est a partir de 97500 (St pierre et miquelon), 
      	// ainsi que tous les 98xxx etc ( sauf 98000 : MONACO )
      	
		    Conditions=""+Conditions;
		    //t=(Conditions.indexOf("T")>=0)		// on autorise tout
		    c=(Tmp=="20")&&(Conditions.indexOf("C")<0)						// on autorise la corse si C dans Conditions
				d=(Tmp=="96"||Tmp2=="971"||Tmp2=="972"||Tmp2=="973"||Tmp2=="974")&&(Conditions.indexOf("D")<0)	// on autorise les dom-tom si D dans Conditions						
				t=(parseInt(Tmp2) >= 975  && CP.value!="98000" )&&(Conditions.indexOf("T")<0)	// on autorise les dom-tom si D dans Conditions												
				m=(CP.value=="98000")&&(Conditions.indexOf("M")<0)&&(Conditions.indexOf("1")<0)	// on autorise Monaco si M dans Conditions
		
		    if (c||d||m||t)
		    {
		      alert("Département interdit");
		      CP.value = '';
		    }
		    else 
		      res=true;
		    
      }
    }
  }
  return res;
}

// Récupération de la zone risque habitation
// Paramètres: SELECTLISTE - listbox villes
// Retour: Zone risque habitation ou false si rien n'est sélectionné
function GetRISQUEHAB(liste)
{
  var res=false;
  var deb,fin;
  v=liste.options[liste.options.selectedIndex].value;
  deb=v.indexOf(';');
  if(deb>=0)
  {
    deb=v.indexOf(';',deb+1);
    if(deb>=0)
    {
      fin=v.indexOf(';',deb+1);
      if(fin<0)
        fin=deb+1;
      res=v.substr(deb+1,fin-deb-1);
    }
  }
  return res;
}

// Récupération de la zone RC
// Paramètres: SELECTLISTE - listbox villes
// Retour: Zone RC ou false si rien n'est sélectionné
function GetRISQUEAUTO(liste)
{
  var res=false;
  var deb,fin;
  v=liste.options[liste.options.selectedIndex].value;
  deb=v.indexOf(';');
  if(deb>=0)
  {
    fin=v.indexOf(';',deb+1);
    if(fin<0)
      fin=deb+1;
    res=v.substr(deb+1,fin-deb-1);
  }
  return res;
}

// Rafraichissement de la liste des villes par une popup
// Paramètres: liste - Listebox de la popup contenant les nouvelles valeurs
//             idform - nom du formulaire contenant la liste à rafraichir
//             id - nom de la listebox à rafraichir
// Appelé: par la popup
function RefreshListePop(liste, idform, id)
{
  RefreshListe(liste,document[idform][id]);
}

// Rafraichissement de la liste des villes
// Paramètres: CP - inputbox Code postal
//             liste - listbox à rafraichir
//             Ville - ville à sélectionner par défaut
// Appelé: après le changement du code postal
function RefreshVilles(CP,TZ,liste,Ville,CONTROLE,saisie)
{
  EffaceListe(liste);

  var useragent=navigator.userAgent.toLowerCase();
  var msix=useragent.indexOf("msie");
  var isIE  = (msix > -1)?true:false;
  var isWin32 = (navigator.platform.toLowerCase().indexOf("win32") > -1)?true:false;
  var isActivex=false;
  var version=1;
  if(isIE)
    version =parseInt (useragent.substring (msix+5, useragent.indexOf (".", msix)));

  if(isIE && isWin32 && version>=5)
    eval ('try {var xObj = new ActiveXObject("Msxml.DOMDocument");if (xObj) isActivex = true; xObj = null; } catch (e) {}');
  if(isIE && isWin32 && isActivex)
    RefreshListeXML(TZ,CP,liste,Ville,CONTROLE,saisie);
  else
    win=open('/includes/GetVillePopXML.php?CP='+CP.value+'&TZ='+TZ.value+'&ID='+liste.name+'&FORM='+liste.form.name+'&VILLE='+Ville,'change','scrollbars=no,toolbar=0,menubar=0,resizable=no,width=10,height=10,top=0,left=0');
}
/* surcharge de l'ancienne methode */
var _RefreshVilles = RefreshVilles;
var RefreshVilles = function (CP,TZ,liste,Ville,CONTROLE,saisie)
{
	try {
		var cb = function ( AJAX ) {
			if (AJAX.readyState == 4 && AJAX.status == 200 && AJAX.responseText) {
				var newelem = document.createElement("div");
				newelem.innerHTML = AJAX.responseText;
				var listOptions = newelem.getElementsByTagName("option");
				for (var i = 0; i < listOptions.length; i++)
					liste.options[i]=new Option(listOptions[i].text,listOptions[i].value);
			}
		}
		new AJAXRequest('get', '/includes/GetVillesSelectXml.php?CP='+CP.value+'&TZ='+TZ.value+'&ID='+liste.name+'&FORM='+liste.form.name+'&VILLE='+Ville, null, cb, true, true);
	}
	catch (e)
	{
		_RefreshVilles(CP,TZ,liste,Ville,CONTROLE,saisie);
	}
}

var RefreshGarage = function (CP,liste,type)
{
		var cb = function ( AJAX ) {
			if (AJAX.readyState == 4 && AJAX.status == 200 && AJAX.responseText) {
				liste.innerHTML=AJAX.responseText;
				var wait = document.getElementById('GARAGE_WAIT');
				wait.innerHTML = "";
			}
		}
		new AJAXRequest('get', '/Site/MonCompte/search/garages.php?CP='+CP.value+"&type="+type, null, cb, true, true);
}

// Effacement du contenu de la liste
// Paramètres: liste - Listebox à effacer
function EffaceListe(liste)
{  // Effacement de la liste
  for(var i=0;i<3;i++)
    for (var j=0;j<liste.options.length;j++)
      liste.options[j]=null;
}

// Rafraichissement de la liste des villes par XML
// Paramètres: CP - inputbox Code postal
//             liste - listbox à rafraichir
//             Ville - ville à sélectionner par défaut
// Appelé: au moment de rafraichissement des villes si IE
function RefreshListeXML(TZ,CP,liste, Ville,CONTROLE,saisie)
{
  // Création de l'objet XML
  var xmlDoc = null;
//  try{ xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); }
//  catch (e){ xmlDoc = new ActiveXObject("Msxml.DOMDocument"); }
  xmlDoc = new ActiveXObject("Msxml.DOMDocument");
  xmlDoc.async = false;
//  xmlDoc.load("/SollyAzar/includes/GetVillesXML.php?CP="+CP.value);
  xmlDoc.load("/includes/GetVillesXML.php?CP="+CP.value+'&TZ='+TZ.value);
  testNode=xmlDoc.documentElement.childNodes;


  if(testNode.length==0 && CONTROLE!=3)
    alert("Code postal incorrect !");
  var n=0;
  if(testNode.length>1)
  {
    a=new Option("Ville..","");
    liste.options[n++]=a;
  }
  // Parcours du document XML et remplissage de la liste
  for (var i=0; i<testNode.length; i++)
  {
    Item = testNode.item(i);
    var cp = Item.getElementsByTagName("CP");
    var nom = Item.getElementsByTagName("NOM");
    var risqueauto = Item.getElementsByTagName("RISQUEAUTO");
    //var risquemrh = Item.getElementsByTagName("RISQUEMRH");
    a=new Option(nom.item(0).text,nom.item(0).text+';'+risqueauto.item(0).text+';');//+risquemrh.item(0).text+';'
    if(nom.item(0).text.toUpperCase()==Ville.toUpperCase())
    {
      a.selected=true;
    }
    liste.options[n++]=a;
  }
  if(CONTROLE==3)
  {
    a=new Option("Autre ville..","");
    liste.options[n++]=a;
    if(i==0)
    {
      saisie.style.visibility="visible";
      saisie.focus();
    }
    else
      saisie.style.visibility="hidden";
  }
}

// Paramètres: listesrc - listebox contenant les valeurs à mettre dans la liste de destination
//             listedest - listbox à rafraichir
// Appelé: lorsque la popup appelle la fonction de rafraichissement
function RefreshListe(listesrc,listedest)
{
  var j;
  EffaceListe(listedest);
  for(j=0;j<listesrc.options.length;j++)
  {
    a=new Option(listesrc.options[j].text,listesrc.options[j].value);
    listedest.options[j]=a;
  }
  if(listedest.options.length)
    listedest.options[0].selected=true;
}

// Paramètres: CP - inputbox Code Postal à vérifier
//             Ville - listbox des villes à vérifier
// Appelé: fonction à appeler lors de la validation des contrôles du formulaire avant son envoi
function validate_CPVille(CP, Ville,Controle,SaisieVille)
{
  var res=false;
  if(CP.value==""||Ville.options.length==0)
  {
    alert("Veuillez entrer un code postal");
    CP.select();
    CP.focus();
  }
  else
  {
    v=Ville.options[Ville.options.selectedIndex].value;
    if(v=='')
    {
      if(typeof(Controle)!='undefined' && Controle==3)
      {
        if(SaisieVille.value.length==0)
        {
          alert("Veuillez saisir une ville !");
          SaisieVille.focus()
        }
        else
          res=true;
      }
      else
      {
        alert("Veuillez selectionner une ville !");
        Ville.focus()
      }
    }
    else
      res=true;
  }
  return res;
}
