//================================================================================//
//																				  //
//  PRELOADER																	  //
//    Preoloads the rollover images to reduce load time when hover is activated.  //
//																				  //
//================================================================================//

$(document).ready( function()

{
   PEPS.rollover.init();
});

PEPS = {};

PEPS.rollover =
{
   init: function()
   
   {
      this.preload();
     
      $(".ro").hover(
         function () { $(this).attr( 'src', PEPS.rollover.newimage($(this).attr('src')) ); },
         function () { $(this).attr( 'src', PEPS.rollover.oldimage($(this).attr('src')) ); }
      );
   },

   preload: function()
   {
      $(window).bind('load', function() {
         $('.ro').each( function( key, elm ) { $('<img>').attr( 'src', PEPS.rollover.newimage( $(this).attr('src') ) ); });
      });
   },
   
   newimage: function( src )
   {
      return src.substring( 0, src.search(/(\.[a-z]+)$/) ) + '_o' + src.match(/(\.[a-z]+)$/)[0];
   },

   oldimage: function( src )
   {
      return src.replace(/_o\./, '.');
   }
};



//================================================//
//												  //
//  Featured Cylce								  //
//    Settings used for the jQuery cycle plugin.  //
//												  //
//================================================//

$(document).ready(function() {
	$('#featured').hover(
	      function () {
	        $('#featured a').fadeIn();
	      }, 
	      function () {
	        $('#featured a').fadeOut();
	      }
	);

	$('#featured a').click(function() {
		return false;
	});
	
	$('#featured-pics').cycle({ 
	    fx: 'fade', pause: 5, speed: 2000, timeout: 10000, prev: '.prev', next: '.next' , cleartypeNoBg: true
	});
	
	$('ul#portfolio li a').fancybox({
		"hideOnContentClick": true,
		'frameWidth': 800,
		'frameHeight': 530,
		'imageScale': false,
		'centerOnScroll': false,
		'padding': 0
	
	});

});


//================================================================================//
//																				  //
//  TWITTER																		  //
//    Updates the twitter feed by importing the last 2 tweets and sets the time.  //
//																				  //
//================================================================================//

function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+'</span> <br /> <a id="time" color:#9e9e9e; text-decoration:none;" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+' target="_blank">'+relative_time(twitters[i].created_at)+'</a></li><br />');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}


