//****************************************************
function dialogo(Conteudo,Classe) {
	var conteudo = Conteudo;
	//lert('cont='+conteudo);
	var classe = Classe?Classe:'dialogo';
	this.ver = ver;
	this.fecha = fecha;
	var jan,jan1,fDoc;
	var aberto = false;
	var opa;
	var eu = this;
	this.ver = ver;
	var jpos = 'position:'+(browse.IE6?'absolute;':'fixed;');
	var ftex;
	//OPCOES
	eu.opat = 100; //tempo milisegs mudança opacidade fundo
	eu.opaIni = 0.2; //inicio opacidade
	eu.opaFim = 0.6; //fim opacidade
	eu.opaInc = 0.2; //inc opacidade
	eu.opaMostra = true; //mostra apos ciclo opacidade
	eu.tipoTexto = false;
	eu.tipoTextoPad = 20; //pad/moldura tela text
	eu.tipoImg = false; //colocar url da imagem
	eu.tipoImgPad = 40; //pad/moldura tela imagem
	eu.imgCarregando = 300; //tempo minimo carregando
	eu.limH = 0.95; //uso da tela na vertical = heigth
	eu.tipoImgCtrl = false;
	//'<div class="'+classe+'Ctrl" style="float:right;" onclick=o(this).fecha()>X</div>';
	//****************************************************
	//posiciona no 1o input, select, textarea..
	function foco(obj) {
		if (browse.aceitaFoco(obj)) {
			obj.focus();
			return true;
		}
		for (var i=0;i<obj.childNodes.length;i++) {
			if (foco(obj.childNodes.item(i))) {
				return true;
			}
		}
		return false;
	}
	//****************************************************
	function fecha(o,cd,ev) {
		aberto = false;
		browse.esconde(jan);
		setTimeout(function() {ver(-1);},eu.opat);
	}
	//****************************************************
	function imgOk() {
		var w  = eu.img.width;
		var h = eu.img.height;
		if (browse.ie && (w<1 || h<1)) {
			setTimeout(imgOk,100);
			return;
		}
		//lert('img ok...'+eu.tipoImg+' w'+w+' h'+h);
		jan.innerHTML = '';
		if (eu.tipoImgCtrl) {
			jan.innerHTML = eu.tipoImgCtrl;
		} else {
			jan.style.cssText += 'cursor:pointer;cursor:hand;';
			jan.onclick = fecha;
		}
		estiloAddDel(jan,classe+'Ok',true);
		//limita tam img?
		var px = fDoc.documentElement.clientWidth;
		var py = fDoc.documentElement.clientHeight;
		var dt = Math.min(px/(w+eu.tipoImgPad*4),py/(h+eu.tipoImgPad*4));
		if (dt<1) {
			w = w * dt;
			h = h * dt;
			eu.img.width = w;
			eu.img.height = h;
		}
		//debJ('w='+w+' h='+h+' dt='+dt+' p='+eu.tipoImgPad+' ty='+browse.getTY(jan));
		jan.appendChild(eu.img);
		browse.setTX(jan,w+eu.tipoImgPad*2);
		browse.setTY(jan,h+eu.tipoImgPad*2);
		eu.centraliza();
	}
	//****************************************************
	this.centraliza = function() {
		var tm = fDoc.documentElement.clientHeight*eu.limH;
		if (jan.clientHeight>tm) {
			if (eu.tipoTexto) {
				ftex.style.height = (tm-eu.tipoTextoPad*2)+'px';
			}
			jan.style.height = tm+'px';
		}
		//centraliza
		var px = fDoc.documentElement.clientWidth/2-browse.getTX(jan)/2;
		var py = fDoc.documentElement.clientHeight/2-browse.getTY(jan)/2;
		if (jpos.indexOf('fixed')==-1) {
			px += fDoc.documentElement.scrollLeft;
			py += fDoc.documentElement.scrollTop;
		}
		browse.setX(jan,px);
		browse.setY(jan,py);
		
		//tipo img
		if (eu.tipoImg && !eu.img) {
			eu.img = new Image();
			eu.img.src = eu.tipoImg;
			if (!browse.ie) {
				eu.img.onload = imgOk;
			} else {
				setTimeout(imgOk,eu.imgCarregando);
			}
		}
	}
	//****************************************************
	function frameText() {
		var tb = fDoc.createElement('div');
		//lert('aa'+tb);
		tb.innerHTML = '<table><tr><td><div class="'+classe+'Conteudo">'+'</div>'
			+'<td class="'+classe+'FechaEs">&nbsp;'
			+'<td class="'+classe+'Fecha">f<br>e<br>c<br>h<br>a<br>r'
			+'</table>'
		;
		tb = tb.firstChild;
		//lert('aa');
		jan.appendChild(tb);
		//fechar
		if (!tb.getElementsByTagName) {
			alert(tb+' '+tb.getElementsByTagName);
		}
		var r = tb.getElementsByTagName('td')[2];
		r.onclick = fecha;
		var r = tb.getElementsByTagName('div')[0];
		//lert(r);
		return r;
		//volta
	
		var tb = fDoc.createElement('table');
		var tbr = fDoc.createElement('tr');tb.appendChild(tbr);
		var tbc = fDoc.createElement('td');tbr.appendChild(tbc);
		var tbd = fDoc.createElement('div');tbc.appendChild(tbd);
		tbc.className = classe+'Conteudo';
		//muda destino dos dados
		var tbc = fDoc.createElement('td');tbr.appendChild(tbc);
		tbc.onclick = function() {ver('');};
		tbc.className = classe+'Fecha';
		tbc.innerHTML = 'f<br>e<br>c<br>h<br>a<br>r';
		jan.appendChild(tb);
		return tbd;
	}
	//****************************************************
	function ver(o,cd,ev) {
		if (typeof(o)=='string' || (aberto && o!= -1) ) {
			//FECHA
			fecha();
			return;
		} else if (o==-1) {
			//passos opacit qto ABRE/FECHA
			opa = opa==-1&&aberto?eu.opaIni:opa;
			opa += (aberto?eu.opaInc:-eu.opaInc);
			var ops = (opa>=eu.opaFim?eu.opaFim:(opa==0?eu.opaIni:opa));
			if (jan1 && jan1.style) {
				if (browse.ie) {
					jan1.style.filter = 'Alpha(opacity='+(ops*100)+')'
				} else {
					jan1.style.opacity = ops;
				}
			}
			//ebJ('opa='+opa);
			if ( (!aberto && opa>eu.opaIni) || (aberto && opa<eu.opaFim) ) {
				setTimeout(function() {ver(-1);},eu.opat);
			} else if (opa<=eu.opaIni) {
				browse.esconde(jan1);
			} else {
				//fim
				if (eu.opaMostra) {
					browse.mostra(jan);
					eu.centraliza();
				}
			}
			return;
		}
		aberto = true;
		fDoc = document;
		jan = browse.getId(classe,fDoc);
		if (vazio(jan)) {
			//dialogo
			//2 jan de conteudo..
			jan = fDoc.createElement("div");
			jan.style.cssText = jpos;
			jan.className = classe;
			jan.classe = classe;
			jan.id = classe;
			jan.obj = eu;
			//jan.style.cssText = 'z-index: -2;';
			fDoc.body.appendChild(jan);
			browse.esconde(jan);
		}
		jan1 = browse.getId(classe+'Fundo',fDoc);
		if (vazio(jan1)) {
			//cria os elementos para o dialogo
			//1 jan de fundo toda tela
			jan1 = fDoc.createElement("div");
			jan1.style.cssText = jpos+'background-color:#000000;opacity:0.1;filter:Alpha(opacity:10);';
			jan1.className = classe+'Fundo';
			jan1.id = classe+'Fundo';
			jan1.onclick = fecha;
			fDoc.body.appendChild(jan1);
			browse.esconde(jan1);
		}
		opa = -1;
		//setTimeout(nome+'.ver(-1);',opat);
		jan.innerHTML = '';jan.style.width='';jan.style.height='';
		eu.img = false;
		//var cont recebe os dados
		ftex = eu.tipoTexto?frameText():jan;
		//preenche cont
		//lert('cont '+conteudo);
		if (typeof(conteudo)=='string') {
			ftex.innerHTML = conteudo;
		} else if (typeof(conteudo)=='function') {
			conteudo(ftex);
		} else { //assume q é objeto
			ftex.innerHTML = conteudo.innerHTML;
		}
		
		//posiciona DIVs
		var o = jan.getElementsByTagName('div');
		if (!o || !o[0] || !o[0].getAttribute || o[0].getAttribute('cont')!='js') {
			browse.mostra(jan1);
			//ie6
			if (jpos.indexOf('fixed')==-1) {
				jan1.style.cssText += ';top:'+fDoc.documentElement.scrollTop+'px'
					+';left:'+fDoc.documentElement.scrollLeft+'px'
				;
				//lert(fDoc.documentElement.scrollTop+' '+jan1.style.cssText);
			} else {
				browse.setX(jan1,0);
				browse.setY(jan1,0);
			}
			browse.setTX(jan1,fDoc.documentElement.clientWidth+'px');
			browse.setTY(jan1,fDoc.documentElement.clientHeight+'px');
			
			//jan 1 mostra e apos centraliza
			if (!eu.opaMostra) {
				browse.mostra(jan);
				eu.centraliza();
			}
		} else {
			jan.innerHTML = '';
			browse.esconde(jan);
		}
		
		//foco
		setTimeout(function() {foco(jan);},eu.opat*4);
		
		//vai mostrando...
		setTimeout(function() {ver(-1);},eu.opat);
		
	}
}
