function set_correl(parent, nenf, crit, val)
{
	for (n=1; n<=nenf; n++)
	{
		var parento = document.getElementById('parent_rattach_' + n);
		if (parento.value==parent) //concerné par le parent
		{
			obj_crit = document.getElementById('enfant_' + n + crit);
			sel_val(obj_crit, val);
		}
	}
}

function sel_val(obj, val)
{
	for (i=0; i<obj.length; i++)
	{
		if (obj.options[i].value == val)
		{
			obj.selectedIndex = i;
			obj.value=val;
			return;
		}
	}
}

function getLeft(l)
{
    if (l.offsetParent) return (l.offsetLeft + getLeft(l.offsetParent));
    else return (l.offsetLeft);
}

function getTop(l)
{
    if (l.offsetParent) return (l.offsetTop + getTop(l.offsetParent));
    else return (l.offsetTop);
}

function getRight(l)
{
    var r=0;
    if (l.style.width != "") 
	{
		r=parseInt(l.style.width.substr(0, l.style.width.length-2), r);	
	}
	else
	{
		r=300;
	}
    return r + getLeft(l);
}

function est_coche(obj, val)
{
	if (obj.value!=val) return 0;
	if (obj.checked) return 1; else return -1;
}

function changevisibility2(form, action)
{
	form = document.getElementById(form);
	hid = document.getElementById('hid_'+form);
	if (action!=0) 
	{
		hid.value="OFF";
		form.onsubmit="";
		form.submit();
	}
}

function reload(formid)
{
	form = document.getElementById(formid);
	hid = document.getElementById('hid_'+formid);
	hid.value="OFF";
	form.onsubmit="";
	form.submit();
}

function trim(chaine)
{
    regex=new RegExp("(^ +)|( +$)", "g");
	chaine=chaine.replace(regex, "");
	return chaine;	
}

function validertext(obj, requis, type, min, msg)
{
    var valid=true; //par defaut c'est valide ^^
    switch(type)
    {
        case "radio":
        	
			selone = false;
			all_radio = document.getElementsByName(obj.id);
			for (i=0;i<all_radio.length;i++)
			{
				if (all_radio[i].checked)
				{
					selone=true;
				}	
			}	
			if (!selone) valid=false;
		break;
    	case "select":
    		if (obj.value=="-1") 
			{
				valid=false;
				if (msg=='') msg = 'Merci de bien vouloir remplir tous les champs obligatoires';
			}
    			
        break;
    	default:
	    	var value = trim(obj.value);
	    	if (value=="" || (value.length < min))
		    {
		        if (requis) 
				{
					valid=false;
					if (msg=='') msg = 'Merci de bien vouloir remplir tous les champs obligatoires';
				}
		    }
		    else
		    {
		        var regex=null; //expression reguliere !
		        switch(type)
		        {
		        	case "IDR":
		        		regex=new RegExp("^[-a-z0-9_]*$", "gi");        		
						break;
						
		        	case "alphanum":
		        		regex=new RegExp("^[a-z0-9]*$", "gi");	
						break;
			
					case "Lalpha":
		        		regex=new RegExp("^[a-z]*$");		
		        		break;
		        		
					case "Ualpha":
		        		regex=new RegExp("^[A-Z]*$");		
		        		break;
		        		
		        	case "alpha":
		        		regex=new RegExp("^[a-z]*$", "gi");		
		        		break;
		        		
		            case "email":
		                regex=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2}(?:[a-z0-9-]*[a-z0-9])?$", "gi");
		                if (msg=='') msg = 'Votre email est invalide';
		                break;
						    
		            case "alpha_num" :
		                regex=new RegExp("^[_a-z0-9]+$", "gi");
		                break;
		                
		            case "code_postal":
		                regex=new RegExp("^(0[1-9]|[1-9][0-9])[0-9]{3}$", "g");
		                break;
		                
		            case "date":
		                regex=new RegExp("^((0?[1-9])|([1-2][0-9])|(3[0-1]))\/((0?[1-9])|(1[0-2]))\/[0-9]{4}$", "g");
		                break;
		                
		            case "int":
		                regex=new RegExp("^[-+]?[1-9][0-9]*$", "g");
		                break;
		                
		            case "uint":
		                regex=new RegExp("^[+]?[1-9][0-9]*$", "g");
		                break;
		                
		            case "float":
		                regex=new RegExp("^[-+]?[0-9]*\.?[0-9]*$", "g");
		                break;
		                
		            case "ufloat":
		                regex=new RegExp("^[+]?[0-9]*\.?[0-9]*$", "g");
		                break;
		        }
		        if (regex != null) if (!regex.exec(value)) valid=false;
		    }
		break;
    } 
    
    if (!valid)
    {
		alert(msg);
	}
    return valid;
}

function autrereponse (select, t)
{
	text = document.getElementById(t);
	
	if (select.value!=-1) 
	{
		text.style.visibility = 'hidden';
	}
	else
	{
		text.style.visibility = 'visible';
	}
}
function focusme(obj)
{
    var s=document.getElementById("erreur");
    s.style.left = (getRight(obj) + 4)+ 'px';
    s.style.top = getTop(obj)+ 'px';
    s.style.visibility = 'visible';
}

function unfocus ()
{
    var s=document.getElementById("erreur");
    s.style.visibility = 'hidden';
}

function validate_commentaire()
{
	valid = true;
	valid = valid && validertext(document.getElementById('evaluation'),  true, 'radio', 0, 'Vous devez choisir une évaluation avant de valider.');
	valid = valid && validertext(document.getElementById('commentaire'),  true, 'string', 10, 'Le commentaire est trop court.');
	return valid;
}