
App = new Object();

/*
** Browser
*/

var ua = navigator.userAgent.toLowerCase();

var Browser = new Object();
Browser.version   = 1;
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
Browser.isIE      = window.ActiveXObject ? true : false;
Browser.isFirefox = (ua.indexOf("firefox") != -1);
Browser.isSafari  = (ua.indexOf("safari") != -1);
Browser.isOpera   = (typeof window.opera != 'undefined');
if (Browser.isMozilla) {
	HTMLElement.prototype.removeNode = function() {
		this.parentNode.removeChild(this);
	}
}
if (Browser.isFirefox) {
	Browser.version = parseFloat(ua.substr(ua.indexOf("firefox") + 8, 3));
}
else if (Browser.isOpera) {
	Browser.version = 7.5;
	if (window.opera.version) {
		Browser.version = parseFloat(window.opera.version());
	}
}
else if (Browser.isIE) {
	var re = new RegExp("msie ([0-9]{1,}[\.0-9]{0,})");
	Browser.version = 3;
	if (re.exec(ua) != null) {
		Browser.version = parseFloat(RegExp.$1);
	}
}
else if (Browser.isSafari) {
	var kitName    = "applewebkit/";
	var kitVersion = ua.substring(ua.indexOf(kitName) + kitName.length, ua.length);
	kitVersion     = parseInt(kitVersion.substring(0, kitVersion.indexOf(" ")));

	Browser.version =
		kitVersion >= 400 ? 2.0 :
		kitVersion >= 300 ? 1.3 :
		kitVersion > 100 ? 1.2 :
		1.0;
}

if (typeof Browser == "undefined" || !Browser) var Browser = {};

Browser.getClientWidth = function() {
	return (
		window.innerWidth ||
		(document.documentElement && document.documentElement.clientWidth) ||
		(document.body && document.body.clientWidth) ||
		0
	);
}
Browser.getClientHeight = function() {
	return (
		window.innerHeight ||
		(document.documentElement && document.documentElement.clientHeight) ||
		(document.body && document.body.clientHeight) ||
		0
	);
}
Browser.getPageScrollTop = function() {
	return (
		(document.documentElement && document.documentElement.scrollTop) ||
		(document.body && document.body.scrollTop) ||
		0
	);
}
Browser.getPageScrollLeft = function() {
	return (
		(document.documentElement && document.documentElement.scrollLeft) ||
		(document.body && document.body.scrollLeft) ||
		0
	);
}
Browser.getPageSize = function() {
	var xScroll, yScroll;
	var pageHeight, pageWidth;
	var windowWidth,windowHeight;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight) {
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	}
	else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	if (self.innerHeight) {
		windowWidth  = self.innerWidth;
		windowHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth  = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}
	else if (document.body) {
		windowWidth  = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
	}
	else {
		pageHeight = yScroll;
	}
	if (xScroll < windowWidth) {
		pageWidth = windowWidth;
	}
	else {
		pageWidth = xScroll;
	}
	return {pageWidth: pageWidth, pageHeight: pageHeight, windowWidth: windowWidth, windowHeight: windowHeight};
}
