if(typeof(TRENDERO) == 'undefined' ){
    TRENDERO = {};
}
TRENDERO.ajax = function(){
    var TIP_DELAY = 1000;
    //TODO: supply in init
    var removePictureUrl = "/pictures/delete/";
    var removeVideoUrl = "/videos/delete/";
    var removeSoundUrl = "/videos/delete/";
    var removeMessageUrl = "/messages/delete/";
    var rankPictureUrl = "/pictures/rank/";
    var rankVideoUrl = "/videos/rank/";
    var rankSoundUrl = "/sounds/rank/";
    var rankCommentUrl = "/comments/rank/";
    var rankLinkUrl = "/links/rank/";
    var trendUnfollowUrl = "/trends/unfollow/";
    var userUnfollowUrl = "/users/unfollow/";
    var flagContentUrl = "/flagcontent/";
    var loginUrl = "/ajax/users/login/";
    var prevNumUpdates = 0;
    var prependUpdates = false;
    var from = 0;
    var to = 5;
    var step = 5;

    function getCSRFToken(){
        return $("#csrfmiddlewaretoken").val();
    }

    //show/hide for controls
    function showDeleteMediaControl(){
        var mediaFrame = $(this);
        mediaFrame.prepend('<div class="remove_media_control remove_control"><div class="control_choice"></div></div>');
        mediaFrame.children(".remove_media_control").children(".control_choice").bind("click", deleteMedia);
    }
    function hideDeleteMediaControl(){
        $(this).children(".remove_media_control").animate({"opacity":1.0}, TIP_DELAY, function(){$(this).remove()});
    }

    //show/hide for controls
    function showDeleteMessageControl(){
        var messageFrame = $(this);
        messageFrame.prepend('<div class="remove_message_control remove_control"><div class="control_choice"></div></div>');
        messageFrame.children(".remove_message_control").children(".control_choice").bind("click", deleteMessage);
    }
    function hideDeleteMessageControl(){
        $(this).children(".remove_message_control").animate({"opacity":1.0}, TIP_DELAY, function(){$(this).remove()});
    }

    //show/hide for controls
    function showRankMediaControl(){
        var mediaFrame = $(this);
        var rankControl = mediaFrame.children(".rank_control");
        if (rankControl.length == 0){
            mediaFrame.prepend('<div class="rank_media_control rank_control">'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '</div>');
            rankControl = mediaFrame.children(".rank_control");
            var kids = rankControl.children();
            var up = $(kids[0]);
            var down = $(kids[1]);
            if(mediaFrame.hasClass("is_rankable")){
                up.bind("click", function(){rankMedia(this, "up");});
                down.bind("click", function(){rankMedia(this, "down");});
            }
            else {
                up.css("background-color", "black");
                up.css("opacity", "0.5");
                up.css("cursor", "auto");
                down.css("background-color", "black");
                down.css("opacity", "0.5");
                down.css("cursor", "auto");
            }
            $(kids[2]).bind("click", flagMedia);
        }
        else {
            rankControl.show();
        }
    }
    function hideRankMediaControl(){
        var rankControl = $(this).children(".rank_media_control");
        var t = setTimeout(
            function(){
                rankControl.hide();
            },1000);
        rankControl.parents(".media_frame").bind("mouseover", function(){clearTimeout(t)});
    }

    //show/hide for controls
    function showRankCommentControl(){
        var commentFrame = $(this);
        var rankControl = commentFrame.children(".rank_control");
        if (rankControl.length == 0){
            commentFrame.prepend('<div class="rank_comment_control rank_control">'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '</div>');
            rankControl = commentFrame.children(".rank_control");
            var kids = rankControl.children();
            var up = $(kids[0]);
            var down = $(kids[1]);
            if(commentFrame.hasClass("is_rankable")){
                up.bind("click", function(){rankComment(this, "up");});
                down.bind("click", function(){rankComment(this, "down");});
            }
            else {
                up.css("background-color", "black");
                up.css("opacity", "0.5");
                up.css("cursor", "auto");
                down.css("background-color", "black");
                down.css("opacity", "0.5");
                down.css("cursor", "auto");
            }
            $(kids[2]).bind("click", flagComment);
        }
        else {
            rankControl.show();
        }
    }
    function hideRankCommentControl(){
        var rankControl = $(this).children(".rank_comment_control");
        var t = setTimeout(
            function(){
                rankControl.hide();
            },1000);
        rankControl.parents(".comment_frame").bind("mouseover", function(){clearTimeout(t)});
    }

    //show/hide for controls
    function showRankLinkControl(){
        var linkFrame = $(this);
        var rankControl = linkFrame.children(".rank_control");
        if (rankControl.length == 0){
            linkFrame.prepend('<div class="rank_link_control rank_control">'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '<div class="control_choice"></div>'+
                '</div>');
            rankControl = linkFrame.children(".rank_control");
            var kids = rankControl.children();
            var up = $(kids[0]);
            var down = $(kids[1]);
            if(linkFrame.hasClass("is_rankable")){
                up.bind("click", function(){rankLink(this, "up");});
                down.bind("click", function(){rankLink(this, "down");});
            }
            else {
                up.css("background-color", "black");
                up.css("opacity", "0.5");
                up.css("cursor", "auto");
                down.css("background-color", "black");
                down.css("opacity", "0.5");
                down.css("cursor", "auto");
            }
            $(kids[2]).bind("click", flagLink);
        }
        else {
            rankControl.show();
        }
    }
    function hideRankLinkControl(){
        var rankControl = $(this).children(".rank_control");
        var t = setTimeout(
            function(){
                rankControl.hide();
            },1000);
        rankControl.parents(".link_frame").bind("mouseover", function(){clearTimeout(t)});
    }

    function showTrendControl(){
        var trendFrame = $(this);
        trendFrame.prepend('<div class="unfollow_trend_control remove_control"><div class="control_choice"></div></div>');
        trendFrame.children(".unfollow_trend_control").children(".control_choice").bind("click", stopFollowingTrend);
    }
    function hideTrendControl(){
        $(this).children(".unfollow_trend_control").animate({"opacity":1.0}, TIP_DELAY, function(){$(this).remove()});
    }

    function showUserControl(){
        var userFrame = $(this);
        var username = userFrame.find(".profile_picture").attr("alt");
        var control = '<div class="unfollow_user_control user_control">'+
            '<div class="unfollow_user_control_left_bg" style="float:left"><img src="/static/img/name_box_left.png" /></div>'+
            '<div class="unfollow_user_control_bg">'+
                '<div class="control_choice"><img style="margin-top:3px" src="/static/img/red_x.png" /></div>'+
                '<div class="control_link"><a href="/users/view/'+username+'">'+username+'</a></div>'+
            '</div>'+
            '<div style="float:left"><img src="/static/img/name_box_right.png" /></div>'+
            '<div><img style="margin-left:20px" src="/static/img/tool_tip_tail.png"></div>'+
        '</div>'
        userFrame.prepend(control);
        userFrame.children(".unfollow_user_control").find(".control_choice").bind("click", stopFollowingUser);
    }
    function hideUserControl(){
        $(this).children(".unfollow_user_control").animate({"opacity":1.0}, TIP_DELAY, function(){$(this).remove()});
    }

    //ajax and page manipulation
    function stopFollowingTrend(){
        var trendFrame = $(this).parents("div.trend_frame");
        function removeTrend(){
            LIGHTBOX.hide();
            var id = trendFrame.attr("id").split("_")[1];
            var url = trendUnfollowUrl + id + "/";
            trendFrame.remove();
            $.post(url, {csrfmiddlewaretoken:getCSRFToken()});
        }
        var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html , {'lightbox_yes':removeTrend, 'lightbox_no':LIGHTBOX.hide});
    }

    function stopFollowingUser(e, url){
        var userFrame = $(this).parents("div.user_frame");
        function removeUser(){
            LIGHTBOX.hide();
            var id = userFrame.attr("id").split("_")[1];
            var url = userUnfollowUrl + id + "/";
            userFrame.remove();
            $.post(url,{csrfmiddlewaretoken:getCSRFToken()});
        }
        var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':removeUser, 'lightbox_no':LIGHTBOX.hide});
    }

    function deleteMedia(){
        var mediaFrame = $(this).parents("div.media_frame");
        function removeMedia(){
            LIGHTBOX.hide();
            if(mediaFrame.hasClass("picture")){
                var id = mediaFrame.attr("id").split("_")[1];
                var url = removePictureUrl + id + "/";
                mediaFrame.remove();
                $.post(url, {csrfmiddlewaretoken:getCSRFToken()});
            }
            else if(mediaFrame.hasClass("video")){
                var id = mediaFrame.attr("id").split("_")[1];
                var url = removeVideoUrl + id + "/";
                mediaFrame.remove();
                $.post(url, {csrfmiddlewaretoken:getCSRFToken()});
            }
        }
        var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':removeMedia, 'lightbox_no':LIGHTBOX.hide});
    }

    function deleteMessage(){
        var messageFrame = $(this).parents("div.message_frame");
        function removeMessage(){
            LIGHTBOX.hide();
            var id = messageFrame.attr("id").split("_")[1];
            var url = removeMessageUrl + id + "/";
            messageFrame.remove();
            $.post(url, {csrfmiddlewaretoken:getCSRFToken()});
        }
        var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':removeMessage, 'lightbox_no':LIGHTBOX.hide});
    }

    function rankMedia(ele, direction){
        var control = $(ele);
        var mediaFrame = control.parents("div.media_frame");
        var id = mediaFrame.attr("id").split("_")[1];
        var url;
        if(mediaFrame.hasClass("picture")){
            url = rankPictureUrl + id + "/";
        }
        else if(mediaFrame.hasClass("video")){
            url = rankVideoUrl + id + "/";
        }
        else if(mediaFrame.hasClass("sound")){
            url = rankSoundUrl + id + "/";
        }
        control.css("background-color", "black");
        control.css("opacity", "0.5");
        var kids = control.parent().children();
        var up = $(kids[0]);
        up.unbind("click");
        up.css("background-color", "black");
        up.css("opacity", "0.5");
        up.css("cursor", "auto");
        var down = $(kids[1]);
        down.unbind("click");
        down.css("background-color", "black");
        down.css("opacity", "0.5");
        down.css("cursor", "auto");
        $.post(url, {direction:direction,csrfmiddlewaretoken:getCSRFToken()}, rankingCallback);
    }

    function rankComment(ele, direction){
        var control = $(ele);
        var commentFrame = control.parents("div.comment_frame");
        var id = commentFrame.attr("id").split("_")[1];
        var url = rankCommentUrl + id + "/";
        control.css("background-color", "black");
        control.css("opacity", "0.5");
        var kids = control.parent().children();
        var up = $(kids[0]);
        up.unbind("click");
        up.css("background-color", "black");
        up.css("opacity", "0.5");
        up.css("cursor", "auto");
        var down = $(kids[1]);
        down.unbind("click");
        down.css("background-color", "black");
        down.css("opacity", "0.5");
        down.css("cursor", "auto");
        $.post(url, {direction:direction,csrfmiddlewaretoken:getCSRFToken()}, rankingCallback);
    }
    
    function rankLink(ele, direction){
        var control = $(ele);
        var linkFrame = control.parents(".link_frame");
        var id = linkFrame.attr("id").split("_")[1];
        var url = rankLinkUrl + id + "/";
        control.css("background-color", "black");
        control.css("opacity", "0.5");
        var kids = control.parent().children();
        var up = $(kids[0]);
        up.unbind("click");
        up.css("background-color", "black");
        up.css("opacity", "0.5");
        up.css("cursor", "auto");
        var down = $(kids[1]);
        down.unbind("click");
        down.css("background-color", "black");
        down.css("opacity", "0.5");
        down.css("cursor", "auto");
        $.post(url, {direction:direction,csrfmiddlewaretoken:getCSRFToken()}, rankingCallback);
    }

    function stopFollowingTrend(){
        var trendFrame = $(this).parents("div.trend_frame");
        function removeTrend(){
            LIGHTBOX.hide();
            var id = trendFrame.attr("id").split("_")[1];
            var url = trendUnfollowUrl + id + "/";
            trendFrame.remove();
            $.post(url, {csrfmiddlewaretoken:getCSRFToken()});
        }
        var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':removeTrend, 'lightbox_no':LIGHTBOX.hide});
    }

    function flagPage(){
        function flagPageCallback(){
            LIGHTBOX.hide();
            var description = "This page has been flagged with offensive content";
            $.post(flagContentUrl, {url:window.location.href, description:description, csrfmiddlewaretoken:getCSRFToken()}, flagCallback);
        }
        var html = "<div class='lightbox_message'>Should we review this content?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':flagPageCallback, 'lightbox_no':LIGHTBOX.hide});
        return false;
    }
    function flagMedia(){
        var control = $(this);
        var mediaFrame = control.parents("div.media_frame");
        function flagMediaCallback(){
            LIGHTBOX.hide();
            var id = mediaFrame.attr("id").split("_")[1];
            var description
            if(mediaFrame.hasClass("picture")){
                description = "Picture with id: " + id + " was flagged as offensive"
            }
            else if(mediaFrame.hasClass("video")){
                description = "Video with id: " + id + " was flagged as offensive"
            }
            else if(mediaFrame.hasClass("sound")){
                description = "Sound with id: " + id + " was flagged as offensive"
            }
            control.css("background-color", "black");
            control.css("opacity", "0.5");
            $.post(flagContentUrl, {url:window.location.href, description:description, csrfmiddlewaretoken:getCSRFToken()}, flagCallback);
        }
        var html = "<div class='lightbox_message'>Should we review this content?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':flagMediaCallback, 'lightbox_no':LIGHTBOX.hide});
    }

    function flagComment(){
        var control = $(this);
        var commentFrame = control.parents("div.comment_frame");
        function flagCommentCallback(){
            LIGHTBOX.hide();
            var id = commentFrame.attr("id").split("_")[1];
            var description = "Comment with id: " + id + " was flagged as offensive"
            control.css("background-color", "black");
            control.css("opacity", "0.5");
            $.post(flagContentUrl, {url:window.location.href, description:description, csrfmiddlewaretoken:getCSRFToken()}, flagCallback);
        }
        var html = "<div class='lightbox_message'>Should we review this content?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':flagCommentCallback, 'lightbox_no':LIGHTBOX.hide});
    }

    function flagLink(){
        var control = $(this);
        var mediaFrame = control.parents(".link_frame");
        function flagLinkCallback(){
            LIGHTBOX.hide();
            var id = mediaFrame.attr("id").split("_")[1];
            var url;
            var description = "Link with id: " + id + " was flagged as offensive"
            control.css("background-color", "black");
            control.css("opacity", "0.5");
            $.post(flagContentUrl, {url:window.location.href, description:description,csrfmiddlewaretoken:getCSRFToken() }, flagCallback);
        }
        var html = "<div class='lightbox_message'>Should we review this content?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
        LIGHTBOX.show(html, {'lightbox_yes':flagLinkCallback, 'lightbox_no':LIGHTBOX.hide});
    }
    function rankingCallback(response){
        if(response == "Fail"){
            var html = "<div class='lightbox_message'>Nice Try!<br />You can only rank media, links or trends once</div><table class='lightbox_buttons'><tr><td><img id='lightbox_ok' class='lightbox_button' src='/static/img/button_yes.jpg'></td></tr><tr><td>Okay</td></tr></table>";
            LIGHTBOX.show(html, {'lightbox_ok':LIGHTBOX.hide});
        }
        else {
            var html = "<div class='lightbox_message'>Thanks for your feedback.</div><table class='lightbox_buttons'><tr><td><img id='lightbox_ok' class='lightbox_button' src='/static/img/button_yes.jpg'></td></tr><tr><td>Okay</td></tr></table>";
        }
    }
    function flagCallback(response){
        if(response == "Success"){
            var html = "<div class='lightbox_message'>Thanks for your feedback.</div><table class='lightbox_buttons'><tr><td><img id='lightbox_ok' class='lightbox_button' src='/static/img/button_yes.jpg'></td></tr><tr><td>Okay</td></tr></table>";
            LIGHTBOX.show(html, {'lightbox_ok':LIGHTBOX.hide});
        }
    }
    function loginRequired(){
        //timestamp added to prevent ie7 from caching
        $.get(loginUrl+"?"+Number(new Date()), loginCallback);
        LIGHTBOX.hide();
    }
    function loginCallback(form){
        LIGHTBOX.show(form);
        $(".ajax_login").bind('click', 
            function(){
                var csrfInput = this.form.csrfmiddlewaretoken;
                if (!csrfInput){
                    $.post(loginUrl, 
                        {username:this.form.username.value, password:this.form.password.value},
                        loggedIn
                    );
                }
                else {
                    $.post(loginUrl, 
                        {username:this.form.username.value, password:this.form.password.value, csrfmiddlewaretoken:csrfInput.value},
                        loggedIn
                    );
                }
            });
        $(".ajax_login_cancel").bind('click', LIGHTBOX.hide);
    }
    function removeLoginRequired(){
        var loginControls = $(".login_required")
        loginControls.removeClass("login_required");
        loginControls.unbind('click', loginRequired); 
    }
    function loggedIn(data){
        var lines = data.split("\n")
        var dataItems = lines[0].split(",");
        if (dataItems[0] == "Success"){
            var csrftoken = lines[1].match(/value='(\w+)'/)[1];
            $('input[name="csrfmiddlewaretoken"]').val(csrftoken);
            var username = dataItems[1];
            var userUrl = dataItems[2];
            var logoutUrl = dataItems[3];
            var trendCount = dataItems[4];
            LIGHTBOX.hide();
            $(".greeting").html(
                'Hello <a href="'+userUrl+'">'+username+'</a> (<a href="'+logoutUrl+'" class="logon">Sign out</a>) &nbsp;'
            )
            $(".trend_count_num").html(trendCount + " ")
            $(".updates_link").attr("href", userUrl);
            removeLoginRequired();
        }
        else {
            LIGHTBOX.hide();
            loginCallback(data);
        }
    }
    return {
        requiresLogin:function(ele){
            if ($(ele).hasClass("login_required")) return true;
        },
        followUser:function(url){
            function followUser(){
                $.post(url, 
                        {csrfmiddlewaretoken:getCSRFToken()}, 
                        function(){window.location.reload()});
            }
            var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
            LIGHTBOX.show(html , {'lightbox_yes':followUser, 'lightbox_no':LIGHTBOX.hide});
        },
        followTrend:function(url){
            function followTrend(){
                $.post(url, 
                        {csrfmiddlewaretoken:getCSRFToken()}, 
                        function(){window.location.reload()});
            }
            var html = "<div class='lightbox_message'>Are you sure?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
            LIGHTBOX.show(html , {'lightbox_yes':followTrend, 'lightbox_no':LIGHTBOX.hide});
        },
        emailTrend:function(url){
            function emailTrend(){
                $.post(url, 
                        {csrfmiddlewaretoken:getCSRFToken()}, 
                        function(){window.location.reload()});
            }
            var html = "<div class='lightbox_message'>Are you sure you want to email this?</div><table class='lightbox_buttons'><tr><td><img id='lightbox_yes' class='lightbox_button' src='/static/img/button_yes.jpg'></td><td><img id='lightbox_no' class='lightbox_button' src='/static/img/button_no.jpg'></td></tr><tr><td>Yes</td><td>No</td></tr></table>";
            LIGHTBOX.show(html , {'lightbox_yes':emailTrend, 'lightbox_no':LIGHTBOX.hide});
        },
        moreUpdates:function(id, url){
            var updates = $("#"+id)
            var numUpdates = $(".user_update").size()
            if (numUpdates !== prevNumUpdates){
                from = numUpdates;
                to = numUpdates + step; 
                prevNumUpdates = numUpdates;
            }
            var newUpdates;
            if(prependUpdates){
                updates.prepend("<div></div>")
                newUpdates = updates.find("div:first");
            }
            else {
                updates.append("<div></div>")
                newUpdates = updates.find("div:last");
            }
            url += '?from='+from+'&to='+to+"&timestamp="+Number(new Date())+"&latest="+prependUpdates;
            newUpdates.load(url, 
                    function(resp){
                        var numUpdates = $(".user_update").size()
                        if(numUpdates > prevNumUpdates){
                            $(".no_new_updates").remove();
                        }
                        if(numUpdates - prevNumUpdates < step) {
                            prependUpdates = true;
                        }
                    });
        },
        init:function(controlTypes){
            if(controlTypes["deleteMedia"]){
                $(".media_frame").bind('mouseover', showDeleteMediaControl);
                $(".media_frame").bind('mouseout', hideDeleteMediaControl);
            }
            if(controlTypes["deleteMessage"]){
                $(".message_frame").bind('mouseover', showDeleteMessageControl);
                $(".message_frame").bind('mouseout', hideDeleteMessageControl);
            }
            if(controlTypes["trendUnfollow"]){
                $(".trend_frame").bind('mouseover', showTrendControl);
                $(".trend_frame").bind('mouseout', hideTrendControl);
            }
            if(controlTypes["userUnfollow"]){
                $(".user_frame").bind('mouseover', showUserControl);
                $(".user_frame").bind('mouseout', hideUserControl);
            }
            if(controlTypes["rankMedia"]){
                $(".media_frame").bind('mouseover', showRankMediaControl);
                $(".media_frame").bind('mouseout', hideRankMediaControl);
            }
            if(controlTypes["rankComment"]){
                $(".comment_frame").bind('mouseover', showRankCommentControl);
                $(".comment_frame").bind('mouseout', hideRankCommentControl);
            }
            if(controlTypes["rankLink"]){
                $(".link_frame").bind('mouseover', showRankLinkControl);
                $(".link_frame").bind('mouseout', hideRankLinkControl);
            }
            if(controlTypes["flagPage"]){
                $(".flag_page").bind('click', flagPage);
            }
            if(controlTypes["loginRequired"]){
                $(".login_required").bind('click', loginRequired);
            }
        }
    }
}();

