/************************************************************************
*	Powered by
*		Sinapse - Tecnologia da Informacao
*			Av. Sao Paulo, 172 - 14 andar - sala 1415
*			Maringa - Pr	(44)227-3562
************************************************************************/
//acrescentado verifyStringValidChars(txField, dsTxField, validChars, mnSize, mxSize, format) em 26/08/2002
//acrescentado verifyStringInValidChars(txField, dsTxField, validChars, mnSize, mxSize, format) em 26/08/2002
//retirado validaCaracteres(item, strValida) em 26/08/2002

var screenHeight = screen.availHeight - 48;
var screenWidth = screen.availWidth - 9;
var opcoes_popup = 'directories=0,location=0,menubar=0,resizeable=1,toolbar=0,status=1,';
var opcoes_tela = opcoes_popup + 'scrollbars=1,top=0,left=0,height=' + screenHeight.toString() + ',width=' + screenWidth.toString();

function setColor(textbox, color) 
{
  textbox.style.backgroundColor = color;
}

function chamar(dsUrl, nmTela) 
{
  window.open(dsUrl, nmTela, opcoes_tela);
}

function abrirPopup(url, nome, opcoes) 
{
  window.open(url, nome, opcoes_popup + opcoes);
}


function validaAno(number)
{
	/*
	verifica se ano menor que 1000
	para browser netscape por exemplo que retorna 101 para ano 2001
	*/
	return ((number < 1000) ? number + 1900 : number); 
}

function validaData(item)
{
	var anoLimiteInicial = 1800;
	var anoLimiteFinal	 = 2070;
	
	if (!validaCaracteres(item, "0123456789/"))
		return false;
	
	if (item.length < 10)
 		return false;
	
	if (item.substring(2,3) != "/" || item.substring(5,6) != "/")
		return false;
	
	var dd = Number(item.substring(0,2));
	var mm = Number(item.substring(3,5)-1);
	var aa = Number(item.substring(6,10));
	
	if (aa < anoLimiteInicial || aa > anoLimiteFinal)
		return false;
	
	var test = new Date(aa, mm, dd);
	
    if ( (validaAno(test.getYear()) != aa) || (mm != test.getMonth()) || (dd != test.getDate()) )
		return false;
	
	return true;
}

function data2MenorQueData1(dataI, dataF, horaI, horaF)
{
	var diaI =  dataI.substring(0,2);
	var mesI =  dataI.substring(3,5);
	var anoI =  dataI.substring(6,10);
	
	var diaF =  dataF.substring(0,2);
	var mesF =  dataF.substring(3,5);
	var anoF =  dataF.substring(6,10);
		
	if(anoF < anoI)
		return true;
	
	if(anoF == anoI && mesF < mesI)
		return true;
	
	if(anoF == anoI && mesF == mesI && diaF < diaI)
		return true;

	if(anoF == anoI && mesF == mesI && diaF == diaI)
	{
		if(hora2MenorQueHora1(horaI, horaF))
			return true;
	}
	return false;
}

function hora2MenorQueHora1(auxHoraI, auxHoraF)
{
	var horaI =  auxHoraI.substring(0,2);
	var minI =  auxHoraI.substring(3,5);
	
	var horaF =  auxHoraF.substring(0,2);
	var minF =  auxHoraF.substring(3,5);

	if(horaF < horaI)
		return true;
	
	if(horaF == horaI && minF < minI)
		return true;
	
	if(horaF == horaI && minF == minI)
		return true;

	return false;
}

function DateMask(keypress, objeto)
{
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 2;
 	separacao1 = '/';
 	separacao2 = '/';
 	conjuntos = 3;
 	conjunto1 = 2;
 	conjunto2 = 2;
 	conjunto3 = 4;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + conjunto3 + 2))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 
		 if (campo.value.length == conjunto1 + conjunto2 + 1)
			campo.value = campo.value + separacao2;
 		}
		else
	{
		event.returnValue=false;
	}
}





function validMail(emailStr)
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|arg|am|art|esp|far|fm|g12|imb|ind|inf|psi|rec|srv|tmp|tur|tv|etc|adm|adv|arq|ato|bio|bmd|cim|cng|cnt|ecn|eng|eti|fnd|fot|fst|ggf|jor|lel|mat|med|mus|not|ntr|odo|ppg|pro|psc|qsl|slg|trd|vet|zlg|nom)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		setError("Endereco de e-mail invalido. Por favor, confira-o novamente");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			setError("O seu e-mail contem um nome de usuario invalido.");
			return false;
			}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			setError("O dominio do seu e-mail contem caracteres invalidos.");
			return false;
		}
	}
	if (user.match(userPat)==null) {
		setError("O nome do usuario de seu e-mail nao e valido.");
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				setError("O IP de destino do seu e-mail e invalido");
				return false;
			}
		}
		return true;
	}
	 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			setError("O dominio do seu e-mail e invalido");
			return false;
		}
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		setError("O seu endereco de e-mail deve terminar com um nome de dominio valido ou com 2 letras representando um pais");
		return false;
	}
	
	if (len<2) {
		setError("Este e-mail nao possui um nome de servidor valido");
		return false;
	}
	return true;
}

function verifyStringValidChars(txField, dsTxField, validChars, mnSize, mxSize, format)
{
	if(txField == null)//acrescentado em 31/07/2002
	{
		return false;
	}

	var textField = trim(txField.value);

	if(parseInt(mxSize) != 0)//indica obrigatoriedade do campo - acrescentado em 31/07/2002
	{		
		if((textField.length >= mnSize) && (textField.length <= mxSize))
		{		
			for(i=0; i<txField.value.length; i++)
			{
				if( validChars.indexOf(txField.value.toUpperCase().substring(i,i+1)) == -1) 
				{
					setError("O campo "+dsTxField+" so pode conter os caracteres: "+validChars + " - "+format);
					return false;	
				}
			}
		}
		else
		{
			setError("O campo "+dsTxField+" deve conter no minimo "+mnSize+" e no maximo "+mxSize+" caracteres.");
			return false;
		}
	}
	else
	{
		for(i=0; i<txField.value.length; i++)
		{
			if( validChars.indexOf(txField.value.toUpperCase().substring(i,i+1)) == -1) 
			{
				setError("O campo "+dsTxField+" so pode conter os caracteres: "+validChars + " - "+format);
				return false;	
			}
		}
	}
			
	return true;	
}

function verifyNumericValidChars(txField, dsTxField, nrDecimal, validChars, mnSize, mxSize, format)
{
	var posComma = txField.value.indexOf(',');
	var befComma = '';
	var aftComma = '';
	var error = "O campo "+dsTxField;

	if(!verifyStringValidChars(txField, dsTxField, validChars, mnSize, mxSize, format))
	{
		return false;
	}

	if (posComma==-1)
	{
		return true;
	}

	if (posComma==0)
	{
		setError(error+" nao pode iniciar com virgula.");
		return false;
	}

	befComma = txField.value.substring(0, posComma);
	aftComma = txField.value.substring(posComma+1, txField.value.length);

	if (aftComma.indexOf(',')!=-1)
	{
		setError(error+" tem mais de uma virgula.");
		return false;
	}

	if (aftComma.length>nrDecimal)
	{
		setError(error+" tem mais de "+nrDecimal+" decimais.");
		return false;
	}
	return true;
}

function verifyStringInValidChars(txField, dsTxField, invalidChars, mnSize, mxSize, format)
{
	if(txField == null)//acrescentado em 31/07/2002
	{
		return false;
	}
	
	if(parseInt(mxSize) != 0)//indica obrigatoriedade do campo - acrescentado em 31/07/2002
	{		
		if(trim(txField.value).length >= mnSize && trim(txField.value).length <= mxSize)
		{		
			for(i=0; i<txField.value.length; i++)
			{
				if( invalidChars.indexOf(txField.value.toUpperCase().substring(i,i+1)) != -1) 
				{
					setError("O campo "+dsTxField+" nao pode conter os caracteres: "+invalidChars + " - "+format);
					return false;	
				}					
			}
		}
		else
		{
			setError("O campo "+dsTxField+" deve conter no minimo "+mnSize+" e no maximo "+mxSize+" caract?es.");		
			return false;
		}		
	}
	else
	{
		for(i=0; i<txField.value.length; i++)
		{
			if( invalidChars.indexOf(txField.value.toUpperCase().substring(i,i+1)) != -1) 
			{
				setError("O campo "+dsTxField+" nao pode conter os caracteres: "+invalidChars + " - "+format);
				return false;	
			}					
		}
	}
			

	return true;	
}

function selectThoseCheckBoxes(form, nome, listOfCheckBox)
{
	var a = document.all.tags('input');
	var len = listOfCheckBox.length;
	var i = 0;
	var aux = listOfCheckBox;
	var conteudo = "";
	var continua = true;
	var virgula;
	var pos;

	for (i=0; i<a.length; i++)
	{
		if ((a[i].id == "checkbox") && (a[i].name == nome))
		{
			aux = listOfCheckBox;
			continua = true;
			while (continua)
			{
				conteudo = "";
			    virgula = aux.indexOf(",");
				pos = virgula + 1;
				if (virgula == -1)
				{
					continua = false;
					conteudo = aux;
				}
				else
				{
					conteudo = aux.substring(0,virgula);
                    aux = aux.substring(pos, aux.length);
				}
				if (a[i].value == conteudo)
				{
					a[i].checked = true;
				}
			}
		}
	}
}
