function dma2amd(sdata){	
	var dma = sdata.split("/");
	dma[0]= "00" + dma[0];
	dma[1]= "00" + dma[1];
	dma[2]= "0000" + dma[2];
	dma[0] = dma[0].substr(dma[0].length-2);
	dma[1] = dma[1].substr(dma[1].length-2);
	dma[2] = dma[2].substr(dma[2].length-4);
	return dma[2]+"/"+dma[1]+"/"+dma[0];
}

function getDifDate(sdata1, sdata2){
	var oneDay = (((60 * 1000) * 60) * 24);
	var diff = sdata2.getTime() - sdata1.getTime();
	return Math.floor(diff / oneDay);
}

function Trim(pCampo){
	var rTrim = /\s+$/;
	var lTrim = /^\s+/;
	pCampo.value = pCampo.value.replace(rTrim, '').replace(lTrim, '');
	if (pCampo.value == ''){
		return false;
	}else{
		return true;
	}
}
function trim(pValue){
	var rTrim = /\s+$/;
	var lTrim = /^\s+/;
	var strValue = pValue.replace(rTrim, '').replace(lTrim, '');
	return strValue;
}

function Numerico(){
	var tecla = event.keyCode;
	if (tecla < 48 || tecla > 57){
		event.keyCode = 0;
	}
}

function Potencia(pValor, pExp){
	var result = pValor;
	for (var i=1; i<pExp; i++){
		result = result * pValor;
	}
	return result;
}

function FormataValorPercentual(pvalor){
	var valor = pvalor.replace( "/", "" );
	valor = valor.replace( ",", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	tam = valor.length;
	var valorFormatado;
	if ( tam <= 2 ){
		if (trim(valor) != ''){
			valorFormatado = valor + ',00';
		}else{
			valorFormatado = '';
		}
	}
	if ( (tam > 2) && (tam <= 5) ){
		valorFormatado = valor.substr( 0, tam - 2 ) + ',' + valor.substr( tam - 2, tam ) ;
		if (ValorFormatadoJS(valorFormatado) > 100){
			valorFormatado = '100,00';
		}
	}
	return valorFormatado;
}

function FormataValor(pvalor, tammax){
	var valor = pvalor.replace( "/", "" );
	valor = valor.replace( ",", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	valor = valor.replace( ".", "" );
	tam = valor.length;
	var valorFormatado;
	if ( tam <= 2 ){
		if (trim(valor) != ''){
			valorFormatado = valor + ',00';
		}else{
			valorFormatado = '';
		}
	}
	if ( (tam > 2) && (tam <= 5) ){
		valorFormatado = valor.substr( 0, tam - 2 ) + ',' + valor.substr( tam - 2, tam ) ; }
	if ( (tam >= 6) && (tam <= 8) ){
		valorFormatado = valor.substr( 0, tam - 5 ) + '.' + valor.substr( tam - 5, 3 ) + ',' + valor.substr( tam - 2, tam ) ; }
	if ( (tam >= 9) && (tam <= 11) ){
		valorFormatado = valor.substr( 0, tam - 8 ) + '.' + valor.substr( tam - 8, 3 ) + '.' + valor.substr( tam - 5, 3 ) + ',' + valor.substr( tam - 2, tam ) ; }
	if ( (tam >= 12) && (tam <= 14) ){
		valorFormatado = valor.substr( 0, tam - 11 ) + '.' + valor.substr( tam - 11, 3 ) + '.' + valor.substr( tam - 8, 3 ) + '.' + valor.substr( tam - 5, 3 ) + ',' + valor.substr( tam - 2, tam ) ; }
	if ( (tam >= 15) && (tam <= 17) ){
		valorFormatado = valor.substr( 0, tam - 14 ) + '.' + valor.substr( tam - 14, 3 ) + '.' + valor.substr( tam - 11, 3 ) + '.' + valor.substr( tam - 8, 3 ) + '.' + valor.substr( tam - 5, 3 ) + ',' + valor.substr( tam - 2, tam ) ;}
	return valorFormatado;
}

function FormataValorCampo(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}
}

function FormataData(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 2 && tam < 5 )
			campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if ( tam >= 5 && tam <= 10 )
			campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}
}

function FormataHora(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ":", "" );
	vr = vr.replace( ":", "" );
	tam = vr.length + 1;

	if ( tam > 2 && tam < 5 )
		campo.value = vr.substr( 0, tam - 2  ) + ':' + vr.substr( tam - 2, tam );
	if ( tam >= 5 && tam <= 10 )
		campo.value = vr.substr( 0, 2 ) + ':' + vr.substr( 2, 2 ) + ':' + vr.substr( 4, 2); 
	
}

function FormataHoraMin(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ":", "" );
	vr = vr.replace( ":", "" );
	tam = vr.length + 1;

	if ( tam > 2 && tam < 5 )
		campo.value = vr.substr( 0, tam - 2  ) + ':' + vr.substr( tam - 2, tam );	
	
}

function ValidaHora(campo) {
	vr = campo.value;
	vr = vr.replace( ":", "" );
	vr = vr.replace( ":", "" );

	if (vr.substr(0,2) > 23 || vr.substr(2,2) > 59 || vr.substr(4,2) > 59 || vr.length != 6 && vr !="") {
		alert("Hora incorreta\nVerifique sua Digitação");
		campo.select();
		campo.focus();
	}
	
}

function ValidaHora2(campo) {
	vr = campo.value;
	vr = vr.replace( ":", "" );
	vr = vr.replace( ":", "" );

	if (vr.substr(0,2) > 23 || vr.substr(2,2) > 59 ||  vr.length != 4 && vr !="") {
		alert("Hora incorreta (hh:mm) ");
		campo.select();
		campo.focus();
	}
	
}

function FormataMesAno(Campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = document.form[Campo].value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 2 && tam < 7 )
			document.form[Campo].value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, tam ); }
}

var reData	= /^(([0]?[1-9])|([1,2]\d)|([3][0,1]))\W?(([0]?[1-9])|([1][0-2]))\W?([1-9][0-9]{1,3})$/
var fsData	= "$1/$5/$8"
var feData	= "$1$5$8"
var reMMAAAA	= /^(([0]?[1-9])|([1][0-2]))\W?([1-9]\d{3})$/
var fsMMAAAA	= "$1/$4"
var feMMAAAA	= "$1$4"
var reDDMMAAAA	= /^(([0]?[1-9])|([1,2]\d)|([3][0,1]))\W?(([0]?[1-9])|([1][0-2]))\W?([1-9][0-9]{3})$/
var fsDDMMAAAA	= "$1/$5/$8"
var feDDMMAAAA	= "$1$5$8"
var reDDMMAA	= /^(([0]?[1-9])|([1,2]\d)|([3][0,1]))\W?(([0]?[1-9])|([1][0-2]))\W?([0-9][0-9]{1})$/
var fsDDMMAA	= "$1/$5/$8"
var feDDMMAA	= "$1$5$8"
var reDDMM	=/^(([0]?[1-9])|([1,2]\d)|([3][0,1]))\W?(([0]?[1-9])|([1][0-2]))$/
var feDDMM      = "$1$5"
var fsDDMM      = "$1/$5"
var reDia	=/^(([0]?[1-9])|([1,2]\d)|([3][0,1]))$/ 
var reMes	=/^(([0]?[1-9])|([1][0-2]))$/ 
var reAno4	=/^[1-9][0-9]{3}$/
var reAno2	=/^[0-9][0-9]{1}$/

// true = ok	/	false = com erro	/	0 = vazio
function impValData(field,bmsg,itipo,iBDtipo){
	if (field.value==""){return 0};
	var atipo = ["data","dd/mm/aa","dd/mm/aaaa","dd/mm","mm/aaaa"];
	iBDtipo=(iBDtipo)?iBDtipo:0 //0=smalldatetime (default), 1=datetime
	itipo=(itipo)?itipo:0 //0=qualquer, 1=dmaa,2=dmaaaa,3=ddmm,4=mmaaaa   
	var bformatoData = formatoData(field.value)
	var bDDMMAA 	= ((bformatoData==1)&&(itipo==0||itipo==1))
	var bDDMMAAAA	= ((bformatoData==2)&&(itipo==0||itipo==2))
	var bDDMM 		= ((bformatoData==3)&&(itipo==0||itipo==3))
	var bMMAAAA		= ((bformatoData==4)&&(itipo==0||itipo==4))
	// formato não reconhecido
	if ((!bDDMMAA)&&(!bDDMMAAAA)&&(!bDDMM)&&(!bMMAAAA)){
		if(bmsg) alert ("Conteúdo informado não reconhecido como sendo "+atipo[itipo]+"\nVerifique sua digitação")
		field.select();field.focus();
		return false;
	}

	var dia0, mes0, ano0;
	var auxData;
	var dData = "";
	var dHoje = new Date();
	if (bDDMMAAAA){
		dData = impFormat(field.value,reDDMMAAAA,fsDDMMAAAA);
	} else if (bDDMMAA) {
		dData = impFormat(field.value,reDDMMAA,fsDDMMAA);
	} else {
		dData=impFormat(field.value+"/"+dHoje.getFullYear(),reDDMMAAAA,fsDDMMAAAA);
	}
	if (bMMAAAA) {
		dData=impFormat(field.value,reMMAAAA,fsMMAAAA) //MMAAAA
	}
	dma = dData.split("/");
	if (bDDMMAA){
		dma[2]= (dma[2]<20)?parseInt(dma[2], 10)+2000:parseInt(dma[2], 10)+1900;
	} // janelamento de data
	if (bMMAAAA){
		dma[2]= dma[1];  dma[1]= dma[0];
	} //ajusta array comparativo para MMAAAA
	if(!validaPeriodo(iBDtipo, dma[2], dma[1], dma[0])){
		alert ("Data inválida");
		field.select();field.focus();
	 	return false;
	}
	var obj = new Date(dma[2], dma[1]-1, dma[0])//cria data no browser
	dma[0]= "00" + dma[0]
	dma[1]= "00" + dma[1]
	dma[2]= "0000" + dma[2]
	dma[0] = dma[0].substr(dma[0].length-2) 
	dma[1] = dma[1].substr(dma[1].length-2)
	dma[2] = dma[2].substr(dma[2].length-4)
	dData = dma.join("/")
	dia0 = "00" + obj.getDate()
	mes0 = "00" + (obj.getMonth()+1)
	ano0 = "0000" + obj.getFullYear()
	dia0 = dia0.substr(dia0.length-2) 
	mes0 = mes0.substr(mes0.length-2)
	ano0 = ano0.substr(ano0.length-4)
	if (bMMAAAA){ 
		auxData =  mes0 + "/"+ ano0
		dData = dma[1] + "/"+ dma[2]}
	else{ 
		auxData = dia0 + "/"+  mes0 + "/"+ ano0
	}
	if ((auxData != dData)){ 
		if (bmsg) alert("Data incorreta\nVerifique sua Digitação")
		field.select();
		field.focus();
		return false;     
	}else{  
		if (bMMAAAA){field.value=mes0+"/"+ano0}
		else 		{field.value=dia0+"/"+mes0+((itipo==3)?"":("/"+((itipo==1)?ano0.substring(ano0,2):ano0)))}
		return true
	}

}
function formatoData(data){
	if  (bMMAAAA=reMMAAAA.test(data)) return 4	
	if  (reDDMMAA.test(data))  return 1
	if  (reDDMMAAAA.test(data)) return 2
	if  (bDDMM=reDDMM.test(data)) return 3
	return false
}
function validaPeriodo(iBDtipo, Ano, Mes, Dia){
	switch (parseInt(iBDtipo)){
		case 0 :	//smalldatetime
			if (Ano < 1900){return false}
			if (Ano > 2079){return false}
			if ((Ano == 2079) && (Mes > 6)){return false}
			if ((Ano == 2079) && (Mes == 6) && (Dia > 6)){return false}	
			break;
		case 1 :	//datetime
			if (Ano < 1753)	{return false}		
			if (Ano > 9999)	{return false}		
			break;
	}
	return true;
}
function impFormat(instr,reBusca,sTroca,umavez,ignorecase){
    if (isString(reBusca)){ 
	  	reBusca = new RegExp(reBusca,((ignorecase)?"i":"")+((umavez)?"":"g"))
	}
    return instr.replace(reBusca,sTroca);
}
function isString(obj){
	var stobj = typeof obj;
	return (stobj.indexOf("string") >= 0);
}

function DataMaiorIgual(data1,data2)
{
//Passar as datas no formato dd/mm/yyyy que a função trata de converter
	dia = data1.substring(0,2)
	mes = data1.substring(3,5)
	ano = data1.substring(6,10)
	data1aux = new Date(mes + "/" + dia + "/" + ano)
//	data1aux = data1aux.getMonth()+1 + data1aux.getDate() + data1aux.getYear()
	data1aux = ano + mes + dia
	//alert("data1  " + data1aux);
	dia = ""
	mes = ""
	ano = ""
	dia = data2.substring(0,2)
	mes = data2.substring(3,5)
	ano = data2.substring(6,10)
	data2aux = new Date(mes + "/" + dia + "/" + ano)
//	data2aux = data2aux.getYear() + "" + data2aux.getMonth()+1 + "" + data2aux.getDate()
	data2aux = ano + mes + dia
	//alert("data2  " + data2aux);
			if  (eval(data2aux) < eval(data1aux))
			{
				//alert("A data 2 é menor que a data 1!");
				return false
			}
			else
			{
				return true
			}
}

function DataMaior(data1,data2)
{
//Passar as datas no formato dd/mm/yyyy que a função trata de converter
	dia = data1.substring(0,2)
	mes = data1.substring(3,5)
	ano = data1.substring(6,10)
	data1aux = new Date(mes + "/" + dia + "/" + ano)
	data1aux = ano + mes + dia
	//alert("data1  " + data1aux);
	dia = ""
	mes = ""
	ano = ""
	dia = data2.substring(0,2)
	mes = data2.substring(3,5)
	ano = data2.substring(6,10)
	data2aux = new Date(mes + "/" + dia + "/" + ano)
	data2aux = ano + mes + dia
	//alert("data2  " + data2aux);
			if  (eval(data2aux) <= eval(data1aux))
			{
				//alert("A data 2 é menor que a data 1!");
				return false
			}
			else
			{
				return true
			}
}

function ValorFormatadoJS(valor){
	return parseFloat(valor.replace('.', '').replace(',', '.'));
}

var mLinha, mColuna;

function Freeze( tabela )
{
	try {
    mLinha = tabela.cloneNode(true);
    mColuna = tabela.cloneNode(true);

    mColuna.style.zIndex = 2;
    mLinha.style.zIndex = 3;

    // Corrige a linha
    mLinha.width = tabela.offsetWidth;
    for( j=0; j<mLinha.rows[0].cells.length; j++ )
    {
        mLinha.rows[0].cells[j].width = tabela.rows[0].cells[j].offsetWidth - ( tabela.border * 2 + tabela.cellSpacing * 2 + tabela.cellPadding * 2);
	}

	i = 0
    while( mLinha.rows.length > 1 )
    {
        mLinha.rows[1].removeNode();
    }

    mLinha.style.position = "absolute";
    mLinha.bgColor = "white";

    // Corrige a coluna
    mColuna.rows[0].cells[0].width = tabela.rows[0].cells[0].offsetWidth - ( tabela.border * 2 + tabela.cellSpacing * 2 + tabela.cellPadding * 2);
    for( j=0; j<mColuna.rows.length; j++ )
    {
        if( mColuna.rows[j].cells[0] != null )
        {
            mColuna.rows[j].cells[0].height = tabela.rows[j].cells[0].offsetHeight; //- ( tabela.border * 2 + tabela.cellSpacing * 2 + tabela.cellPadding * 2);
            for( i = mColuna.rows[j].cells.length-1; i > 0; i-- )
            {
                mColuna.rows[j].cells[i].removeNode();
            }
        }
    }
    mColuna.width = tabela.rows[0].cells[0].offsetWidth;    
    mColuna.style.position = "absolute";
    mColuna.bgColor = "white";

    tabela.insertAdjacentElement( "beforeBegin", mLinha );
    mLinha.insertAdjacentElement( "afterEnd", mColuna );
    
    // Poe a 1a celula sempre no canto superior esquerdo
    var mCelula = mLinha.cloneNode( true );

    for( i=mCelula.rows[0].cells.length-1; i>0; i-- )   
    {
        mCelula.rows[0].cells[i].removeNode();
    }
    
    mCelula.width = mColuna.offsetWidth;
    mCelula.height = mLinha.offsetHeight;
    
    mCelula.style.zIndex = 4;
    mCelula.style.position = "absolute";
    mCelula.style.left = div1.offsetLeft;
    mCelula.style.top = div1.offsetTop; 
    
    document.body.insertAdjacentElement( "afterBegin", mCelula );
	} catch(exp) {}    
}

function FreezeScroll()
{
	try {
    mLinha.style.top = div1.scrollTop;
    mColuna.style.left = div1.scrollLeft;
	} catch(exp) {}
}

function MascaraCEP(campo)
{
	vr = campo.value;
	vr = vr.replace( "-", "" );

	if (campo.value != Trim(campo))
	{
		if (vr.length == 8)
		{ 
			campo.value = vr.substring(0,5) + '-' + vr.substring(5);
			return vr;
		}
		else if (vr.length < 8)
		{
			alert ("CEP Inválido!");
			campo.focus();
		}
	}
}


function MascaraCIC(campo)
{
	vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );

	if (campo.value != Trim(campo))
	{
		if (vr.length == 11)
		{ 
			campo.value = vr.substring(0,3) + '.' + vr.substring(3,6) + '.' + vr.substring(6,9) + '-' + vr.substring(9);
			return vr;
		}
		else
		{
			alert ("CPF Inválido!");
			campo.focus();
		}
	}
}



function MascaraCpfCnpj(campo)
{
	vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );

	if (campo.value != Trim(campo))
	{
		if (vr.length == 11)
		{ 
			campo.value = vr.substring(0,3) + '.' + vr.substring(3,6) + '.' + vr.substring(6,9) + '-' + vr.substring(9);
			return vr;
		}
		else if (vr.length == 14)
		{
			campo.value = vr.substring(0,2) + '.' + vr.substring(2,5) + '.' + vr.substring(5,8) + '/' + vr.substring(8,12) + '-' + vr.substring(12);
			return vr;
		}
		else if (vr.length < 14)
		{
			alert ("CPF-CNPJ Inválido!");
			campo.focus();
		}
	}
}

function RetiraMascara(campo)
{
	vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	campo.value = vr
}

function Replicar(caracter, quantidade){
	var resultado = '';
	for (var i=0; i<quantidade; i++){
		resultado += caracter;
	}
	return resultado;
}

function MascaraTestada(campo)
{
	vr = campo.value;
	tam = vr.length;
	tam2 = 2;
	cont = 0;
	vr = vr.replace( ".", "," );
	
	for (var i=0; i<tam; i++)
		{
			if (vr.substring(tam-i,tam-(i+1)) == ',')
			{
				cont=cont+1;
			}
		}
	if (cont > 0)
	{
		vr2 = vr.split(",");
		tam2 = vr2[1].length;
	}
	
	if(cont<2 && tam2 <= 2)
	{
		if (vr.substring(tam-3,tam-2) != ',' && campo.value != Trim(campo))
		{
			if (vr.substring(tam-2,tam-1) == ',')
			{	
					vr = vr + '0';
			}
			else if (vr.substring(tam-1,tam) == ',')
			{ 
				if (vr == ',')
				{
					vr = vr.replace(",","");
				}
				else
				{
					vr = vr + '00';
				}
			}
			else
			{
				vr = vr + ',00';
			}	
		}
		else if (tam == 1)
		{
			vr = vr + ',00';
		}
	}
		else 
		{
			alert("Campo Testada Inválido");
			campo.focus();
		}

	campo.value = vr;
}

function Numerico1(){
	var tecla = event.keyCode;
	if (tecla < 48 || tecla > 57){
		event.keyCode = 0;
	}
	if (tecla == 44)
	{
		event.keyCode = 44;
	}

}