/* +----------------------------------------------------------------------+
// | JAVASCRIPT														      |
// +----------------------------------------------------------------------+
// | Copyright (c) 2004-2005 			  	  							  |
// +----------------------------------------------------------------------+
// | Authors: 	Stephane Carpentier <contact@pragmaclic.fr> 	   		  |
// |			Yoann Legoff (sous-rubrique)							  |
// |			Sergio Martino (valid form) 							  |
// |			Pierre Canthelou (format phone) 							  |
// +----------------------------------------------------------------------+
// | Site  		: guide pratique de la nievre 							  |
// | Creation   : 30/09/04 												  |
// | Modifie 	: 														  |
// | Version 	: 2 													  |
// | Historique des Modifs 	: 											  |
// 				: 06/01/05 - suppressions des fonctions inutiles
// | A faire 	: 														  |
// +----------------------------------------------------------------------+
	/**
    * fonction javascript utilisée dans le guide pratique de la nièvre
    * 
    */

// +----------------------------------------------------------------------+
// FONCTION  : Cache sous-menus rubriques ou pas
// +----------------------------------------------------------------------+
function openClose(id)
{  
	if(document.getElementById)  
	{    
		element = document.getElementById(id);  
	}
	else if(document.all)  
	{ 
		element = document.all[id];  
	}
	else return;
	
	if(element.style)  
	{ 
		if(element.style.display == 'none' ) 
		{ 
			element.style.display = 'block';/* alert('set to Block');*/ 
		}
		else
		{ 
			element.style.display = 'none'; /* alert('set to none');*/ 
		} 
	}
}

// +----------------------------------------------------------------------+
// FONCTION  : Validation form
// +----------------------------------------------------------------------+
var str='';
var errs = 0;
var arrow = '-> ';

// fct servant à afficher l'erreur, si validation ne passe pas
// fct appelée à l'interieur de la fct check()
function err(m) {
	str +=arrow+m+'\n';
	errs=1;
}

// fct de vérif des arguments passes
function check(cmp,valtype,required,e) {
	
	var store = eval('document.forms[0].'+cmp);
	var obj = store.value;	
	
	if(valtype.substr(0,3)=='LEN') {
		var objarr = valtype.split(':');
		var c = objarr[1].charAt(0);
		var op = objarr[1].substr(1,15);
		
		switch(c) {
			case '<' : if((obj=='' && required==1) | (obj.length>=op && obj!='')) err(e); break;
			case '=' : if((obj=='' && required==1) | (obj.length!=op && obj!='')) err(e); break;
			case '>' : if((obj=='' && required==1) | (obj.length<=op && obj!='')) err(e); break;
		}				
	}
	
	if(valtype=='DATE') {;
		if((obj=='' && required==1) | ((obj.indexOf('/')!=2 | obj.length!=10)  && obj!='')) err(e);
	}
	
	if(valtype=='RADIO') {
		radiochecks=0;
		for(i=0;i<store.length;i++) {
			if(store[i].checked==true) radiochecks=1;
		}
		if(radiochecks==0) err(e);
	}
	
	if(valtype=='EMAIL') {
		if((obj=='' && required==1) | (obj.indexOf('@')==-1 && obj!='')) err(e);
	}	
	
	if(valtype=='URL') {
		if((obj=='' && required==1) | (obj.indexOf('http://')==-1 && obj!='')) err(e);		
	}
	
	if(valtype=='NUM') {
		if((obj=='' && required==1) | (isNaN(obj) && obj!='')) err(e);
	}
	
	if(valtype=='ALPHA') {
		if((obj=='' && required==1)) err(e);
	}
	
	if(valtype.substr(0,6)=='VALUES') {
		var flg=0;
		var objarr1 = valtype.split(':');
		var objarr2 = objarr1[1].split(',');
		for(i=0;i<objarr2.length;i++) {
			if(objarr2[i]==obj) flg=1;
		}
		
		if((obj=='' && required==1) | (flg==0 && obj!='')) err(e);		
	}
	
	if(valtype.substr(0,7)=='EXCLUDE') {
		var flg=1;
		var objarr1 = valtype.split(':');
		var objarr2 = objarr1[1].split(',');
		for(i=0;i<objarr2.length;i++) {
			if(objarr2[i]==obj) flg=0;
		}
		
		if((obj=='' && required==1) | (flg==0 && obj!='')) err(e);
	}	
		
}

function errors() {
	if(errs==1) {
		alert(str);
		errs=0;
		str='';
		return false;		
	}
	else {
		return true;
	}
}
// --------------------------------------------------------------------+//

// +----------------------------------------------------------------------+
// FONCTION  : format phone
// +----------------------------------------------------------------------+
   //-- formatage d'un champ selon le type telephone xx.xx.xx.xx.xx
   //-- doit etre positionne sur l'evenement onBlur du champ a transformer
   function formatPhone( obj )
   {
      if( !document.getElementById ) return;
      var currentContent = obj.value;
      var currentLength = currentContent.length;
      // commenter la ligne suivante si le champ est obligatoire
      if( currentLength == 0 ) return;
      // on retire tous les caracteres qui ne sont pas des chiffres
      var result = new String;
      for( var stringIndex = 0; stringIndex < currentLength; stringIndex++ )
      {
         currentChar = currentContent.charAt( stringIndex );
         if( !isNaN( currentChar ) )
            result += currentChar;
      }
      // reinitialisation
      currentContent = result;
      currentLength = currentContent.length;
      result = currentContent.charAt( 0 );
      // si la chaine est bien composee de 10 chiffres alors
      // inserer un point tous les 2 caracteres
      if( currentLength == 10 )
      {
         for( var stringIndex = 1; stringIndex < currentLength; stringIndex++ )
         {
            currentChar = currentContent.charAt( stringIndex );
            if( ( stringIndex % 2 ) == 0 )
            {
               currentChar = "." + currentChar;
            }
            result += currentChar;
         }
         obj.value = result;
      }
      else
      {
         // messge d'erreur
         alert( "Le format se compose de 10 chiffres" );
		 obj.focus();
		 obj.select();
      }
   }
// --------------------------------------------------------------------+//
