// JavaScript Document

var selectorready = true;
var numPerPage = 5;
var loadingtext = "<img src=\"/gfx/gfx_loading4.gif\" alt=\"\" />"

$(document).ready( function() {
	
	$("input[type=checkbox]").checkbox({
		cls: "custom-checkbox",
		empty: "/gfx/empty.png"
	});
	
	setTimeout("$(\"#selector_container input[type=checkbox]\").attr(\"disabled\", false)", 10);
	
	$("#selector_container ul li").hover(
		  function() {
				$("#selector_container ul li").removeClass("on");
				$(this).addClass("on");
			},
		  function() {
			  $(this).removeClass("on");
			});
						
	
	$("#selector_container ul li").click(function() {
		$(this).find("input[type=checkbox]").trigger("click");											  
	});
	
	
	
	$("#selector_container input[type=checkbox]").click(function() { 
		
		if(selectorready) {
			
			$("#results_functions, #results_footer").hide();
			
			//Sweet animation
			var animationDuration = 800;
			
			if(!$(this).parent().hasClass("selected")) {
				$(this).parent().TransferTo({to:'#selection_items',className:'TransferAnimation', duration: animationDuration});
				CartAdd(this.id, $(this).parent().find("label").text(), animationDuration);
			} else {
				
				// Animate if checkbox was clicked directly (by checking if cart item exists still)
				if($('a[rel='+this.id+']').length != 0) {
					$("#selection_items").TransferTo({to:$(this).parent(),className:'TransferAnimation', duration: animationDuration});
					CartRemove(this.id);
				}
			}
			
			
			$(this).parent().toggleClass("selected");
			
			$("#results").slideUp( function() {$(this).html(""); } );	
			
			//Selected Categories
			var catlist = "";
			var datalist = "";
			
			$("#selector_container").find("ul.datacat li.selected input[type=checkbox]").each(function(i) {
				catlist += "|" + $(this).attr("value");
			});
			$("#selector_container").find("ul.datadef li.selected input[type=checkbox]").each(function(i) {
				datalist += "|" + $(this).attr("value");
			});
			
			
			CountResults(datalist, catlist);
		}
		
		return true;
	});	
	
	
	////////////////////	CART FUNCTIONS	////////////////////
	function CartAdd(elemid, value, delay) {
		
		// Delay until animation is complete
		setTimeout(function() {
					
						///		
						var i=$("#selection_items ul li").size();
			
						if(i==0) {
							//hide empty text and show empty list	
							$("#emptytext").hide();
							$("#selection_items").removeClass("inactive");
							$("#selection_cart").show();
						}		
								
						$('<li><div class="p1">' + value + '</div><div class="p2"><a href="#" rel="' + elemid + '" class="del_selection"><img src="/gfx/btn_del.gif" alt="delete this selection" class="del_selection_btn" /></a></div></li>').appendTo("#selection_items ul");
						
						
						
						$("a.del_selection").unbind("click", null);

						$("a.del_selection").bind("click", function() {
													   
													   var elemid = $(this).attr("rel");	

														if(selectorready) {
													   	$(this).parent().parent().remove();
														
														$("#selection_items").TransferTo({to:$("#" + elemid),className:'TransferAnimation', duration: 800});
														setTimeout(function() { 
																			$("#" + elemid).trigger("click"); 
																			var i=$("#selection_items ul li").size();
			
																			if(i==0) {
																				//hide empty text and show empty list	
																				$("#emptytext").show();
																				$("#selection_items").addClass("inactive");
																				$("#selection_cart").hide();
																			}
																			
																			}, 800);
													   }
													   
													   return false;
												});
						
						$("a.del_selection img").bind("mouseenter", function() {$(this).attr("src", "/gfx/btn_del_over.gif");});
						$("a.del_selection img").bind("mouseleave", function() {$(this).attr("src", "/gfx/btn_del.gif");});
					
							///
							}, 
							
							delay);
		
		
	}
	
	
	function CartRemove(elemid) {
		
		if(!$("#" + elemid).attr("disabled")) {
			$("a[rel= " + elemid + "]").parent().parent().remove();
			
			var i=$("#selection_items ul li").size();
			
			if(i==0) {
				//hide empty text and show empty list	
				$("#emptytext").show();
				$("#selection_items").addClass("inactive");
				$("#selection_cart").hide();
			}
		}
	}
	//////////////////////////////////////////////////////////////
	
	
	$("#resultsBtn").click(function() {
			
		$sort = $("#sort_results").val();
		
		
		if($("#results").is(":visible")) {
			$("#results").slideUp( function() {$(this).html(""); } );
			$("#results_functions, #results_footer").hide();

			return false;
		}
		else {
			
			//if zero results then user is a deacon
			if ($("#result_count").html()=="0") {
				
				TB_show("Alert!","/__ajax/__noresults_alert.html?height=125&amp;width=470",false);
				return false;
			} 
			
			//Selected Categories
			var catlist = "";
			var datalist = "";
			
			$("#selector_container").find("ul.datacat li.selected input[type=checkbox]").each(function(i) {
				catlist += "|" + $(this).attr("value");
			});
			$("#selector_container").find("ul.datadef li.selected input[type=checkbox]").each(function(i) {
				datalist += "|" + $(this).attr("value");
			});
			
			selectorready = false;
			$("#results_loading").html(loadingtext);
			//$("#results").html(loadingtext).slideToggle();
			
			GetResults(datalist, catlist, 1, $sort);
			
			$("#results_functions, #results_footer").show();
			
			
			return false;
		}
	});
	$("#btn_help").click(function() { 
		$("#helppanel").fadeIn("slow");
		return false;
	});
	$("#btn_close").click(function() { 
		$("#helppanel").fadeOut("slow");
		return false;
	});
	
	
	//Get total results
	$.ajax({
	   type: "POST",
	   url: "/__ajax/__selector_functions.asp",
	   data: "cat=1&action=counttotal",
	   success: function(msg){
			$("#result_count").html(msg); 
	   }
	 });
	
	$("#sort_results").change(function() {
		
		$(this).blur();
		$("#resultsBtn").focus();
		
		// we only need to do something if results are already displayed
		if($("#results").is(":visible")) {
			$("#results").slideUp( function() {
												$(this).html("");
												$("#resultsBtn").trigger('click');
											});
									}
		
	});   

	
	// Slideshow
	$("#panel2").html("").flash({
		src: '/swf/slideshow.swf',
		width: 580,
		height: 230,
		wmode: "transparent"
	});
		
		
});

function CountResults(datalist, catlist) {
	
	// Delay disabling otherwise it does it before the state can change to checked - crazy stuff
	setTimeout("$(\"#selector_container input[type=checkbox]\").attr(\"disabled\", true)", 10);
	
	$("#resultsBtn").attr("disabled", true);
	//if ($("#resultsBtn").attr("disabled")) {
		$("#resultCount").html("<img src=\"/gfx/gfx_loading5.gif\" alt=\"loading\" />");
	//}
	//else {
		//$("#resultCount").html("<img src=\"/gfx/gfx_loading6.gif\" alt=\"loading\" align=\"absmiddle\"  />");
	//}
			
	selectorready = false;
	
	$.ajax({
	   type: "POST",
	   url: "/__ajax/__selector_functions.asp",
	   data: "cat=1&datalist=" + datalist + "&catlist=" + catlist + "&action=countfilter",
	   success: function(msg){
			//$("#result_count").html(msg); 
			$("#resultCount").html(msg);
			if(msg!=0) {
				$("#resultsBtn").attr("disabled", false);
			}
			else
			{
				$("#resultsBtn").attr("disabled", true);
			}
			selectorready = true;
			$("#selector_container input[type=checkbox]").removeAttr("disabled");
	   }
	 });	
}

function GetResults(datalist, catlist, startpage, sortby) {
	
	//Startpage enables a different page to start on
	
	
	if(startpage > 0) { startpage--; }
	
	$.ajax({
	   type: "POST",
	   url: "/__ajax/__selector_functions.asp",
	   data: "cat=1&datalist=" + datalist + "&catlist=" + catlist + "&sort=" + sortby + "&page=" + startpage + "&action=results",
	  success: function(msg){
		  
			// END OF PAGING
			$("#results_loading").html("");
			$("#results").html(msg).slideDown(450, function() {
				$.scrollTo("#resultstable", 450);
			}); 
			
			var c2kcodes = "";
			UpdateStockAndPrice();
			
			StoreResultsState(datalist, catlist, startpage+1, sortby)
			
			// RESULTS PAGING
			var totalresults = $("#TotalResults").val();
			
			var currentPage = startpage;
			var numPages = Math.ceil(totalresults / numPerPage);
			
			var $pager = $("<div id=\"paging\"></div>");
			
			for (var page = 0; page < numPages; page++) { 
			
					$("<span class=\"page-number\" id=\"page" + (page + 1) + "\">" + (page + 1) + "</span>").bind("click", {"newPage": page}, function(event) { 
						currentPage = event.data["newPage"]+1;
						GetResults(datalist, catlist, currentPage, sortby)
						//alert(currentPage);
						$(this).addClass("active").siblings().removeClass("active"); 
					}).appendTo($pager); 
			
			} 
			
			$('<div class="cleaner"><img src="/gfx/shim_blank.gif" alt="" /></div>').prependTo($pager);
			
			$pager.find("span.page-number").eq(startpage).addClass("active"); 
			$pager.insertAfter("table.paginated");
			
			
			$("#PagePrevious").unbind("click").bind("click", function() {
				$("#page" + startpage).trigger("click");
			});
			
			$("#PageNext").unbind("click").bind("click", function() {
				$("#page" + parseInt(startpage+2)).trigger("click");
			});
			
			
			
			selectorready = true;
				
			
			$("#BackToOptions").click(function() {
				$("#resultsBtn").trigger("click");
				setTimeout(function() {$.scrollTo("#top", 450);}, 600);	
				return false;
			});
	   }
	 });	
}



function StoreResultsState(datalist, catlist, page, sortby) {

	$.ajax({
	   type: "POST",
	   url: "/__ajax/__store_result_state.asp",
	   data: "cat=1&datalist=" + datalist + "&catlist=" + catlist + "&page=" + page + "&sort=" + sortby + "&action=STORE_STATE",
	   success: function(msg){
			//do nothing for now
	   }
	 });
	
}




