function fcTextLength (myText, myMessage) {
	if (myText.value.length == 0) { 
		alert(myMessage);
		if (myText.type != "hidden") {
			myText.focus();
		} 
		return false;
	} else {
		return true;
	}
}

function fcTextIsEmail(myText, myMessage) {
	checkEmail = myText.value;
	if ((checkEmail.indexOf('@') < 0) || ((checkEmail.charAt(checkEmail.length-4) != '.') && (checkEmail.charAt(checkEmail.length-3) != '.'))) {
		alert(myMessage);
		myText.select();
		return false;
	} else {
		return true; 
	} 
} 

function fcTextCPF(cpf) { 
	var numeros, digitos, soma, i, resultado, digitos_iguais; 
	digitos_iguais = 1; 
	
	if (cpf.length < 11) return false; 

	for (i = 0; i < cpf.length - 1; i++) 
		if (cpf.charAt(i) != cpf.charAt(i + 1)) { 
			digitos_iguais = 0; 
			break; 
		} 
		if (!digitos_iguais) { 
		numeros = cpf.substring(0,9); 
		digitos = cpf.substring(9); 
		soma = 0; 
		for (i = 10; i > 1; i--) 
			  soma += numeros.charAt(10 - i) * i; 
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
		if (resultado != digitos.charAt(0)) 
			  return false; 
		numeros = cpf.substring(0,10); 
		soma = 0; 
		for (i = 11; i > 1; i--) 
			  soma += numeros.charAt(11 - i) * i; 
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
		if (resultado != digitos.charAt(1)) 
			  return false; 
		return true; 
		} 
  else 
		return false; 
}

function fcTextIsDecimal(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) { 
         IsNumber = false;
		}
	}
   return IsNumber;
}

function fcTextIsNumeric(sText) {
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) { 
         IsNumber = false;
		}
	}
   return IsNumber;
}


function fcTextCGC(s)
{
	var i;
	s = fcTextClean(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	if (s.length < 14) 
		return false; 
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

function fcTextClean(S){
// Deixa so' os digitos no numero
var Digitos = "0123456789";
var temp = "";
var digito = "";
    for (var i=0; i<S.length; i++){
      digito = S.charAt(i);
      if (Digitos.indexOf(digito)>=0){temp=temp+digito}
    }
    return temp
}

function fcIsValidDate(c_day, c_month, c_year, myMessage) {
	if(c_day.value == '')
	{
		alert("Por favor, informe o dia " + myMessage + ".");
		c_day.focus();
		return false;
	}
	
	if(c_day.value.length == 1) c_day.value = '0'+c_day.value;
	re = /^\d{2}/;
	if (!re.test(c_day.value))
	{
		alert("Por favor, informe somente números no dia " + myMessage + ".");
		c_day.focus();
		return false;
	}
	if(c_month.value == '')
	{
		alert("Por favor, informe o mês " + myMessage + ".");
		c_month.focus();
		return false;
	}
	if(c_month.value.length == 1) c_month.value = '0'+c_month.value;
	re = /^\d{2}/;
	if (!re.test(c_month.value))
	{
		alert("Por favor, informe somente números no mês " + myMessage + ".");
		c_month.focus();
		return false;
	}
	if(c_year.value == '')
	{
		alert("Por favor, informe o ano " + myMessage + ".");
		c_year.focus();
		return false;
	}
	re = /^\d{4}/;
	if (!re.test(c_year.value))
	{
		alert("Por favor, informe somente números no ano " + myMessage + ".");
		c_year.focus();
		return false;
	}
	var ichkdt = iConsisteData(parseInt(c_day.value,10),parseInt(c_month.value,10),parseInt(c_year.value,10));
	if(ichkdt==1)
	{
		alert("Por favor, informe corretamente o dia " + myMessage + ".");
		c_day.focus();
		return false;
	}
	if(ichkdt==2)
	{
		alert("Por favor, informe corretamente o mês " + myMessage + ".");
		c_month.focus();
		return false;
	}
	if(ichkdt==3)
	{
		alert("Por favor, informe corretamente o ano " + myMessage + ".");
		c_year.focus();
		return false;
	}
	if(ichkdt==4)
	{
		alert("O dia e o mês " + myMessage + " estão inconsistentes.");
		c_day.focus();
		return false;
	}
	
	return true;
}


function iConsisteData(intDD, intMM, intAA)
{
	if ( (intDD + intMM + intAA) > 0 ) {
		if (intAA < 1) {
			return(3);
		}
		if (intMM < 1 || intMM > 12) {
			return(2);
		}	
		if (intDD < 1 || intDD > 31) {
			return(1);
		} 
		if ((intMM == 4 || intMM == 6 || intMM == 9 || intMM == 11) && intDD > 30) {
			return(4);
		} else if (intMM == 2) {

			if ( intAA % 4 > 0   &&  intDD > 28 ) {
				return(4);
			} else if ( intDD > 29 ) {
				return(4);
			}
		}
	} else {
		return(1)
	}
	return(0)
}
