// JavaScript Document
// Documento JavaScript
// Esta funci�n cargar� las paginas
var DoAfterLoaded;

function llamarasincrono (url, id_contenedor, method, parameters, functionDoAfterLoad)
{
    var pagina_requerida = false;	
    if (window.XMLHttpRequest)
    {
		// Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
			
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versi�n antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }		
    } 
    else	
	    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // funci�n de respuesta
        cargarpagina (pagina_requerida, id_contenedor, functionDoAfterLoad);
    }
    pagina_requerida.open (method, url, true); // asignamos los m�todos open y send
	if (method == "POST"){
		pagina_requerida.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	pagina_requerida.setRequestHeader("Content-length", parameters.length);
    	pagina_requerida.setRequestHeader("Connection", "close");
	}	
    pagina_requerida.send (parameters);
}
// todo es correcto y ha llegado el momento de poner la informaci�n requerida
// en su sitio en la pagina xhtml

function cargarpagina (pagina_requerida, id_contenedor, functionDoAfterLoad){
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1)){
    	document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
		if (functionDoAfterLoad != null){
			functionDoAfterLoad();
			//alert("hola");
		}
		//alert(pagina_requerida.responseText);
//		alert(functionDoAfterLoad);
	}		
	/*else{
		alert("aca ta el err�!");
		document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
	}*/
	
	
}

function formAsString(form){
	
	var parameters;
	var tmpField;
	
	parameters = "";
	for(i=0; i < form.length; i++){
		tmpField = form.elements[i];
		switch(tmpField.type){
			case "text":
				parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.value) + "&";
				break;
			case "radio":				
				if(tmpField.checked)
					parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.value) + "&";
				break;
			case "checkbox":				
				if(tmpField.checked)
					parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.value) + "&";
				break;
			case "select-one":
				parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.options[tmpField.selectedIndex].value) + "&";
				break;
			case "textarea":
				parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.value) + "&";
				break;
			case "hidden":
				parameters = parameters + tmpField.name + "=" + encodeURI(tmpField.value) + "&";
				break;
			default:
				break; // caso que sean botones, no hago nada
		}
		if(i == form.length - 1)
			parameters = parameters.substring(0, parameters.length - 1);
	}	
	//alert(parameters);
	return parameters;
}

function cargarasincrono(url, contenedor, DoAfterLoad){
	$("#" + contenedor).load(url, "", DoAfterLoad);
}

function postearasincrono(url, contenedor, form, functionDoAfterLoad){
	return llamarasincrono(url, contenedor, "POST", formAsString(form), functionDoAfterLoad);
}

