$(function() {
	// Váriaveis globais
	count_select = 0;
	formLoading = '';
	
	//Focus
	$(".focus").focus();
	
	// Mascara
	$(".telefoneFormat").mask("(99) 9999-9999");
	$(".cpfFormat").mask("999.999.999-99");
	$(".cnpjFormat").mask("99.999.999/9999-99");
	$(".dataFormat,.dataPickerForm").mask("99/99/9999");
	$(".cepFormat").mask("99999-999");
	$(".numeroFormat").keypress(function(event) {
		if (event.charCode && (event.charCode < 48 || event.charCode > 57)) {
		   event.preventDefault();
		}
	});
		
	// Data atual do servidor
	/*
	dataAtual = '';
	if ($(".dataPickerFormPedido").length>0) {
		dataAtual = serverTime();
	}	
	$(".cnpjFormat").mask("99.999.999/9999-99");
	$(".cepFormat").mask("99999-999");
	$(".urlFormat").focus(function(){
		if($("#" + $(this).attr('id')).val() == '')
			$("#" + $(this).attr('id')).val('http://');
	});
	$(".urlFormat").blur(function(){
		if($("#" + $(this).attr('id')).val() == 'http://')
			$("#" + $(this).attr('id')).val('');
	});	*/
	
	// Fixpng
	// DD_belatedPNG.fix('.pngfix');
	
	// Font Size
	$('.font_size').fontSize({
		setCookie: true,
		opResetar: true
	});
	
	// Temporario - Msg Post
	$(".msgAjax").html()?messageBox($(".msgAjax").html(),'resp_geral','h_geral',-48):'';
	
	// Rollover images
	$('.rollover').live('mouseover',function(){
        $(this).attr('src', $(this).attr('hover'));
    });
	$('.rollover').live('mouseout',function(){
        $(this).attr('src', $(this).attr('original'));
	});
	
	// Destaques
	var dest_loop = 0;
	$('#destaque_home').cycle({
		fx: 'fade',
		timeout: 8000,
		speed: 700,
		before: function(c,n,opt){	
			$('.destaque_navegacao').removeClass('destaque_navegacao_sel');
			$('.destaque_navegacao[slide=' + (!dest_loop?opt.currSlide:opt.nextSlide) + ']').addClass('destaque_navegacao_sel');
			dest_loop++;
		}
	});
	
	$('.destaque_navegacao').click(function() {
		var slide = $(this).attr('slide');		
		$('#destaque_home').cycle(parseInt(slide));  
		return false;  
	}); 
	
	
	// O Hotel
	var ohotel_loop = 0;
	$('#album_hotel').cycle({
		fx: 'fade',
		timeout: 8000,
		speed: 700,
		before: function(c,n,opt){	
			$('.album_hotel_navegacao').removeClass('album_hotel_navegacao_sel');
			$('.album_hotel_navegacao[slide=' + (!ohotel_loop?opt.currSlide:opt.nextSlide) + ']').addClass('album_hotel_navegacao_sel');
			ohotel_loop++;
		}
	});
	
	$('.album_hotel_navegacao').click(function() {
		var slide = $(this).attr('slide');
		$("#ohotelAnchor").trigger('click');
		$('#album_hotel').cycle(parseInt(slide));  
		return false;  
	}); 
	
	
	// Costa das baleias
	var baleias_loop = 0;
	$('#album_baleias').cycle({
		fx: 'fade',
		timeout: 8000,
		speed: 700,
		before: function(c,n,opt){	
			$('.album_baleias_navegacao').removeClass('album_baleias_navegacao_sel');
			$('.album_baleias_navegacao[slide=' + (!baleias_loop?opt.currSlide:opt.nextSlide) + ']').addClass('album_baleias_navegacao_sel');
			baleias_loop++;
		}
	});
	
	$('.album_baleias_navegacao').click(function() {
		var slide = $(this).attr('slide');
		$("#baleiasAnchor").trigger('click');
		$('#album_baleias').cycle(parseInt(slide));  
		return false;  
	}); 
	
	// Visualização de imagem	
	$(".imagem").fancybox({
		'titlePosition'  : 'inside',
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic'	,
		'centerOnScroll': true,
		'autoScale' : true,
		'titleShow' : true,
		'padding': 0
	});
	
	// Carrega listas
	$('.abphoto').abphoto();
	
	// Date picker
	$(".dataPickerForm").DatePicker({
		format:'d/m/Y', // Formato da data dia/ mes / ano
		date: $(this).val(), // + $(this).attr('id')).val(),
		current:$(this).val(),
		starts: 0, // dia de semana inicial 0 => domingo 1=>segunda
		position: 'center',
		onBeforeShow: function(){			
			curId = $(this).attr('id');
			
			if(count_select == 0){
				data_ = new Date();
				count_select += 1;
			}else{
				data_ = $("#" + curId).val();
			}
			
			if($("#" + curId).val() == "__/__/____"){
				data_ = new Date();
			}else{
				data_ = $("#" + curId).val();
			}
			
			$(this).DatePickerSetDate(data_, true);
		},
		onChange: function(formated, dates){
			$("#" + curId).val(formated);
			$("#" + curId).DatePickerHide(); // Selecionar a data e fecha a faixa de data
		}
    });
	
	// Tooltip
	$('.tooltip').tooltip({ 
		track: true, 
		delay: 0, 
		showURL: false, 
		showBody: " - ", 
		fade: 250 
	});
	
	// Ancoras
	$(".animAnchor").anchorAnimate();	
	
	// Formulário geral ajax
	$('.ajaxForm').ajaxForm({
		dataType: 'json',
		cache: false,
		beforeSubmit: function(){
			if(formLoading){
				$("#"+formLoading+"_loading").show();
				$("#"+formLoading).hide();
			}
		},
		complete: function(){
			if(formLoading){
				$("#"+formLoading+"_loading").hide();
				$("#"+formLoading).show();
			}
		},
		success: respFormulario,
		error: errorAjax
	});
	
	// Bloqueia busca vazias
	$('.formBlock').submit(function(){
		var empty = 0;
		$('form[id='+$(this).attr('id')+'] input[class=formBlockField]').each(function(){
			if(!$(this).val())
				empty++;
		});
		
		if(empty)
			return false;
	});
	
	// Carrega mapas
	if($(".googleMaps").length){
		$(".googleMaps").each(function(){
			loadGoogleMaps($(this).attr('id'));
		});
	}	
	
	// Adicionar quarto a reserva
	$("#reserva_add_quarto").live("click",function(){
		var total_quartos = $('.reservas_quarto').length;
		num_quartos  = total_quartos + 1;
						
		var html = '<div class="reservas_quarto"><img src="../imagens/icones/fechar_s_pb.png" original="../imagens/icones/fechar_s_pb.png" hover="../imagens/icones/fechar_s.png" class="rollover reservas_quarto_exc" width="10" height="10" alt="X" /><div>Quarto<input type="text" maxlength="2" value="" class="reserva_quartos campo_form seta_select" num_quarto="' + num_quartos + '" id="quarto' + num_quartos + '" name="quarto[]" style="width:758px;" /><input name="id_quarto[]" id="id_quarto' + num_quartos + '" type="hidden" value="" /></div><div class="margin_t_10"><div class="float inline">Adultos<input type="text" maxlength="2" value="" class="reserva_adultos campo_form seta_select" num_quarto="' + num_quartos + '" id="adultos' + num_quartos + '" name="adultos[]" style="width:100px;" /><input name="id_adultos[]" id="id_adultos' + num_quartos + '" type="hidden" value="" /></div><div class="float inline margin_l_15">Infanti <span class="tamanho_10">(at&eacute; 11 anos)</span><input type="text" maxlength="2" value="" class="reserva_criancas campo_form seta_select" num_quarto="' + num_quartos + '" id="criancas' + num_quartos + '" name="criancas[]" style="width:100px;" /><input name="id_criancas[]" id="id_criancas' + num_quartos + '" type="hidden" value="" /></div><div class="float inline margin_l_15">CHD <span class="tamanho_10">(de 12 at&eacute; 16 anos)</span><input type="text" maxlength="2" value="" class="reserva_adolescentes campo_form seta_select" num_quarto="' + num_quartos + '" id="adolescentes' + num_quartos + '" name="adolescentes[]" style="width:100px;" /><input name="id_adolescentes[]" id="id_adolescentes' + num_quartos + '" type="hidden" value="" /></div><div class="clear"></div></div></div>';
		
		$("#quartos_container").append(html);
		
		bindQuartos();
	});
	
	$(".reservas_quarto_exc").live("click",function(){
		if(confirm('Deseja mesmo excluir este quarto?'))
			$(this).parent().remove();
			
		return false;
	});
}); 

function thousandsSeparator(sValue){
	var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
	
	while(sRegExp.test(sValue)){
		sValue = sValue.replace(sRegExp, '$1.$2');
	}
	return sValue;
}

function loadGoogleMaps(identificador) {
    var endereco = $('#' + identificador + '_endereco').val();
	var utilizar = parseInt($('#' + identificador + '_utilizar_lat_lng').val())	
	
	var myOptions = {
			  zoom: 16,
		   	  scrollwheel: false,
			  mapTypeId: google.maps.MapTypeId.SATELLITE
	};
	map = new google.maps.Map(document.getElementById(identificador), myOptions);
    
	if(utilizar){
		var latlng = new google.maps.LatLng($('#' + identificador + '_latitude').val(), $('#' + identificador + '_longitude').val());

		map.setCenter(latlng);
		  
		var marker = new google.maps.Marker({
			position: latlng,
			map: map
		});
		  
		google.maps.event.addListener(marker, 'click', function() {
			map.setZoom(16);
			map.setCenter(latlng);
		});
	}else{	
		geocoder = new google.maps.Geocoder();
   
		if(geocoder){
			geocoder.geocode( { 'address': endereco}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					  latlng = results[0].geometry.location;
					  
					  map.setCenter(latlng);
					  
					  var icone = new google.maps.MarkerImage('{T:URL}/imagens/mapas/local.png',
						  // This marker is 20 pixels wide by 32 pixels tall.
						  new google.maps.Size(202, 77),
						  // The origin for this image is 0,0.
						  new google.maps.Point(0,0),
						  // The anchor for this image is the base of the flagpole at 0,32.
						  new google.maps.Point(202, 72));
					  
					  var marker = new google.maps.Marker({
						position: latlng,
						map: map
					  });
					  
					  google.maps.event.addListener(marker, 'click', function() {
						  map.setZoom(16);
						  map.setCenter(latlng);
					  });
				}
			});
		}
	}
}

function respFormulario(result,status) {
	if(result.alerta)
		alert(result.alerta);
	
	if(result.redirect){
		$(location).attr('href',result.redirect);
	}
	
	if(result.msg){
		if(result.msgPosition){
			messageBox(result.msg,(result.destino?result.destino:'resp_geral'),'h_geral', result.msgPosition);
		}else{
			messageBox(result.msg,(result.destino?result.destino:'resp_geral'),'h_geral', 28);
		}
	}

	// Limpa campos do formulário
	if(result.clear=='all'){
		$('.ajaxForm').resetForm();
	}else if(result.clear=='reserva'){
		$('.ajaxForm').resetForm();
		$("#quartos_container").html('');
		$('.ajaxForm[type=hidden]').val('');
	}else if(result.clear){
		var fields = result.clear.split(',');
		for(x=0;x<fields.length;x++){
			if(fields[x] == 'all'){
				$('.ajaxForm').resetForm();				
			}else{
				$("#" + fields[x]).val('');	
			}
		}
	}
}

// Exibe uma msg de erro de ajax na topBox
function errorAjax(o,t,e) {	
	messageBox('<div class="msg_box">Houve um erro na comunica&ccedil;&atilde;o! Tente novamente. (' + t + '|' + e + ')</div>');
}

// Funções básicas
function messageBox(m,d,h,a) {	
	var a = a?a:0;
	
	if(!$("#resp_geral").length)
		$("body").append("<div id=\"resp_geral\"></div><div id=\"h_geral\"></div>");

	$("#" + h).show();
	$("#" + h).html(m);
	
	$("#" + d).hide();
	$("#" + d).html('<a href="#' + h + '" class="message_box" id="message_box">.</a>');
	
	$(".message_box").fancybox({
		padding					: 0,
		leftSpace				: a,
		'transitionIn'			: 'fade',
		'transitionOut'			: 'fade',
		background				: '#333',
		overlayShow				: false,
		centerOnScroll          : true,
		enableEscapeButton		: true,
		hideOnContentClick		: false,
		'autoScale'         	: true,
		'autoDimensions'    	: true,
		onComplete				: function(){
									$("#" + h).fadeIn('fast');
								  },
		onCleanup				: function(){
									$("#" + h).fadeOut('fast');
								  }
	});
	
	$("#message_box").trigger('click');
}

function modalBox(m,d,h) {
	if(!$("#resp_geral").length)
		$("body").append("<div id=\"resp_geral\"></div><div id=\"h_geral\"></div>");
	
	$("#" + h).show();
	$("#" + h).html(m);
	
	$("#" + d).hide();
	$("#" + d).html('<a href="#' + h + '" class="message_box" id="message_box">.</a>');
	
	$(".message_box").fancybox({
		padding					: 5,
		'transitionIn'			: 'fade',
		'transitionOut'			: 'fade',
		modal					: true,
		centerOnScroll          : true,
		'autoScale'         	: true,
		'autoDimensions'    	: true,
		onComplete				: function(){
									$("#" + h).fadeIn('fast');
								  },
		onCleanup				: function(){
									$("#" + h).fadeOut('fast');
								  }
	});
	
	$("#message_box").trigger('click');
}

function validaData(data){
    //contando chars
    if(data.length!=10) return false;

    // verificando data
    var dia         = data.substr(0,2);
    var barra1      = data.substr(2,1);
    var mes         = data.substr(3,2);
    var barra2      = data.substr(5,1);
    var ano         = data.substr(6,4);

    if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false;
    if((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
    if(mes==2 && (dia>29||(dia==29&&ano%4!=0)))return false;
    if(ano < 1900 || ano > 2100)return false;
    return true;
}

function loading(s,id) {	
	if(s==1){
		$("#loading_" + id).html('<img src="' + href + '/imagens/geral/loading_verde.gif" border="0" />');
		$("#loading_" + id).addClass('loading');
		$("#loading_" + id).show();
	}else{
		$("#loading_" + id).hide();
		$("#loading_" + id).removeClass('loading');
		$("#loading_" + id).html('');	
	}
}
