//progressia js lib

	/*function Paques()
	{
		b = this.getFullYear()-1900 ;
		c = Math.floor(this.getFullYear()%19);
		d = Math.floor((7*c+1)/19) ;
		e = Math.floor((11*c+4-d)%29);
		f = Math.floor (b/4) ;
		g = Math.floor ((b+f+31-e) % 7);
		date = 25-e-g ;
		alert(date);
		//La date de Pâques est : (date + 31) mars ou (date) avril
	}*/
	function afficher(img,lelayer)
	{
		if(document.getElementById(lelayer).style.display == 'block'){
			document.getElementById(lelayer).style.display = 'none';
			 img.src = 'images/btn-plus-listing.gif';
		}
		else {
			document.getElementById(lelayer).style.display = 'block';
			 img.src = 'images/btn-moins-listing.gif';
		}
	}
	function ResetSelect(id)
	{
		var tmp = document.getElementById(id);
		if(tmp)
		{
			if(tmp.type == 'select-one')
			{
				tmp.selectedIndex = 0;
			}
		}
	}
	function ResetSelect_v2(id)
	{
		var o = null
		var dest = document.getElementById(id);
		dest.options.length = 0;
		dest.options[0] = new Option('choisissez','');
		/*
		var tmp = document.getElementById(id);
		if(tmp)
		{
			if(tmp.type == 'select-one')
			{
				tmp.selectedIndex = 0;
			}
		}
		*/
	}

	function printCatalogue(id,path)
	{
		var w = window.open('printCatalogue.php?path=' + path +'&id=' + id,null,'toolbar=0,resizable=0,width=800,height=1100,status=0,menubar=0,scrollbars=yes,directories=0,resizable = yes');
	}

	//var suggestor = new Suggestor();

	function _onload()
	{
		//focus_on_first_field();
		//correctPNG();
		/*suggestor.register('Numfacture', 'fk_facture', 'WSprovider.php?item=facture&key=', false);
		suggestor.register('Authuser', 'FKauthuser_to', 'WSprovider.php?item=authuser&key=', false);
		suggestor.register('Client', 'fk_prospect', 'WSprovider.php?item=prospect&key=', false);
		//suggestor.register('Naf', 'Fknaf', 'WSprovider.php?item=naf&key=', false);
		suggestor.register('Ville', 'FKville', 'WSprovider.php?item=ville&key=', false);
		*/
		//doit toujours se trouver en dernier
		
		keepstate();

	}

	var _win_read = null;
	function read_a_message(IDmessage)
	{
		if(_win_read)
		{
			_win_read.close();
		}
		_win_read = window.open('read_a_message.php?IDmessage=' + IDmessage,'message','directories=0,toolbars=0,width=400,height=350');
	}


	function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
	{
	   var arVersion = navigator.appVersion.split("MSIE")
	   var version = parseFloat(arVersion[1])
	   if ((version >= 5.5) && (document.body.filters))
	   {
	      for(var i=0; i<document.images.length; i++)
	      {
	         var img = document.images[i]
	         var imgName = img.src.toUpperCase()
			 //alert(img.id);
	         if (imgName.substring(imgName.length-3, imgName.length) == "PNG" && img.id.substring(0,9) != "noCorrect")
	         {
	            var imgID = (img.id) ? "id='" + img.id + "' " : ""
	            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
	            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
	            var imgStyle = "display:inline-block;" + img.style.cssText
	            if (img.align == "left") imgStyle = "float:left;" + imgStyle
	            if (img.align == "right") imgStyle = "float:right;" + imgStyle
	            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
			   var strNewHTML = "<span " + imgID + imgClass + imgTitle
	            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
	            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
	            img.outerHTML = strNewHTML
	            i = i-1
	         }
	      }
	   }
	}

	//opca
	//mm on 26/04/2006 09:57
	function addLine(type_dossier)
	{

		var id = 'type_dossier_' + type_dossier;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line++;
		hidden.value = line;
		var div = document.getElementById('div_' + type_dossier);
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','divline_' + type_dossier + '_' + line);
		newdiv.innerHTML = '<table border = "0" width = "100%"><tr><td width="25%"><select name="FK_discipline_'  + type_dossier+ '[]" id="FK_discipline_'  + type_dossier+ '[]">' + list_discipline + '</select></td><td width="25%"><input type="text" id="Cout_horaire_'  + type_dossier+ '[]" name="Cout_horaire_'  + type_dossier+ '[]" +" size="5" value="0"></td><td width="25%"><input type="text" id="Heures_'  + type_dossier+ '[]" name="Heures_'  + type_dossier+ '[] +" size="5" value="0"></td><td width="25%"> <a href="#" onclick="remLine(' + type_dossier + ',' + line + ');"><i>retirer la ligne</i></a></td></tr></table>';
		div.appendChild(newdiv);
		document.location.hash = '#a_' + type_dossier + '_' + line;
	}

	function remLine(type_dossier, cline)
	{
		var id = 'type_dossier_' + type_dossier;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line--;
		hidden.value = line;
		var div = document.getElementById('div_' + type_dossier);
		var olddiv = document.getElementById('divline_' + type_dossier + '_' + cline);
		div.removeChild(olddiv);
	}
	//opca
	function addDossier(type_dossier)
	{
		var id = 'nb_dossier_' + type_dossier;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line++;
		hidden.value = line;
		var div = document.getElementById('all_dossiers_' + type_dossier);
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','one_dossier_' + type_dossier + '_' + line);
		newdiv.innerHTML = '<table border = "0" width = "100%"><tr><td width="50%">'+
						  '<input type="file" name="tele_dossier_'+ type_dossier + '_'+ line +'" '+
						  'id="tele_dossier_'+ type_dossier + '_'+ line +'"/></td><a href="#" '+
					      'onclick="remDossier(' + type_dossier + ',' + line + ');"><i>retirer la ligne</i></a></td></tr></table>';

		div.appendChild(newdiv);
		document.location.hash = '#a_' + type_dossier + '_' + line;
	}

	function remDossier(type_dossier, cline)
	{
		var id = 'nb_dossier_' + type_dossier;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line--;
		hidden.value = line;
		var div = document.getElementById('all_dossiers_' + type_dossier);
		var olddiv = document.getElementById('one_dossier_' + type_dossier + '_' + cline);
		div.removeChild(olddiv);
	}

	function rendreActif(pNomidChexbox, pNomid)
	{
		//on active la liste
		if (document.getElementById(pNomidChexbox).checked == true)
		{
			document.getElementById(pNomid).disabled = false ;
		}
		else
			document.getElementById(pNomid).disabled = true ;

	}


	//serveurs intranet
	function addLineServeur()
	{
		var id = 'nb_serveurs';
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line++;
		hidden.value = line;
		var div = document.getElementById('div_serveurs');
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','divline_serveur_' + line);

		newdiv.innerHTML = '<table><tr><td><select name="serveurs[]" id="serveurs[]">' + serveur_list + '</select></td><td><a href="#" onclick="remLineServeur('+ line + ');"><i>retirer la ligne</i></a></td></tr></table>';

		div.appendChild(newdiv);
		document.location.hash = '#a_serveurs_' + line;
	}
	//retirer une ligne des serveurs des intranets
	function remLineServeur(cline)
	{
		var id = 'nb_serveurs' ;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line--;
		hidden.value = line;
		var div = document.getElementById('div_serveurs');
		var olddiv = document.getElementById('divline_serveur_' + cline);
		div.removeChild(olddiv);
	}
	//langages serveur
	function addLineLangage()
	{
		var id = 'nb_langages';
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line++;
		hidden.value = line;
		var div = document.getElementById('div_langages');
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','divline_langage_' + line);

		newdiv.innerHTML = '<table><tr><td><select name="langages[]" id="langages[]">' + langage_list + '</select></td><td><a href="#" onclick="remLineLangage('+ line + ');"><i>retirer la ligne</i></a></td></tr></table>';

		div.appendChild(newdiv);
		document.location.hash = '#a_langage_' + line;
	}
	//retirer une ligne des langages des serveurs
	function remLineLangage(cline)
	{
		var id = 'nb_langages' ;
		var hidden = document.getElementById(id);
		var line = hidden.value;
		line--;
		hidden.value = line;
		var div = document.getElementById('div_langages');
		var olddiv = document.getElementById('divline_langage_' + cline);
		div.removeChild(olddiv);
	}


	function showDate(d)
	{
		if(d == null)
		{
			document.getElementById('showdate').value = '';
		}else
		{
			document.getElementById('showdate').value = d;
		}
	}

	function toggle(divID)
	{
		var obj = document.getElementById('dfull_' + divID);
		var obj2 = document.getElementById('dsplit_' + divID);
		if(obj.style.display == "none") {
			obj.style.display =  "block";
			obj2.style.display =  "none";
		}else {
			 obj.style.display =  "none";
			 obj2.style.display =  "block";
		}
	}

	function toggleBox(img,divID) {
		var obj = document.getElementById(divID);
		if(obj.style.display == "none") {
			obj.style.display =  "block";
			img.src = 'images/less.gif';
		}else {
			 obj.style.display =  "none";
			 img.src = 'images/more.gif';
		}
	}

	function TrBgColorate(tr, ev, original) {
		if(ev == 'over') {
			if(tr.className != 'bc_click') {
				tr.className = 'bc_over';
			}
			return;
		}
		if(ev == 'out') {
			if(tr.className != 'bc_click') {
				tr.className = original;
			}
			return;
		}
		if(ev == 'click') {
			if(tr.className == 'bc_click') {
				tr.className = original;
			}else {
				tr.className = 'bc_click';
			}
			return;
		}
	}

	function CheckItAll(source, mode) {
		try {
			var s = 0;
			var obj = null;
			do {
				s++;
				obj = document.all['r-' + s + '[]'];
			}while(!obj);
			var max = s + 32;
			do {
				var ids = 'r-' + s + '[]';
				obj = document.all[ids];
				if(obj) {
					if(obj.length) {
						for(var i=0;i<obj.length;i++) {
							if(obj[i].value == mode) {
								obj[i].checked = source.checked;
							}
						}
					}
				}
				s++;
			}while(s<max);

		}catch(err) {
			alert('CheckItAll: ' + err);
		}
	}

	function Form(action)
	{
		this.id = '__AUTOFORM__';
		this.innerHTML = '<form method="post" action="' + action + '" id="' +  this.id + '">';

		this.addElement = function(name, value)
		{
			this.innerHTML += '<input type="hidden" name="' + name + '" value="' + value + '">';
		}

		this.submit = function()
		{
			this.innerHTML += '</form>';
			document.body.innerHTML += this.innerHTML;
			document.getElementById(this.id).submit();
		}
	}

	function copyforms(forms,action)
	{
		try
		{
			var newf = new Form(action);
			for(var j=0;j<forms.length;j++)
			{
				var f = document.getElementById(forms[j]);

				if(f)
				{
					for(var i=0;i<f.length;i++)
					{
						var element = f[i];
						if(element.id != '') {
							if(element.type == 'checkbox') {
								if(element.checked == true) {
									if(element.value != '') {
										newf.addElement(element.id, element.value);
									}
								}
							}else if(element.type == 'radio') {
								if(element.checked == true) {
									newf.addElement(element.id, element.value);
								}
							}else {
								newf.addElement(element.id, element.value);
							}
						}
					}
				}
			}
			newf.submit();
		}catch(error)
		{
			alert(error.message);
		}
	}

	function TdBgColorate(td, ev, original) {
		if(ev == 'over') {
			if(td.className != 'bc_click') {
				td.className = 'bc_over';
				document.body.style.cursor = 'hand';
			}
			return;
		}
		if(ev == 'out') {
			if(td.className != 'bc_click') {
				td.className = original;
				document.body.style.cursor = 'default';
			}else {
				document.body.style.cursor = 'hand';
			}
			return;
		}
		if(ev == 'click') {
			if(td.className == 'bc_click') {
				td.className = original;
			}else {
				td.className = 'bc_click';
			}
			return;
		}
	}

	function focus_on_first_field() {
		for(var form=0; form<document.forms.length;form++)
		{
			for(var field=0;field<document.forms[form].length;field++)
			{
				if(document.forms[form][field].type == 'text')
				{
					if(document.forms[form][field].style.display != '' && !document.forms[form][field].disabled == true)
					{
						document.forms[form][field].focus();
						return;
					}
				}
			}
		}
	}

	//api to keep a page state by setting form field value
	function isInArray(val, arr) {
		for(var i=0;i<arr.length;i++) {
			if(arr[i] == val) return true;
		}
		return false;
	}

	/*
	//troubles with that one and SimpleCalendar !?
	Array.prototype.contains = function(value)
	{
		var i = 0;
		for(i=0;i<this.length && this[i] != value;i++);
		return (this[i] == value);
	}
	*/
	function isObject(obj)
	{
		return (typeof obj == 'object');
	}

	function getObjectByForm(fieldID)
	{
		for( var f in document.forms)
		{
			for(var e = 0; e< document.forms[f].length; e++)
			{
				if(document.forms[f].elements)
				{
					if(document.forms[f].elements[e].id == fieldID)
					{
						return document.forms[f].id;
					}
				}
			}
		}
		return null;
	}

	/*
		modifié le 15 mai 2007
		version modifiée pour la nouvelle archi
		je force l'id du formulaire à fb0
	*/
	function setValue(fieldID,fieldVALUE)
	{		
		try
		{
			var idForm = getObjectByForm(fieldID);

			if(idForm)
			{
				var objForm = document.forms[idForm];
				if(!objForm) objForm = document.forms['fb0'];

				if(objForm)
				{
					var obj = objForm.elements[fieldID];
					var objType = document.getElementById(fieldID).type;
					if(obj)
					{
						if(objType == 'text')
						{
							/*
							if(isObject(fieldVALUE))
							18/07/06
							pb quand un seul champs dans tableau
							*/
							if(obj.length)
							{
								for(var i=0;i<fieldVALUE.length;i++)
								{
									obj[i].value = fieldVALUE[i];
								}
							}else
							{
								//quand un seul champs dans tableau
								obj.value = fieldVALUE;
							}
						}else if(objType == 'radio')
						{
							if(isObject(fieldVALUE))
							{
								for(var i=0;i<obj.length;i++)
								{
									if(obj[i].value == fieldVALUE[i])
									{
										obj[i].checked = true;
									}
								}
							}else
							{
								for(var i=0;i<obj.length;i++)
								{
									if(obj[i].value == fieldVALUE)
									{
										obj[i].checked = true;
									}
								}
							}
						}else if(objType == 'hidden')
						{
							obj.value = fieldVALUE;
						}else if(objType == 'textarea')
						{
							obj.value = fieldVALUE;
						}else if(objType == 'password')
						{
							//
						}else if(objType == 'select-one')
						{//alert('ee');
							if(isObject(fieldVALUE))
							{

								for(var i=0;i<fieldVALUE.length;i++)
								{
									if(obj[i].options)
									{
										for(var j=0;j<obj[i].options.length;j++)
										{
											if(obj[i].options[j].value == fieldVALUE[i])
											{
												obj[i].options[j].selected = true;
											}
										}
									}
									else
									{
										//un seul champs dans tableau
										obj.value = fieldVALUE;
									}
								}
								return;
							}else {//
								for(var i=0;i<obj.options.length;i++)
								{//
								//

									if(obj.options[i].value == fieldVALUE)
									{
										obj.options[i].selected = true;
										//alert(fieldID+':'+fieldVALUE);
										return;
									}
								}
							}
						}else if(objType == 'select-multiple')
						{
							for(var i=0;i<obj.options.length;i++)
							{
								if(isInArray(obj.options[i].value,fieldVALUE))
								{
									obj.options[i].selected = true;
								}
							}
						}else if(objType == 'checkbox')
						{
							if(isObject(fieldVALUE))
							{
							if(obj.length)
								{
									for(var i=0;i<obj.length;i++)
									{
										if(isInArray(obj[i].value,fieldVALUE))
										{
									obj[i].checked = true;
										}
									}
								}else
								{
									obj.checked = true;
								}
							}else
							{
								if(fieldVALUE == '1')
								{
									obj.checked = true;
								}
							}
						}
					}
				}
			}
		}catch(err)
		{
			alert(fieldID + ': ' + err);
		}
	}


	function getSelectText(select)
	{
 	 	for(var i=0;i<select.options.length;i++)
 	 	{
			if(select.options[i].selected)
			{
				return select.options[i].text;
			}
		}
	}


	function formReset(form) {
		var f = document.getElementById(form);
		if(!f) return '';
		f.reset();
		//select the first form element
		for(var i=0;i<f.length;i++){
			var element = f[i];
			if(element.id != '') {
				if(element.type == 'select-one')
				{
					if(element.options[0])
					{
						element.options[0].selected = true;
					}
				}
			}
		}
	}

	function addslahes(ch) {
		//ch = ch.replace(/\\/g,"\\\\");
		ch = ch.replace(/\'/g,"\\'");
		//ch = ch.replace(/\"/g,"\\\"");
		return ch;
	}

	function getValue(obj) {
		if(!obj) return null;
		if(obj.type == 'select-one') {
			for(var j=0;j<obj.options.length;j++) {
				if(obj.options[j].selected == true) {
					return obj.options[j].value;
				}
			}
			return null;
		}
		return obj.value;
	}

	//return query for get from a form
	function list_form_values(form) {
		var f = document.getElementById(form);
		if(!f) return '';
		var get = '';
		for(var i=0;i<f.length;i++){
			var element = f[i];
			if(element.id != '') {
				if(element.type == 'checkbox') {
					if(element.checked == true) {
						if(element.value != '') {
							get += '&' + element.id + '=' + element.value;
						}
					}
				}else if(element.type == 'radio') {
					if(element.checked == true) {
						get += '&' + element.id + '=' + element.value;
					}
				}else {
					//get += '&' + element.id + '=' + addslahes(encodeURI(getValue(element)));
					get += '&' + element.id + '=' + getValue(element);
					//get += '&' + element.id + '=' + getValue(element);
				}
			}
		}
		return get;
	}

	//php mini calendar by mm
	function setDate(field, timestamp, date)
	{
		try
		{
			window.opener.document.getElementById(field).value = timestamp;
			window.opener.document.getElementById(field + '2').value = date;
			self.close();
		}catch (error)
		{
			alert(error.message);
		}
	}

	function setCalendar(field)
	{
		var win = window.open('read_calendar.php?field=' + field,null,'width=300,height=260');
	}

	//-----------------------

	function setCatalog(field)
	{
	 	 var win = window.open('read_popup_session.php?field=' + field,null,'width=500,height=300');
        }

        function setSession(field, id_session, session)
        {
	 	window.opener.document.getElementById(field).value = id_session;
		window.opener.document.getElementById(field + '2').value = session;
		self.close();
        }


