/*
 * KWJAXModal.
 */
function KWJAXModal() {

	// Contador de acumulação
	var lCumulativeCounter = 0;

	// Obtém elementos
	var lDivKWJAXModal_Wrapper = document.getElementById('divKWJAXModal_Wrapper');
	var lDivKWJAXModal_Content = document.getElementById('divKWJAXModal_Content');

	// Verifica elemento
	if (lDivKWJAXModal_Wrapper == null) {
		var lMessage = '';
		lMessage += 'Estrutura básica não satisfeita:' + '\n';
		lMessage += '' + '\n';
		lMessage += '<html>' + '\n';
		lMessage += '	<head>' + '\n';
		lMessage += '		...' + '\n';
		lMessage += '		<!-- KWJAXModal -->' + '\n';
		lMessage += '		<link rel="stylesheet" href="KWJAXModal.css" media="screen" type="text/css" />' + '\n';
		lMessage += '		<script type="text/javascript" charset="ISO-8859-1" src="KWJAXModal.js"></script>' + '\n';
		lMessage += '		...' + '\n';
		lMessage += '	</head>' + '\n';
		lMessage += '	<body style="margin: 0px" onscroll="moKWJAXModal.cmdAlign();">' + '\n';
		lMessage += '		<div name="divKWJAXModal_Wrapper" id="divKWJAXModal_Wrapper" style="display: none"></div>' + '\n';
		lMessage += '		<script type="text/javascript">' + '\n';
		lMessage += '' + '\n';
		lMessage += '			// KWJAXModal' + '\n';
		lMessage += '			var moKWJAXModal = new KWJAXModal();' + '\n';
		lMessage += '		</script>' + '\n';
		lMessage += '		<div name="divKWJAXModal_Content" id="divKWJAXModal_Content">' + '\n';
		lMessage += '			...' + '\n';
		lMessage += '		</div>' + '\n';
		lMessage += '	</body>' + '\n';
		lMessage += '</html>';
		alert(lMessage);
	} else {

		// Cria elemento de proteção
		var lFrmKWJAXModal_Wrapper = document.createElement('IFRAME');
		lFrmKWJAXModal_Wrapper.setAttribute('name', 'frmKWJAXModal_Wrapper');
		lFrmKWJAXModal_Wrapper.setAttribute('id', 'frmKWJAXModal_Wrapper');
		lFrmKWJAXModal_Wrapper.setAttribute('frameborder', '0');

		// Atribui propriedades do wrapper
		lDivKWJAXModal_Wrapper.appendChild(lFrmKWJAXModal_Wrapper);
		lDivKWJAXModal_Wrapper.style.zIndex = 1;
	}

	/*
	 * Método de exibição.
	 */
	this.cmdShow = function() {
		lCumulativeCounter++;
		lDivKWJAXModal_Wrapper.style.display = '';
	}

	/*
	 * Método de ocultação.
	 */
	this.cmdHide = function() {
		lCumulativeCounter = 0;
		lDivKWJAXModal_Wrapper.style.display = 'none';
	}

	/*
	 * Método de exibição cumulativa.
	 */
	this.cmdCumulativeShow = this.cmdShow;

	/*
	 * Método de ocultação cumulativa.
	 */
	this.cmdCumulativeHide = function() {
		lCumulativeCounter--;
		if (lCumulativeCounter <= 0) {
			this.cmdHide();
		}
	}

	/*
	 * Método de alinhamento.
	 */
	this.cmdAlign = function() {
		lDivKWJAXModal_Wrapper.style.left = new KWJAXUtil().getXScroll() + 'px';
		lDivKWJAXModal_Wrapper.style.top = new KWJAXUtil().getYScroll() + 'px';
	}

	/*
	 * Getter do índice Z.
	 */
	this.getZIndex = function() {
		return lDivKWJAXModal_Wrapper.style.zIndex;
	}

	/*
	 * Setter do índice Z.
	 */
	this.setZIndex = function(pZIndex) {
		lDivKWJAXModal_Wrapper.style.zIndex = pZIndex;
	}

	/*
	 * Getter do índice Z do conteúdo.
	 */
	this.getContentZIndex = function() {
		return lDivKWJAXModal_Content.style.zIndex;
	}

	/*
	 * Setter do índice Z do conteúdo.
	 */
	this.setContentZIndex = function(pContentZIndex) {
		lDivKWJAXModal_Content.style.zIndex = pContentZIndex;
	}
}
