$(function(){
	initShoveler();
});


/*
$(window).load(function () {
	// Preload shoveler images when rest of page has loaded
	for(var sid in shoveler){
		if (typeof(shoveler[sid]['data']) != "undefined"){
			for(var i=0;i<shoveler[sid].data.length;i++){
				var img=shoveler.imagepath+shoveler[sid].data[i][2]+'.jpg';
				//$("<img>").attr("src",img).hide().appendTo($('body'));
				$("<img>").attr("src",img).css({display:'none'}).appendTo($('body'));
			}
		}
	}
});
*/


initShoveler = function() {
		
	this.equaliseHeight = function(sid) {
		shoveler[sid].h = 0;
		var shov_items = $('.shov_item a','#'+sid);
		shov_items.each(function(){
			shoveler[sid].h = Math.max(shoveler[sid].h,$(this).height());
		});
		shov_items.height(shoveler[sid].h);
	}
	
	this.shovelerScroll = function(sid,dir) {
		var page=shoveler[sid].thispage+dir;
		page=(page==0)?shoveler[sid].pages:page;
		page=(page>shoveler[sid].pages)?1:page;
		var i=(dir==1)?0:shoveler[sid].rowlength-1;
		if (dir==1){
			$('.shov_item','#'+sid).hide();
		}else{
			$('.shov_item','#'+sid).show();
		}
		
		this.shovelerSwapItem = function() {
			var item=(page-1)*shoveler[sid].rowlength + i;
			var data=shoveler[sid].data[item];
			var shov_item=$('.shov_item_'+i,'#'+sid);
			if (item<shoveler[sid].items){
				$('a',shov_item).attr('href',data[0]);
				$('.shov_image',shov_item).attr('src',shoveler.imagepath+data[2]+'.jpg').attr('alt',data[1]);
				$('.shov_name',shov_item).html(data[1]);
				$('.shov_rrp',shov_item).html(data[4].length?shoveler.currency+data[4]:'');
				$('.shov_price',shov_item).html(shoveler.currency+data[3]);
				shov_item.show();
			} else {
				shov_item.hide();
			}
			i+=dir;
			if (i<shoveler[sid].rowlength && i>=0) setTimeout(shovelerSwapItem,30);
		}
		
		shovelerSwapItem();		
		//equaliseHeight(sid);
		shoveler[sid].thispage=page;
		$('.shov_page','#'+sid).html(shoveler[sid].thispage);
	}
	
	$('.shoveler').each(function(){
		var sid=$(this).attr('id');
		shoveler[sid].items=shoveler[sid].data.length;
		shoveler[sid].thispage=1;
		shoveler[sid].rowlength=$(this).find('.shov_item').length;
		shoveler[sid].pages=Math.ceil(shoveler[sid].items/shoveler[sid].rowlength);
		
		if (shoveler[sid].items>shoveler[sid].rowlength) {
			$('<a href="" class="shov_next"></a>').click(function(){
				shovelerScroll(sid,1);
				return false;
			}).appendTo($(this));			$('<a href="" class="shov_prev"></a>').click(function(){
				shovelerScroll(sid,-1);
				return false;
			}).appendTo($(this));
			//$('<span class="shov_page_display">Page <span class="shov_page">1</span> of '+shoveler[sid].pages+'</span>').appendTo($(this));
			$(this).addClass('active');
		}
		//equaliseHeight(sid);
	});
	
}