/*
  jQuery MegaMenu Plugin
  Author: GeekTantra
  Author URI: http://www.geektantra.com/
*/

var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;

jQuery.fn.megamenu = function(options){
	options = jQuery.extend({
//		width: "auto",
//		justify: "left",
		activate_action: "mouseover",
		deactivate_action: "mouseleave",
		show_method: "fadeIn",
		hide_method: "fadeOut",
//		justify: "left",
//		enable_js_shadow: true,
//		shadow_size: 1,
		mm_timeout: 120
	}, options);

	var $megamenu_object = this;

	if(options.activate_action == "click")
		options.mm_timeout = 0;

	$megamenu_object.children("li").each(function(){
		jQuery(this).addClass("glMnuList");
//		jQuery(".glMnuList").css({'float':options.justify});
//		jQuery(this).find("div:first").addClass("globalMnuBox");
		jQuery(this).find("a:first").addClass("globalLink");
		var $mm_item_content = jQuery(this).find(".globalMnuBox");
		var $mm_item_link = jQuery(this).find(".globalLink");
		$mm_item_content.hide();

		jQuery(document).bind("click", function(){
			jQuery(".globalMnuBox").hide();
			jQuery(".globalLink").removeClass("globalActiveLink");
		});
		jQuery(this).bind("click", function(e){
			e.stopPropagation();
		});

		$mm_item_content.wrapInner('<div class="globalMnuInner"><div class="globalMnuCnts"></div></div>');
//		if(options.enable_js_shadow == true){
//			$mm_item_content.append('<div class="shadow"></div>');
//		}
		var $mm_timer = 0;

		// Activation Method Starts
		jQuery(this).bind(options.activate_action, function(e){
			e.stopPropagation();
			var mm_item_link_obj = jQuery(this).find("a.globalLink");
			var mm_item_content_obj = jQuery(this).find("div.globalMnuBox");
			clearTimeout($mm_timer);

			//Emulate HoverIntent
			$mm_timer = setTimeout(function(){
				mm_item_link_obj.addClass("globalActiveLink");
				mm_item_content_obj.css({
//					'top': ($mm_item_link.offset().top + $mm_item_link.outerHeight()) - 1 +"px",
//					'left': ($mm_item_link.offset().left) - 5 + 'px'
				})

/*		if(options.justify == "left"){
          var mm_object_right_end = $megamenu_object.offset().left + $megamenu_object.outerWidth();
          var mm_content_right_end = $mm_item_link.offset().left + $mm_item_content.outerWidth() - 5 ;
          if( mm_content_right_end >= mm_object_right_end ) { // Menu content exceeding the outer box
            mm_item_content_obj.css({
              'left': ($mm_item_link.offset().left - (mm_content_right_end - mm_object_right_end)) - 2 + 'px'
            });
          }
        }else if(options.justify == "right"){
          var mm_object_left_end = $megamenu_object.offset().left;
          var mm_content_left_end = $mm_item_link.offset().left - mm_item_content_obj.outerWidth() + $mm_item_link.outerWidth() + 5;
          if( mm_content_left_end <= mm_object_left_end ){
            mm_item_content_obj.css({'left': mm_object_left_end + 2 + 'px'});
          }else{
            mm_item_content_obj.css({'left': mm_content_left_end + 'px'}); // Limit megamenu inside the outer box
          }
        }*/

/*				if(options.enable_js_shadow == true){
					mm_item_content_obj.find(".shadow").height(mm_item_content_obj.height());
					mm_item_content_obj.find(".shadow").width(mm_item_content_obj.width());
					mm_item_content_obj.find(".shadow").css({
						'top': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
						'left': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
						'opacity': 0.5
					});
				}*/
				switch(options.show_method){
					case "simple":
						mm_item_content_obj.show();
						break;
					case "slideDown":
						mm_item_content_obj.height("auto");
						mm_item_content_obj.slideDown('fast');
						break;
					case "fadeIn":
						mm_item_content_obj.fadeTo('fast', 1);
						break;
					default:
						mm_item_content_obj.each(options.show_method);
						break;
				}
			}, options.mm_timeout);
		});

		// Activation Method Ends
		// Deactivation Method Starts
		jQuery(this).bind(options.deactivate_action, function(e){
			e.stopPropagation();
			clearTimeout($mm_timer);
			var mm_item_link_obj = jQuery(this).find("a.globalLink");
			var mm_item_content_obj = jQuery(this).find("div.globalMnuBox");
//			mm_item_content_obj.stop();

			switch(options.hide_method){
			case "simple":
				mm_item_content_obj.hide();
				mm_item_link_obj.removeClass("globalActiveLink");
				break;
			case "slideUp": 
				mm_item_content_obj.slideUp('fast', 
					function(){mm_item_link_obj.removeClass("globalActiveLink");}
				);
				break;
			case "fadeOut": 
				mm_item_content_obj.fadeOut('fast', 
					function(){mm_item_link_obj.removeClass("globalActiveLink");}
				);
				break;
			default: 
				mm_item_content_obj.each(options.hide_method);
				mm_item_link_obj.removeClass("globalActiveLink");
				break;
			}
		});

	});	// Deactivation Method Ends

//	this.find("li:last").after('<li class="clear-fix"></li>');
//	this.show();
};
