// -----------------------------------------------------
// DICTIONNAIRE POUR LE LOCATOR
// 0 => ENGLISH   1 => FRNAÇAIS
// -----------------------------------------------------
var msg_zip_requis=new Array;
msg_zip_requis[0]="Please enter your zip code.";
msg_zip_requis[1]="Veuillez entrer votre code zip.";

var msg_postal_requis=new Array;
msg_postal_requis[0]="Please enter your postal code.";
msg_postal_requis[1]="Veuillez entrer votre code postal.";

var msg_zip_invalid=new Array;
msg_zip_invalid[0]="Invalid Zip code.";
msg_zip_invalid[1]="Code zip non valide.";

var msg_postal_invalid=new Array;
msg_postal_invalid[0]="Invalid Postal code.";
msg_postal_invalid[1]="Code postal non valide.";

var msg_distance_km=new Array;
msg_distance_km[0]="Distance in km required.";
msg_distance_km[1]="Distance en km requise.";

var msg_distance_miles=new Array;
msg_distance_miles[0]="Distance in miles required.";
msg_distance_miles[1]="Distance en milles requise.";

var txt_zipcode=new Array;
txt_zipcode[0]="Zip code : ";
txt_zipcode[1]="Code Zip : ";

var txt_postalcode=new Array;
txt_postalcode[0]="Postal code : ";
txt_postalcode[1]="Code postal : ";

var txt_within_miles=new Array;
txt_within_miles[0]="Within Miles : ";
txt_within_miles[1]="Distance : ";

var txt_within_km=new Array;
txt_within_km[0]="Within km : ";
txt_within_km[1]="Distance en km : ";

var txt_miles=new Array;
txt_miles[0]="Miles";
txt_miles[1]="milles";

// -----------------------------------------------------
// FONCTIONS POUR LE LOCATOR
// -----------------------------------------------------
function locator_validation_formulaire(form,lang)
{
   cCAN = form.dealer_country[0].checked;
   cUSA = form.dealer_country[1].checked;
   if (form.dealer_zip.value==""){
     if(cCAN) alert(msg_postal_requis[lang]);
     else alert(msg_zip_requis[lang]);
     return false;
   }
   if (form.dealer_radius.value==""){
     if(cCAN) alert(msg_distance_km[lang]);
     else alert(msg_distance_miles[lang]);
     return false;
   }
   if (form.dealer_zip.value.length!=5 && cUSA){alert(msg_zip_invalid[lang]); return false;}
   if (form.dealer_zip.value.length==5 && cUSA){
    // ZIP Code valide ?
    // Nombre pour les positions 0 à 4
    // Number ASCII 0 à 9 : 48 à 57
    if(!(form.dealer_zip.value.charCodeAt(0)>=48 && form.dealer_zip.value.charCodeAt(0)<=57)){alert(msg_zip_invalid[lang]);return false;}
    if(!(form.dealer_zip.value.charCodeAt(1)>=48 && form.dealer_zip.value.charCodeAt(1)<=57)){alert(msg_zip_invalid[lang]);return false;}
    if(!(form.dealer_zip.value.charCodeAt(2)>=48 && form.dealer_zip.value.charCodeAt(2)<=57)){alert(msg_zip_invalid[lang]);return false;}
    if(!(form.dealer_zip.value.charCodeAt(3)>=48 && form.dealer_zip.value.charCodeAt(3)<=57)){alert(msg_zip_invalid[lang]);return false;}
    if(!(form.dealer_zip.value.charCodeAt(4)>=48 && form.dealer_zip.value.charCodeAt(4)<=57)){alert(msg_zip_invalid[lang]);return false;}
   }
   if (cCAN) { return ValidCP(form.dealer_zip.value,lang); }
}

function ValidCP(cp,lang)
{
  if(cp.length<6) {alert(msg_postal_invalid[lang]); return false;}

  // Si 6 caractères
  if(cp.length==6) {

    // Ajouter espace au milieu
    cp=cp.concat(cp.substr(0,3),String.fromCharCode(32), cp.substr(3,3));
    cp=cp.substr(6,7);
    cp = cp.toUpperCase();
    document.forms.form_locator.dealer_zip.value=cp;

    // Vérifier si valide

    // Nombre pour les positions 1, 4 et 6
    // Number ASCII 0 à 9 : 48 à 57
    if(!(cp.charCodeAt(1)>=48 && cp.charCodeAt(1)<=57)){alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(4)>=48 && cp.charCodeAt(4)<=57)){alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(6)>=48 && cp.charCodeAt(6)<=57)){alert(msg_postal_invalid[lang]);return false;}

    // Lettres pour les positions 0, 2 et 5
    // Letter ASCII a à z : 97 à 122
    // Letter ASCII A à Z : 65 à 90
    if(!(cp.charCodeAt(0)>=65 && cp.charCodeAt(0)<=90) && !(cp.charCodeAt(0)>=97 && cp.charCodeAt(0)<=122)) {alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(2)>=65 && cp.charCodeAt(2)<=90) && !(cp.charCodeAt(2)>=97 && cp.charCodeAt(2)<=122)) {alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(5)>=65 && cp.charCodeAt(5)<=90) && !(cp.charCodeAt(5)>=97 && cp.charCodeAt(5)<=122)) {alert(msg_postal_invalid[lang]);return false;}

    // Espace
    if((cp.charCodeAt(3)!=32)){alert(msg_postal_invalid[lang]);return false;}
  }

  // Si 7 caractères
  else {
    // Vérifier si valide
        
    // Nombre pour les positions 1, 4 et 6
    // Number ASCII 0 à 9 : 48 à 57
    if(!(cp.charCodeAt(1)>=48 && cp.charCodeAt(1)<=57)){alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(4)>=48 && cp.charCodeAt(4)<=57)){alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(6)>=48 && cp.charCodeAt(6)<=57)){alert(msg_postal_invalid[lang]);return false;}

    // Lettres pour les positions 0, 2 et 5
    // Letter ASCII a à z : 97 à 122
    // Letter ASCII A à Z : 65 à 90
    if(!(cp.charCodeAt(0)>=65 && cp.charCodeAt(0)<=90) && !(cp.charCodeAt(0)>=97 && cp.charCodeAt(0)<=122)) {alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(2)>=65 && cp.charCodeAt(2)<=90) && !(cp.charCodeAt(2)>=97 && cp.charCodeAt(2)<=122)) {alert(msg_postal_invalid[lang]);return false;}
    if(!(cp.charCodeAt(5)>=65 && cp.charCodeAt(5)<=90) && !(cp.charCodeAt(5)>=97 && cp.charCodeAt(5)<=122)) {alert(msg_postal_invalid[lang]);return false;}

    // Espace
    if((cp.charCodeAt(3)!=32)){alert(msg_postal_invalid[lang]);return false;}
  }
}


// Selon le bouton radio qui est coché...
// Canada : afficher en km
// United States : affichage en Miles
function locator_change_radius(form,lang)
{
   cCAN = form.dealer_country[0].checked;
   cUSA = form.dealer_country[1].checked;
   if(cCAN == true){
        // Modifier txt Zip Code par Postal code
        form.txt_zip.value = txt_postalcode[lang];
        // Modifier txt Within Miles par Within km
        form.txt_radius.value = txt_within_km[lang];
        // Modifier txt State par Province
        // form.txt_state.value = txt_province[lang];
        // Mettre les valeurs du menu déroulant en KM (10, 25, 50)
        form.dealer_radius.options[1].value = "10";
        form.dealer_radius.options[1].text = "10 km";
        form.dealer_radius.options[2].value = "25";
        form.dealer_radius.options[2].text = "25 km";
        form.dealer_radius.options[3].value = "50";
        form.dealer_radius.options[3].text = "50 km";
        // Mettre le champ hidden en km
        form.dealer_miles_km.value = "km";
   }
   else
   {
        // Modifier txt Postal code par Zip Code
        form.txt_zip.value = txt_zipcode[lang];
        // Modifier txt Within km par Within Miles
        form.txt_radius.value = txt_within_miles[lang];
        // Modifier txt Province par State
        // form.txt_state.value = txt_state[lang];
        // Mettre les valeurs du menu déroulant en Miles (5, 15, 30)
        form.dealer_radius.options[1].value = "25";
        form.dealer_radius.options[1].text = "25 " + txt_miles[lang];
        form.dealer_radius.options[2].value = "50";
        form.dealer_radius.options[2].text = "50 " + txt_miles[lang];
        form.dealer_radius.options[3].value = "100";
        form.dealer_radius.options[3].text = "100 " + txt_miles[lang];
        // Mettre le champ hidden en miles
        form.dealer_miles_km.value = "miles";
   }
}
