function trim(campo)
{
	cValorCampo = new String(campo.value);
	nEspacoEsquerda = nEspacoDireita = 0;
	iTrim = 0;
	
	while(iTrim < cValorCampo.length)
	{
		if(cValorCampo.charAt(iTrim) != ' ')
			break;
		iTrim++;
	}
	nEspacoEsquerda = iTrim;
	
	iTrim = cValorCampo.length - 1
	while(iTrim > -1)
	{
		if(cValorCampo.charAt(iTrim) != ' ')
			break;
		iTrim--;
	}
	
	nEspacoDireita  = iTrim + 1;
	
	return cValorCampo.slice(nEspacoEsquerda,nEspacoDireita);	
}

function campovazio(campo)
{
	if(trim(campo) == "")
		return true
	else
		return false
}

function isemail(campo)
{
	cCaracteresInvalidos = new String('\\/,;:?<>"' + "'")
	nAisemail = 0

	cValorCampo = new String(campo.value)
	nPosicao = nPosicao1 = 0
	
	if(campovazio(campo))
		return false;

	//verifica se tem algum caracter invalido para o email
	for(nAisemail  = 0; nAisemail  < cCaracteresInvalidos.length; nAisemail++)
	{
		if (cValorCampo.indexOf(cCaracteresInvalidos.slice(nAisemail,nAisemail + 1)) > -1)
		{
			return false;
		}
	}	

	cValorCampo = trim(campo)

	nPosicao = cValorCampo.indexOf('@')
	nPosicao1 = cValorCampo.indexOf('.')
	
	//ver comprimento minimo ex: a@b.c
	if(cValorCampo.length < 5)
		return false;

	// ver se tem @
	if(nPosicao==-1)
		return false;

	// ver se tem mais de um @
	if(nPosicao != cValorCampo.lastIndexOf('@'))
		return false;
	
	// ver se o @ nao eh a primeira letra
	if(nPosicao == 0)
		return false;
		
	//ver se o @ nao eh a ultima letra
	if(nPosicao == cValorCampo.length - 1)
		return false;
		
	//ver se tem ponto
	if(nPosicao1 == -1)
		return false;
		
	//ver se nao comeca com ponto
	if(nPosicao1 == 0)
		return false;
		
	//ver se nao termina com ponto
	if(cValorCampo.charAt(cValorCampo.length - 1) == ".")
		return false;

	//ver se o ponto está junto com a @
	if((cValorCampo.charAt(nPosicao - 1) == ".") || ( cValorCampo.charAt(nPosicao + 1) == "."))
		return false;
	
	//ver se nao tem espacos
	if(cValorCampo.indexOf(' ') > -1)
		return false;

	return true;
}

function isnumero(campo)
{
	cValorCampo = new String(campo.value);
	iNumero = 0;

	if(campovazio(campo))
		return false;
			
	while(iNumero < cValorCampo.length)
	{
		if(cValorCampo.charAt(iNumero) < '0' || cValorCampo.charAt(iNumero) > '9')
			return false;
		iNumero++;
	}
	
	return true
}

function isdata(campodia,campomes,campoano)
{
	if(! isnumero(campodia))
		return false;
		
	if(! isnumero(campomes))
		return false;
	
	if(! isnumero(campoano))
		return false;

	if(campomes.value < 1 || campomes.value > 12)
		return false;
		
	if(campodia.value < 1 || campodia.value > 31)
		return false;
	
	switch(campomes.value)
	{
		case '1'  :
		case '3'  :
		case '5'  :
		case '7'  :
		case '8'  :
		case '10' :
		case '12' :
				return true;
				break;
		case '4'  :
				case '6'  : 
		case '9'  :
		case '11' :
				if(campodia.value < 31)
					return true;
				else
					return false;
				break;

		case '2'  :
				if(campodia.value < 29)
					return true;
				
				if(campodia.value > 29)
					return false;
					
				if((campoano.value % 4) == 0)
					return true;
				else
					return false;
				break;

	}						
}

function isdata2(campo)
{
	cValorCampo = new String(campo.value);
	
	//tamanho minimo = 1/1/1999
	//tamanho maximo = 10/10/1999
	if(cValorCampo.length < 8 || cValorCampo.length > 10)
		return false;
		
	nBarra1 = cValorCampo.indexOf('/');
	nBarra2 = cValorCampo.lastIndexOf('/');	

	//nao tem barra
	if(nBarra1 == -1)
		return false;

	//so tem uma barra		
	if(nBarra1 == nBarra2)
		return false;
	
	//tem mais de uma barra	
	if(cValorCampo.indexOf('/',nBarra1 + 1) != nBarra2)
		return false;

	//verifica se tem algo diferente de numero ou barra
	for(i=0;i<cValorCampo.length;i++)
	{
		switch(cValorCampo.charAt(i))
		{
		case '0' :
		case '1' :
		case '2' :
		case '3' :
		case '4' :
		case '5' :
		case '6' :
		case '7' :
		case '8' :
		case '9' :
		case '10':
		case '/' :
					break;
		default :
			return false;
			break;
		}
	}

	nDia = Number(cValorCampo.slice(0,nBarra1));
	nMes = Number(cValorCampo.slice(nBarra1 + 1,nBarra2));
	nAno = Number(cValorCampo.slice(nBarra2 + 1));

	if(nMes < 1 || nMes > 12)
		return false;
		
	if(nDia < 1 || nDia > 31)
		return false;
			
	switch(nMes)
	{
		case 1  :
		case 3  :
		case 5  :
		case 7  :
		case 8  :
		case 10 :
		case 12 :
				return true;
				break;
		case 4  :
		case 6  : 
		case 9  :
		case 11 :
				if(nDia < 31)
					return true;
				else
					return false;
				break;
		case 2  :
				if(nDia < 29)
					return true;
				
				if(nDia > 29)
					return false;
					
				if((nAno % 4) == 0)
					return true;
				else
					return false;
				break;
	}						

	return true;
}

//Converte 3 combos em uma data
//retornos
//0 - erro
function Combo2Data(Dia2Data,Mes2Data,Ano2Data)
{
	if(! isdata(Dia2Data,Mes2Data,Ano2Data))
		return false;
	
	rCombo2Data = new Date(Ano2Data.value,Mes2Data.value-1,Dia2Data.value)

	return rCombo2Data
}

//Converte campo texto em variavel data
//retornos
//0 - erro
function Texto2Data(cCampo)
{
	if(! isdata2(cCampo))
		return false;

	var tempTexto2Data = new String(cCampo.value)
	tempAno = tempTexto2Data.substring(tempTexto2Data.lastIndexOf('/')+1,tempTexto2Data.length)
	tempMes = tempTexto2Data.substring(tempTexto2Data.indexOf('/')+1,tempTexto2Data.lastIndexOf('/'))
	tempDia = tempTexto2Data.substring(0,tempTexto2Data.indexOf('/'))
	rTexto2Data = new Date(tempAno,tempMes-1,tempDia)

	return rTexto2Data
}

/*function ValidaEmail(str){
    var objRegExp =  new RegExp ("^((?:(?:(?:(\\w|~)[~\\.\\-\\+]?)*)(\\w|~))+)\\@((?:(?:(?:\\w[\\.\\-\\+]?){0,62})\\w)+)\\.([a-zA-Z]{2,6})$|^$");
    return objRegExp.test(str);
}
*/

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}
