function changeclass(objet, myClass){ 
  objet.className = myClass;
}

function show(url) {
    popup = window.open(url,'detail','scrollbars=yes,resizable=yes,width=750,height=750');
	popup.focus();
}
function printContent(){
	popup = window.open('','printWindow','menubar=yes,scrollbars=yes,resizable=yes,width=800,height=650');
	return true;
}

function eraseMessage(){
	var obj=document.getElementById('message');
	if (obj) obj.innerText='';
}

var vis = new Array();

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

function swap_couche(couche){
	triangle = MM_findObj('triangle' + couche);
	if (!(layer = MM_findObj('Layer' + couche))) return;
	if (vis[couche] == 'hide'){
		if (triangle) triangle.src = '/images/deplierbas.gif';
		layer.style.display = 'block';
		vis[couche] = 'show';
	} else {
		if (triangle) triangle.src = '/images/deplierhaut.gif';
		layer.style.display = 'none';
		vis[couche] = 'hide';
	}
}

function enabledObj(Obj, enabled){
	if(enabled){
		Obj.style.backgroundColor= '#FFFFFF';
		Obj.disabled= false;
	}else{
		Obj.style.backgroundColor= '#E6E3DF';
   	  	Obj.disabled= true;
	}
}

function disabledField(){
	objcheckbox = window.event.srcElement;
	if(objcheckbox.type=='checkbox' && objcheckbox.parentElement.parentElement.tagName=='FIELDSET'){
		objdiv = document.getElementById("div_"+objcheckbox.name);
		if(objdiv) {
			objdiv.style.display = (objcheckbox.checked)?'block':'none';
			inputs = objdiv.all.tags("INPUT");
			for(i=0;i<inputs.length;i++) inputs[i].disabled=!objcheckbox.checked;
		}
	}
}

var reWhitespace = /^s+$/;
var reLetter = /^[a-zA-Z]$/;
var reAlphabetic = /^[a-zA-Z]+$/;
var reFrenchAlphabetic = /^([A-Za-z]|[àâäçéèêëîïôöùûüÀÂÄÇÉÈÊËÎÏÔÖÛÜ])+$/;
var reCurrency = /^(-)?([0-9]|\s)*((,|\.)[0-9]{0,2})?$/;
var reAlphanumeric = /^[a-zA-Z0-9]+$/;
var reDigit = /^d/;
var reLetterOrDigit = /^([a-zA-Z]|d)$/;
var reInteger = /^[0-9]+$/;
var reFloat = /^(([0-9]+(\.[0-9]*)?)|(([0-9]*\.)?[0-9]+))$/;
var reEmail = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
var reDate = /^(([0-2]?[0-9])|(3[0-1]))\/((0[1-9])|(1[0-2]))\/(19[0-9]{2}|2[0-9]{3})$/;
var reTime = /^(0?[0-9]|1[0-9]|2[0-3])(h|:)(0[0-9]|[1-5][0-9])$/i;
var rePostcode = /^[0-9]{5}$/;

function bool_verif(f){
  	if(bool_verif.arguments.length>1) var bool_submit = bool_verif.arguments[1];
 	else var bool_submit=true;

  	for (var i=0; i<f.elements.length; i++)	{
		if(!check_field(f, f.elements[i])) bool_submit = false;
	}
  	return bool_submit;
}

function check_field(f, field){
	
	var bool_submit=true;
	// traitement pour trouver le nom du champ a afficher en cas d'erreur (alertname ou name)
  	var strSCR_fieldName = (field.getAttribute('alertname'))?field.getAttribute('alertname'):field.name;

  	switch(field.type){
		case "radio" : case "checkbox" : 
		
			if(field.getAttribute('isrequired')=="yes" && int_countChecked(f,field.name)<1)	{
				alert("Vous devez cocher un bouton "+field.type+" '"+strSCR_fieldName+"'")
				bool_submit = false;
			}
			break;
			
		case "select-one" : case "select-multiple" : 
			if(field.getAttribute('selectAll')=="yes"){
				if(field.options.length) for(var k=0;k<field.options.length;k++) field.options[k].selected=1;
			}
			if(field.getAttribute('isrequired')=="yes" && int_countChecked(f,field.name)<1)	{
				alert("Vous devez renseigner '"+strSCR_fieldName+"'")
				bool_submit = false;
			}
			break;
		case "text" : case "textarea": case "password":
			if((field.getAttribute('isrequired')=="yes") && (field.value=="") && (!field.disabled)){
				alert("Le champ "+strSCR_fieldName+" est obligatoire")
				bool_submit = false;
			}
			if((field.maxlength) && (field.maxlength<field.value.length)){
				alert("Le champ "+strSCR_fieldName+" ne doit pas comporter plus de "+field.maxlength+" caractères\n. Il comporte actuellement "+field.value.length+" caractères")
				bool_submit = false;
			}
			if(field.getAttribute('datatype') && (!field.disabled)){
				if (field.value=="") break;
				if (field.getAttribute('datatype')=="integer" && (!(reInteger.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" doit être un nombre entier");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="float" && (!(reFloat.test(field.value))))	{
					alert("Le champ "+strSCR_fieldName+" doit être un nombre");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="email" && (!(reEmail.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" est invalide");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="date" && (!(reDate.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" doit être une date de la forme jj/mm/aaaa");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="time" && (!(reTime.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" doit être un horaire de la forme hh:mm");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="currency" && (!(reCurrency.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" doit être une de type monnaie");
					bool_submit = false;
				}
				else if (field.getAttribute('datatype')=="postcode" && (!(rePostcode.test(field.value)))){
					alert("Le champ "+strSCR_fieldName+" doit comporter 5 chiffres");
					bool_submit = false;
				}
			}
			break;
		case "file" :
			break;
	}
	return bool_submit;
}

// La fonction int_countChecked retourne le nombre d'élément coché pour une
// famille de boutons radio, checkbox ou pour une liste déroulante dans un formulaire donné.
function int_countChecked(objFCT_form, strFCT_objName){
	var intSCR_nbrChecked = 0;
  	
	for (var i=0;i<objFCT_form.elements.length;i++)	{
		if(objFCT_form.elements[i].name==strFCT_objName){
			var strSCR_objtype = objFCT_form.elements[i].type;
			if (strSCR_objtype=="radio" || strSCR_objtype=="checkbox") {
				if (objFCT_form.elements[i].checked) intSCR_nbrChecked++;
			}
			else{
				for (var j=0;j<objFCT_form.elements[i].options.length;j++){
					if (objFCT_form.elements[i].options[j].selected && objFCT_form.elements[i].options[j].value!="" && objFCT_form.elements[i].options[j].value!="null") intSCR_nbrChecked++;
				}
			}
		}
	}
	return intSCR_nbrChecked;
}