// IE6 flicker fix
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


//DD Tab Menu- Last updated April 27th, 07: http://www.dynamicdrive.com
tabid = "tab_menu_region";	    // name of div containing tabbed menu buttons 
subid = "sub_menu_region"; 	// name of div containing 2nd level sub menu 


var ddtabmenu={
	currentpageurl: window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, ""), //get current page url (minus hostname, ie: http://www.dynamicdrive.com/)
	disappeardelay: 350, //set delay in miliseconds before submenu disappears onmouseout
	menuobj: null, ie: document.all, firefox: document.getElementById&&!document.all, previousmenuitem:null,

    definemenu:function(dselected){
        switch (dselected) { // use numeric reference for tab title 
            case "why_questrade": dselected = 0; break;
            case "account": dselected = 1; break;
            case "trading": dselected = 2; break;
            case "pricing": dselected = 3; break;
            case "education": dselected = 4; break;
            case "orphan": dselected = "orphan"; break;
        }

	    this[tabid+"-menuitems"]=null
	    ddtabmenu.init(tabid, dselected)
    },

    showsubmenu:function(tabid, targetitem, dselected, e, submenuID){
         var menuitems=this[tabid+"-menuitems"]
         for (i=0; i<menuitems.length; i++){
	        menuitems[i].className=""
	        if (typeof menuitems[i].hasSubContent!="undefined") {
		        document.getElementById(menuitems[i].getAttribute("rel")).style.display="none";
		        if (dselected != "orphan") {
                    menuitems[dselected].className="selected";  //use 'selected' image for default selected tab
                }
             }
        }
        targetitem.className="current";
        if (typeof targetitem.hasSubContent!="undefined") {
	        document.getElementById(targetitem.getAttribute("rel")).style.display="block";
	    }


		this.clearhidemenu()
		if (this.ie||this.firefox){
		    targetitem.onmouseout=function(){ddtabmenu.delayhidemenu(dselected)}
		    if (submenuID != null) {
			    this.menuobj=document.getElementById(submenuID);
			    if (this.ie) {
			        this.menuobj.onmouseover=function(){ddtabmenu.clearhidemenu()}
			        this.menuobj.onmouseleave=function(){ddtabmenu.delayhidemenu(dselected)}
			   } else if (this.firefox) {
			        this.menuobj.onmouseover=function(){ddtabmenu.clearhidemenu()}
			        this.menuobj.onmouseout=function(){ddtabmenu.delayhidemenu(dselected)}
			    }
			    //if(e !=null) {
			       // this.menuobj.onmouseout=function(e){ddtabmenu.dynamichide(e, dselected)}
			    //}
			}
       }

    },
	clearhidemenu:function(){
		if (this.delayhide!="undefined")
			clearTimeout(this.delayhide)
	},
	
	contains_firefox:function(a, b) {
		while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
		return false;
	},
	
    delayhidemenu:function(dselected){
		this.delayhide=setTimeout(function(){ddtabmenu.resetmenu(dselected)},this.disappeardelay) //hide menu
		//this.delayhide=setTimeout(function(){tabdropdown.menuobj.style.visibility='hidden'; if (obj2.parentNode.className.indexOf('default')==-1) obj2.parentNode.className=''},this.disappeardelay) //hide menu

	},

	dynamichide:function(e, dselected){ //targetitem refers to tab menu item mouse is currently over
		var evtobj=window.event? window.event : e
		if (this.ie&&!this.menuobj.contains(evtobj.toElement))
			this.delayhidemenu(dselected)
		else if (this.firefox&&e.currentTarget!= evtobj.relatedTarget&& !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget))
			this.delayhidemenu(dselected)/**/
		
	},

    // MODIFIED BEGINS: New function to reset menus 
    resetmenu:function(dselected){
        switch (dselected) { // use numeric reference for tab title 
            case "why_questrade": dselected = 0; break;
            case "account": dselected = 1; break;
            case "trading": dselected = 2; break;
            case "pricing": dselected = 3; break;
            case "education": dselected = 4; break;
            case "orphan": dselected = "orphan"; break;
        }
        
        if(dselected == "orphan") {
            // reset menu to default if user is on an orphan page
             var menuitems=this[tabid+"-menuitems"]
             for (i=0; i<menuitems.length; i++){
	            menuitems[i].className=""
	            if (typeof menuitems[i].hasSubContent!="undefined") {
		            document.getElementById(menuitems[i].getAttribute("rel")).style.display="none";
		            if (dselected != "orphan") {
                        menuitems[dselected].className="";
                    }
                 }
            }
        } else {
	        this[tabid+"-menuitems"]=null
	        ddtabmenu.init(tabid, dselected)
        }
    },

    isSelected:function(menuurl){
	    var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "")
	    return (ddtabmenu.currentpageurl==menuurl)
    },

    addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
	    var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
	    if (target.addEventListener)
		    target.addEventListener(tasktype, functionref, false)
	    else if (target.attachEvent)
		    target.attachEvent(tasktype, functionref)
    },

    init:function(tabid, dselected){
	    var menuitems=document.getElementById(tabid).getElementsByTagName("a");
	    this[tabid+"-menuitems"]=menuitems
	    for (var x=0; x<menuitems.length; x++){
			this[tabid+"-menuitems"][x].hasSubContent=true; // all tab menus have sub-menu links
		    menuitems[x].onmouseover=function(e){
    		    var event=typeof e!="undefined"? e : window.event
		        ddtabmenu.showsubmenu(tabid, this, dselected, event, this.getAttribute("rel")) // call function to switch divs
		    }
		    if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[x].href)){
    		    var event=typeof e!="undefined"? e : window.event;
			    ddtabmenu.showsubmenu(tabid, menuitems[x], dselected);
			    var setalready=true;
		    }
		    else if (parseInt(dselected)==x) {
    		    var event=typeof e!="undefined"? e : window.event;
			    ddtabmenu.showsubmenu(tabid, menuitems[x], dselected);
			}
	    }
    }
}



/*

tabid       = the name of the div (tab_menu) surrounding the top navigation button list
menuitems   = an array of the button links in the 'tab_menu' div
rel         = the ID of the 2nd level menu DIV to show/hide
targetitem  = the div to show/hide, referenced by its corresponding button link (pulled from the menuitems array)

  
	    	    if (dselected == "orphan") {
		    //this.delayhide=setTimeout(function(){ddtabmenu.resetmenu(dselected)},this.disappeardelay) //hide menu
		}

*/
