<!--

function isNumeric(pStr)
{
//	var aux = pStr;

//	var regex = /^[0-9]$/;
//	return regex.test(pStr);
	if (pStr.indexOf(".") > 0) return false;
	if (pStr.indexOf(",") > 0) return false;
	
	if (isNaN(pStr))
		return false;
	else
		return true;
		
}

function left(str, n) {
    if (n <= 0) return "";
    else if (n > String(str).length) return str;
    else return String(str).substring(0,n);
}

function right(str, n) {
    if (n <= 0) return "";
    else if (n > String(str).length) return str;
    else
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
}

// Verificar qual navegador
function QualNavegador(){
	var u = navigator.userAgent.toLowerCase();
	var s = navigator.appName;	
	if(u.indexOf('safari')!= -1)
		return "SA";	
	if ( s == "Microsoft Internet Explorer" )
		return "IE";
	else if ( s == "Netscape" )
		return "NE";
	else
		return "";
}

// Verificar qual a versão do navegador
function QualVersao()
{
	var s = navigator.appVersion;
	if ( QualNavegador() == "IE" )
	{
		var i = s.search("MSIE");
		s=s.substring(i+5);
		i=s.search(";");
		return s.substring(0,i);
	}
	else if ( QualNavegador() == "NE" ){
		if(navigator.userAgent.indexOf('Netscape/7.0')!= -1)return "7.0";		
		if(navigator.userAgent.indexOf('Netscape/7.1')!= -1)return "7.1";
		return parseInt(s.substring(0,1));
	}
	else{
		return 0;}
}

// Setar o evento
function SetarEvento(ctrl, Tipo )
{
	// Filtra navegadores conhecidos
	var s = QualNavegador();

	if ( s.length==0 )
		return;

	if ( s=="IE" && QualVersao()>6 )
		return;
	/* As linhas abaixo, foram comentadas para a função rodar no NS 7.0	
	if ( s=="NE" && QualVersao()>4 )
		return;
	*/
	if (ctrl.onkeypress==null)
	{
		if (Tipo!=null)
			Tipo.toUpperCase();
		ctrl.Tipo=Tipo;
		//InicializarIndices();
		ctrl.onkeypress=ValidarTecla;
	}
}

function ValidarTecla (evnt)
{
	var tk;
    var c;
	var tkce;
	var ce;
	// Recebe a tecla pressionada
	tk = ( (QualNavegador()=="IE") ? event.keyCode : evnt.which);
    c=String.fromCharCode(tk);
	c=c.toUpperCase();

	tkce = ( (QualNavegador()=="IE") ? event.keyCode : evnt.which);
    ce=String.fromCharCode(tkce);
	ce=ce.toUpperCase();
	
	// Só aceita teclas alfanuméricas. Não aceita teclas de controle
    if ( tk < 32 )
		return true;
	if ( tk > 127 )
		return false;

	switch ( this.Tipo )
	{
	case "D":
		if ( c<"0" || c>"9" )
			return false;
		break;
	case "N":
		if ( (c<"0" || c>"9") && (c!=",") )
			return false;
		if ( (c==",") && ((this.value.search(",")>-1) || (this.value.length==0)) )
			return false;
		if ( (c==".") && (this.value.length==0) )
			return false;
		break;
	case "C":
		if ( c<"A" || c>"Z" )
			return false;
		break;
	case "CE":
		if ( tkce < 33 )
			return true;
		if ( tkce > 127 )
			return false;
		if ( ce<"A" || ce>"Z" )
			return false;
		break;
	case "ALERTLOGIN":
		if ((c<"0" || c>"9") || (c<"A" || c>"Z"))
		{
			return false;
		}
		break;
	case "ALERT":
		if ( c<"A" || c>"Z" )
		{
			return false;
		}
		break;
	case "ALERTSENHA":
		if ((c<"0" || c>"9") || (c<"A" || c>"Z"))
		{
			return false;
		}
		break;
	default:
		break;
	}

	//verifica se o tamanho do campo, coincide com o solicitado para saltar	
	// se for NS7.0, Safari não decrementa		
	if ((QualNavegador()=="NE" && QualVersao()=="7.0") || QualNavegador()=="SA")	
		this.Saltar=(this.value.length==this.Tam);	
	else
		this.Saltar=(this.value.length==this.Tam-1);	
		
		
	if ( ((QualNavegador()=="IE") && QualVersao()<5) || (QualNavegador()!="IE") )
		SaltarCampo(this);

	return true;
}

function ValidarCharCode( evt, strTipoCharCode) {
	
	var arrCharCode;
	
	// Definindo tipo do evento
	evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	
	//alert(charCode);
	
	// Gerando lista de codes de acordo com tipo de validação
	switch (strTipoCharCode) {
	
	// Validando somente números
	case '010' : arrCharCode = '8,9,35,36,48,49,50,51,52,53,54,55,56,57'; break;
	
	// Alguns caracteres especiais
	case '020' : arrCharCode = '8,9,13,16,17,18,19,20,35,36,37,38,39,40,45,46'; break;
	
	// Validando somente números (ponto / virgula)
	case '030' : arrCharCode = '8,9,35,36,44,46,48,49,50,51,52,53,54,55,56,57'; break;
	
	// Validando espaço
	//case '040' : alert(charCode); arrCharCode = '32'; break;
		
	}
	
	if(arrCharCode.indexOf(charCode) == -1) {return false}
	return true;
	
}

function ValidarEmail(strEmail) {
	
	var arrChar = [
	["@",1], [".",1], ["@@",0], ["@.",0], ["\\",0], ["/",0], ["'",0], ["www",0], ["!",0], [",",0], [";",0], ["ç",0], 
	["^",0], ["~",0], ["[",0], ["]",0], ["´",0], ["*",0], ["+",0], ["<",0], [">",0], ["#",0], ["$",0], ["%",0], ["¨",0], 
	["&",0], ["(",0], [")",0], [":",0], ["|",0], ["{",0], ["}",0], ["..",0]
	];
	
	for(x=0; x<arrChar.length; x++) {
		if(arrChar[x][1] == 1 && strEmail.indexOf(arrChar[x][0]) == -1) {
			alert('Email inválido.\nColocar ['+ arrChar[x][0] +']');
			return false;
		}
		else if(arrChar[x][1] == 0 && strEmail.indexOf(arrChar[x][0]) != -1) {
			alert('Email inválido.\nRetirar ['+ arrChar[x][0] +']');
			return false;
		}
	}
	
	return true;
}

function formatDate(obj,objNext)
{
    switch (obj.value.length) {
        case 2:
            obj.value = obj.value + "/";
            break;
        case 5:
            obj.value = obj.value + "/";
            break;
        case 9:
            objNext.focus();
            break;
    }
}

/**  
 * Função para aplicar máscara em campos de texto
 * Copyright (c) 2008, Dirceu Bimonti Ivo - http://www.bimonti.net 
 * All rights reserved. 
 * @constructor  
 */ 
 
/* Version 0.27 */

/**  
  * Função Principal 
  * @param w - O elemento que será aplicado (normalmente this).
  * @param e - O evento para capturar a tecla e cancelar o backspace.
  * @param m - A máscara a ser aplicada.
  * @param r - Se a máscara deve ser aplicada da direita para a esquerda. Veja Exemplos.
  * @param a - 
  * @returns null  
  */
function maskIt(w,e,m,r,a)
{
    // Cancela se o evento for Backspace
    if (!e) var e = window.event
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    
    // Variáveis da função
    var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
    var mask = (!r) ? m : m.reverse();
    var pre  = (a ) ? a.pre : "";
    var pos  = (a ) ? a.pos : "";
    var ret  = "";
    
    if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;
    
    // Loop na máscara para aplicar os caracteres
    for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
        if(mask.charAt(x)!='#'){
            ret += mask.charAt(x); x++;
        } else{
            ret += txt.charAt(y); y++; x++;
        }
    }
    
    // Retorno da função
    ret = (!r) ? ret : ret.reverse()
    
    w.value = pre+ret+pos;
}

// Novo método para o objeto 'String'
String.prototype.reverse = function(){
    return this.split('').reverse().join('');
};

// -->