(function($){
    $.fn.mbtable = function(callerSettings){
        var mbtable = $(this);
		$('.activePageNumber').val('1');
        // Paging handlers
		
        $('tr.headerRow td a')
			.filter(':not(.pageNavigation)')
			.click(function(){
				var page = $(this).attr('page'); 
				setPage(page, ($('.activePageNumber', mbtable)));
				$('.page' + page, mbtable).parent().addClass('active').siblings().removeClass('active');
				checkActivity(page, $('.totalPageCount', mbtable).val());
				return false;
        	})
			.end().filter('.pageNavigation')
			.click(function() {
				if ($(this).hasClass('notactive'))
					return false;
				else {
					var activePageNumber = $('.activePageNumber', mbtable);
					var currentPage = activePageNumber.val();
					if ($(this).hasClass('left'))
						currentPage --;
					else
						currentPage ++;
					setPage(currentPage, activePageNumber);
					$('.page' + currentPage, mbtable).parent().addClass('active').siblings().removeClass('active');
					checkActivity(currentPage, $('.totalPageCount', mbtable).val());
				}
				return false;
			});
		

		function checkActivity(currentPage, totalPageCount) {
			if (currentPage == 1) {
				setArrow('left', false);
				setArrow('right', true);
			} else 
			if (currentPage == totalPageCount) {
				setArrow('left', true);
				setArrow('right', false);
			} else {
				setArrow('left', true);
				setArrow('right', true);
			} 
			if (totalPageCount == 1) {
				setArrow('left', false);
				setArrow('right', false);
			}
		}
		
		/**
		 * Page show
		 * @param {Object} pageNum
		 */
		function setPage(pageNum, activeNumberElement) {
			var pageNumber = activeNumberElement.val();
			activeNumberElement.val(pageNum);
			$('.mbTable .mbpage' + pageNumber).hide();
			$('.mbTable .mbpage' + pageNum).show();
		}
		
		function setArrow(element, active) {
			if (active) {
				$('.pageNavigation', mbtable).filter('.' + element).removeClass('notactive')
					.find('img').attr('src', '/images/mbtable/active-' + element + '.png');
			} else {
				$('.pageNavigation', mbtable).filter('.' + element).addClass('notactive')
					.find('img').attr('src', '/images/mbtable/not-active-' + element + '.png');
			}
		}
    }
	
	
    
})(jQuery);

