﻿    function expandcollapse(wDiv,wImg)
    {
        var div = document.getElementById(wDiv);
        var img = document.getElementById(wImg);
        
        if (div.style.display == "none")
        {
            div.style.display = "block";
            img.src = "Imagens/menos.bmp";
            img.alt = "Clique para Fechar";
        }
        else
        {
            div.style.display = "none";
            img.src = "Imagens/mais.bmp";
            img.alt = "Clique para Abrir";
        }
    }  

function f_open_window_max( aURL, aWinName )
{
   var wOpen;
   var sOptions;

   sOptions = 'status=yes,menubar=yes,scrollbars=yes,resizable=yes,toolbar=yes';
   sOptions = sOptions + ',width=' + (screen.availWidth - 10).toString();
   sOptions = sOptions + ',height=' + (screen.availHeight - 122).toString();
   sOptions = sOptions + ',screenX=0,screenY=0,left=0,top=0';

   wOpen = window.open( '', aWinName, sOptions );
   wOpen.location = aURL;
   wOpen.focus();
   wOpen.moveTo( 0, 0 );
   wOpen.resizeTo( screen.availWidth, screen.availHeight );
   return wOpen;
}


function MensagemFala( msg )
{
var voice = new ActiveXObject("SAPI.SpVoice");
 voice.Rate   = -2;
voice.Speak(msg);
}

/*-----------------------------------------------------------------------
Máscara para o campo data dd/mm/aaaa
Exemplo: <input maxlength="10" name="data" onKeyPress="Data(event, this)">
-----------------------------------------------------------------------*/
function MascaraData(evento, objeto){
	var keypress=(window. event)?event.keyCode:evento.which;
	campo = eval (objeto);
	if (campo.value == '00/00/0000')
	{
		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 < (10))
	{
		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 if (campo.value.length == conjunto5)
		campo.value = campo.value + separacao3;
	}
	else
		event.returnValue = false;
		
}

function Verifica_Data(data, obrigatorio)
{
   //Se o parâmetro obrigatório for igual à zero, significa que elepode estar vazio, caso contrário, não   
    var strdata = data.value;   
    
    if((obrigatorio == 1) || (obrigatorio == 0 && strdata != "")){   
        //Verifica a quantidade de digitos informada esta correta.   
        if (strdata.length != 10){   
            alert("Formato da data não é válido. Formato correto: - dd/mm/aaaa.");   
            data.focus(); 
            return false   
        }   
        //Verifica máscara da data   
        if ("/" != strdata.substr(2,1) || "/" != strdata.substr(5,1)){   
            alert("Formato da data não é válido. Formato correto: - dd/mm/aaaa.");   
            data.focus();   
            return false   
        }   
        dia = strdata.substr(0,2)   
        mes = strdata.substr(3,2);   
        ano = strdata.substr(6,4);   
        //Verifica o dia   
        if (isNaN(dia) || dia > 31 || dia < 1){   
            alert("Formato do dia não é válido.");   
            data.focus();   
            return false   
        }   
        if (mes == 4 || mes == 6 || mes == 9 || mes == 11){   
            if (dia == "31"){   
                alert("O mês informado não possui 31 dias.");   
                data.focus();   
                return false   
            }   
        }   
        if (mes == "02"){   
            bissexto = ano % 4;   
            if (bissexto == 0){   
                if (dia > 29){   
                    alert("O mês informado possui somente 29 dias.");   
                    data.focus();   
                    return false   
                }   
            }else{   
                if (dia > 28){   
                    alert("O mês informado possui somente 28 dias.");   
                    data.focus();   
                    return false   
                }   
            }   
        }   
    //Verifica o mês   
        if (isNaN(mes) || mes > 12 || mes < 1){   
            alert("Formato do mês não é válido.");   
            data.focus();   
            return false   
        }   
        //Verifica o ano   
        if (isNaN(ano)){   
            alert("Formato do ano não é válido.");   
            data.focus();   
            return false   
        }   
    }
}  

 


function prompt_box_numero(Texto, ValorInicial, ValorRetorno) 
{
	var inputone = prompt(Texto,ValorInicial);
	if (inputone != null)
	{
	    if (doDigits(inputone))
	    {
		    //window.alert(inputone);
            ValorRetorno.value = inputone;
            return true;
		}
		else
		{
		    prompt_box_numero(Texto, ValorInicial, ValorRetorno) 
		}		
	}
	else
	{
		return false;
	}
}



//******************************************************************
//******************************************************************

var reDigits = /^\d+$/;

function doDigits(pStr)
{
	if (reDigits.test(pStr)) 
	{
		return true ;
	} 
	else
	{
	    alert("['" + pStr + "'] NÃO é uma Valor Válido. Informe Novamente...");
	    return false ;
	}
}

var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
var reDecimal = reDecimalPt;

function doDecimal(pStr, pLang)
{
	charDec = ( pLang != "En"? ",": "." );
	eval("reDecimal = reDecimal" + pLang);
	if (reDecimal.test(pStr)) {
		pos = pStr.indexOf(charDec);
		decs = pos == -1? 0: pStr.length - pos - 1;
		alert(pStr + " é um float válido (" + pLang + ") com " + decs + " decimais.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃO é um float válido.");
	}
} // doDecimal

var reMoeda = /^\d{1,3}(\.\d{3})*\,\d{2}$/;

function doMoeda(pStr)
{
	if (reMoeda.test(pStr)) {
		alert(pStr + " é um valor financeiro válido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃO é um valor financeiro válido.");
	}
} 

var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate = reDate4;

function doDate(pStr, pFmt)
{
    eval("reDate = reDate" + pFmt);
	if (reDate.test(pStr)) 
	{
		return true;
	} 
	else 
	{
		alert("['"+pStr+"'] NÃO é uma data válida.");
		return false;
	}
} // doDate

var reTime1 = /^\d{2}:\d{2}$/;
var reTime2 = /^([0-1]\d|2[0-3]):[0-5]\d$/;
var reTime3 = /^(0[1-9]|1[0-2]):[0-5]\d$/;
var reTime4 = /^\d+:[0-5]\d:[0-5]\d$/;
var reTime5 = /^\d+:[0-5]\d:[0-5]\.\d{3}\d$/;

function doTime(pStr, pFmt)
{
	eval("reTime = reTime" + pFmt);
	if (reTime.test(pStr)) {
		alert(pStr + " é um horário/tempo válido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃO é um horário/tempo válido.");
	}
} // doTime

var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;

function doEmail(pStr, pFmt)
{
	eval("reEmail = reEmail" + pFmt);
	if (reEmail.test(pStr)) {
		alert(pStr + " é um endereço de e-mail válido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃO é um endereço de e-mail válido.");
	}
} // doEmail
