﻿function launchOnEnter(expression) {
  if(event.keyCode==3 || event.keyCode==13) {
    eval(expression);
  }
}

String.prototype.trim = function(){
return this.replace(/^\s+/, "").replace(/\s+$/, "");
}
String.prototype.killspaces = function(){
  var reg=new RegExp(" ", "g");  
  return this.replace(reg, "");
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

var timer=setTimeout('1',0);

function setEnr(enregistrementid,firstenr,nbenr) {
  document.getElementById('submitor').enregistrementid.value = enregistrementid;
  document.getElementById('submitor').nbenr.value = nbenr;
  document.getElementById('submitor').firstenr.value = firstenr;
} 

function Bip(id) { 
  var mesDivs = document.getElementsByTagName("div");
  for(var i=0; i<mesDivs.length; i++) {
    if(mesDivs[i].id.indexOf('menu')==0) {
      mesDivs[i].style.visibility = "hidden";
    }
  }
  document.getElementById('menu'+id).style.visibility='visible';
}

function adjustMenu(no,pos,lg,y) {
  if (document.body.clientWidth > 780) {
    x_sup = (document.body.clientWidth-780) / 2;
  }
  else {
    x_sup = 0;
  }
  x = lg * (pos-1) + x_sup;
  document.getElementById('menu'+no).style.left = x+'px';
  document.getElementById('menu'+no).style.top = y+'px';
}

function adjustMain() {
  x = 0;
  y = 0;
  if (document.body.clientWidth > 780) {
    x_sup = (document.body.clientWidth-780) / 2;
  }
  else {
    x_sup = 0;
  }
  if (document.body.clientHeight > 480) {
    y_sup = (document.body.clientHeight-480) / 2;
  }
  else {
    y_sup = 0;
  }
  x = x_sup + 495;
  y = y_sup + 5;
  y = 5;
  document.getElementById('menuContenu').style.left = x+'px';
  document.getElementById('menuContenu').style.top = y+'px';
}  
         
function Boup(id) {                
  document.getElementById('menu'+id).style.visibility='hidden';
}                 
    
function setTimer(s) {
  clearTimeout(timer);
  timer=setTimeout(s,600);
}
  
function go(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec) {
  document.getElementById('submitor').target='';
  document.getElementById('submitor').typerubrique.value = typerubrique;
  document.getElementById('submitor').rubriqueid.value = rubriqueid;
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').offset.value = offset;
  document.getElementById('submitor').nbrec.value = nbrec;
  document.getElementById('submitor').firstrec.value = firstrec;
  document.getElementById('submitor').submit();
} 

function goSSL(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec,actionURL) {
  document.submitor.action=actionURL;
  document.getElementById('submitor').method='POST';
  go(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec);
}

function goCB(root) {
  document.submitor.action=root+'envoiPaiement.aspx';    
  document.getElementById('submitor').submit();
}

function isSiretValide(siret) { 
  var estValide; 
  if ( (siret.length != 14) || (isNaN(siret)) ) 
    estValide = false; 
  else { 
     // Donc le SIRET est un numérique à 14 chiffres 
     // Les 9 premiers chiffres sont ceux du SIREN (ou RCS), les 4 suivants 
     // correspondent au numéro d'établissement 
     // et enfin le dernier chiffre est une clef de LUHN. 
    var somme = 0; 
    var tmp; 
    for (var cpt = 0; cpt<siret.length; cpt++) { 
      if ((cpt % 2) == 0) { // Les positions impaires : 1er, 3è, 5è, etc... 
        tmp = siret.charAt(cpt) * 2; // On le multiplie par 2 
        if (tmp > 9) 
          tmp -= 9;    // Si le résultat est supérieur à 9, on lui soustrait 9 
      } 
     else 
       tmp = siret.charAt(cpt); 
       somme += parseInt(tmp); 
    } 
    if ((somme % 10) == 0) 
      estValide = true; // Si la somme est un multiple de 10 alors le SIRET est valide 
    else 
      estValide = false; 
  } 
  return estValide; 
} 

function isLuhnValide(champ) { 
  var estValide;
  var code = champ.value; 
  if ( isNaN(code) ){estValide = false; }
  else {      
    var somme = 0; 
    var tmp; 
    for (var cpt = 0; cpt<code.length; cpt++) { 
      if ((cpt % 2) != 0) { // Les positions impaires : 1er, 3è, 5è, etc... 
        tmp = code.charAt(cpt) * 2; // On le multiplie par 2 
        if (tmp > 9) 
          tmp -= 9;    // Si le résultat est supérieur à 9, on lui soustrait 9 
      } 
      else{ 
        tmp = code.charAt(cpt); 
      }       
      somme += parseInt(tmp); 
    } 
    if ((somme % 10) == 0){
      estValide = true; // Si la somme est un multiple de 10 alors le code est valide 
    }
    else {
      estValide = false; 
    }
  } 
  return estValide; 
}

function controleCB(zeUrl){
  
  if(!isCBValide(document.submitor.enr3)){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }  
  if(document.submitor.enr2.value==1 && document.submitor.enr3.value.length!=16 && document.submitor.enr3.value.length!=13){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }
  if(document.submitor.enr2.value==2 && document.submitor.enr3.value.length!=16 && document.submitor.enr3.value.length!=13){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }   
  if(document.submitor.enr2.value==3 && document.submitor.enr3.value.length!=16){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }
  if(document.submitor.enr4.value=='-1' || document.submitor.enr5.value=='-1' || document.submitor.enr4.value=='' || document.submitor.enr5.value==''){
    alert('Veuillez entrer le mois et l\'année d\'expiration de votre carte.');
    return false;
  } 
  if(!isFull(document.submitor.enr6,'Veuillez entrer le cryptogramme visuel.') || !isAllDigits(document.submitor.enr6,'Le cryptogramme visuel ne peut être composé que de chiffres.')){
    return false;
  }
  
  setEnr(20004,2,6);
  goSSL('1','20006','','','','',zeUrl+'xslt.aspx');  
  
  return true;
   
}
function controleCBd(zeUrl){
  
  if(!isCBValide(document.submitor.enr3)){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }  
  if(document.submitor.enr2.value==1 && document.submitor.enr3.value.length!=16 && document.submitor.enr3.value.length!=13){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }
  if(document.submitor.enr2.value==2 && document.submitor.enr3.value.length!=16 && document.submitor.enr3.value.length!=13){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }   
  if(document.submitor.enr2.value==3 && document.submitor.enr3.value.length!=16){
    alert('Il semble que ce numéro de carte ne soit pas valide. Veuillez le corriger.');
    return false;
  }
  if(document.submitor.enr4.value=='-1' || document.submitor.enr5.value=='-1' || document.submitor.enr4.value=='' || document.submitor.enr5.value==''){
    alert('Veuillez entrer le mois et l\'année d\'expiration de votre carte.');
    return false;
  } 
  if(!isFull(document.submitor.enr6,'Veuillez entrer le cryptogramme visuel.') || !isAllDigits(document.submitor.enr6,'Le cryptogramme visuel ne peut être composé que de chiffres.')){
    return false;
  }
  
  setEnr(10012,2,6);
  goSSL('1','10013','','','','',zeUrl+'xsltdistrib.aspx');
  return true;
}


function isCBValide(champ) { 
  var estValide;
  var code = champ.value; 
  if ( isNaN(code) ){estValide = false; }
  else {      
    var somme = 0; 
    var tmp; 
    for (var cpt = 0; cpt<code.length; cpt++) { 
      if ((cpt % 2) == 0) { // Les positions impaires : 1er, 3è, 5è, etc... 
        tmp = code.charAt(cpt) * 2; // On le multiplie par 2 
        if (tmp > 9) 
          tmp -= 9;    // Si le résultat est supérieur à 9, on lui soustrait 9 
      } 
      else{ 
        tmp = code.charAt(cpt); 
      }       
      somme += parseInt(tmp); 
    } 
    if ((somme % 10) == 0){
      estValide = true; // Si la somme est un multiple de 10 alors le code est valide 
    }
    else {
      estValide = false; 
    }
  } 
  return estValide; 
} 

function isRIBvalid()
{
  if (isRIBvalid.arguments.length>=3)
  {
    var bqe=isRIBvalid.arguments[0];
    var gui=isRIBvalid.arguments[1];
    var cpt=isRIBvalid.arguments[2].toUpperCase();
    
    // Conversion du numero de compte en chiffres
    var tab= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var tab1="123456789123456789234567890123456789".split("");
    
    while (cpt.match(/\D/) != null){
      cpt=cpt.replace(/\D/, tab1[tab.indexOf(cpt.match(/\D/))]);      
    }
    
    var cp=parseInt (cpt, 10);
    
    //Calcul clé RIB
    a=bqe%97;
    a=a*100000+parseInt(gui, 10);
    a=a%97;
    a=a*Math.pow(10, 11) + cp;
    a=a%97
    a=a*100;
    a=a%97
    a=97-a;
    if (isRIBvalid.arguments.length>3){
      return isRIBvalid.arguments[3]==a;  
    }
    
    else{
      return a;
    }  
  }
  else
  {
    return false;
  }
}

function goPop(typerubrique, rubriqueid, elementid, offset, nbrec, firstrec, height, width, ajout) {
   var popupDetails=window.open('','popupDetails'+ajout,'scrollbars,resizable,status=yes,toolbar=no,directories=no,width='+width+',height='+height);
   document.submitor.target = 'popupDetails'+ajout;
   document.submitor.typerubrique.value = typerubrique;
   document.submitor.rubriqueid.value = rubriqueid;
   document.submitor.elementid.value = elementid;
   document.submitor.offset.value = offset;
   document.submitor.nbrec.value = nbrec;
   document.submitor.firstrec.value = firstrec;
   document.submitor.submit();
   document.submitor.target = '';
   if(popupDetails)popupDetails.focus();
}

function isDateField(champ,msg){  
  if(isDateValue(champ.value) == false){
    return notgood(champ,msg);
  }   
  return true;
}

function isDateValue(dateStr){
  
  //Modified by DO 12/31/2003
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  var datestatus=true;
  datemsg="";
  
  if (matchArray == null || matchArray[1]==null)
  {
    datemsg="----- Please enter date as mm/dd/yyyy " + "\n";
    return false;
  }
  else
  {
    if(matchArray[3]==null || matchArray[5]==null)
    {
      datemsg="----- Please enter date as mm/dd/yyyy " + "\n";
      return false;
    }
  }
  
  month = parseInt(matchArray[3],10);
  day = parseInt(matchArray[1],10);  
  year = parseInt(matchArray[5],10);
  
  if (month < 1 || month > 12)
  { 
    datemsg=datemsg + "----- Month must be between 1 and 12." + "\n";
    datestatus=false;
  }
  
  if (day < 1 || day > 31)
  {
    datemsg=datemsg + "----- Day must be between 1 and 31." + "\n";
    datestatus=false;
  }
  
  if ((month==4 || month==6 || month==9 || month==11) && day==31)
  {
    datemsg=datemsg + "----- Month " + month + " doesn`t have 31 days!" + "\n";
    datestatus=false;
  }
  
  if (month == 2)
  { 
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day==29 && !isleap))
    {
      datemsg=datemsg + "----- February " + year + " doesn`t have " + day + " days!" + "\n";
      datestatus=false;
    }
  }  
  return datestatus;

}

function notgood(field,msg) {
  field.focus();
  alert(msg);
  return false;
}

function isFull(field,msg){
  if (field.value=='') {return notgood(field,msg);}
  return true;
}

function isFullNb(field,msg,minchars){
  field.value=field.value.trim();
  if (field.value.length<minchars) {return notgood(field,msg);}
  return true;
}

function isAllDigits(champ,msg){    
   var chiffres = new RegExp("^[0-9]*$");
   var verif;   
   verif = chiffres.test(champ.value);         
   if(verif == false){
    return notgood(champ,msg);
   }   
   return true;
}

function isVatOk(champ,msg){       
   var regPass = /^[A-Z]{2}\d{11}$/i;
   var verif;   
   verif = regPass.test(champ.value);     
   if(verif == false) {
     return notgood(champ,msg);
   }   
   return true;
}

function isGoodPass(champ,msg){    
  //var regPass = new RegExp("([a-z]+[0-9]+)|([0-9]+[a-z]+)");
  //var verif;   
  //verif = regPass.test(champ.value);    
  if(champ.value.length!=champ.value.killspaces().length){
    return notgood(champ,msg);
  }     
  if(champ.value.length<6 || champ.value.length>16) {
    return notgood(champ,msg);
  }   
  return true;
}

function isDigit(field,msg) {
  i = field.value.charCodeAt(0);
  if (!((47<i)&&(i<58))){return notgood(field,msg);}
  return true;
}

function isSelect(field,msg){
  if (field.selectedIndex==0 && field.options[0].value=="") {return notgood(field,msg);}
  return true;
}

function checkedRadioValue(radio) {
  for (var i=0; i<radio.length ; i++) {
    if (radio[i].checked) {
      return radio[i].value ;
    }
  }
  return '-';
}

function checkedRadio(radio) {
  for (var i=0; i<radio.length ; i++) {
    if (radio[i].checked) {
      return i ;
    }
  }
  return '-';
}

function bothFalse(champ1,champ2){
  if((champ1==false) && (champ2==false)){
    return false; 
  }
  else{return true;}
}

function isMail(field,msg) {  
  field.value=field.value.killspaces();
  
  var email=field.value;
  var arobase=email.indexOf('@');
  var point=email.indexOf('.',arobase);
  var longueur=email.length;
  if(arobase<=0||point<=arobase+1||longueur<=point+1) {return notgood(field,msg);}
  return true;
}

function goMail(elementid,racine) {
  window.open('','mail','scrollbars,toolbar=no,directories=no,width=350,height=200');
  document.submitor.target = 'mail';
  document.submitor.action = racine + 'xsltMailerDistrib.aspx';
  document.submitor.elementid.value = elementid;
  document.submitor.submit();
  document.submitor.target = '';
  document.submitor.action='xslt.aspx';    
} 
  
function sendMailContrat(aboid,contratid,racine, session, mode){
  window.open('','mail','scrollbars,toolbar=no,directories=no,width=350,height=200');
  document.submitor.target = 'mail';
  document.submitor.action = racine + 'xsltMailerContrats.aspx';  
  document.submitor.aboid.value = aboid;
  document.submitor.contratid.value = contratid;
  document.submitor.sessionid.value = session;
  document.submitor.mode.value = mode;
  document.submitor.submit();
  document.submitor.target = '';
  document.submitor.action='xslt.aspx'; 
  window.location.reload()  
}

function resetLoginForm() {
  document.submitor.login.value='';
  document.submitor.password.value='';
}

function checkAll(checkObj, toCheck){
  if(checkObj) {
    if(checkObj.length!=undefined){
      for(var i=0;i<checkObj.length;i++){
        if(checkObj[i].disabled==false && checkObj[i].style.display!='none'){
          checkObj[i].checked=toCheck;
        }
      }
    }
    else{
      if(checkObj.disabled==false && checkObj.style.display!='none'){
        checkObj.checked=toCheck;
      }
    }
  }
}


function goLang(root, page) {
  var lang;
  lang = document.getElementById('submitor').langue.value;
  location.href=root + lang + '/' + page;
}

function goPdf(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec) {
  document.forms['submitor'].typerubrique.value = typerubrique;
  document.forms['submitor'].rubriqueid.value = rubriqueid;
  document.forms['submitor'].elementid.value = elementid;
  document.forms['submitor'].offset.value = offset;
  document.forms['submitor'].nbrec.value = nbrec;
  document.forms['submitor'].firstrec.value = firstrec;
  document.forms['submitor'].target="pdf"+Math.floor(Math.random()*10000);
  document.forms['submitor'].action="DirectPdf.aspx";
  document.forms['submitor'].submit();
  document.forms['submitor'].action="xslt.aspx";
  document.forms['submitor'].target="";
}

function log() {
  setEnr('10','2','1');
  go('1','11','','','','');
}    
function logdistri() {
  setEnr('100','2','1');
  go('1','10001','','','','');
}    
function calctotal(){
  var tot=0; 
  var prix=0;
  
  inputs = document.getElementsByTagName('INPUT');

  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].id.substr(0,3)=='imp'){
      var id=inputs[i].id.substr(3,inputs[i].id.length-3);
      var qte=parseInt(inputs[i].value);
      var prix=prix + parseFloat(document.getElementById('prix'+id).value) * qte;      
      tot=parseInt(tot)+qte;
    }
  }          
  document.submitor.nbcartes.value=tot;
  document.submitor.prixtot.value=prix;
}

function getenr(enr2, enr3){
  enr2.value='';
  enr3.value='';  
  inputs = document.getElementsByTagName('INPUT');
 
  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].id.substr(0,3)=='imp'){    
      var id=inputs[i].id.substr(3,inputs[i].id.length-3);
      var qte=parseInt(inputs[i].value);
      if (qte>0){
        enr2.value=enr2.value+id+';';
        enr3.value=enr3.value+qte+';'; 
      }            
    }
  }     
  if(enr2.value.length>0){
    enr2.value=enr2.value.substr(0,enr2.value.length-1);   
  }
      
  if(enr3.value.length>0)
    enr3.value=enr3.value.substr(0,enr3.value.length-1);     
  
}


function isInf(val1, val2 ) {
  return val1<val2;
}

function isInfEgal(val1, val2 ) {
  return val1<=val2;
}

function isSup(val1, val2 ) {
  return val1>val2;
}

function isSupEgal(val1, val2 ) {
  return val1>=val2;
}