window.addEvent('domready',function(){


function findHash() {
    if(window.location.hash) {

		  var clickedAnchor = false; // going to track the last clicked link element 
		  clickedAnchor = window.location;
		  newHash = window.location.hash.substring(2);
		  newUrl = newHash.split('&');
		  loadPage(this,newUrl[0], newUrl[1]);

    }
}

findHash();
  
});




/**
 * This is used to generate fluent timestamps
 */
  var serverOffset = 0;

  Date.setServerOffset = function(ts){
    var server = new Date(ts);
    var client = new Date();
    serverOffset = server - client;
  };

  Date.getServerOffset = function() {
    return serverOffset;
  };

  Date.implement({

    getISODay : function()
    {
      var day = this.get('day') - 1;
      if( day < 0 ) day += 7;
      return day;
    },

    getISOWeek : function()
    {
      var compare = this.clone().set({
        month : 1,
        date : 4
      });
      var startOfWeekYear = compare.get('dayofyear') - compare.getISODay() - 1;
      return ( (this.get('dayofyear') - startOfWeekYear) / 7 ).ceil();
    },

    getFluentTimeSince : function(now)
    {
      var ref = this;
      var val;
      if( !now ) now = new Date();
      var deltaNormal = (ref - now - serverOffset) / 1000;
      //var deltaNormal = (now - ref + serverOffset) / 1000;
      var delta = Math.abs(deltaNormal);
      var isPlus = (deltaNormal > 0);

      if( delta < 1 ) {
        if( isPlus ) {
          return ('acum');
        } else {
          return ('acum');
        }
      }

      // Less than a minute
      else if( delta < 60 ) {
        if( isPlus ) {
          return ('in few seconds');
        } else {
          return ('acum câteva secunde');
        }
      }

      // Less than an hour
      else if( delta < 60 * 60 ) {
        val = Math.floor(delta / 60);
        if( isPlus ) {
          return (['in %s minute', 'in %s minutes', val], val);
        } else {
            if(val > 1)
            return (val+' minute în urmă');
            else
            return (val+' minut în urmă');
        }
      }

      // less than 12 hours ago, or less than a day ago and same day
      else if( delta < (60 * 60 * 12) || (delta < 60 * 60 * 24 && ref.get('day') == now.get('day')) )
      {
        val = Math.floor(delta / (60 * 60));
        if( isPlus ) {
          return (['in %s hour', 'in %s hours', val], val);
        } else { 
            if(val > 1)
            return (val+' ore în urmă');
            else
            return (val+' oră în urmă');
      	}
      }

      // less than a week and same week
      else if( delta < 60 * 60 * 24 * 7 && ref.getISOWeek() == now.getISOWeek() )
      {
        return ref.format('%A')+' la '+ref.format('%k:%M');
      }

      // less than a year and same year
      else if( delta < 60 * 60 * 60 * 24 * 366 && ref.getYear() == now.getYear() )
      {
        return ref.format('%B %d%o').replace(' 0', ' ');
      }

      // Otherwise use the full date
      else
      {
        return ref.format('%B %d%o %Y');
      }
    }

  });
  

  window.addEvent('domready', function()
  { 
    (function(){
       
      var now = new Date();
      $$('.timestamp-update').each(function(element){
        var ref = new Date(element.title);
       
        var newStamp = ref.getFluentTimeSince(now);
        if( element.innerHTML != newStamp )
        {
          element.innerHTML = newStamp;
        }
      });
    }).periodical(1000);
  });
  
  
 
