function numFormat(cad,dec, miles){
var num = cad, signo=3, expr;
var ceros = "", pos, pdec, i;
var cad = ""+cad;
var cad2="";
var cad3="";
var chivato = "N";


for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
pdec = cad.length - pos -1;
    if (pdec <= dec)
        {
        for (i=0; i< (dec-pdec); i++)
            //cad += '0';
        	cad = '0'+cad;
        }
    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(/\./,'')
	cad2=cad;
	cad2=cad2.replace('.','*');
	cad2=cad2.replace(',','.');	
	cad2=cad2.replace('*',',');	
	
	for (i=0;i < cad2.length;i++)
	{
		if ((cad2.charAt(i)) == '.' || (cad2.charAt(i) == ','))
		{
			chivato = 'S';
		}
	}	

	if ((chivato == 'N') && (cad2.length >= 4))
	{
		cad3 = "";
		
		for (i=0;i < cad2.length;i++)
		{
			if ((cad2.length - i) == 4)
			{
				cad3 = cad3 + cad2.charAt(i)+'.';
			}
			else
			{
				cad3 = cad3 + cad2.charAt(i);
			}
		}		
		cad2 = cad3;
	}

	chivato = 'N';
	for (i=0;i < cad2.length;i++)
	{
		if (cad2.charAt(i) == ',')
		{
			chivato = 'S';
		}
	}	
	if (chivato == 'N')
	{
		cad2 = cad2+',00';
	}
	
    return cad2;
}
<!--

function redondear(num, dec){
    /*
    num = parseFloat(num); 
    dec = parseFloat(dec); 
    dec = (!dec ? 2 : dec); 
    return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec); 
    */
	return parseFloat(num).toFixed(parseInt(dec));
} 

function actualiza_precio_habitacion(id, id_habitacion, num_hab){
	var selectRegimenes = eval("document.formulario_"+id+".los_regimenes_"+id_habitacion);
	var i;
	var longitud = selectRegimenes.length;	
	// Remove current optiones in regimen
	for(i=longitud -1; i >= 0; i--){		
		selectRegimenes.remove(i);
	}
	
	// Add the new options
	var selectHabitaciones = eval("document.formulario_"+id+".los_tipos_hab_"+id_habitacion);
	// Select
	if(selectHabitaciones.type == 'select-one') {
		var indiceHabitaciones = selectHabitaciones.selectedIndex;
		var tipoHabitacionSeleccionada = selectHabitaciones[indiceHabitaciones].text
	// Radio (undefined)
	} else {		
		for(i=0; i< selectHabitaciones.length; i++){			
			if(selectHabitaciones[i].checked) {				
				var tipoHabitacionSeleccionada = selectHabitaciones[i].value;				
			}
		}
	}	
	for(regimen in habitacionesRegimenes[id_habitacion][tipoHabitacionSeleccionada]){
		
		var elOptNew = document.createElement('option');
		elOptNew.text = regimen;
		elOptNew.value = habitacionesRegimenes[id_habitacion][tipoHabitacionSeleccionada][regimen];
		try {
			selectRegimenes.add(elOptNew, null); // standards compliant; doesn't work in IE
		} catch(ex) {
			selectRegimenes.add(elOptNew); // IE only
		}
	}
	// Refresh current prices
	actualiza_precio_regimen(id, id_habitacion, num_hab);
	
}

function actualiza_precio_habitacion_paquete(id, id_habitacion, num_hab,dato){
	var selectRegimenes = eval("document.form_"+dato+".los_regimenes_"+id_habitacion);
	var i;
	var longitud = selectRegimenes.length;	
	// Remove current optiones in regimen
	for(i=longitud -1; i >= 0; i--){		
		selectRegimenes.remove(i);
	}
	
	// Add the new options
	var selectHabitaciones = eval("document.form_"+dato+".los_tipos_hab_"+id_habitacion);
	// Select
	
	if(selectHabitaciones.type == 'select-one') {
		var indiceHabitaciones = selectHabitaciones.selectedIndex;
		var tipoHabitacionSeleccionada = selectHabitaciones.value;
	// Radio (undefined)
	} else {		
		for(i=0; i< selectHabitaciones.length; i++){			
			if(selectHabitaciones[i].checked) {				
				var tipoHabitacionSeleccionada = selectHabitaciones[i].value;				
			}
		}
	}	
	for(regimen in habitacionesRegimenesPaquetes[dato][(id_habitacion -1)][tipoHabitacionSeleccionada]){
		
		var elOptNew = document.createElement('option');
		elOptNew.text = regimen;
		elOptNew.value = regimen;
		try {
			selectRegimenes.add(elOptNew, null); // standards compliant; doesn't work in IE
		} catch(ex) {
			selectRegimenes.add(elOptNew); // IE only
		}
	}
	
	// Refresh current prices
	actualiza_precio_regimen_paquete(id, id_habitacion, num_hab,dato);
}

function actualiza_precio_regimen(id, id_habitacion, num_hab){
	var selectRegimenes = eval("document.formulario_"+id+".los_regimenes_"+id_habitacion);
	var indiceRegimenes = selectRegimenes.selectedIndex;
	var precio = selectRegimenes[indiceRegimenes].value;
	actualiza_precio(id,id_habitacion,num_hab,precio)
}

function actualiza_precio_regimen_paquete(id, id_habitacion, num_hab,dato){
	var selectRegimenes = eval("document.form_"+dato+".los_regimenes_"+id_habitacion);
	var selectHabitacion= eval("document.form_"+dato+".los_tipos_hab_"+id_habitacion);
	var indiceRegimenes = selectRegimenes.selectedIndex;
	//var precio = selectRegimenes[indiceRegimenes].value;
	var precio = habitacionesRegimenesPaquetes[dato][(id_habitacion-1)][selectHabitacion.value][selectRegimenes.value];
	actualiza_precio_paquete(id,id_habitacion,num_hab,precio,dato);
}

function actualiza_precio(id,id_habitacion,num_hab,total) {
	var aux;
	var aux1;
	var aux2;
	var aux3;
	var aux4;
	var aux5;
	
	var object;
	var object1;
	var object2;
	var object3;
	var object4;
	var object5;
	
	var total2;
	var precio_total = 0;
	aux3 = 'document.formulario_'+id+'.el_precio_'+id_habitacion;
	object3 = eval(aux3);
	object3.value = redondear(total,2);	
	
	aux6 = 'document.formulario_'+id+'.el_precio2_'+id_habitacion;
	object6 = eval(aux6);
	object6.value = redondear(total,2);
	
	total2 = object6.value;
	object6.value = numFormat(total2,2,true);
	
	for(i=1;i<=num_hab;i++)	{
    /*
		aux = 'document.formulario_'+id+'.el_precio_'+i;
		object = eval(aux);
    alert(parseFloat(object.value));
    */
		aux = 'document.formulario_'+id+'.el_precio2_'+i;
		object = eval(aux);		
		precio_total = parseFloat(precio_total) + parseFloat(object.value.replace('.','').replace(',', '.'));		
	}

	aux4 = 'document.formulario_'+id+'.el_precio_total';
	object4 = eval(aux4);
	precio_total = redondear(precio_total,2);
	aux5 = 'document.formulario_'+id+'.el_precio_totalb';
	object5 = eval(aux5);
	object5.value = precio_total;
	
	var variable_aux = new String;
	
	variable_aux = precio_total + '';
	variable_aux = variable_aux.replace('.',',');
	variable_aux = variable_aux+' €';
	
	object4.value = variable_aux;

	aux7 = 'document.formulario_'+id+'.el_precio_total2';
	object7 = eval(aux7);	
	total2 = precio_total;	
	object7.value = numFormat(total2,2,true);	
	object7.value = object7.value +' €';	
}

function actualiza_precio_paquete(id,id_habitacion,num_hab,total,dato) {
	var aux;
	var aux1;
	var aux2;
	var aux3;
	var aux4;
	var aux5;
	
	var object;
	var object1;
	var object2;
	var object3;
	var object4;
	var object5;
	
	var total2;
	var precio_total = 0;

	aux3 = 'document.form_'+dato+'.el_precio_'+id_habitacion;
	object3 = eval(aux3);
	object3.value = redondear(total,2);	
	
	aux6 = 'document.form_'+dato+'.el_precio2_'+id_habitacion;
	object6 = eval(aux6);
	object6.value = redondear(total,2);
	total2 = total;
	
	object6.value = numFormat(total2,2,true);	
	
	for(i=1;i<=num_hab;i++)	{
    /*
		aux = 'document.formulario_'+id+'.el_precio_'+i;
		object = eval(aux);
    alert(parseFloat(object.value));
    */
		aux = 'document.form_'+dato+'.el_precio2_'+i;
		object = eval(aux);		
		precio_total = parseFloat(precio_total) + parseFloat(object.value.replace('.','').replace(',', '.'));		
	}

	aux4 = 'document.form_'+dato+'.el_precio_total';
	object4 = eval(aux4);
	precio_total = redondear(precio_total,2);
	aux5 = 'document.form_'+dato+'.el_precio_totalb';
	object5 = eval(aux5);
	object5.value = precio_total;
	
	var variable_aux = new String;
	
	variable_aux = precio_total + '';
	variable_aux = variable_aux.replace('.',',');
	//variable_aux = variable_aux+' €';
	
	object4.value = variable_aux;

	aux7 = 'document.form_'+dato+'.el_precio_total2';
	object7 = eval(aux7);	
	total2 = precio_total;	
	object7.value = numFormat(total2,2,true);	
	//object7.value = object7.value +' €';	
}




function comprobar_disponibilidad(id, num_hab, estudio, dor1, dor2, dor3, dor4, dor5, dor6) {
	var ind = 0;
	var dui = 0;
	var dob = 0;
	var tri = 0;
	var cua = 0;
	var sju = 0;
	var sui = 0;
	
	var aux;
	var object;
	var aux2;
	var object2;
	var indice;

	for(i=1;i<=num_hab;i++)	{
		aux = 'document.formulario_'+id+'.los_tipos_hab_'+i;
		object = eval(aux);
	    
		if(object.type == 'select-one') {
			indice = object.selectedIndex;
			tipo = object.options[indice].text;
		// Radio (undefined)
		} else {		
			 for(i=0; i< object.length; i++){			
				if(object[i].checked){
					indice = i;
					tipo = object[i].value;				
				}
			}
		}		

		

		if(tipo == estudio)
		{
			ind=ind+1;
			
		}
		if(tipo == dor1)
		{
			dui=dui+1;
		
		}
		if(tipo == dor2)
		{
			dob=dob+1;
		}
		if(tipo == dor3)
		{
			tri=tri+1;
		}
		if(tipo == dor4)
		{
			cua=cua+1;
		}
		if(tipo == dor5)
		{
			sju=sju+1;
		}
		if(tipo == dor6)
		{
			sui=sui+1;
		}
		
	}

	//Individuales	
	aux2 = 'max_individuales';
	object2 = document.getElementById(aux2);

	cuantas_seleccionadas = object2.value;

	if((ind > cuantas_seleccionadas) && (cuantas_seleccionadas!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+estudio;
		alert(texto);
		return;
	}
	//Doble Uso Individual
	aux2 = 'max_doblesui';
	object2 = document.getElementById(aux2);
	if((dui > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor1;
		alert(texto);
		return;
	}
	//Dobles
	aux2 = 'max_dobles';
	object2 = document.getElementById(aux2);
	if((dob > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor2;
		alert(texto);
		return;
	}
	//Triples
	aux2 = 'max_triples';
	object2 = document.getElementById(aux2);
	if((tri > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor3;
		alert(texto);
		return;
	}
	//Cuadruple
	aux2 = 'max_cuadruples';
	object2 = document.getElementById(aux2);
	if((cua > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor4;
		alert(texto);
		return;
	}
	//Suite Junior
	aux2 = 'max_suitesj';
	object2 = document.getElementById(aux2);
	if((sju > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor5;
		alert(texto);
		return;
	}
	//Suites
	aux2 = 'max_suites';
	object2 = document.getElementById(aux2);
	if((sui > object2.value) && (object2.value!=-99))
	{
		texto = "Como mucho puede disponer de "+object2.value+" habitación/s "+dor6;
		alert(texto);
		return;
	}

	// Hay dos formularios, contiene_variables (el que va a hacer el submit) y formUsuario (el que tiene los 
	// datos que rellena el usuario
			aux = 'document.formulario_'+id+'.hotel';
        object = eval(aux);
        document.contiene_variables.hotel.value = object.value;

        aux = 'document.formulario_'+id+'.email_hotel';
        object = eval(aux);
        document.contiene_variables.email_hotel.value = object.value;


        aux = 'document.formulario_'+id+'.categoria';
        object = eval(aux);
        document.contiene_variables.categoria.value = object.value;


        aux = 'document.formulario_'+id+'.forma_pago';
        object = eval(aux);
        document.contiene_variables.forma_pago.value = object.value;

        aux = 'document.formulario_'+id+'.visa';
        object = eval(aux);
        document.contiene_variables.visa.value = object.value;

        aux = 'document.formulario_'+id+'.mastercard';
        object = eval(aux);
        document.contiene_variables.mastercard.value = object.value;

        aux = 'document.formulario_'+id+'.amex';
        object = eval(aux);
        document.contiene_variables.amex.value = object.value;

        aux = 'document.formulario_'+id+'.diners';
        object = eval(aux);
        document.contiene_variables.diners.value = object.value;

        aux = 'document.formulario_'+id+'.discover';
        object = eval(aux);
        document.contiene_variables.discover.value = object.value;

        aux = 'document.formulario_'+id+'.jcb';
        object = eval(aux);
        document.contiene_variables.jcb.value = object.value;    
	for(i=1;i<=num_hab;i++)
	{
		aux = 'document.formulario_'+id+'.adultos_'+i;
		object = eval(aux);
		aux2 = 'document.contiene_variables.adultos_'+i;
		object2 = eval(aux2);
		object2.value = object.value;
		
		aux = 'document.formulario_'+id+'.ninos_'+i;
		object = eval(aux);
		aux2 = 'document.contiene_variables.ninos_'+i;
		object2 = eval(aux2);
		object2.value = object.value;
		
		aux = 'document.formulario_'+id+'.bebe_'+i;
		object = eval(aux);
		aux2 = 'document.contiene_variables.bebe_'+i;
		object2 = eval(aux2);
		object2.value = object.value;
		
		aux = 'document.formulario_'+id+'.cuna_'+i;
		object = eval(aux);
		aux2 = 'document.contiene_variables.cuna_'+i;
		object2 = eval(aux2);
		object2.value = object.value;		
		
		
		aux = 'document.formulario_'+id+'.los_tipos_hab_'+i;
		object = eval(aux);		
		if(object.type == 'select-one') {
			indice = object.selectedIndex;
			tipo = object.options[indice].text;
		// Radio (undefined)
		} else {		
			 for(j=0; j< object.length; j++){			
				if(object[j].checked){
					indice = j;
					tipo = object[j].value;				
				}
			}
		}		
		aux2 = 'document.contiene_variables.los_tipos_hab_'+i;
		object2 = eval(aux2);
		object2.value = tipo;
		
		aux = 'document.formulario_'+id+'.los_regimenes_'+i;
		object = eval(aux);
		indice = object.selectedIndex;		
		tipo = object.options[indice].text;
		aux2 = 'document.contiene_variables.los_regimenes_'+i;
		object2 = eval(aux2);
		object2.value = tipo;
		
		
		aux = 'document.formulario_'+id+'.el_precio_'+i;
		object = eval(aux);
		aux2 = 'document.contiene_variables.el_precio_'+i;
		object2 = eval(aux2);
		object2.value = object.value;
		
	}
	
	aux = 'document.formulario_'+id+'.el_precio_totalb';
	object = eval(aux);
	document.contiene_variables.precio_reserva.value = object.value;
	
	aux = 'document.formulario_'+id+'.localidad';
	object = eval(aux);
	document.contiene_variables.localidad.value = object.value;
	
	aux = 'document.formulario_'+id+'.provincia';
	object = eval(aux);
	document.contiene_variables.provincia.value = object.value;
	
	aux = 'document.formulario_'+id+'.cantidad_deposito';
	object = eval(aux);
	document.contiene_variables.cantidad_deposito.value = object.value;
	
	aux = 'document.formulario_'+id+'.id_hotel';
	object = eval(aux);
	document.contiene_variables.id_hotel.value = object.value;
	
	
	document.contiene_variables.submit();
}
