var laPage;
var url;
var name;
var toolbar = 'no';
var abvLocation = 'no';
var directories = 'no';
var status = 'no';
var menubar = 'no';
var scrollbars = 'no';
var resizable = 'no';
var copyhistory = 'no';
var dependent = 'no';
var laLargeur;
var laHauteur;
var w, h, x, y;

//Cette methode va ajouter la valeur du login ainsi que l'url de la page courante (backUrl pour permettre un retour depuis la partie privee) a l'url du lien
function checkLogin( element ) {

	var identifiant = document.getElementById("identifiant");
    var identifiantValue;
    
	//alert( " location : " + this.location );
	//alert( " href : " + element.href );

	if ( ( identifiant != null ) && ( identifiant.value != null ) ) {
		identifiantValue = identifiant.value;

		//alert( " identifiant : " + identifiantValue );

		var beginUrl = element.href;
		var params = beginUrl.split('&');

		//alert( " params : " + params );

		if ( params.length >= 2 ) {
			beginUrl = params[0];
		}

		//alert( " beginUrl : " + beginUrl );	

		if ( identifiantValue.toUpperCase() == 'LOGIN' ) {
			identifiantValue = '';
		}
		
		element.href = beginUrl + "&numcontrat=" + identifiantValue + "&backUrl=" + this.location;

		//alert( " element.href final : " + element.href );

		identifiant.value = 'Login';
	}
}

//Cette methode permet d'ouvrir une nouvelle fenetre
function openWindowForJahia( url , canOpen , name , urlForReload ) {

	if ( canOpen == true ) {
		normal();
		resizable = 'yes';

		if ( !name ) {
			name = 'newWindow';
		}
		
		laPage = nouvelleWindow( name , url , false , true , false , false );
		
		/*if ( urlForReload != null ) {
			
			this.location = urlForReload;
		}*/
	}

	return canOpen;
}

//methode generique d'ouverture de fenetre
function nouvelleWindow( name , url , statusBar , scrollBar , toolbar , menuBar ) {

	var nouvelleWindow;

	if (!scrollBar) {
		scrollBar = 'no';
	}
	else {
		scrollBar = 'yes';
	}
	
	if (!toolbar) {
		toolbar = 'no';
	}
	else {
		toolbar = 'yes';
	}
	
	if (!statusBar) {
		statusBar = 'no';
	}
	else {
		statusBar = 'yes';
	}
	
	if (!menuBar) {
		menuBar = 'no';
	}
	else {
		menuBar = 'yes';
	}

	// Pour Internet Explorer
	if ( document.all ) {
		nouvelleWindow = window.open(url, name, 'toolbar=' + toolbar
				+ ', location=no, directories=no, status=' + statusBar
				+ ', menubar=' + menuBar + ', scrollbars=' + scrollBar
				+ ', resizable=' + resizable + ', copyhistory=no, left=' + x
				+ ', top=' + y + ', width=' + w + ', height=' + h
				+ ', dependent=yes, channelmode=0');
	} 
	else {
		nouvelleWindow = window.open(url, name, 'toolbar=' + toolbar
				+ ',location=no,directories=no,status=' + statusBar
				+ ',menubar=' + menuBar + ',scrollbars=' + scrollBar
				+ ',resizable=' + resizable + ',copyhistory=no,screenX=' + x
				+ ',screenY=' + y + ',outerWidth=' + w + ',outerHeight=' + h
				+ ',z-lock=yes,dependent=no');
	}

	if ( nouvelleWindow == true ) {
		try {
			nouvelleWindow.focus();
		} 
		catch (e) {
		}
	}

	return nouvelleWindow;
}

//Ouvre une nouvelle fenetre de petite taille 40% de l'espace disponible
function small() {
	
	initWindow('0.40');
}

//Ouvre une nouvelle fenetre de taille moyenne 75% de l'espace disponible
function normal() {
	
	//initWindow('0.75');
	initWithWH( 1025 , 781 );
}

//Ouvre une nouvelle fenetre de grande taille 100% de l'espace disponible
function fullScreen() {
	
	initWindow('1');
}

//methode generique qui permet de determiner une hauteur/largeur en fonction d'un ratio ainsi que de calculer la position x y de la fenetre
function initWindow(aString) {
	
	var laLargeurDispo;
	var laHauteurDispo;

	// Pour Internet Explorer
	if ( document.all ) {
		laLargeurDispo = screen.availWidth - 10;
		laHauteurDispo = screen.availHeight - 70;
	} 
	else {
		laLargeurDispo = screen.availWidth;
		laHauteurDispo = screen.availHeight;
	}

	//alert("initWindow : Resolution utile : x : " + screen.availWidth + " : y : " + screen.availHeight);

	laLargeur = laLargeurDispo * eval(parseFloat('1'));
	laHauteur = laHauteurDispo * eval(parseFloat('1'));

	//alert("initWindow : laLargeur : "+ laLargeur + " : laHauteur : " + laHauteur + " .");

	w = Math.round(laLargeur * eval(parseFloat(aString)));
	h = Math.round(laHauteur * eval(parseFloat(aString)));

	x = Math.round((laLargeur - w) / 2);
	y = Math.round((laHauteur - h) / 4);

	//alert("initWindow : x : " + x + " : y : " + y + " : w : " + w + " : h : " + h + " .");
}

//methode generique qui permet de calculer la position x y de la fenetre en fonction de la largeur/hauteur desiree
function initWithWH(aLargeur, anHauteur) {

	var laLargeurDispo;
	var laHauteurDispo;

	// Pour Internet Explorer
	if ( document.all ) {
		laLargeurDispo = screen.availWidth - 10;
		laHauteurDispo = screen.availHeight - 70;
	} 
	else {
		laLargeurDispo = screen.availWidth;
		laHauteurDispo = screen.availHeight;
	}

	laLargeur = laLargeurDispo * eval(parseFloat('1'));
	laHauteur = laHauteurDispo * eval(parseFloat('1'));

	//alert("initWithWH : laLargeur : "+ laLargeur + " : laHauteur : " + laHauteur + " .");

	w = aLargeur;
	h = anHauteur;

	x = Math.round((laLargeur - w) / 2);
	y = Math.round((laHauteur - h) / 4);

	//alert("initWithWH : x : " + x + " : y : " + y + " : w : " + w + " : h : " + h + " .");
}

//Cette methode permet de calculer l'url de l'iframe de la Page Apporteur
//Attention aux alertes sous FF : annule l'assignation du src de l'iframe
function chargePageApporteur() {

	try {
		var theUrl;
		var frameApporteurName = "iframeICD";
		var rri = getValueForKey( "rri" );
		var ville = getValueForKey( "ville" );
		var res = getValueForKey( "res" );

		//Traitement du changement de ville
		var divVille = document.getElementById( "divVille" );

		if ( ( ville != null ) && ( ville != "" ) ) {
			showPopup( divVille );
		}
		
		var frameApporteur = document.getElementById( frameApporteurName );
		var divFrameApporteur = document.getElementById( "DIV_" + frameApporteurName );

		theUrl = getProtocolServeur() + "/portail/front?controller=internetClient.MiniSite&rri="+rri;
		//alert( " chargePageApporteur : " + theUrl );
		frameApporteur.src = theUrl;
		//alert( " chargePageApporteur : " + frameApporteur.src );

		showPopup( divFrameApporteur );
	}
	catch(e) {
		alert( " e : " + e );
	}
}

//Cette methode permet de calculer l'url de l'iframe de la Recherche Apporteur
//Attention aux alertes sous FF : annule l'assignation du src de l'iframe
function chargeRechercheApporteur() {

	try {
		var theUrl;
		var frameApporteurName = "iframeICD";
		var frameApporteur = document.getElementById( frameApporteurName );
		var divFrameApporteur = document.getElementById( "DIV_" + frameApporteurName );
		
		theUrl = getProtocolServeur() + "/portail/front?controller=internetClient.RechercheApporteur";
		//alert( " chargeRechercheApporteur : " + theUrl );
		frameApporteur.src = theUrl;
		//alert( " chargeRechercheApporteur : " + frameApporteur.src );

		showPopup( divFrameApporteur );
	}
	catch(e) {
		//alert( " e : " + e );
	}
}

//Cette methode permet de calculer l'url de l'iframe de la Page Plan Agence
//Attention aux alertes sous FF : annule l'assignation du src de l'iframe
function chargePlanAgence() {
	
	try {
		var rri = getValueForKey( "rri" );
		var theUrl;
		var frameApporteurName = "iframeICD";
		var frameApporteur = document.getElementById( frameApporteurName );
		var divFrameApporteur = document.getElementById( "DIV_" + frameApporteurName );

		theUrl = getProtocolServeur() + "/portail/front?controller=internetClient.PlanAgence&rri=" + rri;
		//alert( " chargePlanAgence : " + theUrl );
		frameApporteur.src = theUrl;
		//alert( " chargePlanAgence : " + frameApporteur.src );

		showPopup( divFrameApporteur );
	}
	catch(e) {
		//alert( " chargePlanAgence : e : " + e );
	}
}

//Cette methode permet de calculer l'url de l'iframe de la Info collaborateur
//Attention aux alertes sous FF : annule l'assignation du src de l'iframe
function chargeInfoCollaborateur() {
	
	try {
		var rri = getValueForKey( "rri" );
		var theUrl;
		var frameApporteurName = "iframeICD";
		var frameApporteur = document.getElementById( frameApporteurName );
		var divFrameApporteur = document.getElementById( "DIV_" + frameApporteurName );

		theUrl = getProtocolServeur() + "/portail/front?controller=internetClient.InfoCollaborateur&rri=" + rri;
		//alert( " chargeInfoCollaborateur : " + theUrl );
		frameApporteur.src = theUrl;
		//alert( " chargeInfoCollaborateur : " + frameApporteur.src );

		showPopup( divFrameApporteur );
	}
	catch(e) {
		//alert( " chargeInfoCollaborateur : e : " + e );
	}
}

//methode generique permettant d'afficher un element
function showPopup( element ) {

	if ( element != null ) {
        element.style.visibility = "visible";
        element.style.display = "block";
    }
}

//methode generique permettant de masquer un element
function hidePopup( element ) {

	if ( element != null ) {
        element.style.visibility = "hidden";
        element.style.display = "none";
    }
}

//Cette methode renvoie la valeur de la variable protocolServeur calculee prealablement (ex : https://xxxxx)
function getProtocolServeur() {

	return protocolServeur;
}

//Cette methode permet de cherche la valeur d'une cle dans une querystring
function getValueForKey( aKey ) {

	var valueForKey = "";

	try {
		var cle = new Array();
		var valeur = new Array();
		var param;
		var paramArray;
		var paramKeyValueArray;
		
		// On enleve le ?
		param = window.location.search.slice( 1 , window.location.search.length );
		
		// On separe le parametres....
		// first[0] est de la forme cle=valeur
		paramArray = param.split("&");

		for( i=0 ; i<paramArray.length ; i++ )
		{
			paramKeyValueArray = paramArray[i].split("=");
			cle[i] = paramKeyValueArray[0];
			valeur[i] = paramKeyValueArray[1];

			if ( paramKeyValueArray[0] == aKey ) {
				valueForKey = paramKeyValueArray[1];
			}
		}
	}
	catch(e) {
		//alert( " e : " + e );
	}
	
	return valueForKey;
}

//Superstitel pour la page Login d'acces a la partie privee
function showPopWinLogin( url ) {

	showPopWin( url , 602 , 385 , null );
}

//Superstitel pour la page Recherche Apporteur
function showPopWinRechercheApporteur( url ) {

	showPopWin( url , 852 , 428 , null );
}

//Superstitel pour la page plan agence
function showPopWinPlanAgenceNew( url ) {

	//alert('showPopWinPlanAgence : '+ url );
	showPopWin( url , 450 , 440 , null );
}

//Superstitel pour la page info collaborateur
function showPopWinInfoCollaborateur( url ) {

	//alert('showPopWinInfoCollaborateur : '+ url );
	showPopWin( url , 640 , 460 , null );
}

//Selection de boite lors de la contribution via le portail agent
function selectBox( boxReference , startDate , endDate , descriptif )
{
	var typeBloc = getValueForKey('typeBloc');
	var valueUrlPortail = getValueForKey('urlEnv');
	
    if ( ( startDate == null ) || ( startDate == "-" ) ) {
    	startDate = "";
    }
    if ( ( endDate == null ) || ( endDate == "-" ) ) {
    	endDate = "";
    }
    if ( ( descriptif == null ) || ( descriptif == "-" ) ) {
    	descriptif = "";
    }

    //alert('boxReference : ' + boxReference + '\ntypeBloc : ' + typeBloc + '\nstartDate : '+ startDate + '\nendDate : ' + endDate + '\ndescriptif : ' + descriptif );

	try {
        var newUrl = "http://"+valueUrlPortail+"/portail/front?controller=internetClient.SiteApporteurMajDonneeJahia&"+typeBloc+"="+boxReference+"&startDate="+startDate+"&endDate="+endDate+"&titreBoite="+descriptif+"&cinematique=internetClient.SiteAgentCinematique";

        //alert('newUrl : ' + newUrl );

        window.opener.location.replace( newUrl );
    	window.opener.focus();
    	window.close();
    }
    catch (e) {
    	//alert( " e : " + e );
    }
}

//Gestion nedstat
/* Sitestat4 code */ 
function sitestat(ns_l){

    //Expresion reguliï¿¨re remplacant les espaces par des _
    ns_l = ns_l.replace(/ /g, "_"); 

    ns_l += "&ns__t=" + (new Date()).getTime();
    ns_pixelUrl = ns_l;
    ns_0 = document.referrer;
    ns_0 = (ns_0.lastIndexOf("/")==ns_0.length-1)?ns_0.substring(ns_0.lastIndexOf("/"),0):ns_0;
    if( ns_0.length > 0 ) {
        ns_l += "&ns_referrer=" + escape( ns_0 );
    }
    if( document.images ){
        ns_1 = new Image();
        ns_1.src = ns_l;
    }
    else {
        document.write("<img src="+ns_l+" width=1 height=1>");
    }
    //alert( " ns_1 : " + ns_l );
}

//Cette methode renvoie la valeur du cookie "name"
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(";");
    for(var i=0;i < ca.length;i++)
    {
        var c = ca[i];
        while (c.charAt(0)==" ") { 
        	c = c.substring(1,c.length);
        }
        if (c.indexOf(nameEQ) == 0) {
        	return c.substring(nameEQ.length,c.length);
        }
    }
    //alert("A cookie was not set. "+name+". Please ensure that your browser accepts cookies.");
    
    return "";
}

//Cette methode cree un cookie "name"
//ex : set_cookie( "aName" , "aValue" ); 
//ex : set_cookie( "aName" , "aValue", 2003, 01, 15 ); 
//ex : set_cookie( "aName" , "aValue", null, null, null, null, "aDomain" ); 
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure ) {
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y ) {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if ( path )
    cookie_string += "; path=" + escape ( path );

  if ( domain )
    cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
    cookie_string += "; secure";
  
  //alert("cookie_string : "+cookie_string);

  document.cookie = cookie_string;
}

//Cette methode supprime le cookie "name"
function deleteCookie (name,path,domain) {
  if ( readCookie( name ) != "" ) {
	  set_cookie ( name, "", 2001, 01, 01, path, domain, null );
  }
}

function initializeBoxSiteApporteur( boxID , type , valeur )
{
	//alert( "boxID : " + boxID + " : type : " + type + " : valeur : " + valeur );
	
	//	type boite IC : Internet client, JA : Jahia, DE : Jahia defaut
	var t_ValTypeBoite = type;
	
	//	contenu des boites IC = flux Html, Jahia : idBoite
	var t_ValRefBoite = valeur;
	
	//	controle de présence des id réceptacle
	var t_bloc = $( "#"+boxID ) ? $( "#"+boxID ) : undefined;
	var t_blocContent = $( "#"+boxID + 'Content') ? $( "#"+boxID + 'Content') : undefined;
	
	//	si type boite = 'JA' boite jahia
	var booTypeJahia = 'JA'==t_ValTypeBoite ? true : false;
	if ( t_bloc && booTypeJahia )
	{
		//	récupération du contenu connaissant la valeur de l'id
		var t_blocJahia = $( "#"+t_ValRefBoite ) ? $( "#"+t_ValRefBoite ).html() : undefined;
		//	injection directe si id present dans la page sinon boite par defaut
		if ( undefined != t_blocJahia )
		{
			t_bloc.html(t_blocJahia);
		}	
	}
	
	//	si type boite = 'IC' boite gérée par IC : on injecte que le contenu de la boite, 
	//	le contour étant géré par jahia
	var booTypeIC = 'IC'==t_ValTypeBoite ? true : false;
	if ( t_blocContent && booTypeIC )
	{
		t_blocContent.html(t_ValRefBoite);
	}
	
	//	si type boite = 'DE' boite jahia par : on ne fait rien

	//	on affiche la boite
	if ( t_bloc )
	{
		t_bloc.show();
	}
}

function captationQueryString( aQueryString , aCookieName ) {

    var aQueryValue = getValueForKey( aQueryString );
    
  	if ( aQueryValue != "" ) {
  		aQueryValue = unescape( aQueryValue );
        //alert( " aQueryString : " + aQueryString + " aQueryValue : >" + aQueryValue + "<" );
        set_cookie( aCookieName , aQueryValue , null , null , null , "/" );
    }
    
    return aQueryValue;
}

function cookieQueryValue( aQueryString , aCookieName ) {

    var aValue = "";
    var aCookieValue = readCookie( aCookieName );	

    if ( aCookieValue != "" ) {
        //alert( " aQueryString : " + aQueryString + " aCookieValue : >" + aCookieValue + "<" );
        aValue = unescape( aCookieValue );
    }
    else {
        aValue = captationQueryString( aQueryString , aCookieName );
    }
    
    return aValue;
}

function captationQueryStrings() {

    var aValue;

    aValue = cookieQueryValue( "agence" , "agence" );
    //Attention en page apporteur on xx151123456, il ne faut pas stocker la valeur maintenant
    //aValue = cookieQueryValue( "rri" , "rri" );
    aValue = cookieQueryValue( "cmpid" , "cidAccesMiniSite" );
    aValue = cookieQueryValue( "origine" , "origineAccesMiniSite" );
}

function prepareFormulaire() {

    var aValue = "";

    aValue = cookieQueryValue( "cmpid" , "cidAccesMiniSite" );
    $("#cidAccesMiniSite").val( aValue );

    aValue = cookieQueryValue( "origine" , "origineAccesMiniSite" );
    $("#origineAccesMiniSite").val( aValue );

    aValue = cookieQueryValue( "agence" , "agence" );
    $("#agence").val( aValue );

    aValue = cookieQueryValue( "rri" , "rri" );
    $("#rri").val( aValue );
}

/*function prepareFormulaire() {

    var cmpidValue = "";
    var cmpidCookieValue = readCookie( "cidAccesMiniSite" );	
    var cmpidQueryValue = getValueForKey( "cmpid" );
    if ( cmpidCookieValue != "" ) {
      cmpidValue = cmpidCookieValue;
    }
    else if ( cmpidQueryValue != "" ) {
      cmpidValue = cmpidQueryValue;
      set_cookie( "cidAccesMiniSite" , cmpidValue , null , null , null , "/" );
    }
    $("#cidAccesMiniSite").val( cmpidValue );

    
    var origineValue = "";
    var origineCookieValue = readCookie( "origineAccesMiniSite" );	
    var origineQueryValue = getValueForKey( "origine" );
    if ( origineCookieValue != "" ) {
      origineValue = origineCookieValue;
    }
    else if ( origineQueryValue != "" ) {
      origineValue = origineQueryValue;
      set_cookie( "origineAccesMiniSite" , origineValue , null , null , null , "/" );
    }
    $("#origineAccesMiniSite").val( origineValue );

    
    var agenceValue = "";
    var agenceCookieValue = readCookie( "agence" );	
    var agenceQueryValue = getValueForKey( "agence" );
    if ( agenceCookieValue != "" ) {
      agenceValue = unescape(agenceCookieValue);
    }
    else if ( agenceQueryValue != "" ) {
      agenceValue = unescape(agenceQueryValue);
      set_cookie( "agence" , agenceValue , null , null , null , "/" );
    }
    $("#agence").val( agenceValue );

    
    var rriValue = "";
    var rriCookieValue = readCookie( "rri" );	
    var rriQueryValue = getValueForKey( "rri" );
    if ( rriCookieValue != "" ) {
      rriValue = rriCookieValue;
    }
    else if ( rriQueryValue != "" ) {
      rriValue = rriQueryValue;
      set_cookie( "rri" , rriValue , null , null , null , "/" );
    }
    $("#rri").val( rriValue );
}*/


/**
 * Méthode de parsing retournant la décomposition "URI" d'une chaine
 * @param {String}  : chaine exprimant une URI absolue ou relative
 * @return {Object} : URI composite 
 * @public 
 */
 /*
window.com.aviva.util.parseUri = function parseUri(i_Str)
{
     // Bloc déclaration variable(s) locale(s)
     var o_URI               = {};
     var t_IdxUriField   = 14;
     var     t_OptParser       =
     {
          strictMode     : false,
          key               : ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
          q               :
          {
               name     : "queryKey",
               parser     : /(?:^|&)([^&=]*)=?([^&]*)/g
          },
          parser          :
          {
               strict     : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
               loose     : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
          }
     };
     var t_ExtractParse     = t_OptParser.parser[t_OptParser.strictMode ? "strict" : "loose"].exec(i_Str);

     while (t_IdxUriField--)
     {
          o_URI[t_OptParser.key[t_IdxUriField]] = t_ExtractParse[t_IdxUriField] || "";
     }

     o_URI[t_OptParser.q.name] = {};
     o_URI[t_OptParser.key[12]].replace
          (
               t_OptParser.q.parser,
               function ($0, $1, $2)
               {
                    if ($1)
                    {
                         o_URI[t_OptParser.q.name][$1] = $2;
                    }
               }
          );
     // Retourne le résultat
     return o_URI;
};
*/

