/**
 * @author	Marcel Werk
 * @copyright	2001-2007 WoltLab GmbH
 * @license	GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
 */
var USER_AGENT 		= navigator.userAgent.toLowerCase();
var IS_OPERA 		= (USER_AGENT.indexOf('opera') != -1);
var IS_SAFARI 		= ((USER_AGENT.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var IS_IE		= ((USER_AGENT.indexOf('msie') != -1) && !IS_OPERA && !IS_SAFARI);
var IS_IE7		= false;
var IS_IE6		= false;
if (IS_IE) {
	if (!IS_OPERA && window.XMLHttpRequest) IS_IE7 = true;
	else IS_IE6 = true;
}
var onloadEvents = new Array();
window.onload = function() {
	for (var i = 0; i < onloadEvents.length; i++)
		onloadEvents[i]();
}
function fixURL(url) {
	if (IS_IE || IS_OPERA) {
		if (url.indexOf("/") == -1 && document.getElementsByTagName('base').length > 0) {
			return document.getElementsByTagName('base')[0].href + url;
		}
	}

	return url;
}

function MultiPagesLinks() {
	this.pageLink = '';

	this.setPageLink = function(pageLink) {
		this.pageLink = pageLink;
	}

	this.startPageNumberInput = function(element) {
		element.style.display = 'none';

		element.nextSibling.style.display = 'block';
		element.nextSibling.value = '';
		element.nextSibling.onkeydown = function(e) { return multiPagesLinks.handlePageNumberInput(e); };
		element.nextSibling.onblur = function() { multiPagesLinks.stopPageNumberInput(this); };
		element.nextSibling.focus();
	}

	this.handlePageNumberInput = function(event) {
		if (!event) event = window.event;

		// get key code
		if (event.which) {
			var keyCode = event.which;
		}
		else if (event.keyCode) {
			var keyCode = event.keyCode;
		}

		// get target
		var target;
		if (event.target) target = event.target;
		else if (event.srcElement) target = event.srcElement;

		// enter
		if (keyCode == 13) {
			document.location.href = fixURL(this.pageLink.replace(/%d/, parseInt(target.value)-1));
		}

		// enter and esc
		if (keyCode == 13 || keyCode == 27) {
			this.stopPageNumberInput(target);
		}

		return true;
	}

	this.stopPageNumberInput = function(element) {
		element.style.display = 'none';

		element.previousSibling.style.display = 'block';
	}
}

var multiPagesLinks = new MultiPagesLinks();