		/*********************************************************************

		 * Get an object, this function is cross browser

		 * *** Please do not remove this header. ***

		 * This code is working on my IE7, IE6, FireFox, Opera and Safari

		 * 

		 * Usage: 

		 * var object = get_object(element_id);

		 *

		 * @Author Hamid Alipour Codehead @ webmaster-forums.code-head.com		

		**/

		function get_object(id) {

			var object = null;

			if( document.layers )	{			

				object = document.layers[id];

			} else if( document.all ) {

				object = document.all[id];

			} else if( document.getElementById ) {

				object = document.getElementById(id);

			}

			return object;

		}

		/*********************************************************************/

		

		/*********************************************************************

		 * No onMouseOut event if the mouse pointer hovers a child element 

		 * *** Please do not remove this header. ***

		 * This code is working on my IE7, IE6, FireFox, Opera and Safari

		 * 

		 * Usage: 

		 * <div onMouseOut="fixOnMouseOut(this, event, 'JavaScript Code');"> 

		 *		So many childs 

		 *	</div>

		 *

		 * @Author Hamid Alipour Codehead @ webmaster-forums.code-head.com		

		**/

		function is_child_of(parent, child) {

			if( child != null ) {			

				while( child.parentNode ) {

					if( (child = child.parentNode) == parent ) {

						return true;

					}

				}

			}

			return false;

		}

		function fixOnMouseOut(element, event, JavaScript_code) {

			var current_mouse_target = null;

			if( event.toElement ) {				

				current_mouse_target 			 = event.toElement;

			} else if( event.relatedTarget ) {				

				current_mouse_target 			 = event.relatedTarget;

			}

			if(current_mouse_target != null && !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {

				eval(JavaScript_code);

			}

		}

		/*********************************************************************/

		

		/**

 * Event.simulate(@element, eventName[, options]) -> Element

 * 

 * - @element: element to fire event on

 * - eventName: name of event to fire (only MouseEvents and HTMLEvents interfaces are supported)

 * - options: optional object to fine-tune event properties - pointerX, pointerY, ctrlKey, etc.

 *

 *    $('foo').simulate('click'); // => fires "click" event on an element with id=foo

 *

 **/

(function(){

  

  var eventMatchers = {

    'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,

    'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/

  }

  var defaultOptions = {

    pointerX: 0,

    pointerY: 0,

    button: 0,

    ctrlKey: false,

    altKey: false,

    shiftKey: false,

    metaKey: false,

    bubbles: true,

    cancelable: true

  }

  

  Event.simulate = function(element, eventName) {

    var options = Object.extend(defaultOptions, arguments[2] || { });

    var oEvent, eventType = null;

    

    element = $(element);

    

    for (var name in eventMatchers) {

      if (eventMatchers[name].test(eventName)) { eventType = name; break; }

    }



    if (!eventType)

      throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');



    if (document.createEvent) {

      oEvent = document.createEvent(eventType);

      if (eventType == 'HTMLEvents') {

        oEvent.initEvent(eventName, options.bubbles, options.cancelable);

      }

      else {

        oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, 

          options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,

          options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);

      }

      element.dispatchEvent(oEvent);

    }

    else {

      options.clientX = options.pointerX;

      options.clientY = options.pointerY;

      oEvent = Object.extend(document.createEventObject(), options);

      element.fireEvent('on' + eventName, oEvent);

    }

    return element;

  }

  

  Element.addMethods({ simulate: Event.simulate });

})()

	function menuInitialize() {
	var topMenuItemIndex = 0;
	var elementsArray = $$('.menuHolder');
	for (var j=0; j<elementsArray.length; j++) {
	var getElm = elementsArray[j].getElementsByTagName("li");
	for (var i=0; i<getElm.length; i++) {
		getElm[i].onmouseover=function() {
			this.className+=" hover";
		}
		if (getElm[i].className == 'top') {
		//nothing for now
		} else {
		getElm[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" hover\\b"), "");
		}
		}
	}
	}
}

function topLevelMenuMouseOut(whichOne) {
$('topMenuItem' + whichOne).className = 'top';
}
