/**
 * Informações sobre este arquivo
 *
 * Arquivo: MrValidacaoFormulario.js
 *
 * Responsável por armazenar o programa de validação de formulários.
 *
 * Este arquivo faz parte do sistema MrCMS
 *
 * Nota: Este arquivo não é opensource, não pode ser alterado sem o consentimento do autor, não pode ser distribuído e utilizado fora de um sistema produzido por: Murilo Rocha :: Internet & Serviços.
 *
 * @author Murilo Rocha <contato@murilorocha.com.br>
 * @copyright Copyright (C) 2009, Murilo Rocha :: Internet & Serviços
 * @link http://www.murilorocha.com.br
 * @version 1.0
 */

function validarFormulario(campoFormulario,nomeCampo,tipoValidacao,valorOpcional)
{
	var campo = document.getElementById(campoFormulario);
	switch(tipoValidacao)
	{
		// Checa se há campos vazios
		case 'checaVazio':
		  if(campo.value.length==0 || campo.value==null || campo.value==undefined || campo.value=='')
		  {
		  	window.alert('Por favor preencha o campo: ' + nomeCampo + '.');
			campo.focus();
		  	return true;
		  }
		break;
		// Checa se o campo possui um endereço de e-mail é válido
		case 'checaEmail':
		  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(campo.value))
		  {
		  	window.alert('O campo: ' + nomeCampo + ', não possui um endereço de e-mail válido.');
            campo.focus();
			return true;
		  }
		break;
		// Checa se o campo possui a quantidade mínima de caracteres informada
		case 'checaMinimoCaracteres':
		  if(campo.value.length<valorOpcional)
		  {
		  	window.alert('O campo: ' + nomeCampo + ', deve conter no mínimo ' + valorOpcional + ' caracteres.');
            campo.focus();
            return true;
		  }
		break;
		// Checa se o campo possui a quantidade máxima de caracteres informada
		case 'checaMaximoCaracteres':
		  if(campo.value.length>valorOpcional)
          {
            window.alert('O campo: ' + nomeCampo + ', deve conter no máximo ' + valorOpcional + ' caracteres.');
            campo.focus();
            return true;
          }
		break;
		case 'checaCaracteresIndesejados':
          if(campo.value.indexOf(valorOpcional,0)!=-1)
          {
            window.alert('O campo: ' + nomeCampo + ', não pode conter os seguintes caracteres: ' + valorOpcional + '.');
            campo.focus();
            return true;
          }
		break;
		case 'numeros':
          var expReg = /\D/;
          if (expReg.test(campo.value))
		  {
            window.alert('O campo: ' + nomeCampo + ', pode conter apenas números.');
            campo.focus();
            return true;          
		  }
		break;
        case 'checaImagens':
          var extensao = campo.value.slice(campo.value.indexOf(".")).toLowerCase();
          if(extensao == '.jpg')
		  {
			 return false;
		  }
          else if(extensao == '.jpeg')
          {
             return false;
          }
          else if(extensao == '.png')
          {
             return false;
          } 
          else if(extensao == '.gif')
          {
             return false;
          } 
		  else
          {
            window.alert('O campo: ' + nomeCampo + ', pode conter apenas imagens dos tipos: jpg, jpeg, png ou gif.');
            campo.focus();
            return true;          
          }
        break;
		case 'checaExtensao':
          var extensao = campo.value.slice(campo.value.indexOf(".")).toLowerCase();
          if(extensao == valorOpcional)
          {
             return false;
          } 
          else
          {
            window.alert('O campo: ' + nomeCampo + ', pode conter apenas arquivos do tipo: ' + valorOpcional + '.');
            campo.focus();
            return true;          
          }
        break;
        case 'checaEspacos':
          var expReg = /\s/;
          if (expReg.test(campo.value))
          {
            window.alert('O campo: ' + nomeCampo + ', não pode conter espaços.');
            campo.focus();
            return true;          
          }
        break;
        case 'checaLetrasNumeros':
          var expReg = /[^a-zA-Z0-9]/;
          if (expReg.test(campo.value))
          {
            window.alert('O campo: ' + nomeCampo + ', pode conter apenas letras sem acentos ou números.');
            campo.focus();
            return true;          
          }
        break;
	}
}

