//	    www.guatecompras.gt
//	    Desarrollado por Proyecto SIAF-SAG
//		    Miguel Palacios - mpalacios@siafsag.gob.gt
//		    Ronald Donis - redonisc@siafsag.gob.gt
//          Javier Ralda - jralda@siafsag.gob.gt		    
//		    Juan Luca - jluca@siafsag.gob.gt		     	
//	    Derechos reservados
//	    Guatemala, 2003 - 2007
// Funcion que elimina espacios en blanco del string
function Trim(strValor)
{
	var strString = strValor;
	strString = strString.replace(/ +/,"");

	return strString;
}
// Funcion que valida el NOG (sin guiones y el digito verificador)
function ValidarNOG(strNOG) {
    var largo;
    var indice;
    var digito;
    var digitov;
    var suma;
    var diferencia;
    var valor1;
    var valor2;

    // se separa el nog y el digito verificador
    digitov = strNOG.substr(strNOG.length-1,1);
    strNOG = strNOG.substr(0,strNOG.length-1);
    largo = strNOG.length;
    indice = largo;
    suma = 0;

    // se verifica que el nog sea numerico
    var tmp = parseInt(strNOG+digitov);
    if (isNaN(tmp))
		return ('El formato del NOG debe ser numerico'); // -2;
    else {
		if(tmp.toString().length != largo+1)
			return ('El formato del NOG no es valido');
    }

    while (indice<=largo && indice>=1) {
	valor1=largo-indice+2;
        valor2=parseInt(strNOG.substr(indice-1,1));
        suma=suma+valor2*valor1;
        indice=indice-1;
    }

    residuo = suma % 11;
    diferencia=11-residuo;
	if (diferencia==11)
		digito='0';
    else
        digito=diferencia.toString();

    if (digito==digitov)
	return ('OK'); // 0; 
    else
        return ('El NOG no es valido (digito verificador incorrecto)'); // -3;
} 
//  fin de la funcion ValidarNOG

// Funcion que valida el formato de un correo electr.
function ValidarEmail(strEmail) {	
	
	var re = /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)?$/i; //  expresion regular
	if (!(strEmail !='' && re.test(strEmail))) {			
		return(false);
	}		
	return(true);
}
//fin

// Funcion que valida el NIT (sin guiones y el digito verificador)
function ValidarNIT(strNIT) {
    var largo;
    var indice;
    var digito;
    var digitov;
    var suma;
    var diferencia;
    var valor1;
    var valor2;
 
	// se verifica que el NIT no traiga guion
    if (strNIT.search('-') != -1)				
		return ('El NIT no debe incluir guion');// -1; 

	// se separa el nit y el digito verificador
    digitov = strNIT.substr(strNIT.length-1,1);
    strNIT = strNIT.substr(0,strNIT.length-1);
    largo = strNIT.length;
    indice = largo;
    suma = 0;

	// se verifica que el nit sea numerico
    var tmp = parseInt(strNIT);
    if (isNaN(tmp))
		return ('El formato del NIT debe ser numerico excepto el ultimo caracter que puede ser numero o letra K'); // -2;
    else {
		if(tmp.toString().length != largo)
			return ('El formato del NIT debe ser numerico excepto el ultimo caracter que puede ser numero o letra K'); // -2;
    }

	// se verifica que el verificador sea numerico o K
    if (isNaN(parseInt(digitov))) {
		digitov = digitov.toUpperCase();
		if (digitov!='K')
			return ('El NIT no es valido (digito verificador incorrecto)'); // -3;
    }                                        

    while (indice<=largo && indice>=1) {
		valor1=largo-indice+2;
        valor2=parseInt(strNIT.substr(indice-1,1));
        suma=suma+valor2*valor1;
        indice=indice-1;
    }

    residuo = suma % 11;
    diferencia=11-residuo;
    if (diferencia==10 )
		digito='K';
    else {
		if (diferencia==11)
			digito='0';
        else
            digito=diferencia.toString();
    }

    if (digito==digitov)
		return ('OK'); // 0; 
    else
        return ('El NIT no es valido (digito verificador incorrecto)'); // -3;

}//fin


function validarnuprog(strdato)
{
if (strdato.length>0){
	var letra;
	letra = strdato.substr(0,1);
	if (letra == "p" || letra == "P")
	{	
		if (ValidarMD11(strdato.substr(1,strdato.length)))	
		{return true;}
		else{
		alert('El NUPROG no es valido!');
		return false;}
	}
	else{
	alert('El NUPROG debe comenzar con la letra "P"');
	return false;}
}else{
	alert('Estimado usuario el campo NUPROG no tiene datos ingresados');
	return false;}
}

function ValidarMD11(strValidar) {
    var largo;
    var indice;
    var digito;
    var digitov;
    var suma;
    var diferencia;
    var valor1;
    var valor2;

    // se separa el nog y el digito verificador
    digitov = strValidar.substr(strValidar.length-1,1);
    strValidar = strValidar.substr(0,strValidar.length-1);
    largo = strValidar.length;
    indice = largo;
    suma = 0;

    // se verifica que el nog sea numerico
    var tmp = parseInt(strValidar+digitov);
    if (isNaN(tmp))
		return false;//('El formato del NOG debe ser numerico'); // -2;
    else {
		if(tmp.toString().length != largo+1)
			return false;//('El formato del NOG no es valido');
    }

    while (indice<=largo && indice>=1) {
	valor1=largo-indice+2;
        valor2=parseInt(strValidar.substr(indice-1,1));
        suma=suma+valor2*valor1;
        indice=indice-1;
    }

    residuo = suma % 11;
    diferencia=11-residuo;
	if (diferencia==11)
		digito='0';
    else
        digito=diferencia.toString();

    if (digito==digitov)
	return true//('OK'); // 0; 
    else
        return false;//('El NOG no es valido (digito verificador incorrecto)'); // -3;
} 
//  fin de la funcion ValidarMD11

