/*

This file contains the necessary functions to manipulate dropdown menu items
... Required File. DOM.js
... Required File. DetectIE.js
... Extracted FROM
... Instant JavaScript, Martin Webb, Michel Plungjan, Keith Drakard, by McGraw Hill
... Created by Mariano S. Tanenglian, Jr. www.childoftheworld.com
...
... for Brandon Grossutti, Wolverton Securities
... Copyright © 2002.

... modified May 13 2002 for McElhanney to allow frame-based menu manipulation

... changes made allows 3 level maps ... 2 frame capable


*/

/*

IMPORTANT... If frames were used, there won't be any toolbar in the child frame. 
This was never tested but it could perhaps affect the codes. 

Revision date :: May 16 2002
Revision date :: May 21 2002 Changes made to forcedcloseMenu.
Revision date :: May 31 2002 Changes made to openMenu(), forcedeMenu(), CloseMenuAll()
Revision Date :: June 3 2002. Syntax Checked
Revision Date :: June 4 2002. Syntax revised. 
Revision Date :: June 7 2002. Timer variable added. 
Revision Date :: June 24 2002. Array added for pushing & popping
Revision Date :: August 8 2002. Revision from Intranet to Internet. Adoption to the INTERNET.
*/

var timer, closing = true;
var timeClose;
var arOpen = new Array(6);
var arTemp = new Array(6);
var arHide = new Array(6);
var defaultMenu;
defaultMenu = "";

//Initiate Array with String Delete
for (var sx = 0; sx < arOpen.length; sx++){
	arOpen[sx] = "delete";
}//end for loop to initialise

function closeMenu() {

	//alert("closemenu called");
	//defaultMenu = menuName;
  closing = true;
  
  if(detectIE()){
  	timer = setTimeout('closeMenuAll()', 800);
  } else {
  	timer = setTimeout('closeMenuAll()', 800);  
  }
  
}

function keepOpen() {
  closing = false;
  clearTimeout(timer);
}

function forceDeMenu() {
//this is done to manually force a menu off the screen
  	var args;
  	var argslen;
  	var menuhide;
  	args = forceDeMenu.arguments;
  	argslen = args.length;
  	templen = argslen;
  	if (window.DOMObjects && closing) {
  	
	//clearTransfer();
		//alert(templen);
    		for (var i=0; i < arOpen.length; i++) {
			switch (templen){
				case 1:
					
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[0])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
						}//end if      				
					}

				break;

				case 2:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[0])&& (arOpen[i] != args[1])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
						}//end if      				
					}			
				break;
				case 3:
					
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[0])&& (arOpen[i] != args[1])&& (arOpen[i] != args[2])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
						}//end if      				
					}

				break;

				case 4:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[0])&& (arOpen[i] != args[1])&& (arOpen[i] != args[2])&& (arOpen[i] != args[3])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
						}//end if      				
					}			
				break;
				case 5:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[0])&& (arOpen[i] != args[1])&& (arOpen[i] != args[2])&& (arOpen[i] != args[3])&& (arOpen[i] != args[4])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
						}//end if      				
					}			
				break;
				
				default:
					alert("Error Processing Request at openMenu()");
					break;

			}//end switch
		}//end loop
	
	//for(var mj = 0; mj < arOpen.length; mj++){
	//	alert("After Forcing Menus OPEN arOPENbcontent is " + arOpen[mj]);
	//}//


	//transferTrack();
	//clearTransfer();  	

	}//end if condition
}//end function


function closeMenuAll() {
    
  if (window.DOMObjects && closing) {
  
  	//alert(arOpen.length);
    for (var i=0; i < arOpen.length; i++) {
        	//alert("I am hiding " + arOpen[i]);
    		if(arOpen[i] != defaultMenu){
    			//alert("hide at count " + i);
    			//alert(arOpen[i]);
    			DOMElementHide(DOMObjects[arOpen[i]]);
    			arOpen[i] = "delete";
    		}//end if condition
    
    }//end for


    for (var i=0; i<DOMObjects.length; i++) {
      if ((DOMObjects[i].id != 'toolbar') && (DOMObjects[i].id != '')&&(DOMObjects[i].id != defaultMenu)&&(DOMObjects[i].id != 'mlsladvertise')&&(DOMObjects[i].id != 'mcsladvertise')&&(DOMObjects[i].id != 'mcslmission')&&(DOMObjects[i].id != 'mcslcorporate')&&(DOMObjects[i].id != 'mlslmission')&&(DOMObjects[i].id != 'mlslcorporate')&&(DOMObjects[i].id != 'describeswap')){
        if(DOMObjects[i]){
        	DOMElementHide(DOMObjects[i]);
    	}//end if
      }//end if
    }//end for

    
    	//for(var mj = 0; mj < arOpen.length; mj++){
    	//	alert("After Close Delete OPEN arOPENbcontent is " + arOpen[mj]);
    	//}//
    //deleteallTrack();
  }//end if
}//end func

function openMenu(x, y) {

 //var compte;
 //compte = 0;
 	//alert("am I even being called?")
  	var args;
  	var argslen;
  	var menuhide;
  	var templen;
  	args = openMenu.arguments;
  	//alert(args.length);
  	argslen = (args.length);
  	templen = (argslen - 2);
    	keepOpen();
	  	
  	if (window.DOMObjects) {

  	//alert(argslen);
  	//alert("Hello");

  	for(var am = 2; am < args.length; am++){
  		//alert(args.length);
  		addTrack(args[am]);
  	}//end for condition

	//for(var mj = 0; mj < arOpen.length; mj++){
	//	alert("After Adding OPEN arOPENbcontent is " + arOpen[mj]);
	//}//

	//alert("Length of AR Before HIDE " + arOpen.length);
	//alert("Bye Bye");
	//clearTransfer();

    		//alert(templen);
    		for (var i=0; i < arOpen.length; i++) {
			switch (templen){
				case 1:
					
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[2])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
							//alert("I am hiding element " + arOpen[i]);
						}//end if      				
					}

				break;

				case 2:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[2])&& (arOpen[i] != args[3])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
							//alert("I am hiding element " + arOpen[i]);
						}//end if      				
					}			
				break;
				case 3:
					
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[2])&& (arOpen[i] != args[3])&& (arOpen[i] != args[4])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
							//alert("I am hiding element " + arOpen[i]);
						}//end if      				
					}

				break;

				case 4:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[2])&& (arOpen[i] != args[3])&& (arOpen[i] != args[4])&& (arOpen[i] != args[5])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
							//alert("I am hiding element " + arOpen[i]);
						}//end if      				
					}			
				break;
				case 5:
					if ((arOpen[i] != 'toolbar') && (arOpen[i] != '') && (arOpen[i] != args[2])&& (arOpen[i] != args[3])&& (arOpen[i] != args[4])&& (arOpen[i] != args[5])&& (arOpen[i] != args[6])&&(arOpen[i] != 'mlsladvertise')&&(arOpen[i] != 'mcsladvertise')&&(arOpen[i] != 'mcslmission')&&(arOpen[i] != 'mcslcorporate')&&(arOpen[i] != 'mlslmission')&&(arOpen[i] != 'mlslcorporate')&&(arOpen[i] != 'describeswap')){
						if(DOMObjects[arOpen[i]]){
							DOMElementHide(DOMObjects[arOpen[i]]);
							arOpen[i] = "delete";
							//alert("I am hiding element " + arOpen[i]);
						}//end if      				
					}			
				break;
				
				default:
					alert("Error Processing Request at openMenu()");
					break;

			}//end switch
		}//end loop

	//for(var mj = 0; mj < arOpen.length; mj++){
	//	alert("After Adding & Deleting OPEN arOPENbcontent is " + arOpen[mj]);
	//}//



	//transferTrack();
	//clearTransfer();  	
	//alert("Length of AR After HIDE " + arOpen.length);


	DOMElementSetLeft(DOMObjects[args[2]],xOffset + x);
	DOMElementSetTop(DOMObjects[args[2]],yOffset + y);
	DOMElementShow(DOMObjects[args[2]]);		


	}//end if statement window.DOMObjects

}// end function openMenu

var xOffset = yOffset = 0;

function start(myframename, toolbar_main) {

  if (window.DOMObjects)
    DOMInitialize('span', myframename, toolbar_main);

  if (window.DOMObjects) {
    xOffset = DOMElementGetOffsetLeft(DOMObjects['toolbar']);
    yOffset = DOMElementGetOffsetTop(DOMObjects['toolbar']);
  }
}//end function

function addTrack(elemid){

	//alert(arOpen.length);
	//alert(detectTrack(elemid));
	//alert(elemid);
	if(!detectTrack(elemid)){
		//alert("I am at addTrack");
		for(var x = 0; x < arOpen.length; x++){
			//alert(arOpen[x])
			if((!arOpen[x])||((arOpen[x])&&(arOpen[x]=="delete"))){
				arOpen[x] = elemid;
				break;
			}
		}//
		//alert("I made a push");
	}//end if condition

}//end function addTrack

function detectTrack(elemid){

	var detected;
	
		detected = false;
		

	for(var x = 0; x < arOpen.length; x++){
		if (arOpen[x] == elemid){
			//alert("aropen in detect " + arOpen[x]);
			//alert("elemid= " + elemid);
			detected = true;
			break;
		}//end inner if condition
	}//end for condition

	if (detected) {
		//alert("detect returns true");
		return true;
	} else {
		//alert("detect returns false");
		return false;
	}//end if condition

}//end function detectTrack

function deleteallTrack(){
	for(var x = arOpen.length; x > 0; x--){
		if(arOpen[x]){
			arOpen[x] = "delete";
		}//
	}//
}//end function deleteallTrack
