﻿// PageDisabler - creates a invisible DIV layer to cover the page and disable user input
// requires: LayerFunctions.js

var PageDisabler = new _PageDisabler()

function _PageDisabler()
{
	// begin properties

	this._disablers = new Array();

	this._nextID = 0;

	// end properties
	
	// begin private methods
	
	this._createLayer = function()
	{
		var layer = null;

		if(document.layers)
		{
			layer = new Layer(window.innerWidth);
		}
		else if(document.getElementById)
		{
			layer = document.createElement("div");
			layer.style.position = "absolute";
		}

		layer.id = this._getNextID();
		
		this._disablers[layer.id] = layer;

		return layer;
	}

	this._getNextID = function()
	{
		this._nextID++;
		return "pageDisabler" + this._nextID;
	}

	// end private methods
	
	// begin public methods
	
	this.OpenDisabler = function()
	{
		var img = new Image(pageWidth(), pageHeight());
		img.src = "/images/pixels/clear.gif";
		
		var layer = this._createLayer();
		layer.appendChild(img);
		
		document.body.appendChild(layer);
		setElementAnchor(layer.id, 0, 0);
		setElementDimensions(layer.id, pageWidth(), pageHeight());
		
		return layer.id;
	}
	
	this.CloseDisabler = function(disablerID)
	{
		if(this._disablers[disablerID])
		{
			var layer = getElement(disablerID);
			if(layer)
			{
				document.body.removeChild(layer);
			}
		}
	}
	
	// end public methods
	
	return this;
}
