// -----------------------------------------
// 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.prepend('<li id="' + item.id + '">'+$.veetter.makeLinks(item.text)+
					"<p class='status'><a href='http://twitter.com/" + data[0].user.screen_name + "/status/" + item.id + "'>" + 
					$.veetter.cTime(item.created_at) + "</a>" /* + "(" + item.source + ")" */ + "</p>"+
					'</li>');
					$("ul.veetter-tweets li:first").attr('class','veetter-status-last');
					})
     	 			$("ul.veetter-tweets li:last").attr('class','veetter-status-oldest');
     	 			
     	 			//$("ul.veetter-tweets").simplefade({speed: 1000, timeout: 8000, containerheight: '84px'});

           			$(".veetter-tweets").bxSlider({mode: 'vertical',pager: false, controls: false, margin: 0, auto: true, auto_controls: false, /* autoDirection:'prev', startingSlide: 5, */ speed: 1000, pause: 10000});
           			//$(".veetter-tweets").marquee({yScroll: "bottom", scrollSpeed: 20, pauseSpeed: 2000 }); 
           		}

           });
     	       
        }, // 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 'vor weniger als 1 Minute';
            } else if(delta < 120) {
            return 'vor ca. 1 Minute';
            } else if(delta < (45*60)) {
            return ('vor ' + parseInt(delta / 60)).toString() + ' Minuten';
            } else if(delta < (90*60)) {
            return 'vor ca. 1 Stunde';
            } else if(delta < (24*60*60)) {
            return 'vor ca.' + (parseInt(delta / 3600)).toString() + ' Stunden';
            } else if(delta < (48*60*60)) {
            return 'vor 1 Tag';
            } else {
            return ('vor ' + parseInt(delta / 86400)).toString() + ' Tagen';
            }
       }
    

	};
})(jQuery);
