/* $VERSION: page.js 3.1.032.1.2011.02.09.09.11	 */
//<script>

/**
* Ouverture de la page d'aide
*
*/
function aide(page)
{  
	winlogin = window.open(page, 'Aide', 'dependent=yes,menubar=no,status=no,resizable=yes,scrollbars=yes,titlebar=no, toolbar=no, width=500,height=500');
	winlogin.focus();
}	


function AjaxRequete(methode, contener)
{
	if (!contener) 	contener = document
	retour = {};
	inputs = contener.getElementsByTagName("INPUT");	
	var elements = '';
	for (var i = 0; i < inputs.length; i++){
		if (inputs[i].name == "ENVOI_PARAMETRE") continue;
		if (inputs[i].name == "ACTION")	continue;
		if (inputs[i].name == "HISTORY") continue;
		if (inputs[i].name == "PHPSESSID") continue;
		if (inputs[i].type == 'submit')	continue;
		if (inputs[i].type == 'cancel')	continue;
		if (inputs[i].type == 'button')	continue;
		if (inputs[i].name == "") continue;
		if (inputs[i].type == "radio" && !inputs[i].checked) continue;
		try
		{
		    retour[inputs[i].name] = inputs[i].getValue();
			}
			catch(e)
			{
			  retour[inputs[i].name] = getValue(inputs[i].name);
			}
        try{inputs[i].save();} catch(e){};
        elements += (inputs[i].name + ' ');
    }
	inputs = contener.getElementsByTagName("SELECT");
	for (var i = 0; i < inputs.length; i++){
       	retour[inputs[i].name] = inputs[i].value;
       	elements += (inputs[i].name + ' ');
    }	
	inputs = contener.getElementsByTagName("TEXTAREA");
	for (var i = 0; i < inputs.length; i++){
        retour[inputs[i].name] = inputs[i].value;
        elements += (inputs[i].name + ' ');
    }	
	retour['SENDDATA'] = elements;
	
	var param = $H(retour).toQueryString();
	var pars = 'ACTION='+methode+'&PAGE_AJAX=Y&PHPSESSID=' + getValue("PHPSESSID") + '&'+param;
	Dialog.info("Traitement en cours", 
             {windowParameters: {width:300}, okLabel: "close", showProgress: true });

    var url = document.location.href;
   	var pos = url.indexOf('?', 0);
    if (pos > 0)
    {
    	url = url.substring( 0, pos)
	}
   	
	var myAjax = new Ajax.Request(
				url, 
				{method: 'post', parameters: pars, onComplete: reportOkPage, onFailure: reportErrorPage});

}

function reportOkPage(request) {
	var response = request.responseText;
	try{response.evalScripts();} catch(e){};
}

function reportErrorPage(request) {
	alert('Erreur de traitement Interne');
}


/**
* Retourne un objet javascript à partie du id puis du name.
* Si l'objet est introuvable retourne faux
*
*/
function getObj(identifiant)
{
	if (document.getElementById(identifiant))
	{
		return document.getElementById(identifiant);
	}
	else if (document.getElementsByName(identifiant)[0])
	{
		return document.getElementsByName(identifiant)[0];
	}
	else if (document.getElementById(identifiant.toLowerCase()))
	{
		return document.getElementById(identifiant.toLowerCase());
	}
	else if (document.getElementsByName(identifiant.toLowerCase())[0])
	{
		return document.getElementsByName(identifiant.toLowerCase())[0];
	}
	else if (document.getElementById(identifiant.toUpperCase()))
	{
		return document.getElementById(identifiant.toUpperCase());
	}
	else if (document.getElementsByName(identifiant.toUpperCase())[0])
	{
		return document.getElementsByName(identifiant.toUpperCase())[0];
	}
	return false;
}

/**
* Renvoie la valeur d'un objet
* Si l'objet est introuvable renvoie ""
*
*/
function getValue(identifiant)
{
	if (!(objet = getObj(identifiant)))
	{
		return ""; // l'objet n'existe pas
	}
	try
	{
		if (objet.hasSqlValue)
			return objet.sqlValue;
	}
	catch(e){}
	switch (objet.type)
	{
		case "checkbox":
			return (objet.checked) ?  objet.value : "" || objet.uncheckedValue;
			break;
		case 	"radio":
			objets = document.getElementsByName(objet.name);
			nbRadio = objets.length;
			for (numRadio = 0; numRadio < nbRadio; numRadio++ )
			{
				if (objets[numRadio].checked)
				{
					return objets[numRadio].value;
				}
			}
			return "";
			break;
		case "select-one":
			return objet.value;
			return (objet.selectedIndex != -1) ?  objet.options[objet.selectedIndex].text : "";
			break;
		case "text":
			return objet.value;
		break;
		case "password":
			return objet.value;
		break;
		case "hidden":
			return objet.value;
		break;
		case "textarea":
			return objet.value;
		break;
		default:
			if (objet.value)
			{
				return objet.value;
			}
			else
			{
				return objet.innerHTML;
			}
	}
}

/**
* Positionne la valeur d'un objet
* Si l'objet est introuvable renvoie false
*
*/
function setValue(identifiant, valeur)
{
	if (!(objet = getObj(identifiant)))
	{
		return ""; // l'objet n'existe pas
	}
	switch (objet.type)
	{
		case "checkbox":
			objet.checked = (objet.value == valeur);
			break;
		case 	"radio":
			objets = document.getElementsByName(objet.name);
			nbRadio = objets.length;
			for (numRadio = 0; numRadio < nbRadio; numRadio++ )
			{
				if ( objets[numRadio].value == valeur)
				{
					objets[numRadio].checked = true;
				}
			}
			break;
		case "select-one":
			objet.value = valeur;
			break;
		case "text":
			objet.value = valeur;
			break;
		case "password":
			objet.value = valeur;
			break;			
		case "hidden":
			objet.value = valeur;
			break;
		case "textarea":
			objet.value = valeur;
			break;
		default:
			objet.innerHTML = valeur;
			break;
	}
}

function setSqlValue(identifiant, valeur)
{
	if (!(objet = getObj(identifiant)))
	{
		return ""; // l'objet n'existe pas
	}
	objet.hasSqlValue = true;
	objet.sqlValue = valeur;
	
}
function addEvent(obj, eventType, afunction, isCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(eventType, afunction, isCapture);
		return true;
	}
	else if (obj.attachEvent) {
		return obj.attachEvent("on"+eventType, afunction);
	}
	else return false;
}
	
function removeEvent(obj, eventType, afunction, isCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(eventType, afunction, isCapture);
		return true;
	}
	else if (obj.detachEvent) {
		return obj.detachEvent("on"+eventType, afunction);
	}
	else return false;
}

function BatchStart(methode, contener)
{
	if (!contener) 	contener = document
	retour = {};
	inputs = contener.getElementsByTagName("INPUT");	
	var elements = '';
	for (var i = 0; i < inputs.length; i++){
		if (inputs[i].name == "ENVOI_PARAMETRE") continue;
		if (inputs[i].name == "ACTION")	continue;
		if (inputs[i].name == "HISTORY") continue;
		if (inputs[i].name == "PHPSESSID") continue;
		if (inputs[i].type == 'submit')	continue;
		if (inputs[i].type == 'cancel')	continue;
		if (inputs[i].type == 'button')	continue;
		if (inputs[i].name == "") continue;
		if (inputs[i].type == "radio" && !inputs[i].checked) continue;
        retour[inputs[i].name] = inputs[i].getValue();
        elements += (inputs[i].name + ' ');
    }
	inputs = contener.getElementsByTagName("SELECT");
	for (var i = 0; i < inputs.length; i++){
       	retour[inputs[i].name] = inputs[i].value;
       	elements += (inputs[i].name + ' ');
    }	
	inputs = contener.getElementsByTagName("TEXTAREA");
	for (var i = 0; i < inputs.length; i++){
        retour[inputs[i].name] = inputs[i].value;
        elements += (inputs[i].name + ' ');
    }	
	retour['SENDDATA'] = elements;
	
	var param = $H(retour).toQueryString();
	var pars = 'ACTION='+methode+'&APPEL_PERIODIQUE=Y&PAGE_AJAX=Y&PHPSESSID=' + getValue("PHPSESSID") + '&'+param;
         
	var myAjax = new Ajax.Request(
				document.location, 
				{method: 'post', 
				parameters: pars, 
				onComplete: BatchReportOk, 
				onFailure: BatchReportError});

}

function BatchTempoWait(numbat)
{
	window.setTimeout("BatchWait('"+numbat+"');",2000);
}

function BatchWait(numbat)
{
	retour = {};
    retour['_NOBATCH'] = numbat;
   	elements = '_NOBATCH ';
	retour['SENDDATA'] = elements;
	
	var param = $H(retour).toQueryString();
	var pars = 'ACTION=SUIVI_BATCH&APPEL_PERIODIQUE=Y&PAGE_AJAX=Y&PHPSESSID=' + getValue("PHPSESSID") + '&'+param;
	var myAjax = new Ajax.Request(
				document.location, 
				{method: 'post', parameters: pars, onComplete: BatchReportOk, onFailure: BatchReportError});
}

function BatchReportOk(request) {
	var response = request.responseText;
	try{response.evalScripts();} catch(e){};
}

function BatchReportError(request) {
	alert('Erreur de traitement interne');
}

