/************************************************************************
@file controller.js
Copyright Ilke Benson 2011
@author Chema Viera Godoy (chema@ilkebenson.com)
Revisado por: _$Author_$ 
Revisión: _$Rev_$
@date _$Date_$
Diseñado por: Chema Viera Godoy
Fecha de Diseño: 31/07/2011
**************************************************************************/
//URLs
var URL_PAXDEMO = "index.php";
var TAG_INICIO = "htmlBd_18";
//kingy
kingy = new Comunicador('kingy','kingy');
kingy.NOMBRE_COOKIE = 'kingy_aparecido';	//Nombre de la cookie que indica si kingy ha aparecido.
kingy.TIEMPO_PERMANENCIA = 10;			//Segundos de permanencia del mensaje.
kingy.CSS_APARECER = 'kingyAparecer';
kingy.CSS_ESTAR = 'kingyEstar';
kingy.CSS_HABLAR = 'kingyHablar';
kingy.CSS_AVISAR = 'kingyAvisar';
kingy.CSS_ALERTAR = 'kingyAlertar';
kingy.CSS_DORMIR = 'kingyDormir';
kingy.TIEMPO_DORMIR = 1*60;			//Tiempo en segundos. (10 min) 

document.documentElement.style.overflowY='scroll';
function altaUsuario(){
/**- carga código html en la web desde la base de datos
**/
      var parametros = new Array();
      //parametros.push(new Parametro('id',id));
      iu.ajax.irA("crearUsuario.crear", parametros);
}
function buscadorUsuarios(){
/**- muestra en pantalla los criterios y busca los usuarios
**/
      var parametros = new Array();
       iu.ajax.irA("buscadorUsuarios.buscar", parametros);
}
function cargaHTMLCompleta(respuesta){
/**- 
	Manejador de la llamada asíncrona de petición de HTML de BBDD
**/
	var tagHtml = 'html'; 
	if (respuesta.paxTipo.substr(0,5)== "Excep"){
		iu.alertar(respuesta);
		return;
	}
	if (respuesta.paxTipo == "Respuesta"){
		var html = respuesta.lista[0].Importar[0].html; //sólo viene uno
		var tit = respuesta.lista[0].Importar[0].titulo; //cargamos el titulo, que en la carga de artículos viene de BBDD
		//ahora incrustamos el html
		$('#'+tagHtml).html(html);
		//e indicamos el título;
		$(document).attr('title',tit);
		//Y obtenemos el mensaje para kingy --> TODO: ESTO DEBERÍA SER CAMPO DE BBDD EN VEZ DE UN CAMPO DEL HTML ************************
		
		//Y hacemos el window.location
		window.location.href = "#"+tit;

		var mensaje = $('#mensaje').attr('value');
		kingy.hablar(mensaje);
	}
}
function cargaRutaHashCompleta(respuesta){
/**- 
	Manejador de la llamada asíncrona de petición de HTML de BBDD
**/
	var idEnlace = ''; //Definimos el valor del enlace para su ejecución
	if(!respuesta){ //Por si acaso...
		iu.alertar('RESPUESTA FALSA -> SIN HASH DEFINIDO (A NULO)');
		return;
	}
	if (respuesta.paxTipo.substr(0,5)== "Excep"){
		iu.alertar(respuesta);
		return;
	}
	if (respuesta.paxTipo == "Respuesta"){
		//Montamos el enlace (id para llamar al ejecutar)
		idEnlace = respuesta.lista[0].tipoEnlace;
		if(respuesta.lista[0].tipoEnlace == 'htmlBd'){ //Es artículo de Base de Datos
			idEnlace += '_'+respuesta.lista[0].idContenido;
		}
		if(respuesta.lista[0].idCategoria != 0) idEnlace += '_'+respuesta.lista[0].idCategoria;
		//ahora llamamos al ejecutar
		ejecutar(idEnlace);
		return;
		
	}
	else { //Si sale esto, sí que es raro, debe pasar algo (ni excepción, ni respuesta...)
		 kingy.alertar('MMMM, strange things... RARO...RARO');
	} 
}
function cargaInterfazCompleta(respuesta){
/**- 
	Manejador de la llamada asíncrona de petición de la interfaz xml
**/
/*	var tagHtml = 'html'; 
	if (respuesta.paxTipo.substr(0,5)== "Excep"){
		iu.alertar(respuesta);
		return;
	}
	if (respuesta.paxTipo == "RespuestaInterfaz"){
*/
//		var xhtml = respuesta.interfaz; //sólo viene uno
		alert("PAUSA");
		iu.cargarInterfazEnPlantilla(respuesta);
		//ahora incrustamos el html
		//$('#'+tagHtml).html(html);
		//e indicamos el título;
		//$(document).attr('title',tit);
		//Y obtenemos el mensaje para kingy --> TODO: ESTO DEBERÍA SER CAMPO DE BBDD EN VEZ DE UN CAMPO DEL HTML ************************
		
		//Y hacemos el window.location
		//window.location.href = "#"+tit;

		//var mensaje = $('#mensaje').attr('value');
		//kingy.hablar(mensaje);
//	}
}
function contacto(){
/**-	Muestra el formulario de contacto
**/
	var plInterfaz = 'contactar';
 	//var parametros = new Array();
	//Tenemos que cargar la interfaz que le corresponda dentro de la plantilla en la web 
	iu.vaciarContenedor();	//1º vaciamos el contenedor
	//Ahora vamos a obtener la interfaz XML. Pero llamamos al servidor vía ajax para obtener respuesta xml con el contenido de la interfaz
	iu.cargarInterfazEnPlantilla(plInterfaz); //Y cargamos el xhtml de la interfaz en la plantilla
}
function datosUsuario(){
/**- muestra por pantalla los datos del usuario de la session
**/
      var parametros = new Array();
       iu.ajax.irA("datosUsuario.verDatos", parametros);
}
function desplegar_menu() {
  if( $('#desplegadoMenu').value == "0" ) {
      $('#desplegadoMenu').value = 1;
      var url = document.URL;
      var menu = false;
      var partes = url.split("&");
      for(var pos=0;pos<partes.length; pos++) {
	if(partes[pos].substring(0,4) == 'menu'){
	    var parametro = partes[pos].split("=");
	    menu = parametro[1];
	}
      }
      if(menu != false){
	var campo = "submenu_" + menu;
	$('#'+campo).style.display = 'block';
	var flecha_bajar = "bajar_" + menu;
	$('#'+flecha_bajar).style.display = 'none';
	var flecha_subir = "subir_" + menu;
	$('#'+flecha_subir).style.display = 'inline';
      }
  }
}
function editarUsuario(){
/**- muestra por pantalla los datos del usuario de la session
**/
      var parametros = new Array();
       iu.ajax.irA("editarUsuario.editar", parametros);
}
function ejecutar(id){ //Función para hacer la llamada a la función expecificada en el id del selector pulsado
	var partes = id.split('_');
	var dobles = partes[0].split('-'); //Si llevaran un guión al final, lo eliminamos del nombre (llevarían tantos guiones como se repitiera) 
	var funcion = dobles[0]+"(";
	for(var x=1;x<partes.length;x++){
	    funcion +=  partes[x] + ",";			
	}
	if(partes.length > 1) {
		
	   	funcion = funcion.substring(0,funcion.length-1);
	}
	funcion = funcion + ")";
	eval(funcion);
}
function ejecutarHash(hash){ //Función que carga la interfaz correspondiente al hash indicado (título de la página codificado)
	//alert(hash);
 	var parametros = new Array();
      	parametros.push(new Parametro('hash',hash));
      	iu.ajax.pedir("importarHTML.obtenerRutaHash",parametros,PAX2_XML, PAX2_ASYNC,'cargaRutaHashCompleta',null,false); //Llamada asíncrona
      	//var respuesta = iu.ajax.pedir("importarHTML.obtenerRutaHash",parametros,PAX2_XML, PAX2_SYNC,null,null); //Llamada asíncrona
	//cargaRutaHashCompleta(respuesta);
}
function facebook(id) {
/**- Carga asíncronamente el plugin de facebook
**/
      if(id == 'facebook-vacio'){
	  var facebook = _$('facebook-vacio');
	  facebook.setAttribute('id','facebook');
	  var facebookVisible = _$('facebookVisible');
	  var frame = document.createElement('iframe');
	  frame.setAttribute('src','http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fpages%2FBadajoz-Spain%2FIlke-Benson%2F182796788427854&width=240&colorscheme=light&show_faces=true&stream=false&header=false&height=485');
	  frame.setAttribute('scrolling','no');
	  frame.setAttribute('frameborder','0');
	  frame.setAttribute('style','border:none; overflow:hidden; width:240px; height:485px;');
	  frame.setAttribute('allowTransparency','true');
	  facebookVisible.appendChild(frame);
	  facebook.appendChild(facebookVisible);
	  _$('facebookVisible').style.display= 'block';
	  _$('flecha_arriba_1').style.display= 'none';
	  _$('flecha_arriba_2').style.display= 'none';
	  _$('flecha_abajo_1').style.display= 'inline';
	  _$('flecha_abajo_2').style.display= 'inline';
      }
      if(id == 'facebook-cargado'){
	  var facebook = _$('facebook-cargado');
	  facebook.setAttribute('id','facebook');
	  _$('facebookVisible').style.display= 'block';
	  _$('flecha_arriba_1').style.display= 'none';
	  _$('flecha_arriba_2').style.display= 'none';
	  _$('flecha_abajo_1').style.display= 'inline';
	  _$('flecha_abajo_2').style.display= 'inline';
      }
      if(id == 'facebook'){ //posición con el twitter mostrándose
	  var facebook = _$('facebook');
	  facebook.setAttribute('id','facebook-cargado');
	  _$('facebookVisible').style.display= 'none';
	  _$('flecha_arriba_1').style.display= 'inline';
	  _$('flecha_arriba_2').style.display= 'inline';
	  _$('flecha_abajo_1').style.display= 'none';
	  _$('flecha_abajo_2').style.display= 'none';
      }
}
function htmlBd(id, menu){
/**- 
	Carga una xml en el div de interfaz y  desde la base de datos vía ajax (de manera asíncrona)
	@param id Id del artículo de BBDD a cargar.
	@param menu del menú del artículo (para desplegarlo).
**/
	var plInterfaz = 'importarHTML';
	//Tenemos que cargar la interfaz que le corresponda dentro de la plantilla en la web (todavía sin datos)
	iu.vaciarContenedor();	//Siempre, y por seguridad, antes de nada vaciamos el contenedor
	//Ahora vamos a obtener la interfaz XML. Pero llamamos al servidor vía ajax para obtener respuesta xml con el contenido de la interfaz
	iu.cargarInterfazEnPlantilla(plInterfaz); //Y cargamos el xhtml de la interfaz en la plantilla
	//Y llamamos a los datos del artículo
 	var parametros = new Array();
      	parametros.push(new Parametro('id',id));
	//Ahora tenemos que cargar el contenido dentro de la interfaz. Obtenemos el contenido (de manera asíncrona, para poder seguir trabajando).
      	iu.ajax.pedir("importarHTML.importarAjax",parametros,PAX2_XML, PAX2_ASYNC,'cargaHTMLCompleta',null);
      	//var respuesta = iu.ajax.pedir("importarHTML.importarAjax",parametros,PAX2_XML,PAX2_SYNC,null,null);
	//cargaHTMLCompleta(respuesta);
}
function importarHtmlBdGral(nombre){
/**- carga código html en la web desde la base de datos
**/
//    alert(nombre);
      var parametros = new Array();
      parametros.push(new Parametro('id',id));
      iu.ajax.irA("importarHTML.importar", parametros);
}
function login(menu) {
/**- Gestiona el acceso a la zona de usuarios
**/
	//Mostramos el span del logout
	//_$('logout').style.display= 'block';
	//alert("insertando HTML");
	$('#caminoMigas').before('<div id="logout" class="desconectar">Salir (<span id="nombreLogin">sfdlhf</span>)</div>');
	//alert("hecho");
	var iu = new Login();
	iu.acceder();
      	var parametros = new Array();
      	parametros.push(new Parametro('menu',menu));
      	//iu.ajax.irA("login.ver", parametros);
}
function logout() {
/**- Gestiona la desconexión de la Zona de Clientes
**/
	//Ocultamos el span del logout
	//_$('logout').style.display= 'none';
	//_$('posCaminoMigas').style.display= 'none';
	//var xx = $('#logout').html();
	//alert(xx);
	$('div').remove('.desconectar');
	//$('#logout').removeClass('desconectar');
	//$('#logout').addClass('invisible');
      	var parametros = new Array();
      	iu.ajax.irA("login.salir", parametros);
}
function menuPrincipal(){
/**-	Vuelve al menú principal
**/
	iu.ajax.irA("menuPrincipal.ver", null);
}
function mostrarIzq() {
    _$('izquierdaOculto').style.display = 'none';
    _$('division_izquierda').style.display = 'block';
}
function mostrarMenu(id) {
	//Ocultamos TODOS los menús
	$('.tituloMenuArriba').hide();
	$('.menuFlechaArriba').hide();
	$('.tituloMenuAbajo').show();
	$('.menuFlechaAbajo').show();
	$('.submenu').hide();
	//Y mostramos el que se haya pulsado
  	var partes = id.split('_');
	var flechaArriba = "subir_"+partes[1];
	var tituloMenuArriba = "tituloMenuArriba_"+partes[1];
	var flechaAbajo = "bajar_"+partes[1];
	var tituloMenuAbajo = "tituloMenuAbajo_"+partes[1];
  	var campo = "submenu_"+partes[1];
	$('#'+flechaAbajo).hide();
	$('#'+tituloMenuAbajo).hide();
	$('#'+flechaArriba).show();
	$('#'+tituloMenuArriba).show();
	$('#'+campo).show();
}
function ocultarIzq() {
    _$('izquierdaOculto').style.display = 'inline';
    _$('division_izquierda').style.display = 'none';
}
function ocultarMenu(id) {
    	var partes = id.split('_');
    	var menu = "submenu_" + partes[1];
	$('#'+menu).hide(); 
    	var flecha_arriba = "subir_" + partes[1];
	$('#'+flecha_arriba).hide(); 
    	var flecha_abajo = "bajar_" + partes[1];
	$('#'+flecha_abajo).show();
	$('#'+id).hide();
    	var titulo_arriba = "tituloMenuArriba_" + partes[1];
	$('#'+titulo_arriba).hide();
    	var titulo_abajo = "tituloMenuAbajo_" + partes[1];
	$('#'+titulo_abajo).show();
	 
}
function salir(){
/**-	Elimina la sesión y vuelve a la página de login.
**/
	var parametros = new Array();
	
	iu.ajax.irA("login.salir", parametros);
}
function trabaja() {
/**- Gestiona la subida del currículum y de su nombre
**/
	//alert('vamos');
	var PL = 'trabajar';
 	//var parametros = new Array();
	//Tenemos que cargar la interfaz que le corresponda dentro de la plantilla en la web 
	iu.vaciarContenedor();	//1º vaciamos el contenedor
	iu.cargarInterfazEnPlantilla(PL); //Y cargamos el html de la interfaz en la plantilla
	//Como no tenemos datos que cargar, lo dejamos tal cual
}
function twitter(id) {
/**- Carga asíncronamente el plugin de twitter
**/  
      if(id == 'twitter-vacio'){
	  var twitter = _$('twitter-vacio');
	  twitter.setAttribute('id','twitter');
	  var twitterVisible = _$('twitterVisible');
	  var imagBaja = document.createElement('img');
	  imagBaja.setAttribute('src','iu/img/flechaMenuDown.png');
	  imagBaja.setAttribute('class','embedTwitter');
	  twitterVisible.appendChild(imagBaja);
	  var frame = document.createElement('iframe');
	  frame.setAttribute('src','iu/twitter.php');
	  frame.setAttribute('frameborder','0');
	  frame.setAttribute('style','border:none; overflow:hidden; width:250px; height:485px; margin:0px; padding:0px;');
	  frame.setAttribute('allowTransparency','true');
	  twitterVisible.appendChild(frame);
	  _$('twitterVisible').style.display= 'block';
	  _$('flecha_arriba_3').style.display= 'none';
	  _$('flecha_arriba_4').style.display= 'none';
	  _$('flecha_abajo_3').style.display= 'inline';
	  _$('flecha_abajo_4').style.display= 'inline';
      } 
      if(id == 'twitter-cargado'){
	  var twitter = _$('twitter-cargado');
	  twitter.setAttribute('id','twitter');
	  _$('twitterVisible').style.display= 'block';
	  _$('flecha_arriba_3').style.display= 'none';
	  _$('flecha_arriba_4').style.display= 'none';
	  _$('flecha_abajo_3').style.display= 'inline';
	  _$('flecha_abajo_4').style.display= 'inline';
      }
      if(id == 'twitter'){ //posición con el twitter mostrándose
	  var twitter = _$('twitter');
	  twitter.setAttribute('id','twitter-cargado');
	  _$('twitterVisible').style.display= 'none';
	  _$('flecha_arriba_3').style.display= 'inline';
	  _$('flecha_arriba_4').style.display= 'inline';
	  _$('flecha_abajo_3').style.display= 'none';
	  _$('flecha_abajo_4').style.display= 'none';
      }
}
function verAviso(){
/**-	Muestra los avisos del interfaz, si los hay
**/
	if (_$('avisoTitulo').value != ''){
		textoAviso = _$('avisoTitulo').value+"\n"+_$('avisoTexto').value;
		kingy.avisar('Eh! ¡tienes un aviso!');
		alert(textoAviso);
	}
}
function verCurriculums(menu) {
    var parametros = new Array();
    parametros.push(new Parametro('menu',menu));
    iu.ajax.irA("curriculum.ver",parametros);
}
function zonaCliente(menu) {
/**- Gestiona el acceso a la zona de usuarios
**/
      	var parametros = new Array();
//alert("zona clientes");
      	parametros.push(new Parametro('menu',menu));
	//alert("insertando HTML");
	//alert("hecho");
	var iu = new Login();
	iu.acceder();
      	//iu.ajax.irA("cliente.iniciar", parametros);
}
function controlarURL() {
/**- Controla el arranque del sistema (1ª vez)
**/
	var tit = $(document).attr('title');
	var href = $(location).attr('href');
	var partes =  $(location).attr('href').split('#');
	if(partes[1] == undefined){ //Estaremos en la página principal
		ejecutar(TAG_INICIO);
		return;
	}
	hash =  iu.urldecode(partes[1]);
	if(hash == "sitemap") {
 		var parametros = new Array();
      		var hecho = iu.ajax.pedir("sitemap.generarArchivoXML",parametros,PAX2_XML,PAX2_SYNC,null,null);
		//alert(hecho);
	//	ejecutar('htmlBd_18');
	}
	else{
		if(tit != hash){ //Se ha generado un evento que cambia hash -> se debe "recargar" la página
			ejecutarHash(hash);
		}
	}
}
function controlarWindow() {
/**- Controla la resolución de la pantalla del cliente para cargar los enlaces sociales según resolución
**/
	var alto = $(window).height(); 
	var ancho = $(window).width();
//	alert('Alto: '+alto+' y Ancho:'+ancho);
	if(ancho > 1250){ //Estamos en buena resolución -> Cargamos el nuevo css (social.css)
		$(".twitter").removeClass("twitterIzquierda");
		$(".twitter").addClass("twitterDerecha");
		var idTwitter = $(".twitter").attr('id');
		twitter(idTwitter);
	}
	else { //Debemos eliminar el css de social y cargar el de paxDemo
		$(".twitter").removeClass("twitterDerecha");
		$(".twitter").addClass("twitterIzquierda");
	}
}

//Reglas de Interfaz de Usuario que se cargan al principio de la carga DOM
$(document).ready(function(){
	controlarWindow(); 
	iu.iniciar();
	controlarURL(); //por si acaso indican hash al ppio
	$(window) 
		.bind('hashchange', function (){ //Si hubiera algún cambio de hash
			controlarURL(); //por si acaso indican hash al ppio
		})
		.resize(function (){ //Si hubiera algún cambio de resolución en la ventana
			controlarWindow(); 
		})
	//Comienzo de la app gral. En este ready cargamos las reglas generales del site (iu, comunicador, etc...)
	$('.menuOperacion')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.enlace')
		//.click(function()
		.live('click',function(){ //***************** HAY QUE PASAR A DELEGATE
			ejecutar(this.id);
		}
	);
	$('.peque')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.grande')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.formacion')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.consultoria')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.desarrollo')
		.click(function(){
			ejecutar(this.id);
		}
	);
	$('.facebook')
		.click(function(){
			facebook(this.id);
		}
	);
	$('.twitter')
		.click(function(){
			twitter(this.id);
		}
	);
	$('.menuFlechaArriba')
		.click(function(){
			ocultarMenu(this.id);
		}
	);
	$('.menuFlechaAbajo')
		.click(function(){
			mostrarMenu(this.id);
		}
	);
	$('.tituloMenuArriba')
		.click(function(){
			ocultarMenu(this.id);
		}
	);
	$('.tituloMenuAbajo')
		.click(function(){
			mostrarMenu(this.id);
		}
	);
	$('.flechaOcultarMenu')
		.click(function(){
			ocultarIzq();
		}
	);
	$('#izquierdaOculto')
		.click(function(){
			mostrarIzq();
		}
	);
	$('#web')
		.mousemove(function(){
			desplegar_menu();
		}
	);
	$('#logout')
		.click(function(){
			if(confirm("¿Está seguro que desea desconectarse de la Zona de Clientes?"))	
				logout();		
			else alert("Nos quedamos");
		});
}); 
//},false); 


