function CheckURL(url) {
  var result;
  result = "";
  if ((url != "") && (url.SubStr(0, 7).toLowerCase() == "http://")) {
    result = url.toLowerCase();
  }
  return result;
}

function CheckRemaining(frm, maxlength, inputctrl) {
  var result, s;
  s = new String(inputctrl.value);
  result = maxlength - s.length;
  return result;
}

/************************************ FORMULAIRE DE RECHERCHE DE PROMOTIONS. */
function CheckSearchPromos(frm, cmd, lng) {
  var msg;
  if (lng == "GB") {
    msg = new Array("Please select a lodging categorie !");
  }
  else {
    msg = new Array("Veuillez sélectionner un type d'hébergement !");
  }
  // Cette fonction effectue une validation de base des paramètres de la recherche.
  if (frm.elements["IDCategorie"].value == "") {
    alert(msg[0]);
    frm.elements["IDCategorie"].focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/************************************* FORMULAIRE DE RECHERCHE DE BONS PLANS. */
function CheckSearchBonsPlans(frm, cmd, lng) {
  var msg;
  if (lng == "GB") {
    msg = new Array("Please select a lodging categorie !");
  }
  else {
    msg = new Array("Veuillez sélectionner un type d'hébergement !");
  }
  // Cette fonction effectue une validation de base des paramètres de la recherche.
  if (frm.elements["IDCategorie"].value == "") {
    alert(msg[0]);
    frm.elements["IDCategorie"].focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/************************************ FORMULAIRE DE RECHERCHE D'HEBERGEMENTS. */
function CheckSearch(frm, cmd, lng) {
  var d1, d2, nbp, n, msg;
  if (lng == "GB") {
    msg = new Array("Please select a lodging categorie !",
      "Invalid begin of period specified !",
      "Invalid end of period specified !",
      "Invalid period specified !",
      "Invalid number of persons specified !");
  }
  else {
    msg = new Array("Veuillez sélectionner un type d'hébergement !",
      "La date de début de période est incorrecte !",
      "La date de fin de période est incorrecte !",
      "La période spécifiée est incorrecte !",
      "Le nombre de personnes spécifié est incorrect !");
  }
  // Cette fonction effectue une validation de base des paramètres de la recherche.
  d1 = new Date(frm.elements["a1"].value, frm.elements["m1"].value-1, frm.elements["j1"].value);
  d2 = new Date(frm.elements["a2"].value, frm.elements["m2"].value-1, frm.elements["j2"].value);
  d = new Date();
  d.setTime(0);
  nbp = document.getElementById("IDNbPers");
  if (frm.elements["NbPers"].value == "") {
    n = 0;
  }
  else {
    n = parseInt(frm.elements["NbPers"].value); 
    if (isNaN(n)) {
      n = 0;
    }
  }
  if (frm.elements["hebgt"].value == "") {
    alert(msg[0]);
    frm.elements["hebgt"].focus();
  }
  else if (d1.valueOf() < d.valueOf()) {
    alert(msg[1]);
    frm.elements["j1"].focus();
  }                            
  else if (d2.valueOf() < d.valueOf()) {
    alert(msg[2]);
    frm.elements["j2"].focus();
  }
  else if (d2.valueOf() < d1.valueOf()) {
    alert(msg[3]);
    frm.elements["j1"].focus(); 
  }
  else if ((nbp.style.display == "") && (n < 1)) {
    alert(msg[4]);
    frm.elements["NbPers"].focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckSelHebgt(frm) {
  /* Cette fonction montre et cache les infos contextuellement suivant le type
  d'hébergement sélectionné dans la liste. */
  var d = document, e1, e2;
  e1 = d.getElementById("IDNbPers");
  e2 = d.getElementById("IDNbStars");
  Hide(e1);
  Hide(e2);
  if ((frm.elements["hebgt"].value == 286)      // Meublés classés  
    || (frm.elements["hebgt"].value == 241)     // Meublés non-classés
    || (frm.elements["hebgt"].value == 172)) {  // Héberg. Collectifs
    Show(e1);
  }                                        
  else if ((frm.elements["hebgt"].value == 136) // Campings
    || (frm.elements["hebgt"].value == 169)) {  // Hôtels
    Show(e2);
  }
  return false;
}

function Show(obj) {
  obj.style.display = "";
}                        

function Hide(obj) {
  obj.style.display = "none";
}

/* Fonction générique de suppression. */
function CheckDelete(frm, cmd, question) {
  var ret = confirm(question);
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/* Fonction submit générique */
function CheckExecute(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

/******************************************************************* COMMUNES */
function CheckCommuneDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette commune ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNewCommune(frm, cmd, Commune, CP, INSEE, Infos, Pays) {
  if (Commune.value == "") {
    alert("Vous devez saisir le nom de la commune !");
    Commune.focus();
  }                 
  else if (CP.value == "") {
    alert("Vous devez saisir le code postal de la commune !");
    CP.focus();
  }
  else if (Pays.value == 0) {
    alert("Vous devez spécifier le pays de la commune !");
    Pays.focus();
  }              
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/********************************************************************* FICHES */
function CheckFicheDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette Fiche ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNewFiche(frm, cmd, Id_Cat, Id_Office_Tourisme, Id_Commune, Validation, 
  Titre, Contact, Adresse, Tel_Fix, Fax, Tel_Mob, Email, Lien_Site, Lien_Page, Lib_Prix_Max, 
  Prix_Max, Lib_Capacite_Max, Capacite_Max, Lib_Classement, Classement, Fiche_Guide, 
  Lien_Site_Visible, Fiche_Guide2, NoteForm, Hebgt, HebgtAdresse, 
  HebgtTel_Fix, HebgtIDCommune, Chambres, Lits, CommerceKM) {
  if (Id_Cat.value == 0) {
    alert("Vous devez sélectionner une catégorie !");
    Id_Cat.focus();      
  }
  else if (Id_Commune.value == 0) {
    alert("Vous devez sélectionner une commune !");
    Id_Commune.focus();
  }      
  else if (Id_Office_Tourisme.value == 0) {
    alert("Vous devez sélectionner un office de tourisme !");
    Id_Office_Tourisme.focus();      
  }
  else if (Titre.value == "") {
    alert("Vous devez spécifier un titre !");
    Titre.focus();      
  }
  else if ((Prix_Max.value > 0) && (Lib_Prix_Max.value == "")) {
    alert("Vous devez associer un libellé au prix maximum !");
    Lib_Prix_Max.focus();      
  }         
  else if ((Prix_Max.value == 0) && (Lib_Prix_Max.value != "")) {
    alert("Vous devez spécifier un prix correspondant au libellé !");
    Prix_Max.focus();      
  }                    
  else if ((Capacite_Max.value > 0) && (Lib_Capacite_Max.value == "")) {
    alert("Vous devez associer un libellé avec la capacité maximum !");
    Lib_Capacite_Max.focus();      
  }
  else if ((Capacite_Max.value == 0) && (Lib_Capacite_Max.value != "")) { 
    alert("Vous devez spécifier une capacité correspondant au libellé !");
    Capacite_Max.focus();      
  }
/*
  else if ((Classement.value > 0) && (Lib_Classement.value == "")) {
    alert("Vous devez associer un libellé avec le classement !");
    Lib_Classement.focus();      
  }
  else if ((Classement.value == 0) && (Lib_Classement.value != "")) {
    alert("Vous devez spécifier un classement correspondant au libellé !");
    Classement.focus();      
  }
*/
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}
                
/************************************************************* FICHES DETAILS */
function CheckNewFicheDetail(frm, cmd, Texte_Resume, Descriptif, Mots_cle, 
  Horaires, PeriodeOuverture, Avantages, BonPlan) {
/*
  if ((Descriptif.value == "") && (Mots_cle.value == "") 
    && (Horaires.value == "") && (Avantages.value == "")) {
    alert("Vous devez saisir au moins une zone !!");
    Descriptif.focus();
  }
  else {*/
    frm.elements["cmd"].value = cmd;
    frm.submit();
/*  }*/
}

/********************************************************** FICHES PROMOTIONS */
function CheckNewFichePromotion(frm, cmd, j1, m1, a1, j2, m2, a2, 
  DescriptionFR, ConditionsFR, DescriptionGB, ConditionsGB) {
	d1 = new Date(a1.value, m1.value-1, j1.value);
	d2 = new Date(a2.value, m2.value-1, j2.value);
  d = new Date();
  if (DescriptionFR.value == "") {
    alert("Veuillez saisir la description de la promotion en français !");
    DescriptionFR.focus();
  }
  else if (DescriptionGB.value == "") {
    alert("Veuillez saisir la description de la promotion en anglais !");
    DescriptionGB.focus();
  }
  else if ((d1.valueOf() > d2.valueOf())) {
    alert("La période promotionelle définie est incorrecte !");
    j1.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckSupprimerFichePromotion(frm, cmd, IDFichePromotion) {
  if (IDFichePromotion > 0) {
    if (confirm("Etes-vous certain de vouloir supprimer cette promotion ?")) {
      frm.elements["IDFichePromotion"].value = IDFichePromotion;
      frm.elements["cmd"].value = cmd;
      frm.submit();
    }
  }
}

function CheckFichePromotionDelete(frm, cmd) {
  var msg = "Etes-vous certain de vouloir supprimer cette promotion ?"
  if (confirm(msg)) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/************************************************************** FICHES TARIFS */
function CheckNewFicheTarif(frm, cmd, Id_Fiche, IDLabelTarif, Tarif, j1, m1, a1, j2, m2, a2, isdatebased) {
	d1 = new Date(a1.value, m1.value-1, j1.value);
	d2 = new Date(a2.value, m2.value-1, j2.value);
  d = new Date();
  if (Tarif.value == "") {
    alert("Veuillez saisir un tarif !");
    Tarif.focus();
  }
  else if ((IDLabelTarif.value == 0) && (d1.valueOf() < d.valueOf()) && (d2.valueOf() < d.valueOf())) {
    alert("Veuillez sélectionner une formule tarifaire ou définir une période tarifaire !");
    IDLabelTarif.focus();
  }
  else if ((isdatebased.value == 0) && (IDLabelTarif.value == 0)) {
    alert("Veuillez sélectionnez une formule tarifaire !");
    IDLabelTarif.focus();
  }
  else if ((isdatebased.value == 1) && (d1.valueOf() > d2.valueOf())) {
    alert("La période tarifaire définie est incorrecte !");
    j1.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckSupprimerFicheTarif(frm, cmd, IDFicheTarif) {
  if (IDFicheTarif > 0) {
    if (confirm("Etes-vous certain de vouloir supprimer ce tarif ?")) {
      frm.elements["IDFicheTarif"].value = IDFicheTarif;
      frm.elements["cmd"].value = cmd;
      frm.submit();
    }
  }
}

/************************************************************** LABELS TARIFS */
function CheckNewLabelTarif(frm, cmd, HebgtCat, Ordre, IsGlobal, LabelTarifFR, LabelTarifGB) {
  if (HebgtCat.value == 0) {
    alert("Veuillez spécifier une catégorie d'hébergement !");
    HebgtCat.focus();
  }
  else if (LabelTarifFR.value == "") {
    alert("Veuillez saisir une formule tarifaire en français");
    LabelTarifFR.focus();
  }
  else if (LabelTarifGB.value == "") {
    alert("Veuillez saisir une formule tarifaire en anglais");
    LabelTarifGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}
 
function CheckLabelTarifDelete(frm, cmd) {
  var msg = "Etes-vous certain de vouloir supprimer cette formule tarifaire ?"
  if (confirm(msg)) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckAddLabelTarif(frm, cmd, frmaction) {
  frm.action = frmaction;
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

/************************************************************* MANIFESTATIONS */
function CheckNewManif(frm, cmd, OT, ManifCat, dda, ddm, ddj, dfa, dfm, dfj, Lieu, Rens, 
  TitreFR, ResumeFR, ContenuFR, TitreGB, ResumeGB, ContenuGB) { 
  // NOTE: en JavaScript, les mois sont représentés de 0 à 11.
	d1 = new Date(dda.value, ddm.value-1, ddj.value);
	d2 = new Date(dfa.value, dfm.value-1, dfj.value);
	if (d2.valueOf() < d1.valueOf()) {
		alert("Les dates spécifiées sont incorrectes !");
		ddj.focus();
	}
 	else if (OT.value == "0") {
		alert("Vous n'avez pas spécifié à quel OT cette manifestation est associée !");
		OT.focus();
	}
  else if (ManifCat.Value == "0") {
		alert("Vous n'avez pas spécifié la catégorie de la manifestation !");
		ManifCat.focus();
  } 
 	else if (Lieu.value == "") {
		alert("Vous n'avez pas spécifié le lieu de la manifestation !");
		Lieu.focus();
	} 
 	else if (TitreFR.value == "") {
		alert("Vous n'avez pas spécifié le titre (FR) de la manifestation !");
		TitreFR.focus();
	} 
 	else if (TitreGB.value == "") {
		alert("Vous n'avez pas spécifié le titre (GB) de la manifestation !");
		TitreGB.focus();
	} 
	else {
    frm.elements["cmd"].value = cmd;
		frm.submit();
	}
}

function CheckManifToArticle(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}									

function CheckManifDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette manifestation ?");
	if (ret) {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
	}
}

/******************************************************** OFFICES DE TOURISME */
function CheckOTDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cet office de tourisme ?");
	if (ret) {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
	}
}

function CheckNewOT(frm, cmd, nom, ottype, tel, tel2, fax, email, email2, site, 
  adresse, commune, note) {
  if (nom.value == "") {
    alert("Veuillez spécifier un nom pour l'office de tourisme");
    nom.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
  }
}

/************************************************************* DISPONIBILITES */
function CheckSetDispo(frm, cmd, dispo, j1, m1, a1, j2, m2, a2) {
  // NOTE: en JavaScript, les mois sont représentés de 0 à 11.
	d1 = new Date(a1.value, m1.value-1, j1.value);
	d2 = new Date(a2.value, m2.value-1, j2.value);

	if (d2.valueOf() < d1.valueOf()) {
		alert('Les dates spécifiées sont incorrectes !');
		j1.focus();
	}
	else if (dispo.value == "") {
		alert("Vous n'avez pas précisé la disponibilité !");
		dispo.focus();
	} 
	else {
	  frm.elements["cmd"].value = cmd;
		frm.submit();
	}
}

/*************************************************************** PICTOGRAMMES */
function CheckNewPicto(frm, cmd, ordre, titre, icone) {
	if (ordre.value == "") {
		alert("Vous n'avez pas spécifié d'ordre !");
		ordre.focus();
	}
 	else if (titre.value == "") {
		alert("Vous n'avez pas spécifié de titre pour le picto !");
		titre.focus();
	} 
 	else if (icone.value == "") {
		alert("Vous n'avez pas spécifié d'icone associée au picto !");
		icone.focus();
	} 
	else {
    frm.elements["cmd"].value = cmd;
		frm.submit();
	}
}
									
function CheckPictoDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce pictogramme ?");
	if (ret) {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
	}
}

/******************************************************* PROFILS UTILISATEURS */
function CheckComptePerdu(frm, cmd, email) {
  if (email.value == "") {
    alert("Veuillez spécifier une adresse email !");
    email.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
  }
}                 

function CheckNewUser(frm, cmd, login, pw1, pw2, nom, email, profil) {
  if (login.value == "") {
    alert("Veuillez spécifier un login !");
    login.focus();
  }
  else if (email.value == "") {
    alert("Veuillez spécifier un email !");
    email.focus();
  }
  else if (pw1.value == "") {
    alert("Veuillez spécifier un mot de passe !");
    pw1.focus();
  }
  else if (pw2.value == "") {
    alert("Veuillez confirmer le mot de passe !");
    pw2.focus();
  }
  else if (pw1.value != pw2.value) {
    alert("Les deux mots de passe ne correspondent pas ! Veuillez les saisir à nouveau.");
    pw1.value = ""
    pw2.value = ""
    pw1.focus();
  }
  else if (profil.value < 1) {
    alert("Veuillez spécifier un prilf utilisateur !");
    profil.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
  }
}

function CheckUserDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cet utilisateur ?");
	if (ret) {
    frm.elements["cmd"].value = cmd;
	  frm.submit();
	}
}

function CheckACLItems(frm, btncmd, lst1, lst2) {
  /* Cette fonction permet de transférer des éléments d'une liste à l'autre
  dans le contexte d'une sélection à double liste. btncmd peut contenir les 
  valeurs string suivantes:
    * "addall": tous les éléments de lst1 sont transférés dans lst2.
    * "addsel": les éléments sélectionnés de lst1 sont transférés dans lst2.
    * "delsel": les éléments sélectionnés de lst2 sont trnasférés dans lst1.
    * "delall": tous les éléments de lst2 sont transférés dans lst1. 
  Les paramètres lst1 et lst2 représentent respectivement la liste de gauche
  (éléments disponibles) et la liste de droite (éléments sélectionnés). */
  if (btncmd == 'addall') {
    while (lst1.length > 0) {
      opt = lst1.options[0];
      nopt = new Option(opt.text, opt.value, true, true);
      lst2.options[lst2.length] = nopt;
      lst1.options[0] = null;
    }
  }
  else if (btncmd == 'addsel') {
    for (i = lst1.length-1; i >= 0; i--) {
      opt = lst1.options[i];
      if (opt.selected) {
        nopt = new Option(opt.text, opt.value, true, true);
        lst2.options[lst2.length] = nopt;
        lst1.options[i] = null;
      }
    }
  }
  else if (btncmd == 'delsel') {
    for (i = lst2.length-1; i >= 0; i--) {
      opt = lst2.options[i];
      if (opt.selected) {
        nopt = new Option(opt.text, opt.value, true, true);
        lst1.options[lst1.length] = nopt;
        lst2.options[i] = null;
      }
    }
  }
  else if (btncmd == 'delall') {
    while (lst2.length > 0) {
      opt = lst2.options[0];
      nopt = new Option(opt.text, opt.value, true, true);
      lst1.options[lst1.length] = nopt;
      lst2.options[0] = null;
    }
  }
}      

function CheckNewACLItems(frm, cmd, lst2) {
  var i;
  // Présélectionner tous les éléments avant d'envoyer le form !
  for (i=0; i<lst2.length;i++) {
     lst2.options[i].selected = true;
  }
  frm.elements['cmd'].value = cmd;
  frm.submit();
}

/*********************************************************************** PAYS */
function CheckPaysDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce pays ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNewPays(frm, cmd, pays) {
  if (pays.value == "") {
    alert("Vous devez saisir le nom d'un pays !");
    pays.focus();
  }                 
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/********************************************************************** LIENS */
function CheckLienDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce lien ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNewLien(frm, cmd, nom, url, partenaire, photo, ordre) {
  if (nom.value == "") {
    alert("Vous devez saisir le nom du lien !");
    nom.focus();
  }                 
  else if (url.value == "") {
    alert("Vous devez saisir l'url du lien !");
    url.focus();
  }                 
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckLienDeletePhoto(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer la photo de ce lien ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/*********************************************************** UPLOADS FICHIERS */
function CheckFileDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce fichier du serveur ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewFile(frm, cmd, doc, usage) {
  if (doc.value == "") {
    alert("Vous n'avez pas spécifié de fichier à télécharger !");
    doc.focus();
  }
  else if (usage.value == "") {
    alert("Vous devez spécifier l'usage de ce fichier. Il détermine le dossier où il sera stocké sur le site.");
    usage.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/************************************************** MANIFESTATIONS CATEGORIES */
function CheckManifestationCatDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette catégorie de manifestation ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewManifestationCat(frm, cmd, Ordre, NomFR, NomGB) {
  if (NomFR.value == "") {
    alert("Veuillez saisir un intitulé de catégorie de manifestation en français");
    NomFR.focus();
  }
  else if (NomGB.value == "") {
    alert("Veuillez saisir un intitulé de catégorie de manifestation en anglais");
    NomGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckManifestationPublication(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

/******************************************************************* ARTICLES */
function CheckArticleDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cet article ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewArticle(frm, cmd, Photo, TitreFR, IntroFR, ContenuFR, TitreGB, IntroGB, ContenuGB) {
  if (TitreFR.value == "") {
    alert("Veuillez saisir un titre en français.");
    TitreFR.focus();
  }
  else if (TitreGB.value == "") {
    alert("Veuillez saisir un titre en anglais.");
    TitreGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckArticlePublication(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

/************************************************************* COURTS SEJOURS */
function CheckCourtSejourDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce court séjour ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewCourtSejour(frm, cmd, Photo1, Photo2, ddj, ddm, dda, dfj, dfm, dfa, 
  csddj, csddm, csdda, csdfj, csdfm, csdfa, PrixBase, ContactNom, ContactTel, ContactEmail, 
  TitreFR, SousTitreFR, DureeFR, ConditionsBaseFR, DescriptionFR, InclusFR, ExclusFR, 
  TitreGB, SousTitreGB, DureeGB, ConditionsBaseGB, DescriptionGB, 
  InclusGB, ExclusGB) {
  var d1, d2, d3, d4;
  PrixBase.value = parseFloat(PrixBase.value);
  // NOTE: en JavaScript, les mois sont représentés de 0 à 11.
	d1 = new Date(dda.value, ddm.value-1, ddj.value);
	d2 = new Date(dfa.value, dfm.value-1, dfj.value);
	d3 = new Date(csdda.value, csddm.value-1, csddj.value);
	d4 = new Date(csdfa.value, csdfm.value-1, csdfj.value);
	if (d2.valueOf() < d1.valueOf()) {
		alert("La date de fin est avant la date de début !");
		ddj.focus();
	}
	else if (d4.valueOf() < d3.valueOf()) {
		alert("La date de fin du court séjour est avant la date de début !");
		csddj.focus();
	}
  else if (isNaN(PrixBase.value)) {
    alert("Veuillez saisir un prix de base numérique.");
    PrixBase.focus();
  }
  else if (TitreFR.value == "") {
    alert("Veuillez saisir un titre en français.");
    TitreFR.focus();
  }
  else if (DureeFR.value == "") {
    alert("Veuillez saisir la durée de ce court séjour en jours/nuits (en français).");
  }                                                                                
  else if (TitreGB.value == "") {
    alert("Veuillez saisir un titre en anglais.");
    TitreGB.focus();
  }
  else if (DureeGB.value == "") {
    alert("Veuillez saisir la durée de ce court séjour en jours/nuits (en anglais).");
  }                                                                                
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckCourtSejourPublication(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

/**************************************************************** NEWSLETTERS */
function CheckNewsletterDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette newsletter ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewNewsletter(frm, cmd, TitreFR, IntroFR, ContenuFR, TitreGB, IntroGB, ContenuGB) {
  if (TitreFR.value == "") {
    alert("Veuillez saisir un titre en français.");
    TitreFR.focus();
  }
  else if (TitreGB.value == "") {
    alert("Veuillez saisir un titre en anglais.");
    TitreGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNWLItems(frm, btncmd, lst1, lst2) {
  /* Cette fonction permet de transférer des éléments d'une liste à l'autre
  dans le contexte d'une sélection à double liste. btncmd peut contenir les 
  valeurs string suivantes:
    * "addall": tous les éléments de lst1 sont transférés dans lst2.
    * "addsel": les éléments sélectionnés de lst1 sont transférés dans lst2.
    * "delsel": les éléments sélectionnés de lst2 sont trnasférés dans lst1.
    * "delall": tous les éléments de lst2 sont transférés dans lst1. 
  Les paramètres lst1 et lst2 représentent respectivement la liste de gauche
  (éléments disponibles) et la liste de droite (éléments sélectionnés). */
  if (btncmd == 'addall') {
    while (lst1.length > 0) {
      opt = lst1.options[0];
      nopt = new Option(opt.text, opt.value, true, true);
      lst2.options[lst2.length] = nopt;
      lst1.options[0] = null;
    }
  }
  else if (btncmd == 'addsel') {
    for (i = lst1.length-1; i >= 0; i--) {
      opt = lst1.options[i];
      if (opt.selected) {
        nopt = new Option(opt.text, opt.value, true, true);
        lst2.options[lst2.length] = nopt;
        lst1.options[i] = null;
      }
    }
  }
  else if (btncmd == 'delsel') {
    for (i = lst2.length-1; i >= 0; i--) {
      opt = lst2.options[i];
      if (opt.selected) {
        nopt = new Option(opt.text, opt.value, true, true);
        lst1.options[lst1.length] = nopt;
        lst2.options[i] = null;
      }
    }
  }
  else if (btncmd == 'delall') {
    while (lst2.length > 0) {
      opt = lst2.options[0];
      nopt = new Option(opt.text, opt.value, true, true);
      lst1.options[lst1.length] = nopt;
      lst2.options[0] = null;
    }
  }
}      

function CheckNewNWLItems(frm, cmd, lst2) {
  // Présélectionner tous les éléments avant d'envoyer le form !
  for (i=0; i<lst2.length;i++) {
     lst2.options[i].selected = true;
  }
  frm.elements['cmd'].value = cmd;
  frm.submit();
}

function CheckSendNewsletter(frm, sendto, contact, nom, email, langue) {
  if (sendto == "") {
    alert("Vous n'avez pas choisi de destinataire !");
  }
  else if (sendto == 'me') {
    frm.submit();
  }
  else if (sendto == 'list') {
    frm.submit();
  }
  else if (sendto == 'user') {
    if (contact.value == "0") {
      alert("Vous n'avez pas sélectionné d'utilisateur destinataire !");
      contact.setfocus();
    }
    else { 
      frm.submit();
    }
  } 
  else if (sendto == 'other') {
    if (email.value == "") {
      alert("Vous n'avez pas saisi l'adresse email du destinataire !");
      email.setfocus();
    }
    else if (langue.value == "") {
      alert("Vous n'avez pas sélectionné la langue pour l'envoi du mail.");
      langue.setfocus();
    }
    else { 
      frm.submit();
    }
  }
}

function CheckUnsubscribe(frm, cmd, email, langue) {
  if (email.value == "") {
    if (langue != "FR") { 
      alert("Please enter an email address !");
    }
    else {
      alert("Veuillez saisir une adresse email !");
    }
    email.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/******************************************************** ABONNES NEWSLETTERS */
function CheckAbonneDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cet abonné ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckNewAbonne(frm, cmd, Email, Langue) {
  if (Email.value == "") {
    alert("Veuillez saisir l'adresse email de l'abonné.");
    Email.focus();
  }
  else if (Langue.value == "") {
    alert("Veuillez sélectionner la langue de diffusion pour cet abonné.");
    Langue.focus();
  }
  else {     
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckAbonneSubscribe(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}
             
function CheckAbonneUnsubscribe(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}
             
function CheckAbonnesSubscribe(frm, cmd) { // inscription multiple.
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

function CheckAbonneSPAM(frm, cmd) {
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

function CheckMarkSPAM(frm, cmd, email) {
  if (email.value == "") {
    alert("Pas d'adresse email spécifiée !");
    email.focus();
  }               
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}
             
/****************************************************************** DOCUMENTS */
function CheckDocumentDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer ce document ? Cela ne supprime pas le fichier.");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewDocument(frm, cmd, Titre, URL, EstPrive, EstPublic, Ordre, IDDocumentCat, DateDebutVisible, DateFinVisible, Photo, Description) {
  if (Titre.value == "") {
    alert("Veuillez saisir le titre du document.");
    Titre.focus();
  }
  else if (URL.value == "") {
    alert("Veuillez sélectionner un fichier dans la liste.");
    URL.focus();
  }
  else if (IDDocumentCat.value == "") {
    alert("Veuillez spécifier une catégorie pour ce document.");
    IDDocumentCat.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/**************************************************** CATEGORIES DE DOCUMENTS */
function CheckDocumentCatDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette catégorie de document ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewDocumentCat(frm, cmd, Ordre, NomFR, NomGB) {
  if (NomFR.value == "") {
    alert("Veuillez saisir l'intitulé de la catégorie de documents en français.");
    NomFR.focus();
  }
  else if (NomGB.value == "") {
    alert("Veuillez saisir l'intitulé de la catégorie de documents en anglais.");
    NomGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/************************************************************ RESOURCESTRINGS */
function CheckResourceStringDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cette resourcestring ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewResourceString(frm, cmd, Nom, ValeurFR, ValeurGB) {
  if (Nom.value == "") {
    alert("Veuillez saisir un nom pour identifier la resourcestring.");
    Nom.focus();
  }
  else if (ValeurFR.value == "") {
    alert("Veuillez saisir la valeur de la resourcestring en français.");
    ValeurFR.focus();
  }
  else if (ValeurGB.value == "") {
    alert("Veuillez saisir la valeur de la resourcestring en anglais.");
    ValeurGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

/******************************************************* REQUETES SQL (ADMIN) */
function CheckQuery(frm, cmd, QuerySQL) {
  if (QuerySQL.value == "") {
    alert("Veuillez saisir une requête SQL.");
    QuerySQL.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  } 
}

/*********************************************************** OFFICES HORAIRES */
function CheckOfficeHoraireDelete(frm, cmd) {
  var ret = confirm("Etes vous sur de vouloir supprimer cet horaire ?");
  if (ret) {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}                                            

function CheckNewOfficeHoraire(frm, cmd, IDJour, 
  j1, m1, a1, j2, m2, a2, ho, mo, hf, mf) {
  var d1, d2, h1, h2;
  d1 = new Date(a1.value, m1.value, j1.value);
  d2 = new Date(a2.value, m2.value, j2.value);
  h1 = new Date(0, 0, 0, ho.value, mo.value, 0);
  h2 = new Date(0, 0, 0, hf.value, mf.value, 0);
  if (IDJour.value < 1) {
    alert("Veuillez sélectionner un jour.");
    IDJour.focus();
  }
  else if (j1.value == "") {
    alert("Date de début incomplète !");
    j1.focus();
  }
  else if (m1.value == "") {
    alert("Date de début incomplète !");
    m1.focus();
  }
  else if (a1.value == "") {
    alert("Date de début incomplète !");
    a1.focus();
  }
  else if (j2.value == "") {
    alert("Date de fin incomplète !");
    j2.focus();
  }
  else if (m2.value == "") {
    alert("Date de fin incomplète !");
    m2.focus();
  }
  else if (a2.value == "") {
    alert("Date de fin incomplète !");
    a2.focus();
  }
  else if (d1.valueOf() > d2.valueOf()) {
    alert("La date de fin de la période doit être postérieure à la date de début.");
    d2.focus();
  }
  else if (ho.value == "") {
    alert("Heure d'ouverture incomplète !");
    ho.focus();
  }
  else if (mo.value == "") {
    alert("Heure d'ouverture incomplète !");
    mo.focus();
  }
  else if (hf.value == "") {
    alert("Heure de fermeture incomplète !");
    hf.focus();
  }
  else if (mf.value == "") {
    alert("Heure de fermeture incomplète !");
    mf.focus();
  }
  else if (h1.valueOf() > h2.valueOf()) {
    alert("L'heure de fermeture doit être postérieure à l'heure d'ouverture.");
    ho.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckSupprimerOfficeHoraire(frm, cmd, IDHoraire) {
  frm.elements["IDHoraire"].value = IDHoraire;
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

function CheckNewOfficeHoraireExcept(frm, cmd, j1, m1, a1, j2, m2, a2, 
  DescriptionFR, DescriptionGB) {
  var d1, d2;
  d1 = new Date(a1.value, m1.value, j1.value);
  d2 = new Date(a2.value, m2.value, j2.value);
  if (j1.value == "") {
    alert("Date de début incomplète !");
    j1.focus();
  }
  else if (m1.value == "") {
    alert("Date de début incomplète !");
    m1.focus();
  }
  else if (a1.value == "") {
    alert("Date de début incomplète !");
    a1.focus();
  }
  else if (j2.value == "") {
    alert("Date de fin incomplète !");
    j2.focus();
  }
  else if (m2.value == "") {
    alert("Date de fin incomplète !");
    m2.focus();
  }
  else if (a2.value == "") {
    alert("Date de fin incomplète !");
    a2.focus();
  }
  else if (d1.valueOf() > d2.valueOf()) {
    alert("La date de fin de la période doit être postérieure à la date de début.");
    d2.focus();
  }
  else if (DescriptionFR.value == "") {
    alert("Veuillez saisir la description en français !");
    DescriptionFR.focus();
  }
  else if (DescriptionGB.value == "") {
    alert("Veuillez saisir la description en anglais !");
    DescriptionGB.focus();
  }
  else {
    frm.elements["cmd"].value = cmd;
    frm.submit();
  }
}

function CheckSupprimerOfficeHoraireExcept(frm, cmd, IDHoraireExcept) {
  frm.elements["IDHoraireExcept"].value = IDHoraireExcept;
  frm.elements["cmd"].value = cmd;
  frm.submit();
}

