function ajaxOnStart() {
	showOverlay('ajax');
	var busy = jQuery("#busy");
	busy.centerScreen();
}
function ajaxOnStop() {
	hideOverlay('ajax');
}

var overlays = [];
function showOverlay(name) {
	if ( name == null ) name = 'main';
	
	if ( !in_array(name, overlays) )
		overlays[overlays.length] = name;
	
	var overlay = jQuery("#overlay");
	overlay.css('visibility', "visible");
	overlay.css('top', 0 - overlay.offset().top);
	overlay.css('left', 0 - overlay.offset().left);
	overlay.css('height', jQuery(window).height());
	overlay.css('width', jQuery(window).width());
}
function hideOverlay(name) {
	if ( name == null ) name = 'main';
	
    for (key in overlays) {
        if (overlays[key] == name) {
        	overlays.splice(key, 1);
        }
    }
	
	if ( overlays.length == 0 ) {
		document.getElementById('overlay').style.visibility = "hidden";
	}
}

function in_array(needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true
    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false
 
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}
