/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Validar Formulario com campos obrigatorios
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: onSubmit="return ValForm(this);"

function ValForm( theForm )
{
	var val_id      = 'REQ';
	var msg_intro   = 'Os campos abaixo são requeridos:\n';
	var msg_campos  = ''; // nome dos campos requeridos
	var foco_campo  = ''; // foco no primeiro campo requerido
	var msg_req     = '- ';
	var msg_req2    = '\n';
	var objetos     = theForm.length;
	var cont_campos = 0;  // contador de campos requeridos
	var tt_campos   = 10; // total de campos exibidos como requerido

	for (var i=0; i<objetos; i++)
	{

		// tirar espacos do campo
		while(''+theForm.elements[i].value.charAt(theForm.elements[i].value.length-1)==' ')theForm.elements[i].value=theForm.elements[i].value.substring(0,theForm.elements[i].value.length-1);

		// tirar apostrofes do campo
		//while(''+theForm.elements[i].value.charAt(theForm.elements[i].value.length-1)=="'")theForm.elements[i].value=theForm.elements[i].value.substring(0,theForm.elements[i].value.length-1);

		// obrigar campo texto
		if ((theForm.elements[i].type == 'text') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo password
		if ((theForm.elements[i].type == 'password') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo textarea
		else if ((theForm.elements[i].type == 'textarea') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo hidden
		if ((theForm.elements[i].type == 'hidden') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
		}

		// obrigar campo combobox (listbox)
		else if ((theForm.elements[i].type == 'select-one') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].selectedIndex == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo combobox multiple (listbox multiple)
		else if ((theForm.elements[i].type == 'select-multiple') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo checkbox
		else if ((theForm.elements[i].type == 'checkbox') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].checked == false))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo radio
		else if ((theForm.elements[i].type == 'radio') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].checked == false))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

		// obrigar campo file
		if ((theForm.elements[i].type == 'file') && (theForm.elements[i].id.indexOf(val_id) != -1) && (theForm.elements[i].disabled == false) && (theForm.elements[i].value.length == 0))
		{
				if (cont_campos < tt_campos) {msg_campos = msg_campos + msg_req + verNomeCampo(theForm.elements[i]) + msg_req2};
				cont_campos = cont_campos + 1;
				if (foco_campo.length == 0) {foco_campo = theForm.elements[i]}
		}

    	else if ((theForm.elements[i].type == 'submit') && (msg_campos.length == 0))
        	{theForm.elements[i].disabled=true;}
	}


	if (msg_campos.length != 0)
	{
		if (cont_campos > tt_campos) // ha mais campos que a variavel tt_campos
		{
			msg_campos = msg_campos + '- entre outros.';
		}

		destReq(theForm, val_id, true);
		window.alert(msg_intro + msg_campos);
		destReq(theForm, val_id, false);
		if (foco_campo.length != 0)
		{
			eval("foco_campo.focus()")
		}
		return false;
	}
	else
	{
		return true;
	}

}

// funcao para a ValForm buscar o nome do campo pelo id="REQ|Nome do Campo"
function verNomeCampo(campo)
{
	if (campo.id.indexOf('|') != -1)
	{
			var arr_id = campo.id.split('|');
			return arr_id[1];
	}
	else
	{
			return campo.name;
	}
}

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Destacar campos obrigatorios
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: destReq(document.nome_form, true)
// true = destacar, false = normal

function destReq(theForm, val_id, dest)
{
	//var val_id = 'REQ';
	var objetos = theForm.length;

	for (var i=0; i<objetos; i++)
	{
		if (theForm.elements[i].id.indexOf(val_id) != -1)
		{
			if (dest)
			{
				theForm.elements[i].style.background='#F0F0F0';
			}
			else
			{
				theForm.elements[i].style.background='#FFFFFF';
			}
		}
	}
}

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Formatar Text com Mascaras
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: onKeyPress="return txtBoxFormat(document.nomeform, 'NOMECAMPO', '99/99/9999', event);"

  function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

    if(document.all) { // Internet Explorer
      nTecla = evtKeyPress.keyCode; }
    else if(document.layers) { // Nestcape
      nTecla = evtKeyPress.which;
    }

    sValue = objForm[strField].value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "|", "" );
    sValue = sValue.toString().replace( "|", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
      bolMask = bolMask || ((sMask.charAt(i) == ":") || (sMask.charAt(i) == "|"))

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; }
      else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }

      i++;
    }

    objForm[strField].value = sCod;

    if (nTecla != 8) { // backspace
      if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
      else { // qualquer caracter...
        return true;
      } }
    else {
      return true;
    }
  }
  
/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Validar E-mail
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: OnBlur="ValEmail(this)"

	 function ValEmail(field) { // validar campo email
	 if (field.value.length != 0)
	 {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field.value)){
		return (true)
		}
		alert("O e-mail informado é inválido!")
		field.value = '';
		field.focus();
		field.select();
		return (false)
	 }
	}

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Janela Pop Up Centralizada
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: javascript:winPopup('pagina', 'nome', largura, altura, centralizar, 'propriedades da janela')
//pagina = caminho da pagina ou site para abrir na popup
//nome = nome da janela
//largura = largura da janela em px | altura = altura da janela em px
//centralizar = 1 ou 2 (1 = centralizada | 2 = sem centralizar)
//propriedades da janela = scrollbars=yes, status=no, etc etc

    function winPopup(pag, nome, larg, alt, centralizar, opcoes) { // abrir janela popup

  	  if (centralizar == 1)
	  {
	    var winl = (screen.width - larg) / 2;
	    var wint = (screen.height - alt) / 2;
			if ((alt >= 500) && (alt <= 540)) { wint = wint - 20;}
	  }
	  else
	  {
	    var winl = 0;
	    var wint = 0;
	  }

	  if (opcoes != '')
	  {
	    opcoes = ', ' + opcoes;
      }

	  newWindow = window.open('' + pag + '',''+nome+'','width=' + larg + ',height=' + alt + ',top='+wint+',left='+winl+'' + opcoes + '');
	  newWindow.focus();
    }

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
::: Jump Select
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*/
// Modo de Usar: <select onChange="MM_jumpMenu('self',this,0)">

  function MM_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
  }

