// MISC.JS

// Fonctions pour vérifier les formulaires
// testées et approuvées - merci à toutjavascript.com

// Téléphone en 10 chiffres
function isTel(chaine) {
      var chiffres = new RegExp("^[0-9]{10}$","");
      if (chiffres.test(chaine)) { return 1; }
      else { return 0; }
}

// Caractères alphabétiques majuscules et minuscules et caractères accentués en un seul mot
function isTxtOnlySW(chaine) {
      var txtOnlySW = new RegExp("^[a-zéèâêîôäëïö]+$","i");
      if (txtOnlySW.test(chaine)) { return 1; }
      else { return 0; }
}

// Entre 6 et 10 caractères alphabétiques minuscules en un seul mot
function isLogin(chaine) {
      var login = new RegExp("^[a-zA-Z]{6,10}$","");
      if (login.test(chaine)) { return 1; }
      else { return 0; }
}

function isPass(chaine) {
    var pass = new RegExp("^[a-z0-9]{7}$","i"); // prendre les caractères de auth::genCrypt()
    if (pass.test(chaine)) return 1;
    else return 0;
}

// Caractères alphanumériques majuscules et minuscules et caractères accentués et poncutation courante % € ? , : ! () . = - + * /
function isAlphanum(chaine) {
      var alphanum = new RegExp("^[0-9a-zéèàùâêîôäëïö,;:\\./\\*\\s\\-\\+\\=\\?\\%\\(\\)\\!\\€\"']+$", "i");
      if (alphanum.test(chaine)) { return 1; }
      else { return 0; }
}

// nom ou prénom avec les accents composé ou non (séparé par espace ou tiret)
function isNom(chaine) {
      var nom = new RegExp("^([a-zéèâêîôäëïö]+[ |-]?)+[a-zéèâêîôäëïö]*$","i");
      if (nom.test(chaine)) { return 1; }
      else { return 0; }
}

// adresse mail (courtesy of rOblOche)
function isMail(chaine) {
      var mail = new RegExp("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)*\\.[\\w-]{2,}$","i");
      if (mail.test(chaine)) { return 1; }
      else { return 0; }
}

// nombre
function isNombre(chaine) {
      var nombre = new RegExp("^[0-9]+$","");
      if (nombre.test(chaine)) { return 1; }
      else { return 0; }
}

// montant
function isMontant(chaine) {
      var nombre = new RegExp("^[0-9]+([\.|,][0-9]{2})?$","");
      if (nombre.test(chaine)) { return 1; }
      else { return 0; }
}

// Code postal
function isCP(chaine) {
      var nombre = new RegExp("^[0-9]{5}$","");
      if (nombre.test(chaine)) { return 1; }
      else { return 0; }
}

// date : jj/mm/aaaa
function isDate(chaine) {
      var t_time = new Array();
      var ok = true;
      t_date = chaine.split("/");
      if (t_date.length>3) { ok = false; }
      if ((t_date[0]<1) || (t_date[0]>31)) { ok = false; }
      if ((t_date[1]<1) || (t_date[1]>12)) { ok = false; }
      if ((t_date[2]<2005) || (t_date[2]>2050)) { ok = false; }

      if (ok) { return 1; }
      else { return 0; }

}

// heure : hh:mm
function isTime(chaine) {
      var t_time = new Array();
      var ok = true;
      t_time = chaine.split(":");
      if (t_time.length>2) { ok = false; }
      if ((t_time[0]<0) || (t_time[0]>23)) { ok = false; }
      if ((t_time[1]<0) || (t_time[1]>59)) { ok = false; }
      if (ok) { return 1; }
      else { return 0; }
}

// renvoie la date du jour jj/mm/aaaa
function aujourd() {
    var ajd = new Date();
    var d = ajd.getDate();
    var m = ajd.getMonth();
    var y = ajd.getFullYear();
    
    if (d<10) d = "0"+d;
    m++;
    if (m<10) m = "0"+m;

    var ret = d+"/"+m+"/"+y;
    return ret;
}

// Fonction pour ouvrir un popup
function popup(title,url,w,h) {
      var windim = "width=" + w + ",height=" + h + ",screenX=100,screenY=100,";
      var winopt = "directories=no,hotkeys=no,location=no,menubar=no,personalbar=no,scrollbars=auto";
      var winopts = windim + winopt;
      var pop = window.open(url,'curpop',winopts);
      return pop;
}

function switchImage(element,fichier) {
    var img=document.getElementById(element);

    img.src=fichier;
}

function askMail() {
    var mail = prompt("Adresse mail :");
    var txt = prompt("Texte alternatif","Envoyer un mail");
    if (!is_mail(mail)) {
        alert("Adresse non valide");
        return 0;
    }

    var mail_elements = mail.split("@");
    var bbalise = "[mail user="+mail_elements[0]+" host="+mail_elements[1]+"]"+txt;
    TAinsert(bbalise,"[/mail]");
}

function leftChars(textarea,max,display) {
    var left = max-textarea.value.length;
    var msg = left+" caractères restant";
    display.innerHTML = msg;
}


// Macromedia images

function MM_preloadImages() {
  var d=document;
  if(d.images){
    if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
    for(i=0; i<a.length; i++) {
      if (a[i].indexOf("#")!=0){
        d.MM_p[j]=new Image;
        d.MM_p[j++].src=a[i];
      }
    }
  }
}


function MM_swapImgRestore() {
  var i,x,a=document.MM_sr;
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) {
  var p,i,x;
  if(!d) d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n);
  return x;
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array;

  for(i=0;i<(a.length-2);i+=3) {
    if ((x=MM_findObj(a[i]))!=null) {
      document.MM_sr[j++]=x;
      if(!x.oSrc) x.oSrc=x.src;
      x.src=a[i+2];
    }
  }
}
