var Window = function() {
	var isNetscape = (navigator.appName == "Netscape") ? true : false;

	return {

		open: function(url, name, width, height, scrollbars, resizable) {
			var left = f_clientWidth() - width;
			var top = 30;
			resizable = 'yes';
			var properties = 'height=' + height + ',width=' + width + ',top=50,left=' + left + ',scrollbars=' + scrollbars + ',resizable=' + resizable + ',toolbar=0,location=0,statusbar=0,menubar=0';

			var win = window.open(url, 'win', properties);

			if (isNetscape) {
				win.window.focus();
			} else {
				win.focus();
			}
		},

		close: function(win) {
			win.close();
		},

		print: function(win) {
			win.print();
		}
	};
} ();

/*
function GetWidth()
{
        if (self.innerWidth)
            return self.innerWidth;
        else if (document.documentElement && document.documentElement.clientWidth)
            return document.documentElement.clientWidth;
        else if (document.body)
            return document.body.clientWidth;
}
*/

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
