function attach_fb_checkbox() {
    $('#post_to_facebook').click(function() {
        if (this.checked && !userdata.publish_stream_perm) {
            FB.Connect.showPermissionDialog('publish_stream', function(result) {
                if (result) {
                    userdata.publish_stream_perm = true;
                    $('#post_to_facebook').attr('checked', true);
                }
            //return false;
            });
        }
    });
}


function doPagination(h) {
    $('div#pagination a').click(function() {
        $.ajax({
            url: h.next,
            type: 'GET',
            success: function(result) {
                $('div#pagination').remove();
                $('#musings').append($('#musings', result).html());
            }
        });
        return(false);
    });
}

function initFlashMessages() {
    $('#flash').slideDown(1000, function() {
        setTimeout( function() {
            $('#flash').slideUp(500, function(){
                $('#flash').remove();
            })
        }, 5000);
    });
}

var cookie = {
    get: function(name) {
        if(window.localStorage) {
            return localStorage.getItem(name);
        }
        var c = document.cookie.split(";");
        var i = c.length;
        while(i-->0) {
            var p = c[i].split("=");
            if(p[0].trim() == name) {
                return p[1];
                break;
            };
        };
        return null;
    },

    set: function(name,value,params) {
        if(params.local == null) params.local = true
        if(window.localStorage && params.local) {
            localStorage.setItem(name,value);
            return;
        }
        var paramString = "";
        switch(params.expires) {
            case -1:
                params.expires = new Date(Date.parse(new
                    Date()) - 10000);
                if(window.navigator.standalone)
                    localStorage.removeItem(name);
                break;
            case 7:
                params.expires = new Date(Date.parse(new
                    Date()) + 60480000);
                break;
            case 365:
                params.expires = new Date(Date.parse(new
                    Date()) + 31536000000);
                break;
        };
        if(!params.path) params.path = "/";
        for(var i in params) paramString += i + "=" + params[i] + "; ";
        document.cookie = name + "=" + value + "; " + paramString;
    }
};

function close_popups() {
    //alert("close_popups entered");
    cookie.set("sawTwPrompt", "1", {
        expires:"365"
    });
    $("popup").hide();
    $("popup-container").hide();
}

function movePopups() {
    // popups
    var popup = $("#popup");
    var container = $("#popup-container");
    if(popup != null && container != null && cookie.get("sawTwPrompt") != "1") {
        popup.show();
        container.show();
        // setup popup positions
        var offset = $(window).scrollTop();
        var width = $(window).width();
        var height = $(window).height();
        var top = offset;
        // set popup pos
        popup.css({
            top:    offset + "px",
            left:   0,
            width:  width + "px",
            height: height + "px"
        });
        // sel container pos
        container.css({
            top:  offset + (height - container.height()) / 2 + "px",
            left: (width - container.width()) / 2 + "px"
        });
    }
}

$(document).ready(function() {
    $('a[rel*=facebox]').facebox();
    $('.signin #signin-form').hide();
    $('#signin-link').click(function() {
        $('#signin-form').fadeIn();
        $('#signin-form input:text:first').focus();
        return(false);
    });
    // Display any flash messages
    initFlashMessages();

    // Counter
    $('#musing_body').keyup(function() {
        max_chars = 500;
        current_value	= $('#musing_body').attr('value');
        current_length	= current_value.length;
        remaining_chars = max_chars-current_length;
        $('#char_counter').html(remaining_chars);
        if(remaining_chars < 10){
            $('#char_counter').css('color', '#d40d12');
        } else if(remaining_chars < 20){
            $('#char_counter').css('color', '#5c0002');
        } else {
            $('#char_counter').css('color', '#978981');
        }
    });

    // Attach hover event to musings to show actions
    $('.musing').live('mouseover', function(){
        $(this).children('.actions').show();
    });
    $('.musing').live('mouseout', function(){
        $(this).children('.actions').hide();
    });

    // Attach to "delete musing" links.
    $('a.delete').live('click', function() {
        var conf = confirm('Are you sure you want to delete that? This action cannot be undone.');
        if(conf) {
            var uri = $(this).attr('href') + '.js';
            var par = $(this).parent().parent();
            $.ajax({
                url: uri,
                type: 'GET',
                success: function(result) {
                    par.slideUp(500, function(){
                        par.remove();
                    });
                }
            });
        }
        return(false);
    });
    $('a[href=http://astore.amazon.com/thankfulfor-20]').click(function(){
        pageTracker._trackPageview('/outbound/amazon.com');
    });
    
});

function initList(name) {
    var l = $('#' + name + '-link');
    if(l) {
        var list = $('#' + name);
        l.click(function() {
            list.toggle();
            if(l.hasClass('closed')) {
                l.removeClass('closed');
            }
            else {
                l.addClass('closed');
            }
        });
    }
}

$(document).ready(function() {
    attach_fb_checkbox();
    movePopups();
    initList('followers');
    initList('followings');
    // scroll
    $(document).scroll(function() {
        movePopups();
    });
    // resize
    $(document).resize(function() {
        movePopups();
    });
});