PageNav = Class.create();
PageNav.prototype = {

 	initialize: function(containers, navItems, idClass) {
 		this.containers = containers;

		if (this.containers) {
	 		for (var i=0; i<this.containers.length; i++) {
	 			var container = this.containers[i];

	 			Element.addClassName(container, 'grid2col');
		 		var id = this.getId(container, idClass);

		 		var item = this.getNavItem(id, navItems);
		 		if (item) {
					var previous = this.getPrevious(item);
					var next = this.getNext(item);
					this.writeLinks(container, previous, next);
				}
			}
		}
 	},

 	getId: function(container, idClass) {
		return Element.up(container, '.'+idClass).id;
 	},

 	getNavItem: function(id, navItems) {
 		for (var i=0; i<navItems.length; i++) {
 			var compareId = Element.down(navItems[i], 'a').href.match(/#(.*)/)[1];
	 		if (id == compareId) return navItems[i];
 		}
 		var navItem = Element.up(this.containers[i], '.'+idClass).bind(this);
		return navItem.id;
 	},

 	getPrevious: function(item) {
 		var previous = item.previous();

		if (previous) {
			previous = this.writeWrappers(previous);
			Element.addClassName(previous, 'column first previous');
		}

		return previous || false;
	},

 	getNext: function(item) {
 		var next = item.next();

		if (next) {
			next = this.writeWrappers(next);
			Element.addClassName(next, 'column last next');
		}

		return next || false;
 	},

 	writeWrappers: function(node) {
		var clone = Element.down(node, 'a').cloneNode(true);
		
 		var wrapper = Builder.node('div', [clone]);
 		return wrapper;
 	},

 	writeLinks: function(container, previous, next) {
 		if (container) {
			if (previous) container.appendChild(previous);
			if (next) container.appendChild(next);
		}
	}

};
