	
var GQueryPaging = Class.create({

	initialize:function (parentId,currentPage,totalRow) {
	
		this.parentId = parentId;		
		this.currentPage = currentPage;
		this.totalRow = totalRow;
		
		this.formId = '';
		this.params = '';
		this.rowPerPage = 20;
		this.lotSize = 10;
	},
	
	setRowPerPage:function (rowPerPage) {
		this.rowPerPage = rowPerPage;
	},
	
	setLotSize: function( lotSize ) {
		this.lotSize = lotSize;
	},
	
	setParams: function( params ) {
		this.params = params
	},

	generate:function () {
		
		var pagingObj = this;
		var parentDiv = $(pagingObj.parentId);
		
		parentDiv.className = 'pagerDRUPAL';
		
		if( pagingObj.totalRow == 0 ) {
			this.emptyPaging();
			return;
		}
		
		var totalPage = Math.floor( pagingObj.totalRow / pagingObj.rowPerPage );
		var precision = pagingObj.totalRow % pagingObj.rowPerPage;
		if( precision > 0 ) {
    		totalPage += 1;
    	}
    	
    	var pLot = Math.floor( pagingObj.currentPage / pagingObj.lotSize );
    	if( (pagingObj.currentPage % pagingObj.lotSize) == 0 ) {
	     	pLot -=1;
	    }
	    if( pLot < 0 ) {
	     	pLot = 0;
	    }
	    
	    var startLot = (pLot * pagingObj.lotSize) + 1;
	    
	    var endPage = startLot + pagingObj.lotSize;
	    if( endPage > totalPage ) {
	    	endPage = totalPage;
	    }
	    
     	var endLot = (pLot * pagingObj.lotSize ) + pagingObj.lotSize;
	    if( endLot > totalPage ) {
	    	endLot = totalPage;
	    }
	    
	    //parentDiv.innerHTML = '<div class="pager-list">';
	    parentDiv.innerHTML = '';
	    
	    var pagingLabel = new Element('div').update('\u0e08\u0e33\u0e19\u0e27\u0e19 '+this.totalRow+' \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23').setStyle({color: '#000000'});
	    parentDiv.appendChild(pagingLabel);
	    
	    var pagerList = new Element('div', { 'class': 'pager-list' });
	    
	    if( pagingObj.currentPage != 1 && pLot != 0) {

	   		var a = new Element('a', { 'class': 'pager-next active', href: '' }).update('หน้าแรก');
	   		a = transformSubmitScript( a, 1 );
	   		
	   		pagerList.appendChild(a);
     		
     	}
     	
     	if( pLot > 0 ) {
     		var aPrev = new Element('a', { 'class': 'pager-next active', href: '' }).update( ''+(startLot-1) );
	   		aPrev = transformSubmitScript( aPrev, (startLot-1) );
	   		
     		pagerList.appendChild(aPrev);
     		var sp = new Element( 'span' ).update('...');
     		pagerList.appendChild(sp);
     		
     	}
	    
	    for( i = startLot ; i <= endLot ; i++ ) {
	     		
   			if( pagingObj.currentPage == i ) {

 				var a = new Element('text').update('<strong>'+i+'</strong>');
 				pagerList.appendChild(a);
 			} else {

 				var a = new Element('a', { 'class': 'pager-next active', href: '' }).update(''+i+'');
	   			a = this.transformSubmitScript( a, i );

 				pagerList.appendChild(a);

 			}
	    }
	    
	     
		if( endPage < totalPage ) {

			var aNext = new Element('a', { 'class': 'pager-next active', href: ''}).update(''+(endLot+1));
   			aNext = transformSubmitScript( aNext, endPage );
   			
   			var sp = new Element('span').update('...');
   			pagerList.appendChild(sp);
			pagerList.appendChild(aNext);
		}
	     
	     
		if( endPage != totalPage) {

			var aLast = new Element('a', { 'class': 'pager-next active', href: ''}).update('สุดท้าย');
			aLast = transformSubmitScript( aLast, totalPage );
   			
			pagerList.appendChild(aLast);
		}
		
		parentDiv.appendChild(pagerList);
	},
	
	emptyPaging: function() {
		var pagingObj = this;
		var parentDiv = $(pagingObj.parentId);		
		parentDiv.innerHTML = '';
	},
	
	transformSubmitScript: function( aLinkElement, pageNo ) {
	
		var pagingObj = this;
		
		aLinkElement.href = 'javascript:;';
		aLinkElement.formId = pagingObj.formId;
		aLinkElement.pageNo = pageNo;
		aLinkElement.params = pagingObj.params
		
		aLinkElement.onclick = function() {
			//search map by page
			searchMapPage(pageNo);
		}
				
		return aLinkElement;
	}
});

