/**
* AFW module Overlay
*
*/
if(typeof(afw) === 'undefined')
{
	var afw = {};
}
if(typeof(afw.module) === 'undefined')
{
	afw.module = {};
}
afw.module.overlay =
{
	zIndex : 100
	,bringToFront : function(oElement)
	{
		afw.module.overlay.zIndex++;
		oElement.style.zIndex = afw.module.overlay.zIndex;
	}
	,close : function(oElement)
	{
		var i, m, lock, overlay;
		overlay = oElement.parentNode;
		if(overlay)
		{
			overlay.parentNode.removeChild(overlay);
			lock = afw.common.functions.getElement(oElement.id.replace(/_close/gi, '') + '_lock');
			if(lock)
			{
				lock.parentNode.removeChild(lock);
			}
		}
	}
	,buildClose : function(options)
	{
		if(!afw.common.functions.isObject(options)){ options = {}; }

		options.id = (afw.common.functions.isUndefined(options.id)) ? '' : options.id;
		options.content = (afw.common.functions.isUndefined(options.contecnt)) ? 'X' : options.content;
		options.className = (afw.common.functions.isUndefined(options.className)) ? '' : ' ' + options.className;

		var close = document.createElement('DIV');
		close.innerHTML = options.content;
		close.id = options.id;
		close.className = 'afw-am-overlay-close' + options.className;

		return close;
	}
	,open : function(options)
	{
		if(afw.common.functions.isUndefined(options) || afw.common.functions.isNull(options)){ options = {}; }
		else if(afw.common.functions.isBoolean(options)) { options = { lock : options }; }

		options.lock = (afw.common.functions.isBoolean(options.lock)) ? options.lock : true;
		options.close = (!afw.common.functions.isUndefined(options.close)) ? options.close : null;

		var lock, element, close;
		element = document.createElement('DIV');
		element.id = afw.common.functions.randomID('overlay_');
		element.className = 'afw-am-overlay';
		close = afw.module.overlay.buildClose(options.close);
		if(close.id == '')
		{
			close.id = element.id + '_close';
		}
		if(options.lock)
		{
			lock = afw.common.functions.getElement(element.id + '_lock');
			if(!lock)
			{
				lock = document.createElement('DIV');
				lock.id = element.id + '_lock';
				lock.className = 'afw-am-overlay-lock';
				element.className += ' locked';
				afw.common.functions.setOpacity(lock, (!afw.common.functions.isUndefined(options.lock_opacity) ? options.lock_opacity : 60));
				document.body.appendChild(lock);
			}
			lock.style.width = '100%';
			lock.style.height = '100%';
			var clientDim = afw.common.functions.getClientDimensions();
			var viewportDim = afw.common.functions.getDimensions(lock);
			lock.style.width = ((clientDim.width > viewportDim.width) ? clientDim.width + 'px' : '100%');
			lock.style.height = ((clientDim.height > viewportDim.height) ? clientDim.height + 'px' : '100%');
			lock.style.display = 'block';
			afw.module.overlay.bringToFront(lock);
		}
		afw.module.overlay.bringToFront(element);
		element.appendChild(close);
		document.body.appendChild(element);
		(function(id)
		{
			var element = afw.common.functions.getElement(id);
			if(element)
			{
				element.onmousedown = function(){ afw.module.overlay.bringToFront(this); };
			}
		})(element.id);
		(function(id)
		{
			setTimeout(function()
			{
				var close = afw.common.functions.getElement(id);
				if(close){ close.onclick = function(){ afw.module.overlay.close(this); } }
			}, 250);
		})(close.id);
		return element;
	}
};

/*
TODO: moveable
*/