/**
* Librerias Javascript - AJAX
* Autor: Jorge Casas [jorgecasas@iternova.net]
* Version: 2.0.3
* Modificado: 20091202
**/
/** XHConn - Simple XMLHTTP Interface - 20050408 **/
function XHConn(){var xmlhttp, bComplete = false;try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){try{xmlhttp = new XMLHttpRequest();}catch(e){xmlhttp = false;}}}if (!xmlhttp) return null;this.connect = function(sURL, sMethod, sVars, fnDone){if (!xmlhttp) return false;bComplete = false;sMethod = sMethod.toUpperCase();try{if (sMethod == "GET"){xmlhttp.open(sMethod, sURL+"?"+sVars, true);sVars = "";}else{xmlhttp.open(sMethod, sURL, true);xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");}xmlhttp.onreadystatechange = function(){if (xmlhttp.readyState == 4 && !bComplete){bComplete = true;fnDone(xmlhttp);}};xmlhttp.send(sVars);}catch(z){return false;}return true;};return this;}
/**
 * Enviar por GET a la url dada usando AJAX, mostrando los resultados en div.
 */
function cargar_contenido_div(target,url,showloading){
	if (typeof(showloading)=="undefined" || showloading=="true"){
		document.getElementById(target).innerHTML = '<div class=\"load\"><img src=\"images/ajaxloading.gif\" alt=\"+\" class=\"floatleft\" /> Cargando...</div>';
	}
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP no disponible. Use un navegador reciente");
	var finalizado = function (oXML){document.getElementById(target).innerHTML = oXML.responseText;};
	myConn.connect(url, "GET", "", finalizado);
}
/**
 * Envia parametros de un formulario por POST al servidor (p.e. para modificar variables de sesion en el servidor)
 */
function ajax_send_post(url,paramkey,paramvalue){
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP no disponible. Use un navegador reciente");
	var finalizado = function (oXML) {};
	myConn.connect(url, "POST", "&" + paramkey + "=" + paramvalue, finalizado);
}
/**
 * Enviar por POST a la url dada un campo con id == campoid usando AJAX, mostrando los resultados en div. Puede que no funcione con textarea, 
 */
function cargar_contenido_div_post(target,url,div,campoid,showloading){
	if (typeof(showloading)=="undefined" || showloading=="true"){
		document.getElementById(target).innerHTML = '<div class=\"load\"><img src=\"images/ajaxloading.gif\" alt=\"+\" class=\"floatleft\" /> Cargando...</div>';
	}
	var myConn = new XHConn();
	if (!myConn)alert("XMLHTTP no disponible. Use un navegador reciente");
	var valorcampo = getRadioButtonSelectedValue(document.getElementById(campoid));
	var finalizado = function (oXML){ document.getElementById(target).innerHTML = oXML.responseText;};
	myConn.connect(url, "POST", "divID=" + div + "&codeID=" + valorcampo, finalizado);
}

/**
 * Enviar por POST a la url dada varios campos de un formulario con id == idFormulario usando AJAX, mostrando resultados en div. Puede que no funcione con textarea
 */
function cargar_contenido_array_post(div,url,idFormulario,showloading){
	if (typeof(showloading)=="undefined" || showloading=="true"){
		document.getElementById(div).innerHTML = '<div class=\"load\"><img src=\"images/ajaxloading.gif\" alt=\"+\" class=\"floatleft\" /> Cargando...</div>';
	}
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP no disponible. Use un navegador reciente");
	var salida="";
	var param_value = undefined;
	var formulario=document.getElementById(idFormulario);
	for (var i=0; i <formulario.elements.length;i++) {
		param_value = getRadioButtonSelectedValue(formulario.elements[i]);
		if (param_value != undefined) salida+="&"+formulario.elements[i].id+'='+encodeURI(param_value);
	}
	var finalizado = function (oXML){document.getElementById(div).innerHTML = oXML.responseText;};
	myConn.connect(url, "POST", "divID=" + div + "&"+salida, finalizado);
}
/**
 * Actualiza un div (divtarget) de forma periodica, cargando de la url ajaxurl el contenido mediante AJAX
 */
function reloadDivPeriodically(divtarget,ajaxurl,refresh,showloading){if(refreshIdVM){clearTimeout(refreshIdVM);refreshIdVM=0;}cargar_contenido_div(divtarget,ajaxurl,showloading);refreshIdVM = setTimeout('cargar_contenido_div(\''+ divtarget+ '\',\''+ ajaxurl +'\',\''+showloading+'\'); reloadDivPeriodically(\''+ divtarget+ '\',\''+ ajaxurl +'\','+refresh+',\''+showloading+'\');', refresh);}
function loadIframe(iframeName, url){if ( window.frames[iframeName]){window.frames[iframeName].location = url;return false;}return true;}
function get_url_param(name){name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS = "[\\?&]"+name+"=([^&#]*)";var regex = new RegExp( regexS );var results = regex.exec( window.location.href );if(results==null)return "";else return results[1];}
function checkAll(field){var numElements = field.length;if (numElements == undefined) field.checked=true;else{for (i = 0; i < numElements; i++) field[i].checked = true;}}
function uncheckAll(field){var numElements = field.length;if (numElements == undefined) field.checked=false;else{for (i = 0; i < numElements; i++) field[i].checked = false;}}
function changeAll(field, fieldHijo) {if (field.checked == true) checkAll(fieldHijo);else uncheckAll(fieldHijo);}
function showcontent(id){document.getElementById(id).style.display = "block";}
function hidecontent(id){document.getElementById(id).style.display = "none";}
function toggle_visibility(id){var e = document.getElementById(id);if(e.style.display == 'block') e.style.display = 'none';else e.style.display = 'block';}
function getRadioButtonSelectedValue(ctrl){if(ctrl.length == undefined && ctrl.type!='radio'){return ctrl.value;} if (ctrl.selectedIndex != undefined){return ctrl.value;} if (ctrl.type=='radio' && ctrl.checked){return ctrl.value;} if(ctrl.type=='checkbox'){for(i=0;i<ctrl.length;i++){if(ctrl[i].checked) return ctrl[i].value;}} return undefined; }
function getCheckBoxChecked(ctrl){if(ctrl.checked) return '1';else return '0';}
function ajaxFadeEffect(element){new Effect.Fade(element,{ duration:1});}
function ajaxAppearEffect(element){new Effect.Appear(element,{ duration:1});}
function confirmacion(url,question,answerok){var r=confirm(question); if (r==true){alert(answerok);location.href=url;}}
function getURLparam(param){ param=param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS = "[\\?&]"+param+"=([^&#]*)";var regex=new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1];}
function T$(i){return document.getElementById(i)}