<!--
var SPACE = ' ';
var CORRECT_CHARS = ".0123456789";

/**
 *Borra los espacios iniciales a una cadena de texto.
 *@param ParmTxt es el texto al que se le eliminan los espacios.
 *@return String es la cadena sin espacios.
*/
function delInitSpaces(ParmTxt){
   
    retText = "";
    hasSpaces = true;
    i = 0;
    lastSpace = 0;

    while(hasSpaces && i < ParmTxt.length){

        if(ParmTxt.charAt(i) == SPACE){

            lastSpace = i+1;

        }else{
            hasSpaces = false;
        }

        i++;
    }

    if(lastSpace != 0){
        retTxt = ParmTxt.substring(lastSpace,ParmTxt.length);
    }

    return retTxt;
}


/**
 *Borra los espacios finales a una cadena de texto.
 *@param ParmTxt es el texto al que se le eliminan los espacios.
 *@return String es la cadena sin espacios.
*/
function delEndSpaces(ParmTxt){
   
    retText = "";
    hasSpaces = true;

    i = ParmTxt.length - 1;
    lastSpace = 0;

    while(hasSpaces && i >= 0){

        if(ParmTxt.charAt(i) == SPACE){
            lastSpace = i;
        }else{
            hasSpaces = false;
        }

        i--;
    }

    if(lastSpace != 0){
        retTxt = ParmTxt.substring(0,lastSpace);
    }

    return retTxt;
}

/**
 *Elimina los espacios iniciales y finales de un texto
 *@param InputText
*/
function trim(InputText){

    Texto = InputText;
    retTxt = "";
    hasSpaces = false;

    if(Texto.length > 0){

        if(Texto.charAt(0) == SPACE){
 
            Texto = delInitSpaces(Texto);

        }

        if(Texto.charAt(Texto.length - 1) == SPACE){

            Texto = delEndSpaces(Texto);

        }
    }
    
    retTxt = Texto; 


    return retTxt;
}

/**
 *Valida que una cantidad contenga ?nicamente n?meros
 *@param StrCantidad es el texto a evaluar.
 *@return boolean true si solo tiene n?meros.
 */
function tieneNumeros(StrCantidad){
    var retBool = true;

    for(i = 0; i < StrCantidad.length; i++){
        if(CORRECT_CHARS.indexOf(StrCantidad.charAt(i)) ==  -1){
            retBool = false;
        }
    }

    return retBool;
}

/**
 *Realiza el incremento de piezas
 *@param cantidadTxt Campo de texto con la cantidad en piezas.
 *@param pesoTxt Campo de texto con el peso en gramos de las piezas.
 *@param unidadTxt Campo con la unidad de medida del articulo.
 *@param pesoPza Peso en kgs por pieza.
 */
function sumaP(cantidadTxt,pesoTxt,unidadTxt,pesoPza){
    var peso = 0.0;
    var pieza = 0;
    var cantidad = trim(cantidadTxt.value);

    if (cantidad == '')
        pieza = 0;
    else
        pieza = parseInt(cantidad,10);
 
    pieza = pieza + 1;

    cantidadTxt.value = pieza;
         
    if(pesoPza == 1.0){//articulo sin equivalencia en grs.
        unidadTxt.value = SIN_EQUIVALENCIA;
    }else{
        unidadTxt.value = GRANEL_PIEZAS;
        
        peso = parseFloat(pieza * pesoPza);
    
        if(peso.toFixed){
            pesoTxt.value = peso.toFixed(2);
        }else{
            pesoTxt.value = peso;
        }
    }
    
    //alert("unidad="+ unidadTxt.value);
    //alert("peso="+ pesoTxt.value);
    
    return;
}

/**
 *Realiza el decremento de piezas
 *@param cantidadTxt Campo de texto con la cantidad en piezas.
 *@param pesoTxt Campo de texto con el peso en gramos de las piezas.
 *@param unidadTxt Campo con la unidad de medida del articulo. 
 *@param pesoPza Peso en kgs por pieza.
 */
function restaP(cantidadTxt,pesoTxt,unidadTxt,pesoPza){
    var peso = 0.0;
    var pieza;
    var cantidad = trim(cantidadTxt.value);

    if (cantidad == ''){
        pieza = 0;
    }else{
        pieza = parseInt(cantidad,10);

        if(pieza > 0)
            pieza = pieza - 1;
    }

    cantidadTxt.value = pieza;    
   
    if(pesoPza == 1.0){//articulo sin equivalencia en grs.
        unidadTxt.value = SIN_EQUIVALENCIA;
    }else{
        unidadTxt.value = GRANEL_PIEZAS;
        
        peso = parseFloat(parseFloat(pieza) * pesoPza);
    
        if(peso.toFixed){
            pesoTxt.value = peso.toFixed(2);
        }else{
            pesoTxt.value = peso;
        }
    }

    //alert("unidad="+ unidadTxt.value);
    //alert("peso="+ pesoTxt.value);
    return;
}

/**
 *Cambia de piezas a kilos o viceversa. S?lo se 
 *usa el metodo en articulos a granel y que tenga equivalencias.
 *@param unidadParm Indica cual fue el ultimo campo utilizado por el usuario
 *@param cantidadTxt Campo de texto con la cantidad en piezas.
 *@param pesoTxt Campo de texto con el peso en gramos de las piezas.
 *@param unidadTxt Campo con la unidad de medida del articulo.
 *@param pesoPza Peso en kgs por pieza.
 */
function switcheaUnidad(unidadParm,cantidadTxt,pesoTxt,unidadTxt,pesoPza){
    var pesoAux = 0.0;
    var valor = 0;
    var cantidad = trim(cantidadTxt.value);
    var peso = trim(pesoTxt.value);
    
    if(unidadParm == GRANEL_PIEZAS){
        if(cantidad == ''){
            cantidadTxt.value = '0';
            pesoTxt.value = '0';
            unidadTxt.value = GRANEL_PIEZAS;
        }else{
            if(tieneNumeros(cantidad)){
                valor = parseInt(cantidad,10);       
                unidadTxt.value = GRANEL_PIEZAS;
                
                pesoAux = parseFloat(valor) * pesoPza; 
                
                if(pesoAux.toFixed){
                    pesoTxt.value = pesoAux.toFixed(2);
                }else{
                    pesoTxt.value = pesoAux;
                }
            }
        }     
    }

    if(unidadParm == GRANEL_KILOS){
        if(peso == ''){
            unidadTxt.value = GRANEL_PIEZAS;
            cantidadTxt.value = '0';
            pesoTxt.value = '0';
        }else{
            if(tieneNumeros(peso)){
                valor = parseFloat(peso);
                unidadTxt.value = GRANEL_KILOS;
                cantidadTxt.value = Math.round(valor / pesoPza);
            }
        }
    }

    //alert("unidad="+ unidadTxt.value); 
    //alert("peso="+ pesoTxt.value);
    return;
}
//-->
