//**************************************************************************************
//  Methode:     SupporteCookie
//
//  Description: Permet de savoir si les cookie sont supportes
//		
//	Param:  
//			
//	Retour:		true lorsque supporte, false dans le cas contraire.
//
//	Note:	
//
//**************************************************************************************

function SupporteCookie()
{

	// Est-ce que le cookie est enregistre ?
	if (Get_Cookie('DGAG_SupporteCookie') == 'oui')
	{
		return true; // supporte les cookie
		
	}
	else
	{
	
		// on cree un cookie de session
		Set_Cookie('DGAG_SupporteCookie','oui',0,'/'); // cookie de session
		
		// Est-ce qu'on est capable de récupérer sa valeur ?
		if (Get_Cookie('DGAG_SupporteCookie') == 'oui')
		{

		 return true; // on supporte les cookie
		}
	}
	
	return false; // ne supporte pas les cookies.
}




//**************************************************************************************
//  Methode:     Set_Cookie
//
//  Description: Permet de creer un cookie
//		
//	Param:  name: nom du cookie
//			value: valeur du cookie
//			expires: nombre de jour avant l'expiration. Si 0, le cookie est un cookie de session (il meurt à la fin de la session)
//			path: le path a partir duquel le cookie est valide
//			domain: domain dans lequel le cookie est valide
//			secure: specifie si le browser doit utilise SSL pour transmettre le cookie
//					(rarement utilise)
//
//
//
//	Note:	
//
//**************************************************************************************
function Set_Cookie( name, value, expires, path, domain, secure ) 

{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/

	if ( expires )
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}


//**************************************************************************************
//  Methode:     Get_Cookie
//
//  Description: Permet d'obtenir la valeur d'un cookie
//		
//	Param:  name: nom du cookie
//			
//	Retour:	Si le cookie, sa valeur est retournee, sinon la valeur NULL est retournee.
//
//
//	Note:	
//
//**************************************************************************************
function Get_Cookie( name ) {

	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
		
	if ( ( !start ) &&
	( name != document.cookie.substring( 0, name.length ) ) )
	{
		return null;
	}
	if ( start == -1 ) return null;
	
	var end = document.cookie.indexOf( ";", len );
	
	if ( end == -1 ) end = document.cookie.length;
	
	return unescape( document.cookie.substring( len, end ) );
}


//**************************************************************************************
//  Methode:     ObtenirValeurQuerystring
//
//  Description: Obtient la valeur du parametre demande dans la querystring courante.
//				 Si absent, NULL est retournee.
//		
//	Param:  nomParametre: nom du parametre
//			
//	Retour:	la valeur du parametre demande, sinon NULL
//
//
//	Note:	Attention: Sensible a la case (case sensitive)
//
//
//**************************************************************************************
function ObtenirValeurQuerystring(nomParametre) 
{ 
	// Parse the current page's querystring
	var qs = new Querystring();
	return qs.get(nomParametre)
}



//**************************************************************************************
//  Methode:     Querystring
//
//  Description: Creates a new Querystring object, optionally passing a string qs to parse. 
//				 If qs is omitted, the querystring from the current page is used. If qs is passed, it should not begin with a "?".
//		
//	Param:  qs: une QueryString (optionel)
//			
//	Retour:	
//
//
//	Note:	REF: http://adamv.com/dev/javascript/files/querystring.js
// 			Client-side access to querystring name=value pairs
//			Version 1.2.3
//			22 Jun 2005
//			Adam Vandenberg
//
//
//**************************************************************************************
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length);

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=');
		var name = unescape(pair[0]);

		if (pair.length == 2)
			value = unescape(pair[1]);
		else
			value = name;
		
		this.params[name] = value;
	}
}

//**************************************************************************************
//  Methode:     Querystring_get
//
//  Description: Returns the value of querystring parameter name if it exists, 
//				 or default_value if it doesn't. If default_value is omitted and parameter name 
//				 doesn't exist, returns null
//		
//	Param:  key_: le nom du parametre dont on veut obtenir la valeur
//			default_: la valeur par defaut a retourne dans le cas ou le parametre est absent
//			
//	Retour:	La valeur du paramtre demande s'il existe, sinon la valeur par defaut, sinon NULL.
//
//
//	Note:	REF: http://adamv.com/dev/javascript/files/querystring.js
// 			Client-side access to querystring name=value pairs
//			Version 1.2.3
//			22 Jun 2005
//			Adam Vandenberg
//
//
//**************************************************************************************
function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key];
	if (value==null) value=default_;
	
	return value
}

