/**
 * A jQuery plugin to send javascript events to actionscript.
 */

(function($){
	
	$.FMenu = function(el, options){
		// To avoid scope issues, use 'base' instead of 'this'
	    // to reference this class from internal events and functions.
		var base = this;
        
		// Access to jQuery and DOM versions of element
		base.$el = $(el);
		base.el = el; 
		
		base.options = $.extend($.FMenu.defaults, options);
		
		base.activeItem = null;
		
		//save a reference to this controller object in the element.
		//base.el. SWFEvents = this;
		
		base.init = function(){
			
			base.$el.find("li").click(function(){
				if(base.activeItem) base.activeItem.removeClass(base.options.activeClass);
				base.activeItem = $(this).children("a:first-child");
				base.activeItem.addClass(base.options.activeClass);
				
				//var index = base.$el.find("li").index(this);
				if(base.options.onChanged) base.options.onChanged(base.activeItem.attr("href"));
			});
			
		}
		
		base.setItem = function(v){
			
			if(base.activeItem) base.activeItem.removeClass(base.options.activeClass);
			
			var el = base.$el.children("li")[v];
			var a = $(el).children("a")[0];
			base.activeItem = $(a);
			base.activeItem.addClass(base.options.activeClass);
			
			if(base.options.onChanged) base.options.onChanged(base.activeItem.attr("href"));
			
		}
		
		base.searchByAttribute = function(attribute,value){
			var elements = base.$el.find("a["+attribute+"="+value+"]");
			//alert(elements.length + "-" + attribute + "-" + value)
			if(!elements.length) return;
			
			if(base.activeItem) base.activeItem.removeClass(base.options.activeClass);
			
			var el = elements[0];
			base.activeItem = $(el);
			base.activeItem.addClass(base.options.activeClass);
			
			if(base.options.onChanged) base.options.onChanged(base.activeItem.attr("href"));
		}
		
		base.deselect = function(attribute,value){
			if(base.activeItem) base.activeItem.removeClass(base.options.activeClass);
			base.activeItem = null;
		}
        
		base.init();
	};
	
	
	
	$.FMenu.defaults = {
		activeClass:"active",
		onChanged:null
	}
	
	$.fn.FMenu = function(options){
		options = $.extend($.FMenu.defaults, options);
		
		return this.each(function() {
			if(!this.FMenu) this.FMenu = new $.FMenu(this, options);
			
		});
	}
	
})(jQuery);
