//dimScreen()
//by Brandon Goldman
jQuery.extend({
//dims the screen
dimScreen: function(speed, opacity, callback) {
    if(jQuery('#__dimScreen').size() > 0) return;
    
    if(typeof speed == 'function') {
        callback = speed;
        speed = null;
    }

    if(typeof opacity == 'function') {
        callback = opacity;
        opacity = null;
    }

    if(speed < 1) {
        var placeholder = opacity;
        opacity = speed;
        speed = placeholder;
    }
    
    if(opacity >= 1) {
        var placeholder = speed;
        speed = opacity;
        opacity = placeholder;
    }
		
    var h = $(document).height();
    var w = $(document).width();
    speed = (speed > 0) ? speed : 500;
    opacity = (opacity > 0) ? opacity : 0.5;
    return jQuery('<div></div>').attr({
            id: '__dimScreen'
            ,fade_opacity: opacity
            ,speed: speed
        }).css({
        background: '#E7E7E7'
        ,height: h
        ,left: '0px'
        ,opacity: 0
        ,position: 'absolute'
        ,top: '0px'
        ,width: w
        ,zIndex: 9999
    }).appendTo(document.body).fadeTo(speed, opacity, callback);
},

//stops current dimming of the screen
dimScreenStop: function(callback) {
    var x = jQuery('#__dimScreen');
    var opacity = x.attr('fade_opacity');
    var speed = x.attr('speed');
    x.fadeOut(speed, function() {
        x.remove();
        if(typeof callback == 'function') callback();
    });
}
});
