jQuery.fn.replaceWith = function(replacement) {
  return this.each(function(){
    element = $(this);
    $(this)
      .after(replacement).next()
      .attr('class', element.attr('class')).attr('id',element.attr('id'))
      .html(element.html())
      .prev().remove();
  });
};

// $(function(){
//  $(".menuV2 li ul li span").bind("mouseenter mouseleave", function(e) {
//   $(this).toggleClass( "hover" );
// });
//})

var plg_header_menu = {
	options: {
		cssClasses: {
			activeSection: 'act',
			noActiveSection: 'no_act',
			activeLink: 'selected'
		},
		selector: ".menu",
		selected: '/'
	},
	init: function( options ){

		this.options = $.extend({}, this.options, options ? options : {} );

		var $menu = this.getMenu();

		var $activeLink = this.getActiveLink($menu);

		if( this.options.selected != '#' ){
			$activeLink = this.activateLink( this.options.selected );
		}

		this.activateSection( $menu ,  this.getSectionByLink( $activeLink ) );
		
		$uri = $($activeLink).attr('href');
//		$('li.selected a').replaceWith('<span></span>');

//		if ($($activeLink).text() == 'Forum' && $uri != this.options.uri) {
//		    $('li.selected').click(function(){
//		        location.href = $uri;
//		    }).css('cursor', 'pointer');
//		}
	},
	getMenu: function(){
		return $(this.options.selector);
	},
	getLinks: function( $menu ){
		if( $menu == undefined ){
			$menu = this.getMenu();
		}
		return $menu.find( "li."+this.options.cssClasses.activeSection+", li."+this.options.cssClasses.noActiveSection ).find('a');
	},
	getActiveLink: function( $menu ){

		var _self = this;

		if( $menu == undefined ){
			$menu = this.getMenu();
		}

		return this.getLinks($menu).filter( function(){
			return $(this).parent().hasClass( _self.options.cssClasses.activeLink );
		} );
	},
	getActiveSection: function( $menu ){

		var _self = this;

		if( $menu == undefined ){
			$menu = this.getMenu();
		}
		return this.getSections($menu).filter( function(){
			return $(this).hasClass( _self.options.cssClasses.activeSection );
		} );
	},
	getSectionByLink: function( $link ){
		return this.getSections().filter( function(){
			return $link.attr('href') != '#' && $(this).find( "a[href='"+$link.attr('href')+"']" ).size() > 0;
		} );
	},
	getSections: function( $menu ){
		if( $menu == undefined ){
			$menu = this.getMenu();
		}
		return $menu.children('li');
	},
	activateSection: function( $menu, $section ){
		this.getSections($menu).removeClass( this.options.cssClasses.activeSection ).addClass( this.options.cssClasses.noActiveSection );

		if( $section ){
			$section.removeClass( this.options.cssClasses.noActiveSection ).addClass( this.options.cssClasses.activeSection );
		}

	},
	activateLink: function( href ){
		var $link = this.getLinks( this.getMenu() ).removeClass( this.options.cssClasses.activeLink ).filter("[href='"+href+"']");
		var $node = $link;

		if( $link.parent().is('li') ){
			$node = $link.parent();
		}
	
		$node.addClass( this.options.cssClasses.activeLink );
		return $link;
	}
}
