var $overlayBlock=null;
$(function(){
    
    $('*[showOverlay]').click(function(e){
        e.preventDefault();
        $($(this).attr('showOverlay')).showOverlay();
    })
    $('#Overlay').click(function(){
        hideOverlay();
    });
    $('.overlay-block .hide-overlay').click(function(e){
        e.preventDefault();
        hideOverlay();
    });
    $.fn.showOverlay=function(callback){
        if($(this).length!=1)
            return;

        var $overlay=$('#Overlay');
        resizeOverlay();

        $overlay.not(':visible').css('opacity',0).show().animate({opacity:0.7},'fast');

        if($overlayBlock==null){
            $overlayBlock=$(this);
            resizeBlock();
            $overlayBlock.fadeIn('slow');
        } else {
            var $border=$('#OverlayBorder');
            $border.css({left:$overlayBlock.position().left,top:$overlayBlock.position().top,width:$overlayBlock.width(),height:$overlayBlock.height()});
            $overlayBlock.hide();
            $overlayBlock=$(this);
            resizeBlock();
            $overlayBlock.show();
            var animateTo={left:$overlayBlock.position().left,top:$overlayBlock.position().top,width:$overlayBlock.width(),height:$overlayBlock.height()};
            $overlayBlock.hide();
            $border.animate(animateTo,'fast',function(){$border.hide();$overlayBlock.fadeIn('fast',callback);});
        }
    }
});
$(window).keydown(function(e){
    if(e.keyCode==27)
        hideOverlay();
});
function resizeOverlay(){
    $('#Overlay').css({width:$(window).width(),height:$(window).height(),left:$(window).scrollLeft(),top:$(window).scrollTop()});
    $('#Overlay').css({width:$(window).width(),height:$(window).height(),left:$(window).scrollLeft(),top:$(window).scrollTop()});
}
function resizeBlock(){
    if($overlayBlock){
        $overlay=$('#Overlay');
        $overlayBlock.css({left:$overlay.position().left+($overlay.width()-$overlayBlock.width())/2,top:$overlay.position().top+($overlay.height()-$overlayBlock.height())/2});
    }
}
$(window).resize(resizeOverlay);
$(window).scroll(resizeOverlay);

$(window).resize(resizeBlock);
$(window).scroll(resizeBlock);
function hideOverlay(){

    $('#Overlay').fadeOut('fast');
    $('#OverlayBorder').fadeOut('fast');
    if($overlayBlock)
        $overlayBlock.fadeOut('slow');
    $overlayBlock=null;
}
