function enlever_tout(id_element)
{
	enlever_non_valide(id_element);	
	enlever_ok(id_element);	
	enlever_requis(id_element);
}

function verif_requis(id_element)
{
	var retour_requis = false;
	$(function()
	{
		if( ($("#"+id_element).attr('class').split(' ').slice(0,1) != "requis") && (document.getElementById(id_element).value=="") )
		{
			enlever_tout(id_element);
			retour_requis = true;
		}
	});	
	
	return retour_requis;
}


function mettre_requis(id_element)
{
	enlever_tout(id_element);

	$(function()
	{
		if( $("#"+id_element).attr('class').split(' ').slice(0,1) == "requis" )
		{
			$("#"+id_element).after("<a id='requis_"+id_element+"' class='msg_requis info' title='Ce champs est obligatoire'></a>");
		}
		else alert("tentative hs requis");
	});	
}

function enlever_requis(id_element)
{
	$(function()
	{
		$("#requis_"+id_element).remove();
	});	
}

function mettre_non_valide(id_element,infobulle)
{
	enlever_tout(id_element);

	$(function()
	{
		$("#"+id_element).after("<a id='non_valide_"+id_element+"' class='msg_erreur info' title='"+infobulle+"'></a>");
	});
}

function enlever_non_valide(id_element)
{
	$(function()
	{
		$("#non_valide_"+id_element).remove();
	});
}

function mettre_ok(id_element)
{
	enlever_tout(id_element);	
	
	$(function()
	{
		$("#"+id_element).after("<a id='ok_"+id_element+"' class='msg_ok'></a>");
	});
}

function enlever_ok(id_element)
{
	$(function()
	{
		$("#ok_"+id_element).remove();
	});
}

/* fonctions génériques */

function valid_comparaison(id_element,comparaison)
{
	var retour_comparaison = false;
	$(function()
	{	
		if( $("#"+id_element).attr('class').split(' ').slice(0,1) == "requis" )
		{
			if(document.getElementById(id_element).value == comparaison)
			{
				mettre_requis(id_element);
			}
			else 
			{	
				mettre_ok(id_element);
				retour_comparaison = true;
			}
		}
		else 
		{
			if(document.getElementById(id_element).value == comparaison)
			{
				enlever_tout(id_element);

			}			
			else
			{
				mettre_ok(id_element);
			}
			retour_comparaison = true;
		}
	});
	
	return retour_comparaison;
}


function valid_obligatoire(id_element)
{
	return valid_comparaison(id_element,"");
}

function valid_email(id_element)
{
	var retour_email = false;
	if(valid_comparaison(id_element,"") == true)
	{
		var regex_email = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]*\\w$", "gi" ) ;	

		if ( document.getElementById(id_element).value.search( regex_email ) == -1 )
		{
			mettre_non_valide(id_element,"Format correct : exemple@mail.fr");
			retour_email = true;
		}
		else
		{
			mettre_ok(id_element);			
			retour_email = true;
		}
		if(verif_requis(id_element)) retour_email = true;
	}
	else retour_email = false;;

	return retour_email;
}

function valid_www(id_element)
{
	var retour_www = false;
	if(valid_obligatoire(id_element) == true)
	{		
		var regex_url = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
		if(!regex_url.test(document.getElementById(id_element).value))
		{
			mettre_non_valide(id_element,"Format correct : http://www.exemple.fr");
			retour_www = true;
		}
		else
		{
			mettre_ok(id_element);			
			retour_www = true;
		}
		if(verif_requis(id_element)) retour_www = true;
	}
	else retour_www = false;
	
	return retour_www;
}

function valid_tel(id_element)
{
	var retour_tel = false;
	if(valid_obligatoire(id_element) == true)
	{
		var regex_tel = new RegExp ( "^0[1-68]([0-9]{2}){4}$", "gi" ) ;	
		if ( document.getElementById(id_element).value.search( regex_tel ) == -1 )
		{
			mettre_non_valide(id_element,"Format correct : 0546079429");
		}
		else
		{
			mettre_ok(id_element);			
			retour_tel = true;
		}
		if(verif_requis(id_element)) retour_tel = true;
	}
	else retour_tel = false;
	
	return retour_tel;
}

function valid_code_postal(id_element)
{
	if(valid_obligatoire(id_element) == true)
	{		
		var regex_cp = new RegExp ( "^([0-9]){5}$", "gi" ) ;	
		if ( document.getElementById(id_element).value.search( regex_cp ) == -1 )
		{
			mettre_non_valide(id_element,"Format correct : 17000");
			if(verif_requis(id_element)) retour_tel = true;
			else return false;
		}
		else
		{
			mettre_ok(id_element);			
			return true;
		}
	}
	else return false;
}


function limiteur(id_element,limite)
{
	element = document.getElementById(id_element);

	if (element.value.length > limite)
		element.value = element.value.substring(0, limite);
	else 
	{
		$(function()
		{
			$("#indicateur_"+id_element).html(element.value.length);
		});
	}
}
