//verifica o navegador
var IE = (navigator.userAgent.indexOf('MSIE') > -1);
var strCarregando = '<div class="block center"><img src="/images/carregando.gif" alt="Carregando..." title="Carregando..." /></div>';

window.onbeforeunload = loading;

function loading(action) {
	$('#dialog').dialog('option', 'title', 'Aguarde!');
	$("#dialog").html(strCarregando);
	$('#dialog').dialog('option', 'buttons', {});
    if(action == 'show') {
        $("#dialog").dialog("open");
        $(".ui-dialog-titlebar-close").hide();
    } else if(action == 'hide') {
        $("#dialog").dialog("close");
    }
}

$(document).ready(function() {
	//Exibe carregando ao trocar de pagina
	$(window).unload(function() {
        loading('show');
    });
	
	//Faz o over nas img
	$(".over").mouseover(function(){
		$(this).attr("src", $(this).attr("src").replace('.gif', '_over.gif'));
	});
	$(".over").mouseout(function(){
		$(this).attr("src", $(this).attr("src").replace('_over.gif', '.gif'));
	});
	
	$(".overJpg").mouseover(function(){
		$(this).attr("src", $(this).attr("src").replace('.jpg', '_over.jpg'));
	});
	$(".overJpg").mouseout(function(){
		$(this).attr("src", $(this).attr("src").replace('_over.jpg', '.jpg'));
	});
	
	
	//Define as validaçoes para o form
	var validator = $('#frmMerge').validate({
		errorPlacement: function(error, element) {
			error.appendTo(element.next('span'));
		},
		success: function(label) {
			label.html('&nbsp;').addClass('checked');
		},
		errorElement: 'span'
	});
	
	setLanguage();
		
	//Seta os valores default para o dialog
	$("#dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		resizable: false,
		modal: true,
		position: ['center',100]
	});
	
	//Controla os erros ajax
	$("#dialog").ajaxError(function(event, request, settings){
		$(this).append("<li>Error requesting page " + settings.url + "</li>");
		
		//Time out
		if(request.status == 408)
			$(this).append("<li>Tempo limite excedido</li>");
		//Erro interno do servidor
		else if(request.status == 501)
			$(this).append("<li>Ocorreu um erro!</li>");
		//Pagina nao encontrada
		else if(request.status == 404)
			$(this).append("<li>A pagina solicitada não foi encontrada!</li>");
		//Pagina nao encontrada
		else if(request.status == 401) {
			arrUrl = location.href.split("/");
			if(arrUrl[3] == 'aplicacoes' || arrUrl[3] == 'admin')
				location.href = '/aplicacoes/';
			else
				location.href = '/';
		}
		
		$('#dialog').dialog('option', 'title', 'Erro');
		$('#dialog').dialog('option', 'width', 330);
		$('#dialog').dialog('option', 'buttons', {});
		$('#dialog').dialog('open');
	});
	
	//Mascaras gerais
	$('input[name="NUM_TELEFONE_RESIDENCIAL"]').mask("(99)9999-9999");
	$('input[name="NUM_TELEFONE_COMERCIAL"]').mask("(99)9999-9999");
	$('input[name="DAT_NASCIMENTO"]').mask('99/99/9999');
	$('input[name="NUM_CEP"]').mask("99999-999",{completed:function() {buscaCep(); }});
});

/**
 * Define o idioma utilizado
 */
function setLanguage() {
	strLanguage = $('meta[http-equiv=Content-Language]').attr("content");
	if(strLanguage == 'pt-br') {
		jQuery.extend(jQuery.validator.messages, {
			required: "Este campo é obrigatório.",
		    remote: "Please fix this field.",
		    email: "E-mail inválido.",
		    url: "URL inválida.",
		    date: "Data inválida.",
		    dateISO: "Please enter a valid date (ISO).",
		    number: "Número inválido.",
		    digits: "Apenas digitos.",
		    creditcard: "Número de cartão inválido.",
		    equalTo: "Entre com o mesmo valor novamente.",
		    accept: "Formato de arquivo inválido.",
		    maxlength: jQuery.validator.format("No máximo {0} characters."),
		    minlength: jQuery.validator.format("No minímo {0} characters."),
		    rangelength: jQuery.validator.format("Digite um valor entre {0} e {1} characters."),
		    range: jQuery.validator.format("Digite um valor entre {0} e {1}."),
		    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
		    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
		});
	}
}


/**
 * Busca o CEP
 */
function buscaCep() {
	$("#dialog").html('Carregando..');
	$('#dialog').dialog('option', 'title', 'Carregando..');
	$('#dialog').dialog('option', 'width', 330);
	$('#dialog').dialog('option', 'buttons', {});
	$('#dialog').dialog('open');
	var arrEndereco;
	$.ajax({
	   type: "POST",
	   url: "/ajax/funcoes/buscarCep/",
	   data: "NUM_CEP=" + $('input[name="NUM_CEP"]').val(),
	   success: function(strRetorno) {
			$('#dialog').dialog('close');
			if(strRetorno == 3) {
				$("#dialog").html('Endereço inválido!');
				$('#dialog').dialog('option', 'title', 'Erro');
				$('#dialog').dialog('option', 'width', 330);
				$('#dialog').dialog('option', 'buttons',{ 
					"Ok": function() {
						$(this).dialog('close');
						$('input[name="NUM_CEP"]').focus();
					} 
				});
				$('#dialog').dialog('open');
				strRetorno = '&& && && && && && && ';
				$('input[name="NUM_CEP"]').val('');
			}else
				$('input[name="NUM_NUMERO"]').focus();
			
			arrEndereco = strRetorno.split('&&');
			//Funciona tanto para select como para input
			$('input[name="DSC_ESTADO"]').val(arrEndereco[0]);
			$('select[name="DSC_ESTADO"]').val(arrEndereco[0]);
			$('input[name="DSC_CIDADE"]').val(arrEndereco[1]);
			$('input[name="DSC_BAIRRO"]').val(arrEndereco[2]);
			$('input[name="DSC_ENDERECO"]').val(arrEndereco[3]+' '+arrEndereco[4]);
			
			//Verifica se os campos ficaram validos
			$('input[name="NUM_CEP"]').parents('form').valid();
			
	   }
	 });
}

/**
 * Exibe uma foto ampliada
 * @param strNomeFoto - Nome da foto
 * @return
 */
function fotoAmpliada(strNomeFoto) {
	strPath = '/modulos/upload/originais/' + strNomeFoto;
	strLegenda = '';
	var objFoto;
	objFoto = new Image();			
	objFoto.src = strPath;

	if(objFoto.complete) {
		$('#dialog').html('<img src="'+objFoto.src+'" alt="" /><br />'+strLegenda)
	}else {
		$("#dialog").html('<div class="center"><img src="'+strPath+'" alt="" title="" /></div>');
		objFoto.onload = function(){
			$('#dialog').html('<img src="'+objFoto.src+'" alt="" /><br />'+strLegenda)
			$( "#dialog" ).dialog( "option", "position", 'center' );
		}
	}
	$( "#dialog" ).dialog( "option", "position", 'center' );
	//Janela do form
	$('#dialog').dialog('option', 'title', 'Detalhe');
	$('#dialog').dialog('option', 'width', 'auto');
	$('#dialog').dialog('option', 'buttons', { "Ok": function() { $(this).dialog('close');} });
	$('#dialog').dialog('open');
}

function recuperaSenha() {
	$("#dialog").html('Carregando..');
	$('#dialog').dialog('option', 'title', 'Carregando..');
	$('#dialog').dialog('option', 'width', 330);
	$('#dialog').dialog('option', 'buttons', {});
	$('#dialog').dialog('open');
	
	if($("#DSC_LOGIN").val() == '') {
		$('#dialog').html('Digite seu login');
		$('#dialog').dialog('option', 'buttons', { "Ok": function() {$(this).dialog('close');} });
	}else {
		$.ajax({
		   type: "POST",
		   url: "/ajax/funcoes/recuperaSenha/",
		   data: "DSC_LOGIN=" + $("#DSC_LOGIN").val(),
		   success: function(strRetorno) {
				$('#dialog').html(strRetorno);
				$('#dialog').dialog('option', 'buttons', { "Ok": function() {$(this).dialog('close');} });
		   }
		 });
	}
}

/* Retira a borda dos flashes
Copyright 2006 Adobe Systems, Inc. All rights reserved.
Versao compacta, alterada por Renato Herculano
	- src, width e height sao obrigatorios
	- os demais parametros sao opcionais
*/
function flash(src, width, height, id, flashVars, wmode, menu, scale){
	var ret = GetArguments(src, width, height, id, flashVars, wmode, menu, scale);
	var str = '<object ';
	for (var i in ret.objAttrs)
		str += i + '="' + ret.objAttrs[i] + '" ';
	str += '>';
	for (var i in ret.params)
		str += '<param name="' + i + '" value="' + ret.params[i] + '" /> ';
	str += '</object>';
	document.write(str);
}

//GetArguments(): funcao auxiliar para retirar a borda dos flashes
//	- retorna os argumentos da tag object e os parametros
function GetArguments(src, w, h, id, flashVars, wmode, menu, scale){
	var ret = new Object();
	ret.params = new Object();
	ret.objAttrs = new Object();

	ret.objAttrs['data'] = ret.params['movie'] = src;
	ret.objAttrs['width'] = w;
	ret.objAttrs['height'] = h;
	ret.params['quality'] = 'high';
	ret.objAttrs['type'] = 'application/x-shockwave-flash';
	ret.params['menu'] = 'false';
	
	if(id) ret.objAttrs['id'] = id;

	if(flashVars) ret.params['flashVars'] = flashVars;
	
	ret.params['wmode'] = (wmode)? wmode : 'transparent';
	ret.params['scale'] = (scale)? scale : 'exactfit';
	ret.params['menu'] = (menu)? menu : 'false';
	
	return ret;
}
