function ValideZik(form,good,bad)
{
//debug(form);
	var err = 0;
	err += _valideEmail(form.txtEmail,good,bad);
	if (err>0)
	{
		alert('Veuillez entrer une adresse email valide\nATTENTION : Vous receverez les instructions pour télécharger les titres sur cet email');
		return(false);
	}
	return(true);
}

//-------------------------------------------------------------------------------------------------------------------------------------------------
//-- LIB
//-------------------------------------------------------------------------------------------------------------------------------------------------
// ------------------------------------ VALIDATION DE FORMULAIRE
function _valideTxt(txtfield,good,bad)
{
	if (txtfield.value=="")
	{
		txtfield.className = bad;
		return(1);
	}
	txtfield.className = good;
	return(0);
}
function _valideNum(txtfield,good,bad)
{
	if (txtfield.value=="" || txtfield.value<1)
	{
		txtfield.className = bad;
		return(1);
	}
	txtfield.className = good;
	return(0);
}
function _valideEmail(txtfield,good,bad)
{
	var mail = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/;
	if (txtfield.value=="" || !mail.test(txtfield.value))
	{
		txtfield.className = bad;
		return(1);
	}
	txtfield.className = good;
	return(0);
}
function _valideChk(chkfield,good,bad)
{
	if (chkfield.checked==false)
	{
		chkfield.className = bad;
		return(1);
	}
	chkfield.className = good;
	return(0);
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
function debug(obj)
{
	var result = "";
	var lines = 0;
	var perbox = 15;
	for (var i in obj)
	{
		result += "objet." + i + " = " + obj[i] + "\n";
		lines ++;
		if (lines>perbox)
		{
			result += "\n\nContinuer ?";
			if (!confirm(result))	return;
			lines = 0;
			result = "";
		}
	}
	if (lines)	alert(result);
}
function elem(elem)
{
	return(document.getElementById(elem));
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
function chkCookies()
{
	SetCookie('cookie_test','something');
	var res=GetCookie('cookie_test');
	if (res=='something')
	{
		DelCookie('cookie_test');
alert('cookie ok');
		return;
	}
	else
	{
		document.location.replace("nocookie.php");
	}
}
function SetCookie(name, value)
{
	var argv=SetCookie.arguments;
	var argc=SetCookie.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)	
	{
		expires = Date(expires);
	}
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");
alert('cookie set : '+name+'='+value);		
}
function getCookieVal(offset)
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(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)	
		{
alert('cookie get : '+name+' ('+getCookieVal (j)+')');	
			return getCookieVal(j);
		}
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return("");
}
function DelCookie(name)
{
	if (document.cookie.indexOf(name)!=-1)
	{
		var date_exp = new Date();
		date_exp.setTime(date_exp.getTime()-(1000));
		SetCookie(name,'',date_exp);
alert('cookie del : '+name);		
	}
}
function MyEncode(str)
{
	res = "";
	for ( i=0 ; i<str.length ; i++)
	{
		c = str.charAt(i);
		d = str.charCodeAt(i);
		if (d<0x0030)					res = res+"&#"+d+";";
		else if (d>0x0039 && d<0x0041)	res = res+"&#"+d+";";
		else if (d>0x005A && d<0x0061)	res = res+"&#"+d+";";
		else if (d>0x007A)				res = res+"&#"+d+";";
		else							res = res+c;
	}
//	alert(res);
//	alert(escape(res));
	return(escape(res));
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------

/**
*
*  Javascript sprintf
*  http://www.webtoolkit.info/
*
*
**/
 
sprintfWrapper = {
 
	init : function () {
 
		if (typeof arguments == 'undefined') { return null; }
		if (arguments.length < 1) { return null; }
		if (typeof arguments[0] != 'string') { return null; }
		if (typeof RegExp == 'undefined') { return null; }
 
		var string = arguments[0];
		var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
		var matches = new Array();
		var strings = new Array();
		var convCount = 0;
		var stringPosStart = 0;
		var stringPosEnd = 0;
		var matchPosEnd = 0;
		var newString = '';
		var match = null;
 
		while (match = exp.exec(string)) {
			if (match[9]) { convCount += 1; }
 
			stringPosStart = matchPosEnd;
			stringPosEnd = exp.lastIndex - match[0].length;
			strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
 
			matchPosEnd = exp.lastIndex;
			matches[matches.length] = {
				match: match[0],
				left: match[3] ? true : false,
				sign: match[4] || '',
				pad: match[5] || ' ',
				min: match[6] || 0,
				precision: match[8],
				code: match[9] || '%',
				negative: parseInt(arguments[convCount]) < 0 ? true : false,
				argument: String(arguments[convCount])
			};
		}
		strings[strings.length] = string.substring(matchPosEnd);
 
		if (matches.length == 0) { return string; }
		if ((arguments.length - 1) < convCount) { return null; }
 
		var code = null;
		var match = null;
		var i = null;
 
		for (i=0; i<matches.length; i++) {
 
			if (matches[i].code == '%') { substitution = '%' }
			else if (matches[i].code == 'b') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'c') {
				matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'd') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'f') {
				matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'o') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 's') {
				matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'x') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'X') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
			}
			else {
				substitution = matches[i].match;
			}
 
			newString += strings[i];
			newString += substitution;
 
		}
		newString += strings[i];
 
		return newString;
 
	},
 
	convert : function(match, nosign){
		if (nosign) {
			match.sign = '';
		} else {
			match.sign = match.negative ? '-' : match.sign;
		}
		var l = match.min - match.argument.length + 1 - match.sign.length;
		var pad = new Array(l < 0 ? 0 : l).join(match.pad);
		if (!match.left) {
			if (match.pad == '0' || nosign) {
				return match.sign + pad + match.argument;
			} else {
				return pad + match.sign + match.argument;
			}
		} else {
			if (match.pad == '0' || nosign) {
				return match.sign + match.argument + pad.replace(/0/g, ' ');
			} else {
				return match.sign + match.argument + pad;
			}
		}
	}
}
 
sprintf = sprintfWrapper.init;