QueryString = function(str) { 
   var str = str ? str : document.location.href; 
   this.argv = new Array(); 
   //this.queryString = str.split('?')[1]; 
   if (!this.queryString) this.queryString = ''; 
   var _argv = this.queryString.split('&'); 
   for(var i=0; i<_argv.length; i++) { 
      $=_argv[i].split('='); 
      var _key = $[0]; 
      var _val = $[1]; 
      this.argv[_key] = $[1]; 
   } 

   if (!this.argv) this.argv = new Array(); 
   this.setVar = function(key,val,mYn,snm) {
	 
	  this.methodOk = mYn; 
	  this.scriptnm = snm; 
      if (typeof key == 'object') { 
         for (var item in key) this.argv[item] = key[item]; 
      } else { 
         this.argv[key] = val; 
      } 
      return this.getVar(); 
   } 

   this.getVar = function(key) {
	  if(this.methodOk == "post" ){
		 if (key) { 
			if (!this.argv[key]) return ''; 
			else { 
				return this.argv[key]; 
			} 
		 } else { 
			var cnt = 0; 

			for(var c in this.argv) cnt++;  
				if (cnt > 0) { 
					var _item = new Array();
					for (var x in this.argv) if (this.argv[x]) _item[_item.length] = "javascript:"+this.scriptnm+"("+this.argv[x]+")";
				else continue; 
					return _item.join('&'); 
			}
		 } 
	  }else{
		 if (key) { 
			 if (!this.argv[key]) return ''; 
			 else { 
				return this.argv[key]; 
			 } 
		  } else { 
			 var cnt = 0; 
			 for(var c in this.argv) cnt++;   
			 if (cnt > 0) { 
				var _item = new Array(); 
				for (var x in this.argv) if (this.argv[x]) _item[_item.length] = x + '=' + this.argv[x]; 
				else continue; 
				return '?' + _item.join('&'); 
			 } else return '&'; 
		  } 
		
	  }
   } 
} 

Paging = function(total, perpage) { 
   this.config = { 
		pageVariable: 'page',
		scriptname: '',
		intPage: 1,
		methodYn: '',
		numberFormat: '[%n]',
		showFirstLast: true,	
		thisPageStyle: 'font-weight: bold;',
		otherPageStyle: 'font-size: 9pt',
		itemPerPage: perpage,	// No. of lists
		pagePerView: perpage,	// Per page navigation
		prevIcon: null,	// Previous Page icon
		nextIcon: null,	// Next Page icon
		firstIcon: null,	// First Page icon
		lastIcon: null	// Last Page icon
   } 
	
   this.totalItem = total; 
   this.qs = new QueryString; 
   this.methodOk = this.config.pageVariable
	 
   this.calculate = function() { 
      this.totalPage = Math.ceil(this.totalItem / this.config.itemPerPage); 
      this.currentPage = this.qs.getVar('page'); 
	  
	  if(this.config.methodYn == "post")	this.currentPage = this.config.intPage;
	  
      if (!this.currentPage) this.currentPage = 1; 
      if (this.currentPage > this.totalPage) this.currentPage = this.totalPage; 
      this.lastPageItems = this.totalPage % this.config.itemPerPage; 

      this.prevPage = this.currentPage-1; 
      this.nextPage = this.currentPage+1; 
      this.seek = this.prevPage * this.config.itemPerPage; 
      this.currentScale = parseInt(this.currentPage / this.config.pagePerView); 
      if (this.currentPage % this.config.pagePerView < 1) this.currentScale--; 
      this.totalScale = parseInt(this.totalPage / this.config.pagePerView); 
      this.lastScalePages = this.totalPage % this.config.pagePerView; 
      if (this.lastScalePages == 0) this.totalScale--; 
      this.prevPage = this.currentScale * this.config.pagePerView; 
      this.nextPage = this.prevPage + this.config.pagePerView + 1; 
   } 

   this.toString = function() { 
		var ss, se;
		var firstBtn = '';
		var lastBtn = '';
		var prevBtn = '';
		var nextBtn = '';
		var pagingstr = '';

		this.calculate();

		if (this.config.showFirstLast) {
			firstBtn = '';
			if (this.config.firstIcon) firstBtn = '<img src="'+this.config.firstIcon+'" border="0">';
			else firstBtn = 'S'; //'☜';
			firstBtn = firstBtn.link(this.qs.setVar(this.config.pageVariable,1,this.config.methodYn,this.config.scriptname));

			lastBtn = '';
			if (this.config.lastIcon) lastBtn = '<img src="'+this.config.lastIcon+'" border="0">';
			else lastBtn = 'E'; //'☞';
			lastBtn = lastBtn.link(this.qs.setVar(this.config.pageVariable,this.totalPage,this.config.methodYn,this.config.scriptname));
			
		} else {S
			firstBtn = lastBtn = '';
		}
		prevBtn = '';
		if (this.config.prevIcon) prevBtn ='<img src="'+this.config.prevIcon+'" border="0">';
		else prevBtn = '◀';
		if (this.currentPage > this.config.pagePerView) {
			prevBtn = prevBtn.link(this.qs.setVar(this.config.pageVariable,this.prevPage,this.config.methodYn,this.config.scriptname));
		}

		ss = this.prevPage + 1;
		if ((this.currentScale >= this.totalScale) && (this.lastScalePages != 0)) se = ss + this.lastScalePages;
		else if (this.currentScale <= -1) se = ss;
		else se = ss + this.config.pagePerView;

		var navBtn = '';
		_btn = '';
		for(var i = ss; i<se; i++) {
			var pageText = i//this.config.numberFormat.replace(/%n/g,i);
			if (i == this.currentPage) {
				_btn = '<font color="'+this.config.thisPageStyle+'"><b>'+pageText+ '.</b></font>';
//				_btn = '<span class="board_num"><b>'+pageText+ '</b></span>';
				
 			} else {
				_btn = '<a href="'+this.qs.setVar(this.config.pageVariable,i,this.config.methodYn,this.config.scriptname)+'" style="'+this.config.otherPageStyle+'" class=green_link>'
//				_btn += pageText+ '/' + total + '</a>'
				_btn += pageText+  '.</a>'
				
				
			}
			if(i != (se-1)){
					_btn += '<img src="/Images/Common/blank_01.gif" width="8" height="8" border="0">'
				}
			navBtn+=_btn;
		}
		nextBtn = '';
		if (this.config.prevIcon) nextBtn ='<img src="'+this.config.nextIcon+'" border="0"';
		else nextBtn = '▶';
		if (this.totalPage > this.nextPage) {
			nextBtn = nextBtn.link(this.qs.setVar(this.config.pageVariable,this.nextPage,this.config.methodYn,this.config.scriptname));
		}
		if (this.totalItem > 0){
			pagingstr = '<table brder="0" cellspacing="0" cellpadding="0" height="22">'
			pagingstr += '<tr>'
			pagingstr += '<td width="15">'
		  	pagingstr += firstBtn
			pagingstr += '</td><td width="10">'
			pagingstr += prevBtn
			pagingstr += '</td>'
			pagingstr += '<td background="/Images/Common/bg_bar_h22.gif" align=center style="padding-left:2px;padding-right:2px;" class=board_num>'
			pagingstr += navBtn
			pagingstr += '</td>'
			pagingstr += '<td background="/Images/Common/bg_bar_h22.gif" width="10" align=right>'
			pagingstr += nextBtn
			pagingstr += '</td><td width="15" align=right>'
			pagingstr += lastBtn
			pagingstr += '</td></tr></table>'
		}else{
			pagingstr = '<table brder="0" cellspacing="0" cellpadding="0" height="22">'
			pagingstr += '<tr>'
			pagingstr += '<td width="30">'
			pagingstr += '</td><td width="20">'
			pagingstr += '</td>'
			pagingstr += '<td  align=center style="padding-left:20px;padding-right:20px;" class=number_01>'
			pagingstr += '</td>'
			pagingstr += '<td  width="20" align=right>'
			pagingstr += '</td><td width="30" align=right>'
			pagingstr += '</td></tr></table>'
		}

		return pagingstr;
		

	}
	
}

