$(document).ready(function() { $('#projects li').each(function() { $(this).find('.image img').css({opacity: .5}); }).hover(function() { $(this).find('.image img').animate({opacity: 1}, 200); }, function() { $(this).find('.image img').animate({opacity: .5}, 200); }); $('.smartBox').smartbox(); $('#simpleContact').simpleContact('http://benjaminplum.com/site/ajax/simpleContact.php'); $('#lastTweet').lastTweet('benplum'); }); /* * SmartBlur Plugin 1.0 * Focus-clear and blur-restore for input fields and textareas * * @author Ben Plum * @version 1.0 * * Copyright (c) 2009 Ben Plum MIT License * * UPDATE 10/31/09: Added textarea functionality */ (function($){ $.fn.smartBlur = function() { //clear field on focus $(this).focus(function(){ if($(this).val() == $(this).attr('defaultValue')) $(this).val(''); }); //restore on blur $(this).blur(function(){ if($(this).val() == '') $(this).val($(this).attr('defaultValue')); }); } })(jQuery); /* * LastTweet Plugin 1.0 * Displays the last tweet from your Twitter account * * @author Ben Plum * @version 1.0 * * Copyright (c) 2009 Ben Plum MIT License * */ (function($){ $.fn.lastTweet = function(userName) { var targetDiv = this; $.getJSON("http://twitter.com/status/user_timeline/" + userName + ".json?count=1&callback=?", function(data){ $.each(data, function(i, item) { targetDiv.html("

" + checkForLink(item.text) + "

" + calcRelativeTime(item.created_at) + " via " + item.source + ""); }); }); function checkForLink(text) { return text.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(t) { return t.link(t); }); }; function calcRelativeTime(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, 10); delta = delta + (relative_to.getTimezoneOffset() * 60); var r = ''; if (delta < 60) { r = 'a minute ago'; } else if(delta < 120) { r = 'couple of minutes ago'; } else if(delta < (45*60)) { r = (parseInt(delta / 60, 10)).toString() + ' minutes ago'; } else if(delta < (90*60)) { r = 'an hour ago'; } else if(delta < (24*60*60)) { r = '' + (parseInt(delta / 3600, 10)).toString() + ' hours ago'; } else if(delta < (48*60*60)) { r = '1 day ago'; } else { r = (parseInt(delta / 86400, 10)).toString() + ' days ago'; } return r; }; } })(jQuery);