var listeouverte = false;

// Déclenche le formulaire de liste des sites du groupe
function allerSiteDuGroupe() {
	var lb = document.getElementById('sitesGroupe');
	var url = lb.options[lb.selectedIndex].value;
	var form = document.getElementById('formSitesGroupe');
	form.action = url;
}

function allerPage(idSelect){
	if (document.getElementById(idSelect).selectedIndex > 0) {
		top.location = document.getElementById(idSelect).options[document.getElementById(idSelect).selectedIndex].value
	}	
}
// Ajout d'un marque page
function bookmarksite(title, url){
	if (document.all)
		window.external.AddFavorite(url, title);
	else if (window.sidebar)
		window.sidebar.addPanel(title, url, "")
}
// Changement de feuille de style
function setStyle(styleSheet) {
	if (!document.styleSheets) var ss = getAllSheets() //Opera
	else var ss = document.styleSheets; //Dom

	for( var x = 0; x < ss.length; x++ ) {
		if( ss[x].title.substr(0,9) == "generali+" ) ss[x].disabled=true;
		if( ss[x].title == styleSheet ) { 
			ss[x].disabled=false;
			setCookie("generaliStyleSheet",ss[x].title);
		}
	}	
}
function setStyleSheetFromCookie() {
	setStyle(getCookie("generaliStyleSheet"));
}
// set Cookie
function setCookie(nom, valeur) {
	var argv=setCookie.arguments;
	var argc=setCookie.arguments.length;

	var expires =(argc > 2) ? argv[2] : null;
	var path    =(argc > 3) ? argv[3] : null;
	var domain  =(argc > 4) ? argv[4] : null;
	var secure  =(argc > 5) ? argv[5] : false;

	document.cookie = nom+"="+escape(valeur)+
	((expires == null ) ? "" : ("; expires="+expires.toGMTString()))+
	((path    == null ) ? "" : ("; path="+path))+
	((domain  == null ) ? "" : ("; domain="+domain))+
	((secure  == true ) ? "; secure" : "");
	
}
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function getCookie(nom) {
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;	
	}
	return null;
}

// Ajout d'un évenement à un objet
function addEvent(objet,evenement,fonction){
    if (objet.addEventListener){ objet.addEventListener(evenement,fonction,true); return true; }
    else if (objet.attachEvent){ return objet.attachEvent("on"+evenement,fonction); }
    else { return false; }
}
addEvent(window,'load',setStyleSheetFromCookie);

function clickListe(liste, taille, idDiv, elargir) {
	if (window.event && elargir) {
		if (listeouverte) {
			retablirListe(liste, taille, idDiv, elargir);
		}
		else
		{
			elargirListe(liste, idDiv, elargir);
		}
	}
}
function elargirListe(liste, idDiv, elargir) {
	if (window.event && elargir) {
		listeouverte = true;
		liste.style.width = 'auto';
		liste.size = (liste.length>10)? 10 : liste.length ;
		liste.style.position = 'absolute' ;
		document.getElementById(idDiv).style.textAlign = 'left' ;
	}
}

function retablirListe(liste, taille, idDiv, elargir) {
	if (window.event && elargir) {
		listeouverte = false;
		liste.style.width = taille;
		liste.style.position = 'static' ;
		liste.size='1';
		document.getElementById(idDiv).style.textAlign = 'center' ;
	}
}

//----------------------------------------------------------------------------
// GENERALI : Repris de la page searchresult-inc.jsp
//----------------------------------------------------------------------------
function submitSearchPagerForm() {
	var index = document.advSearchForm.maxPageItems.selectedIndex;
	if ( index != -1 ){
		document.searchpager.maxPageItems.value =
			document.advSearchForm.maxPageItems.options[index].value;
	}
	document.searchpager.submit();
}
// override previous declaration
function checkMaxPageItems(theForm){
	if ( document.advSearchForm && document.advSearchForm.maxPageItems
		&& document.advSearchForm.maxPageItems.selectedIndex != -1 ){
		theForm.maxPageItems.value = document.advSearchForm.maxPageItems.options[document.advSearchForm.maxPageItems.selectedIndex].value;
	}
}

/* auteur: Jean-Benoît Murat */
/* Date de création: 07/10/2004 */

/*     Fonctions de contrôle de champs de formulaires coté client   */

//Diverses expressions régulières utiles

// Expressions régulières de test de longueur
var regExpEmpty=/^$/g;					// Accepte une chaine vide
var regExp8Chars=/^[0-9a-zA-Z]{8,}$/g;			// Accepte une chaine d'au moins 8 carctères alphanumeriques (pour un mot de passe par exemple).

// Expressions régulières de test de type de caractère
var regExpAlphanumeric=/[0-9a-zA-ZàäâéèëêïîôûüçÇÉÈÀÙÔÂîÎ°.-]+/g;			// Accepte une chaine alphanumérique
var regExpAlphanumericWithWhitespace=/[0-9a-zA-Zéèàê]+/g;
var regExpAlphabetic=/[a-zA-Z]+/g;			// Accepte une chaine alphabétique
var regExpNumeric=/[0-9]+/g;				// Accepte une chaine numérique

// Expressions régulières de test de type
var regExpInt=/^[0-9]+$/g;				// Accepte une chaine de type 'int'
var regExpDouble=/^[-+]?[0-9]+(\.[0-9]+)?$/g;		// Accepte une chaine de type 'double'
var regExpFloat=/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/g;	// Accepte une chaine de type 'float'
var regExpTime=/^([01][0-9]|2[0123])\:([012345][0-9])(\:([012345][0-9])(.([0-9]{3})+)?)?$/g;		 // Accepte une chaine de type 'time'. Ex : 12:51 ou 21:45:35.654
var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.
var regExpEnglishDate=/^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/g; // idem ci-dessus mais format anglais (Ex : aaaa/mm/jj)
var regExpBoolean=/^true|false$/g;			// Accepte une chaine de type 'boolean'

// Expressions régulières de test de types administratifs français
var regExpCodePostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/g;							// Accepte une chaine de type 'code postal'. Ex : F-33370 ou 33 370 ou 33370 ou F-1 370
var regExpTelephoneFixe=/^(01|02|03|04|05)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230
var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.
var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpTelephoneInternational=/^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;	// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30

var regExpNumeroSecuriteSociale=/^[12][ \.\-]?[0-9]{2}[ \.\-]?(0[1-9]|[1][0-2])[ \.\-]?([0-9]{2}|2A|2B)[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{2}$/g; // Accepte un numero de sécurité sociale français. Ex : 1 85 34 33 354 450 45

var regExpTVAIntracommunautaire=/^[A-Z]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;		// Accepte un numero de TVA Intra-communautaire. Ex : FR 02 254 254 254
var regExpNumeroSiren=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;							// Accepte un numero SIREN. Ex : 254 254 254
var regExpNumeroSiret=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}$/g;					// Accepte un numero SIRET. Ex : 254 254 254 12345
var regExpCodeApe=/^[0-9]{2}[ \.\-]?[0-9]{1} ?[a-zA-Z]$/g;								// Accepte un code APE. Ex : 25.4Z

// Expressions régulières de test de types liés à internet

var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;										// Accepte une adresse email. Ex : toto@toto.com
var regExpIpAdress=/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g;	// Accepte une adresse ip. Ex : 192.168.0.1
var regExpDomainName=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/g;													// Accepte un nom de domaine. Ex : toto.com
var regExpUrl=/^(((ht|f)tp(s?))\:\/\/)?(([a-zA-Z0-9]+([@\-\.]?[a-zA-Z0-9]+)*)(\:[a-zA-Z0-9\-\.]+)?@)?(www.|ftp.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})(\:[0-9]+)?\/?/g;			// Accepte une url ftp, http ou https, avec ou sans login/mot de passe, avec ou sans numero de port. Ex : http://www.toto.com, ftp://toto:toto@ftp.toto.com:21/

var regExpHexColor=/^#[0-9A-Fa-f]{6}$/g; // Accepte une couleur hexadécimale

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression)
{
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function doesntMatchRegularExpression(valeur, regularExpression)
{
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

/*
les fonctions de contrôle suivantes prennent toutes comme argument la valeur de l'attribut "value" d'un champ de formulaire de type "text" ou "password"
*/
function isEmpty(valeur)
{
	return matchRegularExpression(valeur, regExpEmpty);
}

function isNotEmpty(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmpty);
}

function isNot8CharsLength(valeur)
{
	return doesntMatchRegularExpression(valeur, regExp8Chars);
}

function isNotAlphanumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumeric);
}

function isNotAlphanumericWithWhitespace(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumericWithWhitespace);
}

function isNotAlphabetic(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphabetic);
}

function isNotNumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeric);
}

function isNotInt(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotDouble(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDouble);
}

function isNotFloat(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotBoolean(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpBoolean);
}

function isNotTime(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTime);
}

function isNotDate(valeur, mode)
{
	switch (mode)
	{
		case "fr" : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
		case "en" :
			return doesntMatchRegularExpression(valeur, regExpEnglishDate);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
	}
}

function isNotCodePostal(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodePostal);
}

function isNotTelephone(valeur, mode)
{
	switch (mode)
	{
		case "fixe" : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneFixe);
			break;
		case "port" :
			return doesntMatchRegularExpression(valeur, regExpTelephonePortable);
			break;
		case "nati" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
		case "inte" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneInternational);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
	}
}

function isNotNumeroSecuriteSociale(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSecuriteSociale);
}

function isNotTVAIntracommunautaire(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTVAIntracommunautaire);
}

function isNotNumeroSiren(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiren);
}

function isNotNumeroSiret(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiret);
}

function isNotCodeApe(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodeApe);
}

function isNotEmailAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmailAdress);
}

function isNotIpAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpIpAdress);
}

function isNotDomainName(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDomainName);
}

function isNotUrl(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpUrl);
}

function isNotHexColor(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpHexColor);
}


function checkFormulaire(idField, nomField, typeField, idFormulaire)
{
  var fieldValue = "";
  for (var i=0; i < idField.length; ++i) {
    fieldValue = document.getElementById(idField[i]).value;
    if (fieldValue != null && fieldValue.length > 0) {
		  if (typeField[i] == "numeric") {
				if (isNotDouble(fieldValue)) {
				  alert("Le contenu du champ " + nomField[i] + " doit etre un numerique");
				  return false;
		    }
	    }
	    if (typeField[i] == "alphanumeric") {
	    
				for (var iIdx = 0; iIdx < fieldValue.length; iIdx++)
				{
					sChar = fieldValue.charAt(iIdx);
					if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,._- 'àäâéèëêïîîôûüçÇÉÈÀÙÔÂÎ°".indexOf(sChar) == -1) {
					    alert("Le contenu du champ " + nomField[i] + " doit etre un alpha numerique");
						return false;
	    			}
	    		}
		    }
	    }
	    if (typeField[i] == "email") {
				if (isNotEmailAdress(fieldValue)) {
				  alert("Le contenu du champ " + nomField[i] + " n est pas un Email");
				  return false;
		    }
	    }
	  }
  return true;
}


function affZoneOnglet(iZone, iNbZone, sCouleurFond, sCouleurLisere)
{
	for (var i = 1; i < iNbZone + 1; i++)
	{
		document.getElementById(['trZone'+i]).style.display = 'none';	
		document.getElementById(['tdLien'+i]).style.borderTop = '0px solid ' + sCouleurLisere;
		document.getElementById(['tdLien'+i]).style.borderLeft = '0px solid ' + sCouleurLisere;
		document.getElementById(['tdLien'+i]).style.borderRight = '0px solid ' + sCouleurLisere;
		document.getElementById(['tdLien'+i]).style.borderBottom = '1px solid ' + sCouleurLisere;
		document.getElementById(['tdLien'+i]).style.fontWeight = 'normal';
		document.getElementById(['tdLien'+i]).style.color = '#000000';
		document.getElementById(['tdLien'+i]).style.backgroundColor = '#FFFFFF';
		document.getElementById(['tdLien'+i]).style.verticalAlign = 'middle';
		document.getElementById(['divLien'+i]).style.padding = '0px 5px 0px 5px !important';
		document.getElementById(['divLien'+i]).style.borderTop = '1px solid ' + sCouleurLisere;
		document.getElementById(['divLien'+i]).style.borderLeft = '1px solid ' + sCouleurLisere;
		document.getElementById(['divLien'+i]).style.borderRight = '1px solid ' + sCouleurLisere;
		document.getElementById(['divLien'+i]).style.borderBottom = '1px solid ' + sCouleurLisere;
		document.getElementById(['divLien'+i]).style.backgroundColor = '#FFFFFF';
		document.getElementById(['divLien'+i]).style.height = '66px';
		//document.getElementById(['divLien'+i]).style.margin = '2px 2px 2px 2px';
	}
	document.getElementById(['trZone'+iZone]).style.display = '';		
	document.getElementById(['tdLien'+iZone]).style.borderTop = '1px solid ' + sCouleurLisere;
	document.getElementById(['tdLien'+iZone]).style.borderLeft = '1px solid ' + sCouleurLisere;
	document.getElementById(['tdLien'+iZone]).style.borderRight = '1px solid ' + sCouleurLisere;
	document.getElementById(['tdLien'+iZone]).style.borderBottom = '0px solid ' + sCouleurLisere;
	document.getElementById(['tdLien'+iZone]).style.fontWeight = 'bold';
	document.getElementById(['tdLien'+iZone]).style.color = sCouleurLisere;
	document.getElementById(['tdLien'+iZone]).style.backgroundColor = sCouleurFond;
	document.getElementById(['tdLien'+iZone]).style.verticalAlign = 'middle';
	document.getElementById(['divLien'+iZone]).style.padding = '0px 0px 0px 0px';
	document.getElementById(['divLien'+iZone]).style.borderTop = '0px solid ' + sCouleurLisere;
	document.getElementById(['divLien'+iZone]).style.borderLeft = '0px solid ' + sCouleurLisere;
	document.getElementById(['divLien'+iZone]).style.borderRight = '0px solid ' + sCouleurLisere;
	document.getElementById(['divLien'+iZone]).style.borderBottom = '0px solid ' + sCouleurLisere;
	document.getElementById(['divLien'+iZone]).style.backgroundColor = sCouleurFond;
	document.getElementById(['divLien'+iZone]).style.height = '66px';
	//document.getElementById(['divLien'+iZone]).style.margin = '2px 2px 2px 2px';
}

function affZoneVertical(iZone, iNbZone)
{
	for (var i = 1; i < iNbZone + 1; i++)
	{
		document.getElementById(['divZone'+i]).style.display = 'none';	
		document.getElementById(['aLien'+i]).style.fontWeight = 'normal';	
	}
	document.getElementById(['divZone'+iZone]).style.display = '';		
	document.getElementById(['aLien'+iZone]).style.fontWeight = 'bold';		
}

