﻿var root = '/';


/*=======================================================*/
/*==========SURCHARGES DES TYPES String et Date==========*/
/*=======================================================*/
String.prototype.trim = function(){
return this.replace(/^\s+/, "").replace(/\s+$/, "");
}
String.prototype.killspaces = function(){
  var reg=new RegExp(" ", "g");  
  return this.replace(reg, "");
}
Date.prototype.addSeconds = function (n) {this.setSeconds (this.getSeconds () + n)}
Date.prototype.toString = function () {return [getDayFromNumber(this.getDay()), habille(this.getDate()), getMonthFromNumber(this.getMonth())].join ('&#160;')+'&#160;:&#160;'+[habille(this.getHours()),habille(this.getMinutes())].join('H')+''}
//Date.prototype.toString = function () {return this.getDay();}




/*=======================================================*/
/*==================FONCTIONS============================*/
/*=======================================================*/

function toggleDivByObj(zeDiv,newClass){  
  zeDiv.className=newClass;  
}

function getRadioValue(radio) {
  for (var i=0; i<radio.length;i++) {
    if (radio[i].checked) {
      return radio[i].value;
    }
  }
  return false;
}

function isDate(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;

}

// Vérifie qu'une date au format JJ/MM/AAAA existe bel et bien
function is_date_valid(datevalue) {
  datevalue = datevalue.trim();
  var tmp = datevalue.split('/');
  var dateToCheck = parseFloat(tmp[0]);
  var monthToCheck = parseFloat(tmp[1]) - 1;
  var yearToCheck = parseFloat(tmp[2]);

  var dateObj = new Date(yearToCheck, monthToCheck, dateToCheck, 0, 0, 0);
  
  if ((dateObj.getFullYear() == yearToCheck) && (dateObj.getMonth() == monthToCheck) && (dateObj.getDate() == dateToCheck)) {
    return true;
  } else {
    return false;
  }
}


function setBloc(){  
  //Si un des blocs gauche ou droit est plus grand que le central, on resize ce dernier
  var glass=document.getElementById("cache"); 
  var cont=document.getElementById("global"); 
  
  glass.style.height=(cont.offsetHeight)+'px';    
  
}

function launchOnEnter(event, expression) {
  if(event.keyCode==3 || event.keyCode==13) {
    
    if(jQuery.isFunction(expression)){
      expression();
    }
    else{
      eval(expression) ;
    }
  }
}

function search(event){
  if((event.keyCode==3)||(event.keyCode==13)) {
    go('1','11',document.getElementById('submitor').rec2.value,'','','');
  }
  void(0);
}

function br(){ 
  return '<br/>' ;
}

function emptySearch(inputObj,txt){
  if(inputObj.value==txt){
    inputObj.value="";
  } 
}
function fillSearch(inputObj,txt){
  if(inputObj.value==""){
    inputObj.value=txt;
  } 
}
function displayId(id,value){
  var obj=document.getElementById(id);
  obj.style.display=value;
}
function displayThis(obj,value){
  obj.style.display=value;
}
function switchClass(obj,zeClass){
  obj.className=zeClass;
}

function goLang(lang) {  
  location.href= root + lang + '/xslt.aspx';
}

function goPop(typerubrique, rubriqueid, elementid, offset, nbrec, firstrec, height, width, ajout) {
 window.open('','popupDetails'+ajout,'scrollbars,resizable,status=yes,toolbar=no,directories=no,width='+width+',height='+height);
 document.getElementById('submitor').target = 'popupDetails'+ajout;
 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();
 document.getElementById('submitor').target = '';
}

function notgood(field,msg) {
  field.focus();
  alert(msg);
  return false;
}

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 containsDigits(champ,msg){    
   var chiffres = new RegExp("[0-9]");
   var verif;   
   verif = chiffres.exec(champ.value);         
   if(verif){
    return notgood(champ,msg);
   }   
   return true;
}

function isFull(field,msg){
  if (field.value=='') {return notgood(field,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 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;
}

// 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 "";
}

function setMailaction(obj){
  document.getElementById('mailaction').value=obj;
}
function setAction(obj){
  document.getElementById('actionner').value=obj;
  
}


var imgLoad;
function goMail(elementid,zeracine) {
  mailfen = window.open('','mail','scrollbars,toolbar=no,directories=no,width=350,height=200');
  racine=zeracine;
  
  imgLoad =new Image; imgLoad.src= racine + 'img/wait.gif';
  imgLoad.height=73;
  imgLoad.width=75;
  
  mailfen.moveTo((screen.width/2)-(350/2),(screen.height/2)-(200/2));
  
  wait = setTimeout("if(imgLoad.complete){writeMessageBeforeMailAndSend("+elementid+");}",315);    
}  

function writeMessageBeforeMailAndSend(elementid){
  mailfen.document.writeln('<html>');
  mailfen.document.writeln('<head>');
  mailfen.document.writeln('  <title>Envoi de message</title>');
  mailfen.document.writeln('</head>');
  mailfen.document.writeln('<body>    ');
  mailfen.document.writeln('  <table cellpadding="0" border="0" cellspacing="0" width="100%">');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          <img height="73" width="75" id="wait" src="' + racine + 'img/wait.gif"/>');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center" style="font-family:verdana;font-size:10px;">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          Veuillez patienter...');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('  </table>   ');    
  mailfen.document.writeln('</body>');
  mailfen.document.writeln('</html>');
  
  document.getElementById('submitor').target = 'mail';
  document.getElementById('submitor').action = racine + 'xsltMailer.aspx';  
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').submit();
  document.getElementById('submitor').reset();
  document.getElementById('submitor').target = '';
  document.getElementById('submitor').action='xslt.aspx';    
}
  

function findPosX(obj)
{
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}


function and(val1,val2){
  return val1 && val2; 
}
function or(val1,val2){
  return val1 || val2; 
}

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;
}

function is_child_of(parent, child) {
  try{
    if( child != null ) {			
      while( child.parentNode ) {
        if( (child = child.parentNode) == parent ) {
          return true;
        }
      }
    }
  }
  catch(err){
    return true;
  }
  return false;
}

Array.prototype.contains = function (element) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == element) {
      return i;
    }
  }
  return false;
}


function fixOnMouseOut(element, event, JavaScript_code) {
  var current_mouse_target = null;
  if( event.toElement ) {				
    current_mouse_target 			 = event.toElement;
  } else if( event.relatedTarget ) {				
    current_mouse_target 			 = event.relatedTarget;
  }
  if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
    eval(JavaScript_code);
  }
}

function goUrl(zeUrl){
  location.href=zeUrl;
}
function goUrlSelf(zeUrl){
  window.open(zeUrl,'popupMedias','scrollbars,resizable,status=yes,toolbar=yes,directories=no,width='+1024+',height='+768);
}

function et() {
  return "&";
}

function searchInstallateur(firstrec, nbrec){
  
  //Mode normal
  if(!$('#rechercheAvancee:visible')[0]){
    var energie=false;
    
    for ( var i = firstrec ; i < nbrec ; i++ ){
      
      if(!document.getElementById('rec'+i)){continue;}
      if(document.getElementById('rec'+i).type!="checkbox"){continue;}
          
      if(document.getElementById('rec'+i).checked == true){
        energie = true;
        break;
      }    
    }
    
    if(energie == false){
      alert('Vous devez cocher au moins une energie pour lancer la recherche');
      return;
    }
    
    if(document.getElementById('rec9').value == ''){
      alert('Vous devez saisir un code postal');
      return;
    }
    
     if ( !isAllDigits(document.getElementById('rec9'), 'Le code postal est incorrect') ){
      return;
     }
    
    if(energie == true && document.getElementById('rec9').value != ''){
      document.getElementById('rechercheannuaireid').value = '';
      go('1',pageParameters['RUBRIQUEID'],pageParameters['ELEMENTID'],'',nbrec+1,firstrec);
    }
  }
  //Mode avancé
  else{
    if($('#rec12').val()=='' && $('#rec13').val()==''){
      alert('Veuillez saisir au moins le nom ou l\'identifiant.');
      return;
    }
    document.getElementById('rechercheannuaireid').value = '';
    go('1',pageParameters['RUBRIQUEID'],'','',nbrec+1,firstrec);
  }
  
}

function goPageAnnuaire(){
  /*if ( !isFull(document.getElementById('rec10009'), 'Le code postal est incorrect') ){
    return;
  }
  if ( !isAllDigits(document.getElementById('rec10009'), 'Le code postal est incorrect') ){
    return;
  }*/
  
  if($('#rec10009').val()==""){
    return;
  }
  
  var cp = document.getElementById('rec10009').value;
  go('1','80',cp,'','11','10002');

}

var grise_recherche;
function setRechercheAvancee(){
  
  if(!$('#rechercheAvancee:visible')[0]){
    $('#rechercheNormale').slideUp(); 
    $('#rechercheAvancee').slideDown();
    
    //Grise les boutons par énergie    
    d=document.createElement('div');
    //$(d).addClass('grise_recherche');
    $(d).attr('id','glasspaint');
    $(d).text(' ');
    $(d)[0].style.display='none';
    $('#fd_critere').append($(d));
    
    //Récup des coordonnées du parent
    var p=$('#fd_critere').position();  
    var h=$('#fd_critere').height(); 
    var l=$('#fd_critere').width();       
    
    //On positionne le div
    $(d).css('left',0+'px');
    $(d).css('width',l+17+'px');
    $(d).css('height',h+12+'px');
    $(d).css('top',0+'px');
    $(d).fadeTo("fast",0.5);       
    $(d).fadeIn("fast");  
    
    grise_recherche=d;
    
    $('#rec9').val('');
    $('#rec10').val('');
    $('#rec11').val('');
    $('#rec9_tb').val('');    
      
    $('.bouton_avance a').text('Revenir à la recherche géographique');
  }
  else{
    $('#rechercheNormale').slideDown(); 
    $('#rechercheAvancee').slideUp();
    $('.bouton_avance a').text('Rechercher une entreprise spécifique');
    $(grise_recherche).fadeOut('fast',function(){
      $(grise_recherche).remove();
    });
    
    $('#rec9_tb').val('Ville ou Code postal...');    
    $('#rec12').val('');
    $('#rec13').val('');  
    
  }
}

function genericVerifForm(arrFields, msg){
  var labels = document.getElementsByTagName("LABEL");
  var arrLabels=[];
  var err = "";
  var retour = true;
  if(labels!=null) {
    for(var i=0;i<labels.length;i++) {
      var id = labels[i].getAttribute("for");
      if(id==null) {//Bug IE
        id=labels[i].attributes["for"].value;
      }
      var lbl = labels[i].childNodes[0].nodeValue;
      if(id!=null && lbl!=null) {
        arrLabels[id]=lbl;
      }
    }    
    for(var i=0;i<arrFields.length;i++) {
    	if(arrFields[i].type=='radio') {
        var ok = false;
        fld = eval('arrFields[i].form.' + arrFields[i].name);
        for(var j=0;j<fld.length;j++) {
          if(fld[j].checked) {
            ok = true;
            break;
          }
        }
        if(!ok) {
          err += msg.replace('{0}',arrLabels[arrFields[i].id]) + "\n";
          retour = false;
        }
      }
      else if(arrFields[i].nodeName.toLowerCase()=='select') {
        if(arrFields[i].selectedIndex==0) {
          err += msg.replace('{0}',arrLabels[arrFields[i].id]) + "\n";
          retour = false;
        }
      }
      else {
        if (arrFields[i].value=='') {
          err += msg.replace('{0}',arrLabels[arrFields[i].id]) + "\n";
          retour = false;
        }
      }
    }    
  }
  if(!retour) {
    alert(err);
  }
  return retour;
}

function showEltsBlocEnergies(clickSrc) {
  if ( $(clickSrc).next('.unElementEnergieDetail').is(':visible')) {
    $(clickSrc).next('.unElementEnergieDetail').hide('slow');
  } else {
    $('#bloc_Energie .unElementEnergieDetail:visible').each(function(index) {
      $(this).hide('slow');
    });
    $(clickSrc).next('.unElementEnergieDetail').show('slow');
  }
}

function selectedEnrMenuItem(divBlock, divLink){
  $(divBlock)[0].style.display = 'block';
  $(divLink)[0].className = 'unElementEnergieSel';
}

function expandCommLink(control, rootPath, arbo){
  if(control.src.indexOf(rootPath + 'img/TV_nivo1_off.gif') > -1){
    control.src = (rootPath + 'img/TV_nivo1_on');
  }
  else{
    control.src = (rootPath + 'img/TV_nivo1_off.gif');
  }
  var childLinkTab = $('ul ul li');
  for(var i = 0; i < childLinkTab.length; i++){
	if(childLinkTab[i].id.indexOf(arbo) > -1 && childLinkTab[i].id.indexOf('child') > -1){
	  var ulChild = childLinkTab[i].parentNode.parentNode
	  if(ulChild.style.display == 'none'){
		ulChild.style.display = 'block';
	  }
      else{
		ulChild.style.display = 'none';
	  }
	}
  }
}	
