/*
 * header script v1 amunoz
 * @ Animacion toolbar
 * @ pintar contenido mediante ajax de cada sección o universo
 * @ deteccion de skin por universo
 *
 */
 
var header={};
header.cgi={};
header.AjaxAppli={};


(function($){
header.AjaxAppli.timerJx 		= false;
header.AjaxAppli.timersearch 	= false;
/*
 * @ HeaderNavLi
 * - Control de eventos de Mouse
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 * - Ejecucion de las funciones al siguiente paso
 */
header.cgi.HeaderNavLi = function(){
	var $Jsnav = $('#head-nav ul.nav-ul li.Jsnav');
	var timer;
			
	if(!window.orientation){
		//** mouseenter
		$Jsnav.bind("mouseenter",function() {
			jThis = $(this);
			jThis.addClass('active-nav');
			timer = setTimeout("header.cgi.HeaderMenuFooter(jThis);",200);		
			//** 
		});
		//** fin mouseenter
		
		//** mouseleave
		$Jsnav.bind("mouseleave",function(){ 
			//Si salgo $jsnav elimino los tiempos de ejecucion
			clearTimeout(timer);
			clearTimeout(header.AjaxAppli.timerJx);
			
			jThis = $(this);
			jThis.removeClass('active-nav');
			jThis.removeClass('active-nav2');
			
			if(jThis.find("div.loading").length == 0) {
				jThis.find("div.head-menu-footer").hide();
			}else{
				jThis.find("div.head-menu-footer").remove();
			}
			
		});
		//** fin mouseleave		
	} 
	//$nav.bind("mouseleave");
};

/*
 * @ HeaderMenuFooter
 * - Control y carga de elementos Div
 * - Carga de funcion ajax para la extración de datos mediante un CGI php
 */
header.cgi.HeaderMenuFooter = function(jThis){
	if(jThis.find("div.head-menu-footer").length == 0) {
			jThis.addClass('active-nav2');
			jThis.find(".head-menu-footer").remove();
			jThis.append(
				'<div class="head-menu-footer" style="display:none;">'+
					'<div class="loading"><span class="loader">cargando...</span></div>'+
					'<div class="footer-col-left"></div>'+
					'<div class="footer-col-right"></div>'+
				'</div>'
			);
			
			jALinkID = jThis.find("a.A-link").attr("id").split("uni-");
			
			jThis.find("div.head-menu-footer").show();
			header.AjaxAppli.timerJx = setTimeout("header.cgi.Ajaxsuccess(jThis,jALinkID);",200);

	}
	else { 
		jThis.addClass('active-nav2');
		jThis.find("div.head-menu-footer").show();
	}

};


/*
 * @ Ajaxsuccess
 * - Conexion mediante ajax a nuestro CGI php
 * - success de contenido html (lectura y escritura)
 */
header.cgi.Ajaxsuccess = function(jThis,jALinkID){
	$.ajax({
		cache: true,
		data: "id="+jALinkID[1],
		url: '/cgi/dev/menu_head_content.php',
		dataType: "html",
		success:function(data){ 
			jThis.find("div.head-menu-footer").html($(data)).show();
			
			jThis.find('a.A-link:last').bind('blur',function(){
				jThis.removeClass('active-nav'); 
				jThis.removeClass('active-nav2');
				jThis.find("div.head-menu-footer").hide();
			}); 
		}
	});
};

/*============================================================================
 * Controlador Submenu
 *============================================================================
 * @HeaderSubmenu()
 * @HeaderLoadSubmenu()
\*/

/*\
 * @ HeaderSubmenu 
 * - Control de eventos de Mouse
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 * - Ejecucion de las funciones al siguiente paso
\*/
header.cgi.HeaderSubmenu = function(){
	var $JsSub = $('#head-nav #nav-submenu ul.submenu-ul li.submenu-li');
	var STimer;		
	if(!window.orientation){
		//** mouseenter
		$JsSub.bind("mouseenter",function() {
			jThis = $(this);
			jThis.find("a.sb-aa").addClass('sb-active');
			STimer = setTimeout("header.cgi.HeaderLoadSubmenu(jThis);",500);
		});
		//** fin mouseenter
		
		//** mouseleave
		$JsSub.bind("mouseleave",function(){ 
			clearTimeout(STimer);
			jThis = $(this);
			jThis.find("a").removeClass('sb-active');
			jThis.find("div.submenu-windows").hide();
		});
		//** fin mouseleave		
	} 
	//$nav.bind("mouseleave");
}; 
 
 
/*
 * @ HeaderLoadSubmenu
 * - Control de eventos de Mouse
 */
header.cgi.HeaderLoadSubmenu = function(jThis){
	
	/*Si contiene la caja submenu-windows la mostramos :)*/
	if(jThis.find("div.submenu-windows").length > 0) {
		jThis.find("div.submenu-windows").show();
	}
	//** 
};
 
 

/*============================================================================
 * Controlador de Carrito v.1 (aure)
 *============================================================================
 * @HeaderCarrito()
 * @HeaderLoadCarrito()
 * @ClickCarrito()
 * @AddCarrito()
 * @ViewAddCarrito()
 * @CloseViewAdd()
 * @AjaxCarritoSuccess()
 *
 */


/*
 * @ HeaderCarrito
 * - Puntero para ver el div que muestra el listado del carrito
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 */
header.cgi.HeaderCarrito = function(){
	var $Jshc 	= $('#head-carrito');
	var HCtimer;
			
	if(!window.orientation){
		//** click
		$Jshc.bind("click",function() { window.location = "/tienda/carrito/"; });
		//** fin click
			
		//** mouseenter
		$Jshc.bind("mouseenter",function() {
			jThis = $(this);
			jThis.addClass('active-hc');
			header.cgi.HeaderLoadCarrito(jThis);	
			//jThis.find("div#hc-content").show();
			//** 
		});
		//** fin mouseenter
		
		//** mouseleave
		$Jshc.bind("mouseleave",function(){ 
			//Si salgo $jsnav elimino los tiempos de ejecucion
			//clearTimeout(timer);
			//clearTimeout(header.AjaxAppli.timerJx);
			
			jThis = $(this);
			jThis.removeClass('active-hc');
			jThis.parent().find("div#hc-content").hide();
		});
		
		//** fin mouseleave		
	} 
	//$nav.bind("mouseleave");
};



/*
 * @ HeaderLoadCarrito
 * - Control y carga de elementos Div
 * - Carga de funcion ajax para la extración de datos mediante un CGI ASP
 */
header.cgi.HeaderLoadCarrito = function(jThis){
	if(jThis.find("div#hc-content").length == 0) {
		jThis.find("#hc-content").remove();
		jThis.append(
			'<div id="hc-content">'+
				'<ul id="hc-ul">'+
					'<li class="hc-li">Cargando datos de su Carrito.. espere un momento</li>'+
				'</ul>'+
			'</div>'
		);
		jThis.find("div#hc-content").show();
		/*JData = cadena Post*/
		jData = 'ac=ajaxListado';
		header.AjaxAppli.timerJx = setTimeout("header.cgi.AjaxCarritoSuccess(jThis,jData);",200);
	}
	else { 
		jThis.find("div#hc-content").show();
	}
};



/*
 * @ HeaderCarrito
 * - Puntero para ver el div que muestra el listado del carrito
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 */
header.cgi.ClickCarrito = function(){
	var $JsCC = $('img.btonAdd, p.btonAdd');
	if(!window.orientation){
		//** click
		$JsCC.bind("click",function() { 
			$('#cuerpo').append('<div id="controler-cart"></div>');			
			pn	= $(this).attr('art'); 
			header.cgi.AddCarrito(pn);
			header.cgi.ViewAddCarrito(pn);
		});
		//** fin click
	} 
};


header.cgi.clickCarritoRedirect = function(){
	
	if(!window.orientation){
		//** click
		$('#head-carrito').bind("click",function() { 
			window.location = "http://www.dynos.es/tienda/carrito/";
		});
		//** fin click		
	}
};


/*
 * @ HeaderAddCarrito
 * - Puntero para ver el div que muestra el listado del carrito
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 */
header.cgi.AddCarrito = function(pn){
	jAThis = $('#head-carrito');
	if(pn){
		jAThis.find("#hc-content").remove();
		jAThis.append(
			'<div id="hc-content">'+
				'<ul id="hc-ul">'+
					'<li class="hc-detalles">Actualizando el carrito</li>'+
				'</ul>'+
			'</div>'
		);
		jAThis.find("div#hc-content").show();		
		/*JData = cadena Post*/
		jDatas = 'ac=ajaxAddArt&pn='+pn+'';
		header.AjaxAppli.timerJx = setTimeout("header.cgi.AjaxCarritoSuccess(jAThis,jDatas);",200);
	}
};

/*
 * @ ViewAddCarrito
 * - Puntero para ver el div que muestra la informacion del artículo añadido
 * - SetTimeout en los eventos de raton ajustando las salidas y las entradas al contenido
 */
header.cgi.ViewAddCarrito= function(pn){
	jThis = $('#controler-cart');
	if(pn){
		jThis.find("#action-cart").remove();
		jThis.append(
			'<div id="cart-overlay"></div>'+
			'<div id="action-cart">'+
				'<strong class="ac-strong">Insertando articulo al carrito. Espere...</strong>'+
			'</div>'
		);
		jThis.find("div#cart-overlay").show();
		jThis.find("div#action-cart").show();		
		/*JData = cadena Post*/
		jData = 'ac=ajaxViewArt&pn='+pn+'';
		header.cgi.AjaxCarritoSuccess(jThis,jData);
	}
};

/*
 * @ CloseViewAdd
 * - Cierra la ventana creada tras añadir un articulo al carrito
 */
header.cgi.CloseViewAdd=function(){
	$JsSeg = $('img.ac-b-iz');
	$("#controler-cart").remove();
};
				
/*
 * @ AjaxCarritoSuccess
 * - Conexion mediante ajax a nuestro CGI ASP -> ajax.shop.asp
 * - success de contenido html (lectura y escritura)
 * JAjaxAC -> ac=ajaxViewArt&pn=prueba -> se manda la cadena
 */
header.cgi.AjaxCarritoSuccess = function(jThis,JAjaxAC){
	$.ajax({
		cache: true,
		data: JAjaxAC,
		type: "POST",
		url: '/cgi/dev/ajax.shop.asp',
		dataType: "html",
		success:function(data){ 
			jThis.html($(data));
		}
	});
};


/*============================================================================
 * Controlador SearhControler v.1 (2011)
 *============================================================================
 * @SearhControler()
\*/

/*\
 * @ SearhControler
 * - Control de eventos mediante la busqueda y escritura en el buscador de la tienda
 * - params{lend=3,url=x}
\*/

$.fn.SearchControler = function(){
	
	/* params */
	var params = $.extend({
		chars 	: 3,
		ajaxUrl : '/cgi/dev/ajax.php' 
	}, params);
	
	/* this */
	var divSearch = $(this);
	var KEY = {
		UP: 38,
		DOWN: 40,
		LEFT:37,
		RIGHT:39,
		DEL: 46,
		TAB: 9,
		RETURN: 13,
		ESC: 27,
		COMMA: 188,
		PAGEUP: 33,
		PAGEDOWN: 34,
		BACKSPACE: 8
	};
	
	if(!window.orientation){	
	
		//** keyup
		divSearch.bind('keyup', function(e){
			/**/
			inputString = divSearch.val();

			/*clear time*/
			clearTimeout(header.AjaxAppli.timersearch);
			
			/*Control de teclado*/
			if (e.keyCode == KEY.DOWN || e.keyCode == KEY.RIGHT){
				e.preventDefault();
				//$('#search-suggestion').find('li.search-li a').click();				
				
			}else if(e.keyCode == KEY.UP || e.keyCode == KEY.LEFT){
				e.preventDefault();

			}else if(e.keyCode == KEY.RETURN){
				$('#search-suggestion').remove();	
			}else{
				
				if(inputString.length < params.chars) {
					$('#search-suggestion').remove();
				} else if(inputString.length >= params.chars) {	
					/**/	
					jData = 'ac=ajaxSuggestion&phrase='+divSearch.val()+'';
					/*Funcion*/				
					header.AjaxAppli.timersearch = setTimeout("header.cgi.AjaxSearchSuccess(jData);",500);
					//header.cgi.AjaxSearchSuccess(divSearch,jData);	
				}
			}
		})
		//** fin keyup
	
	}
	
	/*function */
	$(document).click(function(){
		$('#search-suggestion').remove();
	});	
	
};

header.cgi.AjaxSearchSuccess = function(JAjaxAC){
	var jthis = $('#filter-key input[name="key"]');
	$.ajax({
		cache: true,
		data: JAjaxAC,
		type: "GET",
		url: '/cgi/dev/search_head_content.php',
		dataType: "html",
		success:function(data){ 
			if($('#search-suggestion').length === 0) {
				/*Inserto el contenido despues del this*/
				jthis.after(data);
			}else{
				/*Elimino las sugerencias para pintar el contenido*/
				$('#search-suggestion').remove();			
				/*Inserto el contenido despues del this*/
				jthis.after(data);
			}			
									

		}
	});
};


})(jQuery);



/*
 * Ejecucion de funciones HEADER.CGI
 * Revision 2011 (aure)
 * -> controladora de Menu de tienda
 * -> controladora listado carrito
 * -> controladora añadir articulos al carrito
 */

$(function(){ 
	/*
	 * ($).HeaderNavLi()
	 * + Funcion que detecteca el puntero del raton al pasar por (main) ejecuta el ajax de informacion
	 */	
	header.cgi.HeaderNavLi();
	header.cgi.HeaderSubmenu();
	/*
	 * ($).HeaderCarrito()
	 * + Puntero ejecuta ajax para ver listado de articulos de un carrito
	 * + ajax.shop.asp  -> $_Get['ac'] = ajaxListado
	 */
	//header.cgi.HeaderCarrito();
	
	/*
	 * ($).ClickCarrito()
	 * + Ejecucion de click para añadir articulo al carrito
	 * + ajax.shop.asp  -> $_Get['ac'] = ajaxAddArt -> añade articulo al carrito
	 * + ajax.shop.asp  -> $_Get['ac'] = ajaxViewArt -> muestra informacion del articulo añadido
	 */
	//header.cgi.ClickCarrito();
	header.cgi.clickCarritoRedirect();	
	
	
});



