var Menu = function(el, container)
{
	var evento = false;
	var menuElement = el;
	
	this.initialize =  function() {
		$(menuElement).find('li').each(function() {
			if ($(this).children('ul').size() > 0)
			{
				$(this).hover(function(){
					$(this).children('a').css('text-decoration','underline');
					$(this).children('ul').show();
				}, function(){
					$(this).children('a').css('text-decoration','none');
					$(this).children('ul').hide();
				});
			} // fim if
			else
			{
				$(this).hover(function(){
					$(this).children('a').css('text-decoration','underline');
				}, function(){
					$(this).children('a').css('text-decoration','none');
				});
			} // fim else
		});
	} // fim load
	
	this.load = function(options)
	{
		var obj = this;
		
		options.parametros = typeof(options.parametros) == 'function' ? options.parametros() : (options.parametros || '');		// pega os parametros a serem passados verificando se é uma funcão ou uma string
		options.callBack = options.callBack || function(){};

		$(container).html('<div class="msg">' + System.loadingImg + '<span>Carregando, por favor aguarde...</span></div>');
		
		System.loadModule(options.modulo, {
			onStartLoadCSS: function(){
				$('div.msg').html(System.loadingImg + '<span>Carregando arquivos de interface do módulo ' + options.modulo + '.</span></div>');		// adicionar nova mensagem
			}, 
			onStartLoadJS: function(){
				$('div.msg').html(System.loadingImg + '<span>Carregando arquivos de sistema do módulo ' + options.modulo + '.</span></div>');		// adicionar nova mensagem
			},
			onComplete: function(){
				var controller = new AppController({
					modulo: options.modulo,
					metodo: options.metodo,
					callBack:function(retorno){
						$(container).html(retorno);					// adiocinar container
						options.callBack();							// executar funcao de callback
						obj.evento = false;							// liberar variavel de controle de eventos
					} // fim callBack
				}); // fim AppController
		
				controller.exec(options.parametros);		// executar chamada
			} // fim onComplete
		}); // fim System.loadModule()
	} // fim function load
}; // fim Menu
