/*
WabWindow - Plugin de exibição de janelas javascript que utiliza a biblioteca ModalBox

Copyright Wanderson Bezerra (wandersonbezerra@gmail.com)
Todos os direitos reservados.
 
VERSION 0.5.1
Ultima Modificação: 19/04/2010

Pré-requisitos:
Biblioteca ModalBox
*/

function WabWindow () {

	/*
	Descricao: Abre uma janela de mensagem
	Retorno: nao possui retorno
	Parametros:
	 - texto = mensagem a ser exibida
	 - argumento[1](opcional) = nome da imagem a ser exibida na janela
	 - argumento[2](opcional) = titulo da janela a ser exibida (caso vazio ou nao informado, sera mostrado Atencao)
	 - argumento[3](opcional) = largura da janela
	 - argumento[4](opcional) = array para formar botoes e suas funcoes, exemplo: Array(Array('OK','alert('Ciquei no OK!');'),Array('Cancelar','Modalbox.hide();'))
	 */
	this.show = function (texto) {
		var im_imagem = (arguments.length > 1 && this.trim(arguments[1]) != '' ? arguments[1] : '');
		var titulo = (arguments.length > 2 && this.trim(arguments[2]) != '' ? arguments[2] : 'Aten&ccedil;&atilde;o');
		var largura = (arguments.length > 3 && this.trim(arguments[3]) != '' ? arguments[3] : '350');
		var botoes = (arguments.length > 4 && typeof(arguments[4]) == 'object' ? arguments[4] : false);
		var conteudo = '';
		conteudo+='<div id="ww_div">';
			conteudo+='<div id="ww_div_content">';
				conteudo+='<table cellpadding=0 cellspacing=0>';
					conteudo+='<tr>';
					if(im_imagem != '') {
						conteudo+='<td id="ww_img">';
							if( im_imagem.substr((im_imagem.length - 4),1) != '.') {
								conteudo+='<img src="/lib/wabWindow/'+im_imagem+'.png" />';
							}
							else {
								conteudo+='<img src="/lib/wabWindow/'+im_imagem+'" />';
							}
						conteudo+='</td>';
					}
						conteudo+='<td id="ww_texto">'+texto+'</td>';
					conteudo+='</tr>';
				conteudo+='</table>';
				//begin criando os botoes
				conteudo+='<table id="ww_tb_buttons" cellpadding=0 cellspacing=0 border=0 align="center">';
					conteudo+='<tr>';
					if(botoes != false) {
						for(var i = 0; i < botoes.length; i++) {
							conteudo+='<td id="'+i+'"><span onclick="'+botoes[i][1]+'">'+botoes[i][0]+'</span></td>';
						}
					}
					else {
						conteudo+='<td><span onclick="Modalbox.hide();">Ok</span></td>';
					}
					conteudo+='</tr>';
				conteudo+='</table>';
				//end criando os botoes
			conteudo+='</div>';
		conteudo+='</div>';

		var imgClose = "<img src='/lib/wabWindow/close.gif' border='0'>";

		Modalbox.show(conteudo,{title:titulo,width:largura,overlayClose:false,closeValue:imgClose});
		Modalbox._update();
	}

	/*
	Descricao: Fecha a janela que estava sendo exibida
	Retorno: nao possui retorno
	Parametros: nao possui parametros
	*/
	this.hide = function () {
		Modalbox.hide();
	}

	/*
	Descricao: Modifica o conteudo exibido na janela
	Retorno: nao possui retorno
	Parametros:
		- arguments[0] = novo conteudo que sera exibido na janela(opcional)
	*/
	this.update = function () {
		Modalbox.Methods.options.loadingString = (arguments.length > 0 ? arguments[0] : 'Aguarde...');
	}

	/*
	Descricao: Formata o campo para enfatizar um erro e foca esse objeto
	Retorno: nao possui retorno
	Parametros:
		- objEscolhido = id do objeto ou objeto que deve ser alterado
	*/
	this.comErro = function (objEscolhido) {
		var objEscolhido = document.getElementById(objEscolhido);
		if (!objEscolhido) {
			return false;
		}
		objEscolhido.setAttribute("backgroundColorAntiga",objEscolhido.style.backgroundColor);
		objEscolhido.style.backgroundColor = "#FFBBBB";
		objEscolhido.focus();
	}

	/*
	Descricao: Retira a formatacao de erro
	Retorno: nao possui retorno
	Parametros:
		- objEscolhido = id do objeto ou objeto que deve ser alterado
	*/
	this.semErro = function (objEscolhido) {
		var objEscolhido = document.getElementById(objEscolhido);
		if (!objEscolhido) {
			return false;
		}
		var backgroundColorAntiga = objEscolhido.getAttribute("backgroundColorAntiga");
		if (backgroundColorAntiga != "") {
			objEscolhido.style.backgroundColor = backgroundColorAntiga;
		}
		else {
			objEscolhido.style.backgroundColor = "";
		}
	}

	/*
	Descricao: Remove os espacos sobressalentes na lateral esquerda de uma string
	Retorno:
		- texto = texto sem espacos na lateral esquerda
	Parametros:
		- textoInicial = texto que podera conter espacos no comeco e no final da string
	*/
	this.ltrim = function (textoInicial) {
		if (!textoInicial) {
			return "";
		}
		else {
			while ((textoInicial.length > 0)&&(textoInicial.charAt(0) == " ")) {
				textoInicial = textoInicial.substr(1);
			}
			return textoInicial;
		}
	}

	/*
	Descricao: Remove os espacos sobressalentes na lateral direita de uma string
	Retorno:
		- texto = texto sem espacos na lateral direita
	Parametros:
		- textoInicial = texto que podera conter espacos no comeco e no final da string
	*/
	this.rtrim = function (textoInicial) {
		if (!textoInicial) {
			return "";
		}
		else {
			while ((textoInicial.length > 0)&&(textoInicial.charAt(textoInicial.length - 1) == " ")) {
				textoInicial = textoInicial.substr(0,textoInicial.length - 1);
			}
			return textoInicial;
		}
	}

	/*
	Descricao: Remove os espacos sobressalentes nas laterais direita e esquerda de uma string
	Retorno:
		- texto = texto sem espacos nas duas laterais
	Parametros:
		- textoInicial = texto que podera conter espacos no comeco e no final da string
	*/
	this.trim = function (textoInicial) {
		if (!textoInicial) {
			return "";
		}
		else {
			return this.rtrim(this.ltrim(textoInicial));
		}
	}

}
