var mycarousel_itemHTML = [];

$(function(){
    $('#social_box').dsTab()

    $('#flickr_feed').delegate('a', 'click', function(e){
        e.preventDefault();

        Shadowbox.open({
            content: $(this).attr('href')
            , player: 'img'
            , title: $(this).attr('title')
            , gallery: 'flickr'
        });
    });

    $('#main_rotational').append('<div class="pager"></div>');
    $('#main_rotational div.slides').cycle({
        timeout: 5000
        , pager: '#main_rotational div.pager'
        , pause: 1
        , pauseOnPagerHover: 1
    });

    $('#featured_products div.list').cycle({
        fx: 'scrollHorz'
        , next: '#featured_products a.next'
        , prev: '#featured_products a.prev'
        , timeout: 7000
        , pause: 1
    });

    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?format=json&id=56293012@N08&jsoncallback=?", function(data,status){
        $('#flickr_feed').append('<ul>');

        var imageSrc = '';
        $.each(data.items, function(i,item){
            if(i>8){return false;}
            imageSrc = item.media.m.replace(/_m(\.[^\.]*)/,'_s$1');
            imageSrcFull = item.media.m.replace(/_m(\.[^\.]*)/,'$1');
            $("<img/>").attr("src", imageSrc).appendTo("#flickr_feed ul")
            .wrap('<li><a href="' + imageSrcFull + '"></a></li>');
        });

        $('#flickr_feed li').each(function(){
            mycarousel_itemHTML.push($(this).html());
        })

        $('#flickr_feed').jcarousel({
            auto:3,
            wrap:'circular',
            scroll:1,
            itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
            itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback},
            initCallback: mycarousel_initCallback
        });
    });

    if($("#tweet_wrapper").length>0){
        $.getJSON(document.location.protocol +"//twitter.com/statuses/user_timeline/AOPartyRentals.json?count="+10+"&page="+1+"&callback=?",
            function (twitters) {
                var statusHTML = [];
                var foundOne = false;
                var i = 0;
                while (!foundOne && i < 10){
                    var username = twitters[i].user.screen_name;
                    var status = '&ldquo;';
                    status += twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {return '<a href="'+url+'" target="_blank">'+url+'</a>';})
                    .replace(/\B@([_a-z0-9]+)/ig, function(reply) {
                        return  reply.charAt(0)+'<a class="byWho" href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
                    });
                    var d = new Date(Date.parse(twitters[i]['created_at']));
                    var dateStr = d.toLocaleDateString();
                    var time = d.toLocaleTimeString();
                    var hIndex = time.indexOf(':');
                    var amIndex = time.indexOf('AM');
                    var pmIndex = time.indexOf('PM');
                    var minutes = time.substr(hIndex+1, 2);
                    var hour = time.substr(0, hIndex);
                    var ampm = '';
                    if(amIndex == -1 && pmIndex == -1){
                        ampm = hour<12 ? ' AM' : ' PM';
                    } else if (amIndex != -1) {
                        ampm = ' AM';
                    } else if (pmIndex != -1) {
                        ampm = ' PM';
                    }
                    if (hour>12) hour-= 12;
                    if (hour==0) hour = 12;
                    status += '&rdquo;';
                    status += '<span class="meta">' + hour + ':' + minutes + ampm + ' ' + dateStr;
                    status += ' via ';
                    status += twitters[i]['source'] + '</span>';
                    statusHTML.push(status);

                    if (twitters[i].text) {
                        foundOne = true;
                    } else {
                        ++i;
                    }
                }
                $('#tweet_wrapper').html(statusHTML.join(''));
            }
        );
    }

});

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{
    var idx = carousel.index(i, mycarousel_itemHTML.length);
    carousel.add(i, mycarousel_itemHTML[idx - 1]);
}

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
}

function mycarousel_initCallback(carousel)
{
    jQuery('#flickr_next').bind('click', function(e) {
        e.preventDefault();

        carousel.options.scroll = 1;
        carousel.startAuto(0);
        carousel.next();
        return false;
    });

    jQuery('#flickr_prev').bind('click', function(e) {
        e.preventDefault();

        carousel.options.scroll = 1;
        carousel.startAuto(0);
        carousel.prev();
        return false;
    });

    // Pause autoscrolling if the user moves with the cursor over the clip.
    carousel.clip.hover(function() {
        carousel.stopAuto();
    }, function() {
        carousel.startAuto();
    });
}

