/************************************************************************************************
* Nome: openWindow
* Comentário: Abre uma nova janela do navegador com tamanhos personalizados.
* Parâmetros: url - url que contém a página a ser aberta.
*             name - nome para a nova janela.
*             width - largura da janela.
*             height - altura da janela.
*             scrolling - barra horizontal. 
************************************************************************************************/
function openWindow(url, name, width, height, scrolling) {
	if (!scrolling) { 
		scrolling = 'auto' 
	} 
	openPop = window.open(url, name, 'width=' + width + ', height=' + height +',scrollbars=yes,toolbar=no,location=no,status=no,menubar=no,resizable=no,left=110,top=100');
}

/************************************************************************************************
* Nome: mudarTamanho
* Comentário: Muda o tamanho da fonte sem reflesh na página
* Parâmetros: idAlvo - Div que terá o conteúdo alterado
*             acao - aumentar ou diminuir o texto
************************************************************************************************/
var tagAlvo = new Array('p'); //pega todas as tags p//
var tamanhos = new Array('9px','10px','11px','12px','13px','14px','15px'); // Especificando os possíveis tamanhos de fontes, poderia ser: x-small, small...
var tamanhoInicial = 3;	
function mudarTamanho(idAlvo, acao){
  if (!document.getElementById) return
  var selecionados = null,tamanho = tamanhoInicial,i,j,tagsAlvo;
  tamanho +=  acao;
  if (tamanho < 0) tamanho = 0;
  if (tamanho > 6) tamanho = 6;
  tamanhoInicial = tamanho;
  if (!(selecionados = document.getElementById(idAlvo))) selecionados = document.getElementsByTagName(idAlvo)[0];
  selecionados.style.fontSize = tamanhos[tamanho];
  
  for (i = 0; i < tagAlvo.length; i++){
    tagsAlvo = selecionados.getElementsByTagName(tagAlvo[i]);
    for (j = 0; j < tagsAlvo.length; j++) tagsAlvo[j].style.fontSize = tamanhos[tamanho];
  }
}

/************************************************************************************************
* Nome: printPage
* Comentário: Imprime o conteúdo da página.
************************************************************************************************/
function printPage() {
  if (window.print) {
    document.body.offsetHeight;
    window.print();
  } else {
    alert("Erro ao enviar o documento diretamente para impressão");
  }
}

/************************************************************************************************
* Nome: warnInvalid
* Comentário: Apresenta um alert e coloca o foco no campo com problema.
* Parâmetros: theField - campo do formulário.
*        	  warnText - texto a ser mostrado no alert.
************************************************************************************************/
function warnInvalid (theField, warnText) {   
	theField.focus();
	if(!isEmpty(warnText)){
		alert(warnText);
	}	
	return false
}

/************************************************************************************************
* Nome: isEmpty
* Comentário: Verifica se um campo está vázio.
* Parâmetros: theField - campo do formulário a ser verificado.
************************************************************************************************/
function isEmpty(theField) {
	return ((theField == null) || (theField.length == 0));
}

/************************************************************************************************
* Nome: isInteger
* Comentário: Verifica se um campo é inteiro, inclui dígitos de 0 a 9, vírgula, ponto, espaços e -
* Parâmetros: theField - campo do formulário a ser verificado.
************************************************************************************************/
function isInteger(theField){
var i;
	if (isEmpty(theField)) 
		return false;
	for (i = 0; i < theField.length; i++) {   
		var c = theField.charAt(i);
		if (!isNumber(c)) return false;
	}
	return true;
}

/************************************************************************************************
* Nome: isNumeric
* Comentário: Verifica se um campo é numerico, se contém apenas dígitos de 0 a 9.
* Parâmetros: theField - campo do formulário a ser verificado.
************************************************************************************************/
function isNumeric(theField){
	var i;
	if (isEmpty(theField)) 
		return false;
	for (i = 0; i < theField.length; i++) {   
		var c = theField.charAt(i);
		if (!isDigit(c)) return false;
	}
	return true;
}

/************************************************************************************************
* Nome: isDigit
* Comentário: Verifica se o caracter é um dígito de 0 a 9.
* Parâmetros: theField - campo do formulário a ser verificado.
************************************************************************************************/
function isDigit(c) { 
	return ((c >= "0") && (c <= "9")) 
}

/************************************************************************************************
* Nome: isEmailAddr
* Comentário: Verifica se o e-mail digitado é válido.
* Parâmetros: theEmail - e-mail a ser verificado.
************************************************************************************************/
function isEmailAddr(theEmail) {
	var result = false;
	var theStr = new String(theEmail);
	var index = theStr.indexOf("@");
	if (index > 0){
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	}
	return result;
}

/************************************************************************************************
* Nome: validRequired
* Comentário: Válida um campo como requerido.
* Parâmetros: formField - formulário que contém o campo a ser verificado.
*             fieldLabel - nome do campo a ser verificado.
************************************************************************************************/
function validRequired(formField, fieldLabel) {
	var result = true;
	if (formField.value == "" || formField.value == null){
		alert('O campo "' + fieldLabel +'" deve ser preenchido.');
		formField.focus();
		result = false;
	}
	return result;
}

/************************************************************************************************
* Nome: validEmail
* Comentário: Válida o e-mail digitado e verifica se o mesmo é um campo requerido.
* Parâmetros: formField - formulário que contém o campo a ser verificado.
*             fieldLabel - nome do campo a ser verificado.
*   		  required - false ou true para validar como requerido.
************************************************************************************************/
function validEmail(formField, fieldLabel, required){
	var result = true;
	if (required && !validRequired(formField,fieldLabel)) result = false;
	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ) {
		alert('O "' + fieldLabel +'" foi digitado de forma incorreta');
		formField.focus();
		result = false;
	}
	return result;
}

/************************************************************************************************
* Nome: validPhone
* Comentário: Verifica se o contéudo do campo é um número de telefone e se o mesmo é um campo requerido.
* Parâmetros: formField - formulário que contém o campo a ser verificado.
*             fieldLabel - nome do campo a ser verificado.
*   		  required - false ou true para validar como requerido.
************************************************************************************************/
function validPhone(formField, fieldLabel, required){
	var result = true;
	if (required && !validRequired(formField,fieldLabel)) result = false; 
	if (result && (formField.value.length < 8)) {
        alert('Número de "' + fieldLabel +'" inválido!');	
		formField.focus();
		result = false;
	}
	return result;	
}

/************************************************************************************************
* Nome: validInt
* Comentário: Verifica se o contéudo do campo é numerico e se o mesmo é um campo requerido.
* Parâmetros: formField - formulário que contém o campo a ser verificado.
*             fieldLabel - nome do campo a ser verificado.
*   		  required - false ou true para validar como requerido.
************************************************************************************************/
function validInt(formField, fieldLabel, required){
	var result = true;
	if (required && !validRequired(formField,fieldLabel)) result = false;
	if (result){
		var num = parseInt(formField.value);
		if (isNaN(num)){
			alert('Por favor, preencha o campo "' + fieldLabel +'" com um número válido.');
			formField.focus();
			result = false;
		}
	}
	return result;
}


/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/
function StringBuffer() {
	this.length = 0;	
	this._cache = null;
	this._data = [];
	this._joiner = (arguments.length == 1) ? arguments[0] : "";
	
	if (arguments.length > 0) {
		for (var i = 0; i < arguments.length; i++) {
			this.append(arguments[i]);
		}
	}
}

var _p = StringBuffer.prototype;

_p.append = function (s) {
	this.length += String(s).length;
	this._data[this._data.length] = String(s);
}

_p.clear = function () {
	this._cache = null;
	
	for (var i = 0; i < this._data.length; i++) {
		this._data[i] = null;
	}
	
	this._data = [];
}

_p.toString = function () {
	if (this._cache != null) {
		return this._cache;
	}
	
	return (this._cache = this._data.join(this._joiner));
}

function $(s) {
	return document.getElementById(s);
}

function LimpaResposta() {
	$('resposta').innerHTML = "";
}

function InserirRegistro() {
	LimpaResposta();
	$('carregando').className = "aparece";
}

function GravaDados() {
	if($('nomecompleto').value == "" || $('nomecompleto').value == "Nome completo"){
    alert('O campo "Nome completo" deve ser preenchido.');
		$('nomecompleto').focus();
		return false;
	}
	if($('email').value == "" || $('email').value == "E-mail"){
    alert('O campo "E-mail" deve ser preenchido.');
		$('email').focus();
		return false;
	}  
  if(!isEmailAddr($('email').value)){
		alert('O E-mail foi digitado de forma incorreta.');
		$('email').focus();
		result = false;
  } else {
	  $('enviando').className = "aparece";
	  xajax_GravaDados($('nomecompleto').value,$('email').value);
	  return true;  
  }  
}

function enviarCadastro() {
	if($('nomecompleto').value == "" || $('nomecompleto').value == null){
    alert('O campo "Nome completo" deve ser preenchido.');
		$('nomecompleto').focus();
		return false;
	}
	if($('telefone').value == "" || $('telefone').value == null){
    alert('O campo "Telefone ou celular" deve ser preenchido.');
		$('telefone').focus();
		return false;
	}  
	if($('endereco').value == "" || $('endereco').value == null){
    alert('O campo "Endereço" deve ser preenchido.');
		$('endereco').focus();
		return false;
	}  
	if($('cidadeuf').value == "" || $('cidadeuf').value == null){
    alert('O campo "Cidade / Estado" deve ser preenchido.');
		$('cidadeuf').focus();
		return false;
	}  
	if($('cpf').value == "" || $('cpf').value == null){
    alert('O campo "CPF" deve ser preenchido.');
		$('cpf').focus();
		return false;
	}
  $('enviando').className = "aparece";
	xajax_enviarCadastro($('nomecompleto').value,$('telefone').value,$('endereco').value,$('cidadeuf').value,$('cpf').value,$('rg').value);
	return true;  
}

/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/

function startList(){
//startList = function() {
	var navItems = document.getElementById("nav").getElementsByTagName("li");
	for (var i=0; i< navItems.length; i++) {
		if(navItems[i].className == "submenu") {
			navItems[i].onmouseover=function() {
				this.getElementsByTagName('ul')[0].style.display="block";
				this.style.backgroundColor = "#f0ede6";
			}
			navItems[i].onmouseout=function() {
				this.getElementsByTagName('ul')[0].style.display="none";
				this.style.backgroundColor = "#f0ede6";
			}
		}
	}
}
//window.onload=startList;