$(document).ready(function() {

	$('#h3Filtres').click(function() {  
		if($('#filtres').hasClass('close')){
				$('#filtres').removeClass('close');
		}
		else{
			 $('#filtres').addClass('close');
		 }
		 if($(this).hasClass('actif')){
			 $(this).removeClass('actif');
		 }
		 else{
			 $(this).addClass('actif');
		 }
	});

	$('#murTel ul.mur-mobile-liste li').each(function(){
		$(this).mouseover(function(){
			$(this).find('a.btnBuy span').stop().animate({"backgroundPosition":"0 -34px"}, 0);
			$(this).find('a.btnBuy').stop().animate({"width":"130px"}, 200);
		}).mouseleave(function(){
			$(this).find('a.btnBuy span').stop().animate({"backgroundPosition":"0 0"}, 0);
			$(this).find('a.btnBuy').stop().animate({"width":"50px"}, 500);
		});
	});
	 
	/* ********************************* NAV MUR MOBILES */
	var main_critere 	= null;
	var second_critere	= null;
	var aCriteres 		= 
		{
			1 : {
				type 		: "marque",
				value 		: "",
				position 	: ""
			},
			2 : {
				type 		: "design",
				value 		: "",
				position 	: ""
			},
			3 : {
				type 		: "prix",
				value 		: "",
				position 	: ""
			},
			4 : {
				type 		: "categorie",
				value 		: "",
				position 	: ""
			},
			5 : {
				type 		: "promo",
				value 		: "",
				position 	: ""
			}
	}
	initParams();
	if( $("#nav-mur-mobiles a").length) {
		$('#nav-mur-mobiles a').click(function() {
			$(this).toggleClass("on").parent().siblings().children().removeClass("on");
			wall_filter(this.id);
			return false;
		});
	}
	if( $("#nav-mur-mobiles select").length ) {
		
		var aSelect = $("#nav-mur-mobiles select");
		
		for(var i = 0; i < aSelect.length; i++){
			$("#"+aSelect[i].id).change(
				function(){
					wall_filter(this.id);
				}
			);
		}
	}
	function initParams(){
		var url = document.location.href;
		var regUrl = new RegExp("(telephones-portables)", "g");
		
		if(url.match(regUrl)){
			
			if($("#hidden_criteres").val()!=""){
				eval($("#hidden_criteres").val());
				
				for(var i in aCriteres){
					if(aCriteres[i]['position'] == "main")
						main_critere = aCriteres[i]['type'];
					if(aCriteres[i]['position'] == "second")
						second_critere = aCriteres[i]['type'];
				}
	
				buildUrlAction();
			}
		}
	}
	
	function wall_filter(id){
		var regSelect 	= new RegExp("(^s_)", "g");
		var regBouton	= new RegExp("(^bouton-)", "g");
		var formSubmit 	= false;
		var action 		= $('#form_mur_mobiles').attr("action");
		
		if(id.match(regSelect)){
			var type 		= id.replace(regSelect, "");
		}else{
			var type 		= id.replace(regBouton, "");
		}
		
		var format_type = formatType(type);
		
		if(format_type=="prix" || format_type=="marque"){
			var value = $("#"+id).val();
		}else{
			var value = ($("#bouton-"+type).hasClass("on")) ? type : "";
		}
		
		if(value=="") del_critere(format_type);
	
		updatePile(format_type, value);
		
		if(format_type!="promo" && (main_critere==null || checkSearch("main", format_type))){
			action += buildUrlAction();
			reloadWall(action);
		}else if(format_type!="promo" && (second_critere==null || checkSearch("second", format_type))){
			action += buildUrlAction();
			reloadWall(action);
		}else{
			$.ajax({
	 			type: "POST",
	 			url : "/ajax_load.php",
	 			data: "node=murTel&tab="+JSON.stringify(aCriteres),
	 			method:"GET",
	 			success: function(response){
					if(value!=""){
						$(".pagination").hide();
					}else{
						$(".pagination").show();
					}
					
					if($("#ui-mur-mobiles > .mur-mobile-liste").length>0){
						$("#ui-mur-mobiles > .mur-mobile-liste").html(response);
					}else{
						$(".alternative").remove();
						$(".message").remove();
						$("#ui-mur-mobiles > #nav-mur-mobiles").after(response);
					}
				}
	 		});		
		}
	}
	
	function reloadWall(action){
		$("#hidden_criteres").val(JSON.stringify(aCriteres));
		
		var lastLetter = action.substr(action.length-1, 1);
	
		if(lastLetter!="/" && (main_critere!=null || second_critere!=null)){
			action += ".html";
		}else if(lastLetter!="/"){
			action += "/";
		}
		
		$('#form_mur_mobiles').attr("action", action);	
		$('#form_mur_mobiles').submit();	
	}
	
	function changeClass(){
		var aMobiles = $(".mur-mobile-liste > li:visible");
		
		aMobiles.each(
			function(i){		
				if(i%4==0){
					if(!$("#"+aMobiles[i].id).hasClass("vente-flash") && !$("#"+aMobiles[i].id).hasClass("pack-promo") && !$("#"+aMobiles[i].id).hasClass("first"))
						$("#"+aMobiles[i].id).addClass("first");
				}else{
					if(!$("#"+aMobiles[i].id).hasClass("vente-flash") && !$("#"+aMobiles[i].id).hasClass("pack-promo") && $("#"+aMobiles[i].id).hasClass("first"))
						$("#"+aMobiles[i].id).removeClass("first");	
				}
			}
		);
	}
	
	function buildUrlAction(){
		
		var action 		= "";
	
		for(var i in aCriteres){
			var regDesign 	= new RegExp("(design-)", "g");
			value 			= aCriteres[i]['value'].replace(regDesign, "");
	
			if(value!="" && value!="promo" && value!="promo-pack"){
				if(aCriteres[i]['type'] == main_critere || main_critere==null){
					main_critere 				= aCriteres[i]['type'];	
					aCriteres[i]['position'] 	= "main";
					
					if(main_critere=="marque"){
						action 					+= (action=="") ? "/telephones-mobiles-"+value+"/" : "-"+value;
					}else{
						
						action += "/mobiles";
						switch(main_critere){
							case "design":
							case "categorie":
								action += "-format";
							break;
						}
					
						action += "-"+value;
					}
				}else if(aCriteres[i]['type'] == second_critere || second_critere==null){
					if(action==""){
						second_critere				= main_critere;
						main_critere				= aCriteres[i]['type'];	
						aCriteres[i]['position'] 	= "main";
						if(main_critere=="marque"){
							action 					+= "/telephones-mobiles-"+value+"/";
						}else{
							action += "/mobiles-"; 
							switch(second_critere){
								case "design":
								case "categorie":
									action += "format-";
								break;
							}
							
							action 					+= value;
						}
					}else{
						second_critere 				= aCriteres[i]['type'];
	
						var lastLetter = action.substr(action.length-1, 1);
						if(lastLetter=="/"){
							action += "mobiles"; 
							switch(second_critere){
								case "design":
								case "categorie":
									action += "-format";
								break;
							}
						}
							
						
							
						aCriteres[i]['position'] 	= "second";
						action 					   += "-"+value;
					}
				}
			}
			
			if(main_critere!=aCriteres[i]['type'] && second_critere!=aCriteres[i]['type'])
				aCriteres[i]['position'] 	= "";
		}
		
		if(main_critere==second_critere && main_critere!=null){
			second_critere = null;
			action = buildUrlAction();
		}
		
		return action;
	}
	
	function del_critere(type){
		if(main_critere == type) 
			main_critere = null; 
		else if(second_critere == type) 
			second_critere = null;
	}
	
	function pile(type, value){
		if(!checkCriteres(type)){
			var nextID 						= oLength() + 1;
			
			if(!aCriteres)    aCriteres 	= new Object();
			
			aCriteres[nextID] 				= new Object();
			aCriteres[nextID]['type']		= type;
			aCriteres[nextID]['value']		= value;
			aCriteres[nextID]['position']	= "";
		}
	}
	
	function updatePile(type, value){
		for(var i in aCriteres){
			if(aCriteres[i]['type']==type){
				aCriteres[i]['value'] = value;
				return true;
			}
		}
		
		pile(type, value);
		return true;
	}
	
	
	function formatType(type){
		switch(type){
			case "prix": 				return "prix"; 		break;
			case "marque": 				return "marque"; 	break;
			case "promo":				
			case "promo-pack": 			return "promo";		break;
			case "classique":
			case "android":
			case "techno":
			case "smartphone":			return "categorie"; break;
			case "design-barre":
			case "design-clapet":
			case "design-coulissant":
			case "design-tactile": 		return "design"; 	break;
		}
	}
	
	function checkSearch(type, search){
		if(search==eval(type+"_critere")){
			return true;
		}
		return false;
	}
	
	/**
	 * Nouvelle pagination
	 */
	
	/**
	 * Variables
	 */
	var nbItems = $('.telephone').length;
	var nbItemsPerPage = 5000;
	var nbPages = Math.ceil(nbItems/nbItemsPerPage);
	var pageEnCours = 1;
	
	/**
	 * Display: none sur les éléments qui ne sont pas dans la première page
	 */
	function genererListe(start, end) {
		genererPagination();
		var i=0;
		$('.telephone').each(function(){
			if (i>=start && i<end) {
				$(this).css('display', 'block');
				
			}
			else {
				$(this).css('display', 'none');
			}
			i++;
		});
	}
	/**
	 * Gère la pagination
	 */
	function genererPagination() {
		$('.numPagination').css('font-weight', 'normal');
		$('.numPagination').click(function() {
			$('#top_page_' + pageEnCours).css('font-weight', 'bold');
			$('#bottom_page_' + pageEnCours).css('font-weight', 'bold');
		});
		if (pageEnCours <= 1) {
			$('.pagination_precedent').css('visibility', 'hidden');
		}
		else {
			$('.pagination_precedent').css('visibility', 'visible');
		}
		if (pageEnCours == $(".numPagination_a").length) {
			$('.pagination_suivant').css('visibility', 'hidden');
		}
		else {
			$('.pagination_suivant').css('visibility', 'visible');
		}
	}
	
	 /**
	  * Gestion des boutons pagination - suivant / précédent 
	  */
	 $('.pagination_precedent').click(function() {
	 	pageEnCours = pageEnCours - 1;
	 	var start = nbItemsPerPage*(pageEnCours-1);
	 	var end = start + nbItemsPerPage;
	 	genererListe(start, end);
	 });
	 $('.pagination_suivant').click(function() {
	 	pageEnCours = pageEnCours + 1;
	 	var start = nbItemsPerPage*(pageEnCours-1);
	 	var end = start + nbItemsPerPage;
	 	genererListe(start, end);
	 });
	 /**
	  * Action - changement de pagination
	  */
	 $('.numPagination').click(function(){
	 	var id 	= this.id;
	 	var aID	= id.split("_");
	 	var numPage	= parseInt(aID[2]);
	 	var start = nbItemsPerPage*(numPage-1);
	 	var end = start + nbItemsPerPage;
	 	pageEnCours = numPage;
	 	genererListe(start, end);
	 });
	 
	 /**
	  * Lors d'un clic sur le <li> de chaque téléphone, on veut renvoyer vers la fiche article 
	  */
	 $('.telephone').click(function() {
		 var url = $(this).children('.inner').children('.floatright').children('.prix').children('.btnBuy').attr('href');
		 $(location).attr('href',url);
	 });
	 
	/**
	 * Initialisation de la liste de téléphones
	 */
	genererListe(0, nbItemsPerPage);
	
});//doc ready
