var $ = jQuery.noConflict();

$(document).ready(function(){
	var $avocats = new Array();
	var $avocatsVisibles = new Array();
	var $pages = new Array();
	
	var $droit = "";
	var $keyword = "";
	
	var nbPages = 0;
	var show_per_page = 25;
	var current_page = 0;
	var nombre = 0;
	
	if(MyVars.cat != "general")
	{
		show_per_page = 999999;
	}
	
	if($("#avocats-wrap").length)
	{
		$.ajax({
			url: MyVars.ajaxurl,
			type: "POST",
			dataType: "html",
			data: {action: "getAvocats", cat: MyVars.cat, lang: MyVars.lang, base: MyVars.base},
			cache: true,
			success: function(data){
				$("#tableau-avocats tbody").html(data);
				$("#tableau-avocats tbody tr").each(function(){
					$avocats.push($(this).clone());
					//$.extend(true, $avocatsVisibles, $avocats);
					$avocatsVisibles.push($(this).clone());
				});
				$keyword = $("#search-field").val();
				$droit = $("#select-droit").val();
				filtrer();
			},
			error: function(xhr, err){alert(xhr.responseText);}
		});
	}
	
	if($("#avocats-search").length)
	{
		//KEYWORD
		$("#search-field").keyup(function(){
			$keyword = $(this).val();
			current_page = 0;
			filtrer();
		});
		
		
		//SELECT DROIT
		$("#select-droit").change(function(){
			$droit = $(this).val();
			current_page = 0;
			filtrer();
		});
		
		
		//SELECT AVOCATS PAR PAGE
		$("#select-pager").val(show_per_page);
		
		$("#select-pager").change(function(){
			show_per_page = $(this).val();
			current_page = 0;
			filtrer();
		});
	}
	
	if($("#next").length && $("#previous").length)
	{
		if(current_page == (nbPages - 1))
			$("#next").addClass("disabled");
		
		else if(current_page == 0)
			$("#previous").addClass("disabled");
		
		$("#next").click(function(e){
		
			e.preventDefault();
			
			if(!$(this).hasClass("disabled"))
			{
				current_page++;
			}
			
			if(current_page == (nbPages - 1))
			{
				$(this).attr("class", "disabled");
			}
			
			if($("#previous").hasClass("disabled") && current_page != 0)
			{
				$("#previous").removeAttr("class");
			}
			
			filtrer();
			
		});
		
		$("#previous").click(function(e){
		
			e.preventDefault();
		
			if(!$(this).hasClass("disabled"))
			{
				current_page--;
			}
			
			if(current_page == 0)
			{
				$(this).attr("class", "disabled");
			}
			
			if($("#next").hasClass("disabled") && current_page != (nbPages - 1))
			{
				$("#next").removeAttr("class");
			}
			
			filtrer();
		});
	}
	
	
	//FONCTION FILTRE
	function filtrer()
	{
		$("#tableau-avocats tbody").html("");
		
		$avocatsVisibles.length = 0;
		
		//KEYWORDS
		if($keyword)
		{
			$.each($avocats, function(index, value){
				if(value.html().toLowerCase().indexOf($keyword.toLowerCase()) >= 0)
				{
					$avocatsVisibles.push(value.clone());
				}
			});
		}
		else
		{
			//$.extend(true, $avocatsVisibles, $avocats);
			$.each($avocats, function(index, value)
			{
				$avocatsVisibles[index] = value.clone();
			});
		}
		
		
		/*$.each($avocatsVisibles, function(index, value){
			$("#tableau-avocats tbody").append(value);
		});*/
		
		
		//DROIT
		if($droit)
		{
			/*$.each($avocatsVisibles, function(index, value){
				if(value.html().toLowerCase().indexOf($droit.toLowerCase()) >= 0)
				{
					//$("#tableau-avocats tbody").append(value);
				}
				else
				{
					//$avocatsVisibles[index].length = 0;
					$.grep($avocatsVisibles, 
				}
			});*/
			$avocatsVisibles = $.grep($avocatsVisibles, function(value){
				return value.html().toLowerCase().indexOf($droit.toLowerCase()) >= 0;
			});
			//console.dir($avocatsVisibles);
			
		}
		else
		{
			/*$.each($avocatsVisibles, function(index, value){
				$("#tableau-avocats tbody").append(value);
			});*/
		}
		
		//PAGINATION
		nombre = $avocatsVisibles.length;
		nbPages = Math.ceil(nombre/show_per_page);
		//console.log("nb pages : " + nbPages);
		$pages.length = 0;
		var page = 0;
		
		for(i = 0; i < nombre; i++)
		{
			if(i == 0)
			{
				$pages[i] = new Array();
			}
			
			if((i != 0) && (i % show_per_page == 0))
			{
				page++;
				$pages[page] = new Array();
			}
			
			$pages[page].push($avocatsVisibles[i].clone());
		}
		
		if($pages.length != 0)
		{
			$.each($pages[current_page], function(index, value){
				$("#tableau-avocats tbody").append(value.clone());
			});
		}
		
		$("#tableau-avocats tbody tr").removeClass("odd");
		$("#tableau-avocats tbody tr:odd").addClass("odd");
		
		if(nbPages == 1)
		{
			$("#next").removeClass().addClass("disabled");
			$("#previous").removeClass().addClass("disabled");
		}
		else
		{
			if(current_page == (nbPages - 1))
				$("#next").removeClass().addClass("disabled");
			else
				$("#next").removeClass("disabled");
				
			if(current_page == 0)
				$("#previous").removeClass().addClass("disabled");
			else
				$("#previous").removeClass("disabled");
		}

	}
	
	function cloneObject(theObject)
	{
		for(i in theObject)
		{
			if(typeof theObject[i] == "source")
			{
				this[i] = new cloneObject(theObject[i]);
			}
			else
			{
				this[i] = theObject[i];
			}
		}
	}
	
	
	//**********************************************************
	//**********************************************************
	//*******************SIDEBAR --- SIDEBAR********************
	
	if($("#avocats-sidebar-wrap").length)
	{
		$.ajax({
			url: MyVars.ajaxurl,
			type: "POST",
			dataType: "html",
			data: {action: "getAvocatsSidebar", lang: MyVars.lang, base: MyVars.base},
			cache: true,
			success: function(data){
				$("#avocats-sidebar-tableau tbody").html(data);
				$("#avocats-sidebar-tableau tbody tr").each(function(){
					$avocats.push($(this).clone());
					//$.extend(true, $avocatsVisibles, $avocats);
					$avocatsVisibles.push($(this).clone());
				});
				filtrer_sidebar();
				$("#avocats-sidebar-tableau tbody").html("");
			},
			error: function(xhr, err){alert(xhr.responseText);}
		});
	}
	
	if($("#avocats-sidebar-search-wrap").length)
	{
		//KEYWORD
		$("#avocats-sidebar-field").keyup(function(){
			$keyword = $(this).val();
			filtrer_sidebar();
		});
		
		
		//SELECT DROIT
		$("#avocats-sidebar-select").change(function(){
			$droit = $(this).val();
			filtrer_sidebar();
		});
	}
	
	function filtrer_sidebar()
	{
		$("#avocats-sidebar-tableau tbody").html("");
		
		$avocatsVisibles.length = 0;
		
		//KEYWORDS
		if($keyword != "")
		{
			$.each($avocats, function(index, value){
				if(value.html().toLowerCase().indexOf($keyword.toLowerCase()) >= 0)
				{
					$avocatsVisibles.push(value.clone());
				}
			});
		}
		else
		{
			//$.extend(true, $avocatsVisibles, $avocats);
			$.each($avocats, function(index, value)
			{
				$avocatsVisibles[index] = value.clone();
			});
		}
		
		
		//DROIT
		if($droit != "")
		{
			$avocatsVisibles = $.grep($avocatsVisibles, function(value){
				return value.html().toLowerCase().indexOf($droit.toLowerCase()) >= 0;
			});
		}
		
		$.each($avocatsVisibles, function(index, value){
			$("#avocats-sidebar-tableau tbody").append(value.clone());
		});
		
		$("#avocats-sidebar-tableau tbody tr").removeClass("odd");
		$("#avocats-sidebar-tableau tbody tr:odd").addClass("odd");

	}

});
