YAHOO.util.Event.onContentReady("navMenu", function () {
	var menu = new YAHOO.widget.Menu("navMenu", {position: "static"});
	menu.render();
});

var loginNextFunc,loginLinkEnter,loginLinkLeave,resetPwdEnter,resetPwdLeave,resetUsrEnter,resetUsrLeave,gproc=false;

with(Shadowbox) {
	loadSkin('classic', '/shadowbox/skin');
	loadLanguage('es', '/shadowbox/lang');
	loadPlayer(['html', 'iframe'], '/shadowbox/player');
}

window.onload = function() 
{
	Shadowbox.init({skipSetup: true});
	if (typeof(init) == 'function') init();
}

function autoOK(evt, f)
{
	var keyCode;
	if (evt.which) { 
		keyCode = evt.which;
	} else {
		if (evt.keyCode) keyCode = evt.keyCode;
	}
	if (keyCode == 13) f();
}

function doLogin()
{
	AJAX();
	XMLHttp.onreadystatechange = loginState;
	XMLHttp.open('GET', '/postulante/login/u/' + encodeURIComponent(YAHOO.util.Dom.get('loginUser').value) + '/p/' + encodeURIComponent(YAHOO.util.Dom.get('loginPwd').value), true);
	XMLHttp.send(null);
}

function historial()
{
	if (!loggedIn()) {
		login(true, historial);
	} else {
		document.location.href = '/postulante/historial';
	}
}

function html_entity_decode(str)
{
	var decoder = document.createElement('textarea');
	decoder.innerHTML = str;
	var content = decoder.value;
	decoder = null;
	return content;
}

function loggedIn()
{
	return YAHOO.util.Dom.inDocument('logged');
}

function login(showMsg, exec)
{
	loginNextFunc = exec;
	var log = '<div id="dialog">';
	log += '<table width="100%" cellpadding="0" cellspacing="0"><tr><td colspan="2"><img src="/images/PRH_small.png" /></td><td id="login-note" class="note" align="right" valign="bottom">';
	if (showMsg) {
		log += 'La funci&oacute;n seleccionada<br />requiere que Ud.<br />se identifique previamente.';
	}
	log += '</td></tr><tr><td colspan="3" height="20"></td></tr>';
	log += '<tr><td align="right" height="30">Usuario:</td><td width="15"></td><td><input type="text" class="inputText" name="loginUser" id="loginUser" maxlength="20" /></td></tr>';
	log += '<tr><td align="right" height="26">Clave:</td><td></td><td><input type="password" class="inputText" name="loginPwd" id="loginPwd" maxlength="20" /></td></tr></table>';
	log += '<a href="javascript:doLogin()" id="loginLink" class="button-ok" style="position:absolute; left: 133px; top: 190px">INGRESAR</a>';
	log += '</div>';
	
	Shadowbox.open({player: 'html', content: log, height: 190, width: 336}, {onFinish: loginSet, onClose: loginUnset});
}

function loginSet()
{
	YAHOO.util.Dom.get('loginUser').focus();
	YAHOO.util.Event.addListener('shadowbox', 'keypress', autoOK, doLogin);
	
	YAHOO.util.Dom.setStyle('loginLink', 'opacity', 0);
	var anim = new YAHOO.util.Anim('loginLink', {top: {to: 145}, opacity: {to: .5}}, .5, YAHOO.util.Easing.easeOut);
	anim.onComplete.subscribe(function(){var anim = new YAHOO.util.Anim('loginLink', {top: {to: 152}}, .5, YAHOO.util.Easing.easeOut); anim.animate();});
	anim.animate();
	
	YAHOO.util.Dom.get('shadowbox_counter').innerHTML = '<b><a href="/portal/preregistro">No estoy registrado</a> | <a href="javascript:olvidoClave()">Olvid&eacute; mi clave</a></b>';
	
	loginLinkEnter = new mouseEnter('loginLink', enter);
	loginLinkLeave = new mouseLeave('loginLink', leave);
}

function loginState()
{
	if (XMLHttp.readyState == 4) {
		var loginError = false;
		if (XMLHttp.status == 200) {
			var data = XMLHttp.responseText.split('|');
			if (parseInt(data[0]) > 0) {
				YAHOO.util.Dom.get('login').innerHTML = '<span id="userID" style="display: none;">' + data[0] + '</span><span id="logged">' + data[1] + ' ' + data[2] + '</span><span id="userEmail" style="display: none;">' + data[3] + '</span><span id="userDataOK" style="display: none;">' + data[4] + '</span><a href="javascript:logout()" class="logout-button">SALIR</a>';
				if (data[4] > 0) {
					perfil();
				} else {
					if (document.location.href.match(/\/avisos/)) checkPost();
					if (typeof(loginNextFunc) == 'function') {
						loginNextFunc();
					} else {
						Shadowbox.close();
						if (document.location.href.match(/\/portal\/(?:(?:pre)?registr(?:ad)?o|cambiar\.ingreso|reset)/)) {
							document.location.href = '/avisos';
						} 
					}
				}
			} else {
				loginError = true;
			}
		} else {
			loginError = true;
		}
		if (loginError) {
			YAHOO.util.Dom.get('login-note').innerHTML = "El usuario y/o clave<br />ingresados no son correctos.";
			YAHOO.util.Dom.addClass('login-note', 'error');
			YAHOO.util.Dom.get('loginPwd').value = '';
			YAHOO.util.Dom.get('loginUser').select();
			YAHOO.util.Dom.get('loginUser').focus();
		}
	}
}

function loginUnset()
{
	YAHOO.util.Event.removeListener('shadowbox', 'keypress');
	if (loginLinkEnter) loginLinkEnter = loginLinkEnter.destroy();
	if (loginLinkLeave) loginLinkLeave = loginLinkLeave.destroy();
}

function logout()
{
	AJAX();
	XMLHttp.onreadystatechange = logoutState;
	XMLHttp.open('GET', '/postulante/logout', true);
	XMLHttp.send(null);
}

function logoutState()
{
	if (XMLHttp.readyState == 4) {
		if (XMLHttp.status == 200) {
			YAHOO.util.Dom.get('login').innerHTML = '<a class="login-link" href="javascript:login();" hidefocus="true">Ingresar</a>';
			if (document.location.href.match(/\/postulante\//)) {
				document.location.href = '/avisos';
			} else {
				if (document.location.href.match(/\/avisos/)) checkPost();
			}
		}
	}
}

function olvidoClave()
{
	if (!gproc) {
		var pwd = '<div id="dialog">';
		pwd += '<table width="100%" cellpadding="0" cellspacing="0"><tr><td colspan="2"><img src="/images/PRH_small.png" /></td><td id="pwd-note" class="note" align="right" valign="bottom">';
		pwd += '</td></tr><tr><td colspan="3" height="20"></td></tr>';
		pwd += '<tr><td align="right" height="30">Usuario:</td><td width="15"></td><td><input type="text" class="inputText" name="userName" id="userName" maxlength="20" /></td></tr>';
		pwd += '<tr><td align="right" height="26">E-mail:</td><td></td><td><input type="text" class="inputText" name="email" id="email" maxlength="100" /></td></tr></table>';
		pwd += '<a href="javascript:resetPwd()" id="resetPwdLink" class="button-ok" style="position:absolute; left: 133px; top: 190px">CAMBIAR MI CLAVE</a>';
		pwd += '</div>';
		
		Shadowbox.open({player: 'html', content: pwd, height: 190, width: 336}, {onFinish: resetPwdSet, onClose: resetPwdUnset});
	}
}

function olvidoUsuario()
{
	if (!gproc) {
		var usr = '<div id="dialog">';
		usr += '<table width="100%" cellpadding="0" cellspacing="0"><tr><td colspan="2"><img src="/images/PRH_small.png" /></td><td id="usr-note" class="note" align="right" valign="bottom">';
		usr += '</td></tr><tr><td colspan="3" height="20"></td></tr>';
		usr += '<tr><td align="right" height="30">E-mail:</td><td width="15"></td><td><input type="text" class="inputText" name="email" id="email" maxlength="100" /></td></tr>';
		usr += '<tr><td align="right" height="26">Apellido:</td><td></td><td><input type="text" class="inputText" name="apellido" id="apellido" maxlength="50" /></td></tr>';
		usr += '<tr><td align="right" height="26">Nombre:</td><td></td><td><input type="text" class="inputText" name="nombre" id="nombre" maxlength="100" /></td></tr></table>';
		usr += '<a href="javascript:resetUsr()" id="resetUsrLink" class="button-ok" style="position:absolute; left: 133px; top: 216px">CAMBIAR MI USUARIO</a>';
		usr += '</div>';
		
		Shadowbox.open({player: 'html', content: usr, height: 216, width: 336}, {onFinish: resetUsrSet, onClose: resetUsrUnset});
	}
}

function openSite(addr)
{
	window.open(addr, '');
}

function perfil()
{
	if (!loggedIn()) {
		login(true, perfil);
	} else {
		document.location.href = '/postulante/perfil';
	}
}

function resetPwd()
{
	var u = YAHOO.util.Dom.get('userName').value;
	var e = YAHOO.util.Dom.get('email').value;
	if (u == "" | e == "") {
		YAHOO.util.Dom.get('pwd-note').innerHTML = 'Por favor, complete<br />los datos requeridos';
		YAHOO.util.Dom.addClass('pwd-note', 'error');
	} else {
		if (!gproc) {
			gproc = true;
			YAHOO.util.Dom.get('pwd-note').innerHTML = '<img src="/images/ajax16.gif" width="16" height="16" style="vertical-align: middle;" /> Se est&aacute; procesando<br />su solicitud...';
			YAHOO.util.Dom.removeClass('pwd-note', 'error');
			AJAX();
			XMLHttp.onreadystatechange = resetPwdState;
			XMLHttp.open('GET', '/portal/pwd.code/u/' + encodeURIComponent(u) + '/e/' + encodeURIComponent(e), true);
			XMLHttp.send(null);
		}
	}
}

function resetPwdNow()
{
	if (!loggedIn()) {
		login(true, resetPwdNow);
	} else {
		document.location.href = '/postulante/cambiar.clave';
	}
}

function resetPwdSet()
{
	YAHOO.util.Dom.get('userName').focus();
	YAHOO.util.Event.addListener('shadowbox', 'keypress', autoOK, resetPwd);
	
	YAHOO.util.Dom.setStyle('resetPwdLink', 'opacity', 0);
	var anim = new YAHOO.util.Anim('resetPwdLink', {top: {to: 145}, opacity: {to: .5}}, .5, YAHOO.util.Easing.easeOut);
	anim.onComplete.subscribe(function(){var anim = new YAHOO.util.Anim('resetPwdLink', {top: {to: 152}}, .5, YAHOO.util.Easing.easeOut); anim.animate();});
	anim.animate();
	
	YAHOO.util.Dom.get('shadowbox_counter').innerHTML = '<b><a href="javascript:olvidoUsuario()">Olvid&eacute; tambi&eacute;n mi usuario</a></b>';
	
	resetPwdEnter = new mouseEnter('resetPwdLink', enter);
	resetPwdLeave = new mouseLeave('resetPwdLink', leave);
}

function resetPwdState()
{
	if (XMLHttp.readyState == 4) {
		var resetPwdError = false;
		if (XMLHttp.status == 200) {
			var data = XMLHttp.responseText.split('|');
			if (parseInt(data[0]) > 0) {
				document.location.href = '/portal/cambiar.ingreso/e/' + data[1];
			} else {
				resetPwdError = data[1];
			}
		} else {
			resetPwdError = 'Se ha producido un error<br />en el proceso de su solicitud';
		}
		if (resetPwdError) {
			YAHOO.util.Dom.get('pwd-note').innerHTML = resetPwdError;
			YAHOO.util.Dom.addClass('pwd-note', 'error');
		}
		gproc = false;
	}
}

function resetPwdUnset()
{
	YAHOO.util.Event.removeListener('shadowbox', 'keypress');
	if (resetPwdEnter) resetPwdEnter = resetPwdEnter.destroy();
	if (resetPwdLeave) resetPwdLeave = resetPwdLeave.destroy();
}

function resetUsr()
{
	var e = YAHOO.util.Dom.get('email').value;
	var a = YAHOO.util.Dom.get('apellido').value;
	var n = YAHOO.util.Dom.get('nombre').value;
	if (e == "" | a == "" | n == "") {
		YAHOO.util.Dom.get('usr-note').innerHTML = 'Por favor, complete<br />los datos requeridos';
		YAHOO.util.Dom.addClass('usr-note', 'error');
	} else {
		if (!gproc) {
			gproc = true;
			YAHOO.util.Dom.get('usr-note').innerHTML = '<img src="/images/ajax16.gif" width="16" height="16" style="vertical-align: middle;" /> Se est&aacute; procesando<br />su solicitud...';
			YAHOO.util.Dom.removeClass('usr-note', 'error');
			AJAX();
			XMLHttp.onreadystatechange = resetUsrState;
			XMLHttp.open('GET', '/portal/usr.code/e/' + encodeURIComponent(e) + '/a/' + encodeURIComponent(a) + '/n/' + encodeURIComponent(n), true);
			XMLHttp.send(null);
		}
	}
}

function resetUsrSet()
{
	YAHOO.util.Dom.get('email').focus();
	YAHOO.util.Event.addListener(['apellido', 'nombre'], 'blur', ToUpper);
	YAHOO.util.Event.addListener('shadowbox', 'keypress', autoOK, resetUsr);
	
	YAHOO.util.Dom.setStyle('resetUsrLink', 'opacity', 0);
	var anim = new YAHOO.util.Anim('resetUsrLink', {top: {to: 171}, opacity: {to: .5}}, .5, YAHOO.util.Easing.easeOut);
	anim.onComplete.subscribe(function(){var anim = new YAHOO.util.Anim('resetUsrLink', {top: {to: 178}}, .5, YAHOO.util.Easing.easeOut); anim.animate();});
	anim.animate();

	resetUsrEnter = new mouseEnter('resetUsrLink', enter);
	resetUsrLeave = new mouseLeave('resetUsrLink', leave);
}

function resetUsrState()
{
	if (XMLHttp.readyState == 4) {
		var resetUsrError = false;
		if (XMLHttp.status == 200) {
			var data = XMLHttp.responseText.split('|');
			if (parseInt(data[0]) > 0) {
				document.location.href = '/portal/cambiar.ingreso/e/' + data[1];
			} else {
				resetUsrError = data[1];
			}
		} else {
			resetUsrError = 'Se ha producido un error<br />en el proceso de su solicitud';
		}
		if (resetUsrError) {
			YAHOO.util.Dom.get('usr-note').innerHTML = resetUsrError;
			YAHOO.util.Dom.addClass('usr-note', 'error');
		}
		gproc = false;
	}
}

function resetUsrUnset()
{
	YAHOO.util.Event.addListener('shadowbox', 'keypress');
	YAHOO.util.Event.removeListener(['apellido', 'nombre'], 'blur', ToUpper);
	if (resetUsrEnter) resetUsrEnter = resetUsrEnter.destroy();
	if (resetUsrLeave) resetPwdLeave = resetUsrLeave.destroy();
}

function suscripcion()
{
	if (!loggedIn()) {
		login(true, suscripcion);
	} else {
		document.location.href = '/postulante/suscribir';
	}
}
