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 += '- le champ '+monChamp.name+'\n';
      }
    }
	else if (monChamp.tagName == "TEXTAREA"
		&& monChamp.value == '') {
      if (monChamp.className.indexOf("obligatoire")==0) {
        errors += '- le champ '+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 += '- le champ '+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 += '- le champ '+monChamp.name+'\n';
	  }
	  test_checkbox = test_checkbox + "," + monChamp.name + ",";
    }
  } 
  if (errors) {
    alert('Certains champs obligatoires ne sont pas remplis :\n'+errors);
    return false;
  }

  return true;
}

function print()
{
	if (window.print) window.print();
	else alert('This script does not work in your browser');
}

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

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);
	}
}