// JavaScript Document

/********************************************************
*  FONCTION PERMETTANT DE VERIFIER LES CHAMP D'UN FORMULAIRE
********************************************************/

function verifForm(formobj, fieldRequired, fieldDescription){
	
	// intro des messages de la boite de dialogue
	var alertMsg = "Vous devez completer :\n";

	var l_Msg = alertMsg.length;

	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.options[obj.selectedIndex].value == "rien"){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;

			case "checkbox":
					alert(obj.checked);
					if (obj.checked == false){
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;

			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.className = "cmdErreur";
				}else{
					obj.className =	"cmd";
				}
				break;
			default:
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		var field = formobj.elements["email"];
		if(field.value != null && field.value != ""){
			if(!checkmail(field.value)){
					alert("votre email est incorrect");
					field.className 	=	"cmdErreur";
					return false;
			}else{
				field.className 		= 	"cmd";
				return true;
			}
		}else{
			return true;
		}
	}else{
		alert(alertMsg);
		return false;
	}
}


function checkmail(email) {
         var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
         return (reg.exec(email)!=null)
}


function _CF_checkinteger(object_value) {
	if (object_value.length == 0)
		return true;
	var decimal_format = ".";
	var check_char;
	check_char = object_value.indexOf(decimal_format)
	if (check_char < 1)
		return _CF_checknumber(object_value);
	else
		return false;
}

function _CF_checknumber(object_value) {
	if (object_value.length == 0)
		return true;
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	check_char = start_format.indexOf(object_value.charAt(0))
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;
	for (var i = 1; i < object_value.length; i++) {
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1) {
			if (decimal)	// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0) {
			if (decimal || digits)  
				trailing_blank = true;
		}
		else if (trailing_blank)
			return false;
		else
			digits = true;
	}       
	return true;
}

function verifInsc(formobj, fieldRequired, fieldDescription)
{
	var alertMsg 	=	"Attention :\n";
	var l_Msg 		= 	alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++)
	{
		var obj = formobj.elements[fieldRequired[i]];
		if (obj)
		{
			if (obj.value == "" || obj.value == null)
			{
				alertMsg += " - " + fieldDescription[i] + "\n";
				obj.className = "cmdErreur";
			}else{
				obj.className = "cmd";
			}
		}
	}
	// verif email
	if(!checkmail(formobj.elements['email'].value))
	{
		alertMsg += " -  le format de votre email est incorrect \n";
	}
	// traitement des erreurs
	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

function formCreerClientCheck(formobj, champsVerif, alertVerif){
	if( verifForm(formobj, champsVerif, alertVerif) ){
		var alertMsg 	=	"Attention :\n";
		var l_Msg 		= 	alertMsg.length;
		// traitement supplmentaire
		// format telephone - cp
		if(!_CF_checkinteger(formobj.elements['cp'].value)){
			alertMsg += "- le format de votre code postal est incorrect \n";	
			formobj.elements['cp'].className = "cmdErreur";
		}else{
			formobj.elements['cp'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['tel'].value)){
			alertMsg += "- le format de votre numro de tlphone est incorrect \n";					 
			formobj.elements['tel'].className = "cmdErreur";
		}else{
			formobj.elements['tel'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['telpro'].value)){
			alertMsg += "- le format de votre numro de tlphone professionnel est incorrect \n";					 
			formobj.elements['telpro'].className = "cmdErreur";
		}else{
			formobj.elements['telpro'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['faxpro'].value)){
			alertMsg += "- le format de votre numro de fax professionnel est incorrect \n";					 
			formobj.elements['faxpro'].className = "cmdErreur";
		}else{
			formobj.elements['faxpro'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['birthdateDD'].options[formobj.elements['birthdateDD'].selectedIndex].value)){
			alertMsg += "- veuillez slectionner un jour pour votre date d'anniversaire \n";
		}
		
		if(!_CF_checkinteger(formobj.elements['birthdateMM'].options[formobj.elements['birthdateMM'].selectedIndex].value)){
			alertMsg += "- veuillez slectionner un mois pour votre date d'anniversaire \n";
		}
		
		if(!_CF_checkinteger(formobj.elements['birthdateYY'].options[formobj.elements['birthdateYY'].selectedIndex].value)){
			alertMsg += "- veuillez slectionner une anne pour votre date d'anniversaire \n";
		}
		
		// vrification des mots de passe
		if( (formobj.elements['pwd'].value.length>4) && (formobj.elements['pwdConfirm'].value.length>4) ){
			if(formobj.elements['pwd'].value != formobj.elements['pwdConfirm'].value){
				alertMsg += "- la confirmation de votre mot de passe est incorrect \n";
			}
		}else{
			alertMsg += "- votre mot de passe doit contenir au minimum 4 caractres \n";
		}
		
		// traitement des erreurs
		if (alertMsg.length == l_Msg){
			return true;
		}else{
			alert(alertMsg);
			return false;
		}
	}else{
		return false;
	}
}


function formNewAdresseCheck(formobj, champsVerif, alertVerif){
	if( verifForm(formobj, champsVerif, alertVerif) ){
		var alertMsg 	=	"Attention :\n";
		var l_Msg 		= 	alertMsg.length;
		// traitement supplmentaire
		// format telephone - cp
		if(!_CF_checkinteger(formobj.elements['cp'].value)){
			alertMsg += "- le format de votre code postal est incorrect \n";	
			formobj.elements['cp'].className = "cmdErreur";
		}else{
			formobj.elements['cp'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['tel'].value)){
			alertMsg += "- le format de votre numro de tlphone est incorrect \n";					 
			formobj.elements['tel'].className = "cmdErreur";
		}else{
			formobj.elements['tel'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['telpro'].value)){
			alertMsg += "- le format de votre numro de tlphone professionnel est incorrect \n";					 
			formobj.elements['telpro'].className = "cmdErreur";
		}else{
			formobj.elements['telpro'].className = "cmd";
		}
		
		if(!_CF_checkinteger(formobj.elements['faxpro'].value)){
			alertMsg += "- le format de votre numro de fax professionnel est incorrect \n";					 
			formobj.elements['faxpro'].className = "cmdErreur";
		}else{
			formobj.elements['faxpro'].className = "cmd";
		}
		
		// traitement des erreurs
		if (alertMsg.length == l_Msg){
			return true;
		}else{
			alert(alertMsg);
			return false;
		}
	}else{
		return false;
	}
}


/********************************************************
*  SHOW
********************************************************/

function show (id) {
	var dt 	= 	document.getElementById('menu'+id);
	var d 	= 	document.getElementById('smenu'+id);
	for (var i = 1; i<=20; i++) {
		if (document.getElementById('menu'+i) && document.getElementById('menu'+i).firstChild.className != "ext")document.getElementById('menu'+i).firstChild.className='';
		if (document.getElementById('smenu'+i))document.getElementById('smenu'+i).style.display='none';
	}
	if(dt)dt.firstChild.className='actif';
	if(d)d.style.display='block';
}

function getAll()
{
   var myElm = Form.getElements('ajout');
   var parameters = "";
   for(var i=0; i<myElm.length ;i++)
   {
		parameters += myElm[i].name;
		parameters += "=";
		parameters += myElm[i].value;
		if(i != myElm.length-1)parameters += '&';
   } 
   alert(parameters);	   
}

function nbrDiv(id)
{
	 var div = document.getElementById(id);
	 var divSelect = div.getElementsByTagName("select");
	 var nbrSelect = divSelect.length;
	 
	 return nbrSelect;
}

function valueList(_v)
{
	var div = document.getElementById('innerList_'+_v);
	div.getElementsByTagName("input")[0].value="";
	for(var i=0; i < div.getElementsByTagName("select").length;i++)
	{
		div.getElementsByTagName("input")[0].value += div.getElementsByTagName("select")[i].value+"|";
		//alert(div.getElementsByTagName("input")[0].value);
	}
}

function verifListValue(id,valueOpt,idSelect)
{
	var div = document.getElementById(id);
	var divSelect = div.getElementsByTagName("select");
	var nbrSelect = divSelect.length; 
	var testValue=0;
	
	for(vlv=0;vlv<nbrSelect;vlv++)
	{
		if(divSelect[vlv].options.selectedIndex == valueOpt)
		{
			testValue++;
			var name=divSelect[vlv].options[divSelect[vlv].options.selectedIndex].text;
			var initSelect=divSelect[vlv];
			
		}
	}
	if(testValue>1 && initSelect.options.selectedIndex!=0)
	{
		
		document.getElementById(idSelect).selectedIndex=0;
		
		alert('Vous devez faire un autre choix, "'+name+'" existe déja.');
	}
}
	
function ajaxList(_z,div,toc,modGen)
{
	//alert(div+_z)
	function addList(t)
	{	
		var divSelect = $(div+_z).getElementsByTagName("select");
		var nbrSelect = divSelect.length; 
		var selectValue = new Array;
		for(vlv=0;vlv<nbrSelect;vlv++)
		{
			 selectValue[vlv] = divSelect[vlv].options.selectedIndex;
		}
		
		$(div+_z).innerHTML += t.responseText;	
		
		for(i=0;i<selectValue.length;i++)
		{
			divSelect[i].options.selectedIndex=selectValue[i];
		}
	}
	
	new Ajax.Request('includes/ajax_addListElement.php', { method:'post', evalScripts:true , postBody:'index='+_z+'&z='+nbrDiv(div+_z)+'&toc='+toc, onComplete:addList })
	
	/*if($('innerList_'+_z).getElementsByTagName("input").length == 0)
	{
		$('innerList_'+_z).innerHTML += "<input type='hidden' value='' name='list"+_z+"'/>";
	}*/
	
}

function ajaxListUpd(_z,div,toc,id,multilangue,langueDef,langue,modGen)
{
	
	function addList(t)
	{	
		$(div+_z).innerHTML += t.responseText;	
	}
	
	new Ajax.Request('updListElement.php', { method:'post', evalScripts:true , postBody:'index='+_z+'&z='+nbrDiv(div+_z)+'&toc='+toc+'&id='+id+'&multilangue='+multilangue+'&langue='+langue+'&langueDef='+langueDef+'&modGen='+modGen, onComplete:addList })
	
	/*if($('innerList_'+_z).getElementsByTagName("input").length == 0)
	{
		$('innerList_'+_z).innerHTML += "<input type='hidden' value='' name='list"+_z+"'/>";
	}*/
	
}
