$( function() {
	social.init();
})
var social = {
    pipesLoaded: false,
    socialCompleteCount: 0,
    TWITTER_SERVICES: '/api/social/twitter/feed',
    FACEBOOK_SERVICES: '/api/social/facebook/feed',
    NEWS_SERVICES: '/api/social/latest-news/social-drawer',

    init: function () {
        $(".toggle-drawer").bind("click", function () {
            var drawer = $(this);
            if (drawer.hasClass("close")) {
                drawer.removeClass('close');
                social.closeDrawer();
            } else {
                drawer.addClass('close');
                social.openDrawer();
            }
            social.handleNonWebkit(500);
            return false;
        })
        social.handleNonWebkit(0);

        $(".tabs .products").bind('click', function () { window.location.href = '/our-products' });
        $(".tabs .purpose").bind('click', function () { window.location.href = '/our-purpose' });
        $(".tabs .news").bind('click', function () { window.location.href = '/fresh-news/all' });
        social.loadNews();

        $(window).bind('scroll', function () {
            $(".toggle-drawer").removeClass('close');
            social.closeDrawer();
        });

    },
    openDrawer: function () {
        $("#header").addClass("open");
        if (!social.pipesLoaded) {
            social.loadSocialJson();
            pipesLoaded = false;
        }
    },
    closeDrawer: function () {
        $("#header").removeClass("open");
    },
    handleNonWebkit: function (time) {
        time = time ? time : 1;
        var header = $("#header");
        if (!$.browser.webkit) {
            if (header.hasClass("open")) {
                header.animate({
                    "margin-top": '0px'
                }, time);
            } else {
                if (time == 0) {
                    header.css({
                        'margin-top': '-290px'
                    });
                } else {
                    header.animate({
                        'margin-top': '-290px'
                    }, time);
                }
            }
        }
    },
    loadNews: function () {
        $.ajax({
            url: social.NEWS_SERVICES,
            dataType: 'json',
            success: function (data) {
                social.onNewsJsonLoaded(data);
            }
        });
    },
    loadSocialJson: function () {
        $.ajax({
            url: social.TWITTER_SERVICES,
            dataType: 'json',
            success: function (data) {
                social.onTwitterJsonLoaded(data);
            }
        });
        $.ajax({
            url: social.FACEBOOK_SERVICES,
            dataType: 'json',
            success: function (data) {
                social.onFacebookJsonLoaded(data);
            }
        })
    },
    onNewsJsonLoaded: function (data) {
        var template = $('#template-news').html();
        for (var i = 0; i < data.length; i++) {
            data[i].urlsegment = '/fresh-news/all/story/' + data[i].urlsegment
            var output = Mustache.to_html(template, data[i]);
            $(".left .pipe-content").append(output);
        };

        var template = $('#template-news-menu').html();
        var menuData = new Object();
        var newsMenuMaxChars = 33;
        menuData.one_thumbnail = data[0].thumbnail;
        menuData.one_date = data[0].date;
        menuData.one_title = social.stringTrim(data[0].title, 45);
        menuData.one_urlsegment = data[0].urlsegment;
        menuData.two_month = data[1].month;
        menuData.two_day = data[1].day;
        menuData.two_year = data[1].year;
        menuData.two_title = social.stringTrim(data[1].title, newsMenuMaxChars);
        menuData.two_urlsegment = data[1].urlsegment;
        menuData.three_month = data[2].month;
        menuData.three_day = data[2].day;
        menuData.three_year = data[2].year;
        menuData.three_title = social.stringTrim(data[2].title, newsMenuMaxChars);
        menuData.three_urlsegment = data[2].urlsegment;


        output = Mustache.to_html(template, menuData);
        $('.tab-detail.news-detail').prepend(output);
        social.buildLeftPipes();
    },
    onTwitterJsonLoaded: function (data) {
        data = data.items;
        var template = $('#template-twitter').html();
        for (var i = 0; i < data.length; i++) {
            data[i]['date'] = $.timeago(data[i]['date']);
            var output = Mustache.to_html(template, data[i]);
            $('.twitter-pipe').append(output);
            var link = data[i].link;
            $('.twitter-pipe li').eq(i).bind('click', function () {
                window.open(link);
            });
        };
        //twitter
        var pipeList = ".twitter-pipe";
        var leftArrow = $('.paging.twitter .prev');
        var rightArrow = $('.paging.twitter .next');
        new sandstorm.PipeCircular($('.networks li.twitter'), 1, $.browser.webkit, pipeList, leftArrow, rightArrow);
    },
    onFacebookJsonLoaded: function (data) {
        data = data.items;
        var template = $('#template-facebook').html();
        for (var i = 0; i < data.length; i++) {
            data[i]['date'] = $.timeago(data[i]['date']);

            var output = Mustache.to_html(template, data[i]);
            $('.facebook-pipe').append(output);
        };
        //facebook
        var pipeList = ".facebook-pipe";
        var leftArrow = $('.paging.facebook .prev');
        var rightArrow = $('.paging.facebook .next');
        new sandstorm.PipeCircular($('.networks li.facebook'), 1, $.browser.webkit, pipeList, leftArrow, rightArrow);
    },
    buildLeftPipes: function () {
        //SOCIAL DRAWER PIPES
        var ss = null;
        $(".left").each(function () {
            var pipeList = ".pipe-content";
            var leftArrow = $('.left .prev');
            var rightArrow = $('.left .next');
            ss = new sandstorm.PipeCircular($(this), 1, $.browser.webkit, pipeList, leftArrow, rightArrow);
        })
        ss.next();
    },
    stringTrim: function (string, maxChars) {
        maxChars = maxChars ? maxChars : 200;
        var tempArr = string.split(" ");
        var currentCount = 0;
        var output = '';
        for (var i = 0; i < tempArr.length; i++) {
            var tempStr = tempArr[i];
            var count = currentCount + tempStr.length;
            if (count > maxChars) {
                return output + "...";
            } else {
                currentCount += tempArr[i].length;
                output += tempArr[i] + " ";
            }
        }
        return output;
    }

};



























