//----------------------------------------
//
//	(c)	2008/2009 - THP
//
//	Creation gestion de cookie / caddie
//
//	2009.02.05	thp	modifs diverses
//	2009.02.03	thp	mise en place

//
//----------------------------------------
//	
//	caddieVersion()	:	string
//	caddieReset()
//	caddieAdd(icode0, icode1,icode2 ) : integer
//	caddieSet(index, icode0, icode1, icode2)
//	caddieRemove(index) : boolean
//	caddieList()	:	array of CCaddieLine
//	
//	cookieGet(k)	:	string
//	cookieSet(k,v)
//
//----------------------------------------
//	
//	T	table de codes ligne
//	N	nombre de lignes
//	I	index courant
//	Pindex	code information
//	Cindex	code secondaire
//	Qindex	index de qualitification
//	
//----------------------------------------

// cookie

function gcv(of){var es=document.cookie.indexOf(";",of);if (es==-1)es=document.cookie.length;return unescape(document.cookie.substring(of, es));}
function cookieGet(k){var pm,pl,cl,i,j;pm=k+"=";pl=pm.length;cl=document.cookie.length;i=0;while(i<cl){j=i+pl;if(document.cookie.substring(i,j)==pm)return gcv(j);i=document.cookie.indexOf(" ",i)+1;if(!i)break;}return "";}
function cookieSet(k,v){var expires=new Date (2012,11,11,1,1,1);if (!v){expires=new Date;expires.setFullYear(expires.getFullYear()-1);}document.cookie=k+"="+escape(v)+"; expires=" + expires.toGMTString();}
String.prototype.trim = function(){return this.replace(/(?:^\s+|\s+$)/g, "");} 

// caddie
//----------------------------------------

var CADDIE_MAXLINE	=	10;
var CADDIE_MAXINDEX	=	50;

function caddieVersion()
{
	return "1.0.1";
}

function caddieReset()
{
	var		index = CADDIE_MAXINDEX;
	while (index>=0)	caddieRemove(index--);
	document.cookie="";
	document.cookie.length=0;
	cookieSet("T", "");
	cookieSet("N", "0");
	cookieSet("I", "0");
}

function caddieCount()
{
	var s = cookieGet("N");
	if(s==""){caddieReset();return 0;}
	return parseInt(s);
}

function caddieSet(index, icode0, icode1, icode2)
{
	if (cookieGet("V0"+index)=="" || isNaN(cookieGet("V0"+index))) return false;
	cookieSet("V0"+index, ""+icode0);
	cookieSet("V1"+index, ""+icode1);
	cookieSet("V2"+index, ""+icode2);
	return true;
}

function caddieAdd(icode0, icode1, icode2)
{
var nlines, index;
	nlines = caddieCount();
	nlines++;if(nlines>CADDIE_MAXLINE) return false;
	cookieSet("N", ""+nlines);
	index = _caddieIndex();
	index++;
	cookieSet("I", ""+index);
	cookieSet("V0"+index, ""+icode0);
	cookieSet("V1"+index, ""+icode1);
	cookieSet("V2"+index, ""+icode2);
	cookieSet("T", cookieGet("T")+" "+index+" ");
	return true;
}

function caddieRemove(index)
{
var nlines, s;
	if ( isNaN(cookieGet("V0"+index)) || cookieGet("V0"+index)=="") return false;
	nlines = caddieCount(); nlines--;
	cookieSet("N", ""+nlines);
	s = cookieGet("T").replace(" "+index+" ", "");
	cookieSet("T", s);
	cookieSet("V0"+index);
	cookieSet("V1"+index);
	cookieSet("V2"+index);
	return true;
}

function CCaddieLine(index, icode0, icode1, icode2)
{
	this.mindex	=	index;	
	this.mv0	=	icode0;
	this.mv1	=	icode1;
	this.mv2	=	icode2;
}

function caddieList()
{
	var tret = new Array();
	var	s=_caddieGetList();
	if(s=="") return tret;
	
	var t=s.split("  ");
	var i, index;
	
	for(i=0;i<t.length; i++)
	{
		index = parseInt(t[i]);
		tret[tret.length] = new CCaddieLine
		(
			index,
			cookieGet("V0"+index),
			cookieGet("V1"+index),
			cookieGet("V2"+index)
		);
	}
	return tret;	
}

function _caddieIndex()
{
var s = cookieGet("I");
	if ( s=="") return 0;
	return parseInt(s);
}

function _caddieGetList()
{
var s = cookieGet("T");
var s2,i,c;
	if ( s=="") return "";	
	
	s2=s.replace("+", " ");
	s2 = "";
	for(i=0;i<s.length;i++) {	c = s.charAt(i); if (c=="+") s2+=" "; else s2 += c;	}
	if(s!=s2)cookieSet("T", s2);
	return s2;
}

