var ie4;
var ns6;
var ns4;
if (document.all) ie4=true;
else if (document.layers) ns4=true;
else if (document.getElementById) ns6=true;

var mvzIndex=50;
var XX=100;
var YY=200;
var nomF;
var mvX,mvY;
var mvObj;
var LogOutUrl;
var DateLayer

//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function getLayer(name)
{
	if (ns4) return findLayer(name,document);
	else if (ns6) return(document.getElementById(name));
	else if(ie4) return eval('document.all.'+name);
	return null;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function findLayer(name,doc)
{
	var i,layer;	
	for (i=0; i < doc.layers.length; i++)
	{
		layer=doc.layers[i];
		if(layer.name==name) return layer;
		if ((layer.document.layers.length > 0)&&((layer=findLayer(name,layer.document))!=null)) return layer;
	}
	return null;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function moveLayerTo(layer,x,y)
{
	if (ns4) layer.moveTo(x,y);
	else if(ie4||ns6)
	{
		layer.style.left=x;
		layer.style.top =y;
	}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function hideLayer(layer)
{
	if (ns4||ns6) layer.visibility="hide";
	else if (ie4) layer.style.visibility="hidden";
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function showLayer(layer)
{
	if (ns4||ns6) layer.visibility="show";
	else if (ie4) layer.style.visibility="visible";
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function setLayerzIndex(layer,z)
{
	if (ns4||ns6) layer.zIndex=z;
	if (ie4) layer.style.zIndex=z;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ChangeClass(Obj,classname)
{
	Obj.className=classname;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ChangeSrc(Obj,srcname)
{
	Obj.src=scrname;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function updateButton(data) 
{
	data.mybouton.src = "bouton.php?string=" + data.str.value + "&fg=" + data.fg.value	+ "&bg=" + data.bg.value ;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function setDown(data) 
{
	data.mybouton.src = "bouton.php?string=" + data.str.value + "&fg=" + data.fg.value	+ "&bg=" + data.bg.value + "&state=down";
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function setOver(data) 
{
	data.mybouton.src = "bouton.php?string=" + data.str.value + "&fg=" + data.fg.value	+ "&bg=" + data.bg.value + "&state=over";
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ShowWindow(name,titre,x,y)
{
	mvObj=getLayer(name);
	XX=x?x:(ie4?event.clientX + document.body.scrollLeft - 10:200); 
	YY=y?y:(ie4?event.clientY + document.body.scrollTop - 50:200);
	moveLayerTo(mvObj,XX,YY);
	showLayer(mvObj);
	setLayerzIndex(mvObj,++mvzIndex)
	mvObj=null;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function CloseWindow(name)
{
	mvObj=getLayer(name);
	hideLayer(mvObj);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function CloseMainWindow()
{
	if (window.close()) GoTo(LogOutUrl);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function GoTo(url)
{
	x=ie4?(event.clientX -100):200; 
	y=ie4?(event.clientY -50):200;
	extra="&X="+x+"&Y="+y;
	tab=url.split("#");
	if (tab.length==1) document.location.href=tab[0];
	else document.location.href=tab[0]+extra+"#"+tab[1];
}

//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ConfirmDelete(url)
{
	ConfirmAction(url,"Etes-vous sûr de vouloir supprimer ?");
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ConfirmUpdate(url)
{
	ConfirmAction(url,"Enregistrer les modifications ?");
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ConfirmValidate(url)
{
	ConfirmAction(url,"Confirmer-vous la validation ?");
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ConfirmAction(url,msg)
{
	if (confirm(msg)) GoTo(url);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function InvertObject(Obj1,Obj2)
{
	var ObjValue,ObjText;
	ObjValue=Obj1.value;
	ObjText=Obj1.text;
	Obj1.value=Obj2.value;
	Obj1.text=Obj2.text;
	Obj2.value=ObjValue;
	Obj2.text=ObjText;

}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function MoveElmt(formname,liste,up,save,with_labels)
{
	var i,j;
	//alert(eval("document."+formname+"."+liste+".name"));
	with (eval("document."+formname+"."+liste))
		{
		if (options.length==0) alert ("Liste vide ... !");
		else if (options.length==1) alert ("Il n'y a qu'un seul élément dans la liste ... !");
		else if (selectedIndex<0) alert ("Sélectionner l'élément à déplacer ... !");
		else if ((up)&&(selectedIndex==0)) alert ("Cet élément est le premier de la liste ... !");
		else if ((!up)&&(selectedIndex==(options.length-1))) alert ("Cet élément est le dernier de la liste ... !");
		else 
			{
			i=selectedIndex;
			//alert(i);
			j=(up?selectedIndex-1:selectedIndex+1);
			InvertObject(options[j],options[i]);
			selectedIndex=j;
			if (save) SetSelectedValues(formname,liste,save,(with_labels)?true:false);
			}
		
		}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function TransfereElmt(formname,src,dest,save,first,with_labels)
{
	var i,myOption,txt,cde,myObj;
	
	i=-1;
	with (eval("document."+formname+"."+src))
		{
		if (options.length==0) alert ("Liste vide ... !");
		else if (options.length==1) i=0;
		else if (selectedIndex<0) alert('Sélectionnez un élément dans la liste !');
		else i=selectedIndex;
		if (i!=-1) 
			{
				txt=options[i].text;
				cde=options[i].value;
				if (cde==0) alert('Sélectionnez un élément dans la liste !');
				else if (txt.lastIndexOf("*")==(txt.length-1)) alert('Désolé !!!\n Cet élément est requis !');
				else 
				{
					myOption = new Option(txt,cde);
					myObj=eval("document."+formname+"."+dest);
					myObj.add(myOption);
					options.remove(i);
					if (i>=options.length) options.selectedIndex=i-1;
					else options.selectedIndex=i;
					if (save) SetSelectedValues(formname,first?src:dest,save,(with_labels)?true:false);
				}
			}
		}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SelectElmt(formname,src,dest)
{
	var i,txt,cde;
	
	i=-1;
	with (eval("document."+formname+"."+src))
	{
		if (options.length==0) ;
		else if (options.length==1) i=0;
		else if (selectedIndex<0) alert('Sélectionnez un élément dans la liste !');
		else i=selectedIndex;
		if (i!=-1) 
		{
			txt=options[i].text;
			cde=options[i].value;
			if (cde!=0) SetValue(formname,dest,txt);
			return(cde);
		}
	}
	return(false);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function UpdateElmt(formname,inpt,lst,save,with_labels)
{
	var i,myOption,txt,cde,myObj;
	
	i=-1;
	with (eval("document."+formname+"."+lst))
	{
		if (options.length==0) ;
		else if (options.length==1) i=0;
		else if (selectedIndex<0) alert('Sélectionnez un élément dans la liste !');
		else i=selectedIndex;
		if (i!=-1) 
		{
			if (options[i].value==0) alert('Sélectionnez un élément dans la liste !');
			else 
			{
				options[i].text=GetValue(formname,inpt);
				if (save) SetSelectedValues(formname,lst,save,(with_labels)?true:false);
			}
		}
	}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function RmvElmt(formname,lst,save,with_labels)
{
	var i;
	
	i=-1;
	with (eval("document."+formname+"."+lst))
	{
		if (options.length==0) alert ("Liste vide ... !");
		else if (options.length==1) i=0;
		else if (selectedIndex<0) alert('Sélectionnez un élément dans la liste !');
		else i=selectedIndex;
		if (i!=-1) 
		{
			options.remove(i);
			if (i>=options.length) options.selectedIndex=i-1;
			else options.selectedIndex=i;
			if (save) SetSelectedValues(formname,lst,save,(with_labels)?true:false);
			
		}
	}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function ElmtInListe(formname,lst,cde)
{
	var i,nb;
	with (eval("document."+formname+"."+lst))
	{
		nb=options.length ;
		for (i=0;i<nb;i++) if (options[i].value==cde) return(true);
		return(false);
	}
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function BinVal(val)
{
	if (val) return(1);
	else return(0);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function AddElmt(formname,lst,inpt,save,with_labels)
{
	var val,myOption,myObj,obj;
	
	obj=eval("document."+formname+"."+inpt);
	val=obj.value;
	if (!val) alert("Vous n'avez rien saisi !");
	else
	{
		myOption = new Option(val,val);
		myObj=eval("document."+formname+"."+lst);
		myObj.add(myOption);
		obj.value="";
		if (save) SetSelectedValues(formname,lst,save,(with_labels)?true:false);
	}
	
	
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SetSelectedValues(formname,liste,save,with_labels)
	{
		//alert('yes');
		myObj=eval("document."+formname+"."+liste);
		str="";
		if (with_labels)
		{
			for (i=0;i<myObj.options.length;i++) 
			str+=((str!=""?"|":"")+(myObj.options[i].value)+"#"+(myObj.options[i].text));
		}
		else
		{
			for (i=0;i<myObj.options.length;i++) 
			str+=((str!=""?"|":"")+myObj.options[i].value);
		}
		myObj=eval("document."+formname+"."+save);
		myObj.value=str;
	}

//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SetObjDate(formname,input)
	{
		obj=eval("document."+formname+"."+input);
		dObj=eval("document."+formname+"."+input+"_d");
		mObj=eval("document."+formname+"."+input+"_m");
		yObj=eval("document."+formname+"."+input+"_y");
		
		FormatDigit(dObj);
		FormatDigit(mObj);
		FormatDigit(yObj);
		
		d=dObj.value;
		m=mObj.value;
		y=yObj.value;
		//alert( input);
		d=DigitFormate(d,2);
		m=DigitFormate(m,2);
		y=DigitFormate(y,3);
		if (y  && y.length!=4) y='2'+y;
		
		if (y || m || d) obj.value=y+"-"+m+"-"+d;
		else obj.value="";
		//alert( Obj.value);
		
		dObj.value=d;
		mObj.value=m;
		yObj.value=y;
		
		//alert();
	}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function DigitFormate(str,size)
	{
		if (!str) return "";
		k=size-str.length;
		if (k>0) for (k=k;k--;k>0) str=('0'+str);
		return(str);
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function IsValideDate(ladate)
	{
	var ret;
	ret=ladate.split("-");

	a=ret[0];
	m=ret[1];
	j=ret[2];

	if ((j+m+a)=="") return (true);
	else if (isNaN(j)||isNaN(m)||isNaN(a)) return (false);
	else 
		{
		var jj,mm,aa;
		var daysInMonth = DaysArray(12);
		jj=parseInt(j,10);
		mm=parseInt(m,10);
		aa=parseInt(a,10);

		if (!InInterval(jj,1,31)) return (false);
		if (!InInterval(mm,1,12)) return (false);
		if (!InInterval(aa,1900,3000)) return (false);
		if ( (mm==2 && jj>daysInFebruary(aa)) || (jj > daysInMonth[mm])) return (false);
		return (true);
		}
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function DaysArray(n) 
	{
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function daysInFebruary (year)
{
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function InInterval(i,x,y)
	{
	var temp;
	temp=parseInt(i);
	if ((i>=x)&&(i<=y)) return (true);
	else return (false);
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SetObjChecked(formname,input,nb)
	{
		str="";
		for (i=0;i<nb;i++)
			if (eval("document."+formname+"."+input+"_"+i+".checked")) 
			str+=((str!=""?"|":"")+eval("document."+formname+"."+input+"_"+i+".value"));
		myObj=eval("document."+formname+"."+input);
		myObj.value=str;
	}

//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function VerifieSelect(formname,fieldname,caption)
{
	val=eval("document."+formname+"."+fieldname+".value");
	if ((val!="") && (val!="0")) return(true);
	else return(DisplayError(1,caption));
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function VerifieCheck(formname,fieldname,caption)
{
	obj=eval("document."+formname+"."+fieldname);
	nb=obj.length;
	for (i=0;i<nb;i++) 	if (obj(i).checked) return(true);
	return(DisplayError(1,caption));
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function IsBefore(date1,date2)
{
	var ret1,ret2;
	ret1=date1.split("-");
	ret2=date2.split("-");
	if (ret1[0] != ret2[0]) return (ret1[0]<ret2[0]);
	if (ret1[1] != ret2[1]) return (ret1[1]<ret2[1]);
	return (ret1[2] <= ret2[2]);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function IsValideLDate(ladate,liminf,limsup)
	{
		return (IsValideDate(ladate) && IsBefore(liminf,ladate) && IsBefore(ladate,limsup));
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------

function VerifieInput(formname,fieldname,caption,required,type)
{
	obj=eval("document."+formname+"."+fieldname);
	val=obj.value;
	if (val)
	{
		switch(type)
		{
			case "string":
				ret=true;
				break;
			case "ustring":
				ret=true;
				break;
			case "mail":
				reg_expr=/^[a-z0-9\-_\.]+@[a-z0-9\-]+(\.[a-z]{2,5})+$/i;
				ret=reg_expr.test(val);
				break;
			case "phone":
				reg_expr=/^(\+|00[\.\- ][0-9]{1,3}[\.\- ][0-9]{1,2}[\.\- ])?([0-9]{2}[\.\- ]){2,4}[0-9]{2}$/i;
				ret=reg_expr.test(val);
				break;
			case "numeric":
				reg_expr=/^[0-9]+$/i;
				ret=reg_expr.test(val);
				break;
			case "number":
				reg_expr=/^[0-9]+([\.,][0-9]+)?$/i;
				ret=reg_expr.test(val);
				break;
			case "money": 
				val=val.replace(",", ".");
				obj.value=val;
				reg_expr=/^[0-9 ]+([\.,][0-9]+)?$/i;
				ret=reg_expr.test(val);
				break;
			case "date":
				ret=IsValideLDate(val,arguments[5],arguments[6]);
				break;
			case "time":
				reg_expr=/^[0-9]{1,2}:[0-9]{1,2}(:[0-9]{1,2})?$/i;
				ret=reg_expr.test(val);
				break;
			default:
				ret=true;
				break;
		}
		if (ret) return(true);
		else return(DisplayError(2,caption));
	}
	else if (required) return(DisplayError(1,caption));
	else return(true);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function DisplayError(errortype,inputcaption)
{
	str=(errortype==1?"requis":"incorrecte");
	alert("Le champs [ "+inputcaption+" ] est "+str+" !");
	return(false);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function AfficheFenetre(nom,width,height)
{
	var fen;
	width=width?width:500;
	height=height?height:500;
	fen=window.open(nom,"DOCUMENT","menubar=no,scrollbars=yes,toolbar=no,alwaysRaised=yes,dependent=yes,resizable=yes,width="+width+",height="+height+",location=no");
	fen.focus();
	return false;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function IsEmpty(formname,nom)
{
	myobj=eval("document."+formname+"."+nom);
	//alert(nom);
	if (trim(myobj.value)=="") return(true);
	else return(false);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function GetValue(formname,nom)
{
	myobj=eval("document."+formname+"."+nom);
	if (!myobj){alert(nom);return("");}
	if (myobj.type=="checkbox") ret=myobj.checked?myobj.value:"";
	else ret=myobj.value;
	return(ret);
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SetValue(formname,nom,val)
{
	myobj=eval("document."+formname+"."+nom);
	myobj.value=val;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SetEditable(formname,nom,val)
{
	myobj=eval("document."+formname+"."+nom);
	myobj.disabled=!val;
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function SubmitForm(formname,verify,action)
{
	var myform;
	myform=eval("document."+formname);
	if (action) myform.action=action;
	if (!verify) myform.submit();
	else if (eval("Verifie"+formname+"()")) myform.submit();
}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function trim(ch) 
	{
	  var x=ch;
	  x=x.replace(/^\s*(.*)/, "$1");
	  x=x.replace(/(.*?)\s*$/, "$1");
	  return x;
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function StartDrag(fen)
	{
		nomF=fen;
		mvObj=eval(nomF).style;
		mvObj.zIndex=(++mvzIndex);
		
		mvX=event.offsetX-document.body.scrollLeft;
		mvY=event.offsetY-document.body.scrollTop;
		
		document.onmousemove=Drag;
		document.onmouseup=EndDrag;
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function Drag() 
	{ 
		if (mvObj)
		{
			mvObj.pixelLeft = event.clientX-mvX ; 
			mvObj.pixelTop = event.clientY-mvY ; 
			event.cancelBubble=true;
		}
		
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------	
function EndDrag() 
	{ 
		mvObj=null;
		document.onmousemove=null;
		document.onmouseup=null;
	}	
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function FindDate(ladate)
	{
	var jours=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
	var mois=Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacutecembre");

	var moisdate, jourdate, anneedate, jdate;
	moisdate = ladate.getMonth();
	jourdate = ladate.getDay();
	jdate=ladate.getDate();
	anneedate = ladate.getFullYear();
	return (jours[jourdate] + ", " + jdate + " " + mois[moisdate] + " " + anneedate);
	}
//-----------------------------------------------//-----------------------------------------------//-----------------------------------------------
function FindTime(layer) 
	{
		var ladate=new Date();
        var heuredate, minutedate;
		heuredate = ladate.getHours();
		minutedate = ladate.getMinutes();
		secondedate=ladate.getSeconds();
		if (layer) DateLayer=layer;
		obj=getLayer(DateLayer);
        obj.innerHTML="<b>"+FindDate(ladate)+"</b> "+((heuredate<10?"0"+heuredate:heuredate) + ":" + (minutedate<10?"0"+minutedate:minutedate) + ":"  + (secondedate<10?"0"+secondedate:secondedate));
		setTimeout('FindTime()',1000);
    }
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatUpper(obj)
{
  	var tab1=new Array("é","è","ê","ï","à","ù","`");
  	var tab2=new Array("e","e","e","i","a","u","'");
  	return(FormatField(obj,/([^0-9A-Z'.,\- ])/g,tab1,tab2,2));
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatMail(obj)
{
  	return(FormatField(obj,/([^0-9a-z._\-@])/g,false,false,1));
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatPhone(obj)
{
  	return(FormatField(obj,/([^0-9.\- ])/g));
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatMoney(obj)
{
  	var tab1=new Array(",");
  	var tab2=new Array(".");
  	return(FormatField(obj,/([^0-9.])/g,tab1,tab2));
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatDigit(obj)
{
  	return(FormatField(obj,/([^0-9])/g));
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
 function FormatField(obj,expr,tab1,tab2,scase)
{
  	var i,str;
  	str=obj.value;
  	if (tab1 && tab2)
  	{
  		for (i=0;i<tab1.length;i++) str=str.replace(tab1[i],tab2[i]);
  	}
  	if (scase)
  	{
  		if (scase==1) str=str.toLowerCase();
  		else if (scase==2) str=str.toUpperCase();
  	}
  	str=str.replace(expr,"");
  	if (str!=obj.value) obj.value=str;
  	return(str);
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
function ActionDiv(id_div) 
{
	var item = null;
	if (document.getElementById) item = document.getElementById(id_div);
	else if (document.all) item = document.all[id_div];
	else if (document.layers) item = document.layers[id_div];
	
	if (!item) 
	{ // rien à faire
	} 
	else if (item.style) 
	{
		if (item.style.display == "none") item.style.display = ""; 
		else item.style.display = "none";
	} 
	else item.visibility = "show";
}
//-----------------------------------------------//-----------------------------------------------//----------------------------------------------- 
function breakout_of_frame()
{
  if (top.location != location) 
  {
    top.location.href = document.location.href ;
  }
}
 