// abre janela sem opções de modificação, menu, url
function abreUrl(urlLink) {
	window.open(urlLink,'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=795,height=580');
	}

function abreUrlPequena(urlLink) {
	window.open(urlLink,'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=500,height=400');
	}

function historicoPtax(linkPtax) {
	window.open(linkPtax,'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=300,height=300');
	}

// abre prompt do java para a entrada de um valor numerico e redireciona pagina passando a variavel
function alteraValor(valor,url) {
	var novoValor=prompt("Informe o valor:",valor);
	if (novoValor == null) {
		} else {
		var validaNumero = (Number(novoValor));
		retornaValidado = new Boolean(validaNumero);
		if (retornaValidado == false) {
			alert('Valor inválido!');
			} else {
			window.location=url+novoValor;
			}
		}
	}

// função para verificar se foi digitado numero
// chamar a funcao atravez do onKeyPress="verificaNumerico()"
function verificaNumerico() {
	var tecla = window.event.keyCode;
	if((tecla > 47 && tecla < 58))  {
		event.returnValue = true;
		} else  {
		event.returnValue = false;
		}
	}

// funcao para formatar o campo no formato DD/MM/AAAA HH:MM durante a digitacao
// chamar a funcao atravez do onKeyPress="formataCampoData(this)" 
// o campo deve ter obrigatoriamente a propiedade maxlength="16" para que a funcao funcione corretamente
function formataCampoData(campo) {
	if (campo.value.length == 2) {
		campo.value = campo.value+'/';
	} else if (campo.value.length == 5) {
		campo.value = campo.value+'/';
	} else if (campo.value.length == 10) {
		campo.value = campo.value+' ';
	} else if (campo.value.length == 13) {
		campo.value = campo.value+':';
	}
	} // fim da funcao formataCampoData

// funcao para formatar o campo no formato HH:MM durante a digitacao
// chamar a funcao atravez do onKeyPress="formataCampoData(this)" 
// o campo deve ter obrigatoriamente a propiedade maxlength="5" para que a funcao funcione corretamente
function formataCampoHora(campo) {
	if (campo.value.length == 2) {
		campo.value = campo.value+':';
	}
	} // fim da funcao formataCampoData

// funcao para verificar se um campo data/hora está correto.
// chamar a funcao atravez do onBlur="verificaData(this)"
function verificaData(campo) {
	var anoData = Number(campo.value.substr(6,4));
	var mesData = Number(campo.value.substr(3,2));
	var diaData = Number(campo.value.substr(0,2));
	var horaData = Number(campo.value.substr(11,2));
	var minutoData = Number(campo.value.substr(14,2));

	var ultimoDiaMes = new Array();
	ultimoDiaMes[1]=31;
	if (anoData % 4 == 0) { // ano bisexto
		ultimoDiaMes[2]=29;
		} else {
		ultimoDiaMes[2]=28;
		}
	ultimoDiaMes[3]=31;
	ultimoDiaMes[4]=30;
	ultimoDiaMes[5]=31;
	ultimoDiaMes[6]=30;
	ultimoDiaMes[7]=31;
	ultimoDiaMes[8]=31;
	ultimoDiaMes[9]=30;
	ultimoDiaMes[10]=31;
	ultimoDiaMes[11]=30;
	ultimoDiaMes[12]=31;

	if ((isNaN(anoData)==true || anoData<1 || isNaN(mesData)==true || mesData>12 || mesData<1 || isNaN(diaData)==true || diaData>ultimoDiaMes[mesData] || diaData<1 || isNaN(horaData)==true || horaData>23 || horaData<0 || isNaN(minutoData)==true || minutoData>59 || minutoData<0) && campo.value!="") {
		alert('Data ou hora inválidos.');
		campo.focus();
		}
	} // fim da funcaoVerificaData

// funcao para verificar se um campo data/hora está correto.
// chamar a funcao atravez do onBlur="verificaData(this)"
function verificaHora(campo) {
	var horaData = Number(campo.value.substr(0,2));
	var minutoData = Number(campo.value.substr(3,2));
	var separador = String(campo.value.substr(2,1));

	if ((isNaN(horaData)==true || horaData>23 || horaData<0 || isNaN(minutoData)==true || minutoData>59 || minutoData<0 || separador!=":") && campo.value!="") {
		alert('Hora inválida.');
		campo.focus();
		}
	} // fim da funcaoVerificaData


/**
 * The global array below will be used inside the "setPointer()" function
 */
var markedRow = new Array();

/**
 * Sets/unsets the pointer in browse mode
 *
 * @param   object   the table row
 * @param   object   the color to use for this row
 * @param   object   the background color
 *
 * @return  boolean  whether pointer is set or not
 */
function setPointer(theRow, thePointerColor, theNormalBgColor)
{
    var theCells = null;

    if (thePointerColor == '' || typeof(theRow.style) == 'undefined') {
        return false;
    }
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

	    var rowCellsCnt  = theCells.length;
    var currentColor = null;
    var newColor     = null;
    // Opera does not return valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined' && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        newColor     = (currentColor.toLowerCase() == thePointerColor.toLowerCase())
                     ? theNormalBgColor
                     : thePointerColor;
        for (var c = 0; c < rowCellsCnt; c++) {
            theCells[c].setAttribute('bgcolor', newColor, 0);
        } // end for
    }
    else {
        currentColor = theCells[0].style.backgroundColor;
        newColor     = (currentColor.toLowerCase() == thePointerColor.toLowerCase())
                     ? theNormalBgColor
                     : thePointerColor;
        for (var c = 0; c < rowCellsCnt; c++) {
            theCells[c].style.backgroundColor = newColor;
        }
    }

    return true;
} // end of the 'setPointer()' function
