
/** global variables ***/
var arrNaviDefault = new Array( ) ;
var arrNaviActive = new Array( ) ;
var intCurrentNav = 0 ;
var intActiveNav = 0 ;
var strCSSActive = " highlight" ;
var reAttrRemove = new RegExp( "\s*" + strCSSActive + "\s*", "i" ) ;



function openPopup( intWidth, intHeight, strURL )
{
	var iLeft = screen.width / 2 - intWidth/2 ;
	var iTop = screen.height / 2 - intHeight/2 ;
	intWidth = intWidth || 500 ;
	intHeight = intHeight || 500 ;
	strURL = strURL && strURL.length ? strURL : "about:blank" ;
	var winLBSPopup = window.open( strURL,"lbsPopup","width=" + intWidth + ",height=" + intHeight + ",left=" + iLeft + ",top=" + iTop + ",scrollbars=yes,dependent=yes,menubar=no" );
	if( winLBSPopup )
		winLBSPopup.focus() ;
	return false;
}


/** init main and section navigation **/
function initLBSNav( )
{
	if( !document.getElementById )
		return ;
	if( initMainnav( ) )
	{
		createSubnavigation( ) ;
		setSubnavEvents( ) ;
	}
	setMarkerEvents( document.getElementById( "sectionnavi" ) );
}


/****************************************
*		Main navigation                 *
*****************************************/

function initMainnav( )
{
	
	if( document.getElementById( "mainnavigation" ) &&
		document.getElementById( "mainnavigation" ).getElementsByTagName( "img" ).length )
	{
		for( var i = 1; i <= 8; i++ )
		{
			var imgMouseover = eval( "MAINNAV_" + i + "_ACT" ) ;
			if( trimString( imgMouseover ).length )
			{
				var objLink = document.getElementById( "mainnav" + i ).parentNode ;
				var intLeft = objLink.offsetLeft ;
				var intWidth = document.getElementById( "mainnav" + i ).offsetWidth; 
				objLink.innerHTML = "<img id=\"mainnav" + i + "_1\" src=\"" + imgMouseover + "\" style=\"visibility: hidden; position: absolute; top: 0px; left:" + intLeft + "px; width: " + intWidth + "px; height: 37px;\" />" + objLink.innerHTML ;
			}
		}
		return true;
	}
	return false;
}



function setSubnavEvents( )
{
	for( var i = 1; i <= 8; i++ )
	{
		var objImg = document.getElementById( "mainnav" + i ) ;
		if( objImg )
		{
			objImg.parentNode.onmouseover = new Function( "markMainnavItem(" + i + ");" ) ;
			objImg.parentNode.onmouseout = new Function( "event", "if(!event) event = window.event; resetMainnavItem( event," + i + ") ;" ) ;
			if( objImg.src.substr( objImg.src.length - 7 ) == "act.gif" )
				intActiveNav = i ;
		}
	}
}

	
function markMainnavItem( intID )
{
	if( intCurrentNav != intID )
	{
		if( intCurrentNav )
			resetMainnavItem( null, intID, true ) ;
		intCurrentNav = intID ;
		document.getElementById( "mainnav" + intID ).style.visibility = "hidden" ;
		document.getElementById( "mainnav" + intID + "_1" ).style.visibility = "visible" ;
		showSubnav( intID ) ;
	}
}

function resetMainnavItem( objEvent, intID, blnHide )
{
	if( blnHide || !isInside( intID, objEvent ) )
	{
		intCurrentNav = 0 ;
		if( intID != intActiveNav )
		{
			document.getElementById( "mainnav" + intID + "_1" ).style.visibility = "hidden" ;
			document.getElementById( "mainnav" + intID ).style.visibility = "visible" ;
		}
		hideSubnav( intID ) ;
	}
}
	
	
	function showSubnav( intID )
	{
		resetMainnav( intID ) ;
		var objSubnav = document.getElementById( "subnav" + intID ) ;
		if( !objSubnav )
			return ;
		objSubnav.style.visibility = "visible" ;
		objSubnav.style.left = document.getElementById( "mainnav" + intID ).offsetLeft + document.getElementById( "mainnavigation" ).offsetLeft + "px" ;
		objSubnav.style.top = ( document.getElementById( "mainnav" + intID ).offsetParent.offsetTop + 32 ) + "px" ;
	}
	
	function hideSubnav( intID )
	{
		var objSubnav = document.getElementById( "subnav" + intID ) ;
		if( !objSubnav )
			return ;
		objSubnav.style.visibility = "hidden" ;
	}
	
	
	function resetMainnav( intID )
	{
		for( var i = 1; i < 8; i++ )
		{
			if( i != intID )
				resetMainnavItem( null, i, true )
		}
	}
	
	
	function isInside( intID, objEvent )
	{
		var intX = objEvent.clientX - ( window.event && document.all ? 2 : 0 ) ;
		var intY = objEvent.clientY - ( window.event && document.all ? 2 : 0 ) ;
		objSNavi = document.getElementById( "subnav" + intID ) ;
		objMNavi = document.getElementById( "mainnav" + intID ) ;
		objMNaviParent = document.getElementById( "mainnavigation" ) ;
		return (objSNavi && intX > objSNavi.offsetLeft && intX < objSNavi.offsetLeft + document.getElementById( "subnavitems" + intID ).offsetWidth
		&& intY > objSNavi.offsetTop && intY < objSNavi.offsetTop + document.getElementById( "subnavitems" + intID ).offsetHeight ) ||
		(intX > objMNavi.offsetLeft + objMNaviParent.offsetLeft && intX <  objMNavi.offsetLeft + objMNaviParent.offsetLeft + objMNavi.offsetWidth
		&& intY > objMNaviParent.offsetTop && intY < objMNaviParent.offsetTop + objMNavi.offsetHeight ) ;
	}
	
	
	
/****************************************
*		Sub navigation                  *
*****************************************/

function createSubnavigation( )
{
	var strSubnavigation = "" ;
	var objBody = document.getElementsByTagName( "body" )[ 0 ] ;
	for( var i = 1; i <= 8; i++ )
	{
		var strItems = createItems( i ) ;
		if( strItems.length )
		{
			if( document.all )
				document.body.insertAdjacentHTML( "BeforeEnd", "<div class=\"subnavi\" id=\"subnav" + i + "\"></div>" ) ;
			else
				createDiv( objBody, new Array( new Array( "class", "subnavi" ), new Array( "id", "subnav" + i ) ) ) ;
			objDiv = document.getElementById( "subnav" + i ) ;
			objDiv.onmouseout = new Function( "event", "if( !event ) event = window.event; resetMainnavItem( event, " + i + " )" ) ;//  function( event ){ resetMainnavItem( event, i ) } ;
			objDiv.innerHTML = strItems ;
			var intHeight = document.getElementById( "subnavitems" + i ).offsetHeight ;
			document.getElementById( "subrshadow" + i ).style.height = intHeight + "px" ;
			document.getElementById( "subbshadow" + i ).style.height = intHeight + 4 + "px" ;
		}
	}	
}


function createItems( intID )
{
	var arrLabels = ( eval( "SUBNAV_" + intID + "_LABELS" ) ).split( "," ) ;
	var arrLinks = ( eval( "SUBNAV_" + intID + "_LINKS" ) ).split( "," ) ;
	var strSubnav = "" ;	
	
	if( arrLabels.length )
	{
		for( var i = 0; i < arrLabels.length; i++ )
		{
			var strLabel = trimString( arrLabels[i] ) ;
			var strLink = trimString( arrLinks[i] ) ;
			if( strLabel.length )
				strSubnav += "<div class=\"item\"><a href=\"" + strLink + "\">" + strLabel + "</a></div>"	;
		}
		if( strSubnav.length )
		{
			strSubnav = "<div id=\"subrshadow" + intID + "\" class=\"subnavirightshadow\"></div>"
						+ "<div id=\"subbshadow" + intID + "\" class=\"subnavibottomshadow\"></div>"
						+ "<div id=\"subnavitems" + intID + "\" class=\"subnaviborder\">" + strSubnav + "</div>" ;	
		}
	}
	return strSubnav ;
}


function trimString( strInput )
{
	if( !strInput )
		return "" ;
	return strInput.replace( /^\s+/, "" ).replace( /\s+$/, "" ) ;	
}



/****************************************
*		Section navigation              *
*****************************************/

var objActiveNav = null;
function showMarker( objEvent, intID )
{
	document.getElementById( "sndyn" + intID ).style.visibility = "visible" ;
	if( objEvent && !document.all )
	{
		var strCurrentAttr = objEvent.currentTarget.getAttribute( "class" ) ;
		if( strCurrentAttr.indexOf( strCSSActive ) == -1 )
			objEvent.currentTarget.setAttribute( "class", strCurrentAttr + strCSSActive ) ;
	}
	else
	{
		var objElement = objEvent.srcElement.tagName == 'A' ? objEvent.srcElement.parentNode : objEvent.srcElement ;
		if( objElement.className.indexOf( strCSSActive ) == -1 && objElement.className.indexOf( "item" ) >= 0 )
		{
			if( objActiveNav )
				objActiveNav.className = removeAttribute( objActiveNav.className ) ;
			objElement.className = objElement.className + strCSSActive ;
			objActiveNav = objElement ;
		}
	}
}

function hideMarker( objEvent, intID, objTarget )
{
	//if( isInsideSection(objEvent))
		//return;
	document.getElementById( "sndyn" + intID ).style.visibility = "hidden" ;
	if( objEvent && !document.all )
	{
		objTarget = objTarget ? objTarget : objEvent.currentTarget ;
		var strClass = objTarget.getAttribute( "class" ) ;
		objTarget.setAttribute( "class", removeAttribute( strClass ) ) ;
	}
	else
	{
		objTarget = objTarget ? objTarget : objEvent.srcElement ;
		if( objTarget.tagName != "DIV" )
			return;
		var strClass = objTarget.className ;
		objTarget.className = removeAttribute( strClass ) ;
	}
}

function hideMarker1( objEvent, intID )
{
	hideMarker( objEvent, intID, arrSnItems[ intID ] ) ;
}


var arrSnItems = new Array( ) ;

function setMarkerEvents( objDiv )
{
	if( !objDiv )
		return false ;
	objDiv.style.visibility = "hidden" ;
	arrSnItems = objDiv.getElementsByTagName( "div" ) ;
	for( var i = 0; i < arrSnItems.length; i++ )
	{
		if( !arrSnItems[ i ].id && arrSnItems[ i ].getElementsByTagName( "a" ).length )
		{
			var intY = getYPosition( arrSnItems[ i ] ) ;
			if( document.all )
			{
				document.body.insertAdjacentHTML( "BeforeEnd", "<div id=\"sndyn" + i + "\" class=\"marker iemarker\" style=\"height: " + ( arrSnItems[ i ].offsetHeight - 2 ) + "px; top: " + ( intY + 1 ) + "px;\"></div>" ) ;
				arrSnItems[ i ].getElementsByTagName( "a" )[ 0 ].onmouseover = new Function( "", "showMarker( window.event, " + i + " )" ) ;
			}
			else
				createDiv( objDiv, new Array( new Array( "id", "sndyn" + i ), new Array( "class", "marker" ), new Array( "style", "height: " + ( arrSnItems[ i ].offsetHeight ) + "px; top: " + ( arrSnItems[ i ].offsetTop ) + "px;" ) ) ) ;
			document.getElementById( "sndyn" + i ).onmouseout = new Function( "event","if( !event ) event = window.event; hideMarker1( event," + i + " );" ) ;
			document.getElementById( "sndyn" + i ).innerHTML = "<div style=\"height: 8px; position: relative; top: " + (arrSnItems[ i ].offsetHeight - 2 - 8 ) / 2 + "px; font-size: 0px; background-color: red;\"></div>" ;
			arrSnItems[ i ].getElementsByTagName( "a" )[ 0 ].parentNode.onmouseover = new Function( "event", "if( !event ) event = window.event; showMarker( event, " + i + " )" ) ;
			arrSnItems[ i ].getElementsByTagName( "a" )[ 0 ].parentNode.onmouseout = new Function( "event", "if( !event ) event = window.event; hideMarker( event, " + i + " )" ) ;
		}
		else if( document.all && arrSnItems[ i ].className == 'bottomitem' )
			arrSnItems[ i ].onmouseover = resetSectionNav ;
	}
	objDiv.style.visibility = "visible" ;
	return arrSnItems.length ;
}


function isInsideSection( objEvent )
{
	var intX = objEvent.clientX - ( window.event && document.all ? 2 : 0 ) ;
	var intY = objEvent.clientY - ( window.event && document.all ? 2 : 0 ) ;
	var objSNavi = objEvent.target ? objEvent.target : objEvent.srcElement ;
	var intX1 = getXPosition( objSNavi) ;
	var intY1 = getYPosition( objSNavi) ;
	return (intX < intX1 + objSNavi.offsetWidth - 1
			&& intY > intY1 && intY < intY1 + objSNavi.offsetHeight - 1 ) ;
}



function resetSectionNav( )
{
	for( var i = 0; i < arrSnItems.length; i++ )
		arrSnItems[ i ].className = removeAttribute( arrSnItems[ i ].className ) ;
}

function getXPosition( objDiv )
{
	var objDiv = ( typeof objDiv == "String" ) ? document.getElementById( strID ) : objDiv ;
	var intX = 0 ;
	do
	{
		intX += objDiv.offsetLeft ;
		objDiv = objDiv.offsetParent ;
	} while( objDiv ) ;
	return intX ;
}


function getYPosition( objDiv )
{
	var objDiv = ( typeof objDiv == "String" ) ? document.getElementById( strID ) : objDiv ;
	var intY = 0 ;
	do
	{
		intY += objDiv.offsetTop ;
		objDiv = objDiv.offsetParent ;
	} while( objDiv ) ;
	return intY ;
}


function removeAttribute( strAttribute )
{
	return strAttribute.replace( reAttrRemove, "" ) ;
}


function createDiv( objParent, arrAttributes )
{
	var objDiv = document.createElement( "div" ) ;	
	for( var i= 0; i < arrAttributes.length; i++ )
	{
		var objAttr = document.createAttribute( arrAttributes[ i ][ 0 ] ) ;
		objAttr.nodeValue = arrAttributes[ i ][ 1 ] ;
		objDiv.setAttributeNode( objAttr ) ;
	}
	objParent.appendChild( objDiv ) ;
}

