/**********************************************************
			I n i t i a l i z a t i o n
***********************************************************/

Array.prototype.indexOf = function (obj) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == obj)
            return i;
    }
    return -1;
}

Array.prototype.has = function (obj) {
    return this.indexOf(obj) >= 0;
}

function initInterface(){
	if( doStyle ){
	
		PAGE = getPage(PAGEID);															
		if( PAGE == null ){	doDOM = false; }
		else { initPage( PAGE ); }	
	}
}

/**********************************************************
	T o p  /  B o t t o m   B a n n e r   S c r i p t s
***********************************************************/


/*     t o g g l e T h e m e L i n k ( )     */

function toggleThemeLink(theme){
	if( doImage ){			// exlude ancient browsers
	
		var topImg = theme + 'TIL';		// Top Image Link
		//var bottomImg = theme + 'BIL';	// Bottom Image Link
		var topTextLink = theme + 'TL';	// Text Link
		var bottomTextLink = theme + 'BTL';	// Text Link
		
		if( document.images[topImg].src == onImg[theme].src )
		{	// t h e m e  o f f 
			document.images[topImg].src = offImg[theme].src;
			//document.images[bottomImg].src = offImg[theme].src;
			if( doStyle )	{	
				getStyle(topTextLink).textDecoration = 'none';	
				getStyle(bottomTextLink).textDecoration = 'none';	
 			}
		}
		else 
		{	// t h e m e  o n
			document.images[topImg].src = onImg[theme].src;
			//document.images[bottomImg].src = onImg[theme].src;
			if( doStyle )	{	
				getStyle(topTextLink).textDecoration = 'underline';	
				getStyle(bottomTextLink).textDecoration = 'underline';	
			}
		}
	}
}


function toggleSubThemeLink(theme){
	if( doImage ){			// exlude ancient browsers
	
		var topImg = theme + 'IL';		// Top Image Link
		var textLink = theme + 'TL';	// Text Link
		
		if( document.images[topImg].src == onImg[theme].src )
		{	// t h e m e  o f f 
			document.images[topImg].src = offImg[theme].src;
			if( doStyle )	{	
				getStyle(textLink).textDecoration = 'none';	
			}
		}
		else 
		{	// t h e m e  o n
			document.images[topImg].src = onImg[theme].src;
			if( doStyle )	{	
				getStyle(textLink).textDecoration = 'underline';	
			}
		}
	}
}


/*     t o g g l e T e x t L i n k ( )     */
function toggleTextLink(subTheme){
	if( doStyle ){
	
		var textLink = getStyle(subTheme + 'TL');	// Text Link Ref
		
		if( textLink.textDecoration == 'underline' )
		{
			textLink.textDecoration = 'none';
		}
		else
		{
			textLink.textDecoration = 'underline';
		}

	}
}


/*     t o g g l e V i e w L i n k ( )     */

function toggleViewLink(view){
	if( doImage ){			// exlude ancient browsers

		var viewImg = view + 'VIL';
		// i f  o n  -  t u r n   o f f
		if( document.images[viewImg].src == onImg[view].src ) {
			document.images[viewImg].src = offImg[view].src
		}	
		// e l s e  -  t u r n   o n
		else {
			document.images[viewImg].src = onImg[view].src
		}
	}	
}


/**********************************************************
	C o m p a r e  C o l o r  F o r m
***********************************************************/

function submitCompareForm(form){
	form.submit();
}

function changeState(url, newQueryString) {
    var queryString = (window.location.search + newQueryString).split(/[?&]/ig).reverse();
    var part;
    var parts;
    var keys = new Array();
    var partReg = /=/;
    var query = new Array();
    var queryPart = 0;
    for (queryPart = 0; queryPart < queryString.length; queryPart++) {
        part = queryString[queryPart];
        parts = part.split(partReg);
        if (!keys.has(parts[0])) {
            keys.push(parts[0]);
            query.push(parts[0] + "=" + parts[1]);
        }
    }
    window.location.href = url + (query.length > 0 ? "?" : "") + query.join("&");
    return false;
}

/**********************************************************
	S i d e  M e n u  L i n k s 
***********************************************************/

/*     t u r n S N L i n k O n ( )     */

function turnOnMenuLink(ID)
{
	if( doStyle )
	{
		//  g e t   r e f
		var td = getRef( "menuTD" + ID );	
		//var link = getRef( "menuTL" + ID );
		var foundIt = false;
		
		//  b o t t o m  c o l o r  u p 
		for( var i = 0; ( i <= menuColorLimit && !foundIt ); i++ )
		{
			if( td.bgColor == menuColor[i])
			{
				td.bgColor = menuColor[(i+1)];
				foundIt = true;
			}
		}
		//   d e f a u l t 
		if(!foundIt){			
			td.bgColor = menuColor[1];
		}
		
		//getStyle(link).textDecoration = 'underline';	
		
		
	}
}

/*     t u r n S N L i n k O f f ( )     */

function turnOffMenuLink(ID)
{
	if( doStyle )
	{
		//  g e t   r e f
		var td = getRef( "menuTD" + ID );	
		//var link = getRef( "menuTL" + ID );
		var foundIt = false;
		
		//  t o p  c o l o r  d o w n
		for( var i = (menuColorLimit + 1); ( i > 0 && !foundIt ); i-- )
		{
			if( td.bgColor == menuColor[i])
			{
				td.bgColor = menuColor[(i-1)];
				foundIt = true;
			}
		}
		if(!foundIt){				//   d e f a u l t 
			td.bgColor = menuColor[0];
		}

		//getStyle(link).textDecoration = 'none';	

	}
}


/**********************************************************
			T o g g l e    M e n u s
***********************************************************/
/*   t o g g l e M e n u ( )	*/
function toggleMenu(ID)
{
	if( doDOM ){
	
		// p a g e   r e f s
		var thisPage = getPage(ID);		
		
		//  c l o s e    m e n u
		if( thisPage.isOpen )			
		{
			closeMenu(thisPage);
			
			// ! set outside of recursive closeMenu()
			thisPage.isOpen = false;	
			var menuLink = "menuML" + thisPage.ID;
			document.images[menuLink].src = menuImg["plus"].src;
		}
		
		//  o p e n    m e n u 
		else							
		{
			openMenu(thisPage);	
							
			// ! set outside of recursive openMenu()			
			thisPage.isOpen = true;		
			var menuLink = "menuML" + thisPage.ID;
			document.images[menuLink].src = menuImg["minus"].src;
		} 	
	}
}

/*   o p e n M e n u ( )	*/
function openMenu(parentPage)
{
	if( doDOM ){
	
		// g e t   c h i l d r e n
		var childPages = parentPage.getChildren();

		// g e t   e l e m e n t   r e f s
		var parentTR = getRef("menuTR" + parentPage.ID);
		var menuTable =  getRef("menuTable").tBodies[0];
		
		//   g e t   n e x t   t r   r e f
		var nextParentTR = parentTR.nextSibling;
			
		//   l o o p  t h r o u g h  c h i l d r e n 
		for( var i = 0; i < childPages.length ; i++ ){
		
			var currentPage = childPages[i];
		
			//  c h e c k   a c c e s s
			if( ACCESS >= currentPage.access )
			{
				//  c r e a t e   n e w   < T R >    e l e m e n t
				var newTR = menuTable.insertBefore( document.createElement("TR"), nextParentTR );					
				newTR.id = "menuTR" + currentPage.ID;

				//  c r e a t e   n e w   < T D >    e l e m e n t					
				var newTD = newTR.appendChild( document.createElement("TD") );
				newTD.id = "menuTD" + currentPage.ID;
				newTD.bgColor = menuColor[currentPage.colorID]; 
				
				//  b u i l d  i n n e r H T M L					
				var str = '';
				str += '<table cellpadding=4 cellspacing=0 border=0><tr>';
				
				var spacerCell = '<td><img src="' + PAGEPATH + 'images/interface/10x10_space.gif" width="10" height="10" border="0" alt="" /></td>';
				
				//  a d d   s p a c e
				for( var j = currentPage.getLevel(); j > 0; j-- ){
					str += spacerCell;
				}
				
				//  a d d    p l u s / m i n u s    l i n k
				if( currentPage.hasChildren() )		
				{
					var imageName = "";
					if( currentPage.isOpen ){ imageName = "minus"; }
					else { imageName = "plus"; }
					str += '<td><a href="javascript:toggleMenu(' + currentPage.ID + ')"><img src="' + PAGEPATH + 'images/interface/10x10_' + imageName + '.gif" id="menuML' + currentPage.ID + '" name="menuML' + currentPage.ID + '" width=10 height=10 border=0 /></a></td>';
				}
				else		// e l s e  a n o t h e r  s p a c e
				{
					str += spacerCell;
				}
				
				//  t e x t   l i n k    c e l l 
				str += '<td>';
				
				if( currentPage == PAGE )		// write title
				{
					str += '<span class="menu">' + currentPage.title + '</span>';			
				}
				else							// write link
				{
					str += '<a href="' + currentPage.url + '" id="menuTL' + currentPage.ID + '" class="menu" onmouseover="turnOnMenuLink(' + currentPage.ID + ')" onmouseout="turnOffMenuLink(' + currentPage.ID + ')">' + currentPage.title + '</a>';
				}
				
				
				str += '</td>';
				str += '</tr></table>';

				newTD.innerHTML = str;	
				
				if( currentPage.hasChildren() && currentPage.isOpen )
				{
					openMenu(currentPage);
				}					
				
			}	//   e n d   i f
		} 	//  e n d    f o r 
		
	}
}

/*    c l o s e M e n u ( )	 */
function closeMenu(parentPage)
{
	if( doDOM ){

		// p a g e   r e f s
		var childPages = parentPage.getChildren();
		
		// e l e m  e n t   r e f s
		var menuTable =  getRef("menuTable").tBodies[0];

		//   l o o p  t h r o u g h  c h i l d r e n 
		for( var i = 0; i < childPages.length ; i++ ){
		
			var currentPage = childPages[i];
			if( currentPage.hasChildren() && currentPage.isOpen )
			{
				closeMenu( currentPage );
			} 
			oldRow = getRef("menuTR" + childPages[i].ID);
			if( oldRow != null )
			{
				menuTable.removeChild(oldRow);		
			}
		}
					
	}
}






