var Tweet = function(data) {
    this.data = data;
    this.initialize();
    return this.container;
};

Tweet.prototype = {
    initialize: function() {
        var self = this;
        this.build();
    },
    
    build: function() {
        this.container = jQuery('<div>', {
            "class":"tweet"
        });
        this.container.append(this._buildImage());
        this.container.append(this._buildTriangle());
        this.container.append(this._buildText());
        this.container.append(this._buildPosted());
        this.container.append(this._buildName());
    },

    _buildImage: function(){
        var self = this;
        var image = jQuery('<a>', {
            "class":"user_img",
            "target":"_blank",
            "href":'http://twitter.com/'+self.data.user.screen_name
        });
        
        image.append(jQuery('<img>', {
            "width":25,
            "height":25,
            "src": self.data.user.profile_image_url
        }));
        
        return image;
    },
    
    _buildText: function() {
        var self = this;
        var content = self.data.text.replace(/(http:\/\/\S+)/g, '<a href="$1" target="_blank">$1</a>');
        content = content.replace(/(\s+(@[\w\d]+)\s+)/g, '<a href="http://twitter.com/$1" target="_blank">$1</a>')
        var text = jQuery('<p>', {
            "html": content
        });
        
        return text;
    },
    _buildPosted: function() {
        var self = this,
        	date_string = self.data.created_at.replace(/(\+\S+) (.*)/, '$2 $1'),
            date = new Date(Date.parse(date_string)),
            months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
            dayofthemonth = function(dayOfMonth){
                // 1st, 2nd, 3rd, etc.
                return (dayOfMonth > 3 && dayOfMonth < 21) ? 'th' : ['th', 'st', 'nd', 'rd', 'th'][Math.min(dayOfMonth % 10, 4)];
            };
        
        var posted = jQuery('<p>', {
            "class": "posted",
            "html": months[date.getMonth()]+' '+date.getDate()+(dayofthemonth(date.getDate()))+', '+ ((date.getHours()>12)?date.getHours()-12:date.getHours())+':'+((date.getUTCMinutes() < 10)?'0':'') + date.getUTCMinutes() + ' '+((date.getUTCHours() > 12)?'pm':'am')
        });
        
        return posted;
    },
    
    _buildName: function(){
        var self = this;
        return jQuery('<span>',{
            "class": "name",
            "html": self.data.user.name
        });
    },
    
    _buildTriangle: function() {
        return jQuery('<span class="triangle">');
    }
};

var twitterFeed = function (data) {
    window.tweets = data;
};


jQuery(function(){
    jQuery("#event_batches").scrollable();
    jQuery.getScript('http://api.twitter.com/1/ArnetteEyewear/lists/arnette-family/statuses.json?callback=twitterFeed&per_page=5', function(){
    	if(tweets){
	        jQuery.each(tweets, function(index,tweet){
	            jQuery('#multi_twitter').append(new Tweet(tweet));
	        });
        }
    });
    
	var tabs = jQuery("#homepage-banner-tabs");
    tabs.tabs("#homepage-banners .homepage-banner", {
		// enable "cross-fading" effect
		effect: 'fade',
		fadeOutSpeed: "slow",
		// start from the beginning after the last tab
		rotate: true
		// use the slideshow plugin. It accepts its own configuration,
		
	}).slideshow({
		autoplay: true,
		interval: 5000
	});

	

});


