//Função TRIM(base,tipo)
//base - Valor
//tipo - A ==> Trim
//tipo - L ==> LTrim
//tipo - R ==> RTrim
function trim(base,tipo){
  if (tipo == "A" || tipo == "a" ){
	aux2 = base.length
	for (;(base.indexOf(" ")==0 && base.length!=0);){
		aux = base.indexOf(" ");
		if (aux == 0){
			base = base.substring(1, aux2)
		}
	}
	aux2 = base.length
	for  (;(base.lastIndexOf(" ")==aux2-1 && base.length!=0);){
		aux = base.lastIndexOf(" ");
		if (aux == aux2-1){
			base = base.substring(0, aux2-1)
		}
		aux2 = base.length
	}
  }
  
    if (tipo == "L" || tipo == "l" ){
	aux2 = base.length
	for (;(base.indexOf(" ")==0 && base.length!=0);){
		aux = base.indexOf(" ");
		if (aux == 0){
			base = base.substring(1, aux2)
		}
	}
  }
  
    if (tipo == "R" || tipo == "r" ){
	aux2 = base.length
	for  (;(base.lastIndexOf(" ")==aux2-1 && base.length!=0);){
		aux = base.lastIndexOf(" ");
		if (aux == aux2-1){
			base = base.substring(0, aux2-1)
		}
		aux2 = base.length
	}
  }
  
  
	return base}


//_VALIDA(BASE,TIPO,MSG, TIPOINPUT, OBRIG)
//BASE O CAMPO
//TIPO T:TEXTO D:DATA I:INTEIRO F:FLOAT H:HORA
//MSG NOME DO CAMPO
//TIPOINPUT TIPO DO INPUT: TEXT , PASSWORD, SINGLE_VALUE_RADIO, SINGLE_VALUE_CHECKBOX, RADIO, CHECKBOX, SELECT
//OBRIG TRUE FALSE
function _valida(base, tipo, msg, tipoinput, obrig){
	var vcheck
	vcheck = ""

	if (obrig == 'TRUE') { 
		if (!_hasValue(base, tipoinput ) && (vcheck == "")){
			alert("O campo " + msg + " é Obrigatório")
			vcheck = "*"
		}
	}
	 	
	if ((vcheck == "") && (tipo=="D")){
	  if (!_checkeurodate(base.value)){
		alert("Informe uma data válida.")
		vcheck = "*"
	  }
	}
	if ((vcheck == "") && (tipo=="H")){
	  if  (!_checktime(base.value)){
		alert("O valor do campo " + msg + " não é uma hora válida.")
		vcheck = "*"
	  }
	}
	if ((vcheck == "") && (tipo=="I")){
	  if  (!_checkinteger(base.value)){
		alert("O valor do campo " + msg + " não é inteiro.")
		vcheck = "*"
	  }
	}
	if ((vcheck == "") && (tipo=="F")){
	  if  (!_checknumber(base.value)){
		alert("O valor do campo " + msg + " não é do tipo moeda.")
		vcheck = "*"
	  }
    }

	if (vcheck == "*") 
      		return false;
    else 
      		return true;
}

function _hasValue(obj, obj_type)
    {
    if (obj_type == "TEXT" || obj_type == "PASSWORD")
	{
    	if (obj.value.length == 0) 
      		return false;
    	else 
      		return true;
    	}
    else if (obj_type == "SELECT")
	{
        for (i=0; i < obj.length; i++)
	    	{
		if (obj.options[i].selected)
			return true;
		}

       	return false;	
	}
    else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX")
	{

		if (obj.checked)
			return true;
		else
       		return false;	
	}
    else if (obj_type == "RADIO" || obj_type == "CHECKBOX")
	{

        for (i=0; i < obj.length; i++)
	    	{
		if (obj[i].checked)
			return true;
		}

       	return false;	
	}
}

function _checkeurodate(object_value)
    {
    //Returns true if value is a eurodate format or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;
		
    // Data deve ter 10 posições, ano com quatro dígitos
    if (object_value.length != 10)
        return false;


    //Returns true if value is a date in the dd/mm/yyyy format
	isplit = object_value.indexOf('/');

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.');
	}

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sDay = object_value.substring(0, isplit);

	monthSplit = isplit + 1;

	isplit = object_value.indexOf('/', monthSplit);

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.', monthSplit);
	}

	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;

    sMonth = object_value.substring((sDay.length + 1), isplit);

	sYear = object_value.substring(isplit + 1);

	if (!_checkinteger(sMonth)) //check month
		return false;
	else
	if (!_checkrange(sMonth, 1, 12)) // check month
		return false;
	else
	if (!_checkinteger(sYear)) //check year
		return false;
	else
	if (!_checkrange(sYear, 0, null)) //check year
		return false;
	else
	if (!_checkinteger(sDay)) //check day
		return false;
	else
	if (!_checkday(sYear, sMonth, sDay)) //check day
		return false;
	else
		return true;
    }

function _checkday(checkYear, checkMonth, checkDay)
    {

	maxDay = 31;

	if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if (checkMonth == 2)
	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else
		if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}

	return _checkrange(checkDay, 1, maxDay); //check day
    }



function _checkinteger(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
	return _checknumber(object_value);
    else
	return false;
}



function _numberrange(object_value, min_value, max_value)
    {
    // check minimum
    if (min_value != null)
	{
        if (object_value < min_value)
		return false;
	}

    // check maximum
    if (max_value != null)
	{
	if (object_value > max_value)
		return false;
	}
	
    //All tests passed, so...
    return true;
}



function _checknumber(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " ,+-0123456789";
	var number_format = " ,0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //All tests passed, so...
    return true
    }



function _checkrange(object_value, min_value, max_value)
    {
    //if value is in range then return true else return false

    if (object_value.length == 0)
        return true;


    if (!_checknumber(object_value))
	{
	return false;
	}
    else
	{
	return (_numberrange((eval(object_value)), min_value, max_value));
	}
	
    //All tests passed, so...
    return true;
    }



function _checktime(object_value)
    {
    //Returns true if value is in time format or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a date in the mm/dd/yyyy format
	isplit = object_value.indexOf(':');

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);

	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);

    if (!_checkinteger(sHour)) //check hour
		return false;
    else
    if (!_checkrange(sHour, 0, 23)) //check hour
		return false;

	if (!_checkinteger(sMin)) //check minutes
		return false;
	else
	if (!_checkrange(sMin, 0, 59)) // check minutes
		return false;

	// did they specify seconds
    if (iminute != -1)
	{
		sSec = object_value.substring(iminute + 1);

		if (!_checkinteger(sSec)) //check seconds
			return false;
		else
		if (!_checkrange(sSec, 0, 59)) //check seconds
			return false;	
	}
    
    return true;
    }
    
//onKeydown="return FormataData(this,event)"
function FormataData(Campo,teclapres){
  var tecla = teclapres.keyCode;
  //alert(teclapres.keyCode)
  if (tecla != 9 && tecla != 46 && tecla != 37 && tecla != 39){
    if ((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) || (tecla == 8)){
      vr = Campo.value;
		
      vr = vr.replace( ".", "" );
      vr = vr.replace( "/", "" );
      vr = vr.replace( "/", "" );
  
      tam = vr.length + 1;

      if ( tecla != 9 && tecla != 8 ){
        if ( tam > 2 && tam < 5 ) Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
  	    if ( tam >= 5 && tam <= 10 ) Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
      }
        
    }else{
      return false
    }
  }else{
    return true
  }
}

function formatamesano(Campo,teclapres){
  var tecla = teclapres.keyCode;
  //alert(teclapres.keyCode)
  if (tecla != 9 && tecla != 46 && tecla != 37 && tecla != 39){
    if ((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) || (tecla == 8)){
      vr = Campo.value;
		
      vr = vr.replace( ".", "" );
      vr = vr.replace( "/", "" );
      vr = vr.replace( "/", "" );
  
      tam = vr.length + 1;

      if ( tecla != 9 && tecla != 8 ){
        if ( tam > 2 && tam < 5 ) Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
  	    if ( tam >= 5 && tam <= 10 ) Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 4 ); 
      }
        
    }else{
      return false
    }
  }else{
    return true
  }
}

function Formataibge(Campo,teclapres){
  var tecla = teclapres.keyCode;
  //alert(teclapres.keyCode)
  if (tecla != 9 && tecla != 46 && tecla != 37 && tecla != 39){
    if ((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) || (tecla == 8)){
      vr = Campo.value;
      
      vr = vr.replace( ".", "" );
      
      tam = vr.length + 1;

      if ( tecla != 9 && tecla != 8 ){
        //alert(tam)
        if ( tam > 2 && tam < 4 ) Campo.value = vr.substr( 0, tam - 1  ) + '.' + vr.substr( tam - 1, tam );
  	    if ( tam >= 4 && tam <= 5 ) Campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 1 ) + '.' + vr.substr( 3, 1 ); 
      }
        
    }else{
      return false
    }
  }else{
    return true
  }
}


function FormataValor(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}		
	
}
 
 
 
function FormataCPF(Campo){
    vrcpf = Campo.value;    
    vrcpf = vrcpf.replace( ".", "" );
    vrcpf = vrcpf.replace( ".", "" );
	vrcpf = vrcpf.replace( "-", "" );
    if (vrcpf.length == 11){
  		Campo.value = vrcpf.substr( 0, 3 ) + '.' + vrcpf.substr( 3, 3 ) + '.' + vrcpf.substr( 6, 3 ) + '-' + vrcpf.substr( 9, 2 ); 
	}	
}

function FormataCGC(Campo){
    vrcgc = Campo.value;    
    vrcgc = vrcgc.replace( ".", "" );
    vrcgc = vrcgc.replace( "-", "" );
	vrcgc = vrcgc.replace( "/", "" );
    if (vrcgc.length == 14){
  		totalvalor = vrcgc.substr( 0, 2 ) + '.' + vrcgc.substr( 2, 3 ) + '.' + vrcgc.substr( 5, 3 ) + '/' + vrcgc.substr( 8, 4 ) + '-' + vrcgc.substr( 12, 2 )
  		Campo.value = totalvalor
	}	
}

function FormataCEP(Campo){
    cep = Campo.value;    
    cep = cep.replace( ".", "" );
    cep = cep.replace( ".", "" );
	cep = cep.replace( "-", "" );
    if (cep.length == 8){
  		Campo.value = cep.substr( 0, 2) + '.' + cep.substr( 2, 3 ) + '-' + cep.substr( 5, 3 ); 
	}	
}

function formataTEL(campo){
  tel = campo.value; 
  tel = tel.replace( "-", "" );
  if(tel.length >= 6){
    meio = tel.length - 4  
    campo.value = tel.substr(0,meio) + "-" + tel.substr(meio,4) 
  } 

}

function VerificarCGCCPF(BASE){
		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( "-", "" );
		BASE = BASE.replace( "/", "" );
        var start_format = " +-0123456789";
        var number_format = "  0123456789";
        var check_char;
        var decimal = false;
        var trailing_blank = false;
        var digits = false;
		var verify = false;

        check_char = start_format.indexOf(BASE.charAt(0))
        if (check_char == 1)
            	decimal = true;
        else if (check_char < 1)
                return false;
        for (var i = 1; i < BASE.length; i++)
        {
                check_char = number_format.indexOf(BASE.charAt(i))
                if (check_char < 0)
                        return false;
                else if (check_char == 1)
                {
                        if (decimal)            // Second decimal.
                                return false;
                        else
                                decimal = true;
                }
                else if (check_char == 0)
                {
                        if (decimal || digits)  
                                trailing_blank = true;

                }
                else if (trailing_blank)
                        return false;
                else
                        digits = true;
						//return false;
        }       
    verify = true;
if (verify) {
	if (BASE.length > 11) {

		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( "/", "" );
		BASE = BASE.replace( "-", "" );
        var CGC = BASE.substring(0,12);
		var DAC = BASE.substring(12,14);
		digito = "0";
		var DF1 = 0;
		var DF2 = 0;
		var DF3 = 0;
		var DF4 = 0;
		var DF5 = 0;
		var DF6 = 0;
		var resto1 = 0;
		var resto2 = 0;
		var DIG1 = 0;
		var DIG2 = 0;
		var n1=  BASE.substring(0,1);
		var n2=  BASE.substring(1,2);
		var n3=  BASE.substring(2,3);
		var n4=  BASE.substring(3,4);
		var n5=  BASE.substring(4,5);
		var n6=  BASE.substring(5,6);
		var n7=  BASE.substring(6,7);
		var n8=  BASE.substring(7,8);
		var n9=  BASE.substring(8,9);
		var n10= BASE.substring(9,10);
		var n11= BASE.substring(10,11);
		var n12= BASE.substring(11,12);
		DF1 = eval((5 * n1) + (4 * n2) + (3 * n3) + (2 * n4) + (9 * n5) + (8 * n6) + (7 * n7) + (6 * n8) + (5 * n9) + (4 * n10) + (3 * n11) + (2 * n12));
		DF2 = eval(DF1 / 11);
		DF3 = eval(parseInt(DF2) * 11);
		resto1 = eval(DF1 - DF3);
		if ((resto1 == 0) || (resto1 == 1))	{
				DIG1 = 0}
		else {
		        DIG1 = eval(11 - resto1)};
		DF4 = eval((6 * n1) + (5 * n2) + (4 * n3) + (3 * n4) + (2 * n5) + (9 * n6) + (8 * n7) + (7 * n8) + (6 * n9) + (5 * n10) + (4 * n11) + (3 * n12) + (2 * DIG1));
		DF5 = eval(DF4 / 11);
		DF6 = eval(parseInt(DF5) * 11);
		resto2 = eval(DF4 - DF6);
		if ((resto2 == 0) || (resto2 == 1))	{
		        DIG2 = 0}
		else {
		        DIG2 = eval(11 - resto2)};
				
		digito = eval((DIG1*10) + DIG2);
			
		if  (digito != DAC ) {
				alert("O CGC não é válido.")
		     	return false
			}
		else{
		    	return true
			};
			
	}
	else{		
		var CPF = BASE.substring(0,9);
		var DAC1 = BASE.substring(9,11);
		var controle  = 0;
		var controle1 = 0;
		var digito1 = 0;
        var inicio = 2;
        var fim = 10;
		var soma = 0;		
		for (j=1; j<3;j++){
             soma = 0;
			 for (i=inicio; i<=fim;i++){	 
              		soma = eval(soma + ((CPF.substring(i-1 - j,i-1-j+1)) * (fim + 1 + j - i)))
			 }
        	if (j == 2){ soma = eval(soma + (2 * digito1))}
		        digito1 = eval((soma * 10)-((parseInt((soma * 10)/11))* 11)
			)
    	    if (digito1 == 10) {
            	digito1 = 0
			}
			if (j == 1){
	        controle =  digito1
			}
			else{
			controle1 =  digito1
			}			
        	inicio = 3;
        	fim = 11;
		}			
		digito1 = eval((controle*10) + controle1);
		if  (digito1 != DAC1 ) {
				alert("O CPF não é válido.")
		     	return false
			}
		else{
					return true
		}
	  }		
	}
	else{
		return false;
	}
}

function MontaJanelaImpressao(pagina,janela,w,h) 
{ 
window.open(pagina,janela,'resizable=no,menubar=no,scrollbars=yes, ,toolbar=no,width='+w+',height='+h+',left=0,top=0');	
}
// Tipo de Data
// D  - Data
// H  - Hora
// DH - Data e Hora
function DataAtual(tipo)
{
	var now 			= new Date();
	var mName 			= now.getMonth() + 1;
	var dName 			= now.getDay() + 1;
	var dayNr 			= now.getDate();
	var yearNr			= now.getYear();
	var hoursNr			= now.getHours();
	var minutesNr		= now.getMinutes();
	var secondsNr		= now.getSeconds();
	if(dName==1) Day 	= "Domingo";
	if(dName==2) Day 	= "Segunda-feira";
	if(dName==3) Day 	= "Ter&ccedil;a-feira";
	if(dName==4) Day 	= "Quarta-feira";
	if(dName==5) Day 	= "Quinta-feira";
	if(dName==6) Day 	= "Sexta-feira";
	if(dName==7) Day 		= "Ss&aacute;bado";
	if(yearNr < 2000) Year = 1900 + yearNr;
	else Year = yearNr;
	// String to display current date.
	if (tipo == 'D') 	var todaysDate =(" " + Day + ", " + dayNr + "/" + mName + "/" + Year);
	if (tipo == 'H') 	var todaysDate =(" " + hoursNr +":"+ minutesNr +":"+ secondsNr);
	if (tipo == 'DH') 	var todaysDate =(" " + Day + ", " + dayNr + "/" + mName + "/" + Year + "   " + hoursNr +":"+ minutesNr +":"+ secondsNr);
	document.write(todaysDate)
}
