﻿JoggleBug = {

    FacebookOnlogin: function() {
        $.post(
        "/account/facebooklogin",
        "null",
        function(data) {
            try {
                window.top.location.reload();
            }
            catch (ex) {
                window.top.location = window.location.search.replace('?', '').replace('https', 'http');
            }
        },
        "json"
      );
    },

    FacebookShare: function(url, title) {
        window.open('http://www.facebook.com/sharer.php?u=' + encodeURIComponent(url) + '&t=' + encodeURIComponent(title), 'sharer', 'toolbar=0,status=0,width=626,height=436');
    },

    InitializeFollowing: function() {
        $('a.followButton').click(function() {
            var link = $(this);
            var href = link.attr('href');

            if ($('.login').length > 0) {
                var channel = href.match(/[\w\d-]+$/)[0];
                document.cookie = 'subscribe=' + channel + '; path=/';
                $('#subscribeDialog').jqmShow();
                return false;
            }
            $.get(href, null, function() {
                var img = link.find('img');
                if (href.match(/unsub/)) {
                    img.attr('src', img.attr('src').replace('stop-following', 'follow'));
                    link.attr('href', href.replace('unsub', 'sub'));
                }
                else {
                    img.attr('src', img.attr('src').replace('follow', 'stop-following'));
                    link.attr('href', href.replace('sub', 'unsub'));
                }
            });
            return false;
        });
        $('#subscribeDialog').jqm();
        $('#subscribeDialog .login').click(function() {
            $('#subscribeDialog').jqmHide();
        });
    },

    InitializeLogin: function() {
        function login() {
            $('#loginError').text('');
            $.post(
                '/account/logindialog',
                $('#loginForm').serialize(),
                loginCallback,
                "json"
            );
            return false;
        }
        function loginCallback(data) {
            if (data.success) {
                try {
                    window.top.location.reload();
                }
                catch (ex) {
                    window.top.location = window.location.search.replace('?', '').replace('https', 'http');
                }
            }
            else {
                $('#loginError').text(data.error);
            }
        }
        $('#loginDialog').jqm({
            trigger: 'a.login'
        });
        $('#loginForm').submit(login);
    },

    InitializePlayer: function(base, shareIcons) {
        $('.playlist a').click(function() {
            var link = $(this);
            var linkImage = link.find('img');
            var channelUrl = link.attr('c');
            var channelName = link.attr('f');
            var id = link.attr('id').replace('message', '');
            var icon = link.attr('i');
            var url = link.attr('url');

            $('.playerImage img').attr('src', icon);
            $('.playlist a').removeClass('selected');
            link.addClass('selected');
            if (!linkImage.attr('src').match(/faded/))
                linkImage.attr('src', linkImage.attr('src').replace('bubble', 'bubble-faded'));
            $('.player .channelLink').attr('href', base + channelUrl);
            $('.player .channelLink span').text(channelName);

            if (shareIcons) {
                $('#facebookShare').unbind()
                .click(function() {
                    JoggleBug.FacebookShare(base + channelUrl + '/' + id, 'JoggleBug Message from ' + channelName);
                    return false;
                }).click(function() {
                    TrackShare('facebook', '/' + channelUrl + '/' + id);
                });
                $('#myspaceShare').unbind()
                .attr('href', 'http://www.myspace.com/Modules/PostTo/Pages/?l=3&amp;u=' + base + channelUrl + '/' + id + '&amp;t=JoggleBug Message from ' + channelName)
                .click(function() {
                    TrackShare('myspace', '/' + channelUrl + '/' + id);
                });
                $('#twitterShare').unbind()
                .attr('href', 'http://twitter.com/home?status=JoggleBug message from ' + channelName + ' ' + base + channelUrl + '/' + id)
                .click(function() {
                    TrackShare('twitter', '/' + channelUrl + '/' + id);
                });
            }

            $('#commentLabel').text(link.text());
            $('#commentMediaID').val(id);

            var player = $.browser.mozilla ? $('#player object') : $('#player');
            try {
                player[0].loadMedia(url, id, true);
                return false;
            } catch (Error) { }
        });
    },

    TrackShare: function(site, path) {
        try {
            if (pageTracker) {
                pageTracker._trackEvent('share', site, path);
            }
        }
        catch (error) { }
    }
}

$(function() {
    JoggleBug.InitializeLogin();
});