﻿/*
 * 	Easy Paginate 1.0 - jQuery plugin
 *	written by Alen Grakalic	
 *	http://cssglobe.com/
 *
 *	Copyright (c) 2011 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */

(function($) {
		  
	$.fn.easyPaginate = function(options){
		
		var defaults = {				
			step: 4,
			delay: 100,
			numeric: true,
			nextprev: true,
			auto:false,
			pause:4000,
			clickstop:true,
			controls: 'easy-pagination',
			controls_2: 'easy-pagination-top',
			current: 'current' 
		}; 
		$('#easy-pagination').die("dblclick");
		$('#easy-pagination-top').die("dblclick");
		var options = $.extend(defaults, options); 
		var step = options.step;
		var lower, upper;
		var children = $(this).children();
		var count = children.length;
		var obj, next, prev, next_2, prev_2;		
		var page = 1;
		var timeout;
		var clicked = false;

		
		
		function show(){
			
			lower = ((page-1) * step);
			upper = lower+step;
		
			$(children).each(function(i){
				var child = $(this);
				child.hide();
				if(i>=lower && i<upper){child.fadeIn('fast')} 				
				if(options.nextprev){

						if(upper >= count) { next.addClass('visibility_hidden'); } else { next.removeClass('visibility_hidden'); };
						if(lower >= 1) { prev.removeClass('visibility_hidden'); } else { prev.addClass('visibility_hidden'); };
						if(upper >= count) { next_2.addClass('visibility_hidden'); } else { next_2.removeClass('visibility_hidden'); };
						if(lower >= 1) { prev_2.removeClass('visibility_hidden'); } else { prev_2.addClass('visibility_hidden'); };
				};
			});	
			
			$('li','#'+ options.controls).removeClass(options.current);
			$('li','#'+ options.controls_2).removeClass(options.current);
			$('li[data-index="'+page+'"]','#'+ options.controls).addClass(options.current);
			$('li[data-index="'+page+'"]','#'+ options.controls_2).addClass(options.current);

			if(options.auto){
				if(options.clickstop && clicked){}else{ timeout = setTimeout(auto,options.pause); };
			};
			
			if(!jQ('#'+ options.controls_2+' li.prev').next().hasClass('current'))
			{jQ('#'+ options.controls_2+' li.prev').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls_2+' li.next').prev().hasClass('current'))
			{jQ('#'+ options.controls_2+' li.next').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls+' li.prev').next().hasClass('current'))
			{jQ('#'+ options.controls+' li.prev').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls+' li.next').prev().hasClass('current'))
			{jQ('#'+ options.controls+' li.next').css({'display':'inline-block'});}
			/* IE7 */
			if(navigator.appName.indexOf('Explorer')>-1) {	
				if(navigator.appVersion.toLowerCase().indexOf("msie 7")> -1) {
					jQ('#easy-pagination li').css('display','inline');
					jQ('#easy-pagination-top li').css('display','inline');
					}
			}
		};
		
		function show_first(){
			
			clearTimeout(timeout);
			var i,x,y,ARRcookies=document.cookie.split(";");
			for (i=0;i<ARRcookies.length;i++)
			{
			  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
			  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
			  x=x.replace(/^\s+|\s+$/g,"");
			  $prodcat=jQ('#pagination-page-prodcat').attr('value');
			  if ($('#pagination-page-type').attr('value')=='sub-subcat' && x==$prodcat) {
			    cookie_page=unescape(y);
			    page=cookie_page;
			   }
			  else if($('#pagination-page-type').attr('value')=='subcat' && x==$prodcat) {
			    cookie_page=unescape(y);
			    page=cookie_page;
			   }
			 }
			
			if(page<1) {
				page=1;
			}
			
			lower = ((page-1) * step);
			upper = lower+step;
		
			$(children).each(function(i){
				var child = $(this);
				child.hide();
				if(i>=lower && i<upper){child.fadeIn('fast')} 
				if(options.nextprev){

						if(upper >= count) { next.addClass('visibility_hidden'); } else { next.removeClass('visibility_hidden'); };
						if(lower >= 1) { prev.removeClass('visibility_hidden'); } else { prev.addClass('visibility_hidden'); };
						if(upper >= count) { next_2.addClass('visibility_hidden'); } else { next_2.removeClass('visibility_hidden'); };
						if(lower >= 1) { prev_2.removeClass('visibility_hidden'); } else { prev_2.addClass('visibility_hidden'); };
				};
			});	
			
			$('li','#'+ options.controls).removeClass(options.current);
			$('li','#'+ options.controls_2).removeClass(options.current);
			$('li[data-index="'+page+'"]','#'+ options.controls).addClass(options.current);
			$('li[data-index="'+page+'"]','#'+ options.controls_2).addClass(options.current);

			if(options.auto){
				if(options.clickstop && clicked){}else{ timeout = setTimeout(auto,options.pause); };
			};
			
			if(!jQ('#'+ options.controls_2+' li.prev').next().hasClass('current'))
			{jQ('#'+ options.controls_2+' li.prev').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls_2+' li.next').prev().hasClass('current'))
			{jQ('#'+ options.controls_2+' li.next').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls+' li.prev').next().hasClass('current'))
			{jQ('#'+ options.controls+' li.prev').css({'display':'inline-block'});}
			if(!jQ('#'+ options.controls+' li.next').prev().hasClass('current'))
			{jQ('#'+ options.controls+' li.next').css({'display':'inline-block'});}
			/* IE7 */
			if(navigator.appName.indexOf('Explorer')>-1) {	
				if(navigator.appVersion.toLowerCase().indexOf("msie 7")> -1) {
					jQ('#easy-pagination li').css('display','inline');
					jQ('#easy-pagination-top li').css('display','inline');
					}
			}
		};
		
		function auto(){
			alert('u:'+upper+'con:'+count)
			if(upper <= count){ page++; show(); }			
		};
		
		this.each(function(){ 
			
			obj = this;
			
			if(count>step){
				
				var pages = Math.floor(count/step);
				if((count/step) > pages) pages++;
				
				var ol = $('<ol id="'+ options.controls +'"></ol>').insertAfter(obj);
				var ol2 = $('<ol id="'+ options.controls_2 +'"></ol>').insertBefore(obj);
				
				if(options.nextprev){
					prev = $('<li class="prev">Előző</li>')
						.hide()
						.appendTo(ol)
						.click(function(){
							clicked = true;
							page--;
							show();
						});
					
					prev_2 = $('<li class="prev">Előző</li>')
					.hide()
					.appendTo(ol2)
					.click(function(){
						clicked = true;
						page--;
						show();
					});
				};
				
				if(options.numeric){
					for(var i=1;i<=pages;i++){
					$('<li data-index="'+ i +'">'+ i +'</li>')
						.appendTo(ol)
						.click(function(){	
							clicked = true;
							page = $(this).attr('data-index');
							show();
						});					
					};	
					for(var i=1;i<=pages;i++){
						$('<li data-index="'+ i +'">'+ i +'</li>')
							.appendTo(ol2)
							.click(function(){	
								clicked = true;
								page = $(this).attr('data-index');
								show();
							});					
						};	
				};
				
				if(options.nextprev){
					next = $('<li class="next" >Következő</li>')
						.hide()
						.appendTo(ol)
						.click(function(){
							clicked = true;			
							page++;
							show();
						});
					next_2 = $('<li class="next" >Következő</li>')
					.hide()
					.appendTo(ol2)
					.click(function(){
						clicked = true;			
						page++;
						show();
					});
				};
			
				show_first();
			};
			
		});	
		
	};	

})(jQuery);
