
function Navigation() {

	var nav = new Object();
	
	nav.sHtml = '';
	nav.oParameters = new Object();
				
	nav.iJsFunction = 1; 		//liczba rekord?w na stronie
	nav.iPageCount = 0; 		//liczba rekord?w na stronie
	nav.iAllCount = 0; 	  		//liczba wszystkich rekord?w
	nav.iAllPages = 0;   	  	//liczba wszystkich stron
	nav.iNumPage = 0;       	//numer biez?cej strony
	nav.sParamPage = '';		// nazwa parametru strony
	
	nav.sLeft  = '<span class="arrow">&laquo;</span>'; 	//strzalki w lewo
	nav.sRight = '<span class="arrow">&raquo;</span>'; 	//strzalki w prawo
	
	nav.iLpp = 5; 
	
	nav.sScriptName = 'getPage';  //nazwa skryptu do ktorego maja byc generowane linki
	nav.sExtraParam = ''; 					//dodatakowe parametry jakie maja byc obecne w linku

	
	/** Ustawia paramteray **/
	nav.handleArguments = function(args) {
		for (var i in args) {
			if (typeof(nav[i]) == "undefined") {
				nav.oParameters[i] = args[i];
			}
			else {
				nav[i] = args[i];
			}
		}
	};
	
	
	/** Ustawia link z paramterami i opcja wywolania funckji **/
	nav.setLink = function(iPage) {

		var sLink = '';

		if(iPage != '') {
			if(this.sParamPage != '')
				sLink += this.sParamPage + '=' + iPage;
			else
				sLink += iPage;
		}
		
		if(this.sExtraParam != '')
			sLink += '&' + this.sExtraParam;
		
			
		if(this.iJsFunction == 1)
			sLink = 'javascript:' + this.sScriptName + '(' + sLink + ')';
		else
			sLink = this.sScriptName + sLink;
			
		return sLink;
	}

	
   /*
    Wyswietlenie belki nawigacyjnej do stronicowania
   */
  	nav.makeHTML = function(){

		this.sHtml = '<span class="nav"> Page ';
	
		if (!this.iPageCount) {
	  		this.iPageCount = 25;
  		}
		
		this.iAllPages = Math.floor(this.iAllCount/this.iPageCount);

		if (this.iAllCount % this.iPageCount) {
			this.iAllPages++;
 		}
			
		
		if (this.iAllPages > 1) {
	     	
			var tmp = 0;
	  
	    	if (this.iNumPage >= this.iAllPages - this.iLpp) {
        		max = this.iAllPages;
        		tmp = this.iLpp + 1 - (this.iAllPages - this.iNumPage);
		    }
			else {
				max = this.iNumPage + this.iLpp + 1;
		    }
	  
		  	if (this.iNumPage <= this.iLpp) {
      			min = 1;
		  		max += this.iLpp - this.iNumPage + 1;
				if (max > this.iAllPages) {
    	    		max = this.iAllPages;
    			}
			}
			else {
		    	min = this.iNumPage - this.iLpp;
		    }
		
			min -= tmp;

      		if (min < 1)
	  			min = 1;
	
			
			// strzalka w lewo
		    if (this.iNumPage > 1)
    	  		this.sHtml += '<a href="'+nav.setLink(this.iNumPage-1)+'">'+this.sLeft+'</a>';
			
	    	if (this.iNumPage > 1 && min > 1)
    			this.sHtml += '&nbsp;<a href="'+nav.setLink(1)+'">1</a>&nbsp;';
    	    
			
			// linki do stron
			for (i=min;i<max;i++) {
				if (i == this.iNumPage)
            		this.sHtml += '<span class="select">['+i+']</span>';
				else
    	          this.sHtml += ' <a href="' + nav.setLink(i) + '">'+i+'</a> ';
	     	}

    	 	// ostatnia strona
	  	 	if (this.iNumPage < (this.iNumPage + this.iLpp) && this.iAllPages < max )
	    	  	this.sHtml += '&nbsp;<a href="'+nav.setLink(this.iAllPages)+'">'+this.iAllPages+'</a>&nbsp;';
			
			if (this.iNumPage == max)
				this.sHtml += ' z ' + '<span class="select">[' + this.iAllPages + ']</span>';
			else
				this.sHtml += ' z ' + '<a href="'+nav.setLink(this.iAllPages)+'">' + this.iAllPages + '</a>';
		  	
	  		// strzalka w prawo
			if (this.iNumPage < this.iAllPages)
				this.sHtml += '&nbsp;<a href="'+nav.setLink(this.iNumPage+1)+'">'+this.sRight+'</a>';
	
			this.sHtml += '</span>';
		}
		else {
		    this.sHtml = '';
    	}
		
	}
	
	return nav;
}


Navigation.get = function(args) {
	var nav = Navigation.setParam(args);
	return nav;
};


Navigation.setParam = function(args) {
	if (typeof(args) != "undefined" && args != null) {
		var myNav = new Navigation();
		myNav.handleArguments(args);
		return myNav;
	}
};

