/* ========================================================= */
//onLoad

$(document).ready(function() {

	//Variáveis da página
	var engine = $("body").attr("class");
	
	//conteúdo em abas
	$(".pacote #conteudo .aba dt").click(function() { pacotes.aba(this) })
	.eq(0).trigger("click");
	
	//igualar altura
	$("#conteudo .pacotes dl .itens").igualar();
	$(".hotel #conteudo, .hotel #conteudo .info").igualar();
	
	//somar valores	
	$("#conteudo .pacotes .valores li").click(function() { pacotes.escolha(this); });
	
	//carregar valores do Hash
	if(window.location.hash.search("valores") == 1) {
		var valores = window.location.hash.split("-");
		$("#v-" + valores[1] + ", " + "#v-" + valores[2]).trigger("click");
	}
	
	//fotos
	$(".fotos").fotos();
	
});

/* ========================================================= */
//Retornar querystring

function getQuery() {
	
	//buscar querystring
	this.queryText = window.location.search.replace("?","");
	var queryArray = this.queryText.split("&");
	
	//valores esperados
	this.secao = "home";
	this.ordem = "";
	this.palavra = "";
	
	//para cada valor
	for (var i = 0; i < queryArray.length; i++) {
		if(queryArray[i]) {
			var inQuery = queryArray[i].split("=");
			eval("this." + inQuery[0] + " = " +  "'" + inQuery[1] + "'");
		}
	}
	
}

/* ========================================================= */
//Validar e enviar formulários

function enviaForm(quem) {
	
	var formulario = $(quem).parent();
	var labels = formulario.find("label");

	//verificar campos
	labels.filter(".check, .erro, .ok").each(function() {
		var classe = ($(this).next().val().length > 0) ? "ok" : "erro";
		$(this).add($(this).next()).attr("class", classe);
	});
	
	//se estiver ok, enviar
	if(!labels.is(".erro")) {
		$(quem).text("enviando");
		formulario.submit();
	}

}

/* ========================================================= */
//Select de pacotes

function pacote(quem) {
	if(quem.options[quem.selectedIndex].text != quem.options[quem.selectedIndex].value) {
		window.location.href = "http://www.neve.com.br/" + quem.value;
	}
}

/* ========================================================= */
// Trocar vídeos

function tubePlayer(quem) {

	var idTube = $(quem).attr("name");
	var player = $(quem).parents("dd").find(".player");
	
	var video = '' +
		'<object width="100%" height="100%">' +
		
			'<param name="movie" value="http://www.youtube.com/v/' + idTube + '&hl=pt-br&fs=1"></param>' +
			'<param name="allowFullScreen" value="true"></param>' +
			'<param name="allowscriptaccess" value="always"></param>' +
			'<param name="wmode" value="transparent" />' +
			
			'<embed  src="http://www.youtube.com/v/' + idTube + '&hl=pt-br&fs=1" ' +
			'type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" ' +
			'wmode="transparent" width="100%" height="100%"></embed>' +
					
		'</object>';
	
	//trocar vídeo
	player.html(video);

}

/* ========================================================= */
// Listagem

var lista = {

	ordem: function(quem) {
		if ($(quem).val() != "") {
		
			var valores = new getQuery;
			var linque = document.location.href.toString().split("?")[0];
			var url = linque + "?secao=lista&ordem=" + $(quem).val() + "&cidade=" + valores.cidade;
			if(valores.palavra != undefined && valores.palavra != '') {
				url +="&palavra=" + valores.palavra;
			}
			window.location.href = url;
			
		}
	},
	
	busca: function() {
	
		var valores = new getQuery;
		var palavra = $("input[name=lista-busca]").val()
		var linque = document.location.href.toString().split("?")[0];
	
		if (palavra != "" && palavra != "Busca por hotel" && palavra != "Busca por pacote" ) {
			window.location.href = linque + "?secao=lista&palavra=" + palavra + "&cidade=" + valores.cidade;
		}		
	}

}

/* ========================================================= */
// Pacotes

var pacotes = {

	aba: function(quem) {
		$(quem).toggleClass("on").next().slideToggle();
	},
	
	//carregar info do hotel
	hotel : function(quem) {
		/*
		if(typeof quem == "number") {
		
			$("#conteudo .hotel dd").slideUp().parent().append("<dd />")
			.find("dd:last").hide()
			.load("conteudo/server/hotel_info.php?hotel=" + quem, function() {
				$(this).find("li").end().slideDown();
			});
			
		}
		else {
		
			$(quem).parent().slideUp(function() {
				$(this).remove();
				$("#conteudo .hotel dd").slideDown();
			});
		
		}
		*/		
		if(typeof quem == "number") {
		
			//criar div
			var info = ($("#conteudo .hotel").size() > 0) ? $("#conteudo .hotel") :
			$("<div class='hotel' />").insertAfter("#conteudo .info");
		
			info.load("conteudo/server/hotel_info.php?hotel=" + quem);
			
		}
		else {
		
			$(quem).parents("div.hotel").slideUp(function() {
				$(this).remove();
			});
		
		}
		
	},
	
	soma: function() {
	
		var total = 0;
		var registro = "valores";
	
		//soma valores selecionados
		$("#conteudo .valores .on b").each(function(index) {
			var preco = $(this).text().replace(/[A-Za-z_]*[$][\s]/, "").replace(",",".");
			total += eval(preco);
			registro += "-" + $(this).parent().attr("id").replace("v-","");
		});
		
		//alterar url
		window.location.hash = registro;
		
		//valor com centavos		
		return total.toFixed(2);
	
	},
	
	escolha: function(quem) {
	
		//destacar
		$(quem).siblings().removeClass("on").end().addClass("on");
		
		//trocar valor total
		//var moeda = $("#conteudo .total:first b").text().match(/[A-Za-z_]*[$][\s]/)[0];
		var moeda = $("#conteudo .total:first b").text().split("")[0];
		
		$("#conteudo .total b").text(moeda + pacotes.soma());
	
	}

};

/* ========================================================= */
//Indique por e-mail

var indique = {

	abrir : function(quem) {
		
		var posicao = $(quem).offset();
		
		//criar div
		var popUp = ($("#indique-pop").size() > 0) ? $("#indique-pop") :
		$("<div id='indique-pop' />").appendTo($("body"));
		
		popUp.css({
			left : posicao.left - popUp.width() - 20,
			top : posicao.top - (popUp.height() / 2)
		})
		.load("conteudo/server/indique-pop.php");
		
	},
	
	enviar : function() {
	
		var campos = $("#indique-pop input, #indique-pop textarea");
		var legenda = $("#indique-pop b");
		
		//checar campos
		campos.each(function() {
		
			var check = ($(this).val().length == 0) ? "erro" : "ok" ;
			$(this).attr("class", check);
		
		});
		
		//caso esteja ok
		if(!campos.is(".erro")) {
		
			//valor dos campos
			var dados = {
				"nome" : campos.filter("[name=nome]").val(),
				"mail" : campos.filter("[name=mail]").val(),
				"anome" : campos.filter("[name=anome]").val(),
				"amail" : campos.filter("[name=amail]").val(),
				"mensagem" : campos.filter("[name=mensagem]").val(),
				"linque" : document.location.href
			};
		
			//enviar por ajax
			$.get("conteudo/server/enviaIndique.php", dados, function(data) {
				indique.fechar();
			});
			
		}
		else { legenda.text("Preencha corretamente"); }
	
	},
	
	fechar : function() {
		$("#indique-pop").fadeOut(function() { $(this).remove(); });
	}

}

/* ========================================================= */
// Redes sociais

function compartilhar(quem) {
	
	//info da página
	var titulo = document.title;
	var url = document.location.href;
	var words = "Neve, Viagem, Turismo, Ski, Snowboard";
	var social;

	//ações
	switch(quem.className){
		
		case "delicious":
			social = "http://del.icio.us/post?url=" + url + "&title=" + titulo;
		break;
		case "digg":
			social = "http://digg.com/submit?phase=2&url=" + url + "&title=" + titulo;
		break;
		case "stumbleupon":
			social = "http://www.stumbleupon.com/submit?url=" + url + "&title=" + titulo;
		break;
		case "technorati":
			social = "http://technorati.com/faves?add=" + url + "&title=" + titulo;
		break;
		case "twitter":
			social = "http://twitter.com/home?status=" + titulo + ":%20" + url;
		break;
		case "facebook":
			social = "http://www.facebook.com/sharer.php?u=" + url + "&t=" + titulo;
		break;
		case "orkut":
			social = "http://promote.orkut.com/preview?src=bkmrklt&v=1&nt=orkut.com&du=" + url + "&tt=" + titulo;
		break;
		case "google":
			social = "http://www.google.com/bookmarks/mark?op=edit&bkmk=" + url + "&title=" + titulo + "&labels=" + words;
		break;
		case "linkedin":
			social = "http://www.linkedin.com/shareArticle?mini=true&url=" + url + "&source=" + titulo;
		break;
		//adicionar aos favoritos
		default:
			(document.all) ? window.external.AddFavorite(url,titulo) : window.sidebar.addPanel(titulo,url,'');
			return false;
	
	}
	
	//abrir nova página
	window.open(social, "Social");

}

/* ========================================================= */
// Aviso

function aviso() { $("#conteudo .aviso").slideUp(); }


/* ========================================================= */
//jQuery personalizado
	
(function($) {
	$.fn.extend({
	//--------------------------------------------------------------------------------------------------------------//
	//Altura dos elementos
	
		igualar : function() {
			
			var maximo = 0;
			
			//setar maior altura
			$(this).each(function() {
				//encontrar maior valor
				if(maximo < $(this).height()) { maximo = $(this).height(); }
			})
			.css("min-height", maximo);
			
			//IE6
			if ($.browser.msie && $.browser.version == "6.0") { $(this).css("height", maximo); }
	
			//retornar seletor
			return this;

		},
		
	//--------------------------------------------------------------------------------------------------------------//
	//Fotos
	
		fotos : function() {
			
			var numero = 4;
			
			//para cada item do seletor
			$(this).each(function() {
			
				var objeto = $(this);
				var thumbs = objeto.find(".thumbs");
				var imagens = thumbs.find("img");
				var total = 0;
				
				//acionar zoom nas imagens
				imagens.click(function() {
					var nova = $(this).attr("src").split("&")[0];
					objeto.find("img:first").css("opacity",".5").attr("src", nova + "&larg=370&alt=370")
					.load(function() {
						$(this).css("opacity","1");
					});
				});
					
				//dividir imagens em páginas (por numero)
				while(thumbs.children("img").size() > 0) {
					thumbs.children("img").slice(0,numero).wrapAll("<li />");
					total++;
				}
				
				var paginas = thumbs.children("li").wrapAll("<ul />").parent().wrapAll("<div class='paginas' />").parent();
				
				//caso haja paginação
				if(total > 1) {
				
					//inserir navegação
					$('<a class="anterior" title="Anterior" /><a class="proximo" title="Próximo" />')
					.click(function() {	paginar.navegar($(this).attr("class")); })
					.wrapAll("<div class='navegar' />").parent()
					.appendTo(thumbs);
					
					//exibir botões
					objeto.hover(
						function() { $(this).find(".navegar").fadeIn(); },
						function() { $(this).find(".navegar").fadeOut(); }
					);
					
					//objeto da paginação
					var paginar = {

						num : 0,

						navegar : function(quem) {
							
							var ultimo = total - 1;
						
							//setar próxima página
							switch(quem) {
								
								case "anterior" :
									paginar.num = (paginar.num == 0) ? ultimo : (paginar.num - 1);
								break;
								case "proximo" :
									paginar.num = (paginar.num == ultimo) ? 0 : (paginar.num + 1);
								break;
								case "primeiro" :
									paginar.num = 0;
								break;
								case "ultimo" :
									paginar.num = ultimo;
								break;
								default : paginar.num = eval(quem) - 1;
							
							}
						
							var atual = paginas.find("li").eq(paginar.num);
							
							//ajustar altura
							paginas.animate({ height : atual.height() });
								
							//mover pagina
							paginas.children("ul").animate({
								top : atual.position().top * (-1)
							});
							
						}

					}
					
				}
				
				//altura da primeira página
				thumbs.find("li:first img").load(function() {
					paginas.css({ height : thumbs.find("li:first").height() });
				});
				//paginas.css({ height : thumbs.find("li:first").height() });
				
			})
			
			//retornar seletor
			return this;

		}
		
	//--------------------------------------------------------------------------------------------------------------//
	});
})(jQuery);

/* ========================================================= */