/*********************************************
* Counts down to a specific event
* Full copyright 2007 Sailport AB
* Author: Kalle Haglunds <kalle@sailport.se>
**********************************************/

function SYC_get_remaining(target_date /* Date object */) {
	var SDAY = 86400;
	var SHOUR = 3600;
	var SMIN = 60;
	var cur_date = new Date();
	// UTC offset in millisec
	var offset = cur_date.getTimezoneOffset()*60.0*1000.0;
	var is_past = false;
	var diff = 0;
		
	if ((cur_date.getTime() + offset) > target_date.getTime()) {
		diff = (cur_date.getTime() + offset) - target_date.getTime();
		is_past = true;
	} else {
		diff = target_date.getTime() - (cur_date.getTime() + offset);
	}

	// Convert diff to secs
	diff = Math.floor(diff/1000.0)

	var days = Math.floor(diff/SDAY);
	diff = diff % SDAY;
	var hours = Math.floor(diff/SHOUR);
	diff = diff % SHOUR;
	var mins = Math.floor(diff/SMIN);
	diff = diff % SMIN
	var secs = diff

	if (is_past) {
		return [-days, hours, mins, secs];
	} else {
		return [days, hours, mins, secs];
	}
	
}
/**
 * Add a leading zero to the string number if
 * the number of figures is < 2
 */
function SYC_add_zero(number) {
	var is_negative = false;
	if (number.charAt(0) == '-') {
		is_negative = true;
		number = number.slice(1);
	}
	if (number.length < 2) {
		number = "0"+number;
	}
	if (is_negative) {
		number = "-" + number;
	}
	
	return number;
}

function SYC_format_remaining(parts /* Array returned from get_remaining */ ) {
	formatted_parts = [];
	for (index in parts) {
		formatted_parts.push(SYC_add_zero(parts[index].toString()));
	}
	return formatted_parts;
}