function activa (padre,id) {
	des = document.getElementsByTagName("input");
	for (k=0;k<des.length;k++){
		if (des[k].type=="checkbox"){
			des[k].disabled=true;
			des[k].checked=false;
		}
	}
	pa = document.getElementById(padre);
	activar = pa.getElementsByTagName("tr");
	for (var i = 0; i< activar.length; i ++){
		if (activar[i].id==id){
			inp = activar[i].getElementsByTagName("input");
			for (var j = 0; j < inp.length; j ++){
				opcion = true;
				if (inp[j].disabled==true)
					opcion = false;
				if (inp[j].name!="habitacion")
					inp[j].disabled=opcion;
			}

		}
	}
	return false;
}
function borrar(){
		des = document.getElementsByTagName("input");
	for (var i = 0; i < des.length; i++){
		if ((des[i].type=="radio" || des[i].type=="checkbox") && des[i].name!="hotel"){
			des[i].disabled=true;
			des[i].checked=false;
		}
	}
}

function habilita(ide){
	borrar();
	cargar();
  nodo = document.getElementById(ide);
  habita = nodo.getElementsByTagName("input");
  for (var i = 0; i < habita.length; i ++){
  		if (habita[i].type=="radio" && habita[i].name!="hotel"){
			opcion = true;
			if (habita[i].disabled==true)
				opcion = false;
			habita[i].disabled=opcion;
		}
	}
  return false;
}

function calculaTotal(){
	var nodo = document.getElementsByTagName("input");
	var total = 0;
	for (var i=0;i<nodo.length;i++){
		if ((nodo[i].type=="checkbox" && nodo[i].checked==true)){
			total += parseFloat(nodo[i].value);
		}
	}
	var num = new oNumero();
	num.valor = total; //tus diez milloncejos
	document.getElementById("total").value=num.formato(2, true);
}

function cargar(){
	// Cargo las funciones a los checkbox
	var nodo = document.getElementsByTagName("input");
	for (var i=0; i<nodo.length;i++){
		if (nodo[i].type=="checkbox")
			nodo[i].onclick=calculaTotal;
	}
}
function oNumero(numero){
    //Propiedades del objeto
    this.valor = numero || 0
    this.dec = -1;

    //Métodos del objeto
    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);
    }

        // El siguiente método se obtiene a través 'otro' método 'formato'
        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('.') // para determinar si existe un punto en el valor recibido

            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(/./,'')

            return cad;
        }
    }