function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function ConvierteFecha(fecha){
	var trozos = new Array();
	trozos = fecha.split("/");
	trozos.reverse();
	return trozos.join("-");
}

function DesConvierteFecha(fecha){
	var trozos = new Array();
	trozos = fecha.split("-");
	trozos.reverse();
	return trozos.join("/");
}

function ObtenerPeticion(){
	var req = false;
	try{
		req = new XMLHttpRequest(); /* p.e. Firefox */
	}
	catch(err1){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
			/* algunas versiones IE */
		}
		catch(err2){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
				/* algunas versiones IE */
			}
			catch(err3){
				req = false;
			}
		}
	}
	return req;
}

function EnviarPeticion(LaPagina,LasVariables,LaFuncion,ObjetoPeticion,Capa,Imagen){
	//aunque es POST me da problemas la cache
	var Aleatorio = parseInt(Math.random()*999999999999999);
	if(LasVariables==""){
		LasVariables+="rand="+Aleatorio;
	}else{
		LasVariables+="&rand="+Aleatorio;
	}
	ObjetoPeticion.open("POST", LaPagina, true);
	ObjetoPeticion.onreadystatechange = function() {
		if(ObjetoPeticion.readyState == 4) {
			if(ObjetoPeticion.status == 200) {
				//Acciones
				RespuestaXML = ObjetoPeticion.responseXML;
				eval(LaFuncion+"(RespuestaXML)");
			}else{
				alert("Ha ocurrido un error: " + ObjetoPeticion.statusText);
			}
		}else{     // si readyState ha cambiado
			// pero readyState <> 4
			document.getElementById(Capa).innerHTML = '<img src="'+Imagen+'" border="0">';
		}
	}
	ObjetoPeticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ObjetoPeticion.send(LasVariables);
}
