$(function () {
	
	$('.pagination-container')
		.each(function () {
			var
				$pagination = $(this),
				$page = $pagination.find('.pagination-page'),
				ipp = $page.attr('data-item')*1,
				$number = $pagination.find('.pagination-number'),
				$next = $pagination.find('.pagination-next'),
				$prev = $pagination.find('.pagination-prev'),
				$meta = $pagination.find('.pagination-meta'),
				$meta1 = $pagination.find('.pagination-meta-1'),
				$meta2 = $pagination.find('.pagination-meta-2'),
				$meta3 = $pagination.find('.pagination-meta-3'),
				$meta4 = $pagination.find('.pagination-meta-4'),
				$meta5 = $pagination.find('.pagination-meta-5'),
				$items = $page.find('.item');
				
			if ($items.length == 0) {
				$number.addClass('dnone');
				$next.addClass('dnone');
				$prev.addClass('dnone');
				return true;
			}
				
			$pagination.find('.handler')
				.bind('click', function (e) {
					e.preventDefault();
					
					var $items = $page.find('.item:not(.dnone)');
					$items.removeClass('selected');
					
					var $item = $(this).parents('.item').eq(0);
					
					$item.addClass('selected');
					
					$meta.html($item.find('.meta').html());
					$meta1.html($item.find('.meta-1').html());
					$meta2.html($item.find('.meta-2').html());
					$meta3.html($item.find('.meta-3').html());
					$meta4.html($item.find('.meta-4').html());
					$meta5.html($item.find('.meta-5').html());
				});
				
			function findcurrentpage() {
				var current;
				current = $page.find('.item:not(.dnone):first');
				current = $page.find('.item:not(.filter)').index(current);
				current = current / ipp;
				current = Math.floor(current);
				current = current + 1;
				
				return current;
			}
			
			function findtotalpage() {
				var total;
				total = $page.find('.item:not(.filter)').size();
				total = total / ipp;
				total = Math.ceil(total);
				
				return total;
			}
			
			function findtotalitems() {
				return $page.find('.item:not(.filter)').size();
			}
			
			function showitems(f, t) {
				var $items;
				$items = $page.find('.item:not(.filter)');
				$items
					.css('opacity', 0)
					.addClass('dnone');
				
				for (i = f; i < t; i++) {
					$items.eq(i)
						.removeClass('dnone')
						.animate({opacity: 1});
						
					// loadimg($items.eq(i).find('img'));
				}
				
				$items.eq(f).find('.handler').trigger('click');
			}
				
			$pagination
				.bind('checkarrows', function (e) {
					var total = findtotalpage();
					var current = findcurrentpage();
					
					$next.removeClass('dnone');
					$prev.removeClass('dnone');
					
					if (current == 1) {
						$prev.addClass('dnone');
					}
					
					if (total == current) {
						$next.addClass('dnone');
					}
				})
				.bind('updatenumber', function (e) {
					var total, current, totalitems, f, t;
					
					total = findtotalpage();
					current = findcurrentpage();
					totalitems = findtotalitems();
					
					
					$number.find('.total').html(totalitems);
					
					f = ((current-1) * ipp) + 1;
					t = f + ipp - 1;
					
					if (t > totalitems) {
						t = totalitems;
					}
					
					if (f == t) {
						$number.find('.current').html(f);
					}
					else {
						$number.find('.current').html(f + ' &mdash; ' + t);
					}
				})
				.bind('nextitem', function (e) {
					var total, current, f, t;
					
					current = findcurrentpage();
					total = findtotalpage();
					
					if (current == total) {
						return false;
					}
					
					f = current * ipp;
					t = f + ipp;
					showitems(f, t);
					
					$pagination.trigger('updatenumber');
					$pagination.trigger('checkarrows');
				})
				.bind('previtem', function (e) {
					var total, current, f, t;
					
					current = findcurrentpage();
					total = findtotalpage();
					
					if (current == 1) {
						return false;
					}
					
					f = (current-2) * ipp;
					t = f + ipp;
					showitems(f, t);
					
					$pagination.trigger('updatenumber');
					$pagination.trigger('checkarrows');
				});
				
			showitems(0, ipp);
			$pagination.trigger('updatenumber');
			$pagination.trigger('checkarrows');
			
			$next.bind('click', function () {
				$pagination.trigger('nextitem');
			});
			$prev.bind('click', function () {
				$pagination.trigger('previtem');
			});
			
		});
	
		
});
