window._ajaxUrl = '';
SmartPager = Class.create({
	url:'',
	contentHeight:0,
	timer:null,
	current_page:1,
	lastpage:1,
	in_proccess:false,
	container:null,
	initialize:function(_productListContainer, url, lastpage){
		
		if(productListContainer = $$(_productListContainer)[0]){
			
			this.lastpage = lastpage
			
			this._container = _productListContainer;
			
			this.container = productListContainer;
			
			this.url = url;
            window._ajaxUrl = url; 
			
			Event.observe(window, 'scroll', function(){
				
				var productListContainer = $$(this._container)[0];
				
				this.contentHeight = (document.documentElement ? document.documentElement.clientHeight : document.body.clientHeigh);
				clearTimeout(this.timer);
				var scrollOffset = productListContainer.cumulativeScrollOffset();
				var offset = productListContainer.cumulativeOffset();
				var bottomPosition = (offset[1]+productListContainer.offsetHeight-(scrollOffset[1]+this.contentHeight));
				if(bottomPosition <= 3000){
					
					this.timer = setTimeout(function(){
						
						this.load();
						
					}.bind(this), 200);
					
				}
			}.bind(this));
		}
	},
	load:function(){
		if(!this.in_proccess && this.current_page < this.lastpage){
        jQuery('.ajaxLoading').slideDown();
		this.in_proccess = true;
		
		this.current_page++;
		var request = new Ajax.Request(this.url,{
		    method:'get',
		    parameters:'is_ajax=1&ajax=1&p='+this.current_page,
		    onFailure: function(){
		    	this.in_proccess = false;
		    },
		    onSuccess: function(transport){
		    	var buffer = document.createElement('div', true);
		    	buffer.innerHTML = transport.responseText;
		    	var all_elements = buffer.getElementsByTagName('ul');
		    	if(all_elements.length == 0){
		    		var all_elements = buffer.getElementsByTagName('ol');
		    	}
		    	for(var i = 0;i<all_elements.length;i++){
		    		var e = all_elements[i];
		    		if(e.className && (e.className.indexOf('products-grid') != -1 || e.className.indexOf('products-list') != -1)){
		    			var elm = e.cloneNode(true);
		    			$$('.category-products .toolbar')[1].insert({before:elm});
		    		}
		    	}
		    	this.in_proccess = false;
                jQuery('.ajaxLoading').slideUp();    		    	
		    }.bind(this)
		});		
		}
	},
    setUrl:function(_url){
        this.url = _url;
        this.current_page = 1;
    }
});


Event.observe(window, 'load', function(){
//var smartPager = new SmartPager($$('.category-products')[0]);
});

