var view = {
	//	[col, img width, img height]
	grid: [2, 90, '']
};

var display = [4, 8, 12];
		
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,
	limit: display[1],
	max_count: 6,
	view: 'grid',
	result: 0,
	total: 0,
	debug_mode: pl_debug
};

$(function(){
	if(pl.debug_mode == 1) {
		$('#pl_container').append('<div id="pl_debug"></div>');
	}
	
	retrieveContent = function(pl_reload){
		var data_params = pl.params+"&task=showproducts&sort="+pl.sortby+"&sortdir="+pl.sort_dir+"&limitstart="+pl.limitstart+"&limit="+pl.limit;
		
		if(pl_reload==true){
			$("#pl_menu").html(showPLmenu());
		}
		$.ajax({
			url: pl.xmlsrc,
			type: "get",
			dataType: "xml",
			data: data_params,
			beforeSend: function(){				
				$("#pl_content").html('<div id="pl_loading"></div>');
				$("#pl_loading").html('<img src="'+pl.loading2+'" border="0" alt="">');
			},
			error: function(){
				$("#pl_content").html('&nbsp;'+pl_label['ERROR1']);
			},
			success: function(response){
				parseData(response, pl_reload);
			}
		});
		
		if(pl.debug_mode == 1) {
			$('#pl_debug').html('Request URl: ' + pl.xmlsrc + '?' + data_params);
		}
	};
	
	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.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;
			pl_data[i]['reviews'] = $("reviews", this).text() ? $("reviews", this).text() : '';
			pl_data[i]['attribute'] = $("cart", this).text() ? $("attribute", this).text() : 0;
		});
		
		setPagenav();
		getPageValue();
		if(pl_reload==true){
			setPLmenuData();
		}
		showPLcontent(pl_data);
	};
	
	setPLmenuData = function(){
		var steps = Math.ceil(parseInt(pl.total)/parseInt(pl.limit))-1;
		
		$("#pl_sort").change(function(){
			pl.sortby = this.value;
			pl.limitstart = 0;
			retrieveContent(true);
		});
		
		$("#pl_result").change(function(){
			pl.limit = this.value;
			pl.limitstart = 0;
			retrieveContent(true);
		});
				
		$("#pl_pagenav a.pl_nav").click(function(){
			var num = parseInt($(this).text())-1;
			pl.limitstart = parseInt(pl.limit*num);
			animateSlide();
			$(this).blur();
		});
		
		$("a#pl_next, a#pl_prev", "#pl_pagenav").click(function(){
			if(this.id == 'pl_next'){
				if(steps > 0 && pl.limitstart < parseInt(pl.limit*steps)){
					pl.limitstart = parseInt(pl.limitstart*1 + pl.limit*1);
					animateSlide();
				}
			}else{
				if(pl.limitstart > 0){
					pl.limitstart = parseInt(pl.limitstart - pl.limit);
					animateSlide();
				}
			}			
			$(this).blur();
		});
		
		$("#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_params) {
		var data_params = pl.params + '&task=addtocart' + (cart_params ? cart_params : '&pid='+id);
		$("#cart"+id+", .pl_pop_cart").hide(1);
		$.ajax({
			url: pl.xmlsrc,
			type: "get",
			dataType: "xml",
			data: data_params,
			beforeSend: function(){
				$("#err"+id+", #pl_pop_cart_loading").show(1);
			},
			error: function(){
				$("#err"+id+", #pl_pop_cart_loading").show(1, function(){
					$(this).html(pl_label['ERROR1']);
				}).fadeOut(4000, function(){
					$(this).html(getLoading1());
					$("#cart"+id+", .pl_pop_cart").show(1)
				});
			},
			success: function(xml){
				var result = parseInt($(xml).find("result").text());
				var azcart_top = $(xml).find("carttext").text();
				if(result > 0){
					$("#cart"+id+", .pl_pop_cart").show(1).html('('+result + ') ' + pl_label['IN_CART']);
					$("#err"+id+", #pl_pop_cart_loading").hide(1);
					$("#az_cart_top").html(azcart_top);
				}else{
					$("#err"+id+", #pl_pop_cart_loading").html(pl_label['ERROR2']);
				}
				$("#err"+id+", #pl_pop_cart_loading").fadeOut(4000, function(){
					$(this).html(getLoading1());
					$("#cart"+id+", .pl_pop_cart").show(1)
				});
			}
		});
		
		if(pl.debug_mode == 1) {
			$('#pl_debug').html('Request URl: ' + pl.xmlsrc + '?' + data_params);
		}
	}
	
	createImage = function(obj) {
		var newimg = new Image();
		for(var i in obj){
			$(newimg).attr(i, obj[i]);
		}
		$(newimg).load();
		
		return newimg;
	};
	
	setPagenav = function() {
		var total = pl.total;
		var limit = pl.limit;
		var steps = Math.ceil(parseInt(total)/parseInt(limit));		
		var next = '<li><a href="javascript:void(0);" id="pl_next" title="'+pl_label['NEXT']+'">'+pl_label['NEXT']+'</a></li>';
		var prev = '<li><a href="javascript:void(0);" id="pl_prev" title="'+pl_label['PREVIOUS']+'">'+pl_label['PREVIOUS']+'</a></li>';
		
		var pagenav = '';	
		
		if(total > 0){
			for(var x=((parseInt(pl.limitstart/limit)-(parseInt(pl.max_count/2)-1)) > 0 && steps > (pl.max_count-1) ? (parseInt(pl.limitstart/limit)-(parseInt(pl.max_count/2)-1)) : 0), y =0;x < steps && y < pl.max_count-1; x++,y++){
				pagenav += '<li><a href="javascript:void(0)" '+(x==parseInt(pl.limitstart/limit)? 'id="pl_nav_sel"' : '')+' class="pl_nav" title="'+(x+1)+'">' + (x+1) + '</a></li>';
			}
			
			if(parseInt(pl.limitstart/limit) > 0 && parseInt(pl.limitstart/limit) < steps-1){
				pagenav = prev + pagenav + (steps > 1 ? next : '');
			}else if(parseInt(pl.limitstart/limit) > 0 && parseInt(pl.limitstart/limit) == steps-1){
				pagenav = prev + pagenav;
			}else{
				pagenav = pagenav + (steps > 1 ? next : '');
			}
			$("#pl_pagenav").html(pagenav);
		}
	}
	
	getPageValue = function() {
		var pagenav = '<span id="pl_pages_txt">' + pl_label['PAGES'] + '</span>&nbsp; ';
		var steps = Math.ceil(parseInt(pl.total)/parseInt(pl.limit));
		var curpage = $('#pl_nav_sel').text();
		pagenav = pagenav + '<span id="pl_curpage_txt">' + curpage + '</span> ' + pl_label['FROM'] + ' <span id="pl_totalpage_txt">' + steps + '</span>';
		$("#page_result").html(pagenav);
	};
	
	animateSlide = function() {
		$("#pl_content").fadeOut(500, 
		  function(){
			$("#pl_content").fadeIn(1);
			retrieveContent(true);
		  }
		);
	}
		
	
	retrieveContent(true);
});