// Global objects --------------------

var Browser = {name: "", platform: ""};

if (navigator.appVersion.indexOf("Win") > 0)
{
	Browser.platform = "win";
}
else if (navigator.appVersion.indexOf("Mac") > 0)
{
	Browser.platform = "mac";
}
else
{
	Browser.platform = "others";
}

if (navigator.appName.indexOf("Microsoft") >= 0)
{
	if (Browser.platform == "win")
	{
		Browser.name = "win_ie";
	}
	else
	{
		Browser.name = "mac_ie";
	}
}
else if (navigator.appVersion.indexOf("Apple") >= 0)
{
	// navigator.appVersion is used instead
	// as navigator.appName returns "netscape" in safari
	Browser.name = "safari";
}
else if (navigator.appName.indexOf("Netscape") >= 0)
{
	if (Browser.platform == "win")
	{
		Browser.name = "win_ns";
	}
	else
	{
		Browser.name = "mac_ns";
	}
}
else
{
	Browser.name = "others";
}

var	Info = new Object();

Info.safari		 = {version: "1.x", w: {scrollbar: 16, edge: 0}, h: {menubar: 22, toolbar: 52, title: 22, scrollbar: 16, edge: 0}}; // toolbar incl. bookmarkbar
Info.mac_ie		 = {version: "5.1", w: {scrollbar: 16, edge: 6}, h: {menubar: 22, toolbar: 42, title: 22, scrollbar: 16, edge: 6}};
Info.win_ie		 = {version: "6.0", w: {scrollbar: 16, edge: 5}, h: {menubar: 22, toolbar: 27, title: 22, scrollbar: 16, edge: 5}};
Info.win_ns		 = {version: "MOZ", w: {scrollbar: 10, edge: 0}, h: {menubar: 22, toolbar: 64, title: 22, scrollbar: 16, edge: 0}};
Info.mac_ns		 = {version: "MOZ", w: {scrollbar: 10, edge: 0}, h: {menubar: 22, toolbar: 64, title: 22, scrollbar: 16, edge: 0}};
Info.others		 = {version: "N/A", w: {scrollbar: 10, edge: 0}, h: {menubar: 22, toolbar: 10, title: 22, scrollbar: 16, edge: 0}};



	
// Window functions ---------------------

function open_video (the_url, the_name, w, h)
{
	var video = {w: 320, h: 240, controller: 16, x: 30, y: 30};
	var margin = {w: 8, h: 10};
	var w = video.w + 2 * margin.w;
	var h = video.h + 2 * margin.h + video.controller;
	var	features   = "," + "toolbar=0,status=0,menubar=0";

	parameters = "width=" + w + ",height=" + h + ",left=" + video.x + ",top=" + video.y + features;
	child      = window.open(the_url, "video", parameters);
	child.focus();
}


function open_window (the_url, the_name, w, h)
{
	var dimension = Info[Browser.name];
	var	features   = "," + "toolbar=0,status=0";
	var use_scrollbars = false;
	if (Browser.platform == "win")
	{
		features += ",menubar=1";
	}
	var x = Math.round((screen.width - w) / 2) - dimension.w.edge;
	var y = Math.round((screen.height - h) / 2) - dimension.h.title;
	if (x < 0) {x = 0;}
	if (y < 0) {y = 0;}
	
	if (Browser.name == "win_ns" || Browser.name == "mac_ns")
	{
		h = h - 1;
	}
	else if (Browser.name == "safari")
	{
		w = w - 2;
		h = h - 1;
	}
	else if (Browser.name == "win_ie")
	{
		h = h - 19;  // win ie tends add extra height when the menubar is present
	}
	if (w > screen.availWidth)
	{
		use_scrollbars = true;
		w = screen.availWidth;
	}
	if (h > screen.availHeight)
	{
		use_scrollbars = true;
		w = screen.availHeight;
	}
	if (use_scrollbars)
	{
		features += ",scrollbars=1";
	}
	else
	{
		features += ",scrollbars=0";
	}
	parameters = "width=" + w + ",height=" + h + ",left=" + x + ",top=" + y + features;
	child      = window.open(the_url, the_name, parameters);
	child.focus();
}


function adjust_window (w, h)
{
	// adjust the parent window so that it sits directly below the spawn window
	// w and h are the dimensions of the content of the spawn window
	var dimension = Info[Browser.name];
	var x = Math.round((screen.width - w) / 2) - dimension.w.edge;
	var y = Math.round((screen.height - h) / 2) - dimension.h.title;
	if (x < 0) {x = 0;}
	if (y < 0) {y = 0;}

	if (Browser.name == "mac_ie")
	{
		w_window = w;
		h_window = h + dimension.h.title - dimension.h.scrollbar - dimension.h.edge;
		w = w - dimension.w.scrollbar;
		h = h - dimension.h.scrollbar;
	}
	else if (Browser.name == "safari")
	{
		w_window = w - 4;
		h_window = h + dimension.h.title + dimension.h.edge - 6; // minus 5 to avoid heavy window drop shaw
	}
	else if (Browser.name == "win_ns" || Browser.name == "mac_ns")
	{
		w_window = w + 2 * dimension.w.edge;
		h_window = h + dimension.h.edge - 1;
	}
	else if (Browser.platform == "win")
	{
		w_window = w + 2 * dimension.w.edge;
		h_window = h + dimension.h.edge + dimension.h.toolbar;
	}
	if (w_window > screen.availWidth)
	{
		w_window = screen.availWidth;
	}
	if (h_window > screen.availHeight)
	{
		h_window = screen.availHeight;
	}
	self.resizeTo(w_window, h_window);  // 1. resizes (usually reduces) the window 
	self.moveTo(x, y);					// 2. position the window at center of screen
}


function maximise_window()
{
	self.moveTo(0, 0);
	self.resizeTo(screen.availWidth, screen.availHeight);
}


function resize_window(w, h)
{
	var to_maximise	= false;
	var offset		= {x: 3, y: 3};
	var extend		= {w: 0, h: 0};
	var dimension	= Info[Browser.name];
	
	if (Browser.name == "win_ie" || Browser.name == "mac_ie" || Browser.name == "others")
	{
		w += (dimension.w.scrollbar + 2 * dimension.w.edge);
		h += dimension.h.menubar + dimension.h.title + dimension.h.toolbar + dimension.h.scrollbar + dimension.h.edge; // cover almost everything
	}
	else
	{
		extend.w = w - self.innerWidth;
		extend.h = h - self.innerHeight;
	}
	
	if (Browser.name == "safari" || Browser.name == "mac_ns")
	{
		offset.y += dimension.h.menubar;
	}
	
	if ((screen.availWidth < w + 2 * offset.x) || (screen.availHeight < h + offset.y))
	{
		to_maximise = true;
	}
	
	if (to_maximise)
	{
		maximise_window();
	}
	else
	{
		self.moveTo(offset.x, offset.y);
		if (Browser.name == "win_ie" || Browser.name == "mac_ie" || Browser.name == "others")
		{
			self.resizeTo(950,550);
		}
		else
		{
			self.resizeBy(1010,610);
		}
	}
}

function autosize_window()
{
	if (Browser.name == "safari")
	{
		resize_window(950,550);
	}
	else
	{
		resize_window(1010,610);
	}
}