$(function () {
    function related(a)
    {
        for (var i=0; i<a.length; i++)
        {
            if (a[i].name == "add_to" && a[i].value)
            {
                return true
            }
            
            if (a[i].name.indexOf("circle_") == 0)
            {
                return true
            }
        }
        
        return false
    }
    
    function activateRelateButton(button)
    {
        var name = button.find("input").val()
        var url = "/ajax/relate/"+name+"/"
        var box = $('#modal .modal_content')
        
        function submit()
        {
            var form = box.find("form")
            var formData = form.serializeArray()
            $.post(url, form.serialize(), function(data, status) {
                if (data=="")
                {
                    hideModal()
                    
                    if (related(formData))
                    {
                        button.addClass("active")
                    }
                    else
                    {
                        button.removeClass("active")
                    }
                }
                else
                {
                    box.html(data)
                    box.find("button").click(submit)
                }
                
            })
            
            return false
        }
        
        function showBox()
        {
            box.load(url, function() {
                box.css("position", "absolute")
                box.fadeIn("fast")
                box.find("button").click(submit)
            })
            
            return false
        }
        
        button.click(function() {
            if (settings.AUTHENTICATED)
            {
                showModal(url, function() {
                    box.find("button").click(submit)
                })
            }
            else
            {
                document.location = "/accounts/login/?next=" + document.location
            }
            
            return false
        })
    }
    
    function activateRelateButtons(root)
    {
        var buttons = root.find(".actions .circle")
        buttons.each(function () {
            activateRelateButton($(this))
        })
    }
    
    activateRelateButtons($(document))
    activateFunctions.push(activateRelateButtons)
})
