if (!self.g_IS)g_IS= new Is()
function getStyle(obj){
	if (g_IS.w3c) return obj.style
	else return obj
}
function Is() {
    var agent = navigator.userAgent.toLowerCase();
	this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns  = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
    this.ns2 = (this.ns && (this.major == 2));
    this.ns3 = (this.ns && (this.major == 3));
    this.ns4b = (this.ns && (this.minor < 4.04));
    this.ns4 = ((this.ns && (this.major >= 4))&&!(agent.indexOf('netscape6')!=-1));
	this.gek = (agent.indexOf('gecko')!=-1);
	this.ns6 = (agent.indexOf('netscape6')!=-1);
    this.ie   = (agent.indexOf("msie") != -1);
    this.ie3  = (this.ie && (this.major == 2));
    this.ie4  = (this.ie && (this.major == 4));
    this.ie5  = (this.ie && (this.major >= 4));
    this.op  =  (agent.indexOf("opera") != -1);
	this.w3c = ((agent.indexOf('netscape6')!=-1)||(this.ie && (this.major >= 4)));
}
if (g_IS.ns4){
   g_sSTYLE_REF 			= "";
   g_sDOC_REF 				= "document.layers";
   g_sDOC					="document."		// Netscape aceita visibility igual ao Explorer:
   g_sVISIBLE_REF 			= "show"			// setar style visibility como 'visible' ou 'hidden' 
   g_sHIDE_REF				="hide"				// buscar eh que tem diferenca 'show' e 'hide'g_sSTYLE_REF 			= ".style";
}
else{
   g_sSTYLE_REF				= ".style"
   g_sDOC_REF 				= "document.all";
   g_sDOC					=""
   g_sVISIBLE_REF 			= "visible" 	
   g_sHIDE_REF 				= "hidden"		   
}										
//
// funções de acessibilidade =================================================================
function pegaObjeto(sObj,oOrigem){
	if(!oOrigem) 
	{oOrigem=self 
	}
	if(!isObject(oOrigem))
	{ oOrigem=frames[oOrigem]
	  if (!oOrigem)
	     {var sOrigem=oOrigem ;
	     oOrigem=pegaObjeto(sOrigem,self.parent)}
	  if (!oOrigem)
	     {oOrigem=pegaObjeto(sOrigem,self.top);}
	  if (!oOrigem)
	    {alert('erro - frame não localizado:'+sOrigem);return}
	}
	if (g_IS.ns4) // netscape 4
	{   if  (oOrigem.document.forms[sObj])
		{   return oOrigem.document.forms[sObj]
		}
		for (var f=0;f<oOrigem.document.forms.length;f++)
		{   if (oOrigem.document.forms[f].elements[sObj])
			{   return oOrigem.document.forms[f].elements[sObj]
			}
		}
		if (oOrigem.document.images[sObj])
		{	return oOrigem.document.images[sObj]
		}
		if (oOrigem.document.links[sObj])
		{	return oOrigem.document.links[sObj]
		}
		if (oOrigem.document.anchors[sObj])
		{	return oOrigem.document.anchors[sObj]
		}
		if (oOrigem.document.applets[sObj])
		{	return oOrigem.document.applets[sObj]
		}
		if (oOrigem.document.layers[sObj])
		{	return oOrigem.document.layers[sObj]
		}
		var obj=null
		for (var l=0;l<oOrigem.document.layers.length;l++)
		{	obj=pegaObjeto(sObj,oOrigem.document.layers[l])
			if(obj)	return obj
		}
	}
	else 
	{	if (g_IS.ie4) //explorer 4 ou superior
			{if (oOrigem.document.all[sObj]) 
				{return oOrigem.document.all[sObj]}
			}
		else 
		{ 	if (g_IS.w3c) //netscape 6 e explorer 5 (w3c)
			{   var col=oOrigem.document.getElementsByName(sObj)
				if (col.length==1) return col[0]
				if (col.length>1) return col
				if (oOrigem.document.getElementById(sObj))
			 	return oOrigem.document.getElementById(sObj)
			}
	 	}
	}
	if(oOrigem.frames)
	{ 	if (oOrigem.frames[sObj]) return oOrigem.frames[sObj]
		for (var fr=0;fr<oOrigem.frames.length;fr++)
		{	obj=pegaObjeto(sObj,oOrigem.frames[fr])
			if(obj)	return obj
		}
	}
	return
}
// Verifica tipo de dado criado por alguma classe especifica ex: instanceOf([dfsfsd],Array) =true
function instanceOf(obj, constructor) 
{	if (!g_IS.ns4)	{return (eval("obj instanceof constructor"))	}
	while (obj != null) 
	{	if (obj == constructor.prototype) return true;       
		obj = obj.__proto__;
	}
	return false;
}
function isObject(obj){var stobj= typeof obj;return (stobj.indexOf("object")>=0)}
function isString(obj){var stobj= typeof obj;return (stobj.indexOf("string")>=0)}
function isDate(obj) {	return (obj&&obj.year)?true:false;}
function isArray(obj){return (obj&&obj.sort)?true:false}

function dw(div,stexto,frame){
if (!isObject(frame)) 
{ 
	if (frame) {frame=frames[frame];}
	else {frame=self}
}

sframe=(frame.name)?frame.name:((frame.title)?frame.title:frame.id)

if (!isObject(div))
{	oDiv=pegaObjeto(div,frame)
	if(!oDiv){if(top.debug)alert(div+", em "+sframe+" não encontrada");return false}
}
else oDiv=div
if (g_IS.ns4){
	oDiv.document.open(); 
  	oDiv.document.write(stexto);
	oDiv.document.close();
	}
else  	oDiv.innerHTML = stexto;	

/*else if (g_IS.w3c){ //Netscape 6 adotou innerHTML também, senão...
	rng = document.createRange();	rng.setStartBefore(oDiv);	htmlFrag = rng.createContextualFragment(stexto)
	while(oDiv.hasChildNodes()) oDiv.removeChild(oDiv.lastChild);
	oDiv.appendChild(htmlFrag);
	}*/
}
// The code by Captain <cerebrum@iname.com>
// Mead & Company, http://www.meadroid.com/wpm/
// fake print() for IE4.x
if ( !printIsNativeSupport() ){
  window.print = printFrame;
  }

function imprimirPrinc(){  
 	this.focus();
	if (!printIsNativeSupport() )
	  print(this)
	else 
	  window.print();
}

// main stuff
function printFrame(frame, onfinish) {
  if ( !frame ) frame = window;
  if ( frame.document.readyState !== "complete" &&
       !confirm("A página ainda não está completa! Continuar a impressão?") )
  {
    if ( onfinish ) onfinish();
    return;
  }

  if ( printIsNativeSupport() ) {
    /* focus handling for this scope is IE5Beta workaround,
       should be gone with IE5 RTM.
    */
    var focused = document.activeElement; 
    frame.focus();
    frame.self.print();
    if ( onfinish ) onfinish();
    if ( focused && !focused.disabled ) focused.focus();
    return;
  }

  var eventScope = printGetEventScope(frame);
  var focused = document.activeElement;

  window.printHelper = function() {
    execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
    printFireEvent(frame, eventScope, "onafterprint");
    printWB.outerHTML = "";
    if ( onfinish ) onfinish();
//    if ( focused && !focused.disabled ) focused.focus();
    window.printHelper = null;
  }

  document.body.insertAdjacentHTML("beforeEnd",
    "<object id=\"printWB\" width=0 height=0 \
    classid=\"clsid:8856F961-340A-11D0-A96B-00C04FD705A2\"></object>");

  printFireEvent(frame, eventScope, "onbeforeprint");
  frame.focus();
  window.printHelper = printHelper;
  setTimeout("window.printHelper()", 0);
}
// helpers
function printIsNativeSupport() {
  var agent = window.navigator.userAgent.toLowerCase();
  if  ((agent.indexOf('mozilla')!=-1) && (parseInt(navigator.appVersion) >= 4) && (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1))
    return true;
  var i = agent.indexOf("msie ")+5;
  return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1") < 0;
}

function printFireEvent(frame, obj, name) {
  var handler = obj[name];
  switch ( typeof(handler) ) {
    case "string": frame.execScript(handler); break;
    case "function": handler();
  }
}

function printGetEventScope(frame) {
  var frameset = frame.document.all.tags("FRAMESET");
  if ( frameset.length ) return frameset[0];
  return frame.document.body;
}


//- funções de navegação ======================================================================
 
function gerAjuda(sPagina){
sPagina=(sPagina!=null)?sPagina:Dados.document.title
 return window.open(g_sDIR_AJUDA+ sPagina,"AjudaWin","width=340,height=385,scrollbars=yes,dependent");
}

var AUXCOMUM ;

function gerPegaCookie(sChave){
  var sArg = sChave+"=";
  var nLenA = sArg.length;
  var nLenC = document.cookie.length;
  var i=0;
  while(i<nLenC){
    var j = i + nLenA;
	if (document.cookie.substring(i,j) == sArg)
	    return gerPegaCookieVal(j);
	i = document.cookie.indexOf(" ",i)+1;
	if (i==0) break;
  }
  return "";  
}

function gerPegaCookieVal(nOffset){
 if (document.cookie.length > 0) {
  var nEnd = document.cookie.indexOf(";",nOffset);
  if (nEnd == -1) nEnd = document.cookie.length;
  return unescape(document.cookie.substring(nOffset,nEnd));
  }
 else{
  return ""
 }
}
function gerGravaCookie(sChave,sValor){
  var sArgv = gerGravaCookie.arguments;
  var nArgc = gerGravaCookie.arguments.length;
  var sExpires = (nArgc>2)? sArgv[2]:null;
  var sPath = (nArgc>3)? sArgv[3]:null;
  var sDomain = (nArgc>4)? sArgv[4]:null;
  var bSecure = (nArgc>5)? sArgv[5]:null;
  document.cookie = sChave + "=" + escape(sValor) +
   ((sExpires == null)? "":(";expires="+sExpires.toGMTString())) +
   ((sPath == null)? "":(";path="+ sPath )) +
   ((sDomain == null)? "":(";domain="+ sDomain )) +
   ((bSecure == true)? ";secure":"");
}
//persistencia de forms em cookie para recuperacao posterior
/*
function gerPersisteForms(inframe)
{ 
	var posValor = ''
	var bExiste =false
	var sForms
	var titulo
	var sChecked = ""
try{
	titulo = inframe.document.title.toUpperCase()

    inframe=(!inframe)?this.window:inframe
	for (var i=0;i<inframe.document.forms.length;i++){	    
		for (var j=0;j<inframe.document.forms[i].elements.length;j++){
	       if (parent.parent.Auxiliar.document.forms[i].elements[j].name == inframe.document.forms[i].elements[j].name)
	       {	
				
				if (parent.parent.Auxiliar.document.forms[i].elements[j].type.toUpperCase()=="CHECKBOX")
				{						
					parent.parent.Auxiliar.document.forms[i].elements[j].checked = inframe.document.forms[i].elements[j].checked					
				}	
				else
					parent.parent.Auxiliar.document.forms[i].elements[j].value = inframe.document.forms[i].elements[j].value				
			}		
		}
         

	}
	
	for (var k=0;k<parent.parent.Navegacao.ArrPosNomes.length;k++)
		{
			
			if (titulo.search("-"+parent.parent.Navegacao.ArrPosNomes[k].toUpperCase()+"-")>=0)
			{				
				bExiste = true
				posValor = k
				break
			
			}	
			else
				bExiste = false				
			
			
			
		}	
	for (var h=0;h<inframe.document.forms.length;h++)
		{
			sForms =  sForms + "<form name='"+inframe.document.forms[h].name+"'>"
			for (var j = 0; j<inframe.document.forms[h].length;j++)		
			{
				if (inframe.document.forms[h].elements[j].type.toUpperCase()=='CHECKBOX')	
				{	
					if (inframe.document.forms[h].elements[j].checked)
						sChecked = "checked"
					else	
						sChecked = ""
					if (inframe.document.forms[h].elements[j].disabled)
					 	sChecked = sChecked + " Disabled "
					if (inframe.document.forms[h].elements[j].readOnly)
					 	sChecked = sChecked + " readOnly " 	
								
					sForms = sForms + "<INPUT type="+inframe.document.forms[h].elements[j].type+" name='"+inframe.document.forms[h].elements[j].name+"' "+sChecked+">"
				}	
				else
				{					
					if (inframe.document.forms[h].elements[j].type.toUpperCase()=='SELECT-ONE')	
					{	
						sChecked = ""
						if (inframe.document.forms[h].elements[j].disabled)
							sChecked = sChecked + " Disabled "
						if (inframe.document.forms[h].elements[j].readOnly)
							sChecked = sChecked +" readOnly "	
						sForms = sForms + "<SELECT "+sChecked+" name='"+inframe.document.forms[h].elements[j].name+"'>"						
						for (var iSel = 0 ; iSel<inframe.document.forms[h].elements[j].length ; iSel++)
						{
							if (inframe.document.forms[h].elements[j].options[iSel].selected)
								sSelected = "selected"
							else	
								sSelected = ""
							sForms = sForms + "<OPTION "+sSelected+" VALUE="+inframe.document.forms[h].elements[j].options[iSel].value+">"+inframe.document.forms[h].elements[j].options[iSel].text+"</OPTION>"
						}
						sForms = sForms + "</SELECT>"
					}
					else
					{
						if (inframe.document.forms[h].elements[j].type.toUpperCase()=='SELECT-MULTIPLE')	
						{	
							sChecked = ""
							if (inframe.document.forms[h].elements[j].disabled)
								sChecked = sChecked + " Disabled "
							if (inframe.document.forms[h].elements[j].readOnly)
								sChecked = sChecked +" readOnly "	
							sForms = sForms + "<SELECT "+sChecked+" MULTIPLE name='"+inframe.document.forms[h].elements[j].name+"'>"
							for (var iSel = 0 ; iSel<inframe.document.forms[h].elements[j].length ; iSel++)
							{
								if (inframe.document.forms[h].elements[j].options[iSel].selected)
									sSelected = "selected"
								else	
									sSelected = ""
								sForms = sForms + "<OPTION "+sSelected+" VALUE="+inframe.document.forms[h].elements[j].options[iSel].value+">"+inframe.document.forms[h].elements[j].options[iSel].text+"</OPTION>"
							}
							sForms = sForms + "</SELECT>"
						}
						else
						{
							if (inframe.document.forms[h].elements[j].type.toUpperCase()=='RADIO')	
							{
								sChecked = ""
								if (inframe.document.forms[h].elements[j].checked)
									sChecked = "checked"
								else	
									sChecked = ""
								if (inframe.document.forms[h].elements[j].disabled)
									sChecked = sChecked + " Disabled "
								if (inframe.document.forms[h].elements[j].readOnly)
									sChecked = sChecked +" readOnly "	
								sForms = sForms + "<INPUT type="+inframe.document.forms[h].elements[j].type+" name='"+inframe.document.forms[h].elements[j].name+"' "+sChecked+">"
							}	
							else
							{
								sChecked = ""
								if (inframe.document.forms[h].elements[j].disabled)
									sChecked = sChecked + " Disabled "
								if (inframe.document.forms[h].elements[j].readOnly)
										sChecked = sChecked +" readOnly "
								sForms = sForms + "<INPUT "+sChecked+" type="+inframe.document.forms[h].elements[j].type+" name="+inframe.document.forms[h].elements[j].name+" value='"+inframe.document.forms[h].elements[j].value+"'>"
							}	
						}   
				
					}
					
					
				}	
			}
			sForms =  sForms + "</form>"
		}
		if (bExiste){					
			parent.parent.Navegacao.ArrValores[posValor] = sForms						
			
		}
}		
catch(e)	{}
}
*/

// monta forms a partir do cookie
function gerRecupForms(inframe)
{	
	var titulo
	var objBody
	var bExiste = false
	var sForms = ""
	var posValor = 0	
try{	
	objBody = parent.parent.Auxiliar.document.body
	
	titulo = inframe.document.title.toUpperCase()
	
	objBody.innerHTML = ""
	
	inframe=(!inframe)?this.window:inframe
	for (var k=0;k<parent.parent.Navegacao.ArrPosNomes.length;k++)
	{
			
		if (titulo.search("-"+parent.parent.Navegacao.ArrPosNomes[k].toUpperCase()+"-")>=0)
		{				
			bExiste = true
			posValor = k
			break
		
		}	
		else
			bExiste = false				
			
	}		
	if (bExiste){				
		objBody.innerHTML  = parent.parent.Navegacao.ArrValores[posValor]
		
		
	}
		
	for (var i=0;i<inframe.document.forms.length;i++){
		for (var j=0;j<inframe.document.forms[i].elements.length;j++){
			if (parent.parent.Auxiliar.document.forms[i].elements[j].name == inframe.document.forms[i].elements[j].name){				
				if (inframe.document.forms[i].elements[j].type.toUpperCase()=='CHECKBOX')
				{					
					if (parent.parent.Auxiliar.document.forms[i].elements[j].checked)
						inframe.document.forms[i].elements[j].checked=true
					if (parent.parent.Auxiliar.document.forms[i].elements[j].disabled)
						inframe.document.forms[i].elements[j].disabled=true
					if (parent.parent.Auxiliar.document.forms[i].elements[j].readOnly)
						inframe.document.forms[i].elements[j].readOnly=true							
							
				}
				else{
					
					if (inframe.document.forms[i].elements[j].type.toUpperCase()=='SELECT-ONE')
					{						
						for (var iSel = inframe.document.forms[i].elements[j].length;iSel>=0; iSel--)
						{								
							inframe.document.forms[i].elements[j].options.remove(iSel)
						}
						for (var iSel = 0;iSel<parent.parent.Auxiliar.document.forms[i].elements[j].length;iSel++)
						{
							var oOption = inframe.document.createElement("OPTION");
							inframe.document.forms[i].elements[j].options.add(oOption)
							oOption.innerText = parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].text 
							oOption.value =  parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].value
							oOption.selected = parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].selected
						}	
						if (parent.parent.Auxiliar.document.forms[i].elements[j].disabled)
							inframe.document.forms[i].elements[j].disabled=true
						if (parent.parent.Auxiliar.document.forms[i].elements[j].readOnly)
							inframe.document.forms[i].elements[j].readOnly=true					
					}
					else
						if (inframe.document.forms[i].elements[j].type.toUpperCase()=='SELECT-MULTIPLE')												
						{					
							for (var iSel = inframe.document.forms[i].elements[j].length;iSel>=0; iSel--)
							{								
								inframe.document.forms[i].elements[j].options.remove(iSel)
							}
							for (var iSel = 0;iSel<parent.parent.Auxiliar.document.forms[i].elements[j].length;iSel++)
							{
								var oOption = inframe.document.createElement("OPTION");
								inframe.document.forms[i].elements[j].options.add(oOption)
								oOption.innerText = parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].text 
								oOption.value =  parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].value
								oOption.selected = parent.parent.Auxiliar.document.forms[i].elements[j].options[iSel].selected
							}					
							if (parent.parent.Auxiliar.document.forms[i].elements[j].disabled)
								inframe.document.forms[i].elements[j].disabled=true
							if (parent.parent.Auxiliar.document.forms[i].elements[j].readOnly)
								inframe.document.forms[i].elements[j].readOnly=true					
						
						}
						else
						{
							if (inframe.document.forms[i].elements[j].type.toUpperCase()=='RADIO')
							{		
								if (parent.parent.Auxiliar.document.forms[i].elements[j].checked)
									inframe.document.forms[i].elements[j].checked=true
								if (parent.parent.Auxiliar.document.forms[i].elements[j].disabled)
									inframe.document.forms[i].elements[j].disabled=true
								if (parent.parent.Auxiliar.document.forms[i].elements[j].readOnly)
									inframe.document.forms[i].elements[j].readOnly=true		
							}
							else
							{
								if (parent.parent.Auxiliar.document.forms[i].elements[j].disabled)
									inframe.document.forms[i].elements[j].disabled=true
								if (parent.parent.Auxiliar.document.forms[i].elements[j].readOnly)
									inframe.document.forms[i].elements[j].readOnly=true	
								inframe.document.forms[i].elements[j].value = parent.parent.Auxiliar.document.forms[i].elements[j].value				
							}	
						}   
				}		   
			}	
		}
	}
}
catch(e){}
}
// recuperar valor para o campo - usa o nro do campo pois podem haver campos de mesmo nome
// se o nome do campo = ao do cookie =atribui valor e retorna true
// senao - ignora e retorna false
// formato da aValores= <#nro>nome%=valor[,vvvvv,vvv,vvv]
function gerBuscaValorCampo(elemento,item){
	aconteudo=item.split("=")
	if (aconteudo[0].indexOf(">"+elemento.name+"%")==-1){return false}
	conteudo=aconteudo[1]
	sw = elemento.type
	var x = conteudo
	if (sw.indexOf("radio")>=0){
		if (elemento.value==x)elemento.checked=true
	}
	else{
		if (sw.indexOf("checkbox")>=0){
			if (elemento.value==x)elemento.checked=true
		}
		else{ 
			if (sw.indexOf("multiple")>=0&&x.indexOf(",")>=0){
			   x = x.split(",")
			   elemento.selectedIndex=-1
 			  for ( var i=0;i<x.length;i++){
					for (var j=0;j<elemento.options.length;j++){
			         if (elemento.options[j].value==x[i]) {elemento.options[j].selected=true}
					}
				}
			}
			else{
			elemento.value=x
			}
		}
	}
return true
}
// recupera o campo do elemento. em caso de selects - retorna lista 
// com texto, valor e selected
//
function gerMontaValor(elemento,textvalue){
	var sw = elemento.type
	var textvalue=(textvalue=='text')?'t':'v'
	var x= String(elemento.value)
	if (sw.indexOf("radio")>=0)
		x= (elemento.checked)?x:""
	if (sw.indexOf("checkbox")>=0)
		x= (elemento.checked)?x:""
	if  (sw.indexOf("select")>=0) 
	{	x=""
		var cx=""
		for ( var i=0;i<elemento.options.length;i++)
		{	 if(elemento.options[i].selected) 
			 {	x+= cx+((textvalue=='v')?elemento.options[i].value:elemento.options[i].text);
			 	cx=",";
			 }
		}
	}
	x=x.replace(/\n/gi,"\n")
	return x.replace(/\r/gi,"\r")
}
//
//funções de manipulacao basica de strings =====================================================

function gerExtraiStr(str1,str2){
  return gerTrocaStr(str1, str2, "")
}
function gerTrim(str1){
return str1.replace(/^\s*(.*[^\s])\s*$/,"$1")
}
function gerExtraiSpc(str1){
 return str1.replace(/\s/g,"")  
}
function gerLimpaString(str1){
  str1 = innerText(str1) //extrai tags html
  str1 = gerTrocaStr(str1, '\\&(\\w)(\\w){1,8}\\;',"$1") // traduz &ccedil; para c; etc.
  return gerExtraiAcentos(str1)
}
function gerExtraiAcentos(str1){
  str1 = gerTrocaStr(str1, "ã", "a")
  str1 = gerTrocaStr(str1, "â", "a")
  str1 = gerTrocaStr(str1, "á", "a")
  str1 = gerTrocaStr(str1, "à", "a")
  str1 = gerTrocaStr(str1, "ä", "a")
  str1 = gerTrocaStr(str1, "õ", "o")
  str1 = gerTrocaStr(str1, "ô", "o")
  str1 = gerTrocaStr(str1, "ó", "o")  
  str1 = gerTrocaStr(str1, "ó", "o")
  str1 = gerTrocaStr(str1, "ò", "o")  
  str1 = gerTrocaStr(str1, "ç", "c")
  str1 = gerTrocaStr(str1, "í", "i")
  str1 = gerTrocaStr(str1, "ì", "i")
  str1 = gerTrocaStr(str1, "î", "i")
  str1 = gerTrocaStr(str1, "ï", "i")
  str1 = gerTrocaStr(str1, "é", "e")
  str1 = gerTrocaStr(str1, "ê", "e")
  str1 = gerTrocaStr(str1, "ë", "e")
  str1 = gerTrocaStr(str1, "ú", "u")
  str1 = gerTrocaStr(str1, "ù", "u")
  str1 = gerTrocaStr(str1, "ü", "u")
  str1 = gerTrocaStr(str1, "û", "u")
  str1 = gerTrocaStr(str1, "ÿ", "y")
  str1 = gerTrocaStr(str1, "Ã", "A")
  str1 = gerTrocaStr(str1, "Â", "A")
  str1 = gerTrocaStr(str1, "Á", "A")
  str1 = gerTrocaStr(str1, "À", "A")
  str1 = gerTrocaStr(str1, "Ä", "A")
  str1 = gerTrocaStr(str1, "Õ", "O")
  str1 = gerTrocaStr(str1, "Ô", "O")
  str1 = gerTrocaStr(str1, "Ó", "O")  
  str1 = gerTrocaStr(str1, "Ó", "O")
  str1 = gerTrocaStr(str1, "Ò", "O")  
  str1 = gerTrocaStr(str1, "Ç", "C")
  str1 = gerTrocaStr(str1, "Í", "I")
  str1 = gerTrocaStr(str1, "Ì", "I")
  str1 = gerTrocaStr(str1, "Î", "I")
  str1 = gerTrocaStr(str1, "Ï", "I")
  str1 = gerTrocaStr(str1, "É", "E")
  str1 = gerTrocaStr(str1, "Ê", "E")
  str1 = gerTrocaStr(str1, "Ë", "E")
  str1 = gerTrocaStr(str1, "Ú", "U")
  str1 = gerTrocaStr(str1, "Ù", "U")
  str1 = gerTrocaStr(str1, "Ü", "U")
  str1 = gerTrocaStr(str1, "Û", "U")
return str1
  
}

//substitui todas as ocorrencias de uma string expressão regular por outra
function gerTrocaStr(instr, reBusca, sTroca,umavez,ignorecase) {
instr=""+instr+""    
if (isString(reBusca)){ 
	  	reBusca = new RegExp(reBusca,((ignorecase)?"i":"")+((umavez)?"":"g"))
	}
    return instr.replace(reBusca,sTroca);
}

function innerText(str) {	// elimina tags html e deixa somente o innertext
	str=""+str+""
	str=str.replace (/\<[^\>]*\>/g,"")
	return(str);
}

function zeraForm(form) {
	for (var i = 0 ; i < form.length; i++) {
		if (!form[i].readOnly) {
			if (form[i].type == 'text') form[i].value = ""
			if (form[i].type == 'select') form[i].selectedIndex = -1
			if (form[i].type == 'radio' || form[i].type == 'checkbox') form[i].checked = false
		}
	}
}

function gerLimpar(inframe,fLimparTudo){
	var auxLimpar	
	re = / /gi;
		
	if (inframe.parent.Acoes.window.document.Script.self.document.activeElement.tagName=="input")
		auxLimpar=inframe.parent.Acoes.window.document.Script.self.document.activeElement.value
	else	
		auxLimpar = ""
	auxLimpar=auxLimpar.replace(re,"")		
	
	if (gerLimpar.arguments.length==1)
		pos=1
	else
		pos=gerLimpar.arguments[1]		
    inframe=(!inframe)?this.window:inframe
	for (var i=0;i<inframe.document.forms.length;i++){
		if (fLimparTudo) {
			zeraForm(inframe.document.forms[i])
		} else {
			inframe.document.forms[i].reset()
		}
	}// no Netscape chama recursivamente para cada Layer
	
	//------Aqui começou a mudança-------------
	
	if ((auxLimpar!="Limpar") && (!g_IS.ns4)){		
		var el = inframe.document.all.tags("DIV")
	
		AtivaDiv(el(pos).id, inframe); //Ativa DIV, no exemplo DIV 0, isto é: a primeira!
	  //-------Aqui termina a mudança-------------
	 } 
	
		if (g_IS.ns4){
		for (var i=0;i<inframe.document.layers.length;i++){
         gerLimpar(inframe.document.layers[i])
		}
	}
}
//------Aqui começou a mudança-------------
function AtivaDiv(tab, inframe){
    	try{	    	
			this.Acoes.mAbas.escreve("dAbasCab")					
			this.Acoes.mAbas.selTab(tab)
			}
			catch(e){
			}
	}			
//-------Aqui termina a mudança-------------	
// frame a pegar os forms, action , lista de campos extras (nome, conteudo)...
function gerEnviaTodosForms(inframe, saction,starget){
var oDest=null
var err=false
smetod='post';
starget=(starget)?starget:""
var sArgv = gerEnviaTodosForms.arguments;
var nArgc = gerEnviaTodosForms.arguments.length;
// verifica se ha frame Controle
if(!frames.Controle)
{ 	//if(this.frames["Controle"]) 
	//{ 	oDest=this.frames["Controle"]}  
//	else 
	//{
		if(top.debug){alert("erro - estrutura de frames");}
		Controle=window.open("","","width=200,  height=300, dependent");
		err=true 
	//}
}
//cria formulario de trabalho
var str='<form name="zzzzFormUnico" action="'+saction+'" method="'+smetod+'" target="'+((starget&&starget!="")?starget:'Controle')+'">\n'
//se informado frame - varre os forms , senão somente os outros
oDest=pegaObjeto('zzzzControle'); if (!oDest)oDest=frames["Controle"]
dw(oDest,"")
if (inframe) str+=gerMontaForms(inframe)
//grava campos informados pela linha de comando nome,valor,...
if (nArgc>3){
  var xValor=""
	for (var i=3; i<nArgc;i+=2){
            xValor=gerTrocaStr(innerText(sArgv[i+1]),"'",'&lsquo;')
						xValor=gerTrocaStr(xValor,'"','&quot;')
		str+="<INPUT type=text name="+sArgv[i]+" value='"+xValor+"'>\n"
	}
}
if(top.debug){str+='<INPUT type=submit value=enviar>'}
str+='</form>'
dw(oDest,str)
if(top.debug&&!g_IS.ns4){frames.Controle.document.write(str)}
if(!top.debug||confirm("enviar?")) {
	pegaObjeto("zzzzFormUnico").submit();
	dw(oDest,"")
}
return
} 

function gerMontaForms(inframe)
{   inframe=(!inframe)?this.window:inframe
    var str=""
	for (var i=0;i<inframe.document.forms.length;i++){
	    var sValor=""
		for (var j=0;j<inframe.document.forms[i].elements.length;j++){
 		    var etype=(inframe.document.forms[i].elements[j].type)
			fTextArea = false
			if (etype == "textarea") {
				fTextArea = true
			}
			if(etype!='submit'&&etype!='reset'&&etype!='button') //ignora botoes, submit e reset's
			{	
				var xValor=gerMontaValor(inframe.document.forms[i].elements[j])
				if (xValor!="") {
						var xValor=gerTrocaStr(innerText(xValor),"'",'&lsquo;')
						xValor=gerTrocaStr(xValor,'"','&quot;')
						if (fTextArea) {
				    str+='<textarea name="'+inframe.document.forms[i].elements[j].name+'">' + xValor + '</textarea>'
						} else {
				    str+='<INPUT type=text name="'+inframe.document.forms[i].elements[j].name+'" value="'+xValor+'">'
						}
				}
			}
		}
	    this.window.external.AutoCompleteSaveForm(inframe.document.forms[i]); //Registra AutoComplete para todos os objetos nos forms					
	}// no Netscape chama recursivamente para cada Layer
	if (g_IS.ns4){
		for (var l=0;l<inframe.document.layers.length;l++){
			str+=gerMontaForms(inframe.document.layers[l])
		}
	}
	return str	
}


function zeraForm(form){
/*
form é o forme que vai ser zerado.
ATENÇÃO, essa função apaga todos os dados do formulario, não retorna ele para o seu estado original.
*/
	for (var i=0;i<form.elements.length;i++) {
		elem = form.elements[i]
		if (elem.type!='button'&&elem.type!='submit'&&elem.type!='reset') {
			if (elem.type=="radio"||elem.type=="checkbox") {
				elem.checked=false
			} else {
				elem.value=""
			}
		}
	}
}

function goToLink(pagina){
	if (pagina != ''){
		this.location.href = pagina; 
	}
}