/*
 * Author: Mattijs Spierings
 * Date: 15/7/2011
 * Description: slidemenu
 */
var SlideMenu = {
	triggerClass: "",
	currentMenu: null,
	/*
	 * init function which copies attributes and set the mouse events
	 */
	init: function (arg) {
		//extend arguments to this scope
		$.extend(this,arg);
	
		
		$(this.triggerClass).each(function(){
			var o_item=$(this);
			//find reference of the slide menu for the mainmenu item
			var o_slidemenu=o_item.siblings("div");
	
			//set mouseover trigger
			o_item.mouseenter(function(){
				if(this.currentMenu != null && this.currentMenu != o_slidemenu)
					this.currentMenu.slideUp(50);								
				o_slidemenu.slideDown(50);
				this.currentMenu = o_slidemenu;
			});
			//set mouseout trigger
			o_item.mouseleave(function(e){
				//the border of the trigger is around Ypos 85, so if e.pageY is less then this value user moved the mouse left, top or right
				if(e.pageY < o_item.offset().top + o_item.innerHeight())
					o_slidemenu.slideUp(50);
			});
			//set the mouseout on the slidemenu itself
			o_slidemenu.mouseleave(function(e){
				if(e.pageY > $(this).offset().top) {
					if(this.currentMenu != null && this.currentMenu != o_slidemenu)
						this.currentMenu.slideUp(50);	
					$(this).slideUp(50);
				}
			});
		});
	}
}
