function inicializa(){
	if(typeof(nroPosicoes)!='undefined')
		banners();
	if(typeof(inicializar)!='undefined')
		eval(inicializar);
	Mascaras.carregar();
	Obrigatorios.carregar();
}

function novaJanela(url,largura,altura){
	var top = (window.innerHeight-altura)/2;
	var left = (window.innerWidth-largura)/2;
	var config = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width="+largura+",height="+altura+",top="+top+",left="+left;
	window.open(url,"",config);
}

function link(url){
	document.location = url;
}

mascaras = Mascaras = {
	IsIE: navigator.appName.toLowerCase().indexOf('microsoft')!=-1,
	AZ: /[A-Z]/i,
	Acentos: /[Ŕ-˙]/i,
	Num: /[0-9]/,
	carregar: function(parte){
		var Tags = ['input','textarea'];
		if (typeof parte == "undefined") parte = document;
		for(var z=0;z<Tags.length;z++){
			Inputs=parte.getElementsByTagName(Tags[z]);
			for(var i=0;i<Inputs.length;i++)
				if(('button,image,hidden,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
					this.aplicar(Inputs[i]);
		}
	},
	aplicar: function(campo){
		tipo = campo.getAttribute('tipo');
		if (!tipo || campo.type == "select-one") return;
		orientacao = campo.getAttribute('orientacao');
		mascara = campo.getAttribute('mascara');
		if (tipo.toLowerCase() == "decimal"){
			orientacao = "esquerda";
			casasdecimais = campo.getAttribute('casasdecimais');
			tamanho = campo.getAttribute('maxLength');
			if (!tamanho || tamanho > 50)
				tamanho = 10;
			if (!casasdecimais)
				casasdecimais = 2;
			campo.setAttribute("mascara", this.geraMascaraDecimal(tamanho, casasdecimais));
			campo.setAttribute("tipo", "numerico");
			campo.setAttribute("orientacao", orientacao);
		}
		if (orientacao && orientacao.toLowerCase() == "esquerda") campo.style.textAlign = "right";
		if (mascara) campo.setAttribute("maxLength", mascara.length);
		if (tipo){
			campo.onkeypress = function(e){ return Mascaras.onkeypress(e?e:event); };
			campo.onkeyup = function(e){ Mascaras.onkeyup(e?e:event, campo) };
		}
		campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));
	},
	onkeypress: function(e){
		KeyCode = this.IsIE ? event.keyCode : e.which;
		campo =  this.IsIE ? event.srcElement : e.target;
		readonly = campo.getAttribute('readonly');
		if (readonly) return;
		maxlength = campo.getAttribute('maxlength');
		selecao = this.selecao(campo);
		if (selecao.length > 0 && KeyCode != 0){
			campo.value = ""; return true;
		}
		if (KeyCode == 0) return true;
		Char = String.fromCharCode(KeyCode);
		valor = campo.value;
		mascara = campo.getAttribute('mascara');
		if (KeyCode != 8){
			tipo = campo.getAttribute('tipo').toLowerCase();
			negativo = campo.getAttribute('negativo');
			if(negativo && KeyCode == 45){
				snegativo = campo.getAttribute('snegativo');
				snegativo = (snegativo == "s" ? "n" : "s");
				campo.setAttribute("snegativo", snegativo);
			}else{
				valor += Char
				if (tipo == "numerico" && Char.search(this.Num) == -1) return false;
				if (KeyCode != 32 && tipo == "caracter" && Char.search(this.AZ) == -1 && Char.search(this.Acentos) == -1) return false;
			}
		}
		if (mascara){
			this.aplicarMascara(campo, valor);
			return false;
		}
		return true;
	},
	onkeyup: function(e, campo){
		KeyCode = this.IsIE ? event.keyCode : e.which;
		if(KeyCode == 13) return;
		if (KeyCode != 9 && KeyCode != 16 && KeyCode != 109){
			valor = campo.value;
			if (KeyCode == 8 && !this.IsIE) valor = valor.substr(0,valor.length-1);
			this.aplicarMascara(campo, valor);
		}
	},
	aplicarMascara: function(campo, valor){
		mascara = campo.getAttribute('mascara');
		if (!mascara) return;
		negativo = campo.getAttribute('negativo');
		snegativo = campo.getAttribute('snegativo');
		if (negativo && valor.substr(0,1) == "-") 
			valor = valor.substr(1,valor.length-1);
		orientacao = campo.getAttribute('orientacao');
		var i = 0;
		for(i=0;i<mascara.length;i++){
			caracter = mascara.substr(i,1);
			if (caracter != "#") valor = valor.replace(caracter, "");
		}
		retorno = "";
		if (orientacao != "esquerda"){
			contador = 0;
			for(i=0;i<mascara.length;i++){
				caracter = mascara.substr(i,1);
				if (caracter == "#"){
					retorno += valor.substr(contador,1);
					contador++;
				}else
					retorno += caracter;
				if(contador >= valor.length) break;
			}
		}else{
			contador = valor.length-1;
			for(i=mascara.length-1;i>=0;i--){
				if(contador < 0) break;
				caracter = mascara.substr(i,1);
				if (caracter == "#"){
					retorno = valor.substr(contador,1) + retorno;
					contador--;
				}else
					retorno = caracter + retorno;
			}
		}
		if (negativo && snegativo == "s")
			retorno = "-" + retorno;
		campo.value = retorno;
	},
	geraMascaraDecimal: function(tam, decimais){
		var retorno = ""; var contador = 0; var i = 0;
		decimais = parseInt(decimais);
		for (i=0;i<(tam-(decimais+1));i++){
			retorno = "#" + retorno;
			contador++;
			if (contador == 3){
				retorno = "." + retorno;
				contador=0;
			}
		}
		retorno = retorno + ",";
		for (i=0;i<decimais;i++) retorno += "#";
		return retorno;
	},
	selecao: function(campo){
		if (this.IsIE)
			return document.selection.createRange().text;
		else
			return (campo.value).substr(campo.selectionStart, (campo.selectionEnd - campo.selectionStart));
	},
	formataValor: function (valor, decimais){
		valor = valor.split('.');
		if (valor.length == 1) valor[1] = "";
		for(var i=valor[1].length;i<decimais;i++)
			valor[1] += "0"; 
		valor[1] = valor[1].substr(0,2);
		return (valor[0] + "." + valor[1]);
	}
};

Obrigatorios = ({
	forms: [],
	carregar: function(parte){
		var Tags = ['input','textarea','select'];
		if (typeof parte == "undefined") parte = document;
		for(var z=0;z<Tags.length;z++){
			var Inputs=parte.getElementsByTagName(Tags[z]);
			for(var i=0;i<Inputs.length;i++)
				if(('button,image,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
					this.aplicar(Inputs[i]);
		}
	},
	aplicar: function(obj, aplForm){
		var obr = obj.getAttribute('obrigatorio');
		if (obr == "s" || obr == "S"){
			var formName = obj.form.name;
			if (typeof this.forms[formName] == "undefined"){
				this.forms[formName] = ({ campos: [], nomes: [] });
				if (aplForm == true)
					obj.form.onsubmit = function(){ return Obrigatorios.validar(obj.form.name) };
			}
			if (typeof this.forms[formName].nomes[obj.name] == "undefined"){
				this.forms[formName].nomes[obj.name] = obj.name;
				this.forms[obj.form.name].campos[this.forms[obj.form.name].campos.length] = ({
					nome: obj.getAttribute('name'),
					objLabel: document.getElementById("label_"+obj.name),
					label: obj.getAttribute('label')
				});
			}
		}
	},
	validar: function(nome){
		var erro = false;
		var serro = "Os campos abaixo devem ser preenchidos:\n";
		var primeiro = "";
		var campos = [];
		if (typeof this.forms[nome] == "object")
			var campos = this.forms[nome].campos;
		for (var xi=0;xi<campos.length;xi++){
			var obj = document.getElementsByName(campos[xi].nome);
			if(typeof obj != 'undefined'){
				for(var x=0;x<obj.length;x++){
					var valor = "";
					var obj2 = obj[x];
					if (('file,text,input,textarea,password,hidden').indexOf(obj2.type.toLowerCase()) !=-1)
						valor = obj2.value; 
					else if (obj2.type == 'select-one')
						valor = obj2.options[obj2.selectedIndex].value; 
					else if (('checkbox,radio').indexOf(obj2.type.toLowerCase()) !=-1){
						for (t=0;t<obj.length;t++){
							if (obj[t].checked){
								valor = obj[t].value;
								break;
							}
						}
						x = obj.length;
					}
					if (valor == ""){
						if (!erro){
							erro = true;
							primeiro = obj2;
						}
						//obj2.style.border = '2px solid #f44;';
						serro = serro+" - "+ campos[xi].label + "\n";
					}
				}		
			}
		}
		if(erro){
			alert(serro);
			if(primeiro.style.display != 'none' && primeiro.type.toLowerCase() != "hidden")
				primeiro.focus();
			return false;
		}
		return true;
	}
});


function valida_email(campo){
	if (campo.value == "") return;
	var goodEmail = (campo.value).match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
	if (!goodEmail){
		campo.value = "";
		alert("E-mail inválido!");
		campo.focus();
	}
}

function valida_cpf(obj) {
	if (obj.value == "") return;
	cpf = obj.value;
	var i;
	cpf = cpf.replace(".", "");
	cpf = cpf.replace(".", "");
	cpf = cpf.replace("-", "");
	var c  = cpf.substr(0,9);
	var dv = cpf.substr(9,2);
	erro = false;
	if (cpf == "00000000000") erro = true;
	if (cpf == "11111111111") erro = true;
	if (cpf == "22222222222") erro = true;
	if (cpf == "33333333333") erro = true;
	if (cpf == "44444444444") erro = true;
	if (cpf == "55555555555") erro = true;
	if (cpf == "66666666666") erro = true;
	if (cpf == "77777777777") erro = true;
	if (cpf == "88888888888") erro = true;
	if (cpf == "99999999999") erro = true;
	if (cpf == "12345678909") erro = true;
	var d1 = 0;
	for (i = 0; i < 9; i++)
		d1 += c.charAt(i)*(10-i);
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	d2 = d1 * 2;
	for (i = 0; i < 9; i++)
		d2 += c.charAt(i)*(11-i);
	d2 = 11 - (d2 % 11);
	if (d2 > 9) d2 = 0;
	if (dv.charAt(0) != d1 || dv.charAt(1) != d2 || erro == true){
		obj.value = "";
		alert("CPF inválido!");
		obj.focus();
	}
}

function valida(nome){
	return Obrigatorios.validar(nome);
}