/**
    But : Bibliotheque de fonctions pour gerer les cookies du portail Tactic
    Version : 20 fevrier 2009
    */

   
    
/**
    But : Creer les cookies pour conserver
            le user et le mot de passe du client
    Version : 20 fevrier 2009
    Param : a_user, chaine de l'identifiant du client
    Param : a_pass, chaine du mot de passe
    Param : a_domain, chaine du domaine du distributeur
    Param : a_isSavePass, booleen temoin de sauvegarde du mot de passe
    */
function createTacticPortalUserCookies( a_user, a_pass, a_domain, a_isSavePass )
{

    //alert("createTacticPortalUserCookies\na_user : "+ a_user +"\na_pass : "+a_pass + "\na_domain : "+a_domain+"\na_isSavePass : "+a_isSavePass);

    var date = new Date();
    date.setFullYear( date.getFullYear() + 1 ); // Durée de vie du cookie 1 an

    newCookie( "tacticportalusername", a_user, date, "/", a_domain, false );
    
    if( a_isSavePass ){
    
        newCookie( "tacticportalpassword", a_pass, date, "/", a_domain, false );
        newCookie ("tacticportalissavepassword", "true", date, "/", a_domain, false );
    }
    else
    {
        //Delete the password cookie
        newCookie ("tacticportalpassword", "", date, "/", a_domain, false );
        newCookie ("tacticportalissavepassword", "false", date, "/", a_domain, false );
    }
    
}




/**
    But : Obtenir une valeur pour l'utilisateur
    Version : 2 fevrier 2009
    Param : a_idValue, chaine identifiant le champ recherche
                Valeurs posibles : "tacticportalusername" ou "tacticportalpassword"
    Return : theValue, chaine de la valeur recherchee, sinon 'null'
    */
function getUserCookiesByValue( a_idValue )
{
    var theValue = "";
    
    if( null == a_idValue )
        alert( "The cookie value your are searching is invalid." );
    else
        theValue = getCookie( a_idValue );
      
    if( null == theValue )
        //alert( "The cookie value your are searching wasn't found." );
    
    if( _debug )
        alert( "getUserCookiesByValue( " + theValue + " )" );
  
    return theValue;
    
}


////// Fonctions generiques //////////////////////////////////////////////////////////

// Source : http://www.actulab.com/ecrire-les-cookies.php
// Version : 3 fevrier 2009

var _debug = false;

/**
    But : Creer un cookie
    Version 11 avril 2008
    Param : a_id, chaine identifiant le cookie cree
    Param : a_value, chaine du contenu du cookie
    */
function newCookie( a_id, a_value )
{


    var argv = newCookie.arguments;
    var argc = newCookie.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;
    
    if( _debug )
    {
        alert( "newCookie( " + a_id + ", " + a_value + " )");
        alert( "expires = " + expires + "\npath = " + path + "\ndomain = " + domain + "\nsecure = " + secure );
    }
    
    
    document.cookie = a_id + "=" + escape( a_value ) +
    ( ( expires == null ) ? "" : ( "; expires=" + expires.toGMTString() ) ) +
    ( ( path == null ) ? "" : ( "; path=" + path ) ) +
    ( ( domain == null ) ? "" : ( "; domain=" + domain ) ) +
    ( ( secure == true ) ? "; secure" : "" );

}


/**
    But : Obtenir la chaine de la valeur du cookie, utilise par getCookie()
    Version : 11 avril 2008
    Param : offset, entier le debut de la chaine de la valeur
    Return : chaine de la valeur du cookie
    */
function getCookieVal( offset )
{
    var endstr = document.cookie.indexOf ( ";", offset );
    
    if ( endstr == -1 ) 
        endstr = document.cookie.length;
        
    return unescape( document.cookie.substring( offset, endstr ) ); 

}


/**
    But : Obtenir le cookie
    Version : 11 avril 2008
    Param : a_id, chaine identifiant le cookie
    Return : chaine de la valeur du cookie identifie, si non trouvé null
    */
function getCookie( a_id )
{
    var arg = a_id + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var theCookie = "";

    while ( i < clen )
    {
    	var j = i + alen;
        
    	if ( document.cookie.substring( i, j ) == arg )
        {
            theCookie = getCookieVal( j );
            
            if( _debug )
                alert( "getCookie( " + a_id + ", " + theCookie + " )" );
                
            return theCookie.toString();
        }
            
    	i = document.cookie.indexOf( " ", i ) + 1;
        
    	if ( i == 0 ) 
            break;
    }

    if( _debug )
        alert( "getCookie( " + a_id + ", null )");
    
    return null; 

}


/**
    But : Effacer le cookie demande
    Version : 11 avril 2008
    Param : a_id, chaine identifiant le cookie
    */
function EffaceCookie( a_id )
{
    date = new Date();
    date.setFullYear( date.getFullYear() - 1 );
    newCookie( a_id, null, date ); 

}


/**
    But : Afficher la valeur de cookies ( pour tester )
    Version : 11 avril 2008
    Param : a_id, chaine identifiant le cookie
    */
function showCookie( a_id )
{
	var valeur;
    
	valeur = getCookie( a_id );

	alert( a_id + " : " + valeur );
    
}

