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 expandeFieldset(valor)
	{
		var div = document.getElementById("div"+valor);
		var img = document.getElementById("img"+valor);
		if (div.style.display=="none")
		{
			img.src = "imagens/bulletMenos2.gif";
			div.style.display="";
		}
		else
		{
			img.src = "imagens/bulletMais2.gif";
			div.style.display="none";
		}
		
	}

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 == " ")) 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 {
			var ErrorMessageBegin = "Por favor, escolha algum valor para o campo \'";
			var ErrorMessageEnd = "'.";
			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;
}
