/*!
**************************************************************************
* author e-Obs Technologies
* par Prestataire : e-Obs Technologies
* par Type : Produit
* date 16/11/2009 - FDX
* brief Description : Scripts généraux
* version e-Obs 1.0
**************************************************************************
*/

function sup_file(id_to_sup)
{
	document.getElementById(id_to_sup).value='demande_suppression';
	alert('Votre demande de suppression sera prise en compte à la validation du formulaire');
}

function chargerPage(entree)
{
    if (entree == "logout.php")  if (!confirm("Souhaitez-vous vraiment quitter l'application ?")) return ;
	chargerPageUseraction(entree,'');
}

function chargerPageUseraction(entree,methode)
{
	document.formGeneral.useraction.value = methode;
    with(document.formGeneral)
    {
        action = entree;
        submit();
    }
}

function compare_dates(datedeb, datefin)
{
	var regex = /^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
	var tabdeb = regex.exec(datedeb);
	var tabfin = regex.exec(datefin);

	ddeb = new Date(tabdeb[3], tabdeb[2]-1, tabdeb[1]);
	dfin = new Date(tabfin[3], tabfin[2]-1, tabfin[1]);
	timedeb = ddeb.getTime();
	timefin = dfin.getTime();
	if (timedeb <= timefin) return true;
	else return false;
}

function compare_heures(heuredeb, heurefin)
{
	var regex = /^([0-9]{1,2}):([0-9]{1,2})$/;
	var tabdeb = regex.exec(heuredeb); 
	var tabfin = regex.exec(heurefin);
	if(tabdeb[1]<10) tabdeb[1] = 0+tabdeb[1];
	if(tabfin[1]<10) tabfin[1] = 0+tabfin[1];
	if(tabdeb[1] > tabfin[1]) return false;
	else if(tabdeb[1]==tabfin[1])
	{	
		if(tabdeb[2]>tabfin[2]) return false;
		else return true;
	}
	else return true;
}

// Fonction pour cocher ou décocher un ensemble de checkbox dans le formulaire passé en paramètre
function checkAll(form, champs, valeur)
{
	for (i = 0; i < form.elements.length; i++)
	{
		if(form.elements[i].name == champs) form.elements[i].checked = valeur;
	}
}

// Fonction de vérification qu'un checkbox au moins est coché dans le form passe en parametres
function verifCheckForm(form, champs)
{
	var ok = false;
	var i = 0;
	while (i < form.elements.length && ok == false) 
	{
		if(form.elements[i].name == champs && form.elements[i].checked == 1) ok = true;
		i++;
	}
	return ok;
}

// Exécution méthode AJAX
var AJAX_DEFAULT_MESSAGE = '<span style="vertical-align: center;"><img src="./Projet/Images/ajax-loader.gif"/><span>';
var AJAX_VOID_MESSAGE = 'void';

function appelAjax(form, action, tpl, id_item, fct_callback, message)
{
	var xhr = null;
	if(window.XMLHttpRequest) // Firefox et autres
	{
		xhr = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) // Internet Explorer
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else // XMLHttpRequest non supporté par le navigateur
	{
		alert("Votre navigateur ne prend pas en charge cette fonctionalité");
		xhr = false;
	}
	if(!message) message = AJAX_DEFAULT_MESSAGE;
	else if(message == AJAX_VOID_MESSAGE) message = '';
	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4)
		{
			if(id_item !== null) id_item.innerHTML = xhr.responseText;
			try
			{
				fct_callback();
			}
			catch(e)
			{
			}
		}
		else if(id_item && message != '')
		{
			id_item.innerHTML = message;
		}
	}
	var vars = "";
	var inputs = form.getElementsByTagName('input');
	var textareas = form.getElementsByTagName('textarea');
	var file = form.getElementsByTagName('file');
	var selects = form.getElementsByTagName('select');
	for(var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].type == 'radio' || inputs[i].type == 'checkbox')
		{
			if(inputs[i].checked)
			{
				vars += inputs[i].name + "=" + encodeURIComponent(inputs[i].value) + "&";
			}
		}
		else vars += inputs[i].name + "=" + encodeURIComponent(inputs[i].value) + "&";
	}
	for(i = 0; i < textareas.length; i++)
	{
		if (textareas[i].className == 'mceEditor') textareas[i].value = tinyMCE.getContent(textareas[i].name);
		vars += textareas[i].name + "=" + encodeURIComponent(textareas[i].value) + "&";
	}
	for(i = 0; i < selects.length; i++)
	{
		if(selects[i].options.length > 0)
		{
			vars += selects[i].name + "=" + encodeURIComponent(selects[i].options[selects[i].selectedIndex].value) + "&";
		}
	}
	vars += "tpl_sortie=" + tpl;
	xhr.open("POST", action, true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
	xhr.send(vars);
}


	function traitementAjax(form, action, fct_callback)
	{
		var vars = "";
		var inputs = form.getElementsByTagName('input');
		var textareas = form.getElementsByTagName('textarea');
		var file = form.getElementsByTagName('file');
		var selects = form.getElementsByTagName('select');
		for(var i = 0; i < inputs.length; i++)
		{
			if(inputs[i].type == 'radio' || inputs[i].type == 'checkbox')
			{
				if(inputs[i].checked)
				{
					vars += inputs[i].name + "=" + encodeURIComponent(inputs[i].value) + "&";
				}
			}
			else 
			{
				vars += inputs[i].name + "=" + encodeURIComponent(inputs[i].value) + "&";
			}
		}
		for(var i = 0; i < textareas.length; i++)
		{
// Insérer récupération code pour CK Editor
		}
		for(i = 0; i < selects.length; i++)
		{
			if (!selects[i].multiple) vars += selects[i].name + "=" + encodeURIComponent(selects[i].options[selects[i].selectedIndex].value) + "&";
		}
		var xhr = null;
		if(window.XMLHttpRequest) // Firefox et autres
		{
			xhr = new XMLHttpRequest();
		}
		else if(window.ActiveXObject) // Internet Explorer
		{
			try
			{
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else // XMLHttpRequest non supporté par le navigateur
		{
			alert("Votre navigateur ne prend pas en charge cette fonctionalité");
			xhr = false;
		}
		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4)
			{
				if (fct_callback != '')
				{
					try
					{
						fct_callback(xhr.responseText);
					}
					catch(e)
					{
					}
				}
			}
		}
		xhr.open("POST", action, true);
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=ISO-8859-1");
		xhr.send(vars);
	}
	
	function getPosition(element)
	{
	    var left = 0;
	    var top = 0;
	    /*On récupère l'élément*/
	    var e = document.getElementById(element);
	    /*Tant que l'on a un élément parent*/
	    while (e.offsetParent != undefined && e.offsetParent != null)
	    {
	        /*On ajoute la position de l'élément parent*/
	        left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
	        top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
	        e = e.offsetParent;
	    }
	    return new Array(left,top);
	}
	
	function DeplacerOptionListbox(l1,l2) 
	{
		if (l1.options.selectedIndex>=0) 
		{
			o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
			l2.options[l2.options.length]=o;
			l1.options[l1.options.selectedIndex]=null;
		}
		else
		{
			alert("Aucune activité sélectionnée");
		}
	}
	
