//here you place the ids of every element you want.
var ids=new Array('tab1','tab2','tab3');
var menus=new Array('menu1','menu2','menu3');
var links=new Array('navigation_links_1','navigation_links_2','navigation_links_3');


function switchid(id,buttons,links){	
	hideallids();
	showdiv(id);
	disable_buttons(buttons,links);
	enable_button(buttons,links);

	}

function hideallids(){
	//loop through the array and hide each element by id
	for (var i=0;i<ids.length;i++){
		hidediv(ids[i]);
	}
	for (var i=0;i<menus.length;i++){
		disable_buttons(menus[i],links[i]);
	}
}

function disable_buttons(id,links) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.background = '#CCCCCC';
		document.getElementById(links).style.color = '#595959';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.background = 'url("http://img.perfumedeal.com/top_perfumes_main.gif")';
		}
		else { // IE 4
			document.all.id.style.background = 'url("http://img.perfumedeal.com/top_perfumes_main.gif")';
		}
	}
}

function enable_button(id,links) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.background = '#AB0000';
		document.getElementById(links).style.color = '#FFFFFF';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.backgroundColor = '#FFFFFF';
		}
		else { // IE 4
			document.all.id.style.backgroundColor = '#FFFFFF';
		}
	}
}

function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}

<!-- Start slide show -->
var util = {

    countdown: function(target, args) {

        args = args || {};


        // private variables

        var that = this;

        var msSec = 1000, msMin = 60 * msSec, msHour = 60 * msMin, msDay = 24 * msHour;

        var now = new Date();

        var diff = target - now.getTime();

        var onTick = (args.onTick) ? args.onTick : function(e) { };

        var onFinish = (args.onFinish) ? args.onFinish : function(e) { };


        // public variables

        this.days = this.hours = this.mins = this.secs = 0;


        // public methods

        this.start = function() {

            if (diff < 1) return onFinish(this); // target reached

            var temp = diff;

            this.days = Math.floor(temp / msDay);

            this.hours = Math.floor((temp -= (msDay * this.days)) / msHour);

            this.mins = Math.floor((temp -= (msHour * this.hours)) / msMin);

            this.secs = Math.floor((temp -= (msMin * this.mins)) / msSec);

            onTick(this); // tick

            diff -= 1000;

            setTimeout(arguments.callee, 1000);

        }; }


};

//DropDown Menu
(function($) {
        $.fn.buildMenu = function(options) {
            var defaults = {
                hideFlag: 'hide-menu', // set a class to hide any submenu
                delayIn: 1, // delay for mouseover
                delayOut: 10, // delay for mouseout
                sensitivity: 3
            },
            options = $.extend(defaults, options),
            resetMenu = function(o) {

                // hide all ul and remove all hover and hover-link classes
                $('.hover,.hover-link', $(o).parent().find('ul:visible').hide().andSelf()).removeClass('hover hover-link');
                $('.ul-column').find('li').removeClass('hover hover-link');

            },
            openMenu = function() {

                // reset menu
                resetMenu(this);

                // set hover styling
                $('> a', $(this).addClass('hover')).addClass('hover-link');

                // show submenu
                !$(this).hasClass(options.hideFlag) && $(this).find('> ul').show();

            },
            closeMenu = function() {

                // if it's top node
                $(this).parent('.node-0').length > 0 && resetMenu(this);
            },

            // configuration for hoverIntent
            config = {
                sensitivity: options.sensitivity,
                interval: options.delayIn,
                over: openMenu,
                timeout: options.delayOut,
                out: closeMenu
            };

            // configuration for Main Node
            configMmain = {
                sensitivity: options.sensitivity,
                interval: 10,
                over: openMenu,
                timeout: options.delayOut,
                out: closeMenu
            };

            return this.each(function() {
                obj = $(this);

                obj.find('li:has(ul):not([class*="' + options.hideFlag + '"]) > a').addClass('tree');

                // set tree structure
                obj.addClass('node-0').find('> li > ul').addClass('node-1').andSelf().find('li').hoverIntent(config);
                obj.addClass('node-0').find(' > li').hoverIntent(configMmain);

                return this;
            });
        };
    })(jQuery);

    /**
    * hoverIntent is similar to jQuery's built-in "hover" function except that
    * instead of firing the onMouseOver event immediately, hoverIntent checks
    * to see if the user's mouse has slowed down (beneath the sensitivity
    * threshold) before firing the onMouseOver event.
    * 
    * hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
    * <http://cherne.net/brian/resources/jquery.hoverIntent.html>
    * 
    * hoverIntent is currently available for use in all personal or commercial 
    * projects under both MIT and GPL licenses. This means that you can choose 
    * the license that best suits your project, and use it accordingly.
    * 
    * // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
    * $("ul li").hoverIntent( showNav , hideNav );
    * 
    * // advanced usage receives configuration object only
    * $("ul li").hoverIntent({
    *	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
    *	interval: 100,   // number = milliseconds of polling interval
    *	over: showNav,  // function = onMouseOver callback (required)
    *	timeout: 0,   // number = milliseconds delay before onMouseOut function call
    *	out: hideNav    // function = onMouseOut callback (required)
    * });
    * 
    * @param  f  onMouseOver function || An object with configuration options
    * @param  g  onMouseOut function  || Nothing (use configuration options object)
    * @author    Brian Cherne <brian@cherne.net>
    */
    (function($) {
        $.fn.hoverIntent = function(f, g) {
            // default configuration options
            var cfg = {
                sensitivity: 3,
                interval: 30,
                timeout: 0
            };
            // override configuration options with user supplied object
            cfg = $.extend(cfg, g ? { over: f, out: g} : f);

            // instantiate variables
            // cX, cY = current X and Y position of mouse, updated by mousemove event
            // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
            var cX, cY, pX, pY;

            // A private function for getting mouse position
            var track = function(ev) {
                cX = ev.pageX;
                cY = ev.pageY;
            };

            // A private function for comparing current and previous mouse position
            var compare = function(ev, ob) {
                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
                // compare mouse positions to see if they've crossed the threshold
                if ((Math.abs(pX - cX) + Math.abs(pY - cY)) < cfg.sensitivity) {
                    $(ob).unbind("mousemove", track);
                    // set hoverIntent state to true (so mouseOut can be called)
                    ob.hoverIntent_s = 1;
                    return cfg.over.apply(ob, [ev]);
                } else {
                    // set previous coordinates for next time
                    pX = cX; pY = cY;
                    // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
                    ob.hoverIntent_t = setTimeout(function() { compare(ev, ob); }, cfg.interval);
                }
            };

            // A private function for delaying the mouseOut function
            var delay = function(ev, ob) {
                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
                ob.hoverIntent_s = 0;
                return cfg.out.apply(ob, [ev]);
            };

            // A private function for handling mouse 'hovering'
            var handleHover = function(e) {
                // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
                var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
                while (p && p != this) { try { p = p.parentNode; } catch (e) { p = this; } }
                if (p == this) { return false; }

                // copy objects to be passed into t (required for event object to be passed in IE)
                var ev = jQuery.extend({}, e);
                var ob = this;

                // cancel hoverIntent timer if it exists
                if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

                // else e.type == "onmouseover"
                if (e.type == "mouseover") {
                    // set "previous" X and Y position based on initial entry point
                    pX = ev.pageX; pY = ev.pageY;
                    // update "current" X and Y position based on mousemove
                    $(ob).bind("mousemove", track);
                    // start polling interval (self-calling timeout) to compare mouse coordinates over time
                    if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout(function() { compare(ev, ob); }, cfg.interval); }

                    // else e.type == "onmouseout"
                } else {
                    // unbind expensive mousemove event
                    $(ob).unbind("mousemove", track);
                    // if hoverIntent state is true, then call the mouseOut function after the specified delay
                    if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout(function() { delay(ev, ob); }, cfg.timeout); }
                }
            };

            // bind the function to the two event listeners
            return this.mouseover(handleHover).mouseout(handleHover);
        };
    })(jQuery);

