//***************************************
function Get(elementID)
{
    return document.getElementById(elementID);
}



//***************************************
//Muda cor do CLASS 
//**************************************
function changeClass(obj,newClass)
{
	Get(obj).className=newClass;
}

function changeText(obj,text1,text2)
{
	if (obj.value==text1) {
		obj.value=text2;
	}
}
	
//***************************************
//Monta flash para evitar o "Clique para carregar" 
//**************************************
function WriteFlash(flashFile,width,height,bgcolor,wmode,flashvars,loop,play,quality,menu)
{


	document.write('<object name="' + flashFile + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="' + width + '" height="' + height + '">');
	document.write('<param name="movie" value="' + flashFile + '" />');
	document.write('<param name="quality" value="high" />');
	document.write('<param name="menu" value="0" />');
	document.write('<param name="bgcolor" value="' + bgcolor + '" />');
	document.write('<param name="wmode" value="' + wmode + '">');
	document.write('<param name=FlashVars value="' + flashvars + '" />');
	document.write('<embed name="' + flashFile + '" type="application/x-shockwave-flash" src="' + flashFile + '" flashvars="' + flashvars + '" quality="high" bgcolor="' + bgcolor + '" wmode="' + wmode + '" menu="0" width="' + width + '" height="' + height + '" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>');
	document.write('</object>');
}

//***************************************
//Monta flash para evitar o "Clique para carregar" 
//**************************************
function WriteFlashA(flashFile,width,height,bgcolor,wmode,flashvars,loop,play,quality,menu)
{
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + width + '" height="' + height + '">');
	document.write(' <param name="movie" value="' + flashFile + '">');
	document.write(' <param name="quality" value="high">');
	document.write(' <param name="bgcolor" value="' + bgcolor + '">');
	document.write(' <param name="flashvars" value="' + flashvars + '">');
	document.write(' <param name="loop" value="' + loop + '">');
	document.write(' <param name="play" value="' + play + '">');
	document.write(' <param name="quality" value="' + quality + '">');
	document.write(' <param name="wmode" value="' + wmode + '">');
	document.write(' <param name="menu" value="' + menu + '">');
	document.write(' <embed ');
		document.write(' movie="' + flashFile + '" ');
		document.write(' bgcolor="' + bgcolor + '" ');
		document.write(' flashvars="' + flashvars + '" ');
		document.write(' loop="' + loop + '" ');
		document.write(' play="' + play + '" ');
		document.write(' quality="' + quality + '" ');
		document.write(' wmode="' + wmode + '" ');
		document.write(' menu="' + menu + '" ');
		document.write(' pluginspage="http://www.macromedia.com/go/getflashplayer" ');
		document.write(' type="application/x-shockwave-flash" >');
	document.write(' </embed>');
	document.write('</object>');
}
//***************************************
//Abre Janela de Impressão
//***************************************

function openWindow(url,name,width,height,toolbar,directories,status,menubar,scrollbars,resizable) 
{
	var win = open(url,name,"width="+width+",height="+height+",toolbar="+toolbar+",directories="+directories+",status="+status+",menubar="+menubar+",scrollbars="+scrollbars+",resizable="+resizable);
	win.focus();
}
	
function openMaxWindow(url) 
{
	var ww=screen.availWidth-10;
	var hh=screen.availHeight-40;
	var win = open(url,"attach","width="+ww+",height="+hh+",top=0,left=0,screenX=0,screenY=0,toolbar=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1");
	win.focus();
}







function openFile(file) 
{
	var win = open(file);
	win.focus();
}


////////////////////////////////////////////////////////////////////////////////////////////
// NOME : open_kortti
// Descrição : Página para imagem anexadas; redimensiona para o tamanho da imagem, obedecendo o limite máximo da tela.
// Parametros image    -> Nome da foto com o caminho


function openImage(image) 
{
	open_kortti(image);
}

function open_kortti(image) 
{
	var newImg = new Image();
	newImg.src = image;
	var width = newImg.width+50;
	var height = newImg.height+80;
	var ww;
	var hh;
	if(width>screen.availWidth) { ww = screen.availWidth-30; } else { ww = width; }
	if(height>screen.availHeight) { hh = screen.availHeight-30; } else { hh = height; }
	var leftPos = (screen.width - ww) / 2;
	var topPos = (screen.height - hh) / 2;
	photoWin = window.open( "", "photo","width=" + ww +",height=" + hh +",status=0,scrollbars=1,resizable=1,screenX=20,screenY=40,left=20,top=40");
	photoWin.document.write('<html><head><title>Thumbnail</title></head>');
	photoWin.document.write('<BODY BGCOLOR=#ffffff>');
	photoWin.document.write('<center><img src="' + image + '"></center>');
	photoWin.document.write('<div align="right"><br><br><a style="font: bold 11px Verdana,Arial" href="Javascript:window.close();"><b>fechar</b></a></div>');
	photoWin.document.write('</body></html>');
	photoWin.document.focus();
	photoWin.document.close();
	// If we are on NetScape, we can bring the window to the front
	if (navigator.appName.substring(0,8) == "Netscape") photoWin.focus();
}

////////////////////////////////////////////////////////////////////////////////////////////
// NOME : ampliar_foto
// Descrição : Página para imagem de produtos ampliada
// Parametros FileName    -> Nome da foto sem o caminho, sem a extensão e sem o sufixo G, 
//                           que define qual o tamanho da foto a ser exibida
// Parametros ProductName -> Nome do produto
function Thumb2(image,w,h) 
{
	var hh=h , ww=w
	var leftPos = (screen.width - ww) / 2;
	var topPos = (screen.height - hh) / 2;
	photoWin = window.open( "", "photo","width=" + ww +",height=" + hh +",status=0,scrollbars=1,resizable=0,screenX=20,screenY=40,left=20,top=40");
	photoWin.document.write('<html><head><title>Thumbnail</title></head>');
	photoWin.document.write('<link rel="stylesheet" href="/Portal/lib/site.css" type="text/css">');
	photoWin.document.write('<BODY BGCOLOR=#ffffff>');
	photoWin.document.write('<center><img src="' + image + '"></center>');
	photoWin.document.write('<table width=100%><tr><td valign=bottom height=10>');
	photoWin.document.write('<div align="right"><br><br><a style="font: bold 11px Verdana,Arial" href="Javascript:window.close();"><b>fechar</b></a></div>');
	photoWin.document.write('</td></tr></table>');
	photoWin.document.write('</body></html>');
	photoWin.document.focus();
	photoWin.document.close();
	// If we are on NetScape, we can bring the window to the front
	if (navigator.appName.substring(0,8) == "Netscape") photoWin.focus();
}


////////////////////////////////////////////////////////////////////////////////////////////
// NOME : goToURL
// Descrição : Envia para a url solicitada
// Parametros URL_List    -> Endereço de redirecionamento
function goToURL(URL_List,loc)
{
	var sUrl = URL_List.options[URL_List.selectedIndex].value;
	if (sUrl=="")
	{
		alert("Por favor, selecione o link.");
	} else {
		if (loc=="top") {
			window.location.href=sUrl;
		} else {
			var win=open(sUrl,'Link_Rapido');
			win.focus();
		}
	}
}				
	
////////////////////////////////////////////////////////////////////////////////////////////
// NOME : showDivOnChange
// Descrição : troca a visualização de um div solicitado num combo
// Parametros itemList    -> objeto
//			  show        -> item que será aberto
//			  itemsList   -> lista 
function showDivOnChange(itemList,show,itemsList)
{
	var showItem = itemList.options[itemList.selectedIndex].value;
	arrList=itemsList.toString().split(";");
	var itemsListLen = arrList.length;
	for (i=0;i<itemsListLen;i++) {	
		if (arrList[i]!="") {
			showDiv(show+arrList[i],0); 
		}
	}
	showDiv(show+showItem,1);
}


////////////////////////////////////////////////////////////////////////////////////////////
// NOME : showDivOnChange
// Descrição : troca a visualização de um div solicitado num combo
// Parametros obj    -> objeto
//			  show        -> item que será aberto
//			  totalObjs   -> total de objetos (sequencia - obj1, obj2, obj3...) 
function showDivOnOver(obj,show,totalObjs)
{
	for (i=1;i<=totalObjs;i++) {	
		showDiv(obj+i,0); 
	}
	showDiv(obj+show,1);
}



////////////////////////////////////////////////////////////////////////////////////////////
// NOME : showDiv
// Descrição : des/habilita item
// Parametros obj     -> nome do objeto
//			  init    -> 0=esconde; 1=mostra; vazio=se(visível)=esconde, se(oculto)=mostra;
//			  timeout -> 0 ou undefinde=não executa timeout; maior que 0 = executa timeout pro layer;
function showDiv(obj,init,totalObjs,nameObj) 
{
	var newObj=Get(obj);
	if (init==1) 
	{
		newObj.style.display='block';
	} else if (init==0) {
		newObj.style.display='none';
	} else {
		if(newObj.style.display=='none' || newObj.style.display=='')
		{
			newObj.style.display='block';
		} else {
			newObj.style.display='none';
		}
	}
	
}
////////////////////////////////////////////////////////////////////////////////////////////
// NOME : itemTimeout
// Descrição : des/habilita item com timeout
// Parametros obj     -> nome do objeto
//			  time    -> tempo para executar a ação;
function itemTimeout(obj,time)
{
	var closeItem = 'showDiv(\''+obj+'\',0)';
	setTimeout(closeItem,time);
}


////////////////////////////////////////////////////////////////////////////////////////////
// NOME : changeBG
// Descrição : troca cor do fundo de um objeto
// Parametros obj       -> nome do objeto
//			  newColor  -> nova cor para o objeto
//			  font      -> Y=muda cor da fonte
//			  fontColor -> nova cor para a fonte

function changeBG(obj,newColor,font,fontColor) 
{
	Get(obj).style.backgroundColor=newColor;
	if(font=='Y')
	{
		Get(obj).style.color=fontColor;
	}
}


////////////////////////////////////////////////////////////////////////////////////////////
// NOME : selectsVisibility
// Descrição : oculta combos para evitar que este sobreponham funcionalidades de coritna
// Parametros varVisible  -> 0=esconde; 1=mostra
//			  exceptions  -> lista (itens separados por ";") de combos q não precisam ser ocultos
function selectsVisibility(varVisible,exceptions)
{
	for (j=0 ; j<document.forms.length ; j++)
	{
		for (i=0; i<document.forms[j].elements.length ; i++)
		{
			if (document.forms[j].elements[i].type == 'select-one')
			{
				if(InStr(1,'0;'+exceptions,document.forms[j].elements[i].name)==0)
				{
					if(varVisible==0)
					{
						document.forms[j].elements[i].style.visibility = 'hidden';
					} else if (varVisible==1) {
						document.forms[j].elements[i].style.visibility = 'visible'
					}
				}
			}
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////////
// Devolve a posição da primeira ocurrência de s2 em s1
// Se se especifica n, se empenhará a comprovar desde esta posição
// Se não se especifica, os dois parâmetros serão as cadeias
function InStr(n, s1, s2){
	var numargs=InStr.arguments.length;	
	if(numargs<3)
		return n.indexOf(s1)+1;
	else
		return s1.indexOf(s2, n)+1;
}



//**************************************
//Função p/ mudar a cor da linha
//**************************************
function mOvr(src,clrOver) 
{
	if (!src.contains(event.fromElement)) { src.bgColor = clrOver; }
}
function mOut(src,clrIn) 
{
	if (!src.contains(event.toElement)) { src.bgColor = clrIn; }
}



////////////////////////////////////////////////////////////////////////////////////////////
//Nome: showBg
//Descrição: Função para mudar bg-image de uma célula 
//Parâmetros   obj = nome da célula
//             img = imagem do fundo 

function showBg(obj,img)
{
	if (img=='null') {
		obj.style.backgroundImage='url('+img+')';
	} else {
		obj.style.background='url('+img+') no-repeat top left';
	}
}

////////////////////////////////////////////////////////////////////////////////////////////
//Nome: ValidaConteudoCampo
//Descrição: Função para impedir que seja digitado um conteúdo inválido no campo 
//Parâmetros   intervalo = 'A..Z' ; mais de uma combinação = 'A..Z;a..z;0..9' 
//             caracter = '-/@!$' 
//Exemplo: <input onkeypress="JavaScript:ValidaConteudoCampo('1..5','NULL');"> 
function ValidaConteudoCampo(intervalo,caracter)
{ 
	var bvalido = false; 
	if(((caracter.toUpperCase) != 'NULL') || (caracter != ''))
	{ 
		if(caracter == "PONTUACAO") { caracter = 'ãáâéêíîõóôúûçÃÁÂÉÊÍÎÕÓÔÚÛÇ '; } 
		for(i=0;i<=(caracter.length);i++)
		{ 
			if((event.keyCode) == (caracter.charCodeAt(i))) { bvalido = true; } 
		} 
	} 
	if(!bvalido)
	{ 
		var Inicio    = ""; 
		var Fim    = ""; 
		var bRetornaFalso  = false; 
		var bEncontrou  = false; 
		var location   = -1; 
		location = intervalo.indexOf(";"); 
		if((location) > -1)
		{ 
			var restricoes = intervalo.split(";"); 
			for(i=0;i<=(restricoes.length-1);i++)
			{ 
				Inicio  = restricoes[i].substring(0,1); 
				Fim  = restricoes[i].substring(3,4); 
				if((event.keyCode >= Inicio.charCodeAt()) && (event.keyCode <= Fim.charCodeAt())){ bEncontrou = true; i = restricoes.length; } //48 57 
			} 
			if(!bEncontrou) { bRetornaFalso = true; } 
		} 
		else if(intervalo.length == 4)
		{ 
			Inicio  = intervalo.substring(0,1); 
			Fim  = intervalo.substring(3,4); 
			if((event.keyCode >= Inicio.charCodeAt()) && (event.keyCode <= Fim.charCodeAt())) { bEncontrou = true; } //48 57 
			if(!bEncontrou) { bRetornaFalso = true; } 
		} 
		if(bRetornaFalso) { event.returnValue = false; } 
	} 
} 



////////////////////////////////////////////////////////////////////////////////////////////
//Nome: isCPF
//Descrição: valida CPF
//Parâmetros   st = número do cpf
function validaEmail(obj) {
alert (obj.value.length + '-'+ obj.value.indexOf('@', 0) + '-'+ obj.value.indexOf('.'))
	if (obj.value.length>0 && (obj.value.indexOf('@', 0)<4 || obj.value.indexOf('.')<1)) {
		alert ("O seu e-mail não está no formato correto. Ele deve ser como seunome@empresa.com.br!");
		obj.value="";
		obj.focus();
		return false;
	} else {
		return true;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////
//Nome: isCPF
//Descrição: valida CPF
//Parâmetros   st = número do cpf
function isCPF(st) 
{
	if (st == "") { return (false); }
	l = st.length;
	//alterando para se usuário não digitar os zeros na frente do CPF, completar sozinho
	if ((l == 9) || (l == 8))
	{
		for (i = l ; i < 10; i++) { st = '0' + st }
	}
	l = st.length;
	st2 = "";
	for (i = 0; i < l; i++)
	{
		caracter = st.substring(i,i+1);
		if ((caracter >= '0') && (caracter <= '9')); { st2 = st2 + caracter; }
	}
	if ((st2.length > 11) || (st2.length < 10)) { return (false); }
	if (st2.length==10)
		st2 = '0' + st2;
		digito1 = st2.substring(9,10);
		digito2 = st2.substring(10,11);
		digito1 = parseInt(digito1,10);
		digito2 = parseInt(digito2,10);
		sum = 0; mul = 10;
	for (i = 0; i < 9 ; i++) 
	{
    	digit = st2.substring(i,i+1);
	    tproduct = parseInt(digit ,10) * mul;
	    sum += tproduct;
	    mul--;
	}
	dig1 = ( sum % 11 );
	if ( dig1==0 || dig1==1 )
	   dig1=0;
	else
	  dig1 = 11 - dig1;
	if (dig1!=digito1) { return (false); }
	sum = 0;
	mul = 11;
	for (i = 0; i < 10 ; i++) 
	{
	    digit = st2.substring(i,i+1);
    	tproduct = parseInt(digit ,10)*mul;
	    sum += tproduct;
	    mul--;
	}
	dig2 = (sum % 11);
	if ( dig2==0 || dig2==1 )
		dig2=0;
	else
		dig2 = 11 - dig2;  
	if (dig2 != digito2) { return (false); }
	return (true);
}  



  
////////////////////////////////////////////////////////////////////////////
// NOME : valida_numeros()
// Descrição : Valida Apenas Números *****Deve ser usado do evento KeyPress
// Parametros
function valida_numero() 
{
	if (event.keyCode < 45 || event.keyCode > 57) 
	event.returnValue = false;
}


////////////////////////////////////////////////////////////////////////////
// NOME : valida_alfanum()
// Descrição : Valida Apenas Alfa Númericos *****Deve ser usado do evento KeyPress
// Parametros
///////////////////////////////////////////////////////////////////////////

function valida_alfanum() 
{
	if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97))
		event.returnValue = false;
}

////////////////////////////////////////////////////////////////////////////
// NOME : valida_alfanum1()
// Descrição : Valida Apenas Alfa Númericos *****Deve ser usado do evento KeyPress
// Parametros
///////////////////////////////////////////////////////////////////////////

function valida_alfanum1() 
{
	if (event.keyCode == 39)
		event.returnValue = false;
}

////////////////////////////////////////////////////////////////////////////
// NOME : ignoraEspaco()
// Descrição : Tirar os espaços da String 
// Parametros: string = texto a ser ignorado

function ignoraEspaco(string) 
{
	var temp = "";
	string = '' + string;
	splitstring = string.split("  ");
	for(i = 0; i < splitstring.length; i++) { temp += splitstring[i]; }
	return temp;
}  

////////////////////////////////////////////////////////////////////////////
// NOME : inicialMaisculo
// Descrição :Converte as Letras Iniciais para Maisculo
// Parametro Entra: str que será convertida para maisculo
//           Saída: String que returna a string convertida

function inicialMaisculo(str) 
{
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;
	tmpStr = str.toLowerCase();
	strLen = tmpStr.length;
	if (strLen > 0)  
	{
		for (index = 0; index < strLen; index++)  
		{
			if (index == 0)  
			{
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
			}
			else 
			{
				tmpChar = tmpStr.substring(index, index+1);
				if (tmpChar == " " && index < (strLen-1))   
				{
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);                    
					postString = tmpStr.substring(index+2,strLen);                      
					tmpStr = preString + tmpChar + postString;
				}
			}
		}
	}
	return tmpStr;
}





//////////////////////////////////////////////////////////////////////////
// NOME        : ValidaIntervalo
// Descricao   : Valida intervalo entre datas
// Parametros  : Data1 - data inicial
//               Data2 - data final
function ValidaIntervalo(Data1, Data2) 
{
	var DataValorInicial = Data1;
	pos0 = DataValorInicial.indexOf("/");
	pos1 = DataValorInicial.indexOf("/", pos0 + 1);

	dia = DataValorInicial.substring(0,pos0);
	mes = DataValorInicial.substring(pos0 + 1, pos1);
	ano = DataValorInicial.substring(pos1 + 1, DataValorInicial.length);
	DataInicial = ano + mes + dia;

	var DataValorFinal = Data2;
	pos0 = DataValorFinal.indexOf("/");
	pos1 = DataValorFinal.indexOf("/", pos0 + 1);

	dia = DataValorFinal.substring(0,pos0);
	mes = DataValorFinal.substring(pos0 + 1, pos1);
	ano = DataValorFinal.substring(pos1 + 1, DataValorFinal.length);
	DataFinal = ano + mes + dia;

	if(DataFinal < DataInicial) { return false }	
	return true;	
}
//////////////////////////////////////////////////////////////////////////
// NOME        : VerPreenchimento
// Descricao   : Verifica se o campo foi preenchido
// Parametros  : Campo - campo do formulário
//                MSG - Mensagem de erro

function VerPreenchimento(Campo,MSG) 
{
	if (Campo.value.length==0) 
	{
		window.alert(MSG);
		return false;
	} else {
		return true;
	}
}


///////////////////////////////////////////////////////////////////////////
// NOME        : ChecaMail
// Descricao   : Verificar consistencia de e-mail
// Parametros  : eMail -> Campo eMail do formulario
//               MSG   -> Mensagem de erro
///////////////////////////////////////////////////////////////////////////
function ChecaMail(eMail,MSG) 
{
	if (eMail == "") 
	{ 
		alert(MSG);
		eMail.focus();
		return(false); 
	}
	var Temp   = eMail;
	var AtSym  = Temp.value.indexOf('@');
	var Period = Temp.value.lastIndexOf('.');
	var Space  = Temp.value.indexOf(' ');
	var Length = Temp.value.length - 1;
	if ((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || (Space  != -1)) 
	{ 
		alert(MSG);
		Temp.focus();
		return(false);
	}
}



///////////////////////////////////////////////////////////////////////////
// NOME       : chkCount
// Descricao  : Retorna o número de checkbox selecionados
// Parametros : obj -> objeto checkbox a ser verificado
function chkCount(obj) 
{
	var c;
	c = 0;
	if (typeof(obj.length)=="undefined") 
	{
		if (obj.checked) { c=c+1; } 
	} else {
		for(i=0;i<obj.length;i++)
		{
			if (obj[i].checked){ c=c+1; }
		}
	}
	return c;
}

///////////////////////////////////////////////////////////////////////////
// NOME       : chkSel
// Descricao  : Concatena os valores dos checkbox selecionados
// Parametros : obj -> objeto checkbox a ser verificado

function chkSel(obj) 
{
	var str;
	str = "";
	if (typeof(obj.length)=="undefined")
	{
		if (obj.checked) { str=obj.value+";"; }
	} else { 
		for(i=0;i<obj.length;i++) 
		{
			if (obj[i].checked){ str=str+obj[i].value + ";"; }
		}    
	}
	return str;
}

//////////////////////////////////////////////////////////////////
//   Formatação CNPJ   //////////////////////////////////
//////////////////////////////////////////////////////////////////

function validaCNPJ(field) {
	var i;
	s = limpa_string(field.value); 
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++) {
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
    if (d1 == 0) { 
            //alert("CNPJ Invalido1"); 
            return false; 
    } 
    d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1) {
        field.value="";
        alert("CNPJ Invalido") ;
        field.focus();
		return false;
	}
	d1 *= 2;
	for (i = 0; i < 12; i++) {
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1) {
        field.value="";
		alert("CNPJ Invalido");
        field.focus();
        return false;
	}
	return true;
}


//////////////////////////////////////////////////////////////////
//   Formatação de CPF / CNPJ   //////////////////////////////////
//////////////////////////////////////////////////////////////////

function validaCPF_CNPJ(field) 
{
	var erro1 = ""
	var erro2 = ""
	var i2; 
	f2 = field.value; 
	s2 = limpa_string(f2); 
	var c2 = s2.substr(0,9); 
	var dv2 = s2.substr(9,2); 
	var d12 = 0; 
	for (i2 = 0; i2 < 9; i2++) 
	{ 
		d12 += c2.charAt(i2)*(10-i2); 
	} 
	if (d12 == 0) 
	{ 
		//alert("CPF Invalido") 
		//return false; 
	} 
	d12 = 11 - (d12 % 11); 
	if (d12 > 9) d12 = 0; 
	if (dv2.charAt(0) != d12) 
	{ 
		erro2=1;
		//alert("CPF Invalido") 
		//return false; 
	} 
	d12 *= 2; 
	for (i2 = 0; i2 < 9; i2++) 
	{ 
		d12 += c2.charAt(i2)*(11-i2); 
	} 
	d12 = 11 - (d12 % 11); 
	if (d12 > 9) d12 = 0; 
	if (dv2.charAt(1) != d12) 
	{ 
		erro2=1;
		//alert("CPF Invalido") 
		//return false; 
	} 

	var i;
	s = limpa_string(field.value); 
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++) 
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
	if (d1 == 0) 
	{ 
		//alert("CNPJ Invalido1"); 
		//return false; 
	} 
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1) 
	{
		erro1=1;
		//alert("CNPJ Invalido") ;
		//return false;
	}
	d1 *= 2;
	for (i = 0; i < 12; i++) 
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1) 
	{
		erro1=1;
		//alert("CNPJ Invalido");
		//return false;
	}
	if ((erro1=="") || (erro2=="")) 
	{
		return true;
	} 
	else 
	{
		field.value="";
		alert ("CPF ou CNPJ Inválido");
		field.focus();
		return false;
	}
}


///////////////////////////////////////////////////////////////////////////
// NOME       : limpa_string
// Descricao  : retira sinais de pontução do cpf
// Parametros : field -> campo
function limpa_string(S)
{
	// Deixa so' os digitos no numero
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";
	for (var i=0; i<S.length; i++)	
	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{ temp=temp+digito }
	} 
	return temp
}





///////////////////////////////////////////////////////////////////////////
// NOME       : formatarMoeda
// Descricao  : formata valor numérico
// Parametros : fld     -> campo 
//               milSep - > separador de milhar
//               decSep - > separador de decimais
//               e      - > evento

 
function formatarMoeda(fld, milSep, decSep, e) 
{    
	var sep = 0;    
	var key = '';    
	var i = j = 0;    
	var len = len2 = 0;    
	var strCheck = '0123456789';    
	var aux = aux2 = '';    
	var whichCode = (window.Event) ? e.which : e.keyCode;    
	if (whichCode == 13) return true;  // Enter    
		key = String.fromCharCode(whichCode);  // recebe o valor da chave vinda da chave do código   
	if (strCheck.indexOf(key) == -1) return false;  // Chave não válida   
		len = fld.value.length;    
	for(i = 0; i < len; i++)    
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;    
		aux = '';    
		for(; i < len; i++)    
		if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);    
		aux += key;    
		len = aux.length;    
		if (len == 0) fld.value = '';    
		if (len == 1) fld.value = '0'+ decSep + '0' + aux;    
		if (len == 2) fld.value = '0'+ decSep + aux;    
		if (len > 2) 
		{    
			aux2 = '';    
			for (j = 0, i = len - 3; i >= 0; i--) 
			{
				if (j == 3) 
				{    
					aux2 += milSep;    
					j = 0;    
				}    
			aux2 += aux.charAt(i);    
			j++;    
		}    
		fld.value = '';    
		len2 = aux2.length;    
		for (i = len2 - 1; i >= 0; i--)    
		fld.value += aux2.charAt(i);    
		fld.value += decSep + aux.substr(len - 2, len);    
	}    
	return false; 
}    





////////////////////////////////////////////////////////////////////////////
// NOME : formatarDataHora
// Descrição : máscara para data e hora enqto digita
// Parametro : objeto, evento
///////////////////////////////////////////////////////////////////////////
function formatarDataHora(objeto, evento) 
{
	var keypress=(window.event)?event.keyCode:evento.which;
	campo = eval (objeto);
	if (campo.value == '00/00/0000 00:00:00')
	{
		campo.value=""
	}

	caracteres = '0123456789';
	separacao1 = '/';
	separacao2 = ' ';
	separacao3 = ':';
	conjunto1 = 2;
	conjunto2 = 5;
	conjunto3 = 10;
	conjunto4 = 13;
	conjunto5 = 16;
	if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (19))
	{
		if (campo.value.length == conjunto1 )
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto2)
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto3)
		campo.value = campo.value + separacao2;
		else if (campo.value.length == conjunto4)
		campo.value = campo.value + separacao3;
	}
	else
		event.returnValue = false;
}


////////////////////////////////////////////////////////////////////////////
// NOME : formatarData
// Descrição : máscara para data enqto digita
// Parametro : objeto, e
///////////////////////////////////////////////////////////////////////////
function formatarData(objeto, e) 
{
	var keypress = (window.Event) ? e.which : e.keyCode;    
	campo = eval (objeto);
	if (campo.value == '00/00/0000')
	{
		campo.value=""
	}

	caracteres = '0123456789';
	separacao1 = '/';
	separacao2 = '';
	conjunto1 = 2;
	conjunto2 = 5;
	conjunto3 = 10;
	if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (19))
	{
		if (campo.value.length == conjunto1 )
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto2)
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto3)
		campo.value = campo.value + separacao2;
	}
	else
		e.returnValue = false;
}

////////////////////////////////////////////////////////////////////////////
// NOME : formatarData
// Descrição : valida a data
// Parametro : obj
///////////////////////////////////////////////////////////////////////////
function formatoData(obj)
{
    var bissexto = 0;
    var data = obj.value; 
    var tam = data.length;
    if (tam==10 || tam==16) 
    {
        var dia = data.substr(0,2)
        var mes = data.substr(3,2)
        var ano = data.substr(6,4)

        if ((ano > 1990)||(ano < 2100))
        {
            switch (mes) 
            {
                case '01':
                case '03':
                case '05':
                case '07':
                case '08':
                case '10':
                case '12':
                    if  (dia <= 31) 
                    {
                        return true;
                    }
                    break
                
                case '04':        
                case '06':
                case '09':
                case '11':
                    if  (dia <= 30) 
                    {
                        return true;
                    }
                    break
                case '02':
                    /* Validando ano Bissexto / fevereiro / dia */ 
                    if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) 
                    { 
                        bissexto = 1; 
                    } 
                    if ((bissexto == 1) && (dia <= 29)) 
                    { 
                        return true;                 
                    } 
                    if ((bissexto != 1) && (dia <= 28)) 
                    { 
                        return true; 
                    }            
                    break                        
            }
        }
    }   
	if (tam>0) {
    	alert("A Data " + data + " é inválida!");
		obj.value='';
		obj.focus();
	    return false;
	}
	return true;
} 


////////////////////////////////////////////////////////////////////////////
// NOME : formatarHora
// Descrição : máscara para hora enqto digita
// Parametro : objeto, evento
///////////////////////////////////////////////////////////////////////////
function formatarHora(objeto, e) 
{
	var keypress = (window.Event) ? e.which : e.keyCode;    
	campo = eval (objeto);
	if (campo.value == '00:00')
	{
		campo.value=""
	}

	caracteres = '0123456789';
	separacao1 = ':';
	separacao2 = ' ';
	conjunto1 = 2;
	if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (19))
	{
		if (campo.value.length == conjunto1 )
		campo.value = campo.value + separacao1;
	}
	else
		event.returnValue = false;
}


////////////////////////////////////////////////////////////////////////////
// NOME : Trim
///////////////////////////////////////////////////////////////////////////


function Trim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}







function resizeFrame(obj,h) {
	try {
		obj.style.height = obj.contentWindow.document.body.scrollHeight + "px";
	} catch(e) {
		obj.style.height = h;
	}
}
