var isInteger_regEx = /^\d+$/;
var isDecimal_regEx = /^\d+\.?\d*$/;

function indeXys_validerFormulaire(formIn) {
  var errors='',test_radio='',test_checkbox='';
  for (i=0; i<formIn.elements.length; i++) { 
    monChamp = formIn.elements[i];
    if (monChamp.tagName == "INPUT" 
	    && monChamp.getAttribute("type") == "text" 
		&& monChamp.value == '') {
      if (monChamp.className.indexOf("obligatoire")==0
&& errors.indexOf(" " + monChamp.name)<0) {
        errors += '- champ/field '+monChamp.name+'\n';
      }
    }
	else if (monChamp.tagName == "TEXTAREA"
		&& monChamp.value == '') {
      if (monChamp.className.indexOf("obligatoire")==0
&& errors.indexOf(" " + monChamp.name)<0) {
        errors += '- champ/field '+monChamp.name+'\n';
      }
    }
	else if (monChamp.tagName == "INPUT"
	    && monChamp.getAttribute("type") == "radio"
		&& test_radio.indexOf("," + monChamp.name + ",")!=0) {
	  var checked = false;
	  for (j=0 ; j<document.getElementsByName(monChamp.name).length; j++) {
		if (document.getElementsByName(monChamp.name)[j].checked) {
		  checked = true;
		}
	  }
	  if (checked == false
&& monChamp.className.indexOf("obligatoire")==0
&& errors.indexOf(" " + monChamp.name)<0) {
        errors += '- champ/field '+monChamp.name+'\n';
	  }
	  test_radio = test_radio + "," + monChamp.name + ",";
    }
	else if (monChamp.tagName == "INPUT"
	    && monChamp.getAttribute("type") == "checkbox"
		&& test_checkbox.indexOf("," + monChamp.name + ",")!=0) {
	  var checked = false;
	  for (j=0 ; j<document.getElementsByName(monChamp.name).length; j++) {
		if (document.getElementsByName(monChamp.name)[j].checked) {
		  checked = true;
		}
	  }
	  if (checked == false
&& monChamp.className.indexOf("obligatoire")==0
&& errors.indexOf(" " + monChamp.name)<0) {
        errors += '- champ/field '+monChamp.name+'\n';
	  }
	  test_checkbox = test_checkbox + "," + monChamp.name + ",";
    }
  } 
  if (errors) {
    alert('Certains champs obligatoires ne sont pas remplis\n/ Some mandatory fields are missing :\n'+errors);
    return false;
  }

  return true;
}

function indeXys_swapGalerie(aTitle, aHref, aClass, aRel, imgSrc, imgTitle, imgAlt, idDivImageGrande)
{
	document.getElementById(idDivImageGrande).innerHTML = '<img src="' + imgSrc + '" alt="' + imgAlt + '" title="' + imgTitle + '"">';
}

function validateField(idElement,largeurMin,largeurMax) {

  	field = document.getElementById(idElement);

	if ((field.value*0 != 0)
			|| (field.value < largeurMin)
			|| (field.value > largeurMax))
	{
		alert("Vous devez saisir un nombre compris entre " + largeurMin + " et " + largeurMax + ".");
		setTimeout(function() { document.getElementById(idElement).focus(); }, 100)
	}
}

function indeXys_validateCheckboxIsChecked(idElement, messageErreur)
{
  	field = document.getElementById(idElement);

	if (field.checked == false)
	{
		alert(messageErreur);
		return false;
	}

	return true;
}

function indeXys_limitationSaisieTexte(element, nombreCaracteres)
{
	if (element.value.length > nombreCaracteres)
	{
		alert('la saisie est limitée à '+ nombreCaracteres +' caractères')
		element.value = element.value.substring(0,nombreCaracteres);
	}
}

function indeXys_controleSaisieNombreEntier(element)
{
	myValue = element.value;

	if (element.value.substring(0,1) == '+'
		|| element.value.substring(0,1) == '-')
	{
		myValue = myValue.substring(1,myValue.length);
	}

	if (myValue.length > 0
		&& myValue != myValue.match(isInteger_regEx))
	{
		alert('vous devez saisir un nombre entier');
		element.value = element.value.substring(0,element.value.length-1);
	}
}

function indeXys_controleSaisieNombreDecimal(element)
{
	if (element.value.substring(element.value.length-1,element.value.length) == ',')
	{
		element.value = element.value.substring(0,element.value.length-1) + '.';
	}

	myValue = element.value;

	if (element.value.substring(0,1) == '+'
		|| element.value.substring(0,1) == '-')
	{
		myValue = myValue.substring(1,myValue.length);
	}

	if (myValue.length > 0
		&& myValue != myValue.match(isDecimal_regEx))
	{
		alert('vous devez saisir un nombre décimal (avec des points)');
		element.value = element.value.substring(0,element.value.length-1);
	}
}

function indeXys_creerCookie(nom,contenu,jours) {
   var expireDate = new Date();
   expireDate.setTime(expireDate.getTime() + jours*24*3600*1000);
   document.cookie = nom + "=" + escape(contenu)
      + ";expires=" + expireDate.toGMTString();
}
  
function indeXys_lireCookie(nom) {
   var deb,fin;
   deb = document.cookie.indexOf(nom + "=");
   if (deb >= 0) {
      deb += nom.length + 1;
      fin = document.cookie.indexOf(";",deb);
      if (fin < 0) fin = document.cookie.length
      return unescape(document.cookie.substring(deb,fin));
      }
   return "";
}
  
function indeXys_supprimerCookie(nom) { indeXys_creerCookie(nom,"",-1) }

function indeXys_showBusy() {
	Element.show('busyBox');
	Element.show('busyMessage');
}

function indeXys_hideBusy() {
	Element.hide('busyBox');
	Element.hide('busyMessage');
}

function getWindowWidth() {
  var myWidth = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
  return myWidth;
}

function getWindowHeight() {
  var myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}

function getScrollX() {
  var scrOfX = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfX = document.documentElement.scrollLeft;
  }
  return scrOfX;
}

function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  return scrOfY;
}



var min=8;
var max=18;

function loadFontSize() {

   var savedSize = 0;

   if (indeXys_lireCookie("indeXysFontSize") != null && indeXys_lireCookie("indeXysFontSize") != "") {
      savedSize = parseInt(indeXys_lireCookie("indeXysFontSize"));
   }
 
   var a = document.getElementsByTagName('a');
   for(i=0;i<a.length;i++) {
      var s = parseInt(elementCurrentStyle(a[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      a[i].style.fontSize = s+"px"
   }   

   var h1 = document.getElementsByTagName('h1');
   for(i=0;i<h1.length;i++) {
      var s = parseInt(elementCurrentStyle(h1[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      h1[i].style.fontSize = s+"px"
   }   

   var h2 = document.getElementsByTagName('h2');
   for(i=0;i<h2.length;i++) {
      var s = parseInt(elementCurrentStyle(h2[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
     h2[i].style.fontSize = s+"px"
   }   

   var h3 = document.getElementsByTagName('h3');
   for(i=0;i<h3.length;i++) {
      var s = parseInt(elementCurrentStyle(h3[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      h3[i].style.fontSize = s+"px"
   }   

   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      var s = parseInt(elementCurrentStyle(p[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      p[i].style.fontSize = s+"px"
   }

   var li = document.getElementsByTagName('li');
   for(i=0;i<li.length;i++) {
      var s = parseInt(elementCurrentStyle(li[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      li[i].style.fontSize = s+"px"
   }   

   var ul = document.getElementsByTagName('ul');
   for(i=0;i<ul.length;i++) {
      var s = parseInt(elementCurrentStyle(ul[i],"font-size").replace("px",""));
      s += savedSize;
      if(s < min) {
         s = min;
      }
      if(s > max) {
         s = max;
      }
      ul[i].style.fontSize = s+"px"
   }   

  indeXys_creerCookie("indeXysFontSize",savedSize,1);
}

function resetFontSize() {
  indeXys_creerCookie("indeXysFontSize",0,1);
  location.reload(); 
}

function increaseFontSize() {

   var a = document.getElementsByTagName('a');
   for(i=0;i<a.length;i++) {
      var s = parseInt(elementCurrentStyle(a[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      a[i].style.fontSize = s+"px"
   }  

   var h1 = document.getElementsByTagName('h1');
   for(i=0;i<h1.length;i++) {
      var s = parseInt(elementCurrentStyle(h1[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      h1[i].style.fontSize = s+"px"
   }   

   var h2 = document.getElementsByTagName('h2');
   for(i=0;i<h2.length;i++) {
      var s = parseInt(elementCurrentStyle(h2[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      h2[i].style.fontSize = s+"px"
   }   

   var h3 = document.getElementsByTagName('h3');
   for(i=0;i<h3.length;i++) {
         var s = parseInt(elementCurrentStyle(h3[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      h3[i].style.fontSize = s+"px"
   }   

   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      var s = parseInt(elementCurrentStyle(p[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      p[i].style.fontSize = s+"px"
   }   

   var li = document.getElementsByTagName('li');
   for(i=0;i<li.length;i++) {
      var s = parseInt(elementCurrentStyle(li[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      li[i].style.fontSize = s+"px"
   }   

   var ul = document.getElementsByTagName('ul');
   for(i=0;i<ul.length;i++) {
      var s = parseInt(elementCurrentStyle(ul[i],"font-size").replace("px",""));
      if(s<max) {
         s += 1;
      }
      ul[i].style.fontSize = s+"px"
   }   
 
   var savedSize = 0;

   if (indeXys_lireCookie("indeXysFontSize") != null && indeXys_lireCookie("indeXysFontSize") != "") {
      savedSize = parseInt(indeXys_lireCookie("indeXysFontSize"));
   }

   indeXys_creerCookie("indeXysFontSize",savedSize+1,1);
}

function decreaseFontSize() {

   var a = document.getElementsByTagName('a');
   for(i=0;i<a.length;i++) {
      var s = parseInt(elementCurrentStyle(a[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      a[i].style.fontSize = s+"px"
   }

   var h1 = document.getElementsByTagName('h1');
   for(i=0;i<h1.length;i++) {
      var s = parseInt(elementCurrentStyle(h1[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      h1[i].style.fontSize = s+"px"
   }   

   var h2 = document.getElementsByTagName('h2');
   for(i=0;i<h2.length;i++) {
      var s = parseInt(elementCurrentStyle(h2[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      h2[i].style.fontSize = s+"px"
   }   

   var h3 = document.getElementsByTagName('h3');
   for(i=0;i<h3.length;i++) {
      var s = parseInt(elementCurrentStyle(h3[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      h3[i].style.fontSize = s+"px"
   }   

   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      var s = parseInt(elementCurrentStyle(p[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      p[i].style.fontSize = s+"px"
   }   

   var li = document.getElementsByTagName('li');
   for(i=0;i<li.length;i++) {
      var s = parseInt(elementCurrentStyle(li[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      li[i].style.fontSize = s+"px"
   }   

   var ul = document.getElementsByTagName('ul');
   for(i=0;i<ul.length;i++) {
      var s = parseInt(elementCurrentStyle(ul[i],"font-size").replace("px",""));
      if(s>min) {
         s -= 1;
      }
      ul[i].style.fontSize = s+"px"
   }   

   var savedSize = 0;

   if (indeXys_lireCookie("indeXysFontSize") != null && indeXys_lireCookie("indeXysFontSize") != "") {
      savedSize = parseInt(indeXys_lireCookie("indeXysFontSize"));
   }

   indeXys_creerCookie("indeXysFontSize",savedSize-1,1);
}

function elementCurrentStyle(element, styleName){
    if (element.currentStyle){
        var i = 0, temp = "", changeCase = false;
        for (i = 0; i < styleName.length; i++)
            if (styleName[i] != '-'){
                temp += (changeCase ? styleName[i].toUpperCase() : styleName[i]);
                changeCase = false;
            } else {
                changeCase = true;
            }
        styleName = temp;
        return element.currentStyle[styleName];
    } else {
        return getComputedStyle(element, null).getPropertyValue(styleName);
    }
}
