var _arrayForm  = "";
var _obrig		= "";
var _tipo		= "";
var _typeElem	= "";
var _contCampo	= "";
var _largCont	= "";
var _tamMax		= "";
var _tamRestante= "";
var _mostraTam	= "";
var _formName	= "";
var _id			= "";
var _ql 		= "\n";
var _tb 		= " ";
var _itemerro 	= "- ";
var _erroTit 	= "Verifique o(s) seguinte(s) erros:" + _ql+_ql;
var _erro	 	= "";
var _somStr		=  /[-.\/\\+0-9()#=_\$%*,¨!@~`&´\?\:\>\<|"'\]\{\}]/g;
var _somEmail	=  /[\/\\ +()#=\$%*,¨!~`&´\?\:\>\<|"'\]\{\}]/g;
var _somNum		=  /[-.\/\\+a-z A-Z*()#=_\$%¨!@~`&´\?\:\>\<|"'çéáíóúãõ,üàèìòùÏÜÖö^\]\{\}]/g;
var _somNumerico=  /[\/\\a-z A-Z*()#=_\$%¨!@~`&´\?\:\>\<|"'çéáíóúãõ,üàèìòùÏÜÖö^\]\{\}]/g;
var _somAlphNum	=  /[-.\/\\+*()#=_\$%¨!@~`&´\?\:\>\<|"'^\]\{\}]/g;
var _menosHtml	=  /[\<\>]/g;
var _editandoemail = false;
var _msgErro    = 'Não foi possível concluir a solicitação, houve um erro interno!<br><br>Por favor, tente novamente mais tarde!';

/*************************************
POSIÇÃO DO MOUSE
**************************************/
var _x = 0;
var _y = 0;
function moveMouse(e)
{
	_x = document.all ? window.event.x + document.body.scrollLeft : e.clientX;
	_y = document.all ? window.event.y + document.body.scrollTop : e.pageY;
}
document.onmousemove = moveMouse;

function verificaedicaoemail()
{

	//if(_editandoemail)
		//alert("Está editando conteúdo");
}
function fVerificaErro()
{
	if(_erro!="")
	{
		alert(_erroTit + _erro);
		_erro = "";
		return false;
	}else
		return true;
}
function fErro(erro)
{
	_erro += _tb + _itemerro + erro + ";" +_ql ;
}
function fSetValue(valor)
{
  if(valor!='undefined')
  	_elem.value = valor;
}
function fVerificaTamMax()
{
	if(_tamMax != 0)
	{
		if(_largCont > _tamMax)
		{
			fSetValue(_contCampo.substr(0,_tamMax));
			return false;
		}
	}
	return true;
}

function fOnSubmit(objeto,nome)
{
        _arrayForm	= objeto;
		total		= _arrayForm.length;
		// Aplica a cada campo
		for (i=0;i<total;i++)
		{
			_id				= _arrayForm[i][0];
			_tipo      		= _arrayForm[i][1];
			_obrig 	   		= _arrayForm[i][2];
			_contCampo		= document.getElementById(_id).value;
			_tamMax			= _arrayForm[i][3];
			_mostraTam		= _arrayForm[i][4];
			_typeElem		= document.getElementById(_id).type;
			_formName		= _arrayForm[i][5];
			// Se o campo for obrigatório
			if(_obrig && _formName == nome)
			{
				// Se for diferente de radiobutton e checkbox
				if(_typeElem!="radio" && _typeElem!="checkbox")
				{
					// Se o campo estiver vazio só avisa que não pode estar vazio
					if(_contCampo=="")
					{
						// Se for do tipo select;
						if(_typeElem!="select-one")
							fErro("O campo "+_id.toUpperCase()+" deve ser preenchido.");
						// Se não for do tipo select;
						else if(_typeElem=="select-one")
							fErro("Selecione uma opção no campo "+_id.toUpperCase()+".");
					}
					// Se o campo não estiver vazio valido o tipo de dado que deve ter
					else
					{	// Primeiro verifica o tamanho máximo
						if(fVerificaTamMax())
						{
							switch (_tipo)
							{
								case 1:  // Somente String;
									fVerificaString(_contCampo);
									break;
								case 2:  // Somente Alpha numérico;
									_contCampo  = _contCampo.replace(_somAlphNum,'');
									fSetValue(_contCampo);
									break;
								case 3:  // Qualquer caracter menos html;
									if(_contCampo.length<2)
									{
										fErro("O campo "+_id.toUpperCase()+" deve ter mais caracteres");
									}
									break;
								case 4:  // Qualquer caracter inclusive html;
									break;
								case 5:  // Somente número;
									break;
								case 6:  // email;
									fVerificaEmail(_contCampo);
									break;
								case 7:  // cnpj;
									if(!isCPFCNPJ(_contCampo,2))
									{
										fErro("O campo "+_id.toUpperCase()+" não é válido");
									}
									break;
								case 8:  // telefone;
									if(_contCampo.length<(_tamMax-1))
									{
										fErro("O campo "+_id.toUpperCase()+" está incompleto");
									}
									break;
								case 9:  // cep;
									break;
								case 10:  // cpf;
									break;
								default:
									alert("Tipo "+_tipo+" ainda não definido");
									break;
							}
						}
					 }
				}
			}
		}
		// se existir erro
		return fVerificaErro();
}
function fMostraTamMax(objeto)
{
    _arrayForm		= objeto;
	_typeElem		= _elem.type;
	if (fLocalizarNoArray(_arrayForm,_elem.id))
	{
		_mostraTam		= objeto[_key][4];
		_contCampo		= _elem.value;
		_largCont		= _contCampo.length;
		_tamMax			= _arrayForm[_key][3];
		_tamRestante	= _tamMax - _largCont;
		_tipo      		= _arrayForm[_key][1];
		if(!fVerificaTamMax())
		{
				if(_largCont>=_tamMax)
					fSetValue(_contCampo.substr(0,_tamMax));
		}
		if(_mostraTam==1)
			document.getElementById("txt"+_elem.id).innerHTML = "| "+_largCont+" de "+ _tamMax +" caracteres |";

		if(_tipo == 8)
		{// telefone;
		_contCampo  = _contCampo.replace(_somNum,'');
			fSetValue(FncFormatar(_contCampo,"TELDDD"));
		}
	}
}
function fForm(objeto)
{
    _arrayForm		= objeto;
	_typeElem		= _elem.type;
	if (fLocalizarNoArray(_arrayForm,_elem.id)  && _evt.keyCode != 8 && _evt.keyCode != 32 && _evt.keyCode != 37 && _evt.keyCode != 39 && _evt.keyCode != 46 && _typeElem != "submit")
	{
		_id				= _arrayForm[_key][0];
		_tipo      		= _arrayForm[_key][1];
		_obrig 	   		= _arrayForm[_key][2];
		_contCampo		= _elem.value;
		_largCont		= _contCampo.length;
		//alert(document.getElementById(_id).value);
		_tamMax			= _arrayForm[_key][3];
		_tamRestante	= _tamMax - _largCont;
		_typeElem		= _elem.type;
		_formName		= _arrayForm[_key][5];

		fMostraTamMax(objeto);
		if(fVerificaTamMax())
		{
			switch (_tipo)
			{
				case 1:  // Somente String;
					_contCampo  = _contCampo.replace(_somStr,'');
					fSetValue(_contCampo);
					break;
				case 2:  // Somente Alpha numérico;
					_contCampo  = _contCampo.replace(_somAlphNum,'');
					fSetValue(_contCampo);
					break;
				case 3:  // Qualquer caracter menos html;
					_contCampo  = _contCampo.replace(_menosHtml,'');
					fSetValue(_contCampo);
					break;
				case 4:  // Qualquer caracter inclusive html;
					break;
				case 5:  // Somente número;
					break;
				case 6:  // email;
					_contCampo  = _contCampo.replace(_somEmail,'');
					fSetValue(_contCampo);
					break;
				case 7:  // cnpj;
					_contCampo  = _contCampo.replace(_somNum,'');
					fSetValue(FncFormatar(_contCampo,"CNPJ"));
					break;
				case 8:  // telefone;
					_contCampo  = _contCampo.replace(_somNum,'');
					fSetValue(FncFormatar(_contCampo,"TELDDD"));
					break;
				case 9:  // cep;
					break;
				case 10:  // cpf;
					break;
				default:
					alert("Tipo "+_tipo+" ainda não definido.");
					break;
			}
		}
	}
}
function formatar(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
if (texto.substring(0,1) != saida)
  {
        src.value += texto.substring(0,1);
  }
}
// Padrões: 'CNPJ','CPF','CEP','TEL','TELDDD','DATACOMP','DATAHORA'
function FncFormatar(num,padrao){
var	retorno = '';
num 		= somentenum(num);
largCont	= num.length;

switch(padrao)
{
	case 'CNPJ': // 99999999999999
		if(largCont <= 2)
			retorno = num.substr(0,2);
		else if(largCont > 2 && largCont <= 5)
			retorno = num.substr(0,2)+ '.' + num.substr(2,3);
		else if(largCont > 5 && largCont <= 8)
			retorno = num.substr(0,2) + '.' + num.substr(2,3) + '.' + num.substr(5,3);
		else if(largCont > 8 && largCont <= 12)
			retorno = num.substr(0,2) + '.' + num.substr(2,3) + '.' + num.substr(5,3) + '/' + num.substr(8,4);
		else if(largCont > 12)
			retorno = num.substr(0,2) + '.' + num.substr(2,3) + '.' + num.substr(5,3) + '/' + num.substr(8,4) + '-' + num.substr(12,2);
	break;
	case 'CPF': // 99999999999

		if(largCont <= 2)
			retorno = num.substr(0,3);
		else if(largCont > 2 && largCont <= 5)
			retorno = num.substr(0,3)+'.'+num.substr(3,3);
		else if(largCont > 5 && largCont <= 8)
			retorno = num.substr(0,3)+'.'+num.substr(3,3)+'.'+num.substr(6,3);
		else if(largCont > 8)
			retorno = num.substr(0,3)+'.'+num.substr(3,3)+'.'+num.substr(6,3)+'-'+num.substr(9,2);
	break;
	case 'CEP': // 99999999
		if(largCont > 0 && largCont <= 5)
			retorno = num.substr(0,5);
		else if(largCont > 5)
			retorno = num.substr(0,5)+'-'+num.substr(5,3);
	break;
	case 'TELDDD': // 9999999999
		if(largCont > 0 && largCont < 2)
			retorno = '('+num.substr(0,2);
		else if(largCont == 2)
			retorno = '('+num+')';	
		else if(largCont > 2 && largCont <= 6)
			retorno = '('+num.substr(0,2)+') '+num.substr(2,4);
		else if(largCont > 6)
			retorno = '('+num.substr(0,2)+') '+num.substr(2,4)+'-'+num.substr(6,4);
	break;
	case 'DATACOMP': // 99999999
		if(largCont > 0 && largCont <= 2)
			retorno = num.substr(0,2);
		else if(largCont > 2 && largCont <= 4)
			retorno = num.substr(0,2)+'/'+num.substr(2,2);
		else if(largCont > 4)
			retorno = num.substr(0,2)+'/'+num.substr(2,2)+'/'+num.substr(4,4);
	break;
	case 'PERCENTAGEM':
		if(largCont > 0 && largCont <= 2)
			retorno = num.substr(0,2);
		else if(largCont > 2)
			retorno = num.substr(0,2)+'.'+num.substr(2,largCont);
	break;
	default:
		alert('Padrão ainda não definido');
		return null;
	break;
}
return retorno;
}
// Verifica se só tem string
function fVerificaString(valor)
{
	somStr = valor.replace(_somStr,'');
		// Se o tamanho o valor for diferente o conteúdo não tem só string
		if(valor.length != somStr.length)
		{
			fErro("O campo "+_id.toUpperCase()+" deve ter apenas letras");
		}
}
function fVerificaEmail(valor)
{
	if(!isEmail(valor))
	{
		fErro("O campo "+_id.toUpperCase()+" deve possuir um formato de email válido");
	}
}
// Valida email
function isEmail(text){
   var    arroba = "@",
          ponto = ".",
         posponto = 0,
         posarroba = 0;

    if (text =="") return false;

    for (var indice = 0; indice < text.length; indice++){
       if (text.charAt(indice) == arroba) {
          posarroba = indice;
            break;
       }
    }

   for (var indice = posarroba; indice < text.length; indice++){
      if (text.charAt(indice) == ponto) {
         posponto = indice;
           break;
      }
   }
   if (posponto == 0 || posarroba == 0) return false;
   if (posponto == (posarroba + 1)) return false;
   if ((posponto + 1) == text.length) return false;
   return true;
}
// Validar CPF e CNPJ, sendo pType = 1 para CPF e 2 CNPJ
function isCPFCNPJ(campo,pType){
   if(campo==""){return false;}

   var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;

   for (i = 0; i < campo.length; i++){
      ch = campo.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         campo_filtrado = campo_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) campo_filtrado = "12345678912";

   if (campo_filtrado.length < 11){
      for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = "0" + campo_filtrado;}
   }

   if(pType <= 1){
      if ( ( campo_filtrado.substring(9,11) == checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=="") ){return true;}
   }

   if((pType == 2) || (pType == 0)){
      if (campo_filtrado.length >= 14){
         if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_filtrado.substring(0,12) ) ){ return true;}
      }
   }

   return false;
}

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 	= mControle;
      mControle 	= mDigito;
      mContIni 		= 3;
      mContFim 		= 11;
   }
   return( (mControle1 * 10) + mControle );
}
function somentestring(valor)
{
	return valor.replace(_somStr,'');
}
function somentenum(valor)
{
	return valor.replace(_somNum,'');
}
// Retorna apenas a parte numérica, retirando todos os outros caracteres
function somentenumerico(valor)
{
	return valor.replace(_somNumerico,'');
}
// Retorna apenas as parte inteira sem sinal
function somenteintposit(num)
{
	return Math.abs(parseInt(num));
}
function localizapattern(string,pattern)
{
	return string.search(pattern);
}
function _isEmpty(valor)
{
	return valor.length > 0 && valor != ""? false : true;
}
function montastringproibida(string,pattern)
{
	if(localizapattern(string,pattern)>=0)
		return pattern.source;
}
function retiracaracterespattern(string)
{
	return string.replace(/[\[\]\\]/g,'');
}
function verificaSomenteString(string)
{
	tamOriginal = string.length;
	tamFiltrado = string.replace(_somStr,'').length;
	if(tamOriginal != tamFiltrado)
		return false;
	else
		return true;
}
function validaData(data)
{
   partes 	= data.split('/');
   dia		= partes[0];
   mes		= partes[1];
   ano		= partes[2];
   data 	= new Date();
   anoAtual = data.getFullYear();
   if(((dia<1) || (dia>31))
	   || ((mes<1) || (mes>12))
	   || ((ano<anoAtual-110) || (ano>=anoAtual)))
	   return 0;
   else
   	   return 1;
}
function validaTEL(tel)
{
	rexp = /[^0-9]/g;
	numeros = tel.replace(rexp,'');
	if(numeros.length==10)
		return true;
	else
		return false;
}
function isData1MenorData2(data1,data2)
{
	pdata1 = data1.split('/');
	pdata2 = data2.split('/');
	vdata1 = new Date(pdata1[2],pdata1[1],pdata1[0]);
	vdata2 = new Date(pdata2[2],pdata2[1],pdata2[0]);

	//alert(vdata1.getTime() + ' ' + vdata2.getTime());

	return vdata1.getTime() <= vdata2.getTime();
}
function validaCEP(cep)
{
	rexp = /[^0-9]/g;
	numeros = cep.replace(rexp,'');
	if(numeros.length==8)
		return true;
	else
		return false;
}
function validaCPF(cpf)
{
	return isCPFCNPJ(cpf,1);
}
function get(idElem)
{
	return document.getElementById(idElem);
}
function _disabled(elem,bol)
{
	get(elem).disabled = bol;
}
function _visibility(elem,bol)
{
	if(bol)
		get(elem).style.visibility = 'visible';
	else
		get(elem).style.visibility = 'hidden';
}
function _display(elem,bol)
{
	if(bol)
		get(elem).style.display = '';
	else
		get(elem).style.display = 'none';
}
function _refresh(elem,bol)
{
	if(get(elem) == '[object HTMLIFrameElement]')
		get(elem).src = get(elem).src;
	else
		alert('Elemento ainda não conhecido');
}
// Retorna o left de acordo com a largura da janela para ser centralizada
function _leftToCenter(w)
{
	return (window.screen.width/2) - w/2;
}
// Retorna o top de acorda com a altura da janela para ser centralizada
function _topToCenter(h)
{
	return (window.screen.height/2) - h/2;
}
// Retorna o left util de acordo com a largura da janela para ser centralizada
function _leftToCenterU(w)
{
	return (window.screen.availWidth / 2) - w / 2;
}
// Retorna o top útil de acorda com a altura da janela para ser centralizada
function _topToCenterU(h)
{
	return ((window.screen.availHeight / 2) - h / 2);
}
function formataCPF(elem)
{
	elem.value = FncFormatar(elem.value,'CPF');
}
function formataCNPJ(elem)
{
	elem.value = FncFormatar(elem.value,'CNPJ');
}
function formataTEL(elem)
{
	elem.value = FncFormatar(elem.value,'TELDDD');
}
function formataDATA(elem)
{
	elem.value = FncFormatar(elem.value,'DATACOMP');
}
function formataCEP(elem)
{
	elem.value = FncFormatar(elem.value,'CEP');
}
function formataPercentagem(elem)
{
	elem.value = FncFormatar(elem.value,'PERCENTAGEM');
}
function returnCheckedValue(elem)
{
	if(elem.value == 12)
		return 12;
	tam	   = elem.length;
	_valor = null;

	for(i=0;i<tam;i++)
	{
		if(elem[i].checked)
			_valor = elem[i].value;
	}
	return _valor;
}

function number_format(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec;y.splice(z, 0, pnt);while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}

function fcancelar()
{
	window.history.back();
}
function fvoltar()
{
	window.history.back();
}

function getPageSize() {

		var xScroll, yScroll;

		if (window.innerHeight && window.scrollMaxY){
			xScroll = document.body.scrollWidth;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){

			xScroll = document.body.scrollWidth;

			yScroll = document.body.scrollHeight;

		} else {

			xScroll = document.body.offsetWidth;

			yScroll = document.body.offsetHeight;

		}

		var windowWidth, windowHeight;

		if (self.innerHeight) {

			windowWidth = self.innerWidth;

			windowHeight = self.innerHeight;

		} else if (document.documentElement && document.documentElement.clientHeight) {

			windowWidth = document.documentElement.clientWidth;

			windowHeight = document.documentElement.clientHeight;

		} else if (document.body) {

			windowWidth = document.body.clientWidth;

			windowHeight = document.body.clientHeight;

		}

		if(yScroll < windowHeight) pageHeight = windowHeight;

		else pageHeight = yScroll;

		if(xScroll < windowWidth) pageWidth = windowWidth;

		else pageWidth = xScroll;

		arrayPageSize = {pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight}

		return arrayPageSize;

	}

	function getPageScroll(){

		var yScroll;

		if (self.pageYOffset) yScroll = self.pageYOffset;

		else if (document.documentElement && document.documentElement.scrollTop) yScroll = document.documentElement.scrollTop;

		else if (document.body) yScroll = document.body.scrollTop;

		arrayPageScroll = {yScroll:yScroll};

		return arrayPageScroll;

	}

function closeMessageBox()
{
	document.body.removeChild(document.getElementById('sombraMessageBox'));
	document.body.removeChild(document.getElementById('conteudoMessageBox'));
	// 22/04/2008 - Acrescentado para ao fechar a mesageBox não ficar a imagem de 'Aguarde'
	$('aguarde').style.visibility = 'hidden';

	showHideCombos();
}

function reposicionaMessageBox(obj) {

	var largura = obj.style.width;
	var altura  = obj.style.height;

	var pageSize = getPageSize();

	var pageScroll = getPageScroll();

	var boxTop = pageScroll.yScroll + ((pageSize.windowHeight - altura - 300) / 2);

	var boxLeft = ((pageSize.pageWidth - largura - 300) / 2);

	obj.style.top = (boxTop < 0) ? "0px" : boxTop + "px";

	obj.style.left = (boxLeft < 0) ? "0px" : boxLeft + "px";

	obj.style.visibility = 'visible';
}

function messageBox(ptipo,pmensagem,pmodal)
{
	var pageSize = getPageSize();

	//Para contornar os bugs do Internet Explorer
	showHideCombos();

	var divSombraMessageBox = document.createElement('div');

	divSombraMessageBox.id 			 = 'sombraMessageBox';
	divSombraMessageBox.className 	 = 'sombraMessageBox';
	divSombraMessageBox.style.height = (pageSize.pageHeight + 'px');

	document.body.appendChild(divSombraMessageBox);
	
	var divConteudoMessageBox = document.createElement('div');

	divConteudoMessageBox.id 		   = 'conteudoMessageBox';
	divConteudoMessageBox.className    = 'conteudoMessageBox';

	switch(ptipo)
	{
		case 'OK':
			tit  = 'OPERAÇÂO CONCLUÍDA COM SUCESSO';
			classTable		= 'OKTable';
			classTh			= 'OKTh';
			classConteudo	= 'OKConteudo';
			errormsg        = '<h4 style="font: 16px Helvetica; font-weight: bolder; margin-top: 10px; margin-left: 10px; color: #326ACD"> <img src="/public/imagens/alerta_inf.gif" align="absmiddle"> &nbsp; Atenção: </h4>';
		break;
		case 'NOTICE':
			errormsg        = '<h4 style="font: 16px Helvetica; font-weight: bolder; margin-top: 10px; margin-left: 10px; color: #326ACD"> <img src="/public/imagens/alerta_inf.gif" align="absmiddle"> &nbsp;Atenção: </h4>';
		break;
		case 'WARNING':
			errormsg        = '<h4 style="font: 16px Helvetica; font-weight: bolder; margin-top: 10px; margin-left: 10px; color: #326ACD"> <img src="/public/imagens/alerta_inf.gif" align="absmiddle"> &nbsp;Atenção: </h4>';
		break;
		case 'ERRO':
			tit  = 'VERIFIQUE AS INFORMAÇÕES ABAIXO';
			classTable		= 'ERROTable';
			classTh			= 'ERROTh';
			classConteudo	= 'ERROConteudo';
			errormsg        = '<h4 style="font: 16px Helvetica; font-weight: bolder; margin-top: 10px; margin-left: 10px;"> <img src="/public/imagens/alerta_err.gif" align="absmiddle"> &nbsp;Atenção:</h4>';
		break;
	}

	html  = '';
	html += '<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="areaTrans">';
	html += '<tr><td align="center" valign="middle">';
	html += '<table class="'+classTable+'" cellpadding="0" cellspacing="0">';
	html += '<tr><th class="'+classTh+'">';
	html += '<table cellpadding="0" cellspacing="0" border="0">';
	html += '<tr><td width="100%">';
	html += tit;
	html += '</td>';
	html += '<td width="0%">';
	html += '<a href="javascript:void(0)" onclick="closeMessageBox()">';
	html += '<img src="/public/imagens/fechar.gif" border="0"/>';
	html += '</a>';
	html += '</td></tr>';
	html += '</table>';
	html += '</th></tr>';
	html += '<tr><td id="imessagebox" class="'+classConteudo+'">';
	html += '</td></tr>';
	html += '</table>';
	html += '</td></tr>';
	html += '</table>';

	divConteudoMessageBox.innerHTML = html;
	document.body.appendChild(divConteudoMessageBox);
	
	reposicionaMessageBox(divConteudoMessageBox);

	//header = '<html><head><title>Error !</title></head><body style="background-color:#CCFFCC; font:12px Verdana; margin:0px 0px 0px 0px; padding: 0px 0px 0px 0px">';
	header = errormsg;
	botao  = '<center><input type="button" style="color: black;" value="  Ok  " onclick="closeMessageBox();"></center>';

	$('imessagebox').innerHTML = header + pmensagem + '<br>' + botao;
/*	iframe = $('imessagebox').contentDocument;
        if (iframe == undefined || iframe == null)
            iframe = $('imessagebox').contentWindow.document;

	iframe.open();
	iframe.write(header+pmensagem);
	iframe.close();*/
}
/**
* FUNÇÕES QUE UTILIZAM AJAX E A BIBLIOTECA PROTOTYPE
*
*/
Ajax.Responders.register({
  onCreate: function()
  {
	 $('aguarde').style.visibility = 'visible';
  },
  onComplete: function()
  {
	 $('aguarde').style.visibility = 'hidden';
  }
});

function in_lista(desc)
{
	_qtdElemLista  = _lista.length;
	for(j=0;j<_qtdElemLista;j++)
	{
		//alert(desc + ' - ' = _lista[i])
		if(desc == _lista[j])
		{
			_lista.splice(j,1);
			return true;
		}
	}
	return false;
}
var _lista;
var _nomfuncretorno;
function ajaxEnviaDadosForm(url,form,campos,nomfuncretorno)
{
	_lista 		   = campos.split(';');
	var _qtdElem   = form.length;
	var _params    = '?u=1';
	for(i=0;i<_qtdElem;i++)
	{
		// Só cadasta campos que tenham o atributo alt = 1
		if(in_lista(form[i].name))
		{
			_tipo = form[i].type;
			_nome = form[i].name;

			switch(_tipo)
			{
				case 'text':
				case 'password':
				case 'hidden':
					_valor = form[i].value;
				break;
				case 'radio':
						_sair = false;
						do{
							if(form[i].checked)
								_valor = form[i].value;

							if((i+1) >= _qtdElem)
								_sair = true;
							else
							{
								if(form[i+1].name != _nome)
									_sair  = true;
								else
									i++;
							}
						}while(!_sair);
				break;
				case 'select-one':
					_valor = form[i].value;
				break;
				case 'checkbox':
						_sair = false;
						do{
							if(form[i].checked)
							{
								_params += '&';
								_params += _nome + '[]';
								_params += '=';
								_params += escape(form[i].value);
							}

							if((i+1) >= _qtdElem)
								_sair = true;
							else
							{
								if(form[i+1].name != _nome)
									_sair  = true;
								else
									i++;
							}
						}while(!_sair);

						continue;
				break;
				case 'textarea':
					_valor = form[i].value;
				break;
				default:
					alert(_tipo + ' não está definido para cadastro.');
					return false;
				break;
			}

			_params += '&';

			_params += _nome;
			_params += '=';
			_params += _valor;
			//_params += "\n";
		}
		else
		{
			//alert(form[i].name + ' - ' + form[i].type + ' - ' + form[i].accessKey);
		}
	}
	ajaxEnvia(url,_params,nomfuncretorno);
}

var elemAmpulieta;

function ajaxEnvia(url, params, nomfuncretorno)
{
	try
	{
		if(params == null) params = '';
		var request = new Ajax.Request(
			url,
			{
				method: 'post',
				encoding: 'ISO-8859-1',
				parameters: params,
				onComplete: eval(nomfuncretorno)
			}
		);
	}
	catch (e)
	{
		messageBox('ERRO',_msgErro,false);
	}
}
function ajaxVerificaMsg(retorno)
{
	try
	{
		var valores    = eval('(' + retorno.responseText + ')');
		if(valores.MSG != undefined)
		{
			qtdErro = valores.MSG.length;
			html    = '';
			for(i=0;i<qtdErro;i++)
				html += valores.MSG[i] + '<br />';

			messageBox('OK',html,false);
			return true;
		}
		else
		{
			return false;
		}
	}
	catch(e)
	{
		messageBox('ERRO',_msgErro,false);
	}
}
function ajaxVerificaErro(retorno)
{
	try
	{
		var valores    = eval('(' + retorno.responseText + ')');
		if(valores != null
		   && valores.ERRO != undefined)
		{
			qtdErro = valores.ERRO.length;
			html    = '';
			for(i=0;i<qtdErro;i++)
				html += '- ' + valores.ERRO[i] + '<br />';

			messageBox('ERRO',html,false);
			return true;
		}
		else
		{
			return false;
		}
	}
	catch(e)
	{
		messageBox('ERRO',_msgErro,false);
	}
}

function marcarRadioButtom(elem,valorChecked)
{
	f = elem.form;
	for(i=0;i<f.length;i++)
	{
		if(f[i].name == elem.name
		&& f[i].value ==valorChecked)
		{
			f[i].checked = true;
			return true;
		}
	}

	alert('O valor ' + valorChecked + ' não foi localizado.');
}

function reposicionaAguardar(e)
{
	moveMouse(e);
	document.getElementById('aguarde').style.top  = _y - 40 + 'px';
	document.getElementById('aguarde').style.left = _x - 60 + 'px';
}

function getCodeKey(e)
{
	if(!e) var e = window.event;
	return e.keyCode;
}
document.onmousemove = reposicionaAguardar;

function populaSelect(ajaxRetorno,idSelect,nomCampoValor,nomCampoDesc,valSelected)
{
	try
	{
		var dados    = eval('(' + ajaxRetorno.responseText + ')');
		var totDados = dados.length;

		var elemSelect = $(idSelect);
		// limpa select
		totelem = elemSelect.options.length;
		if(totelem>0)
		{
			for(i = (totelem) - 1; i >= 0; i--)
			{
				elemSelect.options[i] = null;
			}
		}
		elemSelect.options[0] = new Option('SELECIONE',
										   '',
										   false);

		for(i=0;i<totDados;i++)
		{
			valCampoDesc 	 = eval('dados['+i+'].'+nomCampoDesc);
			valCampoValValor = eval('dados['+i+'].'+nomCampoValor);

			elemSelect.options[i+1] = new Option(
												 valCampoDesc,
												 valCampoValValor,
												 false,
												 valCampoValValor == valSelected ? true : false
												 );
		}
	}
	catch (e)
	{
		messageBox('ERRO',_msgErro,false);
	}
}

function format_number(str,digit)
{
  return Math.round(parseFloat(str)*Math.pow(10,digit))/Math.pow(10,digit) + ',00';
}

function showHideCombos()
{
	try
	{
		cmbs = document.getElementsByTagName('select');

		for(i=0; i<cmbs.length; i++)
		{
			cmbs[i].style.display = cmbs[i].style.display == 'none' ? 'block' : 'none';
		}
	}
	catch(e) { }
}

function getPopupContratoPdf(contrato)
{
	switch(contrato)
	{
		case 'hsbc': arquivo = 'condicoes_gerais_seguro_pessoas.pdf'; break;
		case 'fenassist': arquivo = 'codicoes_gerais_fenassist.pdf'; break;		
		default: alert('Contrato não reconhecido!');		
	}
	
	if(arquivo)
	{
		contrato = window.open('/public/contratos/'+arquivo);
		contrato.focus();
	}
}