/* helveticons.ch - icons and love */

if (typeof console == 'undefined') var console = { log: function(){} }

Date.implement({
  timeSince: function(){
    var chunks = [
      [31536000, 'year', 'years'],
      [2592000, 'month', 'months'],
      [604800, 'week', 'weeks'],
      [86400, 'day', 'days'],
      [3600, 'hour', 'hours'],
      [60, 'minute', 'minutes']
    ];
    var since = ((new Date().getTime()) - this.getTime()) / 1000;
    var seconds, name, pname, count;
    if (since < 180) return 'recently';
    for (var i=0; i < chunks.length; i++) {
      seconds = chunks[i][0];
      name = chunks[i][1];
      pname = chunks[i][2];
      count = Math.floor(since / seconds);
      if (count != 0) break;
    }
    var output = (count == 1) ? '1 '+name : count+' '+pname;
    if (i+1 < chunks.length) {
      var seconds2 = chunks[i+1][0];
      var name2 = chunks[i+1][1];
      var pname2 = chunks[i+1][2];
      var count2 = Math.floor((since-(seconds*count))/seconds2);
      if (count2 != 0) output += (count2 == 1) ? ', 1 '+name2 : ', '+count2+' '+pname2;
    }
    return output + ' ago';
  }
});

var ready = false;
function twitter(data){
  var set = function(){
    var created_at = data[0].created_at;
    if (Browser.Engine.trident)
      created_at = created_at.replace(/ \+[\d]{4}/, '');
    document.id('twitter_date').set('text', new Date(created_at).timeSince());
    document.id('twitter_text').set('text', data[0].text);
  }
  if (!ready) window.addEvent('domready', set);
  else set();
}

function preload(src){
  var img = new Image();
  img.onload = function(){
    console.log('image loaded', this.src);
  }
  img.src = src;
}

window.addEvent('domready', function(){
  
  ready = true;
  
  var posterFx = new Fx.Tween('poster', {
    duration: 700,
    transition: 'quint:out'
  });
  
  posterFx.set('top', 0);
  
  var posterBack = function(){
    posterFx.cancel();
    posterFx.start('top', 0);
    var eh = Browser.Engine.trident ? document : window;
    eh.removeEvent('click', posterBack);
    eh.removeEvent('mousemove', moveButton);
    showCursor();
    moveButton({page: {x: 0, y:-36}});
    return false;
  };
  
  var closeButton = document.id('closebutton');
  var bo = new Hash(closeButton.getStyles('width', 'height')).map(function(v){
    return v.toInt();
  });
  
  var moveButton = function(e){
    closeButton.setStyles({
      top: e.page.y - (bo.height / 2),
      left: e.page.x- (bo.width / 2)
    });
  };
  
  var hideCursor = function(){
    if (Browser.Engine.trident) {
      document.id(document.body).setStyle('cursor', 'url(img/blank.cur)');
      closeButton.setStyle('cursor', 'url(img/blank.cur)');
    } else {
      closeButton.setStyle('cursor', 'none');
    }
  }
  
  var showCursor = function(){
    document.id(document.body).setStyle('cursor', 'auto');
    closeButton.setStyle('cursor', 'auto');
  }
  
  var showPreview = function(event, className){
    posterFx.start('top', -1510).chain(function(){
      closeButton.fade(Browser.Engine.trident ? 'show' : 'in');
    });
    closeButton.fade('hide');
    moveButton(event);
    hideCursor();
    var eh = Browser.Engine.trident ? document : window;
    eh.addEvent('click', posterBack);
    eh.addEvent('mousemove', moveButton);
    document.id('container').set('class', className);
  }

  document.id('preview_basic_link').addEvent('click', function(event){
    event.stop();
    showPreview(event, 'basic');
  });
  
  document.id('preview_extras_link').addEvent('click', function(event){
    event.stop();
    showPreview(event, 'extras');
  });
  
  preload('img/preview_extras.png');
});

/* Google Analytics */
window.addEvent('load', function(){
  window.pageTracker = _gat._getTracker('UA-9154060-1');
  window.pageTracker._trackPageview();
});
