var debugObj;

	//****************************************************
	function urlAbsoluta(src,url) {
		src = ''+trimm(src);
		if (src.indexOf('://')==-1) {
			if (equals(src,'/')) {
				//so add host...
				src = url.substring(0,url.indexOf('/',url.indexOf('//')+2))+src;
			} else {
				src = leftRat(leftAt(url+'?','?'),'/')+'/'+src;
			}
		} else {
			src = equals(src,'bla')?'http'+src.substring(3):src;
		}
		return src;
	}
	
	//***********************************************
	//function fSort
	function fSort(a,b) {
		return (a>b?1:(a<b?-1:0));
	}

	//***********************************************
	//retorna uma table no formato MATRIZ
	// nroCol = filtra so linhas com >= nro col
	function getTabela(obj,nroCol) {
		var r = new Array();
		var v = obj.getElementsByTagName('tr');
		for (var l=0;l<v.length;l++) {
			var v1 = v[l].getElementsByTagName('td');
			if (!nroCol || v1.length>=nroCol) {
				var l1 = r.length;
				r[l1] = new Array();
				for (var c=0;c<v1.length;c++) {
					r[l1][c] = htmlTxt(v1[c]);
				}
			}
		}
		return r;
	}
	//***********************************************
	//retorna data no formato dd/mm/aaaa contida no texto..
	function retData(tx) {
		var p,t=tx;
		while ((p = t.indexOf('/'))!=-1) {
			var d  = leftAt(trimm(t.substring(p-2)),' ');
			var a = palavraA(d,'/');
			if (a[1]>'9') { //mes em modo texto...
				//mes text com n? digitos
				var m = (new internacional()).getNroMes(a[1]);
				if (m==-1) {
					m = (new internacional('en')).getNroMes(a[1]);
				}
				a[1] = m+1;
				alert(m+' '+tx);
			}
			if (a.length==3 && 1*a[0]>0 && 1*a[0]<32 
				 && 1*a[1]>0 && 1*a[1]<13) {
				 return strZero(1*a[0],2)+'/'+strZero(1*a[1],2)+'/'+strZero(1*a[2],4); 
			}
			t = t.substring(p+1);
		}
		var tx = tx.toLowerCase();
		for (var i=0;i< tb_nomeMes.length;i++) {
			//ebJ(tb_nomeMes[i]+' '+tx);
			var p = tx.indexOf(tb_nomeMes[i].toLowerCase());
			if (p!=-1) {
				var d = getNro(tx.substring(0,p),true);
				var a = getNro(tx.substring(p+1));
				return strZero(1*d,2)+'/'+strZero(i+1,2)+'/'+strZero(1*a,4);
				break;
			}
		}
		return false;
	}
	//***********************************************
	//retorna o primeiro nro a partir do inicio ou fim
	function getNro(tx,fim) {
		var r = '';
		for (var i=(fim?tx.length-1:0);(fim?i>=0:i<tx.length);i+=(fim?-1:1)) {
			var c = tx.substring(i,i+1);
			if (c<'0' || c>'9') {
				if (r!='') {
					break;
				}
			} else {
				r = (fim?c+r:r+c);
			}
		}
		return r;
	}
	//***********************************************
	function getId(obj,id,nome) {
		if (!nome) {
			nome = 'id';
		}
		var r = false;
		if (obj.getAttribute && obj.getAttribute (nome)==id) {
			r = obj;
		} else if (obj.childNodes && obj.childNodes.length>0) {
			for (var i=0;i<obj.childNodes.length;i++) {
				r = getId(obj.childNodes.item(i),id,nome);
				if (r) {
					break;
				}
			}
		}
		return r;
	}
	//***********************************************
	function htmlTxt(obj) {
		var nl='\n',r = '';
		var t = obj.tagName?obj.tagName.toLowerCase():'?';
		if (''+obj=='[object Text]') {
			//nodeValue:
			r = trimm(obj.textContent);
		}
		if (obj.childNodes && obj.childNodes.length>0) {
			for (var i=0;i<obj.childNodes.length;i++) {
				r += htmlTxt(obj.childNodes.item(i));
			}
		}
		if (t=='br' || t=='hr' || (obj.tagName && !vazio(r) && '~p~tr~li~ul~'.indexOf(t)!=-1) ) {
			r += '\n';
		}			
		//lert(typeof(obj)+' '+obj);
		return r;
	}
	
	//***********************************************
	//entrada de dados html
	function campoHtml(nomec,valorc,win) {
		var nome = nomec;
		var valor = valorc;
		var oIf = null,oIfD,oIfDoc;
		var oTx = null;
		var oCm = null;
		//var formato = 'grafico';
		//var htm = false;
		var win = nulo(win)?window:win;
		var parent = win;
		//lert(parent);
		var doc = win.document;
		var vContext;
		
		//modos
		var modo,modoA=false;
		this.modos = new Array(
			new Array('Grafico','html','g')
			,new Array('Texto','','t')
			,new Array('Html','chtml','t')
		);
		
		//métodos externos
		this.mostra = mostra;
		this.carrega = carrega;
		this.limpa = limpa;
		this.html = htmlC;
		this.setHtml = setHtml;
		this.cmd = cmd;
		this.sel = sel;
		this.loop = loop;
		this.tag = tag;
		this.clas = clas;
		this.format = format;
		this.arquivo = arquivo;
		this.get = get;
		this.getVal = getVal;
		this.setModo = setModo;
		this.init = init;
		this.mostraFerramentas = true;
		
		//posui entrada alternativa txt?
		//this.txt = false;
		//var formatoTxt = false;
		var mPop,obContext;
		var oDiv = '';
		
		var este = this;
		//***********************************************
		function setHtml(sHtml) {
			oIf.contentWindow.document.body.innerHTML = sHtml;
		}
		//***********************************************
		function init() {
			//objNav(window);
			oDiv = browse.getId(nome+'Div');
			if (vazio(oDiv)) {
				alert('campoHtml.init(): '+nome+'Div id não enconrado...');
				return;
			}
			
			//add barra ferramentas
			oIfD = doc.createElement('div');
			oDiv.appendChild(oIfD);
			this.oIfD = oIfD;
			
			//add iframe
			oIf = doc.createElement('iframe');
			oIf.src = 'javascript:{}';
			oIf.className = 'cHtml';
			oDiv.appendChild(oIf);
			oIfDoc = oIf.contentWindow.document;
			
			//add textarea
			oTx = doc.createElement('textarea');
			oTx.className = 'cHtml';
			oDiv.appendChild(oTx);
			
			this.mostra();
		}
		//***********************************************
		//popup limpa
		function arquivo(o,ev) {
			//lert(o.innerHTML+' '+pos);
			if (mPop && mPop.aberto) {
				mPop.fecha();
				return;
			}
			mPop = new menuPopUp(nome+'Pop','titulo ?');
			browse.getId(nome+'Pop').innerHTML = ''
				+'<p onclick="javascript:'+nome+'.limpa();"'
					+'>Apagar Tudo</p>'
				+'<p onclick="javascript:'+nome+'.html();"'
					+'>'+(!htm?'Ver código HTML':'Visualização Normal')+'</p>'
			;
			mPop.abre(o,null,ev);
		}
		//***********************************************
		//popup Formato
		function format(o,ev) {
			if (mPop && mPop.aberto) {
				mPop.fecha();
				return;
			}
			mPop = new menuPopUp(nome+'Ferram','titulo ?');
			mPop.abre(o,null,ev);
		}
		//***********************************************
		function clas(o,pos,ev) {
			if (typeof(pos)=='string') {
				mPop.fecha();
				vContext[o][2].className = pos;
				obContext = null;
				return;
			}
		
			if (mPop && mPop.aberto) {
				mPop.fecha();
				return;
			}
			
			//monta lista estilos cfrme tag.
			var st = oIf.contentWindow.document.styleSheets, r=new Array();
			for (var i=0;i<st.length;i++) {
				//objNav(st[i]);
				for (var x=0;x<st[i].cssRules.length;x++) {
					var s = st[i].cssRules[x];
					var v = palavraA(trocaTudo(
						troca(s.selectorText,',',' '),'  ',' '),' ');
					for (var y=0;y<v.length;y++) {
						var t = leftAt(v[i],'.').toLowerCase();
						if (v[i].indexOf('.')==-1) {
						} else if (true && t!='' && t!=vContext[pos][0].toLowerCase()) {
						} else {
							t = substrAt(v[i],'.')+' '+t;
							if (ascan(r,t)==-1) {
								r[r.length] = t;
							}
						}
					}
				}
			}
			r.sort(function(a,b){return fSort(a.toLowerCase(),b.toLowerCase())});
			var rs = '<table><tr><td>'
				+'<p onclick='+nome+'.clas('+pos+',"");>(vazio)</p>'
			;
			for (var i=0;i<r.length;i++) {
				if ((i+1)%Math.floor((r.length+1)/2+0.99999)==0) {
					rs += '<td>';
				}
				rs += '<p onclick='+nome+'.clas('
					+pos+',"'+leftAt(r[i],' ')+'");>'+r[i]+'</p>'
				;
			}
			rs += '</table>';
			
			mPop = new menuPopUp(nome+'Pop','titulo ?');
			browse.getId(nome+'Pop').innerHTML = rs;
			mPop.abre(o,null,ev);
		}
		//***********************************************
		function tag(o,pos,ev) {
			if (typeof(pos)=='string') {
				mPop.fecha();
				//lert('mudou para: '+pos);
				oIf.contentWindow.document.execCommand('formatblock', false, pos);
				obContext = null;
				return;
			}
			//lert(o.innerHTML+' '+pos);
			if (mPop && mPop.aberto) {
				mPop.fecha();
				return;
			}
			mPop = new menuPopUp(nome+'Pop','titulo ?');
			browse.getId(nome+'Pop').innerHTML = ''
				+'<p onclick='+nome+'.tag(this,"p");>Parágrafo</p>'
				+'<p onclick='+nome+'.tag(this,"h1");>Título 1</p>'
				+'<p onclick='+nome+'.tag(this,"h2");>Título 2</p>'
				+'<p onclick='+nome+'.tag(this,"h3");>Título 3</p>'
				+'<p onclick='+nome+'.tag(this,"div");>Divisão</p>'
				+'<p onclick='+nome+'.tag(this,"li");>Lista</p>'
				+'<p onclick='+nome+'.tag(this,"li");>Lista Numerada</p>'
			;
			mPop.abre(o,null,ev);
		}
		//***********************************************
		function loop() {
			if (context()) {
				var va = browse.getId(''+nome+'Estilo');
				if (vazio(va)) {
					return;
				}
				va = va.innerHTML;
				var vn = '';
				var pos=0;
				for (var i=0;i<vContext.length;i++) {
					vn = '<span onclick='+nome
							+'.tag(this,'+pos+',event); class=cHtmlTag>'
							+vContext[i][0]+'</span>.'
						+'<span class=cHtmlClass onclick='
							+nome+'.clas(this,'+pos+',event);>'
							+vContext[i][1]+'</span>'
						+' '+vn
					;
					pos++;
				}
				if (va!=vn) {
					browse.getId(''+nome+'Estilo').innerHTML = vn;
				} else {
					//lert('igual e obj #');
				}
			}
			setTimeout(''+nome+'.loop()',1500);
		}
		//***********************************************
		function context() {
			try {
				if (modo[2]!='g') return false;
				var sel;
				if (browse.ie) {
					return false;
					if (oIf.contentWindow.document.selection.type!="None") {
						sel = oIf.contentWindow.document.selection; 
						//.createRange();
						objNav(sel);
						alert('tt');
					}
				} else {
					sel = oIf.contentWindow.getSelection();
				}
				if (vazio(sel)) {
					//provável modo txt
					return false;
				}
				var o = sel.focusNode;
				//.parentNode;
				if (obContext!=null && obContext==o) {
					return false;
				}
				obContext = o;
				vContext = new Array();
				while (!vazio(o) && (!o.tagName || o.tagName.toLowerCase()!='html')) {
					if (!vazio(o.tagName)) {
						vContext[vContext.length] = new Array(
							o.tagName
							,(vazio(o.className)?'?':o.className)
							,o
						)
					}
					o = o.parentNode;
				}
			} catch (e) {
				alert('ERRO contex(): '+e.description);
			}
			return true;
		}
		//***********************************************
		function sel(ob) {
			var sel = oIf.contentWindow.getSelection();
			//lert(sel.focusNode.parentNode.tagName);
			//objNav(sel);
      //var range = sel.getRangeAt(0);
			//lert(range);

			var pos = ob.selectedIndex;
			if (pos!=0) {
				var tag=ob.options[pos].value;
				var cmd = ob.getAttribute('id');
				//tag = 'h1 class="teste"';
				//lert(tag+' '+cmd);
				oIf.contentWindow.document.execCommand(cmd, false, tag);
			}
			oIf.contentWindow.focus();
		}
		//***********************************************
		function cmd(o) {
			var c = leftAt(substrRat(o.src,'/'),'.');//RAT .substring(1);
			//lert(c);
			try {
				oIf.contentWindow.document.execCommand(c, false, null);
			} catch (e) {
				alert('ERRO em cmd='+c+"\n"+e);
			}
			oIf.contentWindow.focus();
		}
		//***********************************************
		function ferramentas() {
			if (!eval(nome+'.mostraFerramentas')) {
				return '';
			}
			//lert('bb1');
			var op = new Array("cut=Recortar"
				,"copy=Copiar"
				,"paste=Colar"
				,"undo=Desfaz"
				,"redo=Refaz"
				,"createlink=Cria Link" 
				,"createimage=Insere Imagem" 
				,"createtable=Insere Tabela"
				,"bold=Negrito"
				,"italic=Itálico"
				,"underline=Sublinhado"
				,"forecolor=Cor da Fonte"
				,"hilitecolor=Cor do Fundo"
				,"justifyleft=Alinha a Esquerda"
				,"justifycenter=Alinha no Centro"
				,"justifyright=Alinha a Direita"
				,"insertorderedlist=Numerar" 
				,"insertunorderedlist=Tópicos" 
				,"outdent=Aumenta margem Esquerda"
				,"indent=Diminui margem Esquerda"
			);
			var r = '<table class=cHtmlFerram id='+nome+'Ferram><tr>';
			//modos
			r += '<td><select onchange='+nome+'.setModo(this);>';
			for (var i=0;i<este.modos.length;i++) {
				r += '<option '+(modo[1]==este.modos[i][1]?'selected':'')+' value='+i+'>'+este.modos[i][0];
			}
			r += '</select></td>';
			if (modo[2]!='g') {
				return r;
			}
			//ferramentas
			for (var i=0;i<op.length;i++) {
				r += '<td><img src="/imagens/edit/'+leftAt(op[i],'=')+'.gif"'
					+' alt="'+substrAt(op[i],'=')+'"'
					+' title="'+substrAt(op[i],'=')+'"'
					+' onclick="'+nome+'.cmd(this);"'
					+'></td>'
				;
			}
			r += ''
				+(false?
					+'<tr><td>'
					+'<table class=cHtmlEstilo><tr>'
						+'<td class=cHtmlPrin>'
						+'<span onclick="javascript:'+nome+'.arquivo(this,event);"'
								+' title="Arquivo" alt="Arquivo">+</span>'
						+'<span onclick="javascript:'+nome+'.format(this,event);"'
							+' title="Formatar" alt="Formatar">Formatar</span>'
						+'</span>'
						+'<td  id='
							+nome+'Estilo><h1>Estilo</h1>'
						+'</table>'
					:'')
				+'</table>'
			;
			return r; 
			//+op.length;
		}
		//***********************************************
		function htmlC() {
			mPop.fecha();
			var v = oIf.contentWindow.document.body.innerHTML;
			if (htm) {
				v =  troca(troca(v,'&lt;','<'),'&gt;','>');
				htm = false;
			} else {
				v = html(v);
				htm = true;
			}
			oIf.contentWindow.document.body.innerHTML = v;
		}
		//***********************************************
		function limpa() {
			mPop.fecha();
			oIf.contentWindow.document.body.innerHTML = '';
		}
		//***********************************************
		//testa se txt
		function txt(ht) {
			if (trimm(ht)=='' || trimm(ht)=='<pre></pre>') {
				return '';
			}
			if (ht.indexOf('<')==-1) {
				return '<pre>'+troca(ht,'&nbsp;',' ')+'</pre>';
			}
			var a = delTag(troca(troca(ht,'\r',''),'\n',' '),'<br','>','\r\n');
			//lert(a);
			if (a.indexOf('<')==-1 && a.indexOf('&nbsp;&nbsp;&nbsp;&nbsp')!=-1) {
				a = '<pre>'+troca(a,'&nbsp;',' ')+'</pre>';
				//lert(a);
				return a;
			}
			return ht;
		}
		//***********************************************
		//deleta tags
		function delTag(ht,ini,fim,tr) {
			if (typeof(tr)=='undefined') {
				tr = '';
			}
			var ht1 = ht.toLowerCase();
			var p,nv=0;
			//lert('loop fim='+fim+' para inicio='+ini+'\n'+ht);
			while ((p=ht1.indexOf(ini))!=-1) {
				if (nv++>1000) {
					alert('loop fim='+fim+' para inicio='+ini);
					return ht;
				}
				var p1 = ht1.indexOf(fim,p+ini.length);
				if (p1 == -1) {
					alert('não achei fim='+fim+' para inicio='+ini);
					return ht;
				}
				ht = ht.substring(0,p)+tr+ht.substring(p1+fim.length);
				ht1 = ht.toLowerCase();
			}
			return ht;
		}
		//***********************************************
		//retorna o valor
		function getVal() {
			return get();
		}
		//***********************************************
		//retorna o valor
		function get() {
			var ht;
			if (modo[2]=='t') {
				ht = oTx.value;
			} else {
				ht = oIf.contentWindow.document.body.innerHTML;
				ht = delTag(ht,'<head','</head>');
				ht = delTag(ht,'<title','</title>');
				ht = delTag(ht,'<script','</script>');
				ht = delTag(ht,'<style','</style>');
				ht = delTag(ht,'<meta','>');
				ht = delTag(ht,'<base','>');
				ht = delTag(ht,'<link','>');
				ht = delTag(ht,'_base_href="','"');
				ht = delTag(ht,'<body','>');
				ht = delTag(ht,'</body','>');
				ht = delTag(ht,'<html','>');
				ht = delTag(ht,'</html','>');
				ht = troca(ht,"\t",' ');
				ht = troca(ht,"\r",'');
				ht = trimm(ht);
				ht = txt(ht);
			}
			return (vazio(modo[1])?'':'{'+modo[1]+'}')+ht;
		}
		//***********************************************
		//pega do iframe e coloca no campo hidden
		function carrega() {
			ht = get();
			//lert('carrega'+oCm.name+'   =='+ht);
			if (oCm) {
				oCm.value = ht;
			} else {
				alert('não achei o campo pra preencher...');
			}
		}
		//***********************************************
		function setModo(Modo,vlr) {
			//ebJ(this.txt+' '+modo);
			var modoAA = modoA;
			modoA = modo;
			var va = nulo(vlr)?get():vlr;
			if (typeof(Modo)=='object') {
				modo = this.modos[Modo.value];
				//lert(modo);
				//return;
			} else {
				var m = '?';
				for (var i=0;i<este.modos.length;i++) {
					if (este.modos[i][1]==Modo) {
						m = Modo;
						modo = este.modos[i];
						break;
					}
				}
				if (m=='?') {
					alert('Setar modo "'+Modo+'" é inválido...');
					return;
				}
			}
			//formato = modo;
			//formatoTxt = modo!='grafico';
			if (modo[2]=='g') {
				browse.esconde(oTx);
				if (!modoAA) {
					//carrega valor inicial...
					oIf.contentWindow.document.body.innerHTML = este.valCSS+vlr;
				} if (modoA[1]=='' && (modo[1]=='html' || modo[1]=='chtml')) {
					oIf.contentWindow.document.body.innerHTML = este.valCSS+
						'<p>'+troca(troca(va,'\r',''),'\n','</p>\n<p>')+'</p>'
					;
				} else if (modoA[1]=='chtml' && modo[1]=='html') {
					oIf.contentWindow.document.body.innerHTML = este.valCSS+oTx.value;
				}
				browse.mostra(oIf);
			} else {
				browse.esconde(oIf);
				if (!modoAA) {
					oTx.value = vlr;
				} if (modo[1]=='' && (modoA[1]=='chtml' || modoA[1]=='html')) {
					oTx.value = htmlTxt(oIf.contentWindow.document.body);
				} else if (modoA[1]=='html' && modo[1]=='chtml') {
					oTx.value = delTag(delTag(oIf.contentWindow.document.body.innerHTML,'<link','>'),'<base','>');
				} else if (modoA[1]=='' && modo[1]=='chtml') {
					oTx.value = '<p>'+troca(troca(va,'\r',''),'\n','</p>\n<p>')+'</p>';
				} else if (false && vazio(oTx.value) 
					&& !vazio(oIfDoc.body.innerHTML)
					&& confirm('Copiar do HTML?')) {
					oTx.value = oIfDoc.body.innerHTML;
				}
				browse.mostra(oTx);
			}
			oIfD.innerHTML = ferramentas();
			//lert(oIfD.innerHTML);
			return;
		}
		//***********************************************
		//retorna valor e seta editável o iframe
		function mostra() {
			//define o modo conforme o valor
			var modosPrim = new Array();
			modo = false;
			var m = equals(valor,'{')?substrAtAt(valor,'{','}'):'';
			for (var i=0;i<este.modos.length;i++) {
				//lert(este.modos[i][2]);
				modosPrim[este.modos[i][2]] = este.modos[i][1];
				if (este.modos[i][1]==m) {
					valor = substrAt(valor,'}');
					modo = este.modos[i];
				}
			}
			if (!modo) {
				alert('não achei modo='+m+' para '+valor);
				modo = este.modos[0];
			}
		
			//procura o CAMPO escondido no FORM...
			oCm = browse.getId(nome+'InH');
			if (vazio(oCm)) {
				try {
					oCm = document.__formul['_'+nome+'_'];
				} catch (e) {
					//lert('não encontrei cmp '+'_'+nome+'_');
				}
			}
			
			//tornar editável
			try {
				oIf.contentWindow.document.designMode = "on";
			} catch (e) {
				if (confirm('ERRO tornando editável...\n\nTentar novamente em 2 segundos? ')) {
					//ebJ('e='+e);
					setTimeout(nome+'.mostra();',2000);
					return;
				}
				alert('cancelado...');
				return;
			}
			
			try {
				oIf.contentWindow.document.execCommand("useCSS", false, true);
			} catch (e) {
				//bjNav(e);
				if (!browse.ie) {
					debJ('err useCSS='+e.description);
				}
			}
			
			//poe body e stylesets
			if (true || modo[2]=='g') {
				var bs = leftRat(leftRat(''+win.location,'?')+'?','/');
				//carrega os CSS
				var cs = '';
				var st = win.document.styleSheets;
				for (var i=0;i<st.length;i++) {
					//objNav(st[i]);
					if (right(st[i].href,4).toLowerCase()=='.css') {
						cs += '<LINK REL="StyleSheet" HREF="'
							+st[i].href+'">';
					}
				}
				//lert(st.length+' = '+cs+' l='+win.document.location);
				este.valCSS = '<BASE href="'+bs+'/">'+cs;
			}
			
			//troca modos p/compatib firefox3
			if (modosPrim['t']) {
				var modoK = modo;
				setModo(modosPrim['t'],valor);
				modo = modoK;
			}
			setModo(modo[1],valor);
			
			//vigia
			loop();

			if (typeof(fD)=='object') {
				//ert('setando evento form var javascript');
				fD.onSubmit[fD.onSubmit.length] = ''+nome+'.carrega();';
			}
			
			//resize("tabPag");

			return;
		}
	}
	//*******************************
	// fim campoHTML
	//*******************************







	//***********************************************
	//  permite ordenar uma tabela html
	var tabDadosV = new Array();
	function tabDados(Ob,Ev) {
		if (Ob.getAttribute('tabDados')) {
			//lert('ja init...');
			return;
		}
		Ob.setAttribute('tabDados','1');
		var c = ms();
		var nome = 'tabDadosV['+c+']';
		tabDadosV[c] = this;
		var vc = Ob.getElementsByTagName('th');
		var ob = getParentByTagName(Ob,'table');
		//var ev = Ev;
		var doc = document;
		var tc,tt,sortT=0;
		
		this.init = init;
		this.sort = sort;
		
		setTimeout(nome+'.init()',200);
		//***********************************************
		function html1() {
		}
		//***********************************************
		function sort(p) {
			tt=0;
			tc=0;
			var m = ob.getElementsByTagName('tr');
			var lo = 1;
			var hi = m.length-1;
			var inv = false;
			//lert(hi);
			sortT = vc[p].getAttribute('dtype');
			sort1(p,m,inv,lo,hi);
			//lert('tt='+tt+' tc='+tc);
		}
		//***********************************************
		function sortV(el,p) {
			if (sortT=='n') {
				return 1*el.childNodes.item(p).innerHTML;
			}
			return el.childNodes.item(p).innerHTML;
		}
		//***********************************************
		function sort1(p,m,inv,lo0,hi0) {
			var lo=lo0;
			var hi=hi0;
			if ( !(hi0 > lo0) ) {
				return;
			}
			//var v = m[ inteiro(( lo0 + hi0 ) / 2) ].childNodes.item(p).innerHTML;
			var v = sortV(m[ inteiro(( lo0 + hi0 ) / 2) ],p);
			while( lo <= hi ) {
				tt++;
				if (!inv) {
					while( lo<hi0 && v > sortV(m[lo],p) ) ++lo;
					while( hi>lo0 && v < sortV(m[hi],p) ) --hi;
				} else {
					while( lo<hi0 && v < m[lo].childNodes.item(p).innerHTML ) ++lo;
					while( hi>lo0 && v > m[hi].childNodes.item(p).innerHTML ) --hi;
				}
				if( lo <= hi ) {
					tc++;
					for (var i=0;i<m[lo].childNodes.length;i++) {
						var v1 = m[lo].childNodes.item(i).innerHTML;
						m[lo].childNodes.item(i).innerHTML = m[hi].childNodes.item(i).innerHTML;
						m[hi].childNodes.item(i).innerHTML = v1;
					}
					++lo;
					--hi;
				}
			}
			if( lo0 < hi )
				sort1(p,m,inv,lo0,hi);
			if( lo < hi0 )
				sort1(p,m,inv,lo,hi0);
		}
		//***********************************************
		function init() {
			var v = document.getElementsByTagName('th');
			for (var i=0;i<v.length;i++) {
				var c = doc.createElement('span');
				c.innerHTML = ' <a href=javascript:'+nome+'.sort('+i+');>?</a>';
				v[i].appendChild(c);
			}
			//lert('fim init');
		}
	}
	//***********************************************
	// 
	function abas(Nome,Doc) {
		var doc = nulo(Doc)?document:Doc;
		var nome = Nome;
		var vAbas = new Array();
		var oTab,oTabCont;
		var nTabAtual = -1;
		this.add = add;
		this.obj = obj;
		this.sel = sel;
		//***********************************************
		function html1() {
		}
		//***********************************************
		function sel(n) {
			if (typeof(n)!='number') {
				var ev = n;
				n = targetEvent(n).getAttribute('cod');
			}
			//+' '+targetEvent(n).getAttribute('cod')+' '+ev);
			
			if (nTabAtual==n) {
				return;
			} else if (ev && ev.ctrlKey) {
				return;
			}
			if (nTabAtual>-1) {
				browse.esconde(vAbas[nTabAtual].objD);
				//estiloAddDel(vAbas[nTabAtual].objT,'abasOn',false);
				vAbas[nTabAtual].objT.className = 'abasOff';
			}
			nTabAtual = n;
			var o = vAbas[nTabAtual];
			browse.mostra(o.objD);
			//estiloAddDel(vAbas[nTabAtual].objT,'abasOn',true);
			vAbas[nTabAtual].objT.className = 'abasOn';
			//tem q carregar?
			if (nulo(o.html)) {
				var x = new carregaUrl();
				x.abre(o.url,vAbas[nTabAtual].objD);
			}
		}
		//***********************************************
		function obj() {
			var t = vAbas.length;
			oTab = doc.createElement('table');
			oTab.className = 'abas abas_'+nome;
			//linha coluna do conteudo
			var ls = doc.createElement('tr');
			oTabCont = doc.createElement('td');
			oTabCont.className = 'abasCont';
			oTabCont.setAttribute('colspan',''+(t*2-1));
			ls.appendChild(oTabCont);
			//linha do cab
			var l = doc.createElement('tr');
			for (var i=0;i<t;i++) {
				var v = vAbas[i];
				//add aba
				v.objT = doc.createElement('th');
				//v.objT.onclick = new Function(nome+'.sel('+i+',event)');
				v.objT.onclick = this.sel;
				v.objT.setAttribute('cod',i);
				v.objT.title = v.title;
				v.objT.width = (94/t)+'%';
				v.objT.className = 'abasOff';
				v.objT.innerHTML = v.nome;
				if (i!=0) {
					var aa = doc.createElement('td');
					aa.width = (6/(t-1))+'%';
					aa.className = 'abasEsp';
					l.appendChild(aa);
				}
				l.appendChild(v.objT);
				//add conteudo
				v.objD = doc.createElement('div');
				browse.esconde(v.objD);
				if (nulo(v.html)) {
					//debJ(v.url);
				} else if (typeof(v.html)!='string') {
					browse.mostra(v.html);
					v.objD.appendChild(v.html);
				} else {
					v.objD.innerHTML = v.html;
				}
				oTabCont.appendChild(v.objD);
			}
			//add linhas tab
			oTab.appendChild(l);
			oTab.appendChild(ls);
			setTimeout(nome+'.sel(0);',100);
			return oTab;
		}
		//***********************************************
		function add(abaOp) {
			vAbas[vAbas.length] = abaOp;
		}
	}
	
	//***********************************************
	function abasOp(Nome,Html,Title,Url) {
		this.nome = Nome;
		this.html = Html;
		this.title = Title;
		this.url = Url;
	}
	//***********************************************
	function objLimpa(o) {
		while (o.childNodes.length!=0) {
			o.removeChild(o.firstChild);
		}
	}

	//*********************************
	// OBJETO imagem POPUP janela baseada miniatura
	//*********************************
	function imagePopUpMin(img,url) {
		var w = img.width;
		var h = img.height;
		//abre com a miniatura
		this.win = window.open('about:blank'
			,''
			,'toolbar=no,width='+(w+30)+',height='+(h+80)
		);
		this.win.document.write('<html><head><title>'+url+'</title></head>'
			+'<body>'
			+'<p id="cnt">Carregando. . .</p>'
			+'<img src="'+img.src+'">'
			+'</body>'
			+'</html>'
		);
		
		//carrega full
		this.img = new Image();
		this.img.src = escape(url);
		
		this.load = load;
		objImagePopUp = this;
		setTimeout('objImagePopUp.load()',500);

		//*********************************
		function load() {
			var img = this.img;
			var w = img.width;
			var h = img.height;
			var p = browse.getId('cnt',this.win.document);
			p.innerHTML += ' .';
			if (w<1 || h<1) {
				setTimeout('objImagePopUp.load()',200);
				return;
			}
			
			var tw = screen.availWidth*0.8;
			var th = screen.availHeight*0.8;
			if (w>tw || h>th) {
				var d = Math.max(w/tw,h/th);
				w /= d;
				h /= d;
			}
			var win = window;
			wf =	w;//*1.1; //-win.document.body.clientWidth;
			hf = h*1.06; //-win.document.body.clientHeight;
			//lert('fim '+wf+' '+hf);
			if (true) {
				this.win.close();
				this.win = window.open('about:blank'
					,''
					,'toolbar=no,width='+(wf*1.03)+',height='+(hf)
				);
				this.win.document.write('<html><head><title>'+url+'</title></head>'
					+'<body aonresize=alert("resize"); style="margin:0;">'
					+'<a href=>slid</a>'
					+'<iframe style="border:0;width:'+wf+'px;height:'+hf+'px;" src="'+img.src+'">'
					+'</iframe>'
					+'</body></html>'
				);
			} else if (true) {
				this.win.close();
				this.win = window.open(img.src
					,''
					,'toolbar=no,width='+(wf)+',height='+(hf)
				);
			} else {
				this.win.location = img.src;
				this.win.resizeTo(wf,hf);
			}
		}
	}


	/***************************************************
	//retorna o obj que contem o script
	var contextJS_v = Array();
	function contextJS(minhaMarca) {
		var v = document.getElementsByTag('script');
		alert(v.length());
	}
	*/
	
	//***************************************************
	//
	function getElementsByAttr(obj,nome,val,arr) {
		if (nulo(arr)) {
			arr = new Array();
		}
		try {
			var v = obj.getAttribute(nome);
		} catch (e) {
		}
		if (v && (nulo(val) || v==val) ) {
			debJ('achei...: '+obj.tagName+' '+v);
			arr[arr.length] = obj;
		}
		if (obj.childNodes && obj.childNodes.length>0) {
			for (var i=0;i<obj.childNodes.length;i++) {
				getElementsByAttr(obj.childNodes.item(i),nome,val,arr);
			}
		}
		return arr;
	}
	//***************************************************
	//
	function getParentByTagName(o,nome) {
		nome = nome.toUpperCase();
		while ((o=o.parentNode) && o.tagName.toUpperCase()!=nome);
		return o;
	}
	//***************************************************
	//monta cod barra
	function cepBarra(cp) {
		var v = new Array('11000','00011','00101','00110','01001','01010','01100','10001','10010','10100');
		var l1 = '<tr>',l2=l1;
		for (var i=0;i<cp.length;i++) {
			var c = cp.substring(i,i+1);
			var m = '';
			if (c=='/') {
				m = '1';
			} else if (c>='0' && c<='9') {
				m = v[1*c];
			}
			for (var x=0;x<m.length;x++) {
				c = m.substring(x,x+1);
				l1 += '<td'+(c=='1'?' class=preto':'')+'><td>';
				l2 += '<td'+(c!='e'?' class=preto':'')+'><td>';
			}
		}
		return '<table class=cepBarra>'+l1+l2+'</table>';//+html(cp);
	}
	//***************************************************
	function campoCepCB(a,b) {
		//span cepBarra
		if (vazio(a)) {
			setTimeout('campoCepCB(1)',1000);
			return;
		}
		var v = document.getElementsByTagName('span');
		for (var i=0;i<v.length;i++) {
			var o = v[i];
			if (o.className=='cepBarra') {
				o.innerHTML = cepBarra(o.innerHTML);
			}
		}
	}
	
	//***************************************************
	//mapa google
	function mapaGoogl(mun,end) {
		//lert(mun,end);
		end = leftRat(end,' -').toLowerCase();
		if (equals(end,'r ')) {
			end = 'rua '+substrAt(end,' ');
		} else if (equals(end,'pc ')) {
			end = 'praça '+substrAt(end,' ');
		} else if (equals(end,'av ')) {
			end = 'avenida '+substrAt(end,' ');
		} else if (equals(end,'ac ')) {
			end = 'acesso '+substrAt(end,' ');
		}
		if (end.indexOf('(')!=-1 && end.indexOf(')')!=-1) {
			end = trimm(leftAt(end,'('))+' '+trimm(substrAt(end,')'));
		}
		window.open('http://maps.google.com/maps?f=q&hl=pt-BR&geocode=&q='+end+' - '+mun,'_blank');
	}
	
	
	//***************************************************
	//navega registros
	function abreDad(a,ev) {
		if (ev.ctrlKey) return;
		//lert(a);
		var v = palavraA(a,'.');
		var p = new pedido();
		p.put('op','campo');
		p.put('__campo',v[1]);
		p.put('__tabela',v[0]);
		p.put('_C_'+v[0]+'_',v[2]);
		p.put('cod',v[3]);
		p.put('menu','0');
		//lert(p.atalho());
		var j = new winDep(window,p.atalho());
		j.w = 500;
		j.h = 500;
		j.abre();
	}
	//***************************************************
	//navega registros
	function navReg(p,cm,a) {
		if (typeof(p)=='string') {
			if ('VA'.indexOf(a)==-1 || (new pedido()).get('popUp')) {
				return;
			}
			document.write(
				'<table class=navReg><tr>'
					+'<td onclick="navReg('+p+',-9,\''+cm+'\');" class="navReg botao"><<</td>'
					+'<td onclick="navReg('+p+',-1,\''+cm+'\');" class="navReg botao"><</td>'
					+'<td class="navReg botao navRegA">'+format(p,0)+'</td>'
					+'<td onclick="navReg('+p+',1,\''+cm+'\');"  class="navReg botao">></td>'
					+'<td onclick="navReg('+p+',9,\''+cm+'\');" class="navReg botao">>></td>'
				+'</tr></table>'
				
			);
			return;
		}
		var p1 = new pedido();
		p1.set('__navReg',cm);
		p1.set('_'+a+'_',p);
		//lert(p1.atalho());
		window.location = p1.atalho();
	}


	//***************************************************
	//gera rel em documento sxw pdf 
	function imprPdf(tipo,ob,txt) {
		var bot = document.getElementById('botPdf'); //browse.getId('botPdf');
		if (!vazio(txt)) {
			//relatorio concluido?
			bot.setAttribute('imprPdf','');
			if (txt.indexOf('window.location')==-1) {
				alert('erro gerando o relatório..'+txt);
				return;
			}
			txt = substrAtAt(substrAt(txt,'window.location'),"'","'");
			bot.innerHTML = '<div class=imprPdf>* <a href='+txt+'>Baixar</a> *</div>';
			//lert(txt);
			window.location = txt;
			return;
		} else if (tipo=='a') {
			//lert('time out');
			var v = ''+bot.getAttribute('imprPdf');
			if (v.indexOf('=')==-1) {
				return;
			}
			v = leftAt(v,'=');
			//lert(v[0]);
			bot.innerHTML = '<div class=imprPdf>Aguarde '+inteiro((ms()-v)/1000)+'</div>';
			imprPdfTM = setTimeout('imprPdf("a")',100);
			return;
		}
		var url=''+window.location;
		if (!vazio(tabRelUrl)) {
			url=tabRelUrl;
		}
		opImprMenu.fecha();
		tabRelUrl=null;
		var tb='12';
		if (!vazio(tabRel)) {
			tb = tabRel.rows;
			tb = imprPdf1(tb.item((tb.length<5?tb.length-1:4)).cells);
		}
		url += '&__hostHRef='+hostHRef()+'&obj=1&menu=-1&__pdfCols='+tb+'&_ver='+tipo+'&__etq='+etq;
		var selI = browse.getId('selIndividual');
		if (!vazio(selI)) {
			var s =selI.innerHTML;
			if (s.length<1) {
				alert('Seleção individual, nada selecionado..');
				return;
			}
			url += '&selIndividualCod='+s;
		}
		
		bot.setAttribute('imprPdf',new Array(ms()+'='+bot.innerHTML));
		imprPdfTM = setTimeout('imprPdf("a")',100);
		//window.open(url,'_blank');return;
		var x = new carregaUrl();
		x.abre(url,'imprPdf');
		//lert(bot);
		
		//objNav(bot);

		/*var j = new winDep(window,url);
		j.w=200;j.h=40;
		j.tipo = 2;
		j.abre();
		*/
	}
	
	//***************************************************
	//seleção individual
	function selIndividual(cod,ob) {
		//lert(typeof(cod));
		var od = browse.getId('selIndividual');
		if (!vazio(od)) {
			var inv = equals(od.innerHTML,'-');
			var sel = ','+trimm(od.innerHTML,',-')+',';
		}
		if (typeof(cod)=='number') {
		  //marcar ou desmarcar codigo
			if (sel.indexOf(','+cod+',')==-1) {
				estiloAddDel(ob,'selIndividualS',!inv) ;
				sel += cod+',';
			} else {
				estiloAddDel(ob,'selIndividualS',inv) ;
				sel = troca(sel,','+cod+',',',');
			}
			sel = ','+trimm(sel,',')+',';
			od.innerHTML = (inv?'-':'')+sel;
			//lert(s);
			return;
		} else if (typeof(cod)=='boolean') {
			//seleciona/des todos
			inv = !inv;
			od.innerHTML = (inv?'-':'');
			selIndividual('','');
			ob.innerHTML = (inv?'Desmarcar todos':'Marcar todos');
			return;
		} else if (vazio(cod)) {
			// quando muda de página entra aqui e negrita os já selec
			var v = browse.getId('tabConsulta').getElementsByTagName('p');
			//var sel = browse.getId('selIndividual').innerHTML;
			//var inv = equals(sel,'-');
			//lert('inv='+inv);
			for (var i=0;i<v.length;i++) {
				var e = v[i];
				if (e.className.indexOf('selIndividual')!=-1) {
					var c = substrAtAt(''+e.onclick,'al(',',');
					if ((sel.indexOf(','+c+',')!=-1 && !inv) || (sel.indexOf(','+c+',')==-1 && inv)) {
						estiloAddDel(e,'selIndividualS',true) ;
					} else {
						estiloAddDel(e,'selIndividualS',false) ;
					}
					//estiloAddDel(e,'selIndividualS',sel.indexOf(','+c+',')!=-1 && !inv);
				}
			}
			return;
		}
		
		//ativa / desativa seleção individual
		var p= new pedido();
		if (vazio(od)) {
			p.put('selIndividual',',');
			p.put('pg',0);
		} else {
			if (od.innerHTML!=',') {
				if (!confirm('Perder seleção individual atual?')) {
					return;
				}
			}
			p.remove('selIndividual');
		}
		window.location = p.atalho();
	}
	
	//******************************
	// seta cookie para o servidor gravar e excluir
	function desvRel(strCmp) {
		//lert(strCmp);
		var p = new pedido();
		var p1 = new pedido(strCmp);
		var v = p1.getV();
		for(var prop in v) {
			p.put(prop,v[prop]);
		}
		p.put('menu','0');
		var w = window.open(p.atalho(),'_blank','toolbar=no,width=700,height=400,scrollbars=yes');
		//objNav(w);
		//lert('ok');
		//setTimeout("w.resize('__tabRel')",2000);
	}
	
	//*********************************
	function carregaObj(url,id,id1) {
		//lert('url='+url);
		var x = new carregaUrl();
		x.carregaObj(url,id,id1);
	}
	//*********************************
	function carregaUrl() {
		var eu;
		this.url = '';
		this.abre = abre;
		this.carregaObj = carregaObj;
		this.js = js;
		var xmlhttp=false;
		xmlhttp = false;
		if (!browse.ie) {// && typeof(XMLHttpRequest)!='undefined') {
			try {
					xmlhttp = new XMLHttpRequest();
			} catch (e) {
					xmlhttp=false;
			}
		} else  { //if (!xmlhttp && window.createRequest) {
			try {
					var b=true?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";
					xmlhttp = new ActiveXObject(b);
					//lert("criou request ms IE ="+xmlhttp);
			} catch (e) {
					xmlhttp=false;
			}
		}
		if (!xmlhttp) {
			alert('erro criando obj httpREQ');
		}
		this.httpReq = xmlhttp;
		//*********************************
		//executa os javaScript do obj
		function js(obj) {
			var t = obj.getElementsByTagName('script');
			for (var i=0;i<t.length;i++) {
				//lert(t[i].innerHTML);
				try {
					eval(t[i].innerHTML);
				} catch (e) {
					alert('ajax erro: '+e+'\n em javaScript:\n '+troca(t[i].innerHTML,';',';\n'));
				}
			}
		}
		//*********************************
		function carregaObj(url,id,id1) {
			this.idObj = id;
			this.idObj1 = id1;
			this.abre(url);
		}
		
		//*********************************
		function abre(url,funcRet) {
			this.funcRet = funcRet;
			this.url = url;
			this.method = 'get';
			this.dados = null;
			if (this.form) {
				//url vazio
				this.url = vazio(this.url)?this.form.action:this.url;
				//lert(this.url+' a='+this.form.action);
			
				//monta string
				var t1 = '';
				for (var i=0;i<this.form.elements.length;i++) {
					var o = this.form.elements.item(i);
					var v = troca(escape(trimm(o.value)),'+','%2B');
					if (o.type=='checkbox') {
						v = o.checked?'on':'';
					}
					t1 += '&'+o.name+'='+v;
				}
				t1 = t1.substring(1); //+'&lixo=1';
				
				//GET ou POST
				if (this.form.method && this.form.method.toLowerCase()=='post') {
					this.method = 'post';
					this.dados = t1;
				} else {
					this.url += this.url.indexOf('?')==-1?'?'+t1:'&'+t1;
				}
				if (this.debug) {
					alert('ajax: m='+this.method+'\n url='+this.url+'\n'+troca(''+this.dados,'&','\n'));
				}
			}
			
			//monta PEDIDO
			this.httpReq.open(this.method,this.url,true);
			this.httpReq.onreadystatechange=recebe;
			this.httpReq.setRequestHeader('encoding','ISO-8859-1'); 
			if (this.method=='post') {
				this.httpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				this.httpReq.setRequestHeader('Content-length', this.dados.length );
			}
			if (browse.ie) {
				this.httpReq.setRequestHeader('Cookie', document.cookie);
				//lert(document.cookie);
			}

			//guarda EU
			eu = this;
			
			//envia PEDIDO
			this.httpReq.send(this.dados);
			return true;
		}
		//*********************************
		function recebe() {
			//lert('rec'+this);
			//ebJ(eu);
			var funcRet = eu.funcRet;
			var hR =  eu.httpReq;
			var fR = funcRet;
			var oId = eu.idObj; //coloca objeto num id
			var id1 = eu.idObj1; //pega os dados de outro id
			var th = eu;			
			var XX = hR.readyState;
			if (XX==4) {
					XR = hR.responseText;
					//joga resultado em ID?
					if (oId) { //sim
						var oDest = browse.getId(oId);
						//pega result dentro de ID?
						if (vazio(id1)) { //nao
							// id destino é FUNC
							if (equals(oId,'&')) { //sim
								var id = substrAt(oId,'~');
								eval(leftAt(oId.substring(1),'~')+'(id,hR.responseText);');
							} else {
								oDest.innerHTML = (hR.responseText);
								th.js(oDest);
							}
						} else { //pega result dentro de ID
							var o = document.createElement("div");
							oDest.innerHTML = hR.responseText;
							var o1 = browse.getId(id1,o);
							oDest.innerHTML = o1.innerHTML;
							th.js(oDest);
						}
					} else if (funcRet) { //chama funcao ou addChild
						if (typeof(funcRet)=='object') {
							funcRet.innerHTML = XR;
						} else if (funcRet.indexOf('()')!=-1) {
							eval(troca(funcRet,'()','(XR)'));
						} else {
							eval(funcRet+'('+XX+',th,XR)');
						}
					}
			} else {
				//ebJ('xx='+XX);
			}
		}
	}


	//******************************
	var cookDel = '~:';
	//******************************
	// seta values dos inputs cfrme cookie
	function prefGet(id,resp) {
		if (vazio(raizWeb)) {
			alert('raizWeb vazia...');
			return;
		}
		var c = cookieGet('set_'+classeWeb);
		if (!vazio(resp)) {
			c = resp.httpReq.responseText;
			//lert(c);
			//objNav(resp);
			if (vazio(c)) {
				c = cookDel;
			}
			id = resp.obj1;
			if (vazio(id)) {
				//lert('vaz');
				//objNav(resp);
				return;
			}
		} else if (vazio(id)) {
			id = document;
		} else {
			id = browse.getId(id);
		}
		
		//lert('prefGet c='+c);
		if (vazio(c)) {
			//ebJ('vazio c');
			//carrega prefs
			var x = new carregaUrl();
			x.obj1 = id;
			x.abre(raizWeb+classeWeb+'.class?op=pref&raiz=/'+id.id,'prefGet');
			return;
		}
		var v = new Array('input','select');
		for (var i=0;i<v.length;i++) {
			var ve = id.getElementsByTagName(v[i]);
			for (var x=0;x<ve.length;x++) {
				var e = ve[x];
				//lert(e.onchange);
				if ((e.onchange && (''+e.onchange).indexOf('prefSet')!=-1)
					|| (e.onblur && (''+e.onblur).indexOf('prefSet')!=-1)) {
					if (c.indexOf(cookDel+e.name+'=')!=-1) {
						e.value = substrAtAt(c,cookDel+e.name+'=',cookDel);
					} else {
						//e.value = '(vazio)';
					}
				}
			}
		}
	}
	
	//******************************
	// seta cookie para o servidor gravar e excluir
	function prefSet(nome,valor,atualizar) {
		if (nulo(atualizar)) {
			//lert('atu');
			atualizar = true;
		}
		if (!vazio(valor)) {
			if (typeof(valor)=='object') {
				valor = valor.value;
			}
		} else {
			if (typeof(nome)=='object') {
				valor = nome.value;
				//nome com o nome do form?
				//objNav(nome);
				nome = (nome.form && nome.form.id?nome.form.id+'.':'')+nome.name;
				//lert(nome);
			} else {
				valor = substrAt(nome,'=');
				nome = leftAt(nome,'=');
			}
		}
		//lert('pref set: '+nome+'='+valor);
		
		//cookie
		var chC = 'set_'+classeWeb;
		var c = cookieGet(chC);
		if (vazio(c)) {
			c = cookDel;
		}
		//monta novo valor
		var pr = nome+'='+valor;
		var p = c.indexOf(cookDel+nome+'=');
		if (p==-1) {
			cn = c+pr+cookDel;
		} else {
			cn = c.substring(0,p+1)+pr+cookDel+substrAt(c.substring(p+cookDel.length),cookDel);
		}
		//lert(pr+'\n\n'+troca(cn,cookDel,' :'));
		//lert(chC+' = '+cn);
		cookiePut(chC,cn,0);
		//GRAVA - 
		if (atualizar) {
			var x = new carregaUrl();
			x.abre(leftAt(window.location+'?','?')+'?op=pref&raiz=','prefGet');
		} else {
			//ebJ(chC+' '+cn);
		}
	}
	//******************************
	// seta cookie para o servidor gravar e excluir
	function setarPrefs(nome,valor) {
		return prefSet(nome,valor);
	}
	//FIM*************************************
	
	//*********************************
	// um table td on click controla qual parte do doc a ver
	function menuOpDivR(pai) {
		//ebJ('o='+pai);
		var idM = pai.getAttribute('idM');
		if (!vazio(idM)) {
			var o = browse.getId(idM);
			if (!vazio(o)) {
				browse.esconde(o);
			} else {
				alert('Não encontrei id com o attrib idM da tag atual='+idM);
			}
		} else if (!vazio(pai.childNodes)) {
			for (var i=0;i<pai.childNodes.length;i++) {
				if (pai.childNodes.item(i).getAttribute) {
					menuOpDivR(pai.childNodes.item(i));
				}
			}
		}
		return;
	}
	//*********************************
	// um table td on click controla qual parte do doc a ver
	function menuOpDiv(ob) {
		//objNav(ob);
		
		//procura o pai com classe igual nome desta func
		var i=0;
		var o = ob;
		while ((' '+o.parentNode.className+' ').indexOf(' menuOpDiv ')==-1) {
			i++;
			o = o.parentNode;
			if (i>30) {
				alert('Não encontrou até 30 vezes..');
				return;
			}
		}
		var objPai = o.parentNode;
		//objNav(objPai);
		//return;
		
		//esconde todos os filhos que tem o onclick com o nome
		menuOpDivR(objPai);
		
		var om = browse.getId(ob.getAttribute('idM'));
		if (!vazio(om)) {
			browse.mostra(om);
			om.style.position = 'relative';
			//objNav(om);
			//browse.esconde(om);
			//browse.mostra(om);
		} else {
			alert('Não encontrei id='+om);
		}
		
	}
	
	//*********************************
	// um radio controla qual parte do doc a ver
	// 3 param:  tag, nome, valor
	function divRadio(ob,nome) {
		var t = 0;
		var tag = ob;
		var valor;
		if (vazio(nome)) {
			t = 1;
			var tag = ob.tagName;
			nome = ob.name;
			valor = ob.value;
		}
		//lert(nome);
		var x = document.getElementsByTagName(tag);
		for (var i=0;i<x.length;i++)	{
			var j = x[i];
			if ( j.name == nome ) {
				var d = browse.getId(j.value);
				if (!vazio(d)) {
					if ( (t==0 && j.checked) || valor == j.value ) {
						//objNav(j);
						browse.mostra(d);
					} else {
						browse.esconde(d);
					}
				} else {
					alert('id não existe '+j.value);
				}
			}
		}
	}
	//*********************************
	// retorna html radio
	// vetor texto,valor
	function radio(nome,valor,arr,del) {
		if (vazio(del)) {
			del = " ";
		}
		var r = '';
		for (var i=0;i<arr.length;i++) {
			r += '<input type="radio" name="'+nome+'" '+(valor==arr[i][0]?"checked":"")
				+' value="'+arr[i][1]+'">&nbsp;'
				+arr[i][0]+del;
		}
		return r;
	}
	
	//*********************************
	function form(str) {
		var v = palavraA(str,'<br>');
		var t = '';
		for (var i=0;i<v.length;i++) {
			var l = v[i];
			if (leftAt(l,'<').indexOf(':')!=-1) {
				var ii = substrAt(l,':');
				if (ii.indexOf('hidden')==-1) {
					t += '<p class=formRot>'+leftAt(l,':')+':</p>'
						+'<p class=formInp>'+ii+'</p>'
					;
				} else {
					t += ii;
				}
			} else {
				t += '<p class=formLin>'+l+'</p>';
			}
		}
		return t;
	}
	
	//*********************************
	function debJ(str) {
		var jan = browse.getId('debJ');
		if (vazio(jan)) {
			var jan = document.createElement("div");
			jan.className = 'debJ';
			jan.id = 'debJ';
			jan.innerHTML = '';
			document.body.appendChild(jan);
		}
		jan.innerHTML = ((''+str).indexOf('<')==-1?'<p>'+str+'</p>':str) 
			+'<hr>'+ jan.innerHTML;
	}

	//*********************************
	function valMail(o) {
		//objNav(o);
		var em = o.value;
		em = tiraAcentos(em);
		if (em.indexOf('<')!=-1) {
			em = substrAt(em,'<');
		}
		if (em.indexOf('>')!=-1) {
			em = leftAt(em,'>');
		}
		while (em.indexOf('"')!=-1) {
			em = substrAt(em,'"');
		}
		em = trimm(troca(em,' ',''));
		if (em!=o.value) {
			o.value = em;
			//lert(em);
		}
		var v1 = palavraA(em,'@');
		if (em.length<8 || v1.length!=2 || v1[0].length<1 || v1[1].length<4 ) {
			return false;
		}
		
		//tem ponto?
		if (v1[1].indexOf('.')==-1) return false;
		
		if (!valEmailP(v1[0]) || !valEmailP(v1[1])) {
			return false;
		}
		return true;
	}
	//*******************************
	function valEmailP(s) {
		var i = s.length;
		return !('-@_.'.indexOf(s.substring(0,1))!=-1 || '-@_.'.indexOf(s.substring(i-1,i))!=-1);
	}



//*******************************//
// intranet
//*******************************//
function intranet(Nome) {
	var nome = Nome;
	var w;
	this.abre = abre;
	this.mostra = mostra;
	setTimeout(nome+'.abre();',1000);
	//*******************************//
	function mostra() {
		alert(w);
		//w.document.write(
		return (
			'<html><body>'
			+'<table>'
			+'<tr><td>a'
			+'<tr><td>a'
			+'</table>'
			+'</html>'
		);
	}
	//*******************************//
	function abre() {
		//lert(opener);
		//window.intra = opener.intra 'about:blank';
		w = new winDep(window,'javascript:opener.'+nome+'.mostra()');
		//setTimeout('javascript:'+nome+'.mostra()',1000);
		w.w=70;
		w.h=300;
		w.abre();
	}
}


//*******************************//
// janelas dependentes
//*******************************//
var wDep = new Array,wTip = new Array,wUrl = new Array,imprPdfTM;
var parente,objPai;
var obj_obj;
//imagePopUp.load();
//*******************************//
//controle de eventos
var acoesEvento = new Array(); 
regAcaoEvento('load','aAtalhos()');

	function opImprM(o,ev,url) {
		tabRelUrl = url;
		opImprMenu.abre(o,0,ev);
	}
	function imprPdfT() {
		tabRel = browse.getId('__tabRel');
		var b = browse.getId('botPdf');
		if (b.length) {
			b = b[0];
		}
		if (objLen(tabRel)!=0 && tabRel.rows
			&& tabRel.rows.length!=0 && !vazio(b)) {
			b.innerHTML = '<img src=/imagens/print.gif '
				+'onclick=opImprMenu.abre(this,0,event);>'
			;
		}
	}



	//*******************************
	function aAtalhos(e) {
			var x = document.getElementsByTagName('div');
			for (var i=0;i<x.length;i++)	{
				if (x[i].getAttribute('class') == 'atRapido') {
					var y = x[i].getElementsByTagName('a');
					for (var i1=0;i1<y.length;i1++) {
						y[i1].href = y[i1].href+'&atRapido=1';
						//lert(y[i].href);
					}
				}
			}
			
			var p = new pedido();
			if (p.param('menu')=='0' && (
				(p.param('__modo')=='V' && (x=browse.getId('mostraTab')))
				||
				(p.param('__modo')=='P' && (x=browse.getId('tabConsulta'))) )) {
				x = x.getElementsByTagName('a');
				for (var i=0;i<x.length;i++)	{
					var a = ''+x[i].href;
					if ( !vazio(a) && !equals(a,'mailto:') && !equals(a,'javascript:')
						&& equals(a,leftAt(''+window.location,'?'))) {
						//lert(a+"\n"+window.location);
						x[i].href='javascript:desvO("'+troca(x[i].href,'__modo=V','__modo=A')+'",top.opener);';
					}
				}
			}

	}

	//*******************************
	function ascan(arr,vlr) {
		for (prop in arr) {
			if (arr[prop]==vlr) {
				return prop;
			}
		}
		return -1;
	}
	
	//*******************************
	function desvO(url,win) {
		win.location=url;
		win.focus();
	}
	//*******************************
	function desv(url,ev) {
		if (ev.ctrlKey) return;
		window.location=url;
	}


	//*********************************
	function movePara(nome,o,o1,o2) {
		var oO = o;
		var oD = o1;
		var oT = o2;
		oD.style.visibility = 'hidden';
		oD.innerHTML = oO.innerHTML;
		var xA = browse.getAbsX(oO);
		var yA = browse.getAbsY(oO);
		var tA = browse.getTX(oO);
		var xD = browse.getAbsX(oD);
		var yD = browse.getAbsY(oD);
		var tD = browse.getTX(oD);
		var xI,yI;
		this.passos = 4;
		this.tempo = 30;
		this.ativo = false;
		this.move = move;
		var np=0;
		//*********************************
		function move() {
			if (nulo(xI)) {
				xI = (xD-xA)/this.passos;
				yI = (yD-yA)/this.passos;
				fI = (100-25)/this.passos;
				wI = (tD-tA)/this.passos;
				this.ativo = true;
				oT.innerHTML = oO.innerHTML;
				oT.style.fontSize = '25%';
				oT.style.visibility = 'visible';
				oT.style.width = tA+'px';
				oT.style.position = "absolute";
				//lert(xI+' yI='+yI);
			}
			xA += xI;
			yA += yI;
			if (np==this.passos-1) { 
				this.ativo = false;
				oT.style.visibility = 'hidden';
				oD.style.visibility = 'visible';
				//lert('fim passos='+np);
			} else {
				np++;
				oT.style.visibility = 'hidden';
				oT.style.fontSize = (25+np*fI)+'%';
				oT.style.width = (tA+wI*np)+'px';
				browse.setX(oT,xA);
				browse.setY(oT,yA);
				oT.style.visibility = 'visible';
				setTimeout(nome+'.move();',this.tempo);
			}
		}
	}

	//*********************************
	// controle de preferencias usuário
	//*********************************
	// controle de subRelatórios
	function subItem(spa,id) {
		var d = browse.getId(id);
		var img = spa.getElementsByTagName('img')[0];
		//objNav(img);
		//var v = d.style.position!='absolute';
		var v = img.src.indexOf('aberto')!=-1;
		if (v) {
			img.src = '/imagens/fechado.gif';
			//spa.innerHTML = '<img class=abre src=\"/imagens/fechado.gif\">';
			d.style.position='absolute';
			browse.esconde(d);
		} else {
			img.src = '/imagens/aberto.gif';
			//spa.innerHTML = '<img class=abre src=\"/imagens/aberto.gif\">';
			d.style.position='static';
			browse.mostra(d);
		}
		setarPrefs(id+'='+(v?'0':'1'));
	}
	//*********************************
	// OBJETO imagem POPUP
	//*********************************
	var objImagePopUp;
	function imagePopUp(urlS,nomeWin,titWin) {
		this.nomeW = vazio(nomeWin)?'img':nomeWin;
		this.titW = vazio(titWin)?urlS:titWin;
		this.load = load;
		this.url = urlS;
		var url = this.url;
		var img;
		this.img = img;
		//lert('teste'+browse.ie);
		try {
			var j = trocaChars(''+nomeWin,'.: ,?/\\<>;[]{}=-_+','_');
			//lert(j);
			var win = window.open('about:blank'
				,j
				,'toolbar=no,width=250,height=200'
			);
			//lert('teste'+browse.ie);
			//lert('w='+win.document);
			//objNav(win);
			win.document.write('<html><head><title>'+this.titW+'</title></head>'
				+'<scr'+'ipt language="JavaScript" src="fun.js"></scr'+'ipt>'
				+'<scr'+'ipt language="JavaScript" src="/jsCSSEditor/jsCSSEditor.js"></scr'+'ipt>'
				+'<scr'+'ipt>'
				+'var img,oImg;'
				+'function onL() {'
				//+' alert("load");'
				+' oImg = opener.objImagePopUp;'
				+' img = new Image();'
				+' img.src = oImg.url;'
				+' oImg.img = img;'
				+' oImg.load();'
				+'}'
				+'</scr'+'ipt>'
				+'<LINK REL="StyleSheet" HREF="estilo.css">'
				+'<body class=img onclick="jsCSSEditor(this,event);"'
					+'>Carregando!'
				//<img src="'+url+'">'
				+'</body></html>'
			);
		} catch (e)  {
			alert(nomeWin+' erro '+e.description);
			alert('unBlock popUp...');
			return;
		}
		this.win = win;
		objImagePopUp = this;
		setTimeout('objImagePopUp.win.onL()',500);
		//*********************************
		function load() {
			img = this.img;
			var w = img.width;
			var h = img.height;
			if (w<1 || h<1) {
				setTimeout('objImagePopUp.load()',200);
				return;
			}
			var tw = screen.availWidth*0.8;
			var th = screen.availHeight*0.8;
			if (w>tw || h>th) {
				var d = Math.max(w/tw,h/th);
				w /= d;
				h /= d;
			}
			win.resizeBy(
				w*1.1-win.document.body.clientWidth
				,h*1.06-win.document.body.clientHeight
			);
			win.document.body.innerHTML = 
				'<table class=img height=100% width=100%><tr>'
				+'<td valign=middle align=center>'
				+'<img align=center src="'+url+'" width='+w+' height='+h+'>'
				+'</table>'
			;
			win.focus();
			//lert('w='+w+' h='+h);
		}
	}


//*******************************//
//funções cookie
	//********************
	function cookieGet(nome) {
		var co = document.cookie+';';
		var i = co.indexOf(nome+'=');
		var f = co.indexOf(';',i+nome.length+1);
		if (i==-1 || f<=i) {
			return null;
		} else {
			return unescape(co.substring(i+nome.length+1,f));
		}
	}
	//********************
	function cookiePut(nome,vlr,venceDias) {
		if (venceDias!=0 && vazio(venceDias)) {
			venceDias = 120;
		}
		var v = new Date();
		v.setTime(v.getTime() + 1000*60*60*24*venceDias);
		v = v.toGMTString();
		document.cookie = nome + '=' + vlr
			+(venceDias==0?'' : '; expires=' + v)+'; path=/'
		;
	}



//*****************************************************
// objeto PARA DESANEXAR PARTES DE HTML
//*****************************************************
var oDsnx = new Array();
//*****************************************************
function desanexar(idDesanex) {
	var id = idDesanex;
	this.desanexaC = desanexaC;
	oDsnx[id] = this;
	//abre a janela nova
	var ob=browse.getId(id);
	var w = new winDep(window,'javascript:opener.oDsnx[\''+id+'\'].desanexaC();');
	w.tipo = 3;
	w.w = browse.getTX(ob);
	//objNav(ob);
	w.h = Math.min(browse.tamWinY(),browse.getTY(ob)+30);
	w.abre();
	//***************************************************
	//***************************************************
	//mostra HTML na janela nova
	function desanexaC(win) {
		//lert(leftAt(document.documentElement.innerHTML,'<body'));
		var bs = leftAt(window.location+'?','?');
		var p = document.documentElement.innerHTML.indexOf('<body');
		if (p<0) {
			p = document.documentElement.innerHTML.indexOf('<BODY');
		}
		var b = ob.innerHTML;
		if (browse.ie) {
			b = troca(b,'<INPUT','<INPUT disabled');
			b = troca(b,'<SELECT','<SELECT disabled');
			b = troca(b,'<TEXTAREA','<TEXTAREA disabled');
		} else {
			b = troca(b,'<input','<input disabled');
			b = troca(b,'<select','<select disabled');
			b = troca(b,'<textarea','<textarea disabled');
			//b = troca(b,'<input','<input disabled');
		}
		
		//carrega os CSS
		var cs = '';
		//objNav(document);
		var st = document.styleSheets;
		for (var i=0;i<st.length;i++) {
			if (right(st[i].href,4).toLowerCase()=='.css') {
				cs += '<LINK REL="StyleSheet" HREF="'
					+st[i].href+'">';
			}
		}
		
		//scripts...
		var sc='',s = document.documentElement.innerHTML.substring(p);
		var i=0,x,y;
		while ((x=s.indexOf('<script',i))!=-1) {
			if ((y=s.indexOf('</script',x))==-1) {
				alert('não achei fim script!');
			} else {
				x = s.indexOf('>',x);
				sc += s.substring(x+1,y);
			}
			i = y;
		}
		//lert(sc);
		
		
		//tag original
		b = '<'+ob.tagName+' class="'+ob.className+'">'
			+b
			+ '</'+ob.tagName+'>'
		;
		//lert(cs);
		
		var h = (
			//'<html><head><title>Katalogos - 3WS Sistemas</title></head>'
			//+'<BASE href=https://signey.dyndns.org/>'
			//+'<script language="JavaScript" src="/js/jan.js"></script>'
			//+'<LINK REL="StyleSheet" HREF="/estilos/kat.css">'
			'<html><BASE href='+bs+'>'
			+document.documentElement.innerHTML.substring(0,p)
			//+'<LINK REL="StyleSheet" HREF="/estilos/cimi.css">'
			+cs
			+'<script>'+sc+'</script>'
			+"<body  onclick=jsCSSEditor(this,event); onload=evento('load') onfocus=evento('focus') onresize=evento('resize'); onblur=evento('focusOut'); onunload=evento('close');>"
			+b
			+'</body>'
			+'</html>\r\n\r\n'
		);
		
		return h;
		
	}
}
//*****************************************************
// FIM DESANEXAR PARTES DE HTML
//*****************************************************



/*
,objNavAlvo;
function objNavR(a) {
	return objNavAlvo[a];
}
*/

//lert('janjs');
//desliga editor
//lert('ini');
//document.designMode = 'off';

//if (confirm('ver estilos')) {
// setTimeout('objNav(getAllSheets())',1000);
//}

function getAllSheets() {
	if( !window.ScriptEngine && navigator.__ice_version ) {
		return document.styleSheets; 
	}
	if( document.getElementsByTagName ) {
		var Lt = document.getElementsByTagName('link');
		var St = document.getElementsByTagName('style');
	} else if( document.styleSheets && document.all ) {
		var Lt = document.all.tags('LINK');
		var St = document.all.tags('STYLE');
	} else {
		return [];
	}
	for( var x = 0, os = []; Lt[x]; x++ ) {
		var rel = Lt[x].rel 
			? Lt[x].rel 
			: Lt[x].getAttribute 
				? Lt[x].getAttribute('rel') 
				: ''
		;
		if( typeof( rel ) == 'string' 
			&& rel.toLowerCase().indexOf('style') + 1 ) {
			os[os.length] = Lt[x];
		}
	}
	for( var x = 0; St[x]; x++ ) {
		os[os.length] = St[x];
	}
	return os;
}




//armazeda dados do cliente
var cli=new Array;
cli['centra'] = true;

	//********************************
	function clone(o) {
		if(typeof(o) == 'array') {
			var r = new Array();
		} else if(typeof(o) == 'object') {
			var r = new Object();
		} else {
			return o;
		}
		for(var prop in o) {
			var z;
			try {
				z = clone(o[prop]);
			} catch (e) {
				z = '?erro:'+e;
			}
			r[prop] = z;
		}
		return r;
	}
	/*******************************
	function clone(myObj) 	{
		if(typeof(myObj) != 'object') {
			return myObj;
		}
		if(myObj == null) {
			return myObj;
		}
		var myNewObj = new Object();
		for(var i in myObj) {
			try {
				//myNewObj[i] = clone(myObj[i]);
				myNewObj[i] = myObj[i];
			} catch (e) {
			}
		}
		return myNewObj;
	}
	*/
	//********************************
	function menuSis2(o) {
		window.location = '/'+o.value+'.class';
	}
	//********************************
	function menuSis1(sisAtual,s) {
		//lert(s);
		var v=palavraA(trimm(s,','),',');
		if (v.length<2) {
			return '';
		}
		//v.sort(function (a,b) {return (a.toLowerCase()<b.toLowerCase()?-1:0);});
		v.sort(function (a,b) {return fSort(a.toLowerCase(),b.toLowerCase());});
		var r='<scr'+'ipt>var menuS_v = new Array();';
		for (var i=0;i<v.length;i++) {
			if (leftAt(v[i],'=')!=sisAtual) {
				var cl = raizWeb+leftAt(v[i],'=')+'.class';
				var n = troca(v[i].substring(0,1).toUpperCase()+v[i].substring(1),'=',' - ');
				if (equals(n,'Ptsul')) {
					n = 'Mala Bancada';
				} else {
					n = substrAt(n,' - ');
				}
				//ebJ(n);
				r += 'menuS_v[menuS_v.length]="'+n+'~~'+cl+'";';
			}
		}
		r += "var menuS = new menuPopUp('menuS','',menuS_v,'','menSPop');"
			+"menuS.evento = false;menuS.posEsq=1;"
			+'</scr'+'ipt>';
		//lert(r);
		return r;
	}
	//********************************
	function menuSis1a(s) {
		var v=palavraA(trimm(s,','),',');
		//,pdf,cli,kat,base,wwws,fd,adv,quilos,cs,agenda,Log,csu,cgs,lab,usu,
		var r='<td class=ctrlSis><select class=ctrlSis onchange=menuSis2(this);>'
			+'<option>'
		;
		for (var i=0;i<v.length;i++) {
			if (',pdf,base,agenda,'.indexOf(','+v[i]+',')==-1) {
				r +='<option value='+v[i]+'>'+v[i];
			}
		}
		return '</select>'+r;
	}
	//********************************
	function menuSis(sisa,s,s1) {
		//lert(s);
		var ms = menuSis1(sisa,s);
		document.write(ms
			+"<div class=ctrlSis1><table class=ctrlSis><tr>"
			+(ms==''?''
				:"<td class=ctrlSis><a href=# onclick=javascript:menuS.abre(this,'',event);>+</a>")
			+(s1.indexOf(',CHAT,')==-1?''
				:"<td class=ctrlSis><a title=Chat href='javascript:chatAbre();'>"
				+"<img valign=center class=ctrlSis border=0 src=/imagens/chat.gif></a>")
			+"<td class=ctrlSis><a title=Calendário href='javascript:caleAbre();'>"
				+"<img valign=center class=ctrlSis border=0 src=/imagens/cale.gif></a>"
			+"<td class=ctrlSis><a title=Calculadora href='javascript:calcAbre();'>"
				+"<img valign=center class=ctrlSis border=0 src=/imagens/calc.gif></a>"
			+"<td class=ctrlSis><a title=Correio href='javascript:correioAbre();'>"
				+"<img valign=center class=ctrlSis border=0 src=/imagens/correio.gif></a>"
			+(s1.indexOf(',PREFS,')==-1?''
				:"<td class=ctrlSis><a title='Preferências do Usuários' href='javascript:prefsAbre();'>"
				+"<img valign=center class=ctrlSis border=0 src=/imagens/prefs.gif></a>")
			+"<td class=ctrlSis><a title='Sair (logoff)' href='javascript:sair();'>"
				+"<img class=ctrlSis border=0 src=/imagens/sair.gif></a>"
			//+menuSis1(s)
			+"</table></div>"
		);
	}


	//********************************
	function prefsAbre() {
		var e = ''+window.location;
		e = '/'+leftAt(substrAt(substrAt(e,'//'),'/')+'?','?');
		var ww=new winDep(window,e+'?op=prefs&menu=0');
		ww.w=320;ww.h=250;ww.centrada=false;ww.scr='no';
		ww.tipo=3;ww.abre();
	}
	//********************************
	function caleAbre() {
		var ww=new winDep(window,'/js/cale.html');
		ww.w=200;ww.h=250;ww.centrada=false;ww.scr='no';
		ww.tipo=3;ww.abre();
	}
	//********************************
	function sair() {
		window.location = '?op=sair&segs='+ms()+'&referer='+escape(window.location);
	}
	//********************************
	function correioAbre() {
		var ww=new winDep(window,'/Objetivo/index.html');
		ww.w=740;ww.h=350;ww.centrada=false;ww.scr='no';
		ww.tipo=3;ww.abre();
	}
	//********************************
	function calcAbre() {
		var ww=new winDep(window,'/js/calc.html');
		ww.w=240;ww.h=350;ww.centrada=false;ww.scr='no';
		ww.tipo=3;ww.abre();
	}
	//********************************
	function chatAbre(sl) {
		var ww=new winDep(window,raizWeb+'chat.class'+(vazio(sl)?"":"?s="+sl));
		ww.w=400;ww.centrada=false;ww.h=500;
		ww.tipo=3;ww.abre();
	}
	//*********************************
	function janRaiz() {
		if (vazio(top.opener)) {
			return top;
		}
		return top.opener.janRaiz();
	}
	//*********************************
	function janLocObj(nome) {
		var x;
		try {
			x = eval(nome);
		} catch (e) {
		}
		if (typeof(x)!='undefined') {
			return x;
		}
		if (vazio(top.opener)) {
			return null;
		}
		return top.opener.janLocObj(nome);
	}

	//*********************************
	function campoArqAt(nome) {
		if (false && browse.IE4) {
			window.location = 'pprs://'+nome;
		} else {
			window.location = '/dww.class?arq='+nome;
		}
	}



	//*********************************
	//*********************************
	// entrada de dados popUP
	//*********************************
	function entraPopUp(url,larguraMin) {
		abrePopUp(url,larguraMin);
	}
	//***************************************************
	//desvia para pagina
	function reguaD(pg,ev) {
		if (ev.ctrlKey) return;
		var p = new pedido();
		p.put('pg',pg);
		var selI = browse.getId('selIndividual');
		if (!vazio(selI)) {
			var s = selI.innerHTML;
			p.put('selIndividual',s);
		}
		window.location=p.atalho();
	}
	//***************************************************
	//abre a janela nova
	function relPopUp(printOuUrl,ev) {
		if (ev && ev.ctrlKey) {
			return;
		}
		if (typeof(printOuUrl)=='string') {
			var iprint = false;
			var p = new pedido(printOuUrl);
		} else {
			var iprint = printOuUrl;
			var p = new pedido();
		}
		p.put('menu',0);
		if (iprint) {
			p.put('print',1);
		}
		var selI = browse.getId('selIndividual');
		if (!vazio(selI)) {
			var s = selI.innerHTML;
			if (s.length<1) {
				alert('Seleção individual, nada selecionado..');
				return;
			}
			p.put('selIndividualCod',s);
		}
		var ob=browse.getId('menuDad');
		if (vazio(ob)) {
			ob = top.document.body;
		}
		var w = new winDep(window,p.atalho());
		w.tipo = 3;
		w.w = browse.getTX(ob);
		w.h = Math.min(browse.tamWinY()*(browse.ie?0.8:1),browse.getTY(ob)-30);
		w.abre();
		//return;
	}
	//*********************************
	function abrePopUp(url,larguraMin) {
		this.url = url+'&menu=0&popUp=1';
		win=new winDep(window,this.url);
		win.tipo = url.indexOf('__modo=P')==-1 && url.indexOf('__modo=prop')==-1?0:3;
		win.frame = true;
		win.w=vazio(larguraMin)?420:larguraMin;
		win.h=100;
		win.abre();
	}

 
//******************************
//para entrada de data
//******************************
function browseData(nomeDiv,nomeTex,nomeH) {
	this.nomeTex = nomeTex;
	this.div = browse.getId(nomeDiv);
	this.cal = new calendMes(nomeDiv,nomeTex,nomeH);
	for(var prop in this.cal) {
		this[prop] = this.cal[prop];
	}
	this.aberto = false;
	this.modo = 0;
 
	this.abre = browseData_Abre;
	this.abre1 = browseData_Abre1;
	this.abre2 = browseData_Abre2;
	this.fecha = browseData_Fecha;
	this.clickP = browseData_clickP;
	//******************************
	function browseData_clickP(d) {
		var v = palavraA(d,"-");
		this.dest.value = v[2]+"/"+v[1]+"/"+v[0];
		this.fecha();
	}
	//******************************
	function browseData_Fecha() {
		if (this.modo==0) {
			browse.esconde(this.div);
		} else {
			this.obj.innerHTML = '';
		}
		this.aberto=false;
		try {
			fD.selects(true);
		} catch (e) {
		}
	}
	//******************************
	function browseData_Abre1(Ob) {
		this.dest = document.__formul[Ob];
		var o = new winDep(top,'');
		o.centrada = false;
		o.w=100;o.h=100;
		o.debug = true;
		o.scr = 'no';
		if (!o.abre()) {
			return;
		}
		var ob = browse.getId("browseDataO");
		//obj(ob);
		o.on('<html><body TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>'
		+''+ob.innerHTML+''
		+'</body></html>'
		);
		var ob = browse.getId('cld',o.obj.document);
		//obj(this.cal.obj);
		this.obj = browse.getId(this.nomeTex,o.obj.document);
		//obj(this.cal.obj);
		o.obj.browseDataO = this;
		//obj(ob,'number');
		//lert('w='+ob.offsetWidth+' h='+ob.offsetHeight);
		//o.obj.resizeTo(ob.offsetWidth+50,ob.offsetHeight+40);
		o.obj.resizeTo(ob.offsetWidth+20,
		ob.offsetHeight+10+(browse.ie?50:0));
		//ob.width = '100%';
		o.obj.focus();
	}
	//******************************
	function browseData_Abre(obj) {
		if (this.aberto) {
			this.fecha();
			return;
		}
		this.aberto = true;
		this.dest = document.__formul[obj]; 
		//browse.getId(obj);
		//lert(obj+' '+this.dest);
		if (this.dest.value.length>0) {
			this.cal.set(this.dest.value);
		}
		//debug(this.dest);
		//lert(this.dest.controllers.getControllerAt(0));
		//lert(obj(this.dest));
		browse.mostra(this.div);
		try {
			fD.selects(false);
		} catch (e) {
			//lert(''+e);
			//obj(e);
		}
		var x = browse.getAbsX(this.dest)+browse.getTX(this.dest);
		var y = browse.getAbsY(this.dest)-browse.getTY(this.div);
		//testa se vai ficar fora
		y = y<0?0:y;
		var tj = browse.tamWinX();
		if (x+browse.getTX(this.div)>tj) {
			x =  tj-browse.getTX(this.div);
		}
		browse.setX(this.div,x);
		browse.setY(this.div,y);
		//lert('x='+x+'y='+y+' '+obj+' '+this.dest);
	}
	//******************************
	function browseData_Abre2(sOb) {
		if (this.aberto) {
			this.fecha();
			if (this.abertoN==sOb) {
				return;
			}
		}
		this.aberto = true;
		this.abertoN = sOb;
  
		this.dest = document.__formul[sOb];
		var ob = browse.getId('browseDataO');
		var dd = browse.getId(sOb+'_');
		//dd.innerHTML = browse.getId('browseDataT').innerHTML;
		//browse.esconde(dd);
		//var ob = browse.getId('cld',o.obj.document);
		this.obj = dd;
		this.monta();
		this.modo = 1;
	}
}

//**************************//
// objeto calendMes
//**************************//
function calendMes(nome,nomeLocTex,nomeLocHoje) {
	this.fSize1 = 1;
	this.fSize2 = 2;
	//nome da var que armazena este objeto
	//objeto para atribuir innerHTML
	this.nome = nome;
	this.obj = browse.getId(nomeLocTex);
	this.objH = browse.getId(nomeLocHoje);
	this.mDia = 1000*60*60*24;
 
	this.monta = calendMes_Monta;
	this.iMes = calendMes_iMes;
	this.iAno = calendMes_iAno;
	this.iDia = calendMes_iDia;
	this.clickP = calendMes_Click;
	this.dataF = calendMes_dataF;
	this.feriado = calendMes_Feriado;
	this.set = calendMes_Set;
	this.cha = calendMes_Char;
	this.horas = calendMes_horas;
 
	this.corH = '"#07FFFF"';
 
	this.hVerao = new Array();
 
	this.fer = Array();
	this.fer[1.0] = 'Ano Novo';
	this.fer[21.03] = 'Tiradentes';
	this.fer[1.04] = 'Trabalho';
	this.fer[7.08] = 'Independência';
	this.fer[12.09] = 'Criança';
	this.fer[2.10] = 'Finados';
	this.fer[15.10] = 'República';
	this.fer[25.11] = 'Natal';
 
	this.set(this.dataF(new Date()));
	//**************************//
	function calendMes_Char(d) {
		var r='';
		for (var i=0;i<d.length;i++) {
			r += '<br>'+d.substring(i,i+1);
		}
		return r.substring(4);
	}
	//**************************//
	function calendMes_Set(d) {
		var v;
		d = trimm(d);
		if (d.indexOf(' ')!=-1) {
			d = leftAt(d,' ');
		}
		if (d.indexOf("/")!=-1) {
			v = palavraA(d,"/");
			this.ano = v[2]*1;
			this.mes = v[1]-1;
			this.dia = v[0]*1;
		} else {
			v = palavraA(d,"-");
			this.ano = v[0]*1;
			this.mes = v[1]-1;
			this.dia = v[2]*1;
		}
		if (this.ano==0) {
			//this.monta();
			return;
		}
		this.data = new Date(this.ano,this.mes,this.dia);
		//lert('data='+this.data+' par='+d);
  
		//seta data na aba
		if (objLen(this.objH)!=0) {
			var x = this.cha(tb_diaSemana[this.data.getDay()].toUpperCase())
			+'<br><br>&nbsp;&nbsp;'+this.data.getDate()
			+'<br><br>'+this.cha(tb_nomeMes[this.data.getMonth()]
			.toUpperCase().substring(0,3));
			this.objH.innerHTML = '<p align=right><font size=1><b>'+x+'</font></p>';
		}
		this.monta();
	}
	//**************************//
	function calendMes_Feriado(d) {
		var a = this.fer[d.getDate()+d.getMonth()/100];
		if (typeof(a)!='undefined') {
			return a;
		}
		return false;
	}
	//**************************//
	function calendMes_dataF(d,del) {
		if (typeof(del)=='undefined') {
			del='-';
		}
		var r;
		if (del=='-') {
			r = takeYear(d)+'-'+strZero(d.getMonth()+1,2)
				+'-'+strZero(d.getDate(),2);
		} else {
			r = strZero(d.getDate(),2)
				+'/'+strZero(d.getMonth()+1,2)+'/'+takeYear(d);
		}
		return r;
	}
	//**************************//
	function calendMes_Click(d) {
		if (typeof(this.click)=='undefined') {
			alert('Sete '+this.nome+'.click com a função que '
			+'recebera a data clicada neste formato '+d);
			return;
		}
		//eval(this.click+'(\''+d+'\')');
		this.click(d);
	}
	//**************************//
	function calendMes_horas(d0,d1) {
		return (
		new Date(takeYear(d1),d1.getMonth(),d1.getDate()).getTime()-
		new Date(takeYear(d0),d0.getMonth(),d0.getDate()).getTime()
		)/1000/60/60;
	}
	//**************************//
	function calendMes_iDia(d) {
		var h = d.getHours();
		if (h!=0 && h<12) {
			d = new Date(d.getTime()+(h>12?24-h:-h)*60*60*1000);
		}
		d = new Date(d.getTime()+this.mDia);
		h = d.getHours();
		if (h>12) {
			d = new Date(d.getTime()+(h>12?24-h:-h)*60*60*1000);
		}
		if (h!=0) {
			this.hVerao[this.dataF(d)]=h<12?'Inicio':'Fim';
		}
		return d;
	}
	//**************************//
	function calendMes_iAno(n) {
		this.ano += n;
		this.monta();
	}
	//**************************//
	function calendMes_iMes(n) {
		if (n>0) {
			this.mes++;
			if (this.mes>11) {
				this.ano++;
				this.mes=0;
			}
		} else {
			this.mes--;
			if (this.mes<0) {
				this.ano--;
				this.mes=11;
			}
		}
		this.monta();
	}
	//**************************//
	function calendMes_Monta() {
		var d = new Date(this.ano,this.mes,1);
		//mes ant
		var m1 = new Date(d.getTime()-1000*60*60*24);
		m1 = takeYear(m1)+strZero(m1.getMonth()+1,2);
		//mes prox
		var m2 = new Date(d.getTime()+45000*60*60*24);
		m2 = takeYear(m2)+strZero(m2.getMonth()+1,2);
  
		//var x = new Array('Dom','Seg','Ter','Qua','Qui','Sex','Sab');
		//var ma=' style="cursor: pointer;"><font color=blue>---\></font>';
		//var me=' style="cursor: pointer;"><font color=blue>\<---</font>';
		var me=' style="cursor: pointer;"><img src=/imagens/tr.gif>';
		var ma=' style="cursor: pointer;"><img src=/imagens/av.gif>';
		var r= '<table class=calend CELLSPACING=0 CELLPADDING=0 align=center border=1>'
		+'<tr><td colspan=7 align=center><font size='+this.fSize1+'>'
		+'<a onClick="'+this.nome+'.iMes(-1);" '+m1+me+'</a> '
		+tb_nomeMes[this.mes]
		+' <a onClick="'+this.nome+'.iMes(01);" '+m2+ma+'</a>'
		+'&nbsp;&nbsp;'
		//+'<td colspan=3>'
		+'<a onClick="'+this.nome+'.iAno(-1);" '+me+'</a> '
		+'<b>'+this.ano+'</b> '
		+'<a onClick="'+this.nome+'.iAno(01);" '+ma+'</a>'
		+'<tr>';
		for (var i=0;i<7;i++) {
			r += '<th align=center><font size='+this.fSize1+'>'+tb_diaSemana[i];
		}
		var dy=0;
		r += '<tr>';
		while (d.getDay()!=dy) {
			r += '<td>&nbsp;';
			dy++;
		}
		var fer='',hoje=new Date();
		//lert(hoje.getYear());
		hoje=(new Date(hoje.getYear()+1900,
		hoje.getMonth(),hoje.getDate())).getTime();
		//lert(hoje);
		while (this.mes==d.getMonth()) {
			dy = this.feriado(d);
			if (dy) {
				fer += '<b>'+d.getDate()+'</b> '+dy+'<br>';
			}
			r += '<td onClick='+this.nome+'.clickP(\''+this.dataF(d)+'\'); '
			+(this.dataF(this.data)==this.dataF(d)?' bgcolor='+this.corH:'')
			+' align=right style="cursor: pointer;"><b><font '
			+(d.getDay()==0 || dy?' color=red ':'')
			+(d.getTime()==hoje?' color=blue ':'')
			+' size='+this.fSize1+'>'
			+(d.getDay()==0 && dy?'<u>':'')+d.getDate();
			da = d;
			d = this.iDia(d);
			if (this.horas(da,d)!=24) {
				fer += '<b>'+d.getDate()
				+'</b> Dia com '+this.horas(da,d)+' horas<br>';
			}
			if (d.getDay()==0) {
				r += '<tr>';
			}
		}
		while (d.getDay()!=0) {
			r += '<td>&nbsp;';
			d = this.iDia(d);
		}
		if (fer.length>0) r += '<tr><td colspan=7><font size='+this.fSize1+'>'+fer;
		this.obj.innerHTML = r+'</table>';
	}
}

//**************************//
// o b j e t o divLado
//**************************//
function divF(nome) {
	this.aberto=false;
	this.nome = nome;
	this.ca = browse.getId(nome);
	if (!objLen(this.ca)) {
		alert('Não encontrei id='+nome);
	}
 
	this.fecha = divF_Fecha;
	this.abre = divF_Abre;
	//**************************//
	function divF_Abre() {
		browse.mostra(this.ca,false);
		this.aberto = true;
	}
	//**************************//
	function divF_Fecha() {
		browse.esconde(this.ca,false);
		this.aberto = false;
	}
}


//**************************//
// o b j e t o divLado
//**************************//
function divLado(nome,nomeAba) {
	this.aberto=true;
	this.nome = nome;
	this.ca = browse.getId(nome);
	if (!objLen(this.ca)) {
		alert('Não encontrei id='+nome);
	}
	this.ca1 = browse.getId(nomeAba);
	browse.setX(this.ca,0);
	browse.mostra(this.ca,false);
 
	//autofecha ativado
	this.autoFechaD = false; 
	 //ms autofecha
	this.autoFecha = 7000;
 
	this.fecha = divLado_Fecha;
	this.abre = divLado_Abre;
	this.ativo = divLado_Ativo;
	this.aFecha = divLado_aFecha;
 
	//this.fecha();
	//**************************//
	function divLado_aFecha() {
		if (!this.aberto) {
			this.autoFechaD = false;
			return;
		}
		var t = (new Date()).getTime();
		if (this.aFechaProx<t) {
			this.fecha();
			this.autoFechaD = false;
		} else {
			setTimeout(this.nome+'.aFecha()',t-this.aFechaProx);
			this.autoFechaD = true;
		}
	}
	//**************************//
	function divLado_Ativo() {
		if (!this.aberto) return;
		if (this.autoFecha<1) return;
		this.aFechaProx = (new Date()).getTime()+this.autoFecha;
		if (this.autoFechaD) return;
		this.aFecha();
	}
	//**************************//
	function divLado_Abre() {
		if (this.aberto) return;
		browse.setX(this.ca,0);
		this.aberto = true;
		//-(browse.getTX(this.ca)-browse.getTX(this.ca1)));
		//browse.mostra(this.ca,false);
	}
	//**************************//
	function divLado_Fecha() {
		if (!this.aberto) return;
		browse.setX(this.ca,
		-(browse.getTX(this.ca)-browse.getTX(this.ca1)));
		this.aberto = false;
	}
}
//fim DIVLADO


//******************************
// objeto Pedido
// retorna parametros conforme 
// location e permite reatribuir
// com fins de montar novo location
//******************************
function pedido(doc) {
	this.atalho = atalho;
	this.remove = remove;
	this.get = get;
	this.put = put;
	this.param = get;
	this.paramPut = put;
	this.set = put;
	this.paramToForm = paramToForm;
	this.refresh = refresh;
	this.getV = getV;
 
	//lert(typeof(doc));
	if (typeof(doc)=='undefined') {
		doc = window;
	}
	try {
		if (typeof(doc)=='string') {
			var url = doc;
			this.doc = window;
		} else {
			this.doc = doc;
			var url=''+doc.location;
		}
	} catch (e) {
		var url = '';
		//alertErro(e);
	}
	var param = new Array();
	this.url = url; 
	var p = url.indexOf('?');
	if (p!=-1) {
		this.url = url.substring(0,p);
	}
	url = url.substring(p+1);
	var v = palavraA(url,'&');
	var c;
	for (var i=0;i<v.length;i++) {
		c = palavraA(v[i]+'=','=');
		var np = c[0];
		if (!param[np] || vazio(param[np])) {
			param[np] = unescape(troca(c[1],'+',' '));
		} else {
			if (typeof(param[np])=='string') {
				param[np] = new Array(param[np]);
			}
			param[np][param[np].length] = unescape(troca(c[1],'+',' '));
			//lert(param[np]);
		}
	}
	//lert('v='+v);
	//ultimo parametro tem # atalho interno <a name=>
	if (c && param[c[0]].indexOf('#')!=-1) {
		param[c[0]] = leftRat(param[c[0]],'#');
	}
	//******************************
	function getV() {
		return param;
	}
	//******************************
	function paramToForm(frm,duplica) {
		for(var prop in param) {
			if (param[prop]!=null) {
				if (duplica || !frm[prop]) {
					frm.appendChild(input(prop,param[prop]));
				} else {
					frm[prop].value = param[prop];
				}
			}
		}
	}
	//******************************
	function atalho() {
		var r = '';
		for(var prop in param) {
			if (param[prop]==null) {
			} else if (typeof(param[prop])!='object') {
				r += '&'+prop+'='+escape(param[prop]);
			} else {
				for(var p in param[prop]) {
					r += '&'+prop+'='+escape(param[prop][p]);
				}
			}
		}
		//lert(troca(r,'&','\n')+' pg='+param['pg']);
		return this.url+(r.length==0?'':'?'+r.substring(1));
	}
	//******************************
	function remove(ch) {
		param[ch] = null;
	}
	//******************************
	function get(a,b) {
		var r = param[a];
		if (vazio(r) && !nulo(b)) {
			return b;
		}
		return r;
	}
	//******************************
	function refresh() {
		this.put('segs',ms());
		doc.location = this.atalho();
	}
	//******************************
	function put(a,b) {
		//lert('set a='+a+' b='+b);
		param[a] = b;
	}
}


	//*********************************
	function desvia(url,ev) {
		if (!vazio(ev) && ev.ctrlKey) {
			return;
		}
		window.location = url;
	}



//*******************************//
//*******************************//
//*******************************//
// CONTROLE DE JANELAS POPUP..
// TIPOS DE JANELA: 
// 0 - FECHA SÓ SE FECHAR A PRINCIPAL
// 1 - FECHA SE O FOCO VOLTAR A PRINCIPAL
// 2 - OBRIGA O FOCO NA SECUNDARIA (DIÁLOGO);
// 3 - TOTALMENTE INDEPENDENTE
//*******************************//
//*******************************//
//*******************************//
	function objParente() {
		return obj_obj;
	}
 
	//*******************************//
	function regAcaoEvento(acao,funct) {
		if (!acoesEvento[acao] || vazio(acoesEvento[acao])) {
			acoesEvento[acao] = new Array();
		}
		acoesEvento[acao][acoesEvento[acao].length] = funct;
	}
	//*******************************//
	function evento(s,ev) {
		//opção em js
		//if (window.addEventListener) window.addEventListener("load",func,false);
		//else if (window.attachEvent) window.attachEvent("onload",func);   
		//for (var f = 0; (formnode = document.getElementsByTagName('form').item(f)); f++) {
		//executa acoes registradas
		//lert(s+' '+ev);
		if (acoesEvento[s] && !vazio(acoesEvento[s])) {
			for (prop in acoesEvento[s]) {
				//lert(acoesEvento[s][prop]);
				var x = acoesEvento[s][prop];
				if (x.indexOf('(')==-1) {
					x += '()';
				}
				eval(x);
			}
		}
  
		if (s=='resize') {
		}
		if (s=='load') {
			//lert('l='+opener);
			if (objLen(opener)!=0) {
				parente = opener;
				objPai = opener.objParente();
			}
			//objLen(opener);
			if (!vazio(objPai) && !vazio(objPai.onLoad)) {
				eval(objPai.onLoad);
			}
		}
		if (s=='close') {
			if (!vazio(objPai) && objPai.pulaClose) {
				objPai.pulaClose = false;
				return;
			}
			//fecha todas as janelas dependentes
			for (i=0;i<wDep.length;i++) {
				if (wDep[i]!=0) {
					wDep[i].close();
					wDep[i] = 0;
				}
			}
			//informa a superior
			if (parente && !vazio(objPai)) {
				//lert('informa sup');
				parente.dRegistraWin(objPai.janPos);
			}
		}
		if (s=='focus') {
			//fecha janelas tipo 1 
			for (var i=0;i<wDep.length;i++) {
				if (wDep[i]!=0 && wTip[i]==1) {
					wDep[i].close();
					wDep[i] = 0;
				} else if (wDep[i]!=0 && wTip[i]==2) {
					try {
						wDep[i].focus();
					} catch(e) {
						//lert('Erro: '+e);
					}
				}
			}
		}
		if (s=='focusOut') {
			if (!vazio(objPai) && objPai.tipo==2) {
				//window.focus();
				//lert("tipo janela=1");
				//fecha somente se o foco volta para a mãe...
				//parente.dRegistraWin(janPos);
				//window.close();
			}
		}
	}
	//*******************************//
	function dRegistraWin(i) {
		if (typeof(i)=='string') {
			i = substrAt(i,'//');
			i = '/'+substrAt(i,'/');
			for (var i1=0;i1<wDep.length;i1++) {
				if (wDep[i1]!=0 && wUrl[i1]==i) {
					//lert('achei: '+wUrl[i1]);
					dRegistraWin(i1);
					return;
				}
			}
			alert('não achei: '+i+'\nem\n'+wUrl);
		} else if (wDep[i]!=0) {
			wDep[i].close();
			wDep[i] = 0;
		}
	}
	//*******************************//
	function existeWin(url) {
		for (var i=0;i<wDep.length;i++) {
			if (wDep[i]!=0 && wUrl[i]==url) {
				try {
					wDep[i].document.write('');
					//lert('vai focar..');
					wDep[i].focus();
				} catch(e) {
					//lert('e='+e);
					wDep[i]=0;
					return false;
				}
				return true;
			}
		}
		return false;
	}
 
	//*******************************//
	function registraWin(obj) {
		for (i=0;i<wDep.length;i++) {
			if (wDep[i]==0) {
				break;
			}
		}
		obj.janPos = i;
		wDep[i] = obj.obj;
		wTip[i] = obj.tipo;
		wUrl[i] = obj.url;
		obj_obj = obj;
	}
	//*******************************//
	function alertErro(e) {
		alert(erro(e));
	}
	//*******************************//
	function trace(a) {
		return troca(erro(new Error('trace '+a)),'\n\n','<hr>');
	}
	//*******************************//
	function erro(e) {
		//objNav(e);
		//http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Error
		if (typeof(e)=='string' || typeof(e)=='undefined') {
			//return (e+' (string)');
			e = new Error(''+e);
		}
		return 'Erro='
			+e.name
			+(browse.ie?' ('+e.number+')':'')
			+' '+e.message
			+' '+(browse.ie?' '+e.description:'')
			+(!browse.ie?troca(''+e.stack,'\n','\n\n'):'')
		;
		//return 'erro='+troca(''+e.stack,'@','\n');
	}
	//*******************************//
	function centra(ob,noOb) {
		var xy = centraCoo(ob,noOb);
		//lert(xy);
		if (xy && xy.length>1) {
			if (vazio(ob)) {
				ob = top;
			}
			ob.moveTo(xy[0],xy[1]);
		}
	}
	//*******************************//
	function centraCoo(ob,noOb) {
		//if (!cli.centra) return;
		if (typeof(ob)=='undefined') {
			ob = top;
			noOb = janRaiz();
		} else if (typeof(noOb)=='undefined') {
			noOb = ob;
			ob = top;
		}
		if (browse.ie) {
			try {
				var pX = noOb.screenLeft+noOb.document.body.offsetWidth/2
				-ob.document.body.offsetWidth/2;
				var pY = noOb.screenTop+noOb.document.body.offsetHeight/2
				-ob.document.body.offsetHeight/2;
				return new Array(pX,pY);
			} catch (e) {
				alert('erro='+e);
			}
		} else {
			var pX = noOb.screenX+noOb.outerWidth/2-ob.outerWidth/2;
			var pY = noOb.screenY+noOb.outerHeight/2-ob.outerHeight/2;
			return new Array(pX,pY);
		}
		return new Array();
	}
 
	//*******************************
	function centraDiv(dv,win) {
		if (vazio(win)) {
			win = window;
		}
		var pX,pY;
		if (browse.ie) {
			pX = win.screenLeft+win.document.body.offsetWidth/2
				-browse.getTX(dv)/2;
			pY = win.screenTop+win.document.body.offsetHeight/2
				-browse.getTY(dv)/2;
		} else {
			//pX = win.screenX+win.outerWidth/2-browse.getTX(dv)/2;
			pX = win.outerWidth/2-browse.getTX(dv)/2;
			//pY = win.screenY+win.outerHeight/2-browse.getTY(dv)/2;
			pY = win.outerHeight/2-browse.getTY(dv)/2;
		}
		dv.style.position = 'fixed';
		dv.style.top = pY+'px';
		dv.style.left = pX+'px';
		//browse.setX(dv,pX);
		//browse.setY(dv,pY);
		//dv.offsetTop = pY;
		//dv.offsetLeft = pX;
		//objNav(dv);
		//lert(pX+'-'+pY+' pa='+dv.style.left+','+dv.style.top);
	}
 
	//********************************
	//********************************
	function winDep(jan,url) {
		this.debug=false;
		this.jan = jan;
		this.url = url;
		this.tipo = 0;
		this.cascata = false;
		this.nome = '_blank';
		this.obj = null;
		this.pulaClose = false;
		this.janPos = -1;
		this.frame=false;
		this.centrada = true;
		this.scr = 'yes';
		this.stat = 'yes';
		//scroll
  
		this.w = 400;
		this.h = 400;
  
		this.abre = winDep_abre;
		this.centra = winDep_centra;
		this.on = winDep_on;
		this.fCascata = fCascata;
		this.html = html;
		//********************************
		function html(txH) {
			this.obj.innerHTML = txH;
		}
		//********************************
		function winDep_on(s) {
			if (this.frame) {
				//lert('não sei gravar em frame...');
				var d = browse.getId('frm',this.obj.document);
				//objNav(d);
				d.contentWindow.document.write(s);
			} else {
				this.obj.document.write(s);
			}
		}
		//********************************
		function winDep_centra() {
			if (browse.ie) {
				this.pX = this.jan.screenLeft+this.jan.document.body.offsetWidth/2
				-this.w/2;
				this.pY = this.jan.screenTop+this.jan.document.body.offsetHeight/2
				-this.h/2;
			} else {
				this.pX = this.jan.screenX+this.jan.outerWidth/2-this.w/2;
				this.pY = this.jan.screenY+this.jan.outerHeight/2-this.h/2;
			}
		}
		//********************************
		function fCascata() {
			if (browse.ie) {
				this.pX = this.jan.screenLeft+20;
				this.pY = this.jan.screenTop+30;
			} else {
				this.pX = this.jan.screenX+20;
				this.pY = this.jan.screenY+30;
			}
		}
		//********************************
		function winDep_abre() {
			if (existeWin(this.url)) {
				//lert('url existe='+url);
				return false;
			}
			if (this.centrada) {
				this.centra();
			}
			if (this.cascata) {
				this.fCascata();
			}
			//lert('x='+this.pX+' y='+this.pY);
			var d=(this.debug?"yes":"no");
			var t='width='+this.w+',height='+this.h
			+(this.pX?',screenX='+this.pX+',screenY='+this.pY:'')
			+',resizable=yes,scrollbars='+this.scr+','
			+'toolbar='+d+',menubar='+d+',status='+this.stat;
			//+'toolbar='+d+',menubar='+d+',status='+d;
			//ebJ(t);
			if (this.frame) {
				//lert('a');
				this.obj = window.open('about:blank',this.nome,t);
			} else {
				this.obj = window.open(this.url,this.nome,t);
			}
			//lert('ab');
			try {
				this.obj.focus();
				if (this.tipo!=3) {
					registraWin(this);
				}
				if (this.frame) {
					this.obj.document.write(
					'<html><frameset rows=100% border=1 framespacing=1 frameborder=0>'
					+'<frame id=frm src="'+this.url+'"></frameset>'
					+'</html>'
					);
				}
			} catch(e) {
			}
			return true;
		}
	}
//fim CTRLE JAN DEPENDENTES


//funcoes DEBUG
	//**************************//
	function objNav(ob,jan) {
		if (typeof(jan)!='undefined') {
			//this.filtro = o;
			this.o = ob;
			this.jan = jan;
			//metodos
			this.mostra = mostra;
			this.filtrar = filtrar;
			this.pula = pula;
			this.mItem = mItem;
			this.item = item;
			//this.mostra();
		} else {
			init(ob);
		}
		//**************************//
		function mItem(prop,z) {
			var r='';
			var t = typeof(z);
			if (t=='function' && (''+z).length>40) {
				z = ''+z;
				z = z.substring(0,40)+'...(+'+z.length+')';
			}
			if (!this.tp[t]) {
				this.tp[t] = 0;
			}
			this.tp[t]++;
			if (!this.filtro || t==this.filtro) {
				r += '<tr><td><font size=2 color=darkgreen><b>'+t+'</b></font> '
				+'<a href=javascript:este.pula("'+prop+'");>'+prop+'</a>: '
				+'<font size=2>'+(t=='string' || t=='function'?html(''+z):z)
				;
			}
			if (t=='function' && ''+prop=='item') {
				//lert('item...');
				r += this.item();
			}
			return r;
		}
		//**************************//
		function item() {
			//lert('item');
			var r = '';
			for (var i=0;i<this.o.length;i++) {
				r += this.mItem('item_'+i+'',this.o.item(i));
			}
			return r;
		}
		//**************************//
		function pula(o) {
			var ds;
			if (o.substring(0,5)=='item_') {
				ds = this.o.item(1*o.substring(6));
			} else {
				ds = this.o[o];
			}
			objNav(ds);
		}
		//**************************//
		function init(o) {
			if (vazio(o)) {
				this.tit = 'objeto VAZIO...';
			} else {
				this.tit = (o.name?' '+o.name:'')
					+(o.tagName?' '+o.tagName:'')
					+' '+o
				;
			}
			var r = '<html><head><title>'
				+this.tit+' - objNav </title></head>'
			+'<script language="JavaScript" '
			+'src="/js/jan.js"></script>'
			+'<body><table border=1><tr><td>'
			+'<font size=3>Objeto: <font color=red>'+o
			+'<tr><td id=dad>'
			+'</table>'
			+'<scr'+''+'ipt>var este1;'
			+' function objNavInit() {'
			//+'  alert("teste o"+este);'
			+'  este.mostra();'
			//+'  este=new objNav();'
			//+'  //lert(objNav);'
			+' }'
			+' setTimeout("objNavInit();",1000);'
			+'</scr'+''+'ipt>'
			+'</body>'
			+'</html>'
			;
			//lert('objnav: ');
			//lert(objNav);
			//objA(window.document.objNav);
			var w = window.open('about:blank','_blank',
				'width=600,height=700,resizable=yes,scrollbars=yes,status=1'
			);
			//lert(window);
			try {
				w.document.write(r);
				//w.objNav = objNav;
				//objNavAlvo = o;
				//var zzz;
				w.este = new objNav(o,w);
			} catch (e) {
				alertErro(e);
			}
		}
		//**************************//
		function filtrar(f) {
			if (typeof(f)!='string') {
				alert('filtro por chave');
				return;
			}
			this.filtro = f;
			this.mostra();
		}
		//**************************//
		function mostra() {
			this.tp = new Array;
			var o = this.o;
			var filtro = this.filtro;
			var i=0,z;
			var r = '';
			for(var prop in o) {
				try {
					z = o[prop];
					//z = objNavR(prop);
					//z = eval('este.o.'+prop);
				} catch (e) {
					z = '?erro:'+e;
					//objA(o);
					//alertErro(e);
					//break;
				}
				r += this.mItem(prop,z);
				i++;
				if (i>200) break;
			}
			//mostra totais por tipo
			var r1 = '<tr><td colspan=2><b>'+i
			+' (limite 200) </b>';
			r1 += '(<b><a href=javascript:este.filtrar("");>'
			+'Todos</a></b>='+i+') ';
			for(var prop in this.tp) {
				var z = this.tp[prop];
				r1 += '(<b><a href=javascript:este.filtrar("'+prop+'");>'
				+prop+'</a></b>='+z+') ';
			}
			r1 += '<br><b>Chave</b>: '
			+'<input size=10 onChange=este.filtrar(this)>';
			r = '<table border=1>'+r1+r+'</table>FIM...';
			//var w = window.open('about:blank','_blank',
			// 'width=400,height=700,resizable=yes,scrollbars=yes,status=0'
			//);
			//w.document.write(r);
			var ds=browse.getId('dad',this.jan.document);
			ds.innerHTML = r;
   
			return r;
		}
	}
	//**************************//
	function objA(o,filtro) {
		var r = '';
		var i=0,tp=new Array(),z;
		for(var prop in o) {
			try {
				z = o[prop];
			} catch (e) {
				z = '?erro:'+e;
			}
			var t = typeof(z);
			if (!tp[t]) tp[t] = 0;
			tp[t]++;
			if (!filtro || t==filtro) {
				r += ''+t.substring(0,2)+': '
				+prop+' = '+z+'\n';
			}
			i++;
			if (i>200) break;
		}
		alert(r);
	}
	//**************************//
	function obj(o,filtro) {
		var r = '<html><body><table border=1>';
		var i=0,tp=new Array(),z;
  
		for(var prop in o) {
			try {
				z = o[prop];
			} catch (e) {
				z = '?erro:'+e;
			}
			var t = typeof(z);
			if (!tp[t]) tp[t] = 0;
			tp[t]++;
			if (!filtro || t==filtro) {
				r += '<tr><td>'+t.substring(0,2)+': '
				+prop+'<td>'+(t=='string'?html(''+z):z);
			}
			i++;
			if (i>200) break;
		}
		r += "<tr><td>Total (limite 200)<td>"+i
		+'<tr><td><b>Tipos:</b><td>';
		for(var prop in tp) {
			var z = tp[prop];
			r += '(<b>'+prop+'</b>='+z+') ';
		}
		r += '</table>';
		var w = window.open('about:blank','_blank',
		'width=400,height=700,resizable=yes,scrollbars=yes,status=0'
		);
		w.document.write(r+'</body></html>');
  
		return r;
	}
//fim func DEBUG

//**************************//
// menu POPUP
//**************************//
var menuPopUpAberto = false;
//**************************//
function menuPopUp(nome,tit,vOp,ops,est) {
	var oM = null;
	if (typeof(tit)=='object') {
		this.obj = tit;
		this.obj.setAttribute('disp',1);
		oM = tit;
		tit='';
	}
	this.aberto = false;
	if (''+ops=='undefined') {
		ops = '';
	}
	this.evento = true;
	this.posEsq = 0;
	this.incX = 0;
	this.incY = 0;
	this.ops = ops;
	this.nome = nome;
	this.tit = tit;
	this.fecha = menuPopUp_fecha;
	this.abre = menuPopUp_abre;
	this.click = menuPopUp_click;
	this.click1 = menuPopUp_click1;
	this.vat = new Array;
	if (typeof(est)=='undefined') {
		est = 'menPop';
	}
	if (""+vOp=="undefined") {
		return;
	}
	//cria divisão conforme array
	document.write(
	'<DIV ID="'+this.nome+'" class='+est
	+' STYLE="POSITION: absolute; VISIBILITY: hidden; TOP: 0px; LEFT: 0px;">'
	+'<table class='+est+'>');
	var i = 'onclick='+this.nome+'.fecha(event);>';
	if (ops.indexOf('/nnova')==-1) {
		document.write('<tr><td class='+est+'Tit '+i+this.tit
		+'<td class='+est+'Fecha '+i
		+'x');
	} else {
		document.write('<tr><td class='+est+'Tit '+i+this.tit);
	}
	for (var i=0;i<vOp.length;i++) {
		var op = vOp[i];
		var ps,url;
		if ((ps=op.indexOf("~~"))!=-1) {
			this.vat[i] = op.substring(ps+2);
			url = substrAt(op,'~~');
			op = op.substring(0,ps);
		} else {
			this.vat[i] = op;
		}
		if (op=='-') {
			document.write('<tr><td class='+est+'Sp>');
		} else {
			var oc = ' onClick=javascript:'+this.nome+'.click('+i;
			document.write('<tr><td class='+est+oc+',false,event)>'
				+'&nbsp;<a href="'
					+(!vazio(url) && url.indexOf('{cod}')==-1
						?url
						:'javascript:'+this.nome+'.click('+i+',false,event);'
					)+'" class='+est+'>'+op+'</a>'
				+(ops.indexOf('/nnova')==-1?
				'<td class='+est+'N '+oc+',true,event)>'
				+'<a class='+est+'N>+</a>'
				:'')
			);
		}
	}
	document.write('</table></DIV>');
	//**************************//
	function menuPopUp_click(pos,nova,event) {
		if (event.ctrlKey) return;
		this.fecha();
		//lert('pos='+pos+' param='+this.param+" nova="+nova);
		var a = this.vat[pos],i;
		//lert('1='+a);
		if ((i=a.indexOf("{cod}"))!=-1) {
			a = a.substring(a,i)+this.param+a.substring(i+5);
		} else if (a.substring(0,11)=='javascript:') {
			//lert("eval="+a);
			eval(a);
			return;
		} else {
			a += this.param;
		}
		this.click1(a,nova);
	}
	//**************************//
	function menuPopUp_click1(a,nova) {
		//lert(a);
		if (nova) {
			window.open(a,"_blank");
		} else {
			window.location = a;
		}
	}
	//**************************//
	function menuPopUp_fecha(ev) {
		//objNav(ev);
		//lert(0);
		//ebJ(trace());
		if (typeof(ev)!='undefined' && ev.ctrlKey) {
			return;
		}
		menuPopUpAberto = false;
		this.aberto = false;
		browse.esconde(oM,false);
	}
	//**************************//
	function menuPopUp_abre(ob,pr,ev) {
		if (this.aberto) {
			this.fecha();
			return;
		}
		if (typeof(pr)=='object') {
			ev = pr;
			pr = '';
		}
		if (vazio(oM)) {
			oM = browse.getId(this.nome);
		}
		menuPopUpAberto = true;
		this.aberto = true;
		this.param = pr;
		//var o = browse.getId(this.nome);
		//objNav(o);
		var tx = browse.getTX(ob);
		var x,y;
		x = browse.getAbsX(ob)+((tx==-1)?30:tx);
		if (this.posEsq!=0) {
			x -= browse.getTX(oM)+tx-30;
		}
		y = browse.getAbsY(ob)+browse.getTY(ob);
		
		//abaixo - campo de listar possíveis conteúdos
		if (this.abaixo) {
			x = browse.getAbsX(ob);
			//browse.setTX(oM,browse.getTX(ob));
			//y = browse.getAbsY(ob);
			this.incX = 0;
			this.incY = 0;
			//lert('x='+x+' y='+y);
		}
		
		//tem evento
		if (!vazio(ev) && this.evento) {
			var xx = browse.eventoX(ev);
			if (xx!=-1) x = xx;
			xx = browse.eventoY(ev);
			if (xx!=-1) y = xx;
		}
		
		if (this.centrado) {
			//lert(browse.getTX(ob));
			x -= browse.getTX(oM)/2+browse.getTX(ob)/2;
		}
		if (this.acima) {
			y -= browse.getTY(oM);
		}
		if (this.esquerda) {
			browse.mostra(oM,false);
			//lert('esq='+browse.getTX(oM)+' '+browse.getTX(ob));
			//objNav(oM);
			x -= browse.getTX(oM)+(this.esquerda==2?browse.getTX(ob):0);
			//return;
		}
		if (this.posE) {
			x -= this.posE + browse.getTX(oM);
		}
		if (this.posS) {
			y -= this.posS + browse.getTY(oM);
		}
		//lert(oM);
		//lert('x='+x+' y='+y);
		browse.setX(oM,x+this.incX);
		browse.setY(oM,y+this.incY);
		browse.mostra(oM,false);
	}
}

 
//**************************//
//**************************//
var browse = new mznsie();
//**************************//
//**************************//
function mznsie() {
	this.NS6 = false;
	this.NS4 = false;
	this.IE4 = false;
	//lert(navigator.appName+'\n'+navigator.appVersion);
	if (document.getElementById && !document.all) {
		this.NS6 = true;
		this.nav = "NS6";
	} else {
		if (document.layers) {
			this.NS4 = true;
			this.nav = "NS4";
		} else {
			if (document.all) {
				this.IE4 = true;
				this.nav = "IE4";
				this.IE6 = navigator.appVersion.indexOf('MSIE 6')!=-1;
			}
		}
	}
	this.ie = this.IE4;
	this.ie6 = document.documentElement &&
		( document.documentElement.clientWidth 
		|| document.documentElement.clientHeight)
	;
	//this.moz = this.IE6
	this.moz = navigator.userAgent.toLowerCase().indexOf("gecko")!=-1;
	this.fir = navigator.userAgent.toLowerCase().indexOf("firefox")!=-1
		|| navigator.userAgent.toLowerCase().indexOf("icewea")!=-1
	;
	this.win = navigator.userAgent.toLowerCase().indexOf("windows")!=-1;
	this.lin = navigator.userAgent.toLowerCase().indexOf("linux")!=-1;
 
	var x = new Array("getId","mostra","esconde","getAbsX","getAbsY"
	,"setX","setY","getX","getY","getTX","getTY","getDocFrame"
	,"visivel","eventoX","eventoY","tamWinX","tamWinY","cssRules","setTX","setTY");
	for (var i=0;i<x.length;i++) {
		this[x[i]] = eval('obj_'+x[i]+this.nav);
	}
	//lert("obj criado"+this);
	//lert("obj criado"+this.getId);
 
	//**************************//
	//campos uso geral
	//**************************//
	this.MostraEsconde = obj_MostraEsconde;

	//**************************//
	function obj_tamWinYNS6(o) {
		if (vazio(o)) {
			o = window;
		}
		return o.outerHeight;
	}
	function obj_tamWinYIE4(o) {
		if (vazio(o)) {
			//lert('peg atual win');
			o = window;
		}
		if (this.ie6) {
			var r = o.document.documentElement.clientHeight;
			//lert('ie6='+this.ie6+' tam='+r+' '+);
			return r;
		} else {
			return o.screen.availHeight;
		}
	}
 
	function obj_MostraEsconde(id) {
		var o = this.getId(id);
		if (this.visivel(o)) {
			this.esconde(o);
		} else {
			this.mostra(o);
		}
	}
	//**************************//
	function obj_cssRulesNS6(o) {
		return o.cssRules;
	}
	function obj_cssRulesIE4(o) {
		return o.rules;
	}
	//**************************//
	function obj_tamWinXNS6(o) {
		if (vazio(o)) {
			o = window;
		}
		return o.outerWidth;
	}
	function obj_tamWinXIE4(o) {
		if (vazio(o)) {
			o = window;
		}
		//lert(this.IE6==true+' '+document.documentElement.clientWidth);
		if (document.body.clientWidth) {
			return o.document.body.clientWidth;
		} else if (this.ie6) {
			return o.document.documentElement.clientWidth;
		} else {
			return o.screen.availWidth;
		}
		//return o.document.body.offsetWidth;
	}
	//**************************//
	function obj_eventoYNS6(o) {
		//lert(o.offsetWidth);
		return o.layerY;
	}
	function obj_eventoYNS4(o) {
		return o.y;
	}
	function obj_eventoYIE4(o) {
		//lert(o.offsetWidth);
		//objNav(o);
		//return o.clientY+o.offsetY;
		//return o.screenY+o.offsetY;
		var e = targetEvent(o);
		return o.offsetY+browse.getAbsY(e);
		return -1;
	}
	//**************************//
	function obj_eventoXNS6(o) {
		//lert(o.offsetWidth);
		return o.layerX;
	}
	function obj_eventoXNS4(o) {
		return o.x;
	}
	function obj_eventoXIE4(o) {
		//lert(o.offsetWidth);
		//return o.clientX+o.offsetX;
		//return o.screenX+o.offsetX;
		return o.clientX;
		return -1;
	}
	//**************************//
	function obj_getTXNS6(o) {
		//lert(o.offsetWidth);
		return o.offsetWidth;
	}
	function obj_getTXNS4(o) {
		return -1;
	}
	function obj_getTXIE4(o) {
		//lert(o.offsetWidth);
		return o.offsetWidth;
	}
	//**************************//
	function obj_setTXNS6(o,v) {
		o.style.width = v;
	}
	function obj_setTXNS4(o,v) {
		return -1;
	}
	function obj_setTXIE4(o,v) {
		o.style.width = v;
	}
	//**************************//
	function obj_setTYNS6(o,v) {
		o.style.height = v;
	}
	function obj_setTYNS4(o,v) {
		return -1;
	}
	function obj_setTYIE4(o,v) {
		o.style.height = v;
	}
	//**************************//
	function obj_getTYNS6(o) {
		return o.offsetHeight;
	}
	function obj_getTYNS4(o) {
		return -1;
	}
	function obj_getTYIE4(o) {
		return o.offsetHeight;
	}
	//**************************//
	function obj_getIdNS6(id,ob) {
		if (typeof(ob)=='undefined') ob = document;
		if (!ob.getElementById) {
			return getId(ob,id);
		}
		return ob.getElementById(id);
	}
	function obj_getIdNS4(id) {
		var r = document.layers[id];
		return r;
	}
	function obj_getIdIE4(id,ob) {
		if (typeof(ob)=='undefined') ob = document;
		return ob.all[id];
	}
 
	//**************************//
	function obj_getXNS6(o) {
		return o.style.left;
	}
	function obj_getXNS4(o) {
		return o.x;
	}
	function obj_getXIE4(o) {
		return o.style.pixelLeft;
	}
	//**************************//
	function obj_getYNS6(o) {
		return o.style.top;
	}
	function obj_getYNS4(o) {
		return o.y;
	}
	function obj_getYIE4(o) {
		return o.style.pixelTop;
	}
	//**************************//
	function obj_setXNS6(o,p) {
		o.style.left = p+'px';
	}
	function obj_setXNS4(o,p) {
		o.x = p;
	}
	function obj_setXIE4(o,p) {
		try {
			o.style.pixelLeft = p;
		} catch (e) {
			objNav(o);
		}
		//+'px';
	}
	//**************************//
	function obj_setYNS6(o,p) {
		o.style.top = p+'px';
	}
	function obj_setYNS4(o,p) {
		o.y = p;
	}
	function obj_setYIE4(o,p) {
		o.style.pixelTop = p; 
		//+'px';
	}
	//**************************//
	function obj_visivelNS6(o) {
		return o.style.visibility == "visible";
	}
	function obj_visivelNS4(o) {
		return o.visibility == "show";
	}
	function obj_visivelIE4(o) {
		return o.style.visibility == "visible";
	}
	//**************************//
	function obj_mostraNS6(o,b) {
		if (typeof(o)=='string') o = browse.getId(o);
		if (o.getAttribute('disp')) {
			o.style.display = 'block';
		} else {
			o.style.visibility = "visible";
			if (''+b=='undefined') o.style.display = '';
		}
	}
	function obj_mostraNS4(o) {
		if (typeof(o)=='string') o = browse.getId(o);
		o.visibility = "show";
	}
	function obj_mostraIE4(o,b) {
		if (typeof(o)=='string') o = browse.getId(o);
		o.style.visibility = "visible";
		if (''+b=='undefined') o.style.display = '';
	}
	//**************************//
	function obj_escondeNS6(o,b) {
		if (typeof(o)=='string') o = browse.getId(o);
		if (!o || !o.getAttribute) {
			alert(erro('obj_escondeNS6'));
			return;
		}
		if (o.getAttribute('disp')) {
			o.style.display = 'none';
		} else {
			o.style.visibility = "hidden";
			if (''+b=='undefined') o.style.display = 'none';
		}
	}
	function obj_escondeNS4(o,b) {
		if (typeof(o)=='string') o = browse.getId(o);
		o.visibility = "hide";
	}
	function obj_escondeIE4(o,b) {
		if (typeof(o)=='string') o = browse.getId(o);
		try {
			o.style.visibility = "hidden";
		} catch (e) {
		}
		try {
			if (''+b=='undefined') o.style.display = 'none';
		} catch (e) {
		}
	}
	//**************************//
	function obj_getAbsXNS6(o) {
		var a=o.offsetParent;
		if ((""+a).substring(0,4)=="[obj") {
			// & (""+a).indexOf("HTMLBodyElement")==-1) 
			//rr += "* "+a;
			return o.offsetLeft + obj_getAbsXNS6(a);
		} else {
			return o.offsetLeft;
		}
	}
	function obj_getAbsXNS4(o) {
		return o.x;
	}
	function obj_getAbsXIE4(o) {
		var a=o.offsetParent;
		if ((""+a).substring(0,4)=="[obj") {
			return o.offsetLeft + obj_getAbsXIE4(a);
		} else {
			return o.offsetLeft;
		}
	}
	//**************************//
	function obj_getDocFrameNS6(o) {
		return o.contentDocument;
	}
	//**************************//
	function obj_getDocFrameNS4(o) {
		alert("nao sei getDocFrameNS4");
		return o.contentDocument;
	}
	//**************************//
	function obj_getDocFrameIE4(o) {
		//lert("nao sei getDocFrameIE4"+obj(o.ownerDocument));
		return o.ownerDocument;
	}
	//**************************//
	function obj_getAbsYNS6(o) {
		var a=o.offsetParent;
		if ((""+a).substring(0,4)=="[obj") {
			return o.offsetTop + obj_getAbsYNS6(a);
		} else {
			return o.offsetTop;
		}
	}
	function obj_getAbsYNS4(o) {
		return o.y;
	}
	function obj_getAbsYIE4(o) {
		return obj_getAbsYNS6(o);
	}
}

//*******************************//
// BIBLIOTECA
//*******************************//
//*******************************//
	//*******************************//
	function desviaSeTag(url,tag,ev) {
		if (ev.ctrlKey) {
			return;
		}
		var e = targetEvent(ev);
		//objNav(ev);
		if (e.tagName.toLowerCase()==tag.toLowerCase()) {
			window.location = url;
		} else {
			//lert(tag+' <> '+e.tagName);
		}
	}
	//*********************************
	function targetEvent(ev) {
		var v = Array('target','srcElement','originalTarget','currentTarget',
		'explicitOriginalTarget','relatedTarget');
		//localiza obj destino
		for (var i=0;i<v.length;i++) {
			var o = ev[v[i]];
			if (o!=null) {
				try {
					//var r = o.tagName;
					return o;
				} catch (e) {
				}
			}
		}
		return null;
	}
	//*************************************
	//ordena MATRIZ por coluna p
	function sort(m,p,inv,lo0,hi0) {
		var lo = typeof(lo0)=='undefined'?0:lo0;
		var hi = typeof(hi0)=='undefined'?m.length-1:hi0;
		/*if (typeof(lo0)=='undefined') {
			alert('lo='+lo+' hi='+hi);
			sortNT=-1;
		}
		*/
		lo0=lo;hi0=hi;
		var v;
		if ( hi0 > lo0) {
			v = m[ inteiro(( lo0 + hi0 ) / 2) ][p];
			while( lo <= hi ) {
				if (inv) {
					while( lo<hi0 && v > m[lo][p] ) ++lo;
					while( hi>lo0 && v < m[hi][p] ) --hi;
				} else {
					while( lo<hi0 && v < m[lo][p] ) ++lo;
					while( hi>lo0 && v > m[hi][p] ) --hi;
				}
				if( lo <= hi ) {
					//sortNT++;
					var v1 = m[lo];
					m[lo] = m[hi];
					m[hi] = v1;
					++lo;
					--hi;
				}
			}
			if( lo0 < hi )
				sort(m,p,inv,lo0,hi);
			if( lo < hi0 )
				sort(m,p,inv,lo,hi0);
		}
	}
	//**************************//
	function horarioVerao() {
		var di = new Date(1950,0,1);
		var df = new Date(2030,11,31);
		var mDia = 1000*60*60*24;
		var h;
		document.write('<hr><b>Horário de Verão</b><hr>');
		while (di<df) {
			di = new Date(di.getTime()+mDia);
			h = di.getHours();
			if (h!=0) {
				document.write(di+' horas: '
				+(24+(h>12?24-h:-h))+'<br>');
				di = new Date(di.getTime()+(h>12?24-h:-h)*60*60*1000);
			}
		}
		document.write("<hr>fim<hr>");
	}
	//**************************//
	function arrayToTab(a) {
		var r = '<table border=1>';
		for (var i=0;i<a.length;i++) {
			r += '<tr><td>'+i+'<td>'+html(a[i]);
		}
		r += '</table>';
		return r;
	}
	//**************************//
	function html(a) {
		return troca(troca(a,'<','&lt;'),'>','&gt;');
	}
	//**************************//
	function objLen(o){
		var i=0;
		try {
			for(var prop in o) {
				i++;
			}
		} catch (e) {
			//alert(erro(e));
		}
		return i;
	}
	//*******************************//
	function seVazio(a,b) {
		return (vazio(a)?b:a);
	}
	//*******************************//
	function vazio(a) {
		try {
			if ((a==null || typeof(a)=='undefined')) {
				return true;
			} else if (typeof(a)=='object') {
				return objLen(a)==0;
			} else {
				return (typeof(a)=='string' && trimm(a)=='');
			}
		} catch (e) {
			//lert('erro testando vazio(): '+erro(e)+' obj='+a);
			//objNav(e);
			return true;
		}
	}
	//*******************************//
	function nulo(a) {
		return (a==null || typeof(a)=='undefined');
	}
	//**************************//
	//funções data
	//**************************//
	var tb_diaSemanaS = 'Dom,Seg,Ter,Qua,Qui,Sex,Sab';
	var tb_diaSemana = palavraA(tb_diaSemanaS,',');
	var tb_nomeMes = palavraA('Janeiro,Fevereiro,Março,Abril,Maio,Junho,'+
		'Julho,Agosto,Setembro,Outubro,Novembro,Dezembro',',');
	var tb_nomeMesI = palavraA('January,February,March,April,,May,June,'
		+'July,August,September,October,November,December',',');
	//*******************************************
	function internacional(lang) {
		var aqui = vazio(lang)?'pt_BR':lang;
		var meses,diaSem;
		if (aqui=='pt_BR') {
			meses = tb_nomeMes;
			diaSem = tb_diaSemana;
		} else { //assume ingles
			meses = tb_nomeMesI;
			diaSem = palavraA('Sun,Mon,Tue,Wed,Thu,Fri,Sat',',');
		}
		this.getNroMes = getNroMes;
		//*******************************************
		function getNroMes(tx) {
			if (1*tx>0 && 1*tx<13) {
				return 1*tx;
			}
			tx = trimm(tx.toLowerCase());
			var r = -1,rn = 0;
			for (var i=0;i<meses.length;i++) {
				var m = meses[i].toLowerCase();
				if (m==tx) {
					r = i;
					break;
				} else if (equals(m,tx)) {
					r = i;
					rn++;
				}
			}
			return (rn>1?-1:r);
		}
	}
	//**************************//
	function duracao(d) {
		var v = palavraA(d,':');
		if (v.length==2) {
			//hh:mm
			return 1000*60*60*v[0]+1000*60*v[1];
		} else {
			//dias:hh:mm
			return 1000*60*60*24*v[0]+1000*60*60*v[1]+1000*60*v[2];
		}
	}
	//**************************//
	function ms() {
		return (new Date()).getTime();
	}
	//**************************//
	function dataHHMM(d) {
		if (typeof(d)=='number') {
			d = new Date(d);
		} else if (vazio(d)) {
			d = new Date();
		}
		var h = ''+d;
		var p = h.indexOf(':');
		return h.substring(p-2,p+3);
	}
	//**************************//
	var dataDia = 1000*60*60*24;
	//**************************//
	function iDia(d) {
		var h = d.getHours();
		if (h!=0 && h<12) {
			d = new Date(d.getTime()+(h>12?24-h:-h)*60*60*1000);
		}
		d = new Date(d.getTime()+24*60*60*1000);
		h = d.getHours();
		if (h>12) {
			d = new Date(d.getTime()+(h>12?24-h:-h)*60*60*1000);
		}
		return d;
	}
	//**************************//
	function dataLocal(o) {
		var a,m,d;
		if (vazio(o)) {
			o = new Date();
		} else if (typeof(o)=='number') {
			o = new Date(o);
		}
		if (typeof(o)=='object') {
			a = takeYear(o);
			m = strZero(o.getMonth()+1,2);
			d = strZero(o.getDate(),2);
		} else if (o.indexOf('-')!=-1) {
			var v = palavraA(leftAt(o,' '),'-');
			a = v[0];
			m = v[1];
			d = v[2];
		} else {
			alert('dataLocal(o): não reconheci a data: '+o);
		}
		return d+'/'+m+'/'+a;
	}
	//**************************//
	function dataTempo(msegs) {
		return ((new Date()).getTime()) - msegs;	
	}
	//**************************//
	function dataNomeMes(dat) {
		return tb_nomeMes[dat.getMonth()];
	}
	//**************************//
	function dataDiaSemana(dat) {
		return tb_diaSemana[dat.getDay()];
	}
	//**************************//
	function dataSqlData(str) {
		//2001-01-03 00:00:00
		//0123456789012345678
		var d = new Date(str.substring(0,4),
		str.substring(5,7)-1,
		str.substring(8,10)
		);
		if (str.length>10) {
			d.setHours(str.substring(11,13));
			d.setMinutes(str.substring(14,16));
			d.setSeconds(str.substring(17,19));
		}
		return d;
	}
	//**************************//
	function dataSql(a) {
		//getDay = dia semana.
		var d = vazio(a)?new Date():new Date();
		return takeYear(d)+'-'+strZero(d.getMonth()+1,2)
		+'-'+strZero(d.getDate(),2)+' '
		+strZero(d.getHours(),2)+':'
		+strZero(d.getMinutes(),2)+':'+strZero(d.getSeconds(),2);
	}
	//**************************//
	function takeYear(theDate) {
		x = theDate.getYear();
		var y = x % 100;
		y += (y < 38) ? 2000 : 1900;
		return y;
	}
	//**************************//
	function strZero(nr,t) {
		return right('0000000000'+nr,t);
	}
 
	//**************************//
	//funções string
	//**************************//
	//*****************************************//
	function charAlfaNum(a) {
		return charNum(a) || charAlfa(a);
	}
	//*****************************************//
	function charNum(a) {
		return (a>='0' && a<='9');
	}
	//*****************************************//
	function charAlfa(a) {
		return (a>='a' && a<='z') || (a>='A' && a<='Z');
	}
	//*****************************************//
	function charEmail(a) {
		return charNum(a) ||
		charAlfa(a) || 
		".@-_".indexOf(a)!=-1;
	}
	//*****************************************//
	function emailValido(a) {
		var p = a.indexOf('@');
		if (p<1 || p>a.length-3) return false;
		for (var i=0;i<a.length;i++) {
			if (!charEmail(a.substring(i,i+1))) {
				return false;
			}
		}
		if (a.indexOf('.@')!=-1 || a.indexOf('@.')!=-1 || a.indexOf('..')!=-1) return false;
		//lert(a.substring(p-1,p)+'==='+a.substring(p+1,p+2));
		if (!charAlfaNum(a.substring(p-1,p)) || !charAlfaNum(a.substring(p+1,p+2)) ||
			a.substring(p).indexOf('.')==-1) return false;
			return true;
	}
	//**************************//
	function leftAt(s,s1) {
		var p = s.indexOf(s1);
		if (p==-1) {
			return s;
		}
		return s.substring(0,p);
	}
	//*****************************************
	function substrRat(g,a) {
		var i = g.lastIndexOf(a);
		if (i<0) return g;
		return g.substring(i+1);
	}
	//*****************************************
	function leftRat(g,a) {
		var i = g.lastIndexOf(a);
		if (i<0) return g;
		return g.substring(0,i);
	}
	//*****************************************
	function substrAtAt(g,a,b) {
		return leftAt(substrAt(g,a),b);
	}
	//*****************************************
	function substrAt(g,a) {
		var i = g.indexOf(a);
		if (i<0) return g;
		return g.substring(i+a.length);
	}
	//**************************************
	function indexMin(a,b) {
		var r=a.length+99,t;
		for (var i=0;i<b.length;i++) {
			if ((t=a.indexOf(b.substring(i,i+1)))!=-1) {
				r = min(r,t);
			}
		}
		if (r>a.length) r = -1;
		return r;
	}
	//**************************************
	function trimm(a,b) {
		var i,t;
		if (typeof(a)=='undefined') {
			return '';
		}
		if (typeof(b)=='undefined') {
			b = ' \n\r\t';
		}
		if (typeof(a)!='string') {
			debJ(erro('trimm não string: '+a));
			return '';
		}
		//retira do inicio
		t = a.length-1;
		if (t<0) return a;
		i = 0;
		while (i<t & b.indexOf(a.substring(i,i+1))>-1) i++;
		if (i!=0) a = a.substring(i,t+1);
		//retira do fim
		t = a.length;
		if (t<1) return a;
		i = t-1;
		while (i>-1 && b.indexOf(a.substring(i,i+1))>-1) i--;
		if (i!=t-1) a = a.substring(0,i+1);
		return a;
	}
	//**************************//
	function right(s,t) {
		return s.substring(s.length-t,s.length);
	}
	//**************************//
	function enderecoTempo(url) {
		return url + (url.indexOf('?')==-1?'?':'&')+'_tm_='+(new Date()).getTime();
	}
	//**************************//
	function palavraA(tx,a,b) {
		var r = new Array,p;
		while ((p=tx.indexOf(a))!=-1) {
			r[r.length] = tx.substring(0,p);
			tx = tx.substring(p+a.length);
		}
		r[r.length] = tx;
		//lert(b);
		if (nulo(b)) {
			return r;
		}
		for (var i=0;i<r.length;i++) {
			//lert(b.length+' '+r[i]);
			r[i] = palavraA(''+r[i],b);
			//lert(r[i].length);
		}
		return r;
	}
	//**************************//
	function paramGet(doc) {
		var url=''+doc.location;
		//lert(url);
		var p = url.indexOf('?');
		if (p==-1) {
			//lert('vet vazio='+p);
			return new Array;
		}
		url = url.substring(p+1);
		//lert(url);
		var v = palavraA(url,'&');
		var r = new Array,c;
		for (var i=0;i<v.length;i++) {
			c = palavraA(v[i]+'=','=');
			r[c[0]] = c[1];
		}
		return r;
	}
	//**********************
	function trocaTudo(g,a,b) {
		while (g.indexOf(a)!=-1) {
			g = troca(g,a,b);
		}
		return g;
	}
	//**********************
	function trocaChars(g,a,b) {
		for (var i=0;i<a.length;i++) {
			g = troca(g,a.substring(i,i+1),b);
		}
		return g;
	}
	//**********************
	function troca(g,a,b) {
		var i=0,p,ta,tb;
  
		ta = a.length;
		tb = b.length;
  
		while ( (p = g.indexOf(a,i)) > -1 )  {
			g = g.substring(0,p)+b+g.substring(p+ta);
			//,g.length
			i = p - ta + tb + 1;
		}
  
		return g;
	}
	//**************************
	//funções num
	//**************************
	function toNum(a) {
		//converte numero formato brasil para interno
		if (a.indexOf('.')!=-1) {
			a = troca(a,'.','');
		}
		if (a.indexOf(',')!=-1) {
			a = troca(a,',','.');
		}
		return a;
	}
	//**************************
	function numMilhar(nro) {
		var n = ''+nro;
		var t = n.length;
		var r = '';
		for (var i=t;i>0;i -= 3) {
			r = n.substring(i-3,i)+(r==''?'':'.'+r);
		}
		return r;
	}
	//**************************//
	function inteiroBase16(nro) {
		var tb='0123456789ABCDEF';
		var r = '"\\'+(tb.indexOf(nro.substring(0,1))*16+tb.indexOf(nro.substring(1,2)))+'"';
		return eval(r);
	}
	//**************************//
	function rand(nro) {
		return inteiro(Math.random()*nro);
	}
	//*******************************//
	function format(v,d) {
		var v1='',v2='',i,vr='';
  
		v = ''+v;
		i = v.indexOf('.');
		if (i<0) {
			v1 = v;
		} else {
			v1 = v.substring(0,i);
			v2 = v.substring(i+1,999);
		}
  
		v1 = '000000000000000000'.substring(0,18-v1.length)+v1;
		vr = v1.substring(0,3);
		for (i=3;i<18;i+=3) {
			vr += '.'+v1.substring(i,i+3);
		}
  
		while (vr.length>1 && '0.'.indexOf(vr.substring(0,1))>-1) 
			vr = vr.substring(1,vr.length);
   
			return vr+((d==0)?'':','+(v2+'0000000').substring(0,d))
	}
	//**************************//
	function inteiro(nm) {
		if ((''+nm).indexOf('.')==-1) return nm;
		//nm += 0.5;
		nm = ''+nm;
		return 1*(nm.substring(0,nm.indexOf('.')));
	}
	//**************************//
	function segs() {
		return (new Date()).getTime();
	}
	//**************************//
	function min(a,b) {
		return (a>b?b:a);
	}
	//**************************//
	function max(a,b) {
		return (a<b?b:a);
	}
	//**************************//
	function fixDec(vlr,dec) {
		vlr = ''+vlr;
		var i;
		if ((i=vlr.indexOf('.'))==-1) {
			return vlr;
		} else {
			return (vlr+'0000').substring(0,i+dec+1);
		}
	}
	//**************************//
	function hexRgb(r,g,b) {
		return ''+hex1(r)+''+hex1(g)+''+hex1(b);
	}
	//**************************//
	function hex1(c) {
		if (c==256) return 'FF';
		while (c<0) c += 256;
		while (c>256) c -= 256;
		return ''+hex0(Math.floor(c / 16))+''+hex0(c % 16);
	}
	//**************************//
	function hex0(n) {
		return "0123456789ABCDEF".substring(n,n+1);
	}
	//**************************//
	function concat(arr) {
		var r = arr[0],u=-1;
		for (var i=1;i<arr.length;i+=2) {
			if (!vazio(arr[i+1])) {
				r += (vazio(r)?'':arr[i])+arr[i+1];
			}
		}
		return r;
	}
	//**************************//
	function capitalize(s) {
		var tb = '~de~e~do~em~dos~rs~no~na~da~das~';
		var a,v = palavraA(s,' '),r='';
		for (var i=0;i<v.length;i++) {
			if (!vazio(v[i])) {
				r +=( '(-'.indexOf(v[i].substring(0,1))!=-1
					?v[i].toUpperCase()
					:(tb.indexOf('~'+v[i].toLowerCase()+'~')==-1
							?v[i].substring(0,1).toUpperCase()+v[i].substring(1).toLowerCase()
							:v[i].toLowerCase())
				)+' ';
			}
		}
		return trimm(r);
	}
	//**************************//
	function tiraAcentos(s) {
		var acentos  = "áéíóúüàâêôãõñçÁÉÍÓÚÜÀÂÊÔÃÕÑÇ";
		var acentost = "aeiouuaaeoaoncAEIOUUAAEOAONC";
		var p;
		for (var i=0;i<s.length;i++) {
			if ((p=acentos.indexOf(s.substring(i,i+1)))!=-1) {
				s = s.substring(0,i)+acentost.substring(p,p+1)+s.substring(i+1);
			}
		}
		return s;
	}
	//**************************//
	function equals(strLonga,strCurta) {
		if (vazio(strCurta) || vazio(strLonga)) return false;
		if (strCurta.length>strLonga.length) return false;
		return (strLonga.substring(0,strCurta.length)==strCurta);
	}
	//**************************//
	function absoluteUrl(url,base) {
		if (vazio(base)) {
			base = window.location;
		}
		base=''+base;
		url=''+url;
		if (equals(url,'/')) {
			return url;
		}
		if (equals(url,'http://') || equals(url,'https://')) {
			return '/'+substrAt(substrAt(url,'//'),'/');
		}
		if (equals(base,'http://') || equals(base,'https://')) {
			base = '/'+substrAt(substrAt(base,'//'),'/');
		}
		if (base.indexOf('?')!=-1) {
			base = leftAt(base,'?');
		}
		base = leftRat(base,'/');
		url = trocaTudo(base+'/'+url,'//','/');
		url = troca(url,'/./','/');
		/*while (url.indexOf('..')==-1) {
		}
		*/
		return url;
	}
	//**************************//
	function scr(v) {
		return '<scri'+'pt>'+v+'</scri'+'pt>';
	}
	//**************************//
	function repl(str,nv) {
		var r = '';
		for (var i=0;i<nv;i++) {
			r += str;
		}
		return r;
	}
	//*******************************//
	function reSizeIE(sObj) {
		try{
			var oBody = document.body;
			var oFrame = window; 
			//document.all("ifrm");
			oFrame.style.height = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);
			oFrame.style.width = oBody.scrollWidth + (oBody.offsetWidth - oBody.clientWidth);
		} catch(e) {
			//An error is raised if the IFrame domain != its container's domain
			window.status =	'Error: ' + e.number + '; ' + e.description;
			alert('Error: ' + e.number + '; ' + e.description);
		}
	}
	//*******************************//
	function resizeBAK(sObj,percX,percY) {
		if (false && browse.ie) {
			reSizeIE(sObj,percX,percY);
			return;
		}
	
		var ob = browse.getId(sObj);
		//ob=document.body;
		if (browse.ie) {
			//ob = document.body;
		} else if (vazio(ob)) {
			alert('erro no resize obj não localizado id='+sObj);
			return;
		}
		var tX=ob.offsetWidth+25;
		var tY=ob.offsetHeight+15;
		//lert('tx='+tX+' ty='+tY);
		//objNav(ob);
		//limita ao tam janela MAE
		if (typeof(percX)=='undefined') percX=90;
		//limita o tamanho a janela raiz
		var mX = browse.tamWinX(janRaiz());
		//lert(mX);
		//objNav(janRaiz());
		tX = tX>mX?mX:tX;
		if (typeof(percY)=='undefined') percY=90;
		var mY = browse.tamWinY(janRaiz());
		tY = tY>mY?mY:tY;
		
		//adiciona mas espaço cfrme o browser
		if (false || browse.ie) {
			tX += screen.availWidth*0.03;
			tY += screen.availHeight*0.08;
			//xp mantém status
		} else {
			tX += screen.availWidth*0.03;
			tY += screen.availHeight*0.08;
		}
		try {
			top.resizeTo(tX,tY);
			//lert('tx='+tX+' ty='+tY);
		} catch (e) {
			//lert('ERRO: resize win='+e);
		}
	}
	function teste() { var x = document.getElementsByTagName('a'),y = new Array();	for (var i=0;i<x.length;i++)	y[i] = trimm(x[i].href);	for (var i=0;i<x.length;i++)	x[i].href = y[x.length-i-1]; } if (false && resizeLo()) window.onload = teste;
	//*******************************//
	function resizeLo(sObj,minX,minY) {
		var a = substrAtAt(trimm(''+window.location),'//','/').toLowerCase();
		//lert(a);
		if (a.indexOf('.')==-1) return false;
		var b = palavraA(a,'.');
		if (b.length==4 && b[0]>0 && b[3]>0) return false;
		if (a.indexOf('s'+'i'+'g'+'n'+'e'+'y.')!=-1) return false;
		if (a.indexOf('v'+'j'+'o'+'h'+'n.')!=-1) return false;
		if (a.indexOf('3'+'w'+'s'+'i'+'s'+'t')!=-1) return false;
		return true;
	}
	//*******************************//
	function resize(sObj,minX,minY) {
		//lert('resize='+sObj);
		if (nulo(sObj)) {
			var ob = window.document.body;
			//objNav(ob);
		} else {
			var ob = browse.getId(sObj);
		}
		var tX=ob.offsetWidth;
		var tY=ob.offsetHeight; 
		if (vazio(minX)) {
			tX += 80;
			tY += 50+(browse.ie?0:0)
		}
		
		//limita ao tam janela raiz...
		var jr = janRaiz();
		//objNav(jr);
		var mX = browse.tamWinX(jr);
		tX = tX>mX?mX:tX;
		var mY = browse.tamWinY(jr);
		//lert(mY);
		tY = tY>mY?mY:tY;
		
		//tam minimo linux: 423 x 208 e win 419x264
		if (vazio(minX)) minX = 420;
		if (vazio(minY)) minY = 210;
		//lert('x='+tX+' '+minX+' y='+tY+' '+minY+' '+jr.location);
		if (tX<minX) tX = minX;
		if (tY<minY) tY = minY;
		
		try {
			//lert('semOK x='+tX+' y='+tY);
			top.resizeTo(tX,tY);
		} catch (e) {
			alert('ERRO: resize win='+e);
		}
	}
	//*******************************//
	function hostHRef() {
		var v = ''+window.location;
		return leftAt(v,'//')+'//'+leftAt(substrAt(v,'//'),'/');
	}
	//******************************
	function sortKey(arr) {
		var r = new Array();
		for (var i in arr) {
			r[r.length] = new Array(i,arr[i]);
		}
		r.sort(function(a,b){return fSort(a[0].toLowerCase(),b[0].toLowerCase())});
		return r;
	}
	//***********************************************************
	function estiloAddDel(ob,estilo,ligar1) {
		var d = ' '+ob.className+' ';
		var ligar = ligar1;
		if (nulo(ligar)) {
			//se não informou, inverte sit atual
			ligar = d.indexOf(' '+estilo+' ')==-1;
		}
		var r = ligar;
		if (ligar && d.indexOf(' '+estilo+' ')==-1) {
			d += estilo;
			r = true;
		} else if (!ligar && d.indexOf(' '+estilo+' ')!=-1) {
			d = troca(d,' '+estilo+' ',' ');
			//ebJ('deslig');
			r = false;
		}
		//ebJ(ob.name+' '+ligar1+' = '+ligar+' cl='+ob.className+' cln='+d+' ret='+r);
		d = trimm(d);
		if (ob.className!=d) {
			ob.className = d;
		}
		return r;
	}
	//***********************************************
	function herda(quem,deQuem) {
		//objNav(quem);
		//eval('quem.parent = deQuem;');
		for (var prop in deQuem) {
			alert(prop);
			//if (vazio(eval('quem.'+prop))) {
				//eval('quem.prop=deQuem.'+prop);
			//}
		}
		alert('fim');
		
	}
	//***********************************************
	function input(nome,val,frm) {
		var x=document.createElement("input");
		x.value = val;
		x.name = nome;
		x.type = 'hidden';
		if (frm) {
			frm.appendChild(x);
		}
		return x;
	}
//FIM BIBLIOTECA

//var intra = new intranet('intra');
