/*
    name : backtypeSingleUrlSearch
    file : jquery.backtypeSingleUrlSearch.js
    author : gregory tomlinson
    copyright: (c) 2010 bit.ly
    Dual licensed under the MIT and GPL licenses.
    ///////////////////////////
    ///////////////////////////
    dependencies : jQuery 1.4.2, jquery.cookie.js, jquery.commifyNumber.js
    ///////////////////////////
    ///////////////////////////

*/

(function($) {
    
    $.fn.backtypeSingleUrlSearch = function( long_url, short_url, options ) {
        // extend the defaults settings
        var el = this, o = $.extend(true, defaults, options);
        
        if(!long_url || $.trim( long_url ) === '') {
            console.log('ERROR: No long url to query against')
            return;
        }
        
        o.params.long_url = long_url;
        connector(o.url, o.params, success, error);
        
        return this;
        
        function success(jo) {
            
            if(jo.status_code !== 200 ) {
                console.log('ERROR: with backtypeSingleUrlSearch response', jo)
                return;
            }
            
            
            var i=0, tweets = jo.data.tweets, finalHTML = "";
            
            if(tweets.length > 0 ) finalHTML += renderHeader( jo.data.totalresults );
            
            console.log(tweets.length, i)
            for( ; i<tweets.length && i<o.showMax; i++) {
                finalHTML += renderTweetItem( tweets[i] );
            }
            
            if(tweets.length > 0 ) {
                finalHTML += '<div class="sidebar_social_conversations_more"><a href="'+short_url+'+">See More Conversations</a></div>'
                $(finalHTML).appendTo( el );
                el.fadeIn();
            }
        }
        
        function error() {
            console.log('ERROR: Unknown issue with backtypeSingleUrlSearch')
        }
        
        
        function renderHeader(tweet_count) {
            var html = '';
            html += '<div class="sidebar_conversations_header">'
                html += '<h3>Conversations <span class="sidebar_conversation_count">('+ $.commifyNumber( tweet_count ) + ')</span></h3>'
            html += '</div>'
            
            return html;
        }
        
        function renderTweetItem( item ) {
            var html = '';
            html += '<div class="sidebar_tweet_item">'
                html += '<a class="sidebar_tweet_item_user" href="http://twitter.com/'+ $.escapeHTML(item.tweet_from_user) +'">' + $.escapeHTML(item.tweet_from_user) + '</a>'
                html += '<span>' + $.escapeHTML(item.tweet_text)   +'</span>'
            html += '</div>'
            return html;
        }
    
    }
    
    
    var defaults = {
        
        url : '/data/partners/backtype/singleurlsearch/',
        params : {
            long_url : '',
            num : 10
        },
        showMax : 3
    
    }, $bod;

    
    
    function connector(url, params, callback, error) {
        params._xsrf = $.cookie.get("_xsrf");
        var str = $.param( params );
        $.ajax({
            dataType: 'json', //jsonp
            data : str,
            traditional : true,
            'url' : url,
            success: callback,
            'error':error
        });
    }

})(jQuery);
