var nav = {
	init: function() { nav.build(); },
	build: function() {
		this.ul = $dom.getById('level_3');
		if (this.ul == false) { return; }
		
		this.lis = this.ul.getElementsByTagName('li');
		if (this.lis.length < this.max) { return; }

		this.max = 10;
		this.page = this._resolveNavPage();
		
		this._resolveNavPage();
		
		if (this._canPageBack() || this._canPageNext()) {
			this.btn_back;
			this.btn_next;
			this.ul.parentNode.insertBefore(this.btn_back = 
													$dom.create('a',{id:'btn_Back',href:'#'},
														$dom.create('span','Back')),
											this.ul);
			this.ul.parentNode.insertBefore(this.btn_next = 
													$dom.create('a',{id:'btn_Next',href:'#'},
														$dom.create('span','Next')),
											this.ul);
			
			$event.add(this.btn_back,'click',nav._backClick);
			$event.add(this.btn_next,'click',nav._nextClick);
			this._updateNavDisplay();
		} else {
			this._updateNavDisplay(false);
		}
	},
	_backClick: function(e) {
		var e = e || window.event;
		$event.stop(e);
		this.blur();
		nav.back();
	},
	_nextClick: function(e) {
		var e = e || window.event;
		$event.stop(e);
		this.blur();
		nav.next();
	},
	back: function() {
		if (this._canPageBack()) {
			this.page--;
			this._updateNavDisplay();
		}
	},
	next: function() {
		if (this._canPageNext()) {
			this.page++;
			this._updateNavDisplay();
		}
	},
	_updateNavDisplay: function(showNavNav) {
		var showNavNav = (typeof showNavNav == 'undefined') ? true : showNavNav ;
		for (var i=0; i<this.lis.length; i++) {
			if (i >= (this.page*this.max - this.max) && i < this.page*this.max) {
				$dom.removeClass(this.lis[i],'invisible');
				$dom.addClass(this.lis[i],'visible');
			} else {
				$dom.removeClass(this.lis[i],'visible');
				$dom.addClass(this.lis[i],'invisible');
			}
		}
		if (showNavNav == true) {
			if (this._canPageBack()) {
				$dom.removeClass(this.btn_back,'disabled');
			} else {
				$dom.addClass(this.btn_back,'disabled');
			}
			if (this._canPageNext()) {
				$dom.removeClass(this.btn_next,'disabled');
			} else {
				$dom.addClass(this.btn_next,'disabled');
			}
		}
	},
	_canPageBack: function() {
		if (this.page > 1) {
			return true;
		}
		return false;
	},
	_canPageNext: function() {
		if (this.page < this.pageCount()) {
			return true;
		}
		return false;
	},
	_resolveNavPage: function() {
		for (var i=0; i<this.lis.length; i++) {
			var li = this.lis[i];
			if ($dom.hasClass(li,'on')) {
				return (Math.floor((i+1 * this.max) /  this.max));
			}
		}
	},
	pageCount: function() {
		return Math.ceil(this.lis.length / this.max);
	}
}
// moved to the end of the body element in order to stop 'blink' from happening
// $event.add(window,'load',nav.init);

