
function linkControlFilter(link)
{
    var hide = false;
    var href = link.attr('href');
    
    $.each(
    [
       'noLinkControl', 'sortable'
    ], 
    function(index, value)
    { 
        hide = hide || link.hasClass(value);
    });
    
    hide = hide
                    || link.attr('href') == null
                    || href.match(/^#.*|void\(.*\)|mailto|javascript:\s*return\s*false/)
                    || link.is(":has(img)");
    
    return !hide;
}

function linkMouseOver()
{
    
    if (linkControlFilter(currControlledLink))
    {
        
        var href = currControlledLink.attr('href');
        $('#linkControlDestination').html(
                        currControlledLink.text().replace(/\.$/, ''));
        $('#linkControlCurrent').attr('href', href);
        $('#linkControlNew').attr('href', href);
        
        var winWidth = $(window).width();
        var linkLeft = currControlledLink.offset().left;
        var linkControlWidth = $('#linkControl').outerWidth();
        
        $('#linkControl').removeClass(
        [
                        'linkControlLeft', 'linkControlRight'
        ]);
        
        var left = null;
        var css = null;
        
        var height = $('#linkControl').outerHeight() / 2;
        
        if (linkControlWidth + linkLeft > winWidth)
        {
            css = 'linkControlRight';
            left = currControlledLink.offset().left
                            - $('#linkControl').outerWidth();
            
        }
        else
        {
            css = 'linkControlLeft';
            
            left = currControlledLink.offset().left
                            + currControlledLink.outerWidth();
        }
        
        var top = (currControlledLink.offset().top + (currControlledLink
                        .outerHeight() / 2))
                        - height;
        $('#linkControl').addClass(css);
        $('#linkControl').css("top", top);
        $('#linkControl').css("left", left);
        
        $('#linkControl').show();
        
    }
    
}

var currControlledLink = null;
var linkTimeOut = null;
var linkControlDefs =
{
                
                mouseover : function(e)
                {
                    currControlledLink = $(this);
                    linkTimeOut = setTimeout("linkMouseOver();", 1000);
                    
                },
                mouseout : function(e)
                {
                    clearTimeout(linkTimeOut);
                    $('#linkControl').hide();
                }

};

$(document).ready(function()
{
    
    $("#layoutBody a").live(linkControlDefs);
    
    $(".linkControl").hover(

    function(hoverIn)
    {
        $('#linkControl').show();
    },

    function(hoverOut)
    {
        $('#linkControl').hide();
    });
    
});

