// "Grays out" and makes the screen non-interactive when performing an update.
// To show a graphic progress "spinner" or something put it into hidden element
// id="AjaxLoading" on your page.

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

function BeginRequestHandler(sender, args) {
	showProgress();
}

function EndRequestHandler(sender, args) {
	hideProgress();
}

function showProgress() {
	grayOut(true, "");
	var spinner = $get("AjaxLoading");
	if (spinner == null) return;
	spinner.style.visibility = "visible";
}

function hideProgress() {
	grayOut(false, "");
	var spinner = $get("AjaxLoading");
	if (spinner == null) return;
	spinner.style.visibility = "hidden";
}

function grayOut(vis, options) {
	var optionsoptionsoptions = options || {};
	var zindex = options.zindex || 50;
	var opacity = options.opacity || 30;
	var opaque = (opacity / 100);
	//Setting the color
	var bgcolor = options.bgcolor || '#000000';
	var dark = document.getElementById('darkenScreenObject');
	if (!dark) {
		// The dark layer doesn't exist, it's never been created. So we'll
		// create it here and apply some basic styles.
		tbody = document.getElementsByTagName("body")[0];
		var tnode = document.createElement('div');
		tnode.style.position = 'fixed';
		tnode.style.top = '0px';
		tnode.style.left = '0px';
		tnode.style.overflow = 'hidden';
		tnode.style.display = 'none';
		tnode.id = 'darkenScreenObject';
		tbody.appendChild(tnode);
		dark = document.getElementById('darkenScreenObject');
	}

	if (vis) {
		var pageWidth = '100%';
		var pageHeight = '100%';
		dark.style.opacity = opaque;
		dark.style.MozOpacity = opaque;
		dark.style.filter = 'alpha(opacity=' + opacity + ')';
		dark.style.zIndex = zindex;
		dark.style.backgroundColor = bgcolor;
		dark.style.width = pageWidth;
		dark.style.height = pageHeight;
		dark.style.display = 'block';
	}
	else {
		dark.style.display = 'none';
	}
}
// Needed for ScriptManager to load the js properly.
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
