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

/**
 * Shortcut para exibir uma mensagem com botão de OK.
 * 
 * @param title título da mensagem
 * @param message mensagem a exibir
 */
function showMessage(title, message) {
	$dialog.message(title, message);
}

/**
 * Animation for outras-cidades block.
 */
var outrasCidadesOpen = false;
function toogleOutrasCidades() {
	var h = outrasCidadesOpen ? "0px" : "100px";
	var p = outrasCidadesOpen ? "0px" : "10px";
	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 == "" ) {
		$dialog.message("Dados incompletos", 
				"Por favor, informe o seu <b>e-mail</b>.");
		return;
	}
	
	$dialog.progress("Registrando ...");
	
	$.ajax({
		url: "/preregister/?email=" + email + "&location=" + loc,
		success : function(response) {
			$dialog.message("Registro", response);
		},
	    error : function(XMLHttpRequest, textStatus, errorThrown) {
		    var _msg = "Problema com seu registro. " + 
		        "Por favor, tente novamente mais tarde. [code: " + textStatus + "]";
		    $dialog.message("Ops ... Erro no Servidor", _msg);
		}
	});
}

/**
 * Realiza um novo voto.
 * 
 * @param discountId
 * @return
 */
function vote(discountId) {
	$dialog.progress("Enviando voto ...");
	
	$.ajax({
		url: "/poll/vote/" + discountId + "/",
		success : function(response) {
			$dialog.message("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);
});
