/* Dhtmllib 1.0 (2004-06-19)
 */
// Determine browser.

var isMinNS4;
var isMinNS5;
var isMinIE4;
var isMinIE5;

if( !zoomBanner ) var zoomBanner = "/images/adv/powered.jpg";

determineBrowser();
disableContextMenu();

function determineBrowser() {

	var s;

	// Set global flags based on browser type and version.

	isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
						    parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
	isMinIE4 = (document.all) ? 1 : 0;
	if( isMinIE4 ) {
		s = navigator.appVersion;
		s = s.substr(s.indexOf("MSIE")).substr(5);
		isMinIE5 = parseFloat(s) >= 5 ? 1 : 0;
	}
	if( isMinNS4 ) {
		isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
						      parseFloat(navigator.appVersion) >= 5) ? 1 : 0;
	}
}

//-----------------------------------------------------------------------------
// Ulilities.
//-----------------------------------------------------------------------------

function printObject( obj, name, maxlevel, curlevel ) {
	if( curlevel >= maxlevel ) return '';
	var htmlText = '';
	var space = '';
	for( var i = 0; i < curlevel; i++ ) space += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	for( var property in obj ) {
		if( obj[property] == '[object]' ) document.write( space + name + '.' + property + '<BR>' + printObject( obj[property], property, maxlevel, curlevel+1 ) );
		else document.write( space + name + '.' + property + ': ' + obj[property] + '<BR>');
	}
}

function disableContextMenu() {
	document.oncontextmenu = function(){ return false; }
	if( isMinNS4 ) { 
		window.captureEvents( Event.MOUSEDOWN );
		window.onmousedown = function( e ){ if(e.target==document) return false; }
	}
	else { document.onmousedown = function(){ return false; } }
}

function getParameter( parameter, url ) {
	if( url == null ) url = window.location.href;
	if( url.indexOf("?") != -1 ) {
		var start = url.indexOf(parameter + "=");
		if( start > 0 ) {
			parameter += "=";
			var tmp = url.substr(start,url.length - start);
			var end = 0;
			end = tmp.indexOf("&");
			if( end > 0 ) {
				return unescape( tmp.substr( parameter.length, end - parameter.length ) );
			}
			else {
				end = tmp.length;
				return unescape( tmp.substr( parameter.length, end - parameter.length ) );
			}
		}
		start = url.indexOf(parameter + "&");
		if( start > 0 ) return true;
		start = url.indexOf(parameter);
		if( start > 0 && (url.indexOf(parameter) + parameter.length == url.length )) return true;
		else return null;
	}
	else return null;
}

function setCookie( name, value ) {
	document.cookie = name + "=" + escape( value ) + "; expires=Mon,21-Jan-08 19:00:00GMT";
}

function setTmpCookie( name, value ) {
	document.cookie = name + "=" + escape( value ) + "; expires=";
}

function getCookie( name ) {
	var tmpName = name + "=";
	if( document.cookie.length > 0 ) {
		var from = document.cookie.indexOf( tmpName );
		if( from != -1 ) {
			from += tmpName.length;
			var to = document.cookie.indexOf( ";", from );
			if( to == -1 ) to = document.cookie.length;
			return unescape( document.cookie.substring( from, to ) );
		}
	}
	return "";
}

function isCookieEnabled( ) {
	var name, value;
	document.cookie = 'testCookie=test; expires=Mon,21-Jan-08 19:00:00GMT';
	document.cookie = 'testTempCookie=test;';
	if( getCookie( 'testCookie' ) == 'test' && getCookie( 'testTempCookie' ) == 'test' ) {
		document.cookie = 'testCookie=n; expires=Mon,21-Jan-08 19:00:00GMT';
		document.cookie = 'testTempCookie=n;';
		return true;
	}
	else {
		document.cookie = 'testCookie=n; expires=Mon,21-Jan-08 19:00:00GMT';
		document.cookie = 'testTempCookie=n;';
		return false;
	}
}

function isJavaEnabled( ) {
	return navigator.javaEnabled( );
}

//-----------------------------------------------------------------------------
// Delayed loader of a page.
//-----------------------------------------------------------------------------

var timerPageLoaderEnable = true;
var timerPageLoaderID = null;
var timerPageLoaderPage = null;
var timerPageLoaderFrame = null;
function executeTimerPageLoader() {
 clearTimeout( timerPageLoaderID );
 if( timerPageLoaderEnable ) timerPageLoaderFrame.location.replace( timerPageLoaderPage );
}
function startTimerPageLoader( frame, page, delay ) {
 timerPageLoaderPage = page;
 timerPageLoaderFrame = frame;
 timerPageLoaderID = setTimeout( "executeTimerPageLoader()", delay );
}
function stopTimerPageLoader() {
	timerPageLoaderEnable = false;
}

//-----------------------------------------------------------------------------
// Layer visibility.
//-----------------------------------------------------------------------------

function hideLayer(layer) {
	if (isMinIE4 || isMinNS5) layer.style.visibility = "hidden";
	else if (isMinNS4) layer.visibility = "hide";
}

function showLayer(layer) {
	if (isMinIE4 || isMinNS5) layer.style.visibility = "visible";
	else if (isMinNS4) layer.visibility = "show";
}

function isVisible(layer) {
	if ((isMinIE4 || isMinNS5) && layer.style.visibility == "visible") return(true);
	else if (isMinNS4 && layer.visibility == "show") return(true);
	return(false);
}

//-----------------------------------------------------------------------------
// Layer positioning.
//-----------------------------------------------------------------------------

function moveLayerTo(layer, x, y) {
	if (isMinIE4||isMinNS5) {
		layer.style.left = x;
		layer.style.top  = y;
	}
	else if (isMinNS4) layer.moveTo(x, y);
}

function moveLayerBy(layer, dx, dy) {
	if (isMinNS4) layer.moveBy(dx, dy);
	if (isMinIE4) {
		layer.style.pixelLeft += dx;
		layer.style.pixelTop  += dy;
	}
	if (isMinNS5) {
		layer.style.left += dx;
		layer.style.top  += dy;
	}
}

function getLeft(layer) {
	if (isMinIE4) return(layer.style.pixelLeft);
	else if (isMinNS5) return(layer.style.left);
	else if (isMinNS4) return(layer.left);
	return(-1);
}

function getTop(layer) {
	if (isMinIE4) return(layer.style.pixelTop);
	else if (isMinNS5) return(layer.style.top);
	else if (isMinNS4) return(layer.top);
	return(-1);
}

function getRight(layer) {
	if (isMinIE4) return(layer.style.pixelLeft + getWidth(layer));
	else if (isMinNS5) return(parseInt(layer.style.left) + parseInt(layer.style.width));
	else if (isMinNS4) return(layer.left + getWidth(layer));
	return(-1);
}

function getBottom(layer) {
	if (isMinIE4) return(layer.style.pixelTop + getHeight(layer));
	else if (isMinNS5) return(parseInt(layer.style.top) + parseInt(layer.style.height));
	else if (isMinNS4) return(layer.top + getHeight(layer));
	return(-1);
}

function getWidth(layer) {
	if (isMinIE4) {
		if (layer.style.pixelWidth) return(layer.style.pixelWidth);
		else return(layer.clientWidth);
	}
	else if (isMinNS5) {
		if (layer.style.width) return(layer.style.width);
		else return(layer.style.right - layer.style.left);
	}
	else if (isMinNS4) {
		if (layer.document.width) return(layer.document.width);
		else return(layer.clip.right - layer.clip.left);
	}
	return(-1);
}

function getHeight(layer) {
	if (isMinIE4) {
		if (false && layer.style.pixelHeight) return(layer.style.pixelHeight);
		else return(layer.clientHeight);
	}
	else if (isMinNS5) {
		if (layer.style.height) return(layer.style.height);
		else return(layer.style.bottom - layer.style.top);
	}
	else if (isMinNS4) {
		if (layer.document.height) return(layer.document.height);
		else return(layer.clip.bottom - layer.clip.top);
	}
	return(-1);
}

function getzIndex(layer) {
	if (isMinIE4 || isMinNS5) return(layer.style.zIndex);
	else if (isMinNS4) return(layer.zIndex);
	return(-1);
}

function setzIndex(layer, z) {
	if (isMinIE4 || isMinNS5) layer.style.zIndex = z;
	else if (isMinNS4) layer.zIndex = z;
}

//-----------------------------------------------------------------------------
// Layer clipping.
//-----------------------------------------------------------------------------

function clipLayer(layer, clipleft, cliptop, clipright, clipbottom) {
	if (isMinIE4 || isMinNS5)
		layer.style.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
	else if (isMinNS4) {
		layer.clip.left   = clipleft;
		layer.clip.top    = cliptop;
		layer.clip.right  = clipright;
		layer.clip.bottom = clipbottom;
	}
}

function getClipLeft(layer) {
	if (isMinIE4 || isMinNS5) {
		var str =  layer.style.clip;
		if (!str) return(0);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[3]);
	}
	else if (isMinNS4) return(layer.clip.left);
	return(-1);
}

function getClipTop(layer) {
	if (isMinIE4 || isMinNS5) {
		var str =  layer.style.clip;
		if (!str) return(0);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[0]);
	}
	else if (isMinNS4) return(layer.clip.top);
	return(-1);
}

function getClipRight(layer) {
	if (isMinIE4 || isMinNS5) {
		var str =  layer.style.clip;
		if (!str) return(layer.style.pixelWidth);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[1]);
	}
	else if (isMinNS4) return(layer.clip.right);
	return(-1);
}

function getClipBottom(layer) {
	if (isMinIE4 || isMinNS5) {
		var str =  layer.style.clip;
		if (!str) return(layer.style.pixelHeight);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[2]);
	}
	else if (isMinNS4) return(layer.clip.bottom);
	return(-1);
}

function getClipWidth(layer) {
	if (isMinIE4 || isMinNS5) {
		var str = layer.style.clip;
		if (!str) return(layer.style.pixelWidth);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[1] - clip[3]);
	}
	else if (isMinNS4) return(layer.clip.width);
	return(-1);
}

function getClipHeight(layer) {
	if (isMinIE4 || isMinNS5) {
		var str =  layer.style.clip;
		if (!str) return(layer.style.pixelHeight);
		var clip = getIEClipValues(layer.style.clip);
		return(clip[2] - clip[0]);
	}
	else if (isMinNS4) return(layer.clip.height);
	return(-1);
}

function getIEClipValues(str) {
	var clip = new Array();
	var i;
	i = str.indexOf("(");
	clip[0] = parseInt(str.substring(i + 1, str.length), 10);
	i = str.indexOf(" ", i + 1);
	clip[1] = parseInt(str.substring(i + 1, str.length), 10);
	i = str.indexOf(" ", i + 1);
	clip[2] = parseInt(str.substring(i + 1, str.length), 10);
	i = str.indexOf(" ", i + 1);
	clip[3] = parseInt(str.substring(i + 1, str.length), 10);
	return(clip);
}

//-----------------------------------------------------------------------------
// Layer scrolling.
//-----------------------------------------------------------------------------

function scrollLayerTo(layer, x, y, bound) {
	var dx = getClipLeft(layer) - x;
	var dy = getClipTop(layer) - y;
	scrollLayerBy(layer, -dx, -dy, bound);
}

function scrollLayerBy(layer, dx, dy, bound) {
	var cl = getClipLeft(layer);
	var ct = getClipTop(layer);
	var cr = getClipRight(layer);
	var cb = getClipBottom(layer);

	if (bound) {
		if (cl + dx < 0) dx = -cl;
		else if (cr + dx > getWidth(layer)) dx = getWidth(layer) - cr;
		if (ct + dy < 0) dy = -ct;
		else if (cb + dy > getHeight(layer)) dy = getHeight(layer) - cb;
	}
	clipLayer(layer, cl + dx, ct + dy, cr + dx, cb + dy);
	moveLayerBy(layer, -dx, -dy);
}

//-----------------------------------------------------------------------------
// Layer background.
//-----------------------------------------------------------------------------

function setBgColor(layer, color) {
	if (isMinIE4 || isMinNS5) layer.style.backgroundColor = color;
	else if (isMinNS4) layer.bgColor = color;
}

function setBgImage(layer, src) {
	if (isMinIE4 || isMinNS5) layer.style.backgroundImage = "url(" + src + ")";
	else if (isMinNS4) layer.background.src = src;
}

//-----------------------------------------------------------------------------
// Layer utilities.
//-----------------------------------------------------------------------------

function getLayer(name) {
	if (isMinNS4) return findLayer(name, document);
	if (isMinIE4) return eval('document.all.' + name);
	return null;
}

function findLayer(name, doc) {
	var i, layer;
	if(isMinNS5 ) {
		return doc.getElementById(name);
	}
	else {
	for (i = 0; i < doc.layers.length; i++) {
		layer = doc.layers[i];
		if (layer.name == name) return layer;
		if (layer.document.layers.length > 0) {
			layer = findLayer(name, layer.document);
			if (layer != null) return layer;
		}
	}
	}
	return null;
}

//-----------------------------------------------------------------------------
// Window and page properties.
//-----------------------------------------------------------------------------

function getWindowWidth() {
	if (isMinIE4) return(document.body.offsetWidth);
	else if (isMinNS4 || isMinNS5) return(window.innerWidth);
	return(-1);
}

function getWindowHeight() {
	if (isMinIE4) return(document.body.offsetHeight);
	else if (isMinNS4 || isMinNS5) return(window.innerHeight);
	return(-1);
}

function getPageWidth() {
	if (isMinIE4) return(document.body.scrollWidth);
	else if (isMinNS4 || isMinNS5) return(document.width);
	return(-1);
}

function getPageHeight() {
	if (isMinIE4) return(document.body.scrollHeight);
	else if (isMinNS4 || isMinNS5) return(document.height);
	return(-1);
}

function getPageScrollX() {
	if (isMinIE4) return(document.body.scrollLeft);
	else if (isMinNS5) return(window.scrollX);
	else if (isMinNS4) return(window.pageXOffset);
	return(-1);
}

function getPageScrollY() {
	if (isMinIE4) return(document.body.scrollTop);
	else if (isMinNS5) return(window.scrollY);
	else if (isMinNS4) return(window.pageYOffset);
	return(-1);
}

function getPageInFrameWidth( frame ) {
	if (isMinIE4 || isMinNS5) return(frame.document.body.scrollWidth);
	else if (isMinNS4) return(frame.document.width);
	return(-1);
}

function getPageInFrameHeight( frame ) {
	if (isMinIE4 || isMinNS5) return(frame.document.body.scrollHeight);
	else if (isMinNS4) return(frame.document.height);
	return(-1);
}

function getScreenWidth() {
	return screen.width;
}

function getScreenHeight() {
	return screen.height;
}
