//******************************************************************************
//******* Iconeweb - Groupe J.D. Edwards - 15 juillet 2003
//******* -------------------------------------------------------------
//******* Application		: Groupe J.D. Edwards
//******* 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écursive de cet enregistrement ?"))
	{
		window.location = URL ;
	}
} // fin f_ConfirmerCopieRecursive

//******************************************************************************
//**   Test si une valeur ne contient que les caractères a-z et 0-9
//******************************************************************************
function f_TestCode(p_code)
{
	var reg = /^[a-zA-Z0-9_]+$/ ;
	if (!reg.test(p_code))
	{
		return false ;
	}
	return true ;
} // f_TestCode

//******************************************************************************
//**   Test 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 faire des search replace dans une colonne entiere
//******************************************************************************
function f_rech_rempl_a_tout(form_in, form_rech, form_rempl)
{
	var i=1;
	
	if (eval("val_rech = "+form_rech+".value") != "")
	{
		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 ;
		}
	}
	else
		alert("Vous devez d'abord indiquer une valeur à rechercher") ;

} // 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++)
		{
			if (p_valeur == "inverser")
			{
				if (elts[i].checked == true)
					elts[i].checked = false ;
				else
					elts[i].checked = true ;
			}
			else
            	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 ;
	var wbg_popup ;
	
	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 ;
	wbg_popup = 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

//******************************************************************************
//**   Fonction de recherche remplace (p_recherche est un regexp)
//******************************************************************************
function f_recherche_remplace(p_recherche,p_remplace,p_var)
{
	resultat=p_var.search(eval(p_recherche))
	if(resultat != -1)
	{
		p_var = p_var.replace(eval(p_recherche),p_remplace) ;
		p_var = f_recherche_remplace(p_recherche,p_remplace,p_var) ;
	}
	
	return p_var ;
} // f_recherche_remplace

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//******************************************************************************
//**   Converti une date au format jjmmaa au format jj/mm/aaaa
//******************************************************************************
function f_date_formatage(p_date)
{
	resultat = p_date.search("/") ;
	
	if(resultat == -1)
	{
		jour = p_date.substr(0,2) ;
		mois = p_date.substr(2,2) ;
		annee = p_date.substr(4,2) ;
		
		if (annee < 10)
			annee = "20" + annee ;
		else
			annee = "19" + annee ;
		
		v_date = jour + "/" + mois + "/" + annee ;
	}
	else
		v_date = p_date ;
	
	return v_date ;
}
