function e(el) {
	return document.getElementById(el);
}

/**
 * Animation for outras-cidades block.
 */
var outrasCidadesOpen = false;
var outrasCidadesVerticalCount = 0;
function toogleOutrasCidades() {
	var p = outrasCidadesOpen ? "0px" : "10px";
	var h;
	if (outrasCidadesVerticalCount) {
		h = outrasCidadesOpen ? "0px" : outrasCidadesVerticalCount * 24 + "px";
	} else {
		h = h = outrasCidadesOpen ? "0px" : "180px";
	}
	outrasCidadesOpen = !outrasCidadesOpen;
	$('#outras-cidades').animate({
		height : h,
		padding : p
	}, 500);
}

/**
 * Realiza o pré-registro de um usuário.
 */
function preRegister(email_id, location_id) {
	var email = e(email_id).value;
	var loc = e(location_id).value;

	if (!email || email == "") {
		dialogMessage("Dados incompletos",
				"Por favor, informe o seu <b>e-mail</b>.");
		return;
	}

	dialogProgress("Registrando ...");

	$.ajax({
		url : "/preregister/?email=" + email + "&location=" + loc,
		success : function(response) {
			// Redireciona para a página de sucesso
			var r = "" + response;
			if (r.indexOf("REDIRECT=") >= 0) {
				location.href = response.split("=")[1];
			} else {
				dialogMessage("Registro", response);
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			var _msg = "Problema com seu registro. "
					+ "Por favor, tente novamente mais tarde. [code: "
					+ textStatus + "]";
			dialogMessage("Ops ... Erro no Servidor", _msg);
		}
	});
}

/**
 * Realiza um novo voto.
 * 
 * @param discountId
 * @return
 */
function vote(discountId) {
	dialogMessage.progress("Enviando voto ...");

	$.ajax({
		url : "/poll/vote/" + discountId + "/",
		success : function(response) {
			dialogMessage("Enviado com sucesso", response);
		}
	});
}

function leftZeros(number, size) {
	var s = "" + number;
	while (s.length < size) {
		s = "0" + s;
	}
	return s;
}

function countDownClock() {
	var h = parseInt($("#ts_hour").html(), 10), m = parseInt($("#ts_min")
			.html(), 10), s = parseInt($("#ts_sec").html(), 10);

	s -= 1;
	if (s < 0) {
		s = 59;
		m -= 1;
	}
	if (m < 0) {
		m = 59;
		h -= 1;
	}

	if (h < 0) {
		// Time is over!
		h = m = s = "00";
	} else {
		setTimeout(countDownClock, 1000);
	}

	$("#ts_hour").html(leftZeros(h, 2));
	$("#ts_min").html(leftZeros(m, 2));
	$("#ts_sec").html(leftZeros(s, 2));
}

function updateCounter() {
	try {
		var _need_to_update = updateCounterId;
	} catch (ex) {
		return;
	}

	$.ajax({
		url : "/counter/" + updateCounterId + "/",
		success : function(response) {
			var c = parseInt(response);
			if (c) {
				$("#counter").html(response);
			}
		}
	});

	setTimeout(updateCounter, 60 * 1000);
}

/**
 * Startup
 */
$(function() {
	// Exibe block de pré-registro
	var preRegistered = getCookie("OU-PreRegistered") == null ? false : true;
	var preRegisterBlock = $("#preregister-block");
	if (!preRegistered && preRegisterBlock != null) {
		preRegisterBlock.fadeIn("slow");
	}

	setTimeout(countDownClock, 1000);
});
