(function($){
	function checkEmail(){
		var filter=new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i);
		if ($(this).val().length == 0 || filter.test($(this).val())){
			$(this).next().remove();
		} else {
			if(!$(this).parent().has('.message').length ) {
				$(this).parent().append('<span class="message">This is not a valid email address.</span>');
			}
		}
	}
	
	function toggleLabel() {
		var input = $(this);
		setTimeout(function() {
			var def = input.attr('title');
			input.removeClass('checked');
			if (!input.val() || (input.val() == def)) {
				input.prev('span').css('visibility', '');
				if (def) {
					var dummy = $('<label></label>').text(def).css('visibility','hidden').appendTo('body');
					input.prev('span').css('margin-left', dummy.width() + 3 + 'px');
					dummy.remove();
				}
			} else {
				input.prev('span').css('visibility', 'hidden');
				input.addClass('checked');
			}
		}, 0);
	}
	
	function resetField() {
		var def = $(this).attr('title');
		if (!$(this).val() || ($(this).val() == def)) {
			$(this).val(def);
			$(this).prev('span').css('visibility', '');
		}
	};
	
	function toggleRadio() {
		var label = $(this).parent();
		label.prepend('<span class="check"></span>');
		
		if($(this).is(':checked')) { label.find('.check').addClass('checked'); };
		
		label.bind('click',function(){
			var input = $(this).find('input');
			input.triggerHandler('click');
			
			$('input[name="'+input.attr('name')+'"]').each(function(){
				$(this).parent().removeClass('checked');
			});
			
			$(this).addClass('checked');
			input.checked = true;
		});
		
		label.bind('mouseover',function(){
			$(this).addClass('hover');
		});
		
		label.bind('mouseout',function(){
			$(this).removeClass('hover');
		});
		
/*		$('input#' + $label.attr('for')).bind('keypress',function(e){
			if(e.keyCode == 32){
				if($.browser.msie){
					$('label[for="'+$(this).attr('id')+'"]').toggleClass("checked");
				}else{
					$(this).trigger('click');
				}
				return false;
			};
		});*/
	}
	
	$('.inside input, .inside textarea').live('keydown', toggleLabel);
	$('.inside input, .inside textarea').live('paste', toggleLabel);

	$('.inside input, .inside textarea').live('focusin', function() {
		$(this).parent().addClass('hover');//prev('span').css('color', '#ccc');
	});
	$('.inside input, .inside textarea').live('focusout', function() {
		$(this).parent().removeClass('hover');//prev('span').css('color', '#999');
	});
	$('input#fields-email').live('focusout', checkEmail);
	$('input[type=submit]').live('mouseover', function(){
		$(this).addClass('hover');
	});
	$('input[type=submit]').live('mouseout', function(){
		$(this).removeClass('hover');
	});

	$(function() {
		$('.inside input, .inside textarea').each(function() { toggleLabel.call(this); });
		$('.foto input').each(toggleRadio);
		$('.scrollable').scrollable({circular:true}).autoscroll(3000).navigator();
	});
})(jQuery);

$(document).ready(function(){
	window.fbAsyncInit=function(){FB.init({appId:149410298417103,status:true,cookie:true,xfbml:true});};
	
	var fbs = document.createElement("script");
	fbs.async = true;
	fbs.src = document.location.protocol + "//connect.facebook.net/en_US/all.js";
	fbs.async = true;
	document.getElementById("fb-root").appendChild(fbs);
	
	var tws = document.createElement("script");
	tws.async = true;
	tws.src = document.location.protocol + "//api.twitter.com/1/michael_joanna/lists/michael-joanna/statuses.json?callback=twitterCallback&amp;count=30";
	tws.async = true;
	if(document.getElementById("twitter_update_list")) document.getElementById("twitter_update_list").appendChild(tws);
});

function twitterCallback(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var image = twitters[i].user.profile_image_url;
    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 class="clearfix"><a href="http://twitter.com/'+username+'"><img src="'+image+'"/></a><div class="tweet"><p>'+status+'</p> <a class="status_link" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></div></li>');
  }
  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, 0);
	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 'about ' + (parseInt(delta / 60, 0)).toString() + ' minutes ago';
	} else if(delta < (120*60)) {
		return 'about an hour ago';
	} else if(delta < (24*60*60)) {
		return 'about ' + (parseInt(delta / 3600, 0)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
		return 'one day ago';
	} else  {
		return (parseInt(delta / 84600, 0)).toString() + ' days ago';
	}
	/*} else if(delta < (61*24*60*60)) {
		return 'about a month ago';
	} else if(delta < (365*24*60*60)) {
		return 'about ' + (parseInt(delta / 2628000)).toString() + ' months ago';
	} else if(delta < (730*24*60*60)) {
		return 'about a year ago';
	} else {
		return 'about ' + (parseInt(delta / 31536000)).toString() + ' years ago';
	}*/
}

