$(document).ready(function () {
  if ($('#dot').length > 0) {
    moveDot();
    updateCountdown();
	}
});

var now = new Date();
var time_correction = server_time - now.getTime() / 1000;

function moveDot() {
  var now = new Date();
  var timestamp = now.getTime() / 1000 + time_correction;
  //var timestamp = 1127873400;
  for (var i=0; i < timeline.length; i++) {
    if (timeline[i][2] > timestamp) {
      var dot = document.getElementById("dot");
      dot.style.left = (timeline[i][0] - 5) + "px";
      dot.style.top = (timeline[i][1] - 5) + "px";
      dot.style.visibility = "inherit";
      break;
    }
  }
  setTimeout('moveDot()', 60000);
}

function pause(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
}

function toFmt(val) {
	if ((val >= 0) && (val <= 9)) {
		return "0" + val;
	} else {
		return val;
	}
}

function updateCountdown() {
	var highcountdown = document.getElementById("highcountdown");
	var lowcountdown = document.getElementById("lowcountdown");
	var hightime = document.getElementById("hightime");
	var lowtime = document.getElementById("lowtime");
	var now = new Date();
	var timestamp = Math.round(now.getTime() / 1000 + time_correction);
	var delta_str = "-";
	var time_str = "-";

	for (i=0; i < high_tides.length; i++) {
		if (high_tides[i] > timestamp) {
			var delta = high_tides[i] - timestamp;
			delta_str = toFmt(Math.floor(delta / 3600)) + " hr ";
			delta_str += toFmt(Math.floor((delta % 3600) / 60)) + " min ";
			delta_str += toFmt(delta % 60) + " s";
	
			var local_date = new Date(now.valueOf() + delta * 1000 + time_correction * 1000 + 3600000 * (hrdiff + now.getTimezoneOffset() / 60));
			time_str = toFmt(local_date.getHours()) + ":" + toFmt(local_date.getMinutes()) + ":" + toFmt(local_date.getSeconds());
			break;
		}
	}
	highcountdown.value = delta_str;
	hightime.value = time_str;
	
	delta_str = "-";
	time_str = "-";
	
	for (i=0; i < low_tides.length; i++) {
		if (low_tides[i] > timestamp) {
			var delta = low_tides[i] - timestamp;
			delta_str = toFmt(Math.floor(delta / 3600)) + " hr ";
			delta_str += toFmt(Math.floor((delta % 3600) / 60)) + " min ";
			delta_str += toFmt(delta % 60) + " s";
	
			var local_date = new Date(now.valueOf() + delta * 1000 + time_correction * 1000 + 3600000 * (hrdiff + now.getTimezoneOffset() / 60));
			time_str = toFmt(local_date.getHours()) + ":" + toFmt(local_date.getMinutes()) + ":" + toFmt(local_date.getSeconds());
			break;
		}
	}
	lowcountdown.value = delta_str;
	lowtime.value = time_str;
	 
	var localtime = document.getElementById("localtime");
	var local_date = new Date(now.valueOf() + time_correction * 1000 + 3600000 * (hrdiff + now.getTimezoneOffset() / 60));
	localtime.value = toFmt(local_date.getHours()) + ":" + toFmt(local_date.getMinutes()) + ":" + toFmt(local_date.getSeconds());

  	setTimeout('updateCountdown()', 1000);
}
