// JavaScript Document

function paginaPai() {
	try {
		w = window.parent;
	}
	catch (ex) {
		w = top.window;
	}
	return w;
}

function verificaCamposObrigatorios( f ) {
/*
Função que varre o form, checando se os campos obrigatórios foram preenchidos.

Para os campos do tipo 'input', a propriedade usada para determinar a obrigatoriedade é 'alt'. Para que ocorra a obrigatoriedade, é necessário adicionar um valor à propriedade.

Para os campos com tag própria (textarea, select), a propriedade usada é lang. Para que ocorra a obrigatoriedade, é necessário adicionar um valor à propriedade. (POG)

OBS.: Essa função não checa campos check e radio

Essa função retorna true or false
*/
	var i;

	for (i = 0; i < f.length; i++) {
		if ((f.elements[i].type == 'text') || (f.elements[i].type == 'file') || (f.elements[i].type == 'password')) {
			if ((f.elements[i].disabled == false) && (f.elements[i].value == '') && (f.elements[i].alt != '')) {
				alert('O campo ' + f.elements[i].title + ' não foi preenchido.');
				f.elements[i].focus();
				return false;
				break;
			}
		}

		if (f.elements[i].type == 'textarea') {
			if ((f.elements[i].disabled == false) && (f.elements[i].value == '') && (f.elements[i].lang != '')) {
				alert('O campo ' + f.elements[i].title + ' não foi preenchido.');
				f.elements[i].focus();
				return false;
				break;
			}
		}

		if (f.elements[i].type == 'select-one') {
			if ((f.elements[i].disabled == false) && ( (f.elements[i].value == '') || (f.elements[i].value == '0') ) && (f.elements[i].lang != '')) {
				alert('O campo ' + f.elements[i].title + ' não foi selecionado.');
				f.elements[i].focus();
				return false;
				break;
			}
		}
	}
	return true;
}

function enviaDadosGeral(f) {
	if (verificaCamposObrigatorios(f) == true) {
		f.submit();
	}
}

MaskInput = function (f, m) {
	function mask(e) {
		var patterns = {
			"1": /[A-Z]/i,
			"2": /[0-9]/,
			"4": /[\xC0-\xFF]/i,
			"8": /./
		},
			rules = {
				"a": 3,
				"A": 7,
				"9": 2,
				"C": 5,
				"c": 1,
				"*": 8
			};

		function accept(c, rule) {
			for (var i = 1, r = rules[rule] || 0; i <= r; i <<= 1)
			if (r & i && patterns[i].test(c)) break;
			return i <= r || c == rule;
		}
		var k, mC, r, c = String.fromCharCode(k = e.key),
			l = f.value.length;
		(!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) && (r[0] = r[2].indexOf(c) + 1) + 1 ? r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0] : (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ? r.index : l)).length) < m.length && accept(c, m.charAt(l))) || e.preventDefault();
	}
	for (var i in !/^(.)\^(.*)$/.test(m) && (f.maxLength = m.length), {
		keypress: 0,
		keyup: 1
	})
	addEvent(f, i, mask);
};

addEvent = function (o, e, f, s) {
	var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [
		[o[e], o]
	] : []),
		a, c, d;
	r[r.length] = [f, s || o],
	o[e] = function (e) {
		try {
			(e = e || event).preventDefault || (e.preventDefault = function () {
				e.returnValue = false;
			});
			e.stopPropagation || (e.stopPropagation = function () {
				e.cancelBubble = true;
			});
			e.target || (e.target = e.srcElement || null);
			e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
		} catch (f) {}
		for (d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
		return e = null,
		!! d;
	}
};

removeEvent = function (o, e, f, s) {
	for (var i = (e = o["_on" + e] || []).length; i;)
	if (e[--i] && e[i][0] == f && (s || o) == e[i][1]) return delete e[i];
	return false;
};

/* Foco em qualquer objeto HTML*/

function scroll_objeto(pID) {
	document.getElementById(pID).scrollIntoView(true);
}

/* Trim */
String.prototype.trim = function () {
	return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.ltrim = function () {
	return this.replace(/^\s+/, '');
}
String.prototype.rtrim = function () {
	return this.replace(/\s+$/, '');
}

/* Remover Acentos */
String.prototype.accnt = function () {
	var cnt = 0;
	var acnt = this;
	acnt = acnt.split('');
	acntlen = acnt.length;
	var sec = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
	var rep = ['A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'e', 'C', 'c', 'D', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'N', 'n', 'S', 's', 'Y', 'y', 'y', 'Z', 'z'];
	for (var y = 0; y < acntlen; y++) {
		if (sec.indexOf(acnt[y]) != -1) cnt++;
	}
	return cnt;
}
String.prototype.renlacc = function () {
	var torem = this;
	torem = torem.split('');
	toremout = new Array();
	toremlen = torem.length;
	var sec = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
	var rep = ['A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'e', 'C', 'c', 'D', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'N', 'n', 'S', 's', 'Y', 'y', 'y', 'Z', 'z'];
	for (var y = 0; y < toremlen; y++) {
		if (sec.indexOf(torem[y]) != -1) {
			toremout[y] = rep[sec.indexOf(torem[y])];
		} else toremout[y] = torem[y];
	}
	toascout = toremout.join('');
	return toascout;
}

String.prototype.removeAcentos = function () {
	pText = this;
	var countarr = new Array();
	var c = '';
	var text = pText;
	var textout = new Array();
	text = text.replace(/\r/g, '');
	text = text.split('\n');
	var linecnt = text.length;
	for (var x = 0; x < linecnt; x++) {
		countarr[x] = Math.abs(text[x].accnt());
		textout[x] = text[x].renlacc();
	}
	textout = textout.join('\n');
	return textout;
}

function limpa(valor) {
	msg = valor;

	if (msg != '') {
		msg = msg.replace(/[\n]/g, 'chr13');
		msg = msg.replace(/[?]/g, 'chr63');
		msg = msg.replace(/[&]/g, 'chr38');
	}

	return msg;
}

/*	Chamada: onKeyPress="javascript: return campoEmail(event);" */

function campoEmail(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if ((key == 45) || (key == 46) || (key == 64) || (key == 95) || (key == 127)) {
			return true;
		}
		else {
			if (((key > 47) && (key < 58)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/*	Chamada: onKeyPress="javascript: return campoAlfanumerico(event);" */

function campoAlfanumerico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if (((key > 47) && (key < 58)) || ((key > 64) && (key < 91)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/*	Chamada: onKeyPress="return campoNumerico(event);" */

function campoNumerico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if ((key > 47) && (key < 58)) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/* Chamada: onKeyPress="return campoAlfabetico(event);" */

function campoAlfabetico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if (((key > 64) && (key < 91)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/*	Alterar a Classe CSS de um elemento HTML.
Testado no IE 6+, Firefox 3+, Opera 9+ e Safari 4+ */

function alteraClass(objHTML, strNovaClasse) {
	try {
		try {
			objHTML.className = strNovaClasse;
		}
		catch (ex) {
			try {
				objHTML.setAttribute('class', strNovaClasse);
			}
			catch (ex) {
				alert('Erro: \n' + ex.message);
			}
		}
	}
	catch (ex) {
		alert('Erro: \n' + ex.message);
	}
}

/* Selecionar option de select */

function setSelected(combo, value_desejado) {
	for (i = 0; i < combo.options.length; i++) {
		if (combo.options[i].value == value_desejado) {
			combo.options[i].selected = true;
		}
	}
}

function removeOptionSelect(pIdCombo, pValue) {
	var objCombo = document.getElementById(pIdCombo);
	var i;
	for (i = 0; i < objCombo.length; i++) {
		if (objCombo.options[i].value == pValue) {
			objCombo.remove(i);
		}
	}
}

function adicionaOptionSelect(pIdSelect, pTextOption, pValueOption) {
	objCombo = document.getElementById(pIdSelect);
	objOption = document.createElement('option');
	objOption.text = pTextOption;
	objOption.value = pValueOption;

	try {
		objCombo.add(objOption, null);
	}
	catch (ex) {
		try {
			objCombo.add(objOption);
		}
		catch (ex) {
			return false;
		}
	}
}

function retornaExtensao(nome_arquivo) {
	if (nome_arquivo.length > 0) {
		var array_nome = nome_arquivo.split('.');
		if (array_nome.length > 1) {
			var ext = array_nome[array_nome.length - 1];
			return ext;
		}
		else {
			return "";
		}
	}
	else {
		return "";
	}
}

function checou(campo) {
	if (campo) {
		if (campo.length) {
			for (var i = 0; i < campo.length; i++) {
				if (campo[i].checked) return true;
			}
			return false;
		}
		else {
			if (campo.checked) return true;
			return false;
		}
	}
	else {
		return false;
	}
}

function validaEmail(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(email);
}

function preencheValorPadrao(obj, msg) {
	if (obj.value == '') {
		obj.value = msg;
	}
}

function limpaValorPadrao(obj, msg) {
	if (obj.value == msg) {
		obj.value = '';
	}
}
