/***********************************************************************/
//Acomodaciones
/***********************************************************************/

function calculaAcomodacion(){

		acomodacionesPosibles = new Array()
		acomodacionesPosibles[0] = "000000"
		//thabitaciones[0]="000000"
		contadoraco=0;
		seleccionaco=0;
		var ok=true
		var paxes=pasajeros;
		habs=parseInt(document.formulario.habitaciones.value,10)
		
		if(habs>paxes){
			alert("No puedes elegir más habitaciones que pasajeros.");
			return "";
		}
		
		if ((paxes > 6) && (habs ==1))
			{
			alert("No se pueden ubicar más de 6 pasajeros en una sola habitación.");
			return "";
			}
		
		var aux=parseInt(paxes,10);
		var x;
		
		if (aux>6)
			{
			if((aux % habs) == 0)
				x = parseInt (paxes / habs, 10);
			else
				x = parseInt (paxes / habs, 10)  + 1;
				
			ok=ok && calAcomodacionPaxes(x,1, acomodacionesPosibles);
			aux=aux-x
			if(parseInt(aux)>6){
				if((aux/(habs-i))==1){
					x=1
				}
				for(i=2;i<habs;i++){
					ok=ok && calAcomodacionPaxes(x,1,acomodacionesPosibles);
					aux=aux-x
					if((aux/(habs-i))==1){
						x=1
					}
				}
				if(aux>0)
					ok=ok && calAcomodacionPaxes(aux,1, acomodacionesPosibles);
			}else{
				ok=ok && calAcomodacionPaxes(aux,habs-1,acomodacionesPosibles);
			}
		}else
			ok=calAcomodacionPaxes(paxes,habs, acomodacionesPosibles);

		if(ok)
			return acomodacionesPosibles[0]
		else
			return ""
	}
	
	
function transformAcomodacion(valor)
	{
	    I=valor.indexOf("I")
		D=valor.indexOf("D")
		T=valor.indexOf("T")
		C=valor.indexOf("C")
		Q=valor.indexOf("Q")
		S=valor.indexOf("S")
		var str = ""
		if (I >= 0)
		    str += "S"
		else
		    str += "N"
		if (D >= 0)
		    str += "S"
		else
		    str += "N"
		if (T >= 0)
		    str += "S"
		else
		    str += "N"
		if (C >= 0)
		    str += "S"
		else
		    str += "N"
		if (Q >= 0)
		    str += "S"
		else
		    str += "N"
		if (S >= 0)
		    str += "S"
		else
		    str += "N"
		return str
	}
		
	function calculaAcomodacion2(pAco){
		var valorAntic = thabitaciones[0]
		thabitaciones[0]="000000"
		contadoraco=0;
		seleccionaco=0;
		var ok=true
		var aco=pAco.replace("I",1)
		aco=aco.replace("D",2)
		aco=aco.replace("T",3)
		aco=aco.replace("C",4)
		aco=aco.replace("Q",5)
		aco=aco.replace("S",6)
		var paxes=pasajeros;
		habs=parseInt(document.formulario.habitaciones.value)
		
		var aux=parseInt(paxes)
		
		//alert(habs+"--"+aux);
		
		var x
		if(aux>6)
			{
				
			if((parseInt(paxes) % parseInt(habs))==0)
				x = parseInt(paxes/habs)
			else
				x = parseInt(paxes/habs)+1
				
			for(i=1;i<habs;i++){
				ok=ok && calAcomodacionPaxes2(x,aco,1);
				aux=aux-x
				if((aux/(habs-i))==1){
					x=1
				}
			}
			
			if(aux>0)
				ok=ok && calAcomodacionPaxes2(aux,aco,1);
			
			}
		else
			ok=calAcomodacionPaxes2(paxes,aco,habs);
        
		if(ok){
			thabitaciones[0] = convierteTHabitaciones(thabitaciones[0])
			return thabitaciones[0]
		}else{
			thabitaciones[0] = valorAntic
			return ""
		}
	}
	
function convierteTHabitaciones(ac)
	{
	    if (!isNaN(ac))
	    {
	    str=ac.substring(0,1)+"I"
	    str+=ac.substring(1,2)+"D"
	    str+=ac.substring(2,3)+"T"
	    str+=ac.substring(3,4)+"C"
	    str+=ac.substring(4,5)+"Q"
	    str+=ac.substring(5,6)+"S"
	    return str
	    }
	    return ac
	}
	
function calAcomodacionPaxes2(pax,aco,hab){
		var aux
		var ok,okfinal
		okfinal=false
		switch(pax){
		case 1:
			switch(hab){
			default:
				if(aco.indexOf("1")==-1)
					return false
				
				aux = parseInt(thabitaciones[contadoraco].substring(0,1))
				aux = aux + hab
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],0,aux)
				return true
			}
			break;
		case 2:
			switch(hab){
			case 1:
				if(aco.indexOf("2")==-1){
					return false
				}
				
				aux = parseInt(thabitaciones[contadoraco].substring(1,2))
				aux = aux + hab
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],1,aux)
				return true
				break;
			case 2:
				ok=calAcomodacionPaxes2(1,aco,2)
				return ok
				break;
			default:
				return false;
			}
			
			break;
		case 3:
			//alert(hab)
			switch(hab){
			case 1:
				//alert(aco.indexOf("3"))
				if(aco.indexOf("3")==-1){
					return false
				}
				
				aux = parseInt(thabitaciones[contadoraco].substring(2,3))
				aux = aux + hab
				//alert(aux)
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],2,aux)
				//alert(thabitaciones[contadoraco])
				return true
				break;
			case 2:
				ok=calAcomodacionPaxes2(2,aco,1)
				ok=ok && calAcomodacionPaxes2(1,aco,1)
				return ok
				break;
			case 3:
				ok=calAcomodacionPaxes2(1,aco,3)
				return ok
				break;
			default:
				return false;
			}
			break;
		case 4:
			switch(hab){
			case 1:
				if(aco.indexOf("4")==-1){
					return false
				}
				
				aux = parseInt(thabitaciones[contadoraco].substring(3,4))
				aux = aux + hab
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],3,aux)
				return true
				break;
			case 2:
			//alert(aco)
				if(aco.indexOf("2")!=-1){
					ok=calAcomodacionPaxes2(2,aco,1)
					
					ok= ok && calAcomodacionPaxes2(2,aco,1)
					
					okfinal=ok;
					contadoraco++;
					thabitaciones[contadoraco]="000000"
					//return ok
				}
				
				if( (aco.indexOf("1")!=-1) && (aco.indexOf("3")!=-1) ){
					ok=calAcomodacionPaxes2(3,aco,1)
					ok=ok && calAcomodacionPaxes2(1,aco,1)
					if(!ok)
						contadoraco--;
					if(!okfinal)
						okfinal=ok
					//return ok
				}else{
					contadoraco--;
				}
				return okfinal;
				break;
			case 3:								
				if( (aco.indexOf("1")!=-1) && (aco.indexOf("2")!=-1) ){
					ok=calAcomodacionPaxes2(2,aco,1)
					ok=ok && calAcomodacionPaxes2(1,aco,2)
					return ok
				}
				return false
				break;
			case 4:
				if(aco.indexOf("1")!=-1){
					ok=calAcomodacionPaxes2(1,aco,4)
					return ok
				}
				return false
				break;
			default:
				return false;
			}
			break;
		case 5:
			switch(hab){
			case 1:
				if(aco.indexOf("5")==-1){
					return false
				}
				
				aux = parseInt(thabitaciones[contadoraco].substring(4,5))
				aux = aux + hab
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],4,aux)
				return true
				break;
			case 2:
				if((aco.indexOf("3")!=-1) && (aco.indexOf("2")!=-1) ){
					ok=calAcomodacionPaxes2(3,aco,1)
					ok=ok && calAcomodacionPaxes2(2,aco,1)
					okfinal=ok;
					contadoraco++;
					thabitaciones[contadoraco]="000000"
				}
				
				if( (aco.indexOf("4")!=-1) && (aco.indexOf("1")!=-1) ){
					ok=calAcomodacionPaxes2(4,aco,1)
					ok=ok && calAcomodacionPaxes2(1,aco,1)
					if(!ok)
						contadoraco--;
					if(!okfinal)
						okfinal=ok
				}else{
					contadoraco--;
				}
				
				/*if( (aco.indexOf("3")!=-1) && (aco.indexOf("1")!=-1) ){
					ok=calAcomodacionPaxes(3,aco,1)
					ok=ok && calAcomodacionPaxes(1,aco,2)
					return ok
				}*/
				
				return okfinal;
				break;
			case 3:
				if((aco.indexOf("2")!=-1) && (aco.indexOf("1")!=-1) ){
					ok=calAcomodacionPaxes2(2,aco,1)
					ok=ok && calAcomodacionPaxes2(2,aco,1)
					ok=ok && calAcomodacionPaxes2(1,aco,1)
					return ok
				}
													
				return false
				break;
			case 4:								
				if( (aco.indexOf("1")!=-1) && (aco.indexOf("2")!=-1) ){
					ok=calAcomodacionPaxes2(2,aco,1)
					ok=ok & calAcomodacionPaxes2(1,aco,3)
					return ok
				}
				return false
				break;
			case 5:
				if(aco.indexOf("1")!=-1){
					ok=calAcomodacionPaxes2(1,aco,5)
					return ok
				}
				return false
				break;
			default:
				return false;
			}
			break;
		case 6:
			switch(hab){
			case 1:
				if(aco.indexOf("6") == -1 ){
					return false
				}
				
				aux = parseInt(thabitaciones[contadoraco].substring(5,6))
				aux = aux + hab
				thabitaciones[contadoraco] = replaceChar(thabitaciones[contadoraco],5,aux)
				return true
				break;
			case 2:
				if((aco.indexOf("2") != -1) && (aco.indexOf("4") != -1)){
					ok = calAcomodacionPaxes2(2, aco, 1)
					ok = ok && calAcomodacionPaxes2(4, aco, 1)
				}else{ 
					if(aco.indexOf("3") != -1) {
						ok = calAcomodacionPaxes2(3, aco, 1)
						ok = ok && calAcomodacionPaxes2(3, aco, 1)
					}else
						return false
				}
				
				return ok
				break;
			case 3:
				if(aco.indexOf("2") != -1) {
					ok = calAcomodacionPaxes2(2,aco,1)
					ok = ok & calAcomodacionPaxes2(2,aco,1)
					ok = ok & calAcomodacionPaxes2(2,aco,1)
					return ok
				}else								
					return false
					
				break;
			case 4:								
				if( (aco.indexOf("3")!=-1) && (aco.indexOf("1")!=-1) ){
					ok = calAcomodacionPaxes2(3, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 3)
					
					return ok
				}
				return false
				break;
			case 5:
				if( (aco.indexOf("2")!=-1) && (aco.indexOf("1")!=-1) ){
					ok = calAcomodacionPaxes2(2,aco,1)
					ok = ok & calAcomodacionPaxes2(1, aco, 4)
					return ok
				}
				return false
				break;
			case 6:
				if (aco.indexOf("1")!=-1){
					ok = calAcomodacionPaxes2(1, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 1)
					ok = ok & calAcomodacionPaxes2(1, aco, 1)
					
					return ok
				}else
					return false
			default:
				return false;
			}
			break;
		default:
			return false;
		}
	}

function calAcomodacionPaxes(pax,hab,tiposHabitaciones){
	var aux
	var ok,okfinal
	
	hab = parseInt(hab,10)
	pax = parseInt(pax,10)
    var acomodPosibles;
	if (calAcomodacionPaxes.arguments.length > 2)
	    acomodPosibles = tiposHabitaciones;
	else
	    acomodPosibles = acomodacionesPosibles;
	switch(pax){
		case 1:
			aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(0,1))
			aux = aux + hab
			acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],0,aux)
			return true
			break;
		case 2:
			switch(hab){
				case 1:						
					aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(1,2))
					aux = aux + hab
					acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],1,aux)
					
					return true
					break;
				case 2:
					ok=calAcomodacionPaxes(1,2,acomodPosibles)
					return ok
					break;
				default:
					return false;
			}
			
			break;
		case 3:
			switch(hab){
				case 1:				
					aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(2,3),10)
					aux = aux + hab
					acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],2,aux)
					return true
					break;
				case 2:
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
					return ok
					break;
				case 3:
					ok=calAcomodacionPaxes(1,3,acomodPosibles)
					return ok
					break;
				default:
					return false;
			}
			break;
		case 4:
			switch(hab){
				case 1:									
					aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(3,4))
					aux = aux + hab
					acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],3,aux)
					return true
					break;
				case 2:
						ok=calAcomodacionPaxes(2,1,acomodPosibles)
						ok= ok && calAcomodacionPaxes(2,1,acomodPosibles)
						okfinal = ok
						
						acomodPosibles[acomodPosibles.length]="000000"
						
						ok=calAcomodacionPaxes(3,1,acomodPosibles)
						ok= ok && calAcomodacionPaxes(1,1,acomodPosibles)
						okfinal = ok

						return okfinal
					break;
				case 3:								
						ok=calAcomodacionPaxes(2,1,acomodPosibles)
						ok=ok && calAcomodacionPaxes(1,2,acomodPosibles)
						return ok
					return false
					break;
				case 4:
						ok=calAcomodacionPaxes(1,4,acomodPosibles)
						return ok
					return false
					break;
				default:
					return false;
			}
			break;
		case 5:
			switch(hab){
				case 1:									
					aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(4,5))
					aux = aux + hab
					acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],4,aux)
					return true
					break;
				case 2:
						ok=calAcomodacionPaxes(3,1,acomodPosibles)
						ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
						return ok
			
					
					return false
					break;
				case 3:
						ok=calAcomodacionPaxes(2,1,acomodPosibles)
						ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
						ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
						return ok
					
					
					return false
					break;
				case 4:								
						ok=calAcomodacionPaxes(2,1,acomodPosibles)
						ok=ok && calAcomodacionPaxes(1,3,acomodPosibles)
						return ok

					return false
					break;
				case 5:

						ok=calAcomodacionPaxes(1,5,acomodPosibles)
						return ok

					return false
					break;
				default:
					return false;
			}
			break;
		case 6:
			switch(hab){
				case 1:									
					aux = parseInt(acomodPosibles[acomodPosibles.length-1].substring(5,6))
					aux = aux + hab
					acomodPosibles[acomodPosibles.length-1] = replaceChar(acomodPosibles[acomodPosibles.length-1],5,aux)
					return true
					break;
				case 2:
					ok=calAcomodacionPaxes(3,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(3,1,acomodPosibles)
					okfinal = ok
					
					acomodPosibles[acomodPosibles.length]="000000"
						
					ok=calAcomodacionPaxes(4,1,acomodPosibles)
					ok= ok && calAcomodacionPaxes(2,1,acomodPosibles)
					okfinal = ok
					
					return okfinal
					break;
				case 3:
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
					okfinal = ok
					
					acomodPosibles[acomodPosibles.length]="000000"
						
					ok=calAcomodacionPaxes(3,1,acomodPosibles)
					ok= ok && calAcomodacionPaxes(2,1,acomodPosibles)
					ok= ok && calAcomodacionPaxes(1,1,acomodPosibles)
					okfinal = ok
					
					return okfinal
					break;
				case 4:								
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,2,acomodPosibles)
					return ok
					break;
				case 5:
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,2,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,2,acomodPosibles)
					return ok
					break;
				default:
					return false;
			}
			break;
		default:
			return false
	}
}

/*
function calAcomodacionPaxes(pax,hab,tiposHabitaciones){

		var aux
		var ok,okfinal
		 var acomodPosibles;
		if (calAcomodacionPaxes.arguments.length > 2)
		    acomodPosibles = tiposHabitaciones;
		else
		    acomodPosibles = acomodacionesPosibles;
		
		okfinal=false
		//alert(hab)
		//alert(pax)
		switch(pax){
		case 1:
			switch(hab){
			default:				
				aux = parseInt(acomodPosibles[contadoraco].substring(0,1))
				aux = aux + hab
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],0,aux)
				return true
			}
			break;
		case 2:
			switch(hab){
			case 1:				
				aux = parseInt(acomodPosibles[contadoraco].substring(1,2))
				aux = aux + hab
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],1,aux)
				return true
				break;
			case 2:
				ok=calAcomodacionPaxes(1,2,acomodPosibles)
				return ok
				break;
			default:
				return false;
			}
			
			break;
		case 3:
			//alert(hab)
			switch(hab){
			case 1:
				aux = parseInt(acomodPosibles[contadoraco].substring(2,3))
				aux = aux + hab
				//alert(aux)
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],2,aux)
				//alert(acomodPosibles[contadoraco])
				return true
				break;
			case 2:
				ok=calAcomodacionPaxes(2,1,acomodPosibles)
				ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
				return ok
				break;
			case 3:
				ok=calAcomodacionPaxes(1,3,acomodPosibles)
				return ok
				break;
			default:
				return false;
			}
			break;
		case 4:
			switch(hab){
			case 1:
				
				aux = parseInt(acomodPosibles[contadoraco].substring(3,4))
				aux = aux + hab
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],3,aux)
				return true
				break;
			case 2:
			//alert(aco)
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					
					ok= ok && calAcomodacionPaxes(2,1,acomodPosibles)
					
					okfinal=ok;
					contadoraco++;
					acomodPosibles[contadoraco]="000000"
					//return ok

					ok=calAcomodacionPaxes(3,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
					if(!ok)
						contadoraco--;
					if(!okfinal)
						okfinal=ok
					//alert(okfinal)
					//return ok
				return okfinal;
				break;
			case 3:								
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(1,2,acomodPosibles)
					return ok
				break;
			case 4:
					ok=calAcomodacionPaxes(1,4,acomodPosibles)
					return ok
				break;
			default:
				return false;
			}
			break;
		case 5:
			switch(hab){
			case 1:
				
				aux = parseInt(acomodPosibles[contadoraco].substring(4,5))
				aux = aux + hab
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],4,aux)
				return true
				break;
			case 2:
					ok=calAcomodacionPaxes(3,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
					okfinal=ok;
					contadoraco++;
					acomodPosibles[contadoraco]="000000"
				
					ok=calAcomodacionPaxes(4,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
					if(!ok)
						contadoraco--;
					if(!okfinal)
						okfinal=ok
				
				
				
				return okfinal;
				break;
			case 3:
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok && calAcomodacionPaxes(1,1,acomodPosibles)
					return ok
				break;
			case 4:								
					ok=calAcomodacionPaxes(2,1,acomodPosibles)
					ok=ok & calAcomodacionPaxes(1,3,acomodPosibles)
					return ok
				break;
			case 5:
					ok=calAcomodacionPaxes(1,5,acomodPosibles)
					return ok
				break;
			default:
				return false;
			}
			break;
		case 6:
			switch(hab){
			case 1:		
				aux = parseInt(acomodPosibles[contadoraco].substring(5,6))
				aux = aux + hab
				acomodPosibles[contadoraco] = replaceChar(acomodPosibles[contadoraco],5,aux)
				return true
				break;
			case 2:

					ok = calAcomodacionPaxes(2,1,acomodPosibles)
					ok = ok && calAcomodacionPaxes(4,1,acomodPosibles)
				
				return ok
				break;
			case 3:

					ok = calAcomodacionPaxes(2,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(2,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(2,1,acomodPosibles)
					return ok				
				break;
			case 4:								
					ok = calAcomodacionPaxes(3, 1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1, 3,acomodPosibles)
					return ok
				break;
			case 5:
					ok = calAcomodacionPaxes(2, 1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1, 4,acomodPosibles)
					return ok
				break;
			case 6:
					ok = calAcomodacionPaxes(1,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1,1,acomodPosibles)
					ok = ok & calAcomodacionPaxes(1,1,acomodPosibles)
					
					return ok
			default:
				return false;
			}
			break;
		default:
			return false;
		}
	}
	*/

function acomodacionesElegidas(tiposHabitaciones)
{   
    var acomodPosibles;
    if (acomodacionesElegidas.arguments.length > 0)
	    var acomodPosibles = tiposHabitaciones;
	else
	    var acomodPosibles = acomodacionesPosibles;
	return (!((acomodPosibles.length == 1) && (acomodPosibles[0]=="000000")))
}

function strAcomodacionUsuario(aco)
{
    var strAcomodacion = "";
    var numHabitacionesI = retornaNumHabitaciones(aco,"I")
    if (numHabitacionesI > 0)
        strAcomodacion += numHabitacionesI + " Individual "
    var numHabitacionesD = retornaNumHabitaciones(aco,"D")
    if (numHabitacionesD > 0)
        strAcomodacion += numHabitacionesD + " Doble "
    var numHabitacionesT = retornaNumHabitaciones(aco,"T")
    if (numHabitacionesT > 0)
        strAcomodacion += numHabitacionesT + " Triple "
    var numHabitacionesC = retornaNumHabitaciones(aco,"C")
    if (numHabitacionesC > 0)
        strAcomodacion += numHabitacionesC + " Cuádruple "
    var numHabitacionesQ = retornaNumHabitaciones(aco,"Q")
    if (numHabitacionesQ > 0)
        strAcomodacion += numHabitacionesQ + " Quíntuple "
    var numHabitacionesS = retornaNumHabitaciones(aco,"S")
    if (numHabitacionesS > 0)
        strAcomodacion += numHabitacionesS + " Séxtuple "
    return strAcomodacion
}

function insertaStr(str, valor)
{
    if (str.indexOf(valor) >= 0)
        return ""
    else
        return ", " + valor
}

function strUsosHotel(nodo)
{
    var strAcomodacion = "000000"
    var llista = nodo.getElementsByTagName("acom")
    for (var i=0; i < llista.length;i++)
    {
        var uso = llista[i].getAttribute("usos")
        if (uso.indexOf("1") >= 0)
            strAcomodacion = "1" + strAcomodacion.substring(1)
        if (uso.indexOf("2") >= 0)
            strAcomodacion = strAcomodacion.substring(0,1) + "1" + strAcomodacion.substring(2)
        if (uso.indexOf("3") >= 0)
            strAcomodacion = strAcomodacion.substring(0,2) + "1" + strAcomodacion.substring(3)
        if (uso.indexOf("4") >= 0)
            strAcomodacion = strAcomodacion.substring(0,3) + "1" + strAcomodacion.substring(4)
        if (uso.indexOf("5") >= 0)
            strAcomodacion = strAcomodacion.substring(0,4) + "1" + strAcomodacion.substring(5)
        if (uso.indexOf("6") >= 0)
            strAcomodacion = strAcomodacion.substring(0,5) + "1"
    }
    return strDescAcomodaciones(strAcomodacion)
}

function strDescAcomodaciones(valor)
{
    var str = ""
    for (var i=0; i < 6;i++)
    {
        var num = valor.substring(i,i+1)
        if (num == "1")
        {
            switch (i)
            {
                case 0:
                    str += "Individuales"
                    break
                case 1:
                    if (str == "")
                        str += "Dobles"
                    else
                        str += ", dobles"
                    break
                case 2:
                    if (str == "")
                        str += "Triples"
                    else
                        str += ", triples"
                    break
                case 3:
                    if (str == "")
                        str += "Cuádruples"
                    else
                        str += ", cuádruples"
                    break
                case 4:
                    if (str == "")
                        str += "Quíntuples"
                    else
                        str += ", quíntuples"
                    break
                case 5:
                    if (str == "")
                        str += "Séxtuples"
                    else
                        str += ", séxtuples"
                    break
            }
        }
    }
    return str
}
	
function calculaAcomodacionesPosibles(paxes, habs)
{
	acomodacionesPosibles = new Array()
	acomodacionesPosibles[0] = "000000"
	acomodacionSeleccionada = -1
	if(habs > paxes){
		alert('No puedes elegir más habitaciones que pasajeros.');
		return;
	}
	var ok=true	
	var aux = parseInt(paxes,10)	
	if(aux>6){
			if((aux % parseInt(habs,10))==0)
				x = parseInt(paxes/habs)
			else
				x = parseInt(paxes/habs)+1
				
			ok=ok && calAcomodacionPaxes(x,1);
			aux=aux-x
			if(parseInt(aux)>6){
				if((aux/(habs-i))==1){
					x=1
				}
				for(i=2;i<habs;i++){
					ok=ok && calAcomodacionPaxes(x,1);
					aux=aux-x
					if((aux/(habs-i))==1){
						x=1
					}
				}
				if(aux>0)
					ok=ok && calAcomodacionPaxes(aux,1);
			}else{
				ok=ok && calAcomodacionPaxes(aux,habs-1);
			}
	}else
		ok=calAcomodacionPaxes(paxes,habs);
}

function transformaAcomodacion(aco)
{
    var aux=""
	var pas=0
	if(aco.substring(0,1)=="S")
		aux+="1"
    else
        aux += "0"
	if(aco.substring(1,2)=="S")
		aux+="1"
	else
        aux += "0"
	if(aco.substring(2,3)=="S")
		aux+="1"
	else
        aux += "0"
	if(aco.substring(3,4)=="S")
		aux+="1"
	else
        aux += "0"
	if(aco.substring(4,5)=="S")
		aux+="1"
	else
        aux += "0"
	if(aco.substring(5,6)=="S")
		aux+="1"
	else
        aux += "0"
    return aux
}

function acomodacionValida(aco)
{
    if (aco == "000000")
    {
        acomodacionSeleccionada = 0
        return true
    }
    for (var i=0;i<=acomodacionesPosibles.length-1;i++)
	{
	    //alert("aco: " + acomodacionesPosibles[i])
	    var acomodacionOk = true
	    for (var j=0;j<aco.length;j++)
	    {
	        var acoP = acomodacionesPosibles[i]
	        var num = acoP.substring(j,j+1)
	        //alert(acoP + "--" + num)
	        if (parseInt(num,10) > 0)
	            {
	            //alert(num + "--" + acoP.substring(j,j+1))
    	        if (parseInt(aco.substring(j,j+1),10) == 0)
    	        {
    	            acomodacionOk = false
	                break
	            }
	         }
	    }	 
	    //alert("acoOk:" + acomodacionOk + "--" + i)
	    if (acomodacionOk)
	    {
    	    acomodacionSeleccionada = i
	        return true
	    }
	}
	return false
}

function transformaAcomodacionReserva(acomodacion) //Pasa del valor 010000 a 0I1D0T0C0Q0S
{
    var str = ""
    for (var i=0;i<6;i++)
    {
        var num = parseInt(acomodacion.substring(i,i+1),10)
        switch (i)
        {
            case 0:
                str += num + "I"
                break;
            case 1:
                str += num + "D"
                break;
            case 2:
                str += num + "T"
                break;
            case 3:
                str += num + "C"
                break;
            case 4:
                str += num + "Q"
                break;
            case 5:
                str += num + "S"
                break;
        }
    }
    return str
}

function parseaTiposHabitacion(aco, nodo)
{
    if (nodo.selectNodes("acom").length == 0)
        return "0#0#0#0#0#0"
    
	var strUsos = ""
    var numHabitacionesI = retornaNumHabitaciones(aco,"I")
    strUsos += insertaParrilla(strUsos) + retornaUsos(1, numHabitacionesI, nodo)
    var numHabitacionesD = retornaNumHabitaciones(aco,"D")
    strUsos += insertaParrilla(strUsos) + retornaUsos(2, numHabitacionesD, nodo)
    var numHabitacionesT = retornaNumHabitaciones(aco,"T")
    strUsos += insertaParrilla(strUsos) + retornaUsos(3, numHabitacionesT, nodo)
    var numHabitacionesC = retornaNumHabitaciones(aco,"C")
    strUsos += insertaParrilla(strUsos) + retornaUsos(4, numHabitacionesC, nodo)
    var numHabitacionesQ = retornaNumHabitaciones(aco,"Q")
    strUsos += insertaParrilla(strUsos) + retornaUsos(5, numHabitacionesQ, nodo)
    var numHabitacionesS = retornaNumHabitaciones(aco,"S")
    strUsos += insertaParrilla(strUsos) + retornaUsos(6, numHabitacionesS, nodo)
    return strUsos
}

function insertaParrilla(valor){
			if (valor == "")
				return "";
			else
				return "#";
		}
    
    function retornaUsos(numero, numHabitaciones, nodo)
    {        
        //alert("entra: " + numero + "--" + numHabitaciones + "-"+nodo.xml)
        if (numHabitaciones == 0)
            return "0"
            
		var numStr = numero + ''
		var llista = nodo.selectNodes("acom")
		var strUsos = ""
		for (var m=0;m<numHabitaciones;m++)
		{
		    var entrat = false
		    //alert("numHabit:" + numHabitaciones)
		    for (var i=0; i < llista.length;i++)
		    {
		        var usos = llista[i].getAttribute("usos")
		        var codi = llista[i].getAttribute("cod")
		        //alert(usos + "--" + codi + "--" + usos.indexOf(numStr))
		        if ((usos.indexOf(numStr) >=0) && (!entrat))
		        {
		            strUsos += insertaParrilla(strUsos) + codi
		            entrat = true
		        }
		    }
		}
		if (strUsos == "")
		    strUsos = "0"
		//alert("sale:" + strUsos)
		return strUsos
    }
    
    function retornaNumHabitaciones(aco, tipo)
    {
        var pos = aco.indexOf(tipo)
        if (pos >= 0)
            return parseInt(aco.substring(pos-1,pos),10)
        return 0
    }
