function loadmeteorem(lang)
{
  //alert("Lang is " + lang);
  if (lang==null || lang=="")
    lang='FR';
  init_libelles(lang);
  init_messages_meteorem(lang);
  initprices();
  //initarray();
  window.status = local_messages['Bdc'];
}
function init_libelles(lang)
{
  libelle_paiement = new Array();
  if (lang=='GB')
  {   
    libelle_paiement[0] = 'Invalid';
    libelle_paiement[1] = 'PayPal';
    libelle_paiement[2] = 'Check';
    libelle_paiement[3] = 'Free';
  }
  else
  {
    libelle_paiement[0] = 'Invalide';
    libelle_paiement[1] = 'PayPal';
    libelle_paiement[2] = 'Chèque';
    libelle_paiement[3] = 'Gratuit';
  }
}

function init_messages_meteorem(lang)
{
  local_messages = new Array();
  if (lang=='GB')
  {
    local_messages['Bdc'] = 'ScanNav MeteoGrib offer';
    local_messages['port'] = ' + Transportation fee';
    local_messages['nomincorrect'] = "  - The \"Last Name\" field must be filled\n"; 
    local_messages['emailincorrect'] = "  - The \"Email\" field must be filled\n";
    local_messages['paiementincorrect'] = "  - You must choose a payment facility\n"; 
    local_messages['commandevide'] = "  - Your order is Empty\n"; 
    local_messages['inconnu'] = "Unknown" ;
    local_messages['mauvaisecommande'] = "Your order has not been taken in account as it misses the following fields:\n";
  }
  else
  {
    local_messages['Bdc'] = 'ScanNav offre GRIB Météorem';
    local_messages['port'] = ' + Port';
    local_messages['nomincorrect'] = "  - Le champ \"Nom\" doit être renseigné\n"; 
    local_messages['emailincorrect'] = "  - Le champ \"E.mail\" doit être renseigné\n"; 
    local_messages['paiementincorrect'] = "  - Vous devez choisir un mode de paiement\n"; 
    local_messages['commandevide'] = "  - Votre commande est vide\n"; 
    local_messages['inconnu'] = "inconnu" ;
    local_messages['mauvaisecommande'] = "Votre commande n'a pas été prise en compte, car elle comporte les erreurs suivantes:\n";
  }
}

function initprices()
{
  prices = new Array();
  prices['void'] = 0;
  prices[1] = 35.88;
  prices[2] = 71.76;
  prices[3] = 107.64;
  prices[4] = 143.52;
  prices[5] = 181.80;
  var labels = new Array();
  labels[0] = "-- choisissez un type d'abonnement --";
  labels[1] = "Abonnement 1 mois (35,88€ TTC)";
  labels[2] = "Abonnement 2 mois (71,76€ TTC)";
  labels[3] = "Abonnement 3 mois (107,64€ TTC)";
  labels[4] = "Abonnement 4 mois (143,52€ TTC)";
  labels[5] = "Abonnement 1 an (181,80€ TTC)";
  var references = new Array();
  references[0] = "void";
  references[1] = "1 mois";
  references[2] = "2 mois";
  references[3] = "3 mois";
  references[4] = "4 mois";
  references[5] = "1 an";
  document.meteoform.select.options.length = 0;
  for(i =0; i < references.length; i++)
  {
    document.meteoform.select.options[i]=new Option(labels[i],references[i]);
  }
}

function calcmeteo(form)
{
  var total = 0;
  var commande = "";
  if (form.select.selectedIndex != 0)
  {
    total += prices[form.select.selectedIndex];
    commande += form.select.value;
    //commande += form.select.options[form.select.selectedIndex];
  }
  form.total.value = total ;
  form.prix.value = total ;
  form.commande.value = commande ;
}

function printablestartdate()
{
  var form = document.meteoform;
  var mois = tabMois[form.mois.value];
  return "" + form.jours.value + "-" + mois + "-"  + form.annee.value;
}

function openPayPal()
{
  if (!IsValidForm())
    return;
  var form = document.meteoform;
  params = 'scrollbars=yes,resizable=yes';
  var price = form.prix.value;
  var commande = form.commande.value;
  commande += ",Date de debut = " + printablestartdate() + "\n";

//  theURL = 'https://www.paypal.com/cgi-bin/webscr?cmd=_ext-enter&amp;redirect_cmd=_xclick&amp;first_name=&amp;last_name=&amp;business=lombard%2Dmarc%40wanadoo%2Efr&amp;amount='+price+'%2E00&amp;currency_code=EUR&amp;item_name='+commande+'&amp;item_number';
  theURL = 'https://www.paypal.com/cgi-bin/webscr?cmd=_ext-enter&redirect_cmd=_xclick&first_name=&last_name=&business=lombard%2Dmarc%40wanadoo%2Efr&amount='+price+'&currency_code=EUR&item_name=Abonnement Meteogrib:'+commande+'&item_number';
  winName = 'paypal';
  fenetre = window.open(theURL,winName,params);
  fenetre.focus();
  document.paypalalreadyopened = true;
  if (document.submitalreadyopened!=true)
  {
    CheckAndSubmit();
  }
}

function goPayPal()
{
  if (!IsValidForm())
    return;
  var form = document.meteoform;
//  params = 'scrollbars=yes,resizable=yes';
  var price = form.prix.value;
  var commande = form.commande.value;
  commande += ",Date de debut = " + printablestartdate() + "\n";
  //commande += "Date de début = '" + form.jours.value + "/" + form.mois.value + "/"  + form.annee.value + "'\n";

  theURL = 'https://www.paypal.com/cgi-bin/webscr?cmd=_ext-enter&redirect_cmd=_xclick&first_name=&last_name=&business=lombard%2Dmarc%40wanadoo%2Efr&amount='+price+'&currency_code=EUR&item_name=Abonnement Meteogrib:'+commande+'&item_number';
/*
  winName = 'paypal';
  fenetre = window.open(theURL,winName,params);
  fenetre.focus();
*/
  document.paypalalreadyopened = true;
  window.location.href=theURL;
}


function IsValidForm()
{
  typepaiement=-1;
  var form = document.meteoform;
  calcmeteo(form);
  msg = "";
  if (form.nom.value == "")
  {
    msg += local_messages['nomincorrect'];
  }
  if (form.email.value == "")
  {
    msg += local_messages['emailincorrect'];
  }
  for (var i=0; i< form.Optionpaiement.length; i++)
  {
    if (form.Optionpaiement[i].checked)
    {
      typepaiement=form.Optionpaiement[i].value;
      break;
    }
  } 
  if (typepaiement == -1)
  {
    msg += local_messages['paiementincorrect'];
  }
  if (form.total.value == 0)
  {
    msg += local_messages['commandevide'];
  }

  if (msg == "")
  {
    return true;
  }
  else
  {
    //msg += "commande = '" +  form.commande.value + "'\n" ;
    alert(local_messages['mauvaisecommande']+msg);
    return false;
  }
}

function CheckAndSubmit()
{
 try
 {
  if (IsValidForm())
  {
    var form = document.meteoform;
    var date = new Date();
    form.date.value = date;
    if (typepaiement == -1)
    {
      msg += local_messages['inconnu'];
    }
    else
    {
      form.paiement.value = libelle_paiement[typepaiement];
    }
    /*
    msg += "nom = '" +  form.nom.value + "'\n" ;
    msg += "email = '" +  form.email.value + "'\n" ;
    msg += "commande = '" +  form.commande.value + "'\n" ;
    if (typepaiement != -1)
    {
      msg += "OptionPaiement = '" +  typepaiement + ":" + libelle_paiement[typepaiement] + "'\n" ;
    }
    msg += "total = '" +  form.total.value + "'\n" ;
    msg += "Date = '" +  form.date.value + "'\n" ;
    msg += "Date de debut = " + printablestartdate() + "\n";
    msg += "Date début = '" + form.jours.value + "/" + form.mois.value + "/"  + form.annee.value + "'\n";

    alert("résultat ok\n" + msg );
    */
    document.submitalreadyopened=true;
    if (typepaiement==1 && document.paypalalreadyopened != true)
    {
	openPayPal();
    }
    form.submit();
    //alert("retour submit ok\n" );
    return false; // pour pas que le submit soit appellé une 2eme fois
  }
 }
 catch (e)
 {
   alert("Erreur CheckAndSubmit()\n" + e);
 }
 return false; // pour pas que le submit soit appellé une 2eme fois
}

// Version Gratuite

function IsValidFormFree()
{
  typepaiement=-1;
  var form = document.meteoform;
  //calcmeteo(form);
  form.total.value = 0 ;
  form.prix.value = 0 ;
  form.commande.value = "abonnement gratuit" ;
  typepaiement = 3;
  form.paiement.value = libelle_paiement[typepaiement];

  msg = "";
  if (form.nom.value == "")
  {
    msg += local_messages['nomincorrect'];
  }
  if (form.email.value == "")
  {
    msg += local_messages['emailincorrect'];
  }
  if (msg == "")
  {
    return true;
  }
  else
  {
    //msg += "commande = '" +  form.commande.value + "'\n" ;
    alert(local_messages['mauvaisecommande']+msg);
    return false;
  }
}

function CheckAndSubmitFree()
{
 try
 {
  if (IsValidFormFree())
  {
    var form = document.meteoform;
    var date = new Date();
    form.date.value = date;
    if (typepaiement == -1)
    {
      msg += local_messages['inconnu'];
    }
    else
    {
      form.paiement.value = libelle_paiement[typepaiement];
    }
    /*
    msg += "nom = '" +  form.nom.value + "'\n" ;
    msg += "email = '" +  form.email.value + "'\n" ;
    msg += "commande = '" +  form.commande.value + "'\n" ;
    if (typepaiement != -1)
    {
      msg += "OptionPaiement = '" +  typepaiement + ":" + libelle_paiement[typepaiement] + "'\n" ;
    }
    msg += "total = '" +  form.total.value + "'\n" ;
    msg += "Date = '" +  form.date.value + "'\n" ;
    msg += "Date de debut = " + printablestartdate() + "\n";
    msg += "Date début = '" + form.jours.value + "/" + form.mois.value + "/"  + form.annee.value + "'\n";

    alert("résultat ok\n" + msg );
    */
    document.submitalreadyopened=true;
    if (typepaiement==1 && document.paypalalreadyopened != true)
    {
	openPayPal();
    }
    form.submit();
    //alert("retour submit ok\n" );
    return false; // pour pas que le submit soit appellé une 2eme fois
  }
 }
 catch (e)
 {
   alert("Erreur CheckAndSubmit()\n" + e);
 }
 return false; // pour pas que le submit soit appellé une 2eme fois
}

//OBSOLETE Pour compatibilite au cas ou
function CheckValid()
{
  // alert("Coucou\n" );
  return CheckAndSubmit();
}
function OldCheckValid()
{
  var form = document.meteoform;
  calcmeteo(form);
  msg = "";
  if (form.nom.value == "")
  {
    msg += local_messages['nomincorrect'];
  }
  if (form.email.value == "")
  {
    msg += local_messages['emailincorrect'];
  }
  var typepaiement=-1;
  for (var i=0; i< form.Optionpaiement.length; i++)
  {
    if (form.Optionpaiement[i].checked)
    {
      typepaiement=form.Optionpaiement[i].value;
      break;
    }
  } 
  if (typepaiement == -1)
  {
    msg += local_messages['paiementincorrect'];
  }
  if (form.total.value == 0)
  {
    msg += local_messages['commandevide'];
  }
  if (msg == "")
  {
    var date = new Date();
    form.date.value = date;
    if (typepaiement == -1)
    {
      msg += local_messages['inconnu'];
    }
    else
    {
      form.paiement.value = libelle_paiement[typepaiement];
    }
    /*
    msg += "nom = '" +  form.nom.value + "'\n" ;
    msg += "email = '" +  form.email.value + "'\n" ;
    msg += "commande = '" +  form.commande.value + "'\n" ;
    if (typepaiement != -1)
    {
      msg += "OptionPaiement = '" +  typepaiement + ":" + libelle_paiement[typepaiement] + "'\n" ;
    }
    msg += "total = '" +  form.total.value + "'\n" ;
    msg += "Date = '" +  form.date.value + "'\n" ;
    alert("résultat ok\n" + msg );
    */
    if (typepaiement==1 && document.paypalalreadyopened != true)
    {
	openPayPal();
    }
    form.submit();
    //alert("retour submit ok\n" );
    return false; // pour pas que le submit soit appellé une 2eme fois
  }
  else
  {
    //msg += "commande = '" +  form.commande.value + "'\n" ;
    alert(local_messages['mauvaisecommande']+msg);
    return false;
  }
}


// Gestion date de début et fin en fonction de l'option choisie
function adddate(formulaire,nbAnnee,anneeDepart)
{
  formulaire = "document." + formulaire; 
  document.write('<select name="jours" OnChange="afficheJourFin('+formulaire+')"></select>');
  document.write('<select name="mois" OnChange="afficheJours(this,'+formulaire+'.annee,'+formulaire+'.jours)"></select>');
  document.write('<select name="annee" OnChange="afficheJours('+formulaire+'.mois,this,'+formulaire+'.jours)"></select>');
  tabJours = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
  tabMois = new Array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
  tabAnnee = new Array();
  var i;
  for(i = 0 ; i<nbAnnee ; i++)tabAnnee[i] = anneeDepart+i;
  for(i in tabAnnee)eval(formulaire).annee.options[eval(formulaire).annee.options.length] = new Option(tabAnnee[i],tabAnnee[i]);
  for(i in tabMois)eval(formulaire).mois.options[eval(formulaire).mois.options.length] = new Option(tabMois[i],i);
}

function afficheJours(mois,annee,jours)
{
  jours.options.length = 0;
  currentYear = annee.options[annee.options.selectedIndex].value;
  currentMonth = mois.options[mois.options.selectedIndex].value;
  afficheJourDuMois(jours,currentYear,currentMonth);
}

function afficheJourDuMois(list,currentYear,currentMonth)
{
  var moisSuivant = 0;	
  var timeMoisCourant = Date.UTC(currentYear, currentMonth, 1);
  if(currentMonth == 11)
  {
    moisSuivant=0;
    annneeSuivante = parseInt(currentYear) + 1;
  } else {
    moisSuivant = parseInt(currentMonth)+1;
    annneeSuivante = currentYear;
  }
  var timeMoisSuivant = Date.UTC(annneeSuivante, moisSuivant, 1);
  var intervalle = timeMoisSuivant - timeMoisCourant;
  var nbJours = intervalle/(24*60*60*1000);
  for(var i = 0; i<nbJours ; i++){
    list.options[list.options.length] = new Option(i+1,i+1);
  }
  afficheJourFin(document.meteoform);
}

function afficheJourSuivant(form,nbjours)
{
  form.jours.options.length = 0;
  var now = new Date();
  var absolu_maintenant = now.getTime();
  var absolu_ensuite = absolu_maintenant + (nbjours*24*60*60*1000);
  now.setTime(absolu_ensuite);
  var moisSuivant = now.getMonth() + 1;
  var currentMonth = now.getMonth();	
  var currentYear = now.getYear();
  if (currentYear<2000)
  {
    // pour 2000, certains explorer retournent 100, d'autre 2000...
    currentYear += 1900;
  }	
  var timeMoisCourant = Date.UTC(currentYear, currentMonth, 1);
  if(currentMonth == 11)
  {
    moisSuivant=0;
    annneeSuivante = parseInt(currentYear) + 1;
  } else {
    moisSuivant = parseInt(currentMonth)+1;
    annneeSuivante = currentYear;
  }
  var timeMoisSuivant = Date.UTC(annneeSuivante, moisSuivant, 1);
  var intervalle = timeMoisSuivant - timeMoisCourant;
  var nbJours = intervalle/(24*60*60*1000);
  for(var i = 0; i<nbJours ; i++){
    form.jours.options[form.jours.options.length] = new Option(i+1,i+1);
  }
  form.jours.selectedIndex = now.getDate()-1;
  form.mois.selectedIndex = currentMonth;
  form.annee.selectedIndex = currentYear-2005;
  afficheJourFin(form);
}
function afficheJourCourant(form)
{
  afficheJourSuivant(form,0);
}

function afficheJourFin(form)
{
  var fin = new Date();
  var debut = new Date(form.annee.selectedIndex+2005,form.mois.selectedIndex,form.jours.selectedIndex+1);
  form.datedebut.value = debut.getDate() + " " + tabMois[debut.getMonth()] + " " + debut.getFullYear();
  switch (form.select.selectedIndex) {
  case 0:
    form.datefin.value = "Veuillez sélectionner un type d'abonnement";
    return;
    //break;
  case 1:
  case 2:
  case 3:
  case 4:
    fin = new Date(form.annee.selectedIndex+2005,form.mois.selectedIndex+form.select.selectedIndex,form.jours.selectedIndex+1);
    form.datefin.value = fin.getDate() + " " + tabMois[fin.getMonth()] + " " + fin.getFullYear();
    return;
    //break;
  case 5:
    fin = new Date(form.annee.selectedIndex+2005+1,form.mois.selectedIndex,form.jours.selectedIndex+1);
    form.datefin.value = fin.getDate() + " " + tabMois[fin.getMonth()] + " " + fin.getFullYear();
    return;
    //break;
  default:
    alert("Bad selected option");
    return;
    //break;
  }
}
