//******************************************************************************
//******* Iconeweb - Mareception - 28 octobre 2002
//******* -------------------------------------------------------------
//******* Application		: Mareception
//******* Objet de la page	: Fonctions et procédures communes javascript
//******* Révisions			: (date) - (objet)
//*******
//*******
//*******
//******************************************************************************

//******************************************************************************
//**   Confirmation de suppression
//******************************************************************************
function f_ConfirmerSuppression(URL)
{
	if (confirm("Etes-vous sûr de vouloir supprimer cet enregistrement (cette opération est irréversible) ?"))
	{
		window.location = URL ;
	}
} // fin f_ConfirmerSuppression

//******************************************************************************
//**   Confirmation de copie récursive
//******************************************************************************
function f_ConfirmerCopieRecursive(URL)
{
	if (confirm("Etes-vous sûr de vouloir faire une copie récursice de cet enregistrement ?"))
	{
		window.location = URL ;
	}
} // fin f_ConfirmerCopieRecursive

//******************************************************************************
//**   Teste si une valeur est numérique uniquement
//******************************************************************************
function f_TestChiffres(entree)
{
  	var seulement_ca ="0123456789.,-" ;
  	for (a = 0; a < entree.length; a++)
   	{
   		if (seulement_ca.indexOf(entree.charAt(a))<0 ) return false;
	}
  	return true ;
} // fin f_TestChiffres

//******************************************************************************
//**   Test si une valeur est un e-mail valide
//******************************************************************************
function f_TestEmail(entree)
{
	var supported = 0 ;
	if (window.RegExp)
	{
    	var tempStr = "a" ;
    	var tempReg = new RegExp(tempStr) ;
    	if (tempReg.test(tempStr))
		{
			supported = 1 ;
		}
  	}
  	if (!supported)
	{
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0) ;
	}
  	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)") ;
  	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$") ;
  	return (!r1.test(entree) && r2.test(entree)) ;
	
} // fin f_TestEmail

//******************************************************************************
//**   Test si une valeur est une date valide
//******************************************************************************
function f_TestDate(entree)
{
	expression_regulaire=/^[0123]{1}\d{1}\/[01]{1}\d{1}\/\d{4}$/ ;

	if (expression_regulaire.test(entree))
	{
		return true ;
	}
	else
	{
		return false ;
	}
} // fin f_TestDate

//******************************************************************************
//**   Test la validité de noms d'images
//******************************************************************************
function f_TestImage(entree)
{
	tableau=entree.split(".")
	if ((tableau[tableau.length-1] != "jpg") && (tableau[tableau.length-1] != "gif") && (tableau[tableau.length-1] != "png"))
	{
		return false ;
	}
	else
	{
		return true ;
	}
} // fin f_TestImage

//******************************************************************************
//**   Test la longueur d'une chaîne
//******************************************************************************
function f_TestTaille(entree,longueur)
{
	expression_regulaire=new RegExp("^[a-zA-Z0-9]{0,"+longueur+"}$") ;
	if (expression_regulaire.test(entree))
	{
		return true ;
	}
	else
	{
		return false ;
	}

} // fin f_TestTaille

//******************************************************************************
//**   Fenêtre de l'admin visuelle - Ouvre l'administration dans une fenêtre séparée
//******************************************************************************
function f_fenetre_admin (URL, Question)
{
	if (Question == "")
	{
		bOuvrir = true ;
	}
	else
	{
		if (confirm(Question)) 
			bOuvrir = true ;
		else
			bOuvrir = false ;
	}
	if (bOuvrir)
	{	
		P_options_fenetre_adminvisu = "menubar,resizable,scrollbars,status,toolbar,location" ;
		P_nom_adminvisu = "Iconeweb_administration" ;
		Adminvisu = window.open(URL,P_nom_adminvisu,P_options_fenetre_adminvisu).focus() ;
	}
} // fin f_fenetre_admin

//******************************************************************************
//**   Fonction de l'administration rapide permettant l'affichage de l'arbre
//******************************************************************************
function f_arbre_deplier(p_entree,p_action)
{
	if (p_action=="deplier")
	{
		if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout"))
		{
			document.form_arbre.elements[p_entree].value="repliertout" ;
		}
		else
		{
			document.form_arbre.elements[p_entree].value="deplier" ;
		}
	}
	else
	{
		if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout"))
		{
			document.form_arbre.elements[p_entree].value="repliertout" ;
		}
		else
		{
			document.form_arbre.elements[p_entree].value="depliertout" ;
		}
	}

	document.form_arbre.action="#" + p_entree ;
	
	document.form_arbre.submit() ;
	
} // f_arbre_deplier

//******************************************************************************
//**   Fonction qui permet d'appliquer une valeur a plusieurs variables de type form1.v_val1, form1.v_val2, form1.v_val3... 
//******************************************************************************
function f_appliquer_a_tout(form_in, form_val)
{
	var i=1;
	while(1)
	{
		if(eval(form_in+i))
		{
			eval(form_in+i+".value="+form_val+".value") ;
			i++ ;
		}
		else
			break ;
	}
} // f_appliquer_a_tout

//******************************************************************************
//**   Permet dans recherche rapide de selectionner la bonne page.
//******************************************************************************
function f_submit_form()
{
	if(document.form_recherche.s_SuppChamp.checked)
	{
		document.form_recherche.action = "liste-supprime.php" ;
	}
	else
	{
		if (document.form_recherche.s_ModifChamp.checked)
		{
			document.form_recherche.action = "liste-avance.php" ;
		}
		else
		{
			document.form_recherche.action = "liste.php" ;
		}
	}
	document.form_recherche.submit() ;
} // f_submit_form

//******************************************************************************
//**   Permet dans recherche rapide de faire des search replace dans une colonne entiere
//******************************************************************************
function f_rech_rempl_a_tout(form_in, form_rech, form_rempl)
{
	var i=1;
	while(1)
	{
		if(eval(form_in+i))
		{
			eval("val_res = "+form_in+i+".value") ;
			eval("val_rech = "+form_rech+".value") ;
			eval("val_rempl = "+form_rempl+".value") ;
			eval("var n = val_res.replace(/"+val_rech+"/,\""+val_rempl+"\")") ;
			eval(form_in+i+".value = n" ) ;
			i++ ;
		}
		else
			break ;
	}
} // f_rech_rempl_a_tout

//******************************************************************************
//**   
//******************************************************************************
function f_popup_aide(p_texte,p_chemin_serveur)
{
	tableau_aide='<table width="200" border="0" cellspacing="0" cellpadding="0">' ;
	tableau_aide+='  <tr height="11">' ;
	tableau_aide+='    <td width="21" colspan="2"><img src="aide/coin_hg.gif" width="21" height="11"></td>' ;
	tableau_aide+='    <td valign="top"><img src="aide/pixel_orange.gif" width="100%" height="1"></td>' ;
	tableau_aide+='    <td width="21" colspan="2"><img src="aide/coin_hd.gif" width="21" height="11"></td>' ;
	tableau_aide+='  </tr>' ;
	tableau_aide+='  <tr>' ;
	tableau_aide+='    <td width="1" bgcolor="#FF3300"><img src="aide/pixel_orange.gif" width="1" height="1"></td>' ;
	tableau_aide+='    <td width="20">&nbsp;</td>' ;
	tableau_aide+='    <td width="100%">' + p_texte + '</td>' ;
	tableau_aide+='    <td width="20">&nbsp;</td>' ;
	tableau_aide+='    <td align="right" width="1" bgcolor="#FF3300"><img src="aide/pixel_orange.gif" width="1" height="1"></td>' ;
	tableau_aide+='  </tr>' ;
	tableau_aide+='  <tr height="22">' ;
	tableau_aide+='    <td colspan="2"><img src="aide/coin_bg.gif" width="21" height="22"></td>' ;
	tableau_aide+='    <td valign="bottom"><img src="aide/pixel_orange.gif" width="100%" height="1"></td>' ;
	tableau_aide+='    <td colspan="2"><img src="aide/coin_bd.gif" width="21" height="22"></td>' ;
	tableau_aide+='  </tr>' ;
	tableau_aide+='</table>' ;

	document.write(tableau_aide) ;
} // f_popup_aide

//******************************************************************************
//**   Fonction de cochage et décochage des cases à cocher
//******************************************************************************
function f_checkboxes(p_form, p_valeur)
{
    var elts      = document.forms[p_form].elements['selected_tbl[]'] ;
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0 ;

    if (elts_cnt)
	{
        for (var i = 0; i < elts_cnt; i++)
		{
            elts[i].checked = p_valeur;
        } // end for
    }
	else
	{
        elts.checked        = p_valeur ;
    } // end if... else

    return true ;
} // f_checkboxes

//******************************************************************************
//**   Fonction d'ouverture d'un popup
//******************************************************************************
function f_popup(p_url, p_nom, p_width, p_height, p_left, p_top, p_menu, p_scroll, p_tool, p_status, p_resizable, p_location)
{
	var strProperties ;
	strProperties = 'width=' + p_width + ',height=' + p_height ;
	strProperties = strProperties + ',left='+ p_left +',top='+ p_top +',directories=0,hotkeys=1' ;
	strProperties = strProperties + ',menubar='+p_menu +',scrollbars='+p_scroll+',toolbar='+p_tool+',status='+p_status ;
	strProperties = strProperties + ',resizable='+p_resizable+',location='+p_location ;
	window.open(p_url, p_nom, strProperties) ;
	return ;
}
//******************************************************************************
//**   Popup diaporama
//******************************************************************************
function f_popup_diaporama(p_chemin,code_diaporama)
{
	// Définition de la largeur et de la hauteur de la fenêtre, à modifier selon les cas
	LargeurFenetre = 400;
	HauteurFenetre = 350;
	// Calcul des coordonnées du point supérieur gauche de la fenêtre
	PixelsDepuisHaut = (screen.height - HauteurFenetre) / 2 ;
	PixelsDepuisGauche = (screen.width - LargeurFenetre) / 2 ;
	// Construction des paramètres du window.open
	ParametresOuverture = "width=" + LargeurFenetre + " ,height=" + HauteurFenetre + " ,top=" + PixelsDepuisHaut + " ,left =" + PixelsDepuisGauche ;
	// Ouverture de la fenêtre, à gérer ensuite comme n'importe quelle fenêtre (en utilisant son nom ;-))
	url_diaporama = p_chemin+"pages/diaporama.php?s_code="+code_diaporama+"&action=1";
	windowscreencenter = window.open(url_diaporama,"Diaporama",ParametresOuverture).focus() ;
} // f_popup_diaporama

//******************************************************************************
//**   f_affecte_valeur_champ
//******************************************************************************
function f_affecte_valeur_champ(p_form,p_champ_source,p_champ_cible)
{
	eval("longueur_liste = document." + p_form + "." + p_champ_source + ".length") ;
	for (var i=0; i < longueur_liste; i++)
	{
		eval("selectionne = document." + p_form + "." + p_champ_source + ".options[i].selected") ;
		if (selectionne)
		{
			eval("document." + p_form + "." + p_champ_cible + ".value = document." + p_form + "." + p_champ_source + ".options[i].value") ;
		}
	}
} // f_affecte_valeur_champ

//******************************************************************************
//**   Fonction de lecteur d'un cookie
//******************************************************************************
function getCookie(name)
{
	var cname = name + "=";               
	var dc = document.cookie;             
	
	if (dc.length > 0)
	{              
		begin = dc.indexOf(cname);       
		if (begin != -1)
		{
			begin += cname.length;
			end = dc.indexOf(";", begin);
			if (end == -1) end = dc.length;
			return unescape(dc.substring(begin, end));
		 } 
	}
} // getCookie

//******************************************************************************
//**   Fonction d'écriture d'un cookie : on passe en paramètre son nom, sa valeur, et
//**   une date d'expiration en milisecondes (1 jour = 1000 * 60 * 60 * 24)
//******************************************************************************
function setCookie(name, value, expires)
{
	document.cookie = name + "=" + escape(value) + 
	((expires != null) ? "; expires=" + expires.toGMTString() : "")
	+ "; path=/";
} // setCookie
