function IsDate(sObject, sErrorMessage) {

	var reDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;

	data = sObject.value;

	

	if (data.length < 10) {

		alert(sErrorMessage);

		sObject.focus();

		return false;

	} 

	

	if (reDate.test(data) == false) {

		alert(sErrorMessage);

		sObject.focus();

		return false;

	}

	return true;

}



function verificaDigito(objeto)

{

	var valor = objeto.value;

	var numbers = "";

	

	for(var i = 0; i < valor.length; i++) {

  		 var char = valor.charAt(i);

  		 if(!(isNaN(char) || char == " ") || char == ",") numbers += char;

  	}

	

	objeto.value = numbers;

}



function mascara(form, format) {

 

 var input = form.value;

 

 if(input.length > 0) { //do not perform if empty input

 

  var numbers = ""; //store all the numbers here

 

  //Remover outros caracteres e espaços

 

  for(var i = 0; i < input.length; i++) {

   var char = input.charAt(i);

   if(!(isNaN(char) || char == " ")) numbers += char;

  }

 

  var output = ""; //assign numbers here

 

  //Aplicar a máscara

 

  var n = 0, i = 0;

  while(i < format.length && n < numbers.length) {

   var char = format.charAt(i);

   if(char == "#") {

    output += numbers.charAt(n++)

   } else {

    output += char;

   }

   i++;

  }

 

  form.value = output; //output to form

 }

}



	function getHTTPObject() {

    var xmlhttp;

    /*@cc_on

    @if (@_jscript_version >= 5)

       try {

          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

       } catch (e) {

          try {

             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

          } catch (E) { xmlhttp = false; }

       }

    @else

    xmlhttp = false;

    @end @*/

		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

		   try {

			  xmlhttp = new XMLHttpRequest();

		   } catch (e) { xmlhttp = false; }

		}

		return xmlhttp;

	}



	function verificaMsg() 

	{

		objDiv = document.getElementById("msgUsuario");

		if (objDiv.style.display == "") 

		{

			objDiv.style.display='none';

		}

	}

	

function IsNumeric(sObject, sErrorMessage) {

	var reFloatPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;

	if (!reFloatPt.test(sObject.value)) {			

		alert(sErrorMessage);

		sObject.focus();

		return false;

	}

	return true;

}



function IsPath(sObject, sErrorMessage) {

	var rePath = /([a-zA-Z]:(\\w+)*\\[a-zA-Z0_9]+)?.jpg/;

	if (!rePath.test(sObject.value)) {			

		alert(sErrorMessage);

		sObject.focus();

		return false;

	}

	return true;

}





/********************************************************************

IsCGC - Funcao para validar CGC

********************************************************************/

function IsCGC(myForm, CGC) {

	myFormValue = myForm.value;

	soma = (myFormValue.charAt(0) * 5) + (myFormValue.charAt(1) * 4) + (myFormValue.charAt(2) * 3) + (myFormValue.charAt(3) * 2) + (myFormValue.charAt(4) * 9) + (myFormValue.charAt(5) * 8) + (myFormValue.charAt(6) * 7) + (myFormValue.charAt(7) * 6) + (myFormValue.charAt(8) * 5) + (myFormValue.charAt(9) * 4) + (myFormValue.charAt(10) * 3) + (myFormValue.charAt(11) * 2);

	digito1 = 11 - (soma % 11);

	if (digito1 >= 10) { digito1 = 0; }

	

	soma = (myFormValue.charAt(0) * 6) + (myFormValue.charAt(1) * 5) + (myFormValue.charAt(2) * 4) + (myFormValue.charAt(3) * 3) + (myFormValue.charAt(4) * 2) + (myFormValue.charAt(5) * 9) + (myFormValue.charAt(6) * 8) + (myFormValue.charAt(7) * 7) + (myFormValue.charAt(8) * 6) + (myFormValue.charAt(9) * 5) + (myFormValue.charAt(10) * 4) + (myFormValue.charAt(11) * 3) + (myFormValue.charAt(12) * 2);

	digito2 = 11 - (soma % 11);

	if (digito2 >= 10) { digito2 = 0; }

	

	if (digito1 != myFormValue.charAt(12) || digito2 != myFormValue.charAt(13)) { 

		alert("Por favor, preencha o campo \'CNPJ\' com um valor válido");

		myForm.focus();

		return false; 

	}

	return true;

}



/*****************************************************************

IsEmail - Funcao para validar e-mail.

Syntax: IsEmail(

				sEmail (Email a ser validado),

				sErrorMessage (Mensagem de erro OPCIONAL)

				)

*****************************************************************/

function IsEmail(sEmail, sErrorMessage) {

	if (sEmail) {

		var Expression = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;

		

		if (!Expression.test(sEmail)) {

			if (sErrorMessage) {

				alert(sErrorMessage);

			}

			else {

				alert("Por favor, preencha o campo \'Email\' com um valor válido.");

			}

			return false;

		}

		return true;

	}

}



/*****************************************************************

RequiredFields - Obriga o preenchimento de determinados campos

Syntax: RequiredFields(

			Objeto Form,

			'Nome do campo, Nome ficticio'

		)

Exemplo: RequiredFields('document.MyForm', 'nome,Nome','email,E-Mail','fone,Telefone')

*****************************************************************/

function RequiredFields(sObject) {

	var ErrorMessageBegin = "Por favor, preencha o campo \'";

	var ErrorMessageEnd = "' com um valor válido.";

	

	//Loop para cada argumento passado

	for (var i = 1; i < arguments.length; i++) {

		Arguments = new String(arguments[i]);

		ArrFields = Arguments.split(",");

		

		//Verifica preenchimento de chebox

		//alert(eval(sObject)[ArrFields[0]].type)

		if (eval(sObject)[ArrFields[0]].type == "checkbox") {

			if (!eval(sObject)[ArrFields[0]].checked) {

				alert(ErrorMessageBegin + ArrFields[1] + ErrorMessageEnd);

				return false;

			}

		}

		//Verifica preenchimento de text

		else if (eval(sObject)[ArrFields[0]].type == "text" || eval(sObject)[ArrFields[0]].type == "password" || eval(sObject)[ArrFields[0]].type == "textarea" || eval(sObject)[ArrFields[0]].type == "select-one" || eval(sObject)[ArrFields[0]].type == "hidden") {

			if (eval(sObject)[ArrFields[0]].value.length == 0) {

				alert(ErrorMessageBegin + ArrFields[1] + ErrorMessageEnd);

				if (eval(sObject)[ArrFields[0]].type != "hidden") {

					eval(sObject)[ArrFields[0]].focus();

				} else {

					eval(ArrFields[2]).focus();

				}

				return false;

			}

		}

		

		else if (eval(sObject)[ArrFields[0]].type == "select-multiple") {

			if (eval(sObject)[ArrFields[0]].selectedIndex == -1) {

				alert(ErrorMessageBegin + ArrFields[1] + ErrorMessageEnd);

				eval(sObject)[ArrFields[0]].focus();

				return false;

			}

		}

		

		// Verifica preenchimento de input file

		else if (eval(sObject)[ArrFields[0]].type == "file") {

			if (eval(sObject)[ArrFields[0]].value.length == 0) {

				alert(ErrorMessageBegin + ArrFields[1] + ErrorMessageEnd);

				eval(sObject)[ArrFields[0]].focus();

				return false;

			}

		}

		//Verifica preenchimento de radio

		else {

			for (var x = 0; x < eval(sObject)[ArrFields[0]].length; x++) {

				if (eval(sObject)[ArrFields[0]][x].checked) {

					var CheckedOK = true;

				}

			}

			if (!CheckedOK) {

				alert(ErrorMessageBegin + ArrFields[1] + ErrorMessageEnd);

				return false;

			}

		}

	}

	return true;

}


