/**
*		ÆäÀÌÁö ¸®½ºÆÃ
**/

var PageNavigator = Class.create();
PageNavigator.prototype = {
	initialize: function( target, fnc, options ) {
		this.target = target;
		this.returnFunc = fnc;

		this.options = options;

		this.seperator = (this.options && this.options.seperator) ? this.options.seperator : " ";


		this.prevNode = document.createElement("A");
		this.prevNode.onfocus = new Function("this.blur();");

		this.nextNode = document.createElement("A");
		this.nextNode.onfocus = new Function("this.blur();");


		if( this.options && this.options.prev ){
			this.prevNode.innerHTML = "<img src=\"" + this.options.prev + "\" border=0 align=absmiddle />";
		} else{
			this.prevNode.innerHTML = "¢¸";
		}

		if( this.options && this.options.next ){
			this.nextNode.innerHTML = "<img src=\"" + this.options.next + "\" border=0 align=absmiddle />";
		} else{
			this.nextNode.innerHTML = "¢º";
		}



		if( this.options && this.options.first ){
			this.firstNode = document.createElement("A");
			this.firstNode.onfocus = new Function("this.blur();");
			this.firstNode.innerHTML = "<img src=\"" + this.options.first + "\" border=0 align=absmiddle />";
		}

		if( this.options && this.options.last ){
			this.lastNode = document.createElement("A");
			this.lastNode.onfocus = new Function("this.blur();");
			this.lastNode.innerHTML = "<img src=\"" + this.options.last + "\" border=0 align=absmiddle />";
		}
	},



	clear: function(){
		if( this.target ){
			while(this.target.childNodes[0]){
				this.target.removeChild( this.target.childNodes[0] );
			}
		}
	},
	



	show: function( curr, total, count ){

		var startNo = Math.floor((curr-1)/count)*count + 1;
		var endNo = startNo + count;


		this.clear();

			
		// Ã³À½ ¹öÆ°ÀÌ Á¸ÀçÇÒ°æ¿ì..
		if( this.firstNode ){
			this.firstNode.setAttribute("href", ("javascript:" + this.returnFunc + "(1);"));

			this.target.appendChild( this.firstNode );
			this.target.appendChild( document.createTextNode(" ") );
			this.target.appendChild( document.createTextNode(" ") );
		}

					
					
		// ÀÌÀü¹öÆ°..
		if( (startNo-1) > 0 ){
			this.prevNode.setAttribute("href", ("javascript:" + this.returnFunc + "(" + (startNo-1) + ");"));

			this.target.appendChild( this.prevNode );
			this.target.appendChild( document.createTextNode(" ") );
		}



		// ÆäÀÌÁö¹øÈ£ ¸®½ºÆÃ..
		for(var i=startNo; i<endNo; i++){
			if( i > total)								break;

			var numberNode = (i == curr) ? document.createElement("B") : document.createElement("A");
			numberNode.innerHTML = i;
			numberNode.onfocus = new Function("this.blur();");
			numberNode.setAttribute("href", ("javascript:" + this.returnFunc + "(" + i + ");"));

			this.target.appendChild( numberNode );

			if( (i < (endNo - 1)) && (i < total) ){
				this.target.appendChild( document.createTextNode(this.seperator) );
			}
		}



		// ´ÙÀ½¹öÆ°..
		if( endNo <= total ){
			this.nextNode.setAttribute("href", ("javascript:" + this.returnFunc + "(" + endNo + ");"));

			this.target.appendChild( document.createTextNode(" ") );
			this.target.appendChild( this.nextNode );
		}



		// ¸¶Áö¸· ¹öÆ°ÀÌ Á¸ÀçÇÒ°æ¿ì..
		if( this.lastNode ){
			this.lastNode.setAttribute("href", ("javascript:" + this.returnFunc + "(" + total + ");"));

			this.target.appendChild( document.createTextNode(" ") );
			this.target.appendChild( document.createTextNode(" ") );
			this.target.appendChild( this.lastNode );
		}
	}
};