	var timerID = null;
	var timerRunning = false;
	function startClock() 
		{
			stopClock(); time();
		}
	
	function stopClock()
		{
			if(timerRunning)clearTimeout(timerID); timerRunning = false;
		}
	
	function time()
		{
			var d = now = hours = minutes = m = s = T = '';
			d = window.document.getElementById; now = new Date(); hours = now.getHours();
			m = (now.getMinutes() < 10) ? ':0' : ':'
			s = (now.getSeconds() < 10) ? ':0' : ':'
			minutes = (m + now.getMinutes()); seconds = (s + now.getSeconds());
			Time = (hours + minutes + seconds); d('clock').innerHTML = Time;
			timerID = setTimeout('time()',1000); timerRunning = true;
		}
	
	function clearStatus()
		{
			if(timerRunning)clearTimeout(timerID); timerRunning = false;
			window.document.getElementById('t').innerHTML = '';
		}
	
	String.prototype.Trim = Trim;
	function Trim()
		{
			return(this.replace(/^\s+|\s+$/gi, '').replace(/\s{2,}/gi, ' '));
		}
	
	var isNN = (navigator.appName.indexOf('Netscape') != -1);  
	function autoTab(input,len, e)
		{
			var keyCode = (isNN) ? e.which : e.keyCode;
			var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
			
			if(input.value.length >= len && !containsElement(filter,keyCode))
				{
					input.value = input.value.slice(0, len);
					input.form[(getIndex(input)+1) % input.form.length].focus();
				}
			
			function containsElement(arr, ele)
				{
					var found = false, index = 0;
					while((!found) && (index < arr.length))
						{
							if(arr[index] == ele)found = true;
							else index++;
						}
					return found;
				}
			
			function getIndex(input)
				{
					var index = -1, i = 0, found = false;
					while((i < input.form.length) && (index == -1))
						{
							if(input.form[i] == input)index = i;
							else i++;
						}
					return index;
				}
			return true;
		}
		
	function validatesNumber(objeto)
		{
			var w = window.event;
			if(((w.keyCode > 47) && (w.keyCode < 58)) || (w.keyCode == 13))w.returnValue = true;
			else
				{
					alert ('O campo só aceita valores numéricos!'); eval(objeto).focus();
					w.returnValue = false;
				}
		}
		
	function validatesCurrency(objeto)
		{
			var w = window.event;
			if(((w.keyCode > 47) && (w.keyCode < 58)) || ((w.keyCode == 13) || (w.keyCode == 44) || 
			(w.keyCode == 46)))w.returnValue = true;
			else
				{
					alert ('O campo só aceita valores de moeda!'); eval(objeto).focus();
					w.returnValue = false;
				}
		}

	function masksCep(objeto)
		{
			var w = window.event, input = eval(objeto);
			if(((w.keyCode > 47) && (w.keyCode < 58)) || (w.keyCode == 13))
				{
					if (input.value.length == 5)input.value += '-';
				}
			else 
				{
					alert('O campo só aceita valores numéricos!'); eval(objeto).focus();
					w.returnValue = false;
				}
		}
	
	function masksDate(objeto)
		{
			var w = campo = '';
			w = window.event; campo = eval(objeto);
			if(((w.keyCode > 47) && (w.keyCode < 58)) || (w.keyCode == 13))
				{
					if (campo.value.length == 2)campo.value += '/';
					else if (campo.value.length == 5)campo.value += '/';
				}
			else
				{
					alert('O campo só aceita valores numéricos!'); eval(campo).focus();
					w.returnValue = false;
				}
		}
	
	function validatesNumberDate(v)
		{
			var t = '';
			for(x = 0; x < v.length; x++)
				{
					if(v.charAt(x) != '/')t += v.charAt(x);
				}
			return t;
		}
	
	function validatesDate(objeto, anoatual)
		{
			var input = '', dia = '', mes = '', ano = '', d = '', b = '';
			input = eval(objeto); d = input.value;
			if(isNaN(validatesNumberDate(d)))
				{
					alert('O campo só aceita valores numéricos!'); eval(input).select(); return false;
				}
			else
				{
					dia = d.slice(0, 2); mes = d.slice(3, 5); ano = d.slice(6, 10);
					b = ((ano % 4 == 0) && ((ano % 100 != 0) || (ano % 400 == 0)));
					
					if(d.length < 10)
						{
							alert('Data inválida. A data deve estar no formato: dd/mm/yyyy!');
							eval(input).select(); return false;
						}
					else if(ano < 1900)
						{
							alert('Ano inválido. O ano deve ser maior 1900!');
							eval(input).select(); return false;
						}
					else if(ano > anoatual)
						{
							alert('Ano inválido. O ano deve ser menor ou igual a '+ anoatual +'!');
							eval(input).select(); return false;
						}
					else if((mes <= 0) || (mes > 12))
						{
							alert('Mês inválido.!'); eval(input).select(); return false;
						}
					else if((mes == 2) && ((dia > 29) || ((dia == 29) && (!b))))
						{
							alert('Dia inválido.!'); eval(input).select(); return false;
						}
					else if(((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || 
					(mes == 10) || (mes == 12)) && ((dia <= 0) || (dia > 31)))
						{
							alert('Dia inválido.!'); eval(input).select(); return false;
						}
					else if(((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11)) && 
					((dia <= 0) || (dia > 30)))
						{
							alert('Dia inválido.!'); eval(input).select(); return false;
						}
					else return true;
				}
		}
	
function createNewDate(dt){
	var d = m = a = '';
	d = dt.slice(0, 2); m = dt.slice(3, 5); a = dt.slice(6, 10);
	var newDate = new Date(a +'/'+ m +'/'+ d);
	return(newDate);
}

	function cleanString(c)
		{
			var n = '0123456789', a = ''; //n = números; a = string resultante
			for(y = 0; y < c.length; y++)
				{
					if(n.indexOf(c.charAt(y)) >= 0)a += n.charAt(y);
				}
			return a;
		}
	
	function masksCPF(objeto)
		{
			var w = input = d = '';
			w = window.event; input = eval(objeto); d = input.value;
			if(((w.keyCode > 47) && (w.keyCode < 58)) || (w.keyCode == 13))
				{
					if(d.length == 3)d += '.';
					else if(d.length == 7)d += '.';
					else if(d.length == 11)d += '-';
				}
			else
				{
					alert('O campo só aceita valores numéricos!'); eval(input).focus();
					w.returnValue = false;
				}
		}
	
	function validatesCPF(objeto)
		{
			var input = s = d1 = d2 = c1 = c2 = pri1 = pri2 = dv1 = dv2 = cpf = soma = p1 = '';
			var v = true;
			var inv = new Array('000.000.000-00', '111.111.111-11', '222.222.222-22', '333.333.333-33', '444.444.444-44', '555.555.555-55', '666.666.666-66', '777.777.777-77', '888.888.888-88', '999.999.999-99');
			input = eval(objeto);
			for(i = 0; i < inv.length; i++)
				{
					if(input.value == inv[i])
						{
							v = false; break;
						}
				}
			if(!v)
				{
					alert('CPF inválido. Favor verificar!'); eval(input).focus(); return false;
				}
			else
				{
					s = cleanString(input.value); 
					d1 = '098765432'; d2 = '1098765432'; c1 = parseInt(s.slice(9, 10));
					c2 = parseInt(s.slice(10, 11)); pri1 = s.slice(0, 9); pri2 = s.slice(0, 10);
					for(i = 0; i < 9; i++)
						{
							if(d1.slice(i, (i + 1)) == '0')cpf = (10 * parseInt(pri1.slice(i, (i + 1))));
							else cpf = (parseInt(d1.slice(i, (i + 1))) * parseInt(pri1.slice(i, (i + 1))));
							soma += cpf;
						}
					
					dv1 = parseInt((soma % 11));
					if((dv1 == 0) || (dv1 == 1))dv1 = 0;
					else dv1 = (11 - dv1);
					if(c1 != dv1)
						{
							alert('Primeiro dígito verificador inválido!'); eval(input).focus();
							return false;
						}
					
					cpf = soma = 0;
					for(i = 0; i < 10; i++)
						{
							if(d2.slice(i, (i + 1)) == '1')cpf = (11 * parseInt(pri2.slice(i, (i + 1))));
							else if(d2.slice(i, (i + 1)) == '0')cpf = (10 * parseInt(pri2.slice(i, (i + 1))));
							else cpf = (parseInt(d2.slice(i, (i + 1))) * parseInt(pri2.slice(i, (i + 1))));
							soma += cpf;
						}
					
					dv2 = parseInt((soma % 11));
					if ((dv2 == 0) || (dv2 == 1))dv2 = 0;
					else dv2 = (11 - dv2);
					if (c2 != dv2)
						{
							alert('Segundo dígito verificador inválido!'); eval(input).focus(); return false;
						}
				}
			return true;
		}
	
function masksCNPJ(objeto){
	var w = window.event, input = eval(objeto), d = input.value;

	if(((w.keyCode > 47) && (w.keyCode < 58)) || (w.keyCode == 13)){
		switch(d.length){
			case 2: 
		}
		if(d.length == 2)input.value += '.';
		else if(d.length == 6)input.value += '.';
		else if (d.length == 10)input.value += '/';
		else if (d.length == 15)input.value += '-';
	}
	else
		{
			alert('O campo só aceita valores numéricos!'); eval(input).focus();
			w.returnValue = false;
		}
}

function validatesCNPJ(s){
	var input = eval(s), S = cleanString(input.value), c = S.substr(0, 12), dv = S.substr(12, 2), d1 = 0;
	
	for (i = 0; i < 12; i++){
		d1 += c.charAt(11 - i) * (2 + (i % 8));	
	}
	
	if(d1 == 0)return false;
	d1 = 11 - (d1 % 11);
	if(d1 > 9) d1 = 0;
	
	if(dv.charAt(0) != d1){
		alert ('Primeiro dígito verificador inválido!'); eval(input).select(); return false;
	}
	d1 *= 2;

	for(i = 0; i < 12; i++){
		d1 += c.charAt(11-i) * (2 + ((i + 1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if(d1 > 9) d1 = 0;
	if(dv.charAt(1) != d1){
		alert ('Segundo dígito verificador inválido!'); eval(input).select(); return false;
	}
	return true;
}

function validamail(obj){
	var input = eval(obj), retVal = false;
	if(input.value != ''){
		if((input.value.indexOf('@') < 0) || (input.value.indexOf('@') == 0) ||
		(input.value.substring((input.value.indexOf('@') + 1), input.value.length).indexOf('.') < 0) ||
		(input.value.charAt(input.value.indexOf('@') + 1) == '.')){
			alert('E-mail inválido. Exemplo de um e-mail válido: partners@partners.com.br!');
			eval(input).focus();
		}
		else retVal = true;
	}
	return(retVal);
}

function PG(n){
	var form = window.document.nav;
	form.CurrentPage.value = n; form.submit();
}
	
function insereQuebraLinha(f){
	var entrada = eval(f), fe = entrada.elements;
	for(i = 0; i < fe.length; i++){
		if(fe[i].type == 'textarea')fe[i].value = fe[i].value.replace(/\n/g, '<br />');
	}
}

function insereContraBarran(f){
	var entrada = eval(f), fe = entrada.elements;
	for(i = 0; i < fe.length; i++){
		if(fe[i].type == 'textarea'){
			do
				fe[i].value = fe[i].value.replace('<br />', '\n');
			while(fe[i].value.indexOf('<br />') > -1);
		}
	}
}

function TrimReplace(f){
	var entrada = eval(f), fe = entrada.elements;
	for(i = 0; i < fe.length; i++){
		if((fe[i].type == 'text') || (fe[i].type == 'textarea'))fe[i].value = fe[i].value.Trim();
	}
}

function getSubTipos(id){ 
	var d = window.document, f = d.pes, I = S = '';
	//var d = window.pSL.document, f = window.document.pes, I = S = '';
	if(d.getElementById('dbidsub'+ id) != null){
		f.idst.removeAttribute('disabled');
		for(var i = f.idst.length; i > -1; i--)f.idst[i] = null;
		I = d.getElementById('dbidsub'+ id).value.split(','); S = d.getElementById('dbsub'+ id).value.split(',');
		for(i = 0; i < I.length; i++)f.idst[i] = new Option(S[i], I[i]);
	}
	else{
		for(var i = f.idst.length; i > -1; i--)f.idst[i] = null;
		f.idst[0] = new Option('(----------)', ''); f.idst.disabled = 'disabled';
	}
} 
