//
// Fonctions de gestion des formulaires de saisie
//

// Variable de gestion des menus. Contient le dernier menu sélectionné.
var oOldMenu;

//Variables de gestion du calendrier
var dCalSelDate;
var dCalDate;

tmois = new Array(12);
tmois[0]="Janvier";
tmois[1]="Février";
tmois[2]="Mars";
tmois[3]="Avril";
tmois[4]="Mai";
tmois[5]="Juin";
tmois[6]="Juillet";
tmois[7]="Août";
tmois[8]="Septembre";
tmois[9]="Octobre";
tmois[10]="Novembre";
tmois[11]="Décembre";

//Fonction de gestion des menus
function opl_select_menu(oMenu)
	{
		if (oOldMenu != undefined) {
			oOldMenu.src = oOldMenu.src.replace("_on", "_off") ;
		}
		oOldMenu = oMenu;
		oMenu.src = oMenu.src.replace("_off", "_on");
		adm_fermer();
	}
	
//
// Menu administration
//

function adm_affiche()
	{
		oCal	= document.getElementById("adm_menu");
		oCal.style.display = '';	
	}

function adm_fermer()
	{
		oCal	= document.getElementById("adm_menu");
		oCal.style.display = 'none';	
	}

//
// Fonction de gestion du calendrier
//

function cal_sel_date(pcTexte, pnDeltaAnnee)
	{
	oTexte 		= document.getElementById(pcTexte);
	oCal		= document.getElementById("calendrier");	
	
	oCal.style.top 	= oTexte.offsetHeight  + cal_OffsetTop(oTexte) ;
	oCal.style.left = cal_OffsetLeft(oTexte) ;
	cTexte	= oTexte.value;

	if (cTexte == "") {
		dDate	= new Date();
		cday 	= dDate.getDate();
		cmonth 	= dDate.getMonth()+1;
		cyear 	= dDate.getFullYear() + pnDeltaAnnee;	
		} else {
		cday 	= cTexte.substring(0,2);
		cmonth 	= cTexte.substring(3,5);
		cyear 	= cTexte.substring(6,10);
	}
	
	dCalSelDate	= new Date(0);
	dCalSelDate.setDate(cday);
	dCalSelDate.setMonth(cmonth-1);
	dCalSelDate.setYear(cyear); 

	dCalDate = new Date(0);	
	dCalDate.setDate(1);
	dCalDate.setMonth(cmonth-1);
	dCalDate.setYear(cyear); 
	
	cal_affiche(dCalDate);
	
	oCal.style.display = "";
	}


function cal_affiche()
	{
					
		lpremierjour = false;
		
		dCptDate = new Date(0);
		dCptDate.setDate(dCalDate.getDate());
		dCptDate.setMonth(dCalDate.getMonth());
		dCptDate.setYear(dCalDate.getFullYear());
		
		oFrame = document.frames ? document.frames['calendrier_table'] : document.getElementById('calendrier_table');
		oDocument = oFrame.document || oFrame.contentWindow.document;

		oCell = oDocument.getElementById("cal_annee");
		oCell.innerHTML=dCptDate.getFullYear();
		oCell = oDocument.getElementById("cal_mois");
		oCell.innerHTML=tmois[dCptDate.getMonth()];
		
		if (dCalDate.getDay()==0) {
			cpremierjour = 7;
		} else {
			cpremierjour = dCalDate.getDay();
		}

		for (i=1; i<=6; i++){
				for (j=1; j<=7; j++){
					cCell = "cal_jour" + i + j;
					oCell = oDocument.getElementById(cCell);
					if (j==cpremierjour) {
						lpremierjour = true;
					}
					if (lpremierjour) {
						if (dCptDate.getMonth()==dCalDate.getMonth()) {
							oCell.innerHTML = dCptDate.getDate();
							if (dCptDate.getDate() == dCalSelDate.getDate() && dCptDate.getMonth() == dCalSelDate.getMonth() && dCptDate.getFullYear() == dCalSelDate.getFullYear()) {
								if (j==6 || j==7) {
									oCell.setAttribute("className", "cal_we_date_sel", 0);
									oCell.setAttribute("class", "cal_we_date_sel");
								 } else {
									oCell.setAttribute("className", "cal_date_sel", 0);
									oCell.setAttribute("class", "cal_date_sel");
								}
							 } else {
								if (j==6 || j==7) {
							 		oCell.setAttribute("className", "cal_we_date", 0);
									oCell.setAttribute("class", "cal_we_date");
								 } else {
							 		oCell.setAttribute("className", "cal_date", 0);
									oCell.setAttribute("class", "cal_date");								 
								 }
							}
							oCell.title = opl_date_to_string(dCptDate);
							dCptDate.setDate(dCptDate.getDate()+1);
						 } else {
							if (j==6 || j==7) {
							 	oCell.setAttribute("className", "cal_we_date", 0);
								oCell.setAttribute("class", "cal_we_date");
							}
							oCell.title = "";
							oCell.innerHTML = "&nbsp;";
							}
					} else {
						if (j==6 || j==7) {
							oCell.setAttribute("className", "cal_we_date", 0);
							oCell.setAttribute("class", "cal_we_date");
						}
						oCell.title = "";
						oCell.innerHTML = "&nbsp;";
					}
					
				}
			}
	}

function cal_annee_precedente()
	{
		dCalDate.setYear(dCalDate.getFullYear()-1);
		cal_affiche(dCalDate);
	}

function cal_annee_moins10()
	{
		dCalDate.setYear(dCalDate.getFullYear()-10);
		cal_affiche(dCalDate);
	}
	
function cal_annee_suivante()
	{
		dCalDate.setYear(dCalDate.getFullYear()+1);
		cal_affiche(dCalDate);		
	}

function cal_annee_plus10()
	{
		dCalDate.setYear(dCalDate.getFullYear()+10);
		cal_affiche(dCalDate);		
	}

function cal_mois_precedent()
	{
		dCalDate.setMonth(dCalDate.getMonth()-1);
		cal_affiche(dCalDate);	
	}

function cal_mois_suivant()
	{
		dCalDate.setMonth(dCalDate.getMonth()+1);
		cal_affiche(dCalDate);			
	}

function cal_jour(oJour)
	{
		if (oJour.innerHTML != "&nbsp;") {
			dNewDate= new Date(0);
			dNewDate.setDate(oJour.innerHTML);
			dNewDate.setMonth(dCalDate.getMonth());
			dNewDate.setYear(dCalDate.getFullYear()); 
			oTexte.value = opl_date_to_string(dNewDate);
			cal_fermer();
		}
	}
	
function opl_date_to_string(pDate)
	{
	return opl_padl(pDate.getDate(), 2, "0") + "/" + opl_padl(pDate.getMonth()+1, 2, "0") + "/" + pDate.getFullYear();
	}
	
function opl_padl(pChaine, pNombre, pCar)
	{
		pChaine = String(pChaine);
		while (pChaine.length < pNombre)
			pChaine = pCar + pChaine;
		return pChaine;
	}

function cal_fermer()
	{
		oCal	= document.getElementById("calendrier");
		oCal.style.display = 'none';
	}

//
// Callcul de position d'un objet par rapport à la page
//

function cal_OffsetLeft(pObjet)
	{
		return cal_Offset(pObjet, "offsetLeft");
	}

function cal_OffsetTop(pObjet)
	{
		return cal_Offset(pObjet, "offsetTop");
	}

function cal_Offset(pObjet, pOffset)
	{
		 var offset=0;
		 while(pObjet) {
			offset+=pObjet[pOffset];
			pObjet=pObjet.offsetParent;
		}
		return offset;
	}


//
// Fonctions de contrôle de saisie
//

//
// Fonctions de gestion des formulaires de saisie
//

function opl_touche(oevent)
   {
       var vctouche = window.event ? oevent.keyCode : oevent.which;
       return vctouche;
   }

function opl_toucheval(oevent)
   {
       var vcvaleur = window.event ? oevent.srcElement.value : oevent.target.value;
       return vcvaleur;
   }

   
function opl_cancelevent(oevent)
   {
		if (window.event) {
			oevent.returnValue = false;
		 } else {
			oevent.preventDefault();
		}
   }
   
//
// Saisie en des champs code postal
//

function opl_cp(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}

//
// Saisie des champs de type téléphone (téléphone, fax, portable)
//

function opl_tel(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = " 0123456789()";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}

//
// Saisie des champs de numérique
//

function opl_num(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789.";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}
	
//
// Saisie des champs de numérique
//

function opl_dec(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8) {
			var vcvaleur = opl_toucheval(oevent);
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789.";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			 } else {
				if (vctouche=="." && vcvaleur.indexOf(".", 0)>0) {
					opl_cancelevent(oevent);
				}
			}
		}
	}
//
// Suppression des blanc avant et après (TRIM)
//

function opl_trim(pcchaine)
	{
		return pcchaine.replace(/(^\s*)|(\s*$)/g,"");
	}

//
// Fonction de mise en forme d'un nombre 
//
function opl_formatnombre(pnNombre,pnDecimales,pcSepDecimales,pcSepMilliers) 
	{
	
	//return pnNombre;
	if (pnNombre==undefined) {return "0";}
	if (pnDecimales==undefined) {pnDecimales=0;}
	if (pcSepDecimales==undefined) {pcSepDecimales=",";}
	if (pcSepMilliers==undefined) {pcSepMilliers="";}
	var vcNombre = pnNombre.toString();
	if (vcNombre.indexOf(".",0)>=0) {
		vcDecimales = vcNombre.substring(vcNombre.indexOf(".",0) +1, vcNombre.length);
	} else {
		vcDecimales = "00";
	}
	
	if (pnDecimales>0) {
		while (vcDecimales.length < 2) {
			vcDecimales = vcDecimales + "0";
		}
	} else {
		vcDecimales = "";
	} 
	
	if (vcNombre.indexOf(".",0)>0) {
		vcNombre = vcNombre.substring(0,vcNombre.indexOf(".",0)); 
	}
	return vcNombre + pcSepDecimales + vcDecimales;
}

//
// Supprime la frappe clavier
//

function opl_readonly(oevent)
	{
		opl_cancelevent(oevent);
	}
	
//
// Posiotn d'un élément sur la page
//

function opl_pos_element(oElt) {
	var x = y = 0;
	if (oElt.offsetParent) {
		x = oElt.offsetLeft;
		y = oElt.offsetTop;
		while(oElt = oElt.offsetParent) {
			x +=oElt.offsetLeft;
			y += oElt.offsetTop;
		}
	}
	return {'x':x, 'y':y};
}

//
// Fonctions d'échange entre deux listes multi-valuées
//


function liste_deplacement(poSource, poCible) 
{
	while (poSource.selectedIndex>-1) {
		documentDirty=true;
		var oOption 	= document.createElement("OPTION");
		poCible.options[poCible.options.length] = new Option(poSource.options[poSource.selectedIndex].text, poSource.options[poSource.selectedIndex].value);
		poSource.remove(poSource.selectedIndex);
	}
}

function listeselectionsvaleurs(pcListe, pcValeur) {	
	var oListe 	= document.getElementById(pcListe);
	var oValeur = document.getElementById(pcValeur);
	var cValeur = "";
    for (i=0; i<oListe.options.length; i++) {
		if (cValeur=="") {
			cValeur  = oListe.options[i].value;
		} else {
			cValeur += ',' + oListe.options[i].value;
		}
	}
	oValeur.value = cValeur;
}

function opl_textefocus(el) {
	if (el.value==el.getAttribute("texte")) {
		el.value = '';
	}
}
function opl_texteblur(el) {
	el.value = opl_trim(el.value);
	if (el.value=='') {
		el.value=el.getAttribute("texte");
	}
}
