// -----------------------------------------

// Copyright 2009. www.veetter.com

// sergiu.toderascu@gmail.com

// -----------------------------------------



(function($) {



			userName   : null;

			tweets     : 5;

			veetterDiv : 'veetter';

			loaderText : "Loading tweets...";

			

			

			loader_div    = $("<div class=\"veetter-loader\"></div>");

			userinfo_div  = $("<div class=\"veetter-user-info\"></div>");

			tweets_div    = $("<ul class=\"veetter-tweets\"></ul>");

			

			var veetterDiv, loaderText, tweets;		



$.veetter = {

			

		vars: function(option){ // variables

			userName      = option.userName;

			tweets        = option.tweets?option.tweets:tweets;

			veetterDiv    = option.veetterDiv?option.veetterDiv:veetterDiv;

			vDiv          = $("#"+veetterDiv);

			loaderText      = option.loaderText?option.loaderText:loaderText;

			

		}, //variables

		

		go: function(option) { // go		

				this.vars(option);							

				if(vDiv.length > 0){

				this.loading();

				this.getTwitter();

			}   else { alert('veetter container not found!') }

		}, //go

		

		loading: function() { // loading

			loader_div.append(loaderText);

			vDiv.append(loader_div);

		}, // loading



        getTwitter : function() {// getTwitter

        	var url = "http://twitter.com/status/user_timeline/" + userName + ".json?count="+tweets+"&callback=?";

			

			$.ajax({

				url: url,

                dataType: 'json',

                success: function(data){



				loader_div.remove();

				vDiv.append(userinfo_div);

				vDiv.append(tweets_div);

		        //userinfo_div.append("<a href='http://twitter.com/" + data[0].user.screen_name + "'>" + 

				//"<img border='0' class='veetter-avatar' src='"+data[0].user.profile_image_url+"'></a>"+

		        //"<div class='veetter-stats'>" +

				//"<div><p class='s'>" + data[0].user.followers_count + "</p><p><a href='http://twitter.com/" + data[0].user.screen_name + "/followers'>Followers</a></p></div>" +

				//"<div><p class='s'>" + data[0].user.friends_count + "</p><p><a href='http://twitter.com/" + data[0].user.screen_name + "/following'>Following</a></p></div>" +

				//"<div><p class='s'>" + data[0].user.statuses_count + "</p><p><a href='http://twitter.com/" + data[0].user.screen_name + "'>Updates</a></p></div>" +

				//"</div>" + 		        

				//"<h1><a href='http://twitter.com/" + data[0].user.screen_name + "'>" + data[0].user.screen_name + "</a></h1>" +  

		        //"<p>" + data[0].user.name + "</p>" +

				//"<div class='clear'></div>" +				

				//"<span>" + data[0].user.description + "</span>");



                $.each(data,function(i,item) {

                	tweets_div.append('<dl id="' + item.id + '" class="tweet">'+$.veetter.makeLinks(item.text)+

					"<dt class='status'><a href='http://twitter.com/" + data[0].user.screen_name + "/status/" + item.id + "'</dt><dd>" + 

					$.veetter.cTime(item.created_at) + "</a> from " + item.source + "</dd>"+

					'</dl>');

					tweets_div.append("<a href=\"http://twitter.com/myfightis\" rel=\"external\" id=\"follow\">Follow us on Twitter</a>")

					//$("ul.veetter-tweets li:first").attr('class','veetter-status-last');

					})

                }

	            });

     	       

        }, // getTwitter

        

        makeLinks : function(text) { // makeLinks

        

        	var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;

			text = text.replace(exp,"<a href='$1' class='veetter-link'>$1</a>"); 

			

			var exp = /[\@]+([A-Za-z0-9-_]+)/ig;

			text = text.replace(exp,"@<a href='http://twitter.com/$1' class='veetter-link-profile'>$1</a>"); 

			

			var exp = /[\#]+([A-Za-z0-9-_]+)/ig;

			text = text.replace(exp,"<a href='http://twitter.com/search?q=$1' class='veetter-link-hash'>#$1</a>"); 

            

			return text;

        }, // makeLinks

        

        cTime :  function (time_value) {

            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);

            if(delta < 60) {

            return 'less than a minute ago';

            } else if(delta < 120) {

            return 'about a minute ago';

            } else if(delta < (45*60)) {

            return (parseInt(delta / 60)).toString() + ' minutes ago';

            } else if(delta < (90*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';

            }

       }

    



	};

})(jQuery);
