var view = {
	//	[per page, per row, width, height]
	small: [24, 4, 110, ''],
	med:   [10, 2, 120, ''],
	large: [3, 1, 210, '']
};
		
var pl = {
	params: params,
	pl_imgpath: 'images/pl_images/',
	xmlsrc: 'az_pl_src.php',
	imgpath: '',
	loading1: 'images/pl_images/ajax_loader.gif',
	loading2: 'images/pl_images/ajax_loader2.gif',
	noimage: 'noimage.gif',
	sortby: 'name',
	sort_dir: 'asc',
	limitstart: 0,
	view: 'med',
	result: 0,
	total: 0
};

$(function(){
	$("ul.az_tabs li").click(
		function() { 
			$("ul.az_tabs li").removeClass("az_tabs_sel");
			$(this).addClass("az_tabs_sel");
			pl.params = pl.params.replace(/page=+[a-zA-Z0-9-_\s].+\.php/, 'page=' + this.id);
			$("a", this).blur();
			pl.view = 'med';
			pl.limitstart = 0;
			retrieveContent(true);
		}
	);
	
	retrieveContent = function(pl_reload){
		if(pl_reload==true){
			$("#pl_menu").html(showPLmenu());
		}
		$.ajax({
			url: pl.xmlsrc,
			type: "get",
			dataType: "xml",
			data: pl.params+"&task=showproducts&view="+pl.view+"&sort="+pl.sortby+"&sortdir="+pl.sort_dir+"&limitstart="+pl.limitstart+"&limit="+view[pl.view][0],
			beforeSend: function(){				
				$("#pl_content").html('<div id="pl_loading"></div>');
				$("#pl_loading").html('<img src="'+pl.loading2+'" border="0" />');
				$("#pl_loading").append('<br />Page is loading...');
			},
			error: function(){
				$("#pl_content").html('&nbsp;Error loading XML document');
			},
			success: function(response){
				parseData(response, pl_reload);
			}
		});
	};
	
	parseData = function(xml, pl_reload) {
		var pl_data = new Array();
		var gallery = $(xml).find("gallery");
		
		pl.sortby = gallery.attr("sortby");
		pl.sort_dir = gallery.attr("sortdir");
		pl.limitstart = gallery.attr("limitstart");
		pl.view = gallery.attr("view");
		pl.result = gallery.attr("result");
		pl.total = gallery.attr("total");
		pl.imgpath = gallery.attr("path");
		
		$("product", xml).each(function(i){
			pl_data[i] = new Array();
			pl_data[i]['id'] = $("id", this).text() ? $("id", this).text() : 0;
			pl_data[i]['title'] = $("title", this).text() ? $("title", this).text() : "no data";
			pl_data[i]['desc'] = $("description", this).text()? $("description", this).text() : "no data";
			pl_data[i]['image'] = $("image", this).text() ? $("image", this).text() : pl.noimage;
			pl_data[i]['price'] = $("price", this).text() ? $("price", this).text() : 0;
			pl_data[i]['sprice'] = $("sprice", this).text() ? $("sprice", this).text() : 0;
			pl_data[i]['cart'] = $("cart", this).text() ? $("cart", this).text() : 0;
		});
		
		if(pl_reload==true){
			initPL_slider();
			setPLmenuData();
		}
		setPagenav();
		setSelectedView();
		setSortValue();
		showPLcontent(pl_data);
	};
	
	initPL_slider = function() {
		var steps = Math.ceil(parseInt(pl.total)/parseInt(view[pl.view][0]))-1;
		var contentwidth = (parseInt($("#pl_content").innerWidth())+100);
		
		$("#pl_slider").slider({
			min: 0,
			max: (steps*parseInt(view[pl.view][0])),
			handle: ".pl_handle",
			steps: steps,
			change: function(event, ui){
				var dir = "";
				
				if(ui.value > pl.limitstart) dir = "-";
				pl.limitstart = ui.value;
				$("#pl_content").animate({ 
					left: dir+contentwidth+"px",
					opacity: 0
				  }, 500, 'linear', function(){
					  $("#pl_content").css({left:"0px", opacity:1});
					  retrieveContent(false);
				  }
				);
			}
		});
		
		if(steps < 1){
			$("#pl_slider").slider("disable");
		}
	}
	
	setPLmenuData = function(){
		var steps = Math.ceil(parseInt(pl.total)/parseInt(view[pl.view][0]))-1;
		
		$("#pl_prev").click(function(){
			if(pl.limitstart > 0){
				$("#pl_slider").slider("moveTo", "-="+view[pl.view][0]);
			}
		});
		$("#pl_next").click(function(){
			if(steps > 0){				
				if(pl.limitstart < (parseInt(view[pl.view][0])*steps)){
					$("#pl_slider").slider("moveTo", "+="+view[pl.view][0]);
				}
			}
		});
		
		$('td#pl_viewnum a').click(function() {
			if(this.title != pl.view){
				$('td#pl_viewnum a').removeClass("pl_viewnum_sel");
				$(this).addClass("pl_viewnum_sel");
				pl.view = this.title;
				pl.limitstart = 0;
				retrieveContent(true);
			}
			$(this).blur();
		});		
		$('td#pl_viewbuttons a').click(function() {
			if(this.title != pl.view){
				pl.view = this.title;
				pl.limitstart = 0;
				retrieveContent(true);
			}
			$(this).blur();
		});
		
		$("#pl_sort").change(function(){
			pl.sortby = this.value;
			pl.limitstart = 0;
			retrieveContent(true);
		});
		
		$("#pl_sortdir").click(function(){
			if(this.title == 'asc'){
				pl.sort_dir = "desc";
				$(this).attr({title: "desc"});
				$("img", this).attr({src: pl.pl_imgpath+"desc.gif"});
			}else{
				pl.sort_dir = "asc";
				$(this).attr({title: "asc"});
				$("img", this).attr({src: pl.pl_imgpath+"asc.gif"});
			}
			pl.limitstart = 0;
			retrieveContent(true);
			$(this).blur();
		});
	};
	
	addtocart = function(id) {
		$("#cart"+id).hide(1);
		$.ajax({
			url: pl.xmlsrc,
			type: "get",
			dataType: "xml",
			data: pl.params+"&task=addtocart&pid="+id,
			beforeSend: function(){
				$("#err"+id).show(1);
			},
			error: function(){
				$("#err"+id).show(1, function(){
					$(this).html('Error loading XML document');
				}).fadeOut(4000, function(){
					$(this).html(getLoading1());
					$("#cart"+id).show(1)
				});
			},
			success: function(xml){
				var result = parseInt($(xml).find("result").text());
				var azcart_top = $(xml).find("carttext").text();
				if(result > 0){
					$("#cart"+id).show(1).html('('+result + ') in cart');
					$("#err"+id).hide(1);
					$("#az_cart_top").html(azcart_top);
				}else{
					$("#err"+id).html('Error: Not added');
				}
				$("#err"+id).fadeOut(4000, function(){
					$(this).html(getLoading1());
					$("#cart"+id).show(1)
				});
			}
		});
	}
	
	createImage = function(obj) {
		var newimg = new Image();
		for(var i in obj){
			$(newimg).attr(i, obj[i]);
		}
		$(newimg).load();
		
		return newimg;
	};
	
	setPagenav = function() {
		var pagenav = ' of ' + pl.total;
		var result = pl.result;
		var total = pl.total;
		var limit = view[pl.view][0];
		var limitstart = pl.limitstart;
		pagenav = (total > 0 ? (parseInt(limitstart)+1) : '0') + ' - ' + (parseInt(result)+parseInt(limitstart)) + pagenav;
		$("#page_result").html(pagenav);
	}
	
	setSortValue = function() {
		$("#pl_sort").val(pl.sortby);
	};
	
	setSelectedView = function() {
		var display = view[pl.view][0];
		
		$('td#pl_viewnum').find('a').each(function(){
			if($(this).text() == display){
				$(this).addClass("pl_viewnum_sel");
			}else{
				$(this).removeClass("pl_viewnum_sel");
			}
		});
	}
	
	retrieveContent(true);
});