var Err1='"La taille du champ doit comporter au minimum "+Min+" caractère(s)."'
var Err2='"La taille du champ doit comporter au maximim "+Max+" caractère(s)."'
var Err3="Veuillez renseigner ce champ svp."
var Err4="Veuillez saisir une adresse Mél.\n.Ex: alfred.dupond@job.car-opt.com"
var Err5="Veuillez saisir un nombre"
var Err6="Veuillez saisir un nombre entier"
var Err7='"Le nombre doit être >= à "+Min'
var Err8='"Le nombre doit être <= à "+Max'
var Err9="Le téléphone n'est pas au bon format !.\nEx: +(033) 01.02.03.04.05"
var Err10="Vous devez sélectionner un élement dans la liste."
var Err11="Veuillez saisir une date\nEx: 21/06/1982"
var Err12="Veuillez saisir une heure\nEx: 08:53:48"
var Err13="Veuillez saisir une date et une heure\nEx: 21/06/1982 08:53:48"

function stopError(){ return true; } 

function ChkVid(Fld,Err)
{
	if(Fld.value=="")
		return FldDef(Err) ? !FldErr(Fld,Err) : !FldErr(Fld,Err3)
	return false
}
function ChkMail(Fld,Err)
{
	if(Fld.value=="")	return true
	var Sous="[a-zA-Z0-9_.-]+"
	var Modele=new RegExp("^"+Sous+"@"+Sous+"."+Sous+"$")
	if(!Modele.test(Fld.value))	return (FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err4))
	return true
}
function ChkNbr(Fld,IsInt,Min,Max)
{
	if(Fld.value=="")	return true
	var Modele=new RegExp("^[+-]?[0-9"+(IsInt?"":".?")+"]+$")
	if(!Modele.test(Fld.value))
		return FldErr(Fld,IsInt ? Err6 : Err5)
// Borne
	Nbr=eval(Fld.value)
	if(Exist(Min))
		if(Nbr<Min)	return FldErr(Fld,eval(Err7))
	if(Exist(Min))
		if(Nbr>Max)	return FldErr(Fld,eval(Err8))
	return true
}
function ChkTel(Fld,Err)
{
	if(Fld.value=="")	return true
	var Sous="[0-9]{2}"
	var Sep=" "
	var Modele=new RegExp("^(\\+?\\([0-9]{3}\\) )?"+Sous+Sep+Sous+Sep+Sous+Sep+Sous+Sep+Sous+"$")
	if(!Modele.test(Fld.value))	return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err9)
	return true
}
function ChkIE()
{
	return !document.layers
}
function ChkSize(Fld,Min,Max,Err)
{
	var Msg=Err
	var Zz=Fld.value.length
	if((Min!=null)&&(Zz<Min))
		return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,eval(Err1))
	else
	if((Max!=null)&&(Zz>Max))
		return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,eval(Err2))
	return true
}
function MsClick(Evt)
{
	if(ChkIE())
		if((event.button==1)||(event.button==2))	return false
	else
		if((Evt.which==1)||(Evt.which==3))	return false
	return true
}
function SrcHide(Msg)
{
	if(!ChkIE())	document.captureEvents(Event.MOUSEDOWN)
	document.onmousedown=MsClick
}
function WdwOpen(Url,Name,Width,Height,Left,Top)
{
	var W=Width?Width:screen.width
	var H=Height?Height:screen.height
	var L=Left?Left:(screen.width-Width)/2
	var T=Top?Top:(screen.height-Height)/2
	var Zz
	Zz="toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1"
	Zz+=",left="+L+",top="+T+",width="+W+",height="+H	
	var Wd=window.open(Url,Name,Zz)
	if(Wd!=null)	Wd.focus()
}
function UrlGetParam(Name)
{
	var Url=location.search.substr(1)
	if(Name==null)	return Url
	var Zz=Url.indexOf(Name+"=")
	if(Zz<0)	return null
	Zz+=Name.length+1
	var Zz2=Url.indexOf("&",Zz)
	if(Zz2<0)	Zz=Url.length
	return Url.substring(Zz,Zz2)
}
function FldErr(Fld,Err,NoFocus)
{
	if(FldChk(Fld)&&(!NoFocus))
		if(Fld.type!="hidden")	Fld.focus()
	if(Err!='')	alert(Err)
	return false
}
function FldGet(Fld)
{
	return FldChk(Fld) ? Fld.value : Fld
}
function FldChk(Fld)
{
	return typeof(Fld)=="object"
}
function FldDef(Fld)
{
	return typeof(Fld)!="undefined" ? Fld!=null : false
}
function ChkCbo(Fld,Err)
{
	if(!CboChkSel(Fld,Err))	return false
	if(Fld[Fld.selectedIndex].value=="")	return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err10)
	return true
}
function CboGet(Fld,Idx,CText)
{
	var Field="value"
	if(FldDef(CText))	Field="text"
	var TIdx=Fld.selectedIndex
	if(FldDef(Idx))	TIdx=Idx
	return eval("Fld[TIdx]."+Field)
}

function CboChkSel(Fld,Err)
{
	if(Fld.selectedIndex<0)
		return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err10)
	return true
}

function CboSetSel(Fld,Val,CText)
{
	var Field="value"
	if(FldDef(CText))	Field="text"
	for(var i=0;i<Fld.length;i++)
	{
		if(eval("Fld[i]."+Field)==Val)
		{
			Fld.selectedIndex=i
			break
		}
	}
}
function CboSetSelM(Fld,Val,CText)
{
	var Field="value"
	if(FldDef(CText))	Field="text"
	for(var j=0;j<Val.length;j++)
	{
		for(var i=0;i<Fld.length;i++)
		{
			if(eval("Fld[i]."+Field)==Val[j])
			{
				Fld[i].selected=true
				break
			}	
		}
	}
}

function CboAdd(Fld,Val,Txt)
{
	Fld.options[Fld.length]=new Option(Txt,Val)
}

function CboNew(Fld)
{
	for(var i=Fld.length-1;i>=0;i--)
		Fld.options[i]=null
}

function SqlSearch(Fld,WithQuote)
{
	//alert(Fld.name)
	//alert(Fld.value)
	var Val=Fld.value
	if(Fld.type=="select-one")
		if(Fld.selectedIndex>=0)	Val=Fld[Fld.selectedIndex].value
	if(!FldDef(Val))	return null
	if(Val=="")	return null

	var Where,Q="",Zz=Fld.name.split("__")
	if(WithQuote)	Q='"'
	Val=Val.replace(/'/g,"\\'")
	switch(Zz[1])
	{
		case "E":	// Equal
			Where=Zz[0]+"="+Q+Val+Q
			break;
		case "CS":	// Like start with
			Where=Zz[0]+" LIKE "+Q+Val+"%"+Q
			break;
		case "CC":	// Like contain
			Where="("+Zz[0]+" LIKE "+Q+"%"+Val+"%"+Q
			if (Zz[0]=='date')
			{
				//alert("Condition0")
				Where+=" OR ("+Q+DateToBDD(Val)+Q+">=datedeb AND "+Q+DateToBDD(Val)+Q+"<=datefin)"
			}
			if (Zz[0]=='date1')
			{	
				Where=""
				//alert("Condition1")
				Where+="("+Q+DateToBDD(Val)+Q+"<=datefin"
				//alert(Where)
			}
			if (Zz[0]=='date2')
			{
				Where=""
				//alert("Condition2")
				Where+="("+Q+DateToBDD(Val)+Q+">=datedeb"
				//alert(Where)
			}
			if (Zz[0]=='date_adhesion')
			{
				Where=""
				//alert("Condition2")
				Where+="("+Q+DateToBDD(Val)+Q+">=datedeb"
				//alert(Where)
			}
			Where+=")"
			break;
		case "CE":	// Like end with
			Where=Zz[0]+" LIKE "+Q+"%"+Val+Q
			break;
		case "GE":	// >=
			Where=Zz[0]+">="+Q+Val+Q
			break;
		case "G":	// >
			Where=Zz[0]+">"+Q+Val+Q
			break;
		case "LE":	// <=
			Where=Zz[0]+"<="+Q+Val+Q
			break;
		case "L":	// <
			Where=Zz[0]+"<"+Q+Val+Q
			break;
	}
	//alert(Where)
	return " "+Where
}
function SqlAnd()
{
	var Zz=""
	for(var i=0;i<arguments.length;i++)
	{
		if(arguments[i]!=null)
		{
			if(Zz.length>0)	Zz+=" AND"
			Zz+=arguments[i]
		}
	}
	return Zz
}
function SqlOr()
{
	var Zz=""
	for(var i=0;i<arguments.length;i++)
	{
		if(arguments[i]!=null)
		{
			if(Zz.length>0)	Zz+=" OR"
			Zz+=arguments[i]
		}
	}
	return Zz
}
function Inc(Fld,Val)
{
	if(Fld.value=="")	Fld.value=0
	Fld.value=eval(Fld.value)+eval(Val)
	if(Fld.value<0)	Fld.value=0
}

function CookAdd(Name,Value,Expires,Path,Domain,Secure)
{
	CookSet(Name,Value,Expires,Path,Domain,Secure)
}
function CookDel(Name)
{
	CookSet(Name,null,new Date(1000))
}
function CookGet(Name)
{	
	var Zz=document.cookie
	var Zz1=Zz.split(";")
	for(i=0;i<Zz1.length;i++)
	{
		var idx=Zz1[i].indexOf(Name+"=")
		if((idx==0)||(idx==1))	return Zz1[i].split("=")[1]
	}
	return null
}
function CookSet(Name,Value,Expires,Path,Domain,Secure)
{
	var Zz=Name+"="+Value
	Zz+=Expires?"; expires="+Expires.toGMTString():""
	Zz+="; path="+(Path?Path:"/")
	Zz+=Domain?"; domain="+Domain:""
	Zz+=Secure?"; secure":""
	document.cookie=Zz
}

function ShopAdd(Name,ID,QT)
{
	ShopSet(Name,ID,QT)
}
function ShopDel(Name,ID)
{
	var Zz=CookGet(Name)
	if(Zz==null)	return
	var Zz1=Zz.split(",")
	for(i=0;i<Zz1.length;i++)
	{
		if(Zz1[i].indexOf(ID+":")==0)
		{
			Zz1[i]=""+Zz1[Zz1.length-1]
			Zz1[Zz1.length-1]=null
			Zz1.length--
			break
		}
	}
	Zz=""+Zz1
	if(Zz.length>0)
		CookSet(Name,Zz)
	else
		CookDel(Name)
}
function ShopGet(Name,ID)
{
	var Zz=CookGet(Name)
	if(Zz==null)	return null
	var Zz1=Zz.split(",")
	for(i=0;i<Zz1.length;i++)
	{
		if(Zz1[i].indexOf(ID+":")==0)
			return Zz1[i].split(":")[1]
	}
	return null
}
function ShopSet(Name,ID,QT)
{
	if(eval(QT)==0)
	{
		ShopDel(Name,ID)
		return
	}
	var Cp=ID+":"+QT
	var Ok=false
	var Zz=CookGet(Name)
	if(Zz==null)
	{
		CookSet(Name,Cp)
		return
	}
	Zz1=Zz.split(",")
	for(i=0;i<Zz1.length;i++)
	{
		if(Zz1[i].indexOf(ID+":")==0)
		{			
			Zz1[i]=Cp
			Ok=true
			break
		}
	}
	Zz= Ok ? ""+Zz1 : Zz+","+Cp
	CookSet(Name,Zz)
}
function ShopNew(form,DB)
{
	for(var i=0;i<form.length;i++)
	{
		if(form[i].name.indexOf("QT_")==0)
			form[i].value=0
	}

}
function ShopUpdate(form,DB)
{
	for(var i=0;i<form.length;i++)
	{
		if(form[i].name.indexOf("QT_")==0)
		{
			if(!ChkNbr(form[i],1,0)) return false
			if(form[i].value=="")	continue
			ShopSet(DB,form[i].name.substring(3),form[i].value)
		}
	}
	return true
}
function On2(Arg)
{	
	if((0+Arg)<10)	return "0"+Arg
	return Arg
}
function TimeMore(DelayMs)
{
	var Zz=new Date()
	Zz.setTime(Zz.getTime()+DelayMs)
	return Zz
}
function GetDate()
{
	var dt=new Date()
	return dt.getYear()+"/"+On2(dt.getMonth()+1)+"/"+On2(dt.getDate())
}
function GetTime()
{
	var dt=new Date()
	return On2(dt.getHours())+":"+On2(dt.getMinutes())+":"+On2(dt.getSeconds())
}
function GetDateTime()
{
	return GetDate()+" "+GetTime()
}
function ChkDate(Fld,Err)
{
	if(Fld.value=="")	return false
	var Modele=/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/
	if(!Modele.test(Fld.value))	return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err11)	
	return true
}
function ChkTime(Fld,Err)
{
	if(Fld.value=="")	return true
	var Modele=/[0-9]{2}\:[0-9]{2}\:[0-9]{2}/
	if(!Modele.test(Fld.value))	return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err12)	
	return true
}
function ChkDateTime(Fld,Err)
{
	if(Fld.value=="")	return true
	var Modele=/[0-9]{2}\/[0-9]{2}\/[0-9]{4} [0-9]{2}\:[0-9]{2}\:[0-9]{2}/
	if(!Modele.test(Fld.value))	return FldDef(Err) ? FldErr(Fld,Err) : FldErr(Fld,Err13)	
	return true
}
function DateToForm(Date)
{
	if(Date=="")	return Date
	return Date.substring(8)+"/"+Date.substring(5,7)+"/"+Date.substring(0,4)
}
function DateTimeToForm(DateTime)
{
	if(DateTime=="")	return DateTime
	return DateToForm(DateTime.substring(0,10))+DateTime.substring(10)
}
function DateToBDD(Date)
{
	if(Date=="")	return Date
	return Date.substring(6)+"/"+Date.substring(3,5)+"/"+Date.substring(0,2)
}
function DateTimeToBDD(DateTime)
{
	if(DateTime=="")	return DateTime
	return DateToBDD(DateTime.substring(0,10))+DateTime.substring(10)
}
function Exist(Obj)
{	
	if(document.all)
		return Obj!=null
	else
		return (""+Obj!="undefined") && (""+Obj!="null")
}
