/*
*  UTF-8 data encode / decode
*  http://www.webtoolkit.info/
*
**/

var Utf8 = {

	// public method for url encoding
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	},

	// public method for url decoding
	decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}
// Para usarlo, llamar a makerequest() ... por ejemplo:
//	makerequest ("contenido.html","divContenedor");
//

//Crear una variable de Bool para comprobar si existe Internet Explorer.
var xmlhttp = false;

function cargandoajax(){
	//Comprobar si se está usando IE.
	try {
		//Si la versión de javascript es superior a la 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//Si no, utilizar el tradicional objeto ActiveX.
		try {
			//Si se está usando Microsoft.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//En caso contrario no debe estar usándose IE.
			xmlhttp = false;
		}
	}
	
	//Si no estamos usando IE, crear una versión javascript del objeto.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	
}

cargandoajax();
/*
function enviaform(objID,formID,tras){
	try{escondetodo();}catch(e){}
	var serverPage = formID.action;
	var obj = document.getElementById(objID);
	xmlhttp.open("POST", serverPage);//,false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	var cadenas = "";		
	try{
		for(i=0;i<formID.length;i++){
			cadenas+=formID.elements[i].name+"="+formID.elements[i].value+"&";
		}
	}catch(ee){
	}
	xmlhttp.onreadystatechange = function() {
		//alert("kambio..");
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			obj.innerHTML = xmlhttp.responseText;
			try{ensenatodo();}catch(e){}
			try{eval(tras)}catch(e){}
		}else if(xmlhttp.readyState == 4 && xmlhttp.status != 200) {
			obj.innerHTML = "ERROR EN LLAMADA AVISE A PROVEEDOR ";
			try{ensenatodo();}catch(e){}
		}
	}
	//alert(cadenas);
	xmlhttp.send(cadenas);//'field1=blah%20blah&field2=foo&field3=foo%20blah');
}
*/

function makerequest(serverPage, objID) {
	cargandoajax();
	//escondetodo();
	var obj = document.getElementById(objID);
	try {
	xmlhttp.open("GET", serverPage);
	//xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
	xmlhttp.setRequestHeader('Content-Type', 'text/html;charset=iso-8859-1'); 
	//xmlhttp.setRequestHeader('Accept-Charset', 'UTF-8');
	//xmlhttp.setHeader('Content-type','text/html;charset=iso-8859-1');
	//xmlhttp.setRequestHeader('Accept-Charset', 'ISO-8859-1');
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4){
			if (xmlhttp.status == 0 || xmlhttp.status == 200){
				//obj.innerHTML = xmlhttp.responseText; //metodo normal
				respuesta = xmlhttp.responseText;
				//respuesta = Utf8.decode(respuesta);
				SetContainerHTML(objID, respuesta, true); //metodo para ejecutar scripts de la pagina llamada con ajax
			}else{
				obj.innerHTML = "Se ha producido un error..."+xmlhttp.status+" - "+xmlhttp.statusText+" "+xmlhttp.responseText;
			//ensenatodo();
			}
		}
	}
	xmlhttp.send(null);
	}catch(e){obj.innerHTML = "Se ha producido un error.";}
	
}

function SetContainerHTML(id,html,processScripts){
	var mydiv = document.getElementById(id);
	mydiv.innerHTML = html;
	
	if(processScripts!=false){
		if(html.indexOf("<html>")==-1 && html.indexOf("<body>")==-1){
			html = "<html><body>"+html+"</body></html>";
		}
		mydiv.innerHTML = "<script>function despues(){}</script>";
		mydiv.innerHTML += html;
		
		var elementos = mydiv.getElementsByTagName('script');
		for(i=0;i<elementos.length;i++) {
			var elemento = elementos[i];
			nuevoScript = document.createElement('script');
			nuevoScript.text = elemento.innerHTML;
			nuevoScript.type = 'text/javascript';
			if(elemento.src!=null && elemento.src.length>0)
			nuevoScript.src = elemento.src;
			elemento.parentNode.replaceChild(nuevoScript,elemento);
		}
	despues();
	}
}

