// verifie la validite d'un email pour le générateur de formulaire
function validemailgenForm(champ) {
 test = document.formulaire.elements[""+champ+""].value;
 if (test!="") {
	 valeur = test.indexOf("@");
	 valeur2 = test.lastIndexOf(".");
	 valeur3 = valeur2 + 1;
	 longueur = test.length;
	 ext = test.substring(valeur3,longueur);
	 ok=0;
	 temp = ext.length;
	 if ( temp==2 || temp==3 ) 
	    { ok=1; }
	 else
	    { ok=0; }
	 if ( valeur2 == (valeur + 1) )
	     { ok=0; }
	 if (valeur==0)
	     { ok=0; }
	 if (valeur==-1 || valeur2==-1 || ok==0)
	    { alert("Votre email comporte des erreurs.\nVeuillez la ressaisir.");
	      return false; }
	 else
	    { return true; }
 }else{
	 return true;
 }
}
// verifie la validite d'un email
function validemail(champ) {
 test = document.formulaire.elements[""+champ+""].value;
 valeur = test.indexOf("@");
 valeur2 = test.lastIndexOf(".");
 valeur3 = valeur2 + 1;
 longueur = test.length;
 ext = test.substring(valeur3,longueur);
 ok=0;
 temp = ext.length;
 if ( temp==2 || temp==3 ) 
    { ok=1; }
 else
    { ok=0; }
 if ( valeur2 == (valeur + 1) )
     { ok=0; }
 if (valeur==0)
     { ok=0; }
 if (valeur==-1 || valeur2==-1 || ok==0)
    { alert("Votre email comporte des erreurs.\nVeuillez la ressaisir.");
      return false; }
 else
    { return true; }   
    
}

// verifie les champs obligatoire d'un formulaire
valider_formulaire = function () {
	var tab = valider_formulaire.arguments;
	taille = tab.length;

	for (i=0;i<taille;i++) {
		if (document.getElementById(tab[i]).className=="champ1 taille_form class_email") {	// ATTENTION feinte pour savoir que c'est un champ de type email !
			if (!validemail(tab[i])) {
				return 0; 
			}
		}else{
			if ((document.formulaire.elements[tab[i]].value=="") || (document.formulaire.elements[tab[i]].value==" ")) {
				str_temp = tab[i].replace(/_/g," ");
				alert("Tous les champs précédés d'une étoile sont obligatoires.\nVeuillez vérifier vos informations.");
				return 0; 
			}
		}
	}
	
	document.formulaire.submit();
}

function empechechar()
{
	if( event.keyCode < 48 || event.keyCode > 57 ) { 
		alert( "Ce champ doit être numérique, il ne peut contenir aucun autre type de caratères." );
   	event.returnValue = false;
	}
}

// fonction qui fait apparaitre le sablier sur soumission de formulaire un peu long..

// Variable témoin de la validation effectuée ou pas
var deja = 0;

function valider(nom_form) {
	// Si on n'a pas déjà validé
	if ( deja == 0 ) {

		// On marque qu'on valide
		deja = 1;
					
		// On affecte le style 'sablier' au corps de la page
		document.body.className = 'sablier';
		
		// On lance la soumission du formulaire
		eval('document.'+nom_form+'.submit()');
	} /*else {
		alert('Le formulaire est déjà validé, veuillez patienter.'); */
}

function show_sablier()
{
	document.body.className = 'sablier';
}


/* FONCTIONS DU MENU */

var actu_id1 = 0;
var chrone_attente=0;
var id_timout;
var actunom = "";

function hideallLayer() {
	chrone_attente=1;
	window.clearTimeout(id_timout);
	id_timout = setTimeout("chroneHide()",1000);
}

function chroneHide() {
	if (chrone_attente==1) {
		hideLayer();
	}
}

function stopChrone() {
	window.clearTimeout(id_timout);
	chrone_attente=0;
}

function hideLayer() {
	chrone_attente=0;
	if (actu_id1!=0) {
		if (actu_id1!=99) {
			document.getElementById("layer-"+actu_id1).style.display="none";
		}
		if (my_actu_rub!=actu_id1) {
			document.getElementById("myitem"+actu_id1).className = "libelle_menuh txt_menuh";
		}
		actu_id1=0;
	}
}

function showLayer(id) {
	chrone_attente=0;
	hideLayer();
	actu_id1 = id;
	document.getElementById("layer-"+id).style.display="block";
}

function onItem(param) {
	param.className="ssitem_menuh_on";
}
function offItem(param) {
	param.className="ssitem_menuh";
}

function lightRub(param) {
	actu_id1 = param;
	document.getElementById("myitem"+param).className = "libelle_menuh"+param+" txt_menuh";
}

/* FIN FONCTIONS DU MENU */

/*------------------*/
/*	MENU DE GAUCHE	*/
/*------------------*/
function toggleDisplay( div_id )
{
	if( document.getElementById(div_id).style.display == "none" )
	{
    document.getElementById(div_id).style.display = "block";
  }
  else
  {
    document.getElementById(div_id).style.display = "none";
  }
  
  return false;
}

function toggleImage ( img_id )
{
	if( document.getElementById(img_id).style.display == "none" )
	{
    document.getElementById(img_id).style.display = "";
  }
  else
  {
    document.getElementById(img_id).style.display = "none";
  }
  
  return false;
}

function toggleLeftMenu ( n2_id )
{
	toggleDisplay 	( 'submenu_' + n2_id );
	toggleImage 		( 'img_plus_' + n2_id );
	toggleImage 		( 'img_moins_' + n2_id );
	
	return false;
}

/*-----------*/
/* RECHERCHE */
/*-----------*/
function Recherche() {
	if ((document.form_recherche.query_string.value!="")&&(document.form_recherche.query_string.value!="RECHERCHE")) {
		document.form_recherche.submit();
	}
}

/*--------*/
/* POPUPs */
/*--------*/

// Zomm sur image
function openZoom ( _src, _largeur, _hauteur, _title )
{
	
	window.open( 'popup.php?source='+_src, _title, "width=" + ( _largeur + 20 ) + ",height=" + ( _hauteur + 30 ) + ",scrollbars=no,resizable=no,location=no,menubar=no" );
	
	return false;
}

/*----------------*/
/* AGENDA - ACTUS */
/*----------------*/

// Utilisation des dates manuelles
function manageAgendaDatesManuelles ()
{
	var date_debut_annee	= document.getElementById ( 'date_debut_annee' ).value;
	var date_debut_mois		= document.getElementById ( 'date_debut_mois' ).value;
	var date_debut_jour		= document.getElementById ( 'date_debut_jour' ).value;
	var date_fin_annee		= document.getElementById ( 'date_fin_annee' ).value;
	var date_fin_mois			= document.getElementById ( 'date_fin_mois' ).value;
	var date_fin_jour			= document.getElementById ( 'date_fin_jour' ).value;
	
	if	(		(	isValidDate ( date_debut_jour, date_debut_mois, date_debut_annee ) )
			&&	(	isValidDate ( date_fin_jour, date_fin_mois, date_fin_annee ) )	)
	{
		// Assignation des variables de dates manuelles
		document.getElementById ( 'date_debut' ).value 	= date_debut_annee + "-" + date_debut_mois + "-" + date_debut_jour;
		document.getElementById ( 'date_fin' ).value 		= date_fin_annee + "-" + date_fin_mois + "-" + date_fin_jour;
	
		// Submit du form	
		document.form_moteur_recherche_actu.submit();
	}
	else
	{
		alert_date ();
	}
	
	return false;
}

// Utilisation du calendrier au mois
function manageAgendaCalendrier ( mois, annee )
{
	// Assignation des variables pour selection par mois
	document.getElementById('mois').value 	= mois;
	document.getElementById('annee').value	= annee;
	
	// Reset des variables de dates manuelles
	document.getElementById ( 'date_debut' ).value 	= "";
	document.getElementById ( 'date_fin' ).value 		= "";

	// Submit du form	
	document.form_moteur_recherche_actu.submit();
	
	return false;
}

/*-------------------*/
/* GESTION DES DATES */
/*-------------------*/

// Validité d'une date
function isValidDate ( jour, mois, annee )
{
		var retour		= false;
    var sys_date 	= new Date( mois + "/" + jour + "/" + annee );

		if 	(
				( sys_date.getDate() == jour )
		&&	( sys_date.getMonth() == mois - 1 )
		&&	( sys_date.getFullYear() == annee )
				)
				retour = true;
        
    return retour;
}

/*---------------*/
/* GENERIC ACTUS */
/*---------------*/
function resetAndSubmit ( form_name, form_dest, excluded_field )
{
	resetFormFields ( form_name, excluded_field );
	submitTo 				( form_name, form_dest );
	
	return false;
}


/*--------*/
/* DIVERS */
/*--------*/
function submitTo ( form_name, form_dest )
{
	if ( form_dest != "" )
		eval ( "document." + form_name ).action = form_dest;
		
	eval ( "document." + form_name ).submit();
	
	return false;
}

//---------------------------------------------------
// Permet de réinitialiser les champs d'un formulaire
//---------------------------------------------------
// -> Ne reset pas les champs 'hidden'
function resetFormFields ( form_name, excluded_field )
{
	var curr_form 		= eval ( "document." + form_name );
	var tab_excluded	= excluded_field.split ( "," );
	
	for ( var i = 0; i < curr_form.elements.length; i++ )
	{
        field_name 	= curr_form.elements[ i ].name;
        field_type 	= curr_form.elements[ i ].type;
        to_reset		= true;
        
				for ( var j = 0; j < tab_excluded.length; j++ )
				{
					if ( tab_excluded [ j ] == field_name )
						to_reset = false;
				}
        
        if ( ! to_reset )
        	continue;
     	
        
        // TODO : gérer les type 'checkbox' et 'radio' correctement
        if ( field_type == 'checkbox' || field_type == 'radio')
        {
            curr_form.elements[ i ].checked = curr_form.elements[ i ].defaultChecked;
        }
        else if ( field_type == 'password' || field_type == 'text' || field_type == 'textarea' /*|| field_type == 'hidden'*/ )
        {
            curr_form.elements[ i ].value = "";
        }
        else if ( field_type == 'select-one' || field_type == 'select-multiple')
        {
            for ( var k = 0; k < curr_form.elements[ i ].options.length; k++ )
            {
                curr_form.elements [ i ].options[ k ].selected = false;
            }
        }
    }
    
    return false;
}

//----------------------------
// Affichage d'un page 1-based
//----------------------------
function gotoPage ( num_page, total_page )
{
	if ( num_page > total_page )
		return false;
	
	for ( var i = 0; i < total_page; i++ )
	{
		if ( i == num_page - 1 )
	  	paginationActivePage ( i );
	  else
	  	paginationUnactivePage ( i );
	}
	
	return false;
}

//-------------------------
// Décalage de page 0-based
//-------------------------
function shiftPage ( nb_shift )
{
	if ( nb_shift == "" || nb_shift == 0 )
		return false;
	
	var current_page 	= parseInt ( document.getElementById( "current_page" ).value );
	var nb_page 			= parseInt ( document.getElementById( "nb_page" ).value );
	
	if ( 	( nb_shift < 0 && current_page > 0 )
		||	( nb_shift > 0 && current_page < ( nb_page - 1 ) ) )
	{
		// Désactivation de l'ancienne page
	 	paginationUnactivePage ( current_page );

		// Incrémentation
		current_page += nb_shift;

		// Activation de la nouvelle page
	 	paginationActivePage ( current_page );
	}
	
	return false;
}

//------------------------------
// Activation d'une page 0-based
//------------------------------
function paginationActivePage ( num_page )
{
	if ( document.getElementById( "texte_page_" + num_page ) )
		document.getElementById( "texte_page_" + num_page ).className = "pagination_text_selected";
		
 	document.getElementById( "page_" + num_page ).style.display 	= "block";
 	document.getElementById( "current_page" ).value								= num_page;
 	
 	return false;
}

//---------------------------------
// Désactivation d'une page 0-based
//---------------------------------
function paginationUnactivePage ( num_page )
{
	if ( document.getElementById( "texte_page_" + num_page ) )
		document.getElementById( "texte_page_" + num_page ).className = "pagination_text";
		
 	document.getElementById( "page_" + num_page ).style.display 	= "none";
 	
 	return false;
}

//------------------------------
// Assigne une valeur à un champ
//------------------------------
function setValue ( _field, _value )
{
	document.getElementById ( _field ).value = _value;
	return false;
}

function accesRapide(obj) {
	location.href = obj.value;
}

// desactive le click droit
var clickmessage="© Copyright Ville de Bron 2007"


function disableclick(e) {
	if (document.all) {
		if (event.button==2||event.button==3||event.button==4) {
			alert(clickmessage);
		}
	}else{
		if (e.button==2||e.button==3||e.button==4) {
			alert(clickmessage);
		}
	}
	return false;	
}

function associateimages(){
for(i=0;i<document.images.length;i++)
document.images[i].onmousedown=disableclick;
}

document.oncontextmenu=disableclick

//--------------------------------------
// Ouvre le Popup "Bron en Image" centré
//--------------------------------------
function ouvre_popup(page) {
		var wihe = 'width='+screen.availWidth+',height='+screen.availHeight;
		window.open(page,"Diaporama","screenX=1,screenY=1,left=1,top=1," + wihe);
   }
   
   
function control_form()
{
	var tab = control_form.arguments;
	taille = tab.length;
	
	for (i=0;i<taille;i++) {
		
		var info = tab[i];
		var tab_info = info.split("##");
		
		if(tab_info.length = 2)
		{
			var id	= tab_info[0];
			var id_type	= tab_info[1];
			
			if(id_type == 16)
			{
				//CONTROL SUR LES AGES
				if(control_age(id))
				{
					return 1;	
				}
			}
		}
	}
	return 0;
}

function control_age(id)
{
	if(document.getElementById(id) && document.getElementById('control_'+id))
	{
		var control = document.getElementById('control_'+id).value;
		var valeur = document.getElementById(id).value;
		
		//Le control age est sous la forme agemin-agemax
		//Il faut d'abord verifier que la valeur est bien une annee
		//Il faut ensuite verifier que l'annee de naissance correspond a un age entre agemin et agemax
		
		if(valid_integer(valeur))
		{
			var bornes = control.split("-");
			if(bornes.length == 2 && valid_integer(bornes[0]) && valid_integer(bornes[1]))
			{
				var agemin = bornes[0];	
				var agemax = bornes[1];	
				
				//Recuperation de l'annee courante
				var today = new Date(); 
				var annee_courante = today.getFullYear();
				
				if(parseInt(valeur) + parseInt(agemin) > parseInt(annee_courante))
				{
					alert('Vous devez être agés de plus de '+agemin+' ans pour remplir les conditions nécessaires à la validation de ce formulaire');	
					return false;
				}
				if(parseInt(valeur) + parseInt(agemax) < parseInt(annee_courante))
				{
					alert('Vous devez être agés de moins de '+agemax+' ans pour remplir les conditions nécessaires à la validation de ce formulaire');	
					return false;
				}
					
				return true;	
				
			}
		}
		else
		{
			alert('Vous devez entrer votre année de naissance');	
		}
		
	}
	return false;
}

function valid_integer(value)
{
	if(value != '' && value.length > 0)
	{
		
		if(!isNaN(value))
		{
		
			if (value.indexOf('.') == -1 && value.indexOf(',') == -1) 
			{
		
				return true;
			}
		}
	}
	return false;
}	
