$(function(){
	/**
	 * Efetua a criação da url junto com o componente productAjax.
	 */
	jQuery.fn.searchAjax = function(settings){
		
		//----------------------------------------------------------------------
		//
		// Parâmetros
		//
		//----------------------------------------------------------------------
		
		// Parâmetros recebidos.
		var opt = {
			input:'',
			button:'', 
			url:''
		}
		
		// Elemento principal utilizado.
		var main = '';
		
		// Estende a array de configurações.
		jQuery.extend(opt, settings);
		
		//----------------------------------------------------------------------
		//
		// Funções
		//
		//----------------------------------------------------------------------
		
		/**
		 * Efetua a mudança da url
		 */
		function changeUrl(term) {
			
			// Url utilizada
			var locationData = document.location+"";
			
			// Recupera a url atual para verificar o caminho que se encontra.
			var urlString = locationData.split("/");
			
			var tempUrl = '';
			
			if(urlString.length > 4) {
				tempUrl = urlString[3]+"/"+urlString[4];
			} else {
				tempUrl = urlString[3];
			}
			
			tempUrl = tempUrl.split('#');
			tempUrl = tempUrl[0];
			
			// Determina a nova string da url. 
			urlString = tempUrl;
			
			// Verifica se a url inicia por "/"
			if(opt.url.substr(0, 1) =='/') {
				opt.url = opt.url.substr(1,opt.url.length);
			}
			
			// Define a url...
			var newUrl = "#";
			
			// Verifica se a url é diferente a url atual..
			if(opt.url != urlString) {
				
				// Então adiciona o "/" na frente.
				newUrl = "/"+opt.url+"#Pesquisa";
			}
			
			// Define a url 
			newUrl += "?pesquisa="+term;
			
			// Realoca a url.
			document.location = newUrl ;  
		}
		
		/**
		 * Efetua a verificação da pesquisa utilizada nos 2 ouvintes...
		 * tanto no momento da tecla "Enter" pressionada como no botão clicado.
		 */
		function verifySearch(term) {
			
			// Verifica o tamanho mínimo da pesquisa.
			if(term.length < 3) {
				$.showError('Atenção!', 'É necessário especificar no mínimo 3 caracteres para a pesquisa');
				return;
			}
							
			// Cria a url de acordo com o termo pesquisado.
			changeUrl(term);
		}
		
		//----------------------------------------------------------------------
		//
		// Main
		//
		//----------------------------------------------------------------------
		return this.each(function(){
			
			// Define o elemento principal utilizado.
			main = $(this);
						
			// Efetua a pesquisa ao se clicar no botão.
			$(opt.button, main).click(function() {
				verifySearch($(opt.input, main).val());
			});
			
			/*
			// Verifica a tecla ENTER
			$(opt.input, main).keyup(function(e) {
				// Se for pressionada o ENTER...
      			if(e.keyCode == 13) {
      				//verifySearch($(opt.input, main).val());
      			}
			});
			*/
			
		});
	}
});
