var AjaxAIX = {
	
	/**
	 * Carrega opções para um selectbox
	*/
	loadOptions : function(selectId, url, dados, callBack, dataTipo, autoPreencher)
	{
		dataTipo = dataTipo || 'json';
		callBack = callBack || function(){};
		autoPreencher = autoPreencher || false;
		
		$('#'+selectId).html('<option value="">carregando...</option>');
		var disabled = $('#'+selectId).attr('disabled'); 
		//$('#'+selectId).attr('disabled',true);
		
		dados = dados || {};				
		
		var success = function(data, textStatus)
		{
			var html = '';
			for(var i in data)
			{
				var texto = data[i];
				html += '<option value="'+i+'">'+texto+'</option>';
			}
			$('#'+selectId).html(html);
			
			if(autoPreencher)
			{
				autoSelect('#'+selectId);
			}
			
			callBack(data);
			
			//$('#'+selectId).attr('disabled',disabled);
		};
		
		AjaxAIX.loadJSON(url, dados, success, dataTipo);
	},	
	
	/**
	 * Carrega um JSON no servidor.	 
	*/
	loadJSON : function(url, data, callBack, dataTipo)
	{
		dataTipo = dataTipo || 'json';
		if(dataTipo == 'json')
		{
			data = data || {};
			data.ajaxAIX = true;
		}
		else
		{
			data = data || '';
			data += '&ajaxAIX=true';
		}		
		
		var options = {
			dataType : 'json',
			error : function(XMLHttpRequest, textStatus, errorThrown){
				AjaxAIX.showError(XMLHttpRequest.responseText);
			},
			success : function(data, textStatus)
			{
				callBack(data, textStatus);
			},
			'url' : url,
			'data': data,
			type : 'POST'
		};
		
		$.ajax(options);
	},
	
	/**
	 * Exibe janela com erro quando o Ajax falha
	 */
	showError : function(message)
	{
		$('#errorMessage').remove();
		var html = "Ocorreu um erro ao tentar realizar a opera&ccedil;&atilde;o, favor entrar em contato com a equipe de suporte!<br />Para visualizar o erro, <a href='javascript:AjaxAIX.showMsgErro();'>clique aqui.</a><div style='display:none;' id='errorMessage'>"+message+"</div>";
		var opt = {
			bgiframe : true,
			modal	 : true,
			resizable: true,
			width	 : 400,
			height	 : 150,
			closeOnEscape: true,
			draggable: false,
			close		: function(){$('#errorMessage').remove();}			
		};
		ControleJanelas.addWindow('Erro',html);
	},
	
	/**
	 * Torna a resposta do servidor na mensagem de erro visível
	 */
	showMsgErro : function()
	{
		$("#errorMessage").show();
	}
}
