	var tmoContainer = 			'headRollMenu';
	var tmoPrefix = 				'tmo_';
	var dropPrefix = 				'dropMenu_';

	var baseClass = 				'base';
	var overClass = 				'over';
	var activeClass = 			'active';
	var overActiveClass = 	'overActive';
	var hasDropClass = 			'hasDrop';
	var dropClass = 				'dropMenu';

	var dropWidth = 				175; // CSS overrides this if at least one drop exists
	var timerID = 					null;
	var timeOut = 					300;
	
	var adjust = 0;


////////////////////////////////////////////////////////////////////////////////////////////

    function addDropTriggers(){
			jQuery("#headRollMenu a").hover(
				function(){
					showDrop(getObjInt(jQuery(this).attr("id")));
				},
				function(){
					releaseDrop(getObjInt(jQuery(this).attr("id")));
				}
			);
			jQuery("#mainMenu .dropMenu").hover(
				function(){
					lockDrop();
				},
				function(){
					releaseDrop(getObjInt(jQuery(this).attr("id")));
				}
			);

			if(jQuery('.'+dropClass).length > 0){ // If there's at least one drop
				dropWidth = jQuery('.'+dropClass+':first').width(); // Get width of drop and override dropWidth cal set in dropMenuConfig2.js
			}

		}


////////////////////////////////////////////////////////////////////////////////////////////


    function showDrop(objInt){

			resetDrops();
			resetTimer();

			menuObj = jQuery("#"+tmoPrefix+objInt);
			dropObj = jQuery('#'+dropPrefix+objInt);

			if(jQuery(menuObj).hasClass(baseClass)){
				jQuery(menuObj).removeClass(baseClass).addClass(overClass); // Replace class of base with class of over
			}
			if(jQuery(menuObj).hasClass(activeClass)){
				jQuery(menuObj).removeClass(activeClass).addClass(overActiveClass); // Replace class of active with class of overActive
			}

			if(jQuery(dropObj).length > 0){
				jQuery(menuObj).addClass(hasDropClass);
				leftPad = getLeftPad(jQuery(menuObj).attr("id"));
				jQuery(dropObj).show(); // Show drop
				jQuery(dropObj).css({"left" : leftPad});
			}

    }

////////////////////////////////////////////////////////////////////////////////////////////

    function releaseDrop(objInt){
			if(jQuery('#'+dropPrefix+objInt).length > 0){  // If menu item has drop associated with it
				timerID = setTimeout('resetDrops()', timeOut);  // Reset hover status after timeout
			}
			else{
				resetDrops(); // Reset hover status immediately
			}
    }

////////////////////////////////////////////////////////////////////////////////////////////

    function resetDrops(){
			jQuery("."+hasDropClass).removeClass(hasDropClass);
			jQuery("."+overClass).removeClass(overClass).addClass(baseClass); // Replace any class of over with base
			jQuery("."+overActiveClass).removeClass(overActiveClass).addClass(activeClass); // Replace any class of overActive with active
			// jQuery("."+dropClass+":block").hide();  // Hide all drops currently set to display:block
			jQuery("."+dropClass).hide();  // Hide all drops
    }

////////////////////////////////////////////////////////////////////////////////////////////

  function lockDrop(){
			resetTimer();
    }


// [ Helper functions ] ////////////////////////////////////////////////////////////////////////////////////////////

    function getObjInt(objID){
			return objID.split("_")[1];
    }

    ////////////////////////////////////////////////////////////////////////////////////////////

	function resetTimer(){
    clearTimeout(timerID); // Stop timer
  }

    ////////////////////////////////////////////////////////////////////////////////////////////

  function getLeftPad(objID){
		var thisButton = document.getElementById(objID);
		var leftPad = eval(thisButton.offsetLeft); // Can only get this relative to window (not parent) using jQuery
		var button_w = jQuery(thisButton).outerWidth();
		var dropMargin = parseInt((button_w - dropWidth) / 2);
		var calcPos = (jQuery(thisButton).parents('div').width() + adjust - leftPad > dropWidth) ? leftPad : jQuery(thisButton).parents('div').width() + adjust - dropWidth;
		var adjustedCalcPos = calcPos + dropMargin;
		if(jQuery.browser.msie){
			adjustedCalcPos = adjustedCalcPos+22;
		}
		return(adjustedCalcPos + "px");
	}

////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////


  function addTabTriggers(){
		jQuery("#tabs a").click(
			function(){
				setTabs(jQuery(this).attr("id"));
				return false;
			}
		);
	}


////////////////////////////////////////////////////////////////////////////////////////////


  function setTabs(objID){

		if(jQuery("#"+objID).hasClass('inactive')){

			// Hide all
			jQuery("#tabs a").removeClass('active').addClass('inactive');
			jQuery("#tabbedContent .liner").hide();

			// Show clicked
			jQuery("#"+objID).addClass("active");
			jQuery("#tabContent_"+getObjInt(objID)).show();

		}

	}

