// Cross-browser, cross-platform, self-resizing web page background images. JavaScript code
// copyright 2006, 2007, 2008 Boutell.Com, Inc. See http://www.boutell.com/newfaq/ for more information.

function rbIsIE()
{
	if (navigator.appName == 'Microsoft Internet Explorer') {
		return true;
	}
	return false;
}

function rbIsOpera()
{
	if (navigator.appName == 'Opera') {
		return true;
	}
	return false;
}

function rbSupportsFixed()
{
	if (navigator.appName == 'Microsoft Internet Explorer') {
		var agent = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		var version;
		if (re.exec(agent) != null) {
			version = parseFloat(RegExp.$1);
		}
		if (version < 7.0) {
			return false;
		}
	}
	return true;
}

var rbCenter = false;

function rbInit()
{
	if (rbSupportsFixed()) {
		div = document.getElementById('rbBackgroundDiv');
		div.style.position = 'fixed';
	}	
	setTimeout("rbReposition()", 50);
	rbResize();
}

var rbLastScrollTop = null;
var rbSimulateTop = 0;
 
function rbResize()
{
	var width;
	var height;
	var x, y, w, h;
	if (rbIsIE()) {
		width = parseInt(document.documentElement.clientWidth); 	
		height = parseInt(document.documentElement.clientHeight); 	
	} else if (rbIsOpera()) {
		width = parseInt(window.innerWidth) - 16;
		height = parseInt(window.innerHeight);
	} else {
		testsize = document.getElementById('rbTestSizeDiv');
		width = testsize.scrollWidth;
		height = testsize.scrollHeight;
	}
	div = document.getElementById('rbBackgroundDiv');
	img = document.getElementById('rbBackground');
	if (rbCenter) {
		if (img.width == 0) {
			setTimeout("rbResize()", 1000);
			return;
		}
		w = width;
		h = width * (img.height / img.width);
		x = 0;
		y = (height - h) / 2;	
		if (y < 0) {
			h = height;
			w = height * (img.width / img.height);
			y = 0;
			x = (width - w) / 2;
		}
	} else {
		x = 0;
		y = 0;
		w = width;
		h = height;
	}
	div.style.left = parseInt(x) + "px";
	if (rbSupportsFixed()) {
	  div.style.top = parseInt(y) + "px";
        } else {
          rbSimulateTop = parseInt(y);
        }
	img.style.width = parseInt(w) + "px";
	img.style.height = parseInt(h) + "px";
	div.style.visibility = 'visible';
	rbLastScrollTop = null;
	rbReposition();
}

function rbReposition()
{
	if (rbSupportsFixed()) {
		return;
	}
	setTimeout("rbReposition()", 50);
	body = document.documentElement;
	var scrollTop = body.scrollTop;
	// No scroll since last check
	if (scrollTop == rbLastScrollTop) {
		return;
	}
	rbLastScrollTop = scrollTop;
	div = document.getElementById('rbBackgroundDiv');
	var rbBodyDiv = document.getElementById('rbBodyDiv');
	var pos = 0;
	var max = rbBodyDiv.offsetHeight - rbBodyDiv.clientHeight;
	if (max < 0) {
		max = 0;
	}
	if (scrollTop <= max)
	{
		pos = scrollTop;
	} else {
		pos = max;
	}
	if (pos < 0) {
		pos = 0;
	}
	div.style.top = pos + rbSimulateTop;
}

function rbOpen(center)
{
	rbCenter = center;
	document.write("<div id='rbBodyDiv' style='position: relative; z-index: 2'>\n");
}

function rbClose(image)
{
	document.write("</div>\n");
	str = "<div " +
		"id='rbBackgroundDiv' " +
		"style='position: absolute; " +
		"  visibility: hidden; " +
		"  top: 0px; " +
		"  left: 0px; " +
		"  z-index: 0'>" +
		"  <img src='" + image + "' id='rbBackground'>" +
		"</div>\n";
	document.write(str);
	document.write("<div " +
		"id='rbTestSizeDiv' " +
		"style='width: 100%; " +
		"  height: 100%; " +
		"  position: fixed; " +
		"  left: 0; " +
		"  top: 0; " +
		"  visibility: hidden; " +
		"  z-index: -1'></div>\n");
}