var tipoCuentaBtn;
var selectedTipoCuenta = false;

// realiza una llamada post a la url con los parametros entregados remplaza el contenido de id
function updateDiv(id, url, params){
    YAHOO.util.Dom.get(id).innerHTML = "<img src='/site_media/img/loaders/circular-loader.gif'/>";
    var callback = {
        success: function(o){
            YAHOO.util.Dom.get(id).innerHTML = o.responseText;
        },
        failure: function(o){
            alert("Fallo en el envio");
        }
    };
    YAHOO.util.Connect.asyncRequest('post', url, callback, params);
};

// Obtiene una lista de comunas al pasarle una region
function obtenerComuna(region, id_comuna){
    // llama a la funcion remota si no es vacio
    if (region) {
        // borra el contenido de comuna y colegio
        YAHOO.util.Dom.get('selectComuna').options.length = 0;
        YAHOO.util.Dom.get('selectColegio').options.length = 0;
        // da las opciones de comunas y cambia foco
        updateDiv('spanOptionsComuna', '/ajax/get_comuna_by_region/', "region=" + region + "&id_comuna=" + id_comuna);
    }
};

// Obtiene una lista de colegios al pasarle una comuna
function obtenerColegio(comuna, id_colegio){
    // llama a la funcion remota si no es vacio
    if (comuna) {
        // borra el contenido de comuna y colegio
        YAHOO.util.Dom.get('selectColegio').options.length = 0;
        // da las opciones de comunas y cambia foco
        updateDiv('spanOptionsColegio', '/ajax/get_colegio_by_comuna/', "comuna=" + comuna + "&id_colegio=" + id_colegio);
    }
};

// Captura envio de formulario de login
function sendLoginForm(e){
	// detiene evento
    YAHOO.util.Event.stopEvent(e);
	YAHOO.util.Dom.get("loginStatus").innerHTML = "";
	// desabilitar boton

    // Valida presencia de datos
    var form = YAHOO.util.Dom.get('loginForm');
    if (form.username.value == "" || form.password.value == "") {
        alert("Debe llenar todos los campos");
    }
    else {
        // Envia formulario por ajax
        YAHOO.util.Connect.setForm(form);
        var callback = {
            success: function(o){
                eval(o.responseText);
            },
            failure: function(o){
                alert("Fallo en el envio");
            }
        };
        YAHOO.util.Connect.asyncRequest('post', '/ingresar_js/', callback, null);
    }
}

// Captura envio de formulario de registro
function sendRegForm(e){
    YAHOO.util.Event.stopEvent(e);
	YAHOO.util.Dom.get("regStatus").innerHTML = "";
    // Valida presencia de datos
    var form = YAHOO.util.Dom.get('regForm');
    if (form.email.value == "" || selectedTipoCuenta == false ) {
		alert("Debe llenar todos los campos");
	}
	else {
		YAHOO.widget.Button.addHiddenFieldsToForm(form);
		// Envia formulario por ajax
		YAHOO.util.Connect.setForm(form);
		var callback = {
			success: function(o){
				YAHOO.util.Dom.get('registro').disabled = false;
				eval(o.responseText);
			},
			failure: function(o){
				YAHOO.util.Dom.get('registro').disabled = false;
				alert("Fallo en el envio");
			}
		};
		YAHOO.util.Dom.get('registro').disabled = true;
		YAHOO.util.Connect.asyncRequest('post', '/registrar_js/', callback, null);
	}
}

//seleccion de cual panel se va a mostrar
function ocultarVentanasSuperiores(){
    // seleccionar los ids de todos los peneles superiores
    YAHOO.util.Dom.setStyle('loginPanel', 'display', 'none');
    YAHOO.util.Dom.setStyle('regPanel', 'display', 'none');
    YAHOO.util.Dom.setStyle('alertPanel', 'display', 'none');
}

function mostrarLogin(){
    ocultarVentanasSuperiores();
    YAHOO.util.Dom.setStyle('loginPanel', 'display', 'block');
}

YAHOO.util.Event.on('openLoginPanel', 'click', mostrarLogin);

YAHOO.util.Event.on('openRegPanel', 'click', function(){
    ocultarVentanasSuperiores();
    YAHOO.util.Dom.setStyle('regPanel', 'display', 'block');
});

// muestra un mensaje por un cierto tiempo
function alerta(msg){
    ocultarVentanasSuperiores();
    // llevar a mensaje
    document.location.href = "#";
    YAHOO.util.Dom.setStyle('alertPanel', 'display', 'block');
    YAHOO.util.Dom.get('alerta').innerHTML = msg;
    setTimeout('ocultarVentanasSuperiores()', 5000);

};

function verificaUsername(e){
	YAHOO.util.Event.stopEvent(e);
	form = YAHOO.util.Dom.get('registroForm');
    if (form.username.value.length > 3)
        updateDiv('dispUsername', '/verificarusuario/', "username=" + form.username.value);
    else
        alert("introduzca a lo menos 4 caracteres");
};

YAHOO.util.Event.onDOMReady(function(){
    function onMenuClicktipoCuentaBtn(p_sType, p_aArgs){
        var oMenuItem = p_aArgs[1];
        if (oMenuItem) {
            tipoCuentaBtn.set("label", (oMenuItem.cfg.getProperty("text")));
			selectedTipoCuenta = true;
        }
    }

    var tcArray = [{
        text: "profesor",
        value: "pr"
    }, {
        text: "alumno",
        value: "al"
    }];

    tipoCuentaBtn = new YAHOO.widget.Button({
        type: "menu",
        id: "tipoCuentaBTN",
        name: "tipo_cuenta",
        label: "selecciona el tipo de invitación",
		value: "",
        menu: tcArray,
        container: "tipoCuentaButton",
        menuclassname: "menu_cuenta"
    });

    tipoCuentaBtn.on("appendTo", function(){
        tipoCuentaBtn.getMenu().subscribe("click", onMenuClicktipoCuentaBtn);
    });


    var ingresarBtn = new YAHOO.widget.Button("ingresar", {
        type: "submit"
    });
    var registroBtn = new YAHOO.widget.Button("registro", {
        type: "submit"
    });
    var aceptarAlerta = new YAHOO.widget.Button("aceptarAlerta", {
        type: "submit"
    });

    // acciones de los formularios
    YAHOO.util.Event.addListener('loginForm', 'submit', sendLoginForm);
    YAHOO.util.Event.addListener('regForm', 'submit', sendRegForm);
})
