function date_remaining(event_ts) {
	// Labels
	var date_remaining_labels = {
		604800: "sem",
		86400: "gio",
		3600: "ore",
		60: "min",
		1: "sec"
	};
	var date_remaining_labels_writed = new Array();
	var date_remaining_labels_return = new Array();
	var client_ts = Math.round(new Date().getTime() / 1000);
	var diff_ts = event_ts - client_ts;
	// Calculate
	do {
		for (date_duration in date_remaining_labels) {
			var date_label = date_remaining_labels[date_duration];
			if (diff_ts >= date_duration) {
				var nb_times = Math.floor(diff_ts / date_duration);
				date_remaining_labels_return.push(nb_times + " " + date_label);
				date_remaining_labels_writed[date_duration] = true;
				diff_ts -= nb_times * date_duration;
			}
		}
	} while (diff_ts > 0);
	
	// Fill if the latest labels are empty
	date_remaining_labels_find_begining = false;
	for (k in date_remaining_labels) {
		if (typeof(date_remaining_labels_writed[k]) != 'undefined' && !date_remaining_labels_find_begining) {
			date_remaining_labels_find_begining = true;
		} else if (typeof(date_remaining_labels_writed[k]) == 'undefined' && date_remaining_labels_find_begining) {
			date_label = date_remaining_labels[k];
			date_remaining_labels_return.push("0 " + date_label);
		}
	}
	
	return date_remaining_labels_return;
}
function date_remaining_fill(event_ts, selector, html_syntax, delay, html_reverse) {
	var date_remaining_data = date_remaining(event_ts);
	var date_remaining_html = '';
	for (k in date_remaining_data) {
		var date_remaining_html_part = date_remaining_data[k];
		date_remaining_html_part_final = html_syntax.replace('$html', date_remaining_html_part);
		if (html_reverse) {
			date_remaining_html = date_remaining_html_part_final + date_remaining_html;
		} else {
			date_remaining_html += date_remaining_html_part_final;
		}
	}
	$(selector).html(date_remaining_html);
	setTimeout("date_remaining_fill("+event_ts+", '"+selector+"', '"+html_syntax+"', "+delay+", "+html_reverse+");", delay);
}
