function oNumero(numero)
{
//Propiedades 
this.valor = numero || 0
this.dec = -1;
//Métodos 
this.formato = numFormat;
this.ponValor = ponValor;
//Definición de los métodos 
function ponValor(cad)
{
if (cad =='-' || cad=='+') return
if (cad.length ==0) return
if (cad.indexOf('.') >=0)
    this.valor = parseFloat(cad);
else 
    this.valor = parseInt(cad);
} 
function numFormat(dec, miles)
{
var num = this.valor, signo=3, expr;
var cad = ""+this.valor;
var ceros = "", pos, pdec, i;
for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
if (pos < 0)
    cad = cad+"."+ceros;
else
    {
    pdec = cad.length - pos -1;
    if (pdec <= dec)
        {
        for (i=0; i< (dec-pdec); i++)
            cad += '0';
        }
    else
        {
        num = num*Math.pow(10, dec);
        num = Math.round(num);
        num = num/Math.pow(10, dec);
        cad = new String(num);
        }
    }
pos = cad.indexOf('.')
if (pos < 0) pos = cad.lentgh
if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+') 
       signo = 4;
if (miles && pos > signo)
    do{
        expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
        cad.match(expr)
        cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
        }
while (cad.indexOf(',') > signo)
    if (dec<0) cad = cad.replace(/\./,'')

if (cad < 1 && cad > 0) {
    cad = "0" + cad
	} 
        return cad;
}
}//Fin del objeto oNumero:


function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// Verifica si requiere que se incorporen las comas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// Verifica si requiere colocar parentesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

function calculev01(){   precio = 0.80;
   if (isNaN(document.calcForm.c01.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c01.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)

   dato = numero.formato(2, true)
   document.calcForm.t01.value = dato;
   subtotal01();   
}

function calculev02(){   precio = 1.72;
   if (isNaN(document.calcForm.c02.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c02.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t02.value = dato;
             
   subtotal01();   
}

function calculev03(){   precio = 0.18;
   if (isNaN(document.calcForm.c03.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c03.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t03.value = dato;
             
   subtotal01();   
}

function calculev04(){   precio = 0.80;
   if (isNaN(document.calcForm.c04.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c04.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t04.value = dato;
             
   subtotal01();   
}

function calculev05(){   precio = 1.72;
   if (isNaN(document.calcForm.c05.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c05.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t05.value = dato;
             
   subtotal01();   
}

function calculev06(){   precio = 0.12;
   if (isNaN(document.calcForm.c06.value)){
       vvalor = 0;
	   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c06.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t06.value = dato;
             
   subtotal01();   
}

function calculev07(){   precio = 0.23;
   if (isNaN(document.calcForm.c07.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c07.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t07.value = dato;
             
   subtotal01();   
}

function calculev08(){   precio = 0.58;
   if (isNaN(document.calcForm.c08.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c08.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t08.value = dato;
             
   subtotal01();   
}

function calculev09(){   precio = 0.58;
   if (isNaN(document.calcForm.c09.value)){
       dvvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c09.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t09.value = dato;
             
   subtotal01();   
}

function calculev10(){   precio = 0.80;
   if (isNaN(document.calcForm.c10.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c10.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t10.value = dato;
             
   subtotal01();   
}



function calculev13(){   precio = 41.29;
   if (isNaN(document.calcForm.c13.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c13.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t13.value = dato;
             
   subtotal01();   
}

function calculev14(){   precio = 47.75;
   if (isNaN(document.calcForm.c14.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c14.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t14.value = dato;
             
   subtotal01();   
}

function calculev15(){   precio = 26.00;
   if (isNaN(document.calcForm.c15.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c15.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t15.value = dato;
             
   subtotal01();   
}

function calculev16(){   precio = 33.00;
   if (isNaN(document.calcForm.c16.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c16.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t16.value = dato;
             
   subtotal01();   
}

function calculev17(){   precio = 0.12;
   if (isNaN(document.calcForm.c17.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c17.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t17.value = dato;
             
   subtotal01();   
}

function calculev18(){   precio = 2.86;
   if (isNaN(document.calcForm.c18.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c18.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t18.value = dato;
             
   subtotal01();   
}

function calculev19(){   precio = 2.86;
   if (isNaN(document.calcForm.c19.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c19.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t19.value = dato;
             
   subtotal01();   
}

function calculev20(){   precio = 4.58;
   if (isNaN(document.calcForm.c20.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c20.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t20.value = dato;
             
   subtotal01();   
}

function calculev21(){   precio = 9.15;
   if (isNaN(document.calcForm.c21.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c21.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t21.value = dato;
             
   subtotal01();   
}

function calculev22(){   precio = 30.00;
   if (isNaN(document.calcForm.c22.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c22.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t22.value = dato;
             
   subtotal01();   
}

function calculev23(){   precio = 15.00;
   if (isNaN(document.calcForm.c23.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c23.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t23.value = dato;
             
   subtotal01();   
}

function calculev26(){   precio = 60.00;
   if (isNaN(document.calcForm.c26.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c26.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t26.value = dato;
             
   subtotal01();   
}

function calculev27(){   precio = 18.00;
   if (isNaN(document.calcForm.c27.value)){
       vvalor = 0;
   } else {
       vvalor = FormatNumber(redondeo(precio * document.calcForm.c27.value), 2, false,true,true);
   }
   var numero = new oNumero(vvalor)
   dato = numero.formato(2, true)
   document.calcForm.t27.value = dato;
             
   subtotal01();   
}

function subtotal01(){   
    v01 = document.calcForm.t01.value * 1;
    v02 = document.calcForm.t02.value * 1;
    v03 = document.calcForm.t03.value * 1;
    v04 = document.calcForm.t04.value * 1;
    v05 = document.calcForm.t05.value * 1;
    v06 = document.calcForm.t06.value * 1;
    v07 = document.calcForm.t07.value * 1;
    v08 = document.calcForm.t08.value * 1;
    v09 = document.calcForm.t09.value * 1;
    v10 = document.calcForm.t10.value * 1;
    
    v13 = document.calcForm.t13.value * 1;
    v14 = document.calcForm.t14.value * 1;
    v15 = document.calcForm.t15.value * 1;
    v16 = document.calcForm.t16.value * 1;

    st1 = redondeo(v01 + v02 + v03 + v04 + v05 + v06 + v07 + v08 + v09 + v10 + v13 + v14 + v15 + v16 );
    document.calcForm.st1.value = st1;

    v17 = document.calcForm.t17.value * 1;
    v18 = document.calcForm.t18.value * 1;
    v19 = document.calcForm.t19.value * 1;
    v20 = document.calcForm.t20.value * 1;
    v21 = document.calcForm.t21.value * 1;
    v22 = document.calcForm.t22.value * 1;
    v23 = document.calcForm.t23.value * 1;

    st2 = redondeo(v17 + v18 + v19 + v20 + v21 + v22 + v23 );
    document.calcForm.st2.value = st2;

    v26 = document.calcForm.t26.value * 1;
    v27 = document.calcForm.t27.value * 1;
    
    document.calcForm.tp.value = redondeo(v26 + v27 + st1 + st2);
    vvalor = FormatNumber(redondeo(document.calcForm.tp.value), 2, false,true,true);
   var numero = new oNumero(vvalor)

   dato = numero.formato(2, true)
   document.calcForm.tp.value = dato;

}

function borrar_campo(objeto) {
/*	objeto.style.cursor = "";*/
	objeto.value = "";
}
function redondeo(numero) 
{ 
var original=parseFloat(numero); 
var resultado=Math.round(original*100)/100 ; 
return resultado; 
} 

