var Pagination = Class.create({
	initialize : function()
	{
		this.url = null;
		this.sort = null;
		this.data = null; 
		this.totalrecord = 0;
		this.count = 0;
		this.startrecord = 0;
		this.buttonnext = null; 
		this.buttonprevious = null;
		this.lockbuttonprevious = null;
		this.lockbuttonnext = null;
		this.locksidebar = null;
		this.divcontrol = null;
	},
	
	setUrl : function(url){ this.url = url; },
	setSort :  function(sort){ this.sort = sort; },
	setData :  function(data){ this.data = data; },
	setTotalRecord : function(totalrecord){ this.totalrecord = parseInt(totalrecord); },
	setStartRecord : function(startrecord){ this.startrecord = parseInt(startrecord); },
	setCount : function(count){  
		if(count!=null)
			this.count = parseInt(count);
		// fuck count
		//options = $('sortnumber').options;
		//this.count = parseInt(options[$('sortnumber').selectedIndex].value);
		/*TODO  Cas sort  tresssss granddd sur 100*/
	},
	setButtonNext :  function(buttonnext){ this.buttonnext = buttonnext; },
	setButtonPrevious : function(buttonprevious){ this.buttonprevious = buttonprevious; },
	setDivControl : function(divcontrol){ this.divcontrol = divcontrol;},
	defineAvailableControl : function(){
		if(this.getTotalRecord() <= (this.getStartRecord()+this.getCount()))
			this.getButtonNext().disabled = true;
		if(isNaN(this.getStartRecord()- this.getCount())||((this.getStartRecord()-this.getCount())< 0))
			this.getButtonPrevious().disabled = true;
	},
	
	getUrl: function(){ return this.url; },
	getSort : function(){ return this.sort; },
	getCount : function(){  return this.count; },
	getData : function() { return this.data; },
	getTotalRecord : function() { return this.totalrecord; },
	getStartRecord : function(){ return this.startrecord; },
	getButtonNext : function(){ return this.buttonnext; },
	getButtonPrevious : function(){ return this.buttonprevious; },
	getDivControl : function(){ return this.divcontrol; },
	
	next : function(){

		var inputsort = document.createElement("input");
		inputsort.setAttribute("type", "hidden");
		inputsort.setAttribute("name", "sort");
		inputsort.setAttribute("value", this.getSort());
		this.getDivControl().appendChild(inputsort);
		
		var inputcount = document.createElement("input");
		inputcount.setAttribute("type", "hidden");
		inputcount.setAttribute("name", "count");
		inputcount.setAttribute("value", this.getCount());
		this.getDivControl().appendChild(inputcount);
		
		var inputstartrecord = document.createElement("input");
		inputstartrecord.setAttribute("type", "hidden");
		inputstartrecord.setAttribute("name", "startrecord");
		startrecord = parseInt(this.getStartRecord());
		count = parseInt(this.getCount());
		inputstartrecord.setAttribute("value", parseInt(startrecord) + parseInt(count));
		this.getDivControl().appendChild(inputstartrecord);
		
		if(trim($('formsearch').innerHTML) != null && trim($('formsearch').innerHTML) !='')
		{
			var tabinputs = $('formsearch').getElementsByTagName('input');
			for (var i = 0; i < tabinputs.length; i++) { 
				var inputsearch = document.createElement("input");
				inputsearch.setAttribute("type", "hidden");
				inputsearch.setAttribute("name", tabinputs[i].name);
				inputsearch.setAttribute("value", tabinputs[i].value);
				this.getDivControl().appendChild(inputsearch);
			}
		}	
		$('formpagination').action = this.getUrl();
		$('formpagination').submit();
		
	},
	previous : function(){
		
		var inputsort = document.createElement("input");
		inputsort.setAttribute("type", "hidden");
		inputsort.setAttribute("name", "sort");
		inputsort.setAttribute("value", this.getSort());
		this.getDivControl().appendChild(inputsort);
		
		var inputcount = document.createElement("input");
		inputcount.setAttribute("type", "hidden");
		inputcount.setAttribute("name", "count");
		inputcount.setAttribute("value", this.getCount());
		this.getDivControl().appendChild(inputcount);
		
		var inputstartrecord = document.createElement("input");
		inputstartrecord.setAttribute("type", "hidden");
		inputstartrecord.setAttribute("name", "startrecord");
		inputstartrecord.setAttribute("value", parseInt(this.getStartRecord())- parseInt(this.getCount()));
		this.getDivControl().appendChild(inputstartrecord);
		
		 
		if(trim($('formsearch').innerHTML) != null && trim($('formsearch').innerHTML) !='')
		{
			var tabinputs = $('formsearch').getElementsByTagName('input');
			for (var i = 0; i < tabinputs.length; i++) { 
				var inputsearch = document.createElement("input");
				inputsearch.setAttribute("type", "hidden");
				inputsearch.setAttribute("name", tabinputs[i].name);
				inputsearch.setAttribute("value", tabinputs[i].value);
				this.getDivControl().appendChild(inputsearch);
			}
		}	
		
		$('formpagination').action = this.getUrl();
		$('formpagination').submit();
	},
	lockBtnPrevious : function(){ this.lockbuttonprevious = false;},
	unlockBtnPrevious : function() { this.lockbuttonprevious = false;},
	lockBtnNext : function(){ this.lockbuttonnext =false;},
	unlockBtnNext : function() { this.lockbuttonnext = false;},
	lockSideBar : function(){ this.loksidebar = false; },
	unlockSideBar : function(){ this.loksidebar = false; }
	
});

// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.
function trim(aString) {
	var regExpBeginning = /^\s+/;
	var regExpEnd       = /\s+$/;
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}
 
