var xmlhttp = false;

function makeSimpleRequest(url){
	try{
		if(window.XMLHttpRequest){
			// code for Mozilla, etc.
			xmlhttp = new XMLHttpRequest();
			xmlhttp.onreadystatechange = viewResults;
			xmlhttp.open("POST", url, true);
			xmlhttp.send(null);
		}
		else{
			 if(window.ActiveXObject){
				// code for IE
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				if(xmlhttp){
					xmlhttp.onreadystatechange = viewResults;
					xmlhttp.open("POST", url, true);
					xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					
					// aquí a veces da error
					xmlhttp.send();
				}
			}
		}
	}
	catch(e){
		xmlhttp = false;
		alert("Se ha producido un error en la transferencia de datos, los cambios no se han efectuado");
	}
}

function makeRequest(url, parameters){
	xmlhttp = false;
	if(window.XMLHttpRequest){
		 // Mozilla, Safari,...
		xmlhttp = new XMLHttpRequest();
		if (xmlhttp.overrideMimeType){
			xmlhttp.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject){
		 // IE
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("makePOSTRequest - ERROR:" + e);
			}
		}
	}
	if(!xmlhttp){
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	xmlhttp.onreadystatechange = viewResults;
	xmlhttp.open('POST', url, true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", parameters.length);
	
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(parameters);
}

// Para acceder a paginas url (puede tener parametros)
function getRecurso(url){
	try{
		cargando(true);
		//alert(url);
		makeSimpleRequest(url);
	}
	catch(e){
		alert(e);
	}
}

function getRecursoComplex(url, params){
	try{
		cargando(true);
		//alert(url);
		makeRequest(url, params);
	}
	catch(e){
		alert(e);
	}
}


// Enviar un formulario
function sendForm(objform, idform){
	var mandar = true;
	var poststr = "";
	switch(idform){
		case 1:
			url = '../../web/includes/user.php';
			poststr += "accion=insert";
			poststr += "&us_mail=" + encodeURI( objform.us_mail.value );
			poststr += "&us_pass=" + encodeURI( objform.us_pass.value );
			poststr += "&us_nick=" + encodeURI( objform.us_nick.value );
			poststr += "&us_nombre=" + encodeURI( objform.us_nombre.value );
			poststr += "&us_cp=" + encodeURI( objform.us_cp.value );
			poststr += "&us_direccion=" + encodeURI( objform.us_direccion.value );
			poststr += "&us_localidad=" + encodeURI( objform.us_localidad.value );
			poststr += "&us_telefono=" + encodeURI( objform.us_telefono.value );
			poststr += "&us_profesion=" + encodeURI( objform.us_profesion.value );
			poststr += "&us_provincia=" + encodeURI( objform.us_provincia.value );
			
			// ...
		break;
	
	}
/*
	poststr += "&numpag=" + encodeURI( objform.numpag.value );
	poststr += "&nummaxres=" + encodeURI( objform.nummaxres.value );
	poststr += "&ordenacion=" + encodeURI( objform.ordenacion.value );
*/
	if(mandar){
		cargando(true);
		//alert (poststr);
		makeRequest(url, poststr);
	}
}

function viewResults(){
	// if xmlhttp shows "loaded"
	var idresultados = "contenedor";
	if (xmlhttp.readyState == 4){
		// if "OK"
		if(xmlhttp.status == 200){
			document.getElementById(idresultados).innerHTML = "<!-- OK -->" + xmlhttp.responseText;
			cargando(false);
		}
		else{
			//document.getElementById(idresultados).innerHTML = "Error en la recepción de los datos"; // <!-- traducir -->
			document.getElementById(idresultados).innerHTML = "<h1>Error en la recepción de los datos</h1>" + xmlhttp.responseText
			cargando(false);
		}
	}
}

function cargando(value){
	if(value){
		document.getElementById('contenedor').style.display = "none";
		document.getElementById('cargando').style.display = "";
	}
	else{
		document.getElementById('cargando').style.display = "none";
		document.getElementById('contenedor').style.display = "";
	}
}



// X method
var undefined;
var dynidcontenido;
var dynidcargando;

function makeSimpleRequestX(url){
	try{
		if(window.XMLHttpRequest){
			// code for Mozilla, etc.
			xmlhttp = new XMLHttpRequest();
			xmlhttp.onreadystatechange = viewResultsX;
			xmlhttp.open("POST", url, true);
			xmlhttp.send(null);
		}
		else{
			 if(window.ActiveXObject){
				// code for IE
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				if(xmlhttp){
					xmlhttp.onreadystatechange = viewResultsX;
					xmlhttp.open("POST", url, true);
					// aquí a veces da error
					xmlhttp.send();
				}
			}
		}
	}
	catch(e){
		alert(e);
	}
}

// Para acceder a paginas url (puede tener parametros)
function getRecursoX(url, idcontenido, idcargando){
	try{
		dynidcontenido = idcontenido;
		dynidcargando = idcargando;
		cargandoX(true);
		makeSimpleRequestX(url);
	}
	catch(e){
		alert(e);
	}
}

function viewResultsX(){
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState == 4){
		// if "OK"
		if(xmlhttp.status == 200){
			document.getElementById(dynidcontenido).innerHTML = "<!-- OK -->" + xmlhttp.responseText;
			if (document.getElementById('boxcalendario')) CrearCalendario(0);
			cargandoX(false);
		}
		else{
			//document.getElementById(idresultados).innerHTML = "Error en la recepción de los datos"; // <!-- traducir -->
			document.getElementById(dynidcontenido).innerHTML = "<h1>Error en la recepción de los datos</h1>" + xmlhttp.responseText
			cargandoX(false);
		}
	}
}

function cargandoX(value){
	if(value){
		document.getElementById(dynidcargando).style.display = "";
		document.getElementById(dynidcontenido).style.display = "";
	}
	else{
		document.getElementById(dynidcargando).style.display = "none";
		document.getElementById(dynidcontenido).style.display = "";
	}
}
