/**
 * Mise en place d'un cookie
 * @param name  	Nom du cookie
 * @param value 	Valeur du cookie
 * @param param3	"Expires" - ex: new Date(year, month, day)
 * @param param4	"Path" : ex :"/" répertoire du site concerné par le cookie
 * @param param5	"Domain" : Nom de domaine concerné par le cookie - Note: la plupart des navigateurs ne permettent que le domaine courant
 * @param param6	"Secure" : Si true, le cookie n'est accessible que par une connexion sécurisée (https)
 */
function QW_COOKIE_set(name, value)
{
	var argv = QW_COOKIE_set.arguments;
	var argc = QW_COOKIE_set.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 ( expires == null ) {
		var now = new Date;
		expires = new Date( now.getFullYear()+10, now.getMonth(), now.getDay() );
	}
	document.cookie =	name + "=" + escape(value) +
						"; expires=" + expires.toGMTString() +
						( (path==null) ? "" : ("; path=" + path) ) +
						( (domain==null) ? "" : ("; domain=" + domain) ) +
						( (secure==true) ? "; secure" : "" );
}

/**
 * Renvoie la valeur du cookie nommé name s'il existe, null sinon
 */
function QW_COOKIE_get( name )
{
	var arg = name + "=";
	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 ) {
			var endstr = document.cookie.indexOf (";", j);
			if ( endstr == -1 )
				endstr = document.cookie.length;
			return unescape(document.cookie.substring(j, endstr)); 
		}
		i = document.cookie.indexOf(" ",i) + 1;
		if ( i == 0 ) 
			break;
	}
	return null; 
}

/**
 * Supprime le cookie nommé name
 */
function QW_COOKIE_remove( name )
{
	var date = new Date;
	date.setFullYear( date.getFullYear() - 1 );
	QW_COOKIE_set( name, null, date ); 
}

/**
 * Renvoie la liste des noms des cookies présents
 */
function QW_COOKIE_list() {
	var rx = new RegExp('[ ;=]+', 'g');
	var list = document.cookie.split(rx);
	var res = new Array();
	for ( var i = 0; i < list.length; i+=2 )
		res.push( list[i] );
	return res;
}

/**
 * Renvoie TRUE si les cookies sont autorisés par le navigateur, FALSE sinon
 */
function QW_COOKIE_activated() {
	if ( !navigator.cookieEnabled )
		return false;
		
	QW_COOKIE_set('QW_COOKIE_TEST',1);
	var check = (QW_COOKIE_get('QW_COOKIE_TEST') == 1);
	QW_COOKIE_remove('QW_COOKIE_TEST');
	return check;
}