var timerID = null, timerRunning = false, isNN = ( navigator.appName.indexOf('Netscape') != -1 );

function startClock(){
	stopClock(); Time();
}

function stopClock(){
	if(timerRunning)clearTimeout(timerID);
	timerRunning = false;
}

function Time(){
	var d = window.document, N = new Date(), H = N.getHours(), m = s = S = M = T = '';
	m = (N.getMinutes() < 10) ? ':0' : ':'
	s = (N.getSeconds() < 10) ? ':0' : ':'
	M = (m + N.getMinutes()); S = (s + N.getSeconds()); T = (H + M + S);
	d.getElementById('clock').innerHTML = T; timerID = setTimeout('Time()', 1000); timerRunning = true;
}

String.prototype.Trim = Trim;
function Trim(){
	return(this.replace(/^\s+|\s+$/gi, '').replace(/\s{2,}/gi, ' '));
}

function autoTab(c, l, e){
	var rg = c.name, m1 = 1;
	var kC = (isNN) ? e.which : e.keyCode;
	var f = (isNN) ? [0, 8, 9] : [0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46];
	
	if((c.value.length >= l) && (!containsElement(f, kC))){
		c.value = c.value.slice(0, l);
		if((rg == 'rg1') || (rg == 'rg2'))m1++;
		c.form[(getIndex(c) + m1) % c.form.length].focus();
	}
	
	function containsElement(a, e){
		var f = false, i = 0;
		while((!f) && (i < a.length)){
			if(a[i] == e)f = true;
			else i++;
		}
		return(f);
	}
	
	function getIndex(v){
		var i = -1, ii = 0;
		while((ii < v.form.length) && (i == -1)){
			if(v.form[ii] == v)i = ii;
			else ii++;
		}
		return(i);
	}
	return(true);
}
function validatesNumber(o, e){
	var i = eval(o), d = i.value, kC = '';
 	if(window.event)kC = e.keyCode;
	else if(e)kC = e.which;
	if(!(((kC > 47) && (kC < 58)) || (kC == 0) || (kC == 8) || (kC == 13))){//return(true);
	//else{
		alert('O campo só aceita valores numéricos!'); eval(o).focus();
		e.returnValue = null;
		/*if(window.event)e.returnValue = false;
		else if(e)e.preventDefault();*/
	}
}

function validatesCurrency(o, e){
	var i = eval(o), d = i.value, kC = '';
	if(window.event)kC = e.keyCode;
	else if(e)kC = e.which;
	if(((kC > 47) && (kC < 58)) || (kC == 0) || (kC == 8) || (kC == 13) || (kC == 44) || (kC == 46))return(true);
	else{
		alert('O campo só aceita valores numéricos!'); eval(o).focus();
		if(window.event)e.returnValue = false;
		else if(e)e.stopPropagation();
	}
}

function masksCep(o, e){
	var i = eval(o), d = i.value, kC = '';
	if(window.event)kC = e.keyCode;
	else if(e)kC = e.which;
	if(((kC > 47) && (kC < 58)) || (kC == 0) || (kC == 8) || (kC == 13)){
		if (d.length == 5)i.value += '-';
	}
	else{
		alert('O campo só aceita valores numéricos!'); eval(o).focus();
		if(window.event)e.returnValue = false;
		else if(e)e.stopPropagation();
	}
}

function masksDate(o, e){
	var i = eval(o), d = i.value, kC = '';
	if(window.event)kC = e.keyCode;
	else if(e)kC = e.which;
	if(((kC > 47) && (kC < 58)) || (kC == 13)){
		if (d.length == 2)i.value += '/';
		else if (d.length == 5)i.value += '/';
	}
	else{
		alert('O campo só aceita valores numéricos!'); eval(o).focus();
		if(window.event)e.returnValue = false;
		else if(e)e.stopPropagation();
	}
}

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 = 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 = '';
	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';
	}
} 

function swapOver(b, i){
	window.document.getElementById(b).src = i;
}

function swapOut(b, i){
	window.document.getElementById(b).src = i;
}
