/* (C) 2009 TheTinyTimer.com 0.1b 2/28/2009 12:48:56 AM */

var min = 60     ;
var hr  = min*60 ;
var day = hr*24  ;
var elapsed = 0;
var lap = 0;
var lLap=0;
var tLap=0;
var longFormat = true;
var grain = 1;
var t;
var $j = jQuery;
function initCounter(){
  counter();
}
window.onbeforeunload = function(){
	    return "     Your current counter will be lost!";
  };
var lap = 0;
function split(){
  var li = document.createElement('li');
  li.className = 'lap';
  li.style.display = 'none';
  li.id = 'lap_'+lap;
  var cLap = elapsed-tLap;
	var diff = cLap - lLap; 
  var l = $('elapsed').innerHTML+' | '+cLap +'s | ';
	if(diff>0)
	  l += '+'+diff;
  else if(diff<0)
    l += diff;
  else l += '&plusmn;0';
  
  li.innerHTML = l;
  $('lapList').appendChild(li);
  new Effect.Appear('lap_'+lap);
  lap++;
  lLap  = cLap;
  tLap += cLap;
}
function togglePause(){
  t.currentlyExecuting = !t.currentlyExecuting;
  
  if(!t.currentlyExecuting){
	  popUp('Resumed.');
	  $j('#pause').css('background-position','0 0');
  } else {
    popUp('Paused.');
    $j('#pause').css('background-position','0 -45px');
    split();
  }
}
function counter(){
  if(t && t.stop) t.stop();
  updateCounter();
  t = new PeriodicalExecuter(updateCounter, grain);
}
function updateCounter(){
  elapsed += grain;
  secToTime(elapsed, elapsed, longFormat,'elapsed');
}
function secToTime(s,tot,len,id){
  var T = '';
  var t = '';
  var q = 0;
  /* Days */
  q = parseInt(s / day);
  if(q){
    if(len) T+=q+' day'+(q==1?'':'s')+'<br/>&nbsp;';
    else T+=q+'day '+(q==1?'':'s');
    t+=q+' day'+(q==1?'':'s')+' ';
    s-=q*day;
  }
  /* Hours */
  q=parseInt(s/hr);
  if(s<tot || q){
    if(len) T+=q+' hour'+(q==1?'':'s')+'<br/>&nbsp;&nbsp;';
    else T+=q+":";
    t+=q+' hour'+(q==1?'':'s')+' ';
    s-=q*hr;
  }
  
  /* Minutes */
  q=parseInt(s/min);
  if(s<tot || q){
    if(len) T+=q+' minute'+(q==1?'':'s')+'<br/>&nbsp;&nbsp;&nbsp;';
    else T+=q+"'";
    t+=q+' min'+(q==1?'':'s')+' ';
    s-=q*min;
  }
  /* Seconds */
  q=s;
  if(len) T+=q+' second'+(q==1?'':'s');
  else T+=q+'"';
  if(q) t+=q+' sec'+(q==1?'':'s');
  /* Update Text */
  $(id).innerHTML = T;
  document.title = t;
}
var pu =0;
function popUp(msg){
  var div = document.createElement('div');
  div.className = 'popup';
  div.style.display = 'none';
  div.id = 'pu_'+pu;
  div.innerHTML = msg;
  $('info').appendChild(div);
  new Effect.Appear('pu_'+pu, {queue:'front'});
  new Effect.Fade('pu_'+pu++, {queue:'end'});
}