/*
freak_menu - Fullscreen Slideshow jQuery Plugin
By Sam Dunn (www.buildinternet.com // www.onemightyroar.com)
Version: freak_menu.2.0.js // Relase Date: 5/7/09
Website: www.buildinternet.com/project/freak_menu
Thanks to Aen for preloading, fade effect, & vertical centering
*/

(function($){

	//alert("freak_menu is loading ...");
	//Resize image on ready or resize
	$.fn.freak_menu = function() {
		var _freak_menu_links_names = "freak_menu_link";
		var _freak_menu_divs_links_names = "freak_menu_link";
		var _freak_menu_current_link = null;
		var _freak_menu_current_div = null;
		var _freak_menu_divs = new Array();

		var options = $.extend($.fn.freak_menu.defaults, $.fn.freak_menu.options);

		var scroll_attribute = options.scroll_attribute;
		var links_class = options.links_class;
		var divs_class = options.divs_class;

		i=0;
		$(this).find("."+links_class).each(function () {
			//alert($(this).attr("id"));
			$(this).bind("mouseover", function(){
				_hover_link($(this).attr("id"), $(this).attr(scroll_attribute));
			});
			$(this).bind("mouseout", function(){
				_out_link($(this).attr("id"), $(this).attr(scroll_attribute));
			});
			i++;
		});
		//alert(i);
		
		i=0;
		$(this).find("."+divs_class).each(function () {
			_freak_menu_divs[$(this).attr("id")]=new Array();
			_freak_menu_divs[$(this).attr("id")]['on_it']=false;
			//alert($(this).attr("id"));
			$(this).bind("mouseover", function(){
				_hover_div($(this).attr("id"));
			});
			$(this).bind("mouseout", function(){
				_out_div($(this).attr("id"));
			});
			i++;
		});
		//alert(i);		

		function _hover_link (element_id, sub_id) {
			//alert("_hover_link::sub_id = "+sub_id);
			if (_freak_menu_divs[sub_id]) _freak_menu_divs[sub_id]['on_it']=true;
			_freak_menu_current_link=element_id;

			setTimeout( function(){ _real_show(element_id, sub_id) ; }, options.timeout_show) ;
			
			return;
		}

		function _out_link (element_id, sub_id) {
			if (_freak_menu_divs[sub_id]) _freak_menu_divs[sub_id]['on_it']=false;
			if (_freak_menu_current_link==element_id) _freak_menu_current_link=null;
			//alert("_out_link");
			setTimeout( function(){ _real_hide(element_id, sub_id) ; }, options.timeout) ;
			return;
		}

		function _hover_div (div_id) {
			_freak_menu_divs[div_id]['on_it']=true;
			//alert("_hover_link::sub_id = "+sub_id);
			_freak_menu_current_div=div_id;
			//alert("_hover_div::_freak_menu_current_div = "+_freak_menu_current_div);
			return;
		}

		function _out_div (div_id) {
			_freak_menu_divs[div_id]['on_it']=false;
			if (_freak_menu_current_div==div_id) _freak_menu_current_div=null;
			//alert("_out_link");
			setTimeout( function(){ _real_hide(null, div_id) ; }, options.timeout) ;
			return;
		}

		function _real_hide (element_id, sub_id) {
			if (!_freak_menu_divs[sub_id]) _freak_menu_divs[sub_id]=new Array();
			if (!_freak_menu_divs[sub_id]['on_it']) _freak_menu_divs[sub_id]['on_it']=false;
			
			if ((!_freak_menu_current_link || sub_id!=_freak_menu_current_div) && 
				!_freak_menu_divs[sub_id]['on_it']){
				
				jQuery("#"+sub_id).slideUp(options.up_speed);
			}
		}

		function _real_show (element_id, sub_id) {
			if (!_freak_menu_divs[sub_id]) _freak_menu_divs[sub_id]=new Array();
			if (!_freak_menu_divs[sub_id]['on_it']) _freak_menu_divs[sub_id]['on_it']=false;

			if (_freak_menu_divs[sub_id]['on_it']){
				if (jQuery("#"+sub_id).attr("level")==2) display_type=options.level_2_display_type;
				else display_type=options.level_1_display_type;

				if (display_type=="slideright"){
					jQuery("#"+sub_id).slideToggle(options.down_speed);
				}
				else if (display_type=="fadein"){
					jQuery("#"+sub_id).fadeIn(options.down_speed);
				}			
				else{
					jQuery("#"+sub_id).slideDown(options.down_speed);
				}
			}
		}
	};	
	//alert($.fn.freak_menu);
	//alert("freak_menu loaded ...");

	$.fn.freak_menu.defaults = { 
			links_class: "freak_menu_link",
			divs_class: "freak_menu_div",
			scroll_attribute: "subid",
			down_speed: 500,
			up_speed: 300,
			timeout: 500,
			timeout_show: 300,
			level_1_display_type: "slidedown",
			level_2_display_type: "slideright"
	};

})(jQuery);