	
	//xmlhttp_pro.js
	
	//Function to create an XMLHttp Object.
	function getxmlhttp (){
		//Create a boolean variable to check for a valid microsoft active X instance.
		var xmlhttp = false;
		
		//Check if we are using internet explorer.
		try {
			//If the javascript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older active x object.
			try {
				//If we are using internet explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-internet explorer browser.
				xmlhttp = false;
			}
		}
		
		//If we are using a non-internet explorer browser, create a javascript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		
		return xmlhttp;
	}
	

	var aok;
	
	//Funciones para enviar un formulario.
	function getformvalues (fobj, valfunc){
		
		var str = "";
		aok = true;
		var val;
		
		//Recorrer la lista de todos los objetos que contiene el formulario.
		for(var i = 0; i < fobj.elements.length; i++){
			if(valfunc) {
				if (aok == true){
					val = valfunc (fobj.elements[i].value,fobj.elements[i].name); 
					if (val == false){
						aok = false;
					}
				}
			}
			str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
		}
		//Devolver los valores de la cadena
		return str;
	}
	
	function submitform (theform, serverPage, objID, espera,refrescar,funcion,valfunc){
		var file = serverPage;
		var str = getformvalues(theform,valfunc);
		//Si la validación es correcta.
		if (aok == true){
			//obj = document.getElementById(objID);
			//obj = objID;
			processajax (serverPage, objID, "post", str,espera,refrescar,funcion,valfunc);
			
		}
	}

	//Function to process an XMLHttpRequest.
	function processajax (serverPage, obj, getOrPost, str,espera,refrescar,funcion,valfunc){
		//Create a boolean variable to check for a valid microsoft active X instance.
		var xmlhttp = false;
		
		//Check if we are using internet explorer.
		try {
			//If the javascript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older active x object.
			try {
				//If we are using internet explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-internet explorer browser.
				xmlhttp = false;
			}
		}
		
		//If we are using a non-internet explorer browser, create a javascript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}

		if (getOrPost == "get"){
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					document.getElementById(espera).style.display = 'none';					
					document.getElementById(obj).innerHTML = xmlhttp.responseText;
				}else{
					document.getElementById(espera).style.display = 'block';
				}
				
			}
			xmlhttp.send(null);
		} else {
			xmlhttp.open("POST", serverPage, true);
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
							document.getElementById(obj).innerHTML = xmlhttp.responseText;
							if (refrescar=="Si"){
								window.location.reload();
							}
							if (funcion != 'undefined'){
								eval(funcion);
							}
							document.getElementById(espera).style.display = 'none';
				}else{
							document.getElementById(espera).style.display = 'block';
				}
			


			}
			xmlhttp.send(str);
		}
	}
	
	
	
