function isValidURL(url){
	var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

	if(RegExp.test(url)){
		return true;
	}else{
		return false;
	}
}

$(document).ready(function(){
	
	$('.like').tipsy();
	$('.widget-like').tipsy();
	$('.liked').tipsy();
	$('.button').tipsy();
	$('.tooltip').tipsy();
	
	//$('ul.slideshow').cycle({
	//	fx: 'blindX',
	//	timeout:  10000,
	//	pager:  '#nav'
	//});
	
	$('ul.widget-slideshow').cycle({
		fx: 'scrollHorz',
		timeout:  0,
		pager:  '#widget-nav'
	});
	
	$('#attach').click(function() {
		if(!isValidURL($('#profilestatus').val()))
		{
			// Not a valid url. But a status
			    var status_text = $('#profilestatus').val();
			    var status_friend_key = $('#friendkey').val();
			    $.getJSON("/inc/asp/api.status.update.asp?friend_key=" + status_friend_key + "&status="+escape(status_text), function(data){
				var response_id = data.api.value[0].id;
				$('#profilestatus').val('');
				
				$.get("/inc/asp/api.stream.asp?id="+status_friend_key, {
				}, function(response){
					$('#stream').html($(response).fadeIn('slow'));
				});
				
			 });
		} else {
			// Valid url
		}
	});	
	
	$('.remove_status').live("click", function() {
        var sId = $(this).attr('id').replace('remove_status', '');
        $.get("/inc/asp/api.status.remove.asp?id="+sId, {
		}, function(response){
				if (response==1) {
					$('#post'+sId).slideUp('slow');
				} else {
					new Boxy("<p>You do not have permission to remove this post.</p>", {title: "Remove"});
				}
		});

    });

	$('.comment_form').live("submit", function() {
        var cId = $(this).attr('id').replace('comment_form', '');
        var cText = $('#comment_text'+cId).val();
        $.get("/inc/asp/api.comment.asp?id="+cId+"&comment="+escape(cText), {
		}, function(response){
				$('#comment_box'+cId).html($(response));
		});
        $('#comment_text'+cId).val('');
    });
	
	$('.comment_status').live("click", function(){
		var cId = $(this).attr('id').replace('comment_status', '');
		if ($('#comment_box'+cId).html()=="") {
			$.get("/inc/asp/inc.comments.asp?id="+cId, {
			}, function(response){
				$('#comment_box'+cId).html($(response).fadeIn('slow'));
			});
		} else {
			$('#comment_box'+cId).html("");	
		}	
	});
	
	$('.like_status').live("click", function(){
	//$('.like_status').click(function() {
	  var sId = $(this).attr('id').replace('like_status', '');
	  $.getJSON("/inc/asp/api.like.status.asp?sId="+sId, function(data){
		var like_id = data.api.value[0].id;
		var like_total = data.api.value[0].total;
		if (like_total==1) {
			like_total = like_total + " like";
		} else {
			like_total = like_total + " likes";
		}
		if (like_id==0) {
	   		$('#like_status'+sId).html("Like");
	   		$('#like_status'+sId).attr( "title", like_total );
		} else {
			$('#like_status'+sId).html("Unlike");
			$('#like_status'+sId).attr( "title", like_total );
		}
	 });
	});
	
	$('.like').live("click", function(){
	//$('.like').click(function() {
	  var cId = $(this).attr('id').replace('like', '');
	  $.getJSON("/inc/asp/inc.like.asp?cId="+cId, function(data){
		var like_id = data.api.value[0].id;
		var like_total = data.api.value[0].total;
		if (like_total==1) {
			like_total = like_total + " like";
		} else {
			like_total = like_total + " likes";
		}
		if (like_id==0) {
	   		$('#like'+cId).html("Like");
	   		$('#like'+cId).attr( "title", like_total );
		} else {
			$('#like'+cId).html("Unlike");
			$('#like'+cId).attr( "title", like_total );
		}
		$.get("/inc/asp/widget.likes.asp?m=ajax", {
		}, function(response){
			$('.widget-slideshow').html($(response).fadeIn('slow'));
		});

	 });
	});
	
	$('.widget-like').live("click", function(){
	//$('.like').click(function() {
	  var cId = $(this).attr('id').replace('widget-like', '');
	  $.getJSON("/inc/asp/inc.like.asp?cId="+cId, function(data){
		var like_id = data.api.value[0].id;
		var like_total = data.api.value[0].total;
		if (like_total==1) {
			like_total = like_total + " like";
		} else {
			like_total = like_total + " likes";
		}
		if (like_id==0) {
	   		$('#widget-like'+cId).html("Like");
	   		$('#widget-like'+cId).attr( "title", like_total );
	   		$('#widget-like-post'+cId).slideUp('slow');
	   		$('#like'+cId).html("Like");
	   		$('#like'+cId).attr( "title", like_total );
		} else {
			$('#widget-like'+cId).html("Unlike");
			$('#widget-like'+cId).attr( "title", like_total );
			$('#like'+cId).html("Unlike");
			$('#like'+cId).attr( "title", like_total );
		}	
	 });
	});

	var delay = (function(){
	  var timer = 0;
	  return function(callback, ms){
	    clearTimeout (timer);
	    timer = setTimeout(callback, ms);
	  };
	})();
	
	$('.checkusername').keyup(function() {
	  var $this = $(this);
	  var check_username = $this.val();
	  $.getJSON("/inc/asp/api.check.username.asp?un="+escape(check_username), function(data){
		var response_colour = data.api.value[0].colour;
		var response_message = data.api.value[0].message;
		if (response_colour=='green') {
			$this.css({backgroundColor: 'green'});
		} else {
			$this.css({backgroundColor: 'red'});
			if (response_message!="") { 
				new Boxy("<p>"+response_message+"</p>", {title: "Error"});
			}
		}
	 });
	});
	
	$('.target').blur(function() {
		$('.result').slideUp(200);
	});
	
	$('.target').keyup(function() {
	    delay(function(){
	     var query = $('#query').val();
			 $.get("/inc/asp/api.search.asp?q="+query, function(data){
			 	if (query!="") {
				 	if (data!="") {
					$('.result').html(data);
					$('.result').slideDown(400);
				 	} else {
				 		$('.result').slideUp(200);
				 	}
			 	} else {
			 		$('.result').slideUp(200);
			 	}
		 });
	    }, 1000 );
	});
	
	$('.findfriends').blur(function() {
		$('.friendsresult').slideUp(200);
	});
	
	$('.findfriends').keyup(function() {
	    var $this = $(this);
	  	var query = $this.val();
	    delay(function(){
			 $.get("/inc/asp/api.search.friends.asp?q="+query, function(data){
			 	if (query!="") {
				 	if (data!="") {
						$('.friendsresult').html(data);
						$('.friendsresult').slideDown(400);
				 	} else {
				 		$('.friendsresult').slideUp(200);
				 	}
			 	} else {
			 		$('.friendsresult').slideUp(200);
			 	}
		 });
	    }, 1000 );
	});
	

});
