var systemToday = "";
var Calendar=_cl={
	servData:{
		today:new Date(),
		weekdays:[],
		months:[],
		type:"booking",
		nDays:320,
		nHours:0,
		txtBackNextMonth:[],
		userDay: -1,
		monthDay:-1
	},
	finalDate:null,
	lay:null,
	allCalendars:[],
	layNameDay:[],
	changeMonth:false,
	active:false,
	actualPicker:-1,
	onlyBooking:false,
	dateInSession:false,
    nomCampOb:[],
    hasOMBCombo:false,
    load:function(){
		_cl.nomCampOb=[]
		var destinationCities=dom.getElementsById("ciudadOrigen")
		_cl.nomCampOb[0] = [];
		for(var xx=0;xx<destinationCities.length;xx++){
            _cl.nomCampOb[0].push(["origenLbl_"+xx,true]);
        }
	   	var destinationCities=dom.getElementsById("ciudadDestino")
		_cl.nomCampOb[1] = [];
		for(var xx=0;xx<destinationCities.length;xx++){
            _cl.nomCampOb[1].push(["destinoLbl_"+xx,true]);
        }
        _cl.nomCampOb.push(["passangersLbl",true]);
		_cl.nomCampOb[3] = [];
		for(var xx=0;xx<destinationCities.length;xx++){
            _cl.nomCampOb[3].push(["fechaLbl_"+xx,true]);
        }

		_cl.SD=_cl.servData;
		_cl.allC=_cl.allCalendars;
		if(page.$("contentHotels")){
			_cl.setType("hotels")
			Calendar.hotels.load()
		}
		if(page.$("contentCars")){
			_cl.setType("cars")
			Calendar.cars.load()
		}
		if(_cl.SD.type!="hotels" && page.$("firstLoad")/*&& (page.$("diaRegreso") || page.$("diaSalida_02") )*/) {
			if(page.$("firstLoad").value=="0"){ _cl.dateInSession=true}
		}

		var auxMonthtoday=_cl.SD.today.getMonth()
		_cl.initDate=new Date(_cl.SD.today.getFullYear(), _cl.SD.today.getMonth(), _cl.SD.today.getDate(), parseInt(_cl.SD.today.getHours()+_cl.SD.nHours))
		//if(auxMonthtoday!=_cl.initDate.getMonth()) _cl.changeMonth=true
		_cl.finalDate=new Date(_cl.initDate.getFullYear(), _cl.initDate.getMonth(), parseInt(_cl.initDate.getDate()+_cl.SD.nDays))

		for(var xx=0;xx<arguments.length;xx++) {_cl.create(arguments[xx],xx)}


	},
	create:function(args,id){

		if (args[1][0] != null) {
			_cl.allC.push([args[1][0], args[1][1], args[1][2], args[1][3]])

			_auxDay = ((_cl.initDate.getMonth().toString().length > 1) ? "" : "0") + parseInt(_cl.initDate.getMonth() + 1).toString()
			_cl.layNameDay[id] = args[1][3]
			_cl.layNameDay[id].className = (_cl.SD.type == "home" || _cl.SD.type == "cars" || _cl.SD.type == "MultipleRoutes") ? "weekDay2 ftl" : "weekDay ftl"

			if (_cl.SD.type == "hotels") {
				_cl.layNameDay[id].style.width = "43px"
			}
			_cl.listDays = args[1][0]
			_cl.listDays.cont = id
			_cl.listMonthYears = args[1][1]
			_cl.listMonthYears.cont = id

			var selectedDate = new Date(_cl.allC[id][1].value.substr(4, 6) + "/" + _cl.allC[id][0].value + "/" + _cl.allC[id][1].value.substr(0, 4))
			var today = new Date(_cl.initDate.getFullYear(), _cl.initDate.getMonth(), _cl.initDate.getDate())

			if (!_cl.dateInSession || _cl.SD.type == "hotels" || selectedDate < today) {
				_cl.listDays.selectedIndex = _cl.initDate.getDate() - 1
				_cl.listMonthYears.selectedIndex = forms.getSelectedByValue(_cl.listMonthYears, _cl.initDate.getFullYear().toString() + _auxDay)

			}


			var cbDate = _cl.getCbDate(_cl.listDays, _cl.listMonthYears)
			_cl.layNameDay[id].innerHTML = _cl.returnDayWeek(cbDate)

			_cl.listDays.onchange = _cl.returnListDays
			_cl.listMonthYears.onchange = _cl.returnListMonthsAndYears

			if (_cl.SD.type != "hotels") {
				_cl.listDays.onkeypress = _cl.returnListDays
				_cl.listMonthYears.onkeypress = _cl.returnListMonthsAndYears
			}

			var link = document.createElement("a")
			link.href = "#"
			link.contId = id;
			link.onclick = function(){
				_cl.actualPicker = this.contId
				_cl.init(args[1], this, this.contId);
				return false;
			}

			var imgCalendar = document.createElement("img")
			imgCalendar.className = "icoCalendar"
			imgCalendar.src = config.urlImg + "calendar.gif"

			link.appendChild(imgCalendar)
			page.$(args[0]).appendChild(link)


			if (_cl.SD.type == "hotels") {

				Calendar.hotels.setDate()

			}

		}
	},
	getCbDay:function(obj){return obj.value},
	getCbMonth:function(obj){return  parseInt(obj.value.substr(4,6),10)-1},
	getCbYear:function(obj){return  parseInt(obj.value.substr(0,4),10)},
	getCbDate:function(obj1,obj2){return  new Date(
		_cl.getCbYear(obj2),
		_cl.getCbMonth(obj2),
		_cl.getCbDay(obj1)

		)
	},
	init:function(obj,objBtnCalendar,id){

		if(!_cl.active || id==0 ){
			_cl.inputReturn=[]
			_cl.inputReturn["day"]=obj[0]
			_cl.inputReturn["month"]=obj[1]
			_cl.inputReturn["hour"]=obj[2]
			_cl.inputReturn["nameDay"]=obj[3]
			idInput=_cl.inputReturn["day"].id

			var day=_cl.inputReturn["day"].value
			var month=parseInt(_cl.inputReturn["month"].value.substr(4,6),10)-1
			var year=parseInt(_cl.inputReturn["month"].value.substr(0,4),10)

			_cl.deleteCalendars()

			var lay=document.createElement("div");

			lay.setAttribute("id","CAL_"+idInput);
			lay.className="calendar";
			_cl.lay=lay;

			_cl.paint(day,month,year,lay);

			lay.style.display="block";
			//Coloca el calendario a la derecha
			lay.style.left=(obj[2]!=null)? xy.getX(obj[2])-(-1*obj[2].offsetWidth)-(-1*5)+"px" :xy.getX(objBtnCalendar)-(-1*objBtnCalendar.childNodes[0].offsetWidth) + 2 +"px";
			lay.style.top=(obj[2]!=null)? xy.getY(obj[2]) +"px":xy.getY(objBtnCalendar) +"px";
			
			if (_cl.SD.type == "MultipleRoutes") {
				//Coloca el calendario abajo
				lay.style.left = (obj[2] != null) ? xy.getX(obj[2]) - (lay.offsetWidth) + "px" : xy.getX(objBtnCalendar) - (-1 * objBtnCalendar.childNodes[0].offsetWidth) + 2 + "px";
				lay.style.top = (obj[2] != null) ? xy.getY(obj[2]) - (-1 * obj[2].offsetHeight) - (-1 * 5) + "px" : xy.getY(objBtnCalendar) + "px";
				
				if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
					var frame = document.createElement("iframe");
					frame.setAttribute("src", "/ibcomv3/js/blank.html");
					frame.setAttribute("id", "IFRAME_" + idInput);
					frame.style.width = lay.offsetWidth + "px";
					frame.style.height = lay.offsetHeight + "px";
					frame.style.left = lay.style.left;
					frame.style.top = lay.style.top;
					frame.style.border = "0";
					var theBody = document.getElementsByTagName("body")[0]
					theBody.appendChild(frame);
				}
			}

		}else {return false}
	},
	deleteCalendars:function(){
		for(var tt=0;tt<_cl.allC.length;tt++){
			if(page.$("CAL_"+_cl.allC[tt][0].id)){
				page.$("CAL_"+_cl.allC[tt][0].id).parentNode.removeChild(page.$("CAL_"+_cl.allC[tt][0].id))
			}
			if(page.$("IFRAME_"+_cl.allC[tt][0].id)){
				page.$("IFRAME_"+_cl.allC[tt][0].id).parentNode.removeChild(page.$("IFRAME_"+_cl.allC[tt][0].id))
			}
		}
	},
	cleanCalendars:function(){_cl.allCalendars=[]},
	returnDayWeek:function(d,m,y){
		var fs=(arguments.length==1)? d.getDay():new Date(y,m,d).getDay();
		fs=(fs==0)? 6:fs-1
		return (_cl.SD.type=="home" || _cl.SD.type=="cars" || _cl.SD.type=="MultipleRoutes")? _cl.SD.weekdays[fs].substr(0,3): _cl.SD.weekdays[fs]
	},
	returnDateLists:function(day,monthYear,idLayDay,typeSel){
		_cl.deleteCalendars()

		if (_cl.SD.type=="hotels") {

			Calendar.hotels.setDate()

		}else {
			var month=parseInt(monthYear.value.substr(4,6),10)-1
			var year=parseInt(monthYear.value.substr(0,4),10)
			_cl.layNameDay[idLayDay].innerHTML=_cl.returnDayWeek(day,month,year)
		}
		_cl.compareDates(day,month,year,idLayDay,typeSel)
	},
	returnListDays:function(){
		_cl.returnDateLists(this.value, this.parentNode.parentNode.getElementsByTagName("select")[1],this.cont,"d")
	},
	returnListMonthsAndYears:function(){
		_cl.returnDateLists(this.parentNode.parentNode.getElementsByTagName("select")[0].value, this,this.cont,"m")
	},
	compareDates:function(d,m,y,id,type){

		var allOptions=[]
		var _difMonth=(_cl.changeMonth)? 0:1
		var firstChange=false;

		if(_cl.SD.type=="hotelssss") {


		}else{

			for(var tt=0;tt<_cl.allC.length;tt++){

				if (tt==0  && _cl.SD.type=="hotels" ) {
					var dateHotels=_cl.getCbDate(page.$("diaSalida"),page.$("mesAnioSalida"))
				}
				allOptions[tt]={date:new Date(_cl.allC[tt][1].value.substr(4,6)+"/"+_cl.allC[tt][0].value+"/"+_cl.allC[tt][1].value.substr(0,4))}
				var today=new Date(_cl.initDate.getFullYear(), _cl.initDate.getMonth(), _cl.initDate.getDate())


				if(allOptions[tt].date<today){
					_auxDay1= parseInt(_cl.initDate.getMonth()+2,10).toString();
					 _cl.allC[tt][1].selectedIndex=forms.getSelectedByValue(_cl.allC[tt][1],_cl.initDate.getFullYear().toString()+_auxDay1)
					if (!_cl.onlyBooking || _cl.SD.type=="cars"){
						var dayCD=today.getDate()-1
						var monthCD=forms.getSelectedByValue(_cl.allC[tt][1],today.getFullYear().toString() +_auxDay)
						if(tt==0){
							dayCD=_cl.allC[tt][0].value-1
							monthCD++
							firstChange=true;
						}
						 if(tt>0){
							if((allOptions[tt-1].date -today==0) && allOptions[tt].date<today){
								_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(_cl.allC[tt][0].value,_cl.allC[tt][1].value.substr(4,6),today.getFullYear())
							}
						 }else{
							_cl.allC[tt][0].selectedIndex=dayCD
							_cl.allC[tt][1].selectedIndex=monthCD
							_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(_cl.allC[tt][0].value,_cl.allC[tt][1].value.substr(4,6)-1,today.getFullYear())
						 }
						 if (_cl.SD.type=="cars"){
							dayCD=_cl.allC[tt][0].value-1
							//monthCD++
							firstChange=true;
							_cl.allC[tt][0].selectedIndex=dayCD
							_cl.allC[tt][1].selectedIndex=monthCD
							_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(_cl.allC[tt][0].value,_cl.allC[tt][1].value.substr(4,6)-1,today.getFullYear())

						 }


					}else{
						if (_cl.SD.type!="cars"){
							var dayOfStay = parseInt(page.$("diaSalida").value,10) + parseInt(page.$("lmnLengthOfStay").value,10);
							page.$("diaSalidaNmDia").innerHTML=dayOfStay + " " + page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].text
						}


					}

					allOptions[tt]={date:new Date(_cl.allC[tt][1].value.substr(4,6)+"/"+_cl.allC[tt][0].value+"/"+_cl.allC[tt][1].value.substr(0,4))}
				}
				if(tt>0 && !_cl.active && _cl.SD.type!="hotels" ){

					if(allOptions[tt].date<allOptions[tt-1].date){

						if(
							((id>0 && type=="d") || _cl.actualPicker>0 )&&
							!(allOptions[tt-1].date>=_cl.finalDate) &&
							parseInt(_cl.allC[tt][0].value,10)<parseInt(_cl.allC[tt-1][0].value,10) &&
							_cl.allC[tt-1][1].value.substr(0,4)==_cl.allC[tt][1].value.substr(0,4))

						{
							if(_cl.allC[tt-1][1].value.substr(0,4)>_cl.initDate.getFullYear()){
								 var op1=parseInt(_cl.allC[tt-1][1].value.substr(4,6),10 )
								 var op2=12*(_cl.allC[tt-1][1].value.substr(0,4)-_cl.initDate.getFullYear())
								 var op3=_cl.initDate.getMonth()
								 var vm=parseInt(1+(op1+op2-op3-_difMonth),10)


							}else {
								var vm=parseInt(1+(_cl.allC[tt-1][1].value.substr(4,6) -_cl.initDate.getMonth() -_difMonth),10 )
							}
							if(_cl.allC[tt][1].options.length==vm){
								_cl.allC[tt][0].selectedIndex=_cl.allC[tt-1][0].selectedIndex
								_cl.allC[tt][1].selectedIndex=_cl.allC[tt-1][1].selectedIndex
								allOptions[tt].date=allOptions[tt-1].date
							}else{
								_cl.allC[tt][1].selectedIndex=vm;
								allOptions[tt].date=new Date(_cl.allC[tt][1].value.substr(0,4),_cl.allC[tt][1].value.substr(4,6)-1,_cl.allC[tt][0].value,0,0,0,0)
								_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(allOptions[tt].date)
							}
						}else{
							var changeDay=(firstChange)?0:1;
							_cl.allC[tt][0].selectedIndex=_cl.allC[tt-changeDay][0].value-1/***/

							if(_cl.allC[tt-1][1].value.substr(0,4)>_cl.initDate.getFullYear()){
								var p1=parseInt(_cl.allC[tt-1][1].value.substr(4,6) ,10)
								var p2=parseInt(12*(_cl.allC[tt-1][1].value.substr(0,4)-_cl.initDate.getFullYear())-_cl.initDate.getMonth(),10)
													_cl.allC[tt][1].selectedIndex=parseInt(p1+p2,10)-_difMonth
								allOptions[tt].date=new Date(_cl.allC[tt-1][1].value.substr(0,4),_cl.allC[tt-1][1].value.substr(4,6)-1,_cl.allC[tt-1][0].value,0,0,0,0)
							}else {
								 _cl.allC[tt][1].selectedIndex=_cl.allC[tt-1][1].value.substr(4,6) -_cl.initDate.getMonth() -_difMonth
								allOptions[tt].date=new Date(_cl.allC[tt][1].value.substr(0,4),_cl.allC[tt][1].value.substr(4,6)-1,_cl.allC[tt][0].value,0,0,0,0)
							}

							_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(allOptions[tt].date)

						}
					}

				}

				if(allOptions[tt].date>=_cl.finalDate){
					 _cl.allC[tt][0].selectedIndex=_cl.finalDate.getDate()-1

					if (!_cl.onlyBooking){
						_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(_cl.finalDate)
					} else{
						Calendar.hotels.setDate();
					}
				}

				var mm=parseInt(_cl.allC[tt][1].value.substr(4,6)-1,10)
				var yyyy=parseInt(_cl.allC[tt][1].value.substr(0,4),10)

				if(_cl.allC[tt][0].value>Gdate.dayMonth(mm,yyyy)){
					 _cl.allC[tt][0].selectedIndex=Gdate.dayMonth(mm,yyyy)-1
					var auxDate=new Date(_cl.allC[tt][1].value.substr(0,4),_cl.allC[tt][1].value.substr(4,6)-1,Gdate.dayMonth(m,y))
					_cl.allC[tt][3].innerHTML=_cl.returnDayWeek(auxDate)
					if(_cl.SD.type=="hotels"){
						Calendar.hotels.setDate()
					}
				}


				if( tt==0 && _cl.SD.type=="hotels" && dateHotels<=_cl.initDate){
					page.$("diaSalida").selectedIndex=_cl.initDate.getDate()-1
					page.$("mesAnioSalida").selectedIndex=_cl.initDate.getMonth()-1
					Calendar.hotels.setDate()
				}
			}
			 if (_cl.SD.type=="cars"){
				var dateCars=_cl.getCbDate(page.$("diaSalida"),page.$("mesAnioSalida"))
				var dateCars2=_cl.getCbDate(page.$("diaRegreso"),page.$("mesRegreso"))
				page.$("diaSalidaNmDia").innerHTML=_cl.returnDayWeek(page.$("diaSalida").value,page.$("mesAnioSalida").value.substr(4,6)-1,page.$("mesAnioSalida").value.substr(0,4))
				page.$("diaRegresoNmDia").innerHTML=_cl.returnDayWeek(page.$("diaRegreso").value,page.$("mesRegreso").value.substr(4,6)-1,page.$("mesRegreso").value.substr(0,4))
				page.$("numDays").innerHTML = Math.ceil((dateCars2.getTime() - dateCars.getTime()) / (1000*60*60*24));
				Calendar.cars.choras();
			 }

			firstChange=false;
			_cl.actualPicker=-1
		}


	},
	paintNavigation:function(day,month,year,lay){
		var p=document.createElement("p");
		p.className="clear";

		var lnkPrev=document.createElement("a");
		lnkPrev.setAttribute("href","#");

		var imgBack=document.createElement("img");
		imgBack.setAttribute("alt",_cl.SD.txtBackNextMonth[0]);
		imgBack.setAttribute("title",_cl.SD.txtBackNextMonth[0])
		imgBack.src=config.urlImg+"btn_calendarBack.gif";
		imgBack.className="backmonth";

		var newMonth=month-1;
		var newYear=year;
		var d=day

		if (newMonth<0){
			newMonth=11;
			newYear=year-1;
		}

		lnkPrev.onclick=function(){
			_cl.paint(d,newMonth,newYear,lay,lay.getElementsByTagName("table")[0])
			return false;
		}

		lnkPrev.appendChild(imgBack);
		p.appendChild(lnkPrev);

		var spanNav=document.createElement("span");
		spanNav.className="txtmonth"

		spanNav.appendChild(document.createTextNode(_cl.SD.months[month]+" "+year));
		p.appendChild(spanNav);

		var lnkNext=document.createElement("a");
		lnkNext.setAttribute("href","#");

		var imgNext=document.createElement("img");
		imgNext.setAttribute("alt",_cl.SD.txtBackNextMonth[1]);
		imgNext.setAttribute("title",_cl.SD.txtBackNextMonth[1])
		imgNext.src=config.urlImg+"btn_calendarForward.gif";
		imgNext.className="nextmonth";

		lnkNext.onclick=function(){
			var newMonth=month+1;
			var newYear=year;
			if (newMonth==12) {
				newMonth=0;
				newYear=year+1;
			}
			_cl.paint(d,newMonth,newYear,lay,lay.getElementsByTagName("table")[0])
			return false;
		}

		lnkNext.appendChild(imgNext);
		p.appendChild(lnkNext);
		lay.appendChild(p);
	},
	paintDayOfWeek:function(weekdays,the_table){
		var thead=document.createElement("thead");
		var row=document.createElement("tr");
		for (i=0;i<weekdays.length;i++){
			var cell=document.createElement("th");
			var cellAbbr=document.createElement("abbr");
			cellAbbr.title=weekdays[i]
			cellAbbr.appendChild(document.createTextNode(weekdays[i].substr(0,2)));
			cell.appendChild(cellAbbr)
			row.appendChild(cell);
		}
		thead.appendChild(row);
		the_table.appendChild(thead);
	},
	paintMonth:function(day,month,year,the_table){
		var difMonth=(_cl.changeMonth)? 0:1
		var day=parseInt(day,10)
		var f=new Date(year,month,1);
		var beginningDay=f.getDay();
		if (beginningDay==0) beginningDay=7;

		if (month>0){
			previousDay=Gdate.dayMonth(month-1,year);
			var mesaux=month-1;
			var anyoaux=year;
		}else{
			previousDay=Gdate.dayMonth(11,year-1);
			var mesaux=11;
			var anyoaux=year-1;
		}

		var tbody=document.createElement("tbody");
		var tr=document.createElement("tr");

		for (j=previousDay-(beginningDay-1)+1;j<=previousDay;j++){
			var cell=document.createElement("td");
			cell.className="cellOtroMes";
			var aux=new Date(anyoaux,mesaux,j,_cl.initDate.getHours(),_cl.initDate.getMinutes(),_cl.initDate.getSeconds());
			cell.appendChild(document.createTextNode(""));
			tr.appendChild(cell);
		}

		var cont=beginningDay;
		for (i=1;i<=7-beginningDay+1;i++){
			var cell=document.createElement("td");
			var text=document.createTextNode(i);
			var lnk=document.createElement("a");
			lnk.setAttribute("href","#");
			var aux=new Date(year,month,i-1,_cl.initDate.getHours(),_cl.initDate.getMinutes(),_cl.initDate.getSeconds())
			if (aux<=_cl.finalDate  && (_cl.initDate<=aux || _cl.initDate.getDate()==i)){

				lnk.appendChild(text);

				if(lnk.firstChild.data==day  && month==_cl.inputReturn["month"].value.substr(4,6)-1) {
					cell.className="nullDat"
				}
				lnk.onclick=function(){
					_cl.returnSelection(this.firstChild.data,month,year)
					return false;
				}
				cell.appendChild(lnk);

			}else {

				var nullDat=document.createElement("span");
				nullDat.appendChild(document.createTextNode(i));
				nullDat.className="nullDat"
				cell.appendChild(nullDat);
			}
			if(aux<=_cl.initDate ) {
				the_table.parentNode.childNodes[0].getElementsByTagName("a")[0].style.display="none"}
			tr.appendChild(cell);
			cont++;
		}
		tbody.appendChild(tr);
		the_table.appendChild(tbody);

		var d=i;
		var row2=2;
		if (month==11) {
			var messig=0;
			var anyosig=year+1;
		}else {
			messig=month+1;
			anyosig=year;
		}
		var writeThis=0;

		while ((row2<=6) && (parseInt(writeThis)<Gdate.dayMonth(month,year))){
			var row=document.createElement("tr");
			for (n=1;n<=7;n++) {
				if (d<=Gdate.dayMonth(month,year)){
					var cell=document.createElement("td");
					var text=document.createTextNode(d);
					var lnk=document.createElement("a");
					lnk.setAttribute("href","#");
					var aux=new Date(year,month,d+1,0,0,0,0);
					if ((aux<=_cl.finalDate) &&(_cl.initDate<aux) || ((_cl.initDate.getDate()==d)&&(aux.getMonth()>=month) && (aux.getMonth()>=year))){
						lnk.appendChild(text);
						if(lnk.firstChild.data==day && month==_cl.inputReturn["month"].value.substr(4,6)-1) cell.className="nullDat"
						cell.appendChild(lnk);
						lnk.onclick=function(){
							_cl.returnSelection(this.firstChild.data,month,year)
							return false;
						}
					}else{
						var nullDay=document.createElement("span");
						nullDay.appendChild(document.createTextNode(d));
						nullDay.className="nullDat"
						cell.appendChild(nullDay);

						if(aux>_cl.finalDate ){
							the_table.parentNode.childNodes[0].getElementsByTagName("a")[1].style.display="none"
						}
					}
					writeThis=d;
					row.appendChild(cell);

				}else{
					var cell=document.createElement("td");
					cell.className="cellOtroMes";
					cell.appendChild(document.createTextNode(""));
					row.appendChild(cell);
				}
				d++;
			}
			tbody.appendChild(row);
			row2++;
		}

	},
	returnSelection:function(d,m,y,obj){
		var monthWrite=m+1;
		if(obj==null){
			var objDay=_cl.inputReturn["day"];
			var objMonth= _cl.inputReturn["month"];
			var objNameDay=_cl.inputReturn["nameDay"];
		}else if(typeof(obj[0])=="object"){
			var objDay=obj[0];
			var objMonth=obj[1];
			var objNameDay=obj[3];
		}else{
			var objDay=page.$(obj[0]);
			var objMonth=page.$(obj[1]);
			var objNameDay=page.$(obj[2]);
		}
		 objDay.selectedIndex=parseInt(d)-1
		var difMonth=(_cl.changeMonth)? 0:1

		if(y>_cl.initDate.getFullYear()){
			objMonth.selectedIndex=parseInt(monthWrite)+(12*(y-_cl.initDate.getFullYear())-_cl.initDate.getMonth())-difMonth
		}else{
			 objMonth.selectedIndex=parseInt(monthWrite)-_cl.initDate.getMonth()-difMonth
		}

		objNameDay.innerHTML=_cl.returnDayWeek(new Date(monthWrite +"/"+d +"/"+y))
		_cl.compareDates(d,m,y)
		if((obj==null))_cl.deleteCalendars();

		if (_cl.SD.type=="hotels"){;Calendar.hotels.setDate();};
	},
	paint:function(d,m,y,lay){
		var thechilds=lay.childNodes;
		for (i=thechilds.length-1;i>=0;i--){lay.removeChild(thechilds[i]);}
		the_table=document.createElement("table")
		the_table.cellPadding=0;
		the_table.cellSpacing=0;

		var theBody=document.getElementsByTagName("body")[0]
		theBody.appendChild(lay);


		var auxText=document.createElement("div")
		auxText.appendChild(document.createTextNode("b"))
		auxText.style.height="1px"
		auxText.style.width="1px"
			auxText.style.border="1px solid red"
			auxText.style.display="inline"
		auxText.style.visibility="hidden"
		auxText.style.overflow="hidden"

		theBody.appendChild(auxText)
		_cl.paintNavigation(d,m,y,lay);
		lay.appendChild(the_table);
		_cl.paintDayOfWeek(_cl.SD.weekdays,the_table)
		_cl.paintMonth(d,m,y,the_table)
	},
	setType:function(v) {
		_cl.servData.type=v
	}

}
Calendar.booking={
	servData:{
		strErrsOrDest:[],
		strErrsPassengers:[]
	},
	maxTickets:9,
	strErrors:"",
	strErrorsPassengers:"",
	isok:true,
	_fireCss:function(){
        for(var i=0;i<_cl.nomCampOb.length;i++){
            if (dom.isArray(_cl.nomCampOb[i][0])){
                for(var j=0;j<_cl.nomCampOb[i].length;j++){
                   _cl.nomCampOb[i][j][1] =  true;
                }
            }else _cl.nomCampOb[i][1] =  true;
        }
    },
    _changeColor:function(){
    	for(var i=0;i<_cl.nomCampOb.length;i++){
            if (dom.isArray(_cl.nomCampOb[i][0])){
                for(var j=0;j<_cl.nomCampOb[i].length;j++){
                    var CssClass = (_cl.nomCampOb[i][j][1])? '':'#f00';
                    var obj =  page.$(_cl.nomCampOb[i][j][0]);
                    if (obj != null)obj.style.color = CssClass;
                }
            }else{
                var CssClass = (_cl.nomCampOb[i][1])? '':'#f00';
                var obj =  page.$(_cl.nomCampOb[i][0]);
                if (obj != null)obj.style.color = CssClass;
            }
    	}
    },
	crlOriginDestination:function(){

		var originCities=dom.getElementsById("ciudadOrigen")
		var destinationCities=dom.getElementsById("ciudadDestino")
		var cities=[];var trayects=[];var dates=[];
		for(var xx=0;xx<originCities.length;xx++){
			if (originCities[xx].value == "-1" &&(originCities[xx].offsetWidth > 0 || originCities[xx].offsetHeight > 0)) {
				var strError =_cl.servData.type == "MultipleRoutes"?multipleRoutes.getSegmentLeyend(destinationCities[xx])+": ":""
				strError+=_cl.booking.servData.strErrsOrDest[0]
				_cl.nomCampOb[0][xx][1] = false;_cl.booking.addErr(strError);
			}
			if(destinationCities[xx].value=="-1" &&(destinationCities[xx].offsetWidth > 0 || destinationCities[xx].offsetHeight > 0)){
				var i=xx+originCities.length;
				var strError =_cl.servData.type == "MultipleRoutes"?multipleRoutes.getSegmentLeyend(destinationCities[xx])+": ":""
				strError+=_cl.booking.servData.strErrsOrDest[1]
                _cl.nomCampOb[1][xx][1] = false;_cl.booking.addErr(strError);
			};
			if(originCities[xx].value==destinationCities[xx].value && originCities[xx].value!=-1 && destinationCities[xx].value!=-1){
				var strError = _cl.servData.type == "MultipleRoutes"?multipleRoutes.getSegmentLeyend(originCities[xx])+": ":""
				strError+=_cl.booking.servData.strErrsOrDest[2]
				_cl.nomCampOb[1][xx][1] = false;_cl.booking.addErr(strError);
			};
			if(_cl.servData.type == "MultipleRoutes"){
				if ((originCities[xx].offsetWidth > 0 || originCities[xx].offsetHeight > 0) && (destinationCities[xx].offsetWidth > 0 || destinationCities[xx].offsetHeight > 0)) {
					if (originCities[xx].value != "-1" && destinationCities[xx].value != "-1") {
						cities[originCities[xx].value] = 1;
						cities[destinationCities[xx].value] = 1;
						if (originCities[xx].value + destinationCities[xx].value in trayects) {
							var strError = multipleRoutes.getSegmentLeyend(originCities[xx]) + ": "
							strError += _cl.booking.servData.strErrsOrDest[4]
							_cl.nomCampOb[1][xx][1] = false;
							_cl.booking.addErr(strError);
						}
						else
							trayects[originCities[xx].value + destinationCities[xx].value] = 1
					}
					var fecha = page.$("diaSalida_0" + (xx + 1)).value + page.$("mesAnioSalida_0" + (xx + 1)).value
					if (fecha in dates) {
						if (dates[fecha] >= 2) {
							var strError = multipleRoutes.getSegmentLeyend(originCities[xx]) + ": "
							strError += _cl.booking.servData.strErrsOrDest[3]
							_cl.nomCampOb[3][xx][1] = false;_cl.booking.addErr(strError);
						}
						dates[fecha]++
					}
					else
						dates[fecha] = 1


				}
			}
		}
		if(_cl.servData.type == "MultipleRoutes"){
			var numCities = 0
			for (k in cities){numCities++}
			if (numCities > 4)_cl.booking.addErr(_cl.booking.servData.strErrsOrDest[5]);
		}
	},
	crtPassengers:function(){
		if(page.$("ADT") && page.$("CHD") && page.$("INF")){
		var numAdult = parseInt(page.$("ADT").value,10);
		var numChild = parseInt(page.$("CHD").value,10);
		var numInfant = parseInt(page.$("INF").value,10);
		var numSenior = 0;
		var numYoung = 0;

		if(_cl.servData.type == "ibadvs" || _cl.servData.type == "MultipleRoutes" ){
			if( page.$("YCD") ) numSenior = parseInt(page.$("YCD").value,10);
			if( page.$("YTH") )numYoung = parseInt(page.$("YTH").value,10);
		}

		var total=parseInt(numAdult+numChild+numSenior+numYoung)
		var totalMinors=parseInt(numChild+numInfant)
		var totalAdults=parseInt(numAdult+numSenior+numYoung)
		var totalPassengers=parseInt(numAdult+numChild+numInfant+numSenior+numYoung)

		if( totalAdults<numInfant ){_cl.nomCampOb[2][1] = false;_cl.booking.addErr(_cl.booking.servData.strErrsPassengers[0]);}
		if(total>_cl.booking.maxTickets){_cl.nomCampOb[2][1] = false;_cl.booking.addErr(_cl.booking.servData.strErrsPassengers[1]);}
		if(totalAdults==0 && numChild!=0){_cl.nomCampOb[2][1] = false;_cl.booking.addErr(_cl.booking.servData.strErrsPassengers[4]);}
		if(totalMinors/2 > totalAdults){_cl.nomCampOb[2][1] = false;_cl.booking.addErrPassengers(_cl.booking.servData.strErrsPassengers[2]);}
		if(_cl.servData.type == "ibadvs" || _cl.servData.type == "MultipleRoutes"){
			if(totalPassengers==0){_cl.nomCampOb[2][1] = false;_cl.booking.addErr(_cl.booking.servData.strErrsPassengers[3]);}
		}
		} else {
			var paxChecks=dom.getElementsById("TYPE_BE")
			if(paxChecks.length!=0){
				var msg = numeroPaxCorrecto();
				if(msg!="")_cl.booking.addErr(msg);
			}

		}

	},
	onlyOneWay:function(obj){
		_cl.active=obj.checked
		_cl.deleteCalendars()
		for(var xx=1;xx<_cl.allC.length;xx++){
			_cl.allC[xx][0].disabled=obj.checked
			_cl.allC[xx][1].disabled=obj.checked
			if(_cl.allC[xx][2])_cl.allC[xx][2].disabled=obj.checked
		}
		if(!obj.checked){_cl.compareDates()}
	},
	addErr:function(err){
		_cl.booking.isok=false;
		_cl.booking.strErrors+=err +"\n"
	},
	addErrPassengers:function(err){
	   _cl.booking.strErrorsPassengers+=err +"\n"
	},
	clearErr:function(){
		_cl.booking.isok=true;
		_cl.booking.strErrors="";
		if(_cl.servData.type == "MultipleRoutes" ) multipleRoutes.hideErrors(_cl.nomCampOb);
	},
	showErr:function(){
		alert(_cl.booking.strErrors);
        _cl.booking._changeColor();
		_cl.booking.clearErr();
		if(_cl.servData.type == "MultipleRoutes" ) multipleRoutes.showErrors(_cl.nomCampOb);
	},
	showErrPassengers:function(){
	    var opc = confirm(_cl.booking.strErrorsPassengers);
	    if(opc == false)
	    {
	        return false;
	    }
	    else
	    {
	        return true;
	    }
	},
	findErr:function(){
		_cl.booking.crlOriginDestination();
		_cl.booking.crtPassengers();
		return (_cl.booking.strErrors!="")
	},
	send:function(){
        _cl.booking._fireCss();
        _cl.booking.strErrorsPassengers = "";
		if(_cl.booking.findErr()) {
			_cl.booking.showErr()
			return false;
		}
		else
		{
		    if(_cl.booking.strErrorsPassengers != "")
		    {
		        if(_cl.booking.showErrPassengers()==false)
		        {
		            return false;
		        }
		    }
		}
        if ( _cl.ombCombo )
        {
            //currencyChangeOk = true;
            if ( (ombCombo.newCurrencyCode != "") && (ombCombo.newCurrencyCode != ombCombo.currencyCode) )
            {
				var alerta = alertIB.create(
					ombCombo.alert.content
					,function(retValue){
						if(retValue){
							ombCombo.currencyCode = ombCombo.newCurrencyCode
							page.$("js").value=true;
							page.$("toAvailSubmit").click();
						}
					}
					,ombCombo.alert.acceptBtn
					,ombCombo.alert.cancelBtn )
				alerta.show();
				//currencyChangeOk = confirm("INFORMACIÓN IMPORTANTE SOBRE MONEDA\nSu reserva se calculará y cobrará en la siguiente moneda: "+ombCombo.newCurrencyDescription+" ["+ombCombo.newCurrencyCode+"]\nVa a abandonar el sitio web de Iberia de su país de residencia. Todas...");
				return false;
            }
            //if (!currencyChangeOk) return false;
			//else page.$("js").value=true;
        }
		if(page.$("js")) page.$("js").value=true;
    }
}
Calendar.hotels={
	load:function(){

		if (page.$("hotels_search")) {
			page.$("lmnLengthOfStay").onchange=function(){
				Calendar.hotels.setDate()
			}
			page.$("hotels_search").onsubmit=Calendar.hotels.send
		}
		var today=_cl.initDate.getFullYear();
		var newYear=Calendar.hotels.getPositionNextYear()
		var objSel=page.$("mesAnioSalida").options

		var yearday=-1;
		for(var xx=0;xx<objSel.length;xx++){

			var zero=(objSel[xx].value.toString().length==1)? "0":"";
			if(newYear!=null){
				if(xx<newYear) {
					yearday=today+zero+objSel[xx].value
				}else {
					yearday=parseInt(today+1,10)+zero+objSel[xx].value
				}
			}else{
				yearday=parseInt(today,10)+zero+objSel[xx].value

			}
			page.$("mesAnioSalida").options[xx].value=yearday
		}

	},
	getPositionNextYear:function(){
		for(var xx=0;xx<page.$("mesAnioSalida").options.length;xx++){
			if(parseInt(page.$("mesAnioSalida").options[xx].value,10)==1 && xx!=0) {return xx}
		}
		return null
	},
	send:function(){
		var obj=page.$("mesAnioSalida");
		 obj.options[obj.selectedIndex].value=parseInt(obj.value.substr(4,6),10);
	},
	setDate:function(change){

		var dayOfStay = parseInt(page.$("diaSalida").value,10) + parseInt(page.$("lmnLengthOfStay").value,10);
		var mm = (page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].value.substr(4,5))-1
		var yyyy = page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].value.substr(0,4)
		var fecha = Gdate.dayMonth(mm,yyyy)
		var dayOfStay2  = dayOfStay;

		page.$("diaSalidaNmDia").innerHTML=dayOfStay2 + " " + page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].text

		if (dayOfStay > fecha ){

		    mm++;
		    var ddd = dayOfStay - fecha
		    dayOfStay2  = ddd+1;

		    if (page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex+1] > 11 || page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex+1] == null) var mes_cambio = 0;
		    else var mes_cambio = page.$("mesAnioSalida").selectedIndex+1;

		    page.$("diaSalidaNmDia").innerHTML=dayOfStay2-1 + " " +  page.$("mesAnioSalida").options[mes_cambio].text

		    if (mm >11){
			mm = 0;
			yyyy++;
			dayOfStay2  = ddd+1;

			page.$("diaSalidaNmDia").innerHTML=dayOfStay2-1 + " " +  page.$("mesAnioSalida").options[mes_cambio].text

		    }

		}
	}
}

Calendar.cars={
	choras:function(){
		var dateCars=_cl.getCbDate(page.$("diaSalida"),page.$("mesAnioSalida"))
		var dateCars2=_cl.getCbDate(page.$("diaRegreso"),page.$("mesRegreso"))
		var diaSalida = page.$('diaSalida').value +""+page.$('mesAnioSalida').value;
		var diaRegreso = page.$('diaRegreso').value +""+page.$('mesRegreso').value;
		var ndays = page.$("numDays").innerHTML;
		var ndaysa = (dateCars2.getTime() - dateCars.getTime()) / (1000*60*60*24);
		ndaysa = Math.ceil(ndaysa);
		if ((page.$('horaMinutoSalida').value < page.$('horaMinutoRegreso').value)){
			var diaSalida = page.$('mesAnioSalida').value+""+page.$('diaSalida').value +""+page.$('horaMinutoSalida').value;
			var diaRegreso = page.$('mesRegreso').value+""+page.$('diaRegreso').value +""+page.$('horaMinutoRegreso').value;
			if (parseInt(diaRegreso) > parseInt(diaSalida))	page.$("numDays").innerHTML = eval(page.$("numDays").innerHTML) + 1;
			if (parseInt(diaRegreso) == parseInt(diaSalida)) page.$("numDays").innerHTML = eval(page.$("numDays").innerHTML);
		}

		var mes = page.$("mesAnioSalida").value.substr(4,5)
		var year = page.$("mesAnioSalida").value.substr(0,4);
		var dia = page.$('diaSalida').value;
		var minutos = page.$('horaMinutoSalida').value.substr(2,4);
		var hora = page.$('horaMinutoSalida').value.substr(0,2);
		var segundos = 0;

		var miFecha1 = new Date(year,mes,dia,hora,minutos,segundos)
		var mes = page.$("mesRegreso").value.substr(4,5)
		var year = page.$("mesRegreso").value.substr(0,4);
		var dia = page.$('diaRegreso').value;
		var minutos = page.$('horaMinutoRegreso').value.substr(2,4);
		var hora = page.$('horaMinutoRegreso').value.substr(0,2);
		var segundos = 0;

		var miFecha2 = new Date(year,mes,dia,hora,minutos,segundos)
		var fecha1 = (miFecha2.getTime() - miFecha1.getTime())/ (1000*60*60*24)
		var fecha2 = (miFecha2.getTime() - miFecha1.getTime())/ (1000*60*60*24)
		fecha2 =  Math.ceil(fecha2);
		var fecha = fecha2-fecha1;
		if (fecha == 0){
			page.$("numDays").innerHTML = ndaysa;
		}else{
			if (page.$('horaMinutoRegreso').value > page.$('horaMinutoSalida').value){
				page.$("numDays").innerHTML = ndaysa+1;
			}else{
				page.$("numDays").innerHTML = ndaysa;
			}
		}
	},
	load:function(){
		_cl.allC.length=0;
		if (page.$("carsBookingForm")) if(page.$("paisOrigen")) page.$("paisOrigen").onchange = function(){
			airport.search.init();
		}
		var today=_cl.initDate.getFullYear();
		var newYear=Calendar.hotels.getPositionNextYear()
		var objSel=page.$("mesAnioSalida").options
		var yearday=-1;
		page.$("carDays").className  = "clear";
		page.$("horaMinutoSalida").onchange = function(){Calendar.cars.choras();}
		page.$("horaMinutoRegreso").onchange = function(){Calendar.cars.choras();}



		if (page.$("carsBookingForm")){
			page.$("carsBookingForm").onsubmit = function(){
				var diaSalida = page.$('mesAnioSalida').value+""+page.$('diaSalida').value +""+page.$('horaMinutoSalida').value;
				var diaRegreso = page.$('mesRegreso').value+""+page.$('diaRegreso').value +""+page.$('horaMinutoRegreso').value;
				if (parseInt(diaSalida) >= parseInt(diaRegreso)){
					alert(Calendar.booking.servData.strErrsCars);
					return false;
				}else{
					return true;
				}
			}
		}
	},
	getPositionNextYear:function(){
		for(var xx=0;xx<page.$("mesAnioSalida").options.length;xx++){
			if(parseInt(page.$("mesAnioSalida").options[xx].value,10)==1 && xx!=0) {return xx}
		}
		return null
	},
	setDate:function(change){

		var dayOfStay = parseInt(page.$("diaSalida").value,10) + parseInt(page.$("lmnLengthOfStay").value,10);
		var mm = (page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].value.substr(4,5))-1
		var yyyy = page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].value.substr(0,4)
		var fecha = Gdate.dayMonth(mm,yyyy)
		var dayOfStay2  = dayOfStay;

		page.$("diaSalidaNmDia").innerHTML=dayOfStay2 + " " + page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex].text

		if (dayOfStay > fecha ){

		    mm++;
		    var ddd = dayOfStay - fecha
		    dayOfStay2  = ddd+1;

		    if (page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex+1] > 11 || page.$("mesAnioSalida").options[page.$("mesAnioSalida").selectedIndex+1] == null) var mes_cambio = 0;
		    else var mes_cambio = page.$("mesAnioSalida").selectedIndex+1;

		    page.$("diaSalidaNmDia").innerHTML=dayOfStay2-1 + " " +  page.$("mesAnioSalida").options[mes_cambio].text

		    if (mm >11){
			mm = 0;
			yyyy++;
			dayOfStay2  = ddd+1;

			page.$("diaSalidaNmDia").innerHTML=dayOfStay2-1 + " " +  page.$("mesAnioSalida").options[mes_cambio].text

		    }

		}
	}
}
Calendar.iberia={
	load:function(){
		_cl.cleanCalendars()
		Calendar.iberia.preSelect()
		switch (_cl.servData.type) {
			case "booking":
			case "home":
			case "ibadvs":
				_cl.load(
					["calendar1",[page.$("diaSalida"), page.$("mesAnioSalida"),page.$("horaSalida"),page.$("diaSalidaNmDia")]],
					["calendar2",[page.$("diaRegreso"), page.$("mesRegreso"),page.$("horaRegreso"),page.$("diaRegresoNmDia")]]
				)
			break
			case "MultipleRoutes":
				multipleRoutes.load();
				_cl.load(
					["calendar1",[page.$("diaSalida_01"), page.$("mesAnioSalida_01"),page.$("horaSalida_01"),page.$("diaSalidaNmDia01")]],
					["calendar2",[page.$("diaSalida_02"), page.$("mesAnioSalida_02"),page.$("horaSalida_02"),page.$("diaSalidaNmDia02")]],
					["calendar3",[page.$("diaSalida_03"), page.$("mesAnioSalida_03"),page.$("horaSalida_03"),page.$("diaSalidaNmDia03")]],
					["calendar4",[page.$("diaSalida_04"), page.$("mesAnioSalida_04"),page.$("horaSalida_04"),page.$("diaSalidaNmDia04")]],
					["calendar5",[page.$("diaSalida_05"), page.$("mesAnioSalida_05"),page.$("horaSalida_05"),page.$("diaSalidaNmDia05")]],
					["calendar6",[page.$("diaSalida_06"), page.$("mesAnioSalida_06"),page.$("horaSalida_06"),page.$("diaSalidaNmDia06")]]
				)
				if(page.$("toAvailSubmit"))page.$("toAvailSubmit").onclick=_cl.booking.send
				else page.$("searchBookingIBMUSE").onsubmit=_cl.booking.send
			break
			default:
		}
		if (page.$("soloIda")) {
			page.$("soloIda").onclick=function(){_cl.booking.onlyOneWay(page.$("soloIda"))}
			if(page.$("soloIda").checked){
				_cl.booking.onlyOneWay(page.$("soloIda"))
			}
		}
		if (page.$("bookingForm")) {
			if(page.$("toAvailSubmit"))page.$("toAvailSubmit").onclick=_cl.booking.send
			else page.$("bookingForm").onsubmit=_cl.booking.send
		}
		if (page.$("redemptionFlightSearchForm")) {
			if(page.$("toAvailSubmit"))page.$("toAvailSubmit").onclick=_cl.booking.send
			else page.$("redemptionFlightSearchForm").onsubmit=_cl.booking.send
		}
		
		ombCombo.init();
	},
	preSelect:function(){
		if (((page.$("formGraphics")) || (dom.getElementsByClassName(page.$("main"),"div","noFlights").length>0)) && ((page.$("from") != null) && (page.$("to") != null))){
			var selOrigin=page.$("from").firstChild.nodeValue.toString().trim();
			var selDestiny=page.$("to").firstChild.nodeValue.toString().trim();
			page.$("ciudadOrigen_0").options.selectedIndex=forms.getSelectedByText(page.$("ciudadOrigen_0"),selOrigin)
			page.$("ciudadDestino_0").options.selectedIndex=forms.getSelectedByText(page.$("ciudadDestino_0"),selDestiny)
		}
	}
}
var airport={}
airport.search={
	xmlObj:objAjax.create(),
	init:function(){
		arrOpt=new Array();
		for( m=0; m<page.$("aeropuertoOrigen").options.length;m++){
			 arrOpt[arrOpt.length]=page.$("aeropuertoOrigen").options[m];
		}
		airport.search.load();
	},
	load:function(){
		var listOrigin=page.$("paisOrigen")
		var listDest=page.$("aeropuertoOrigen")
		var frm=page.$("carsBookingForm")
		listDest[0]=new Option(page.$("loading").value,"-1")
		listDest.selectedIndex=0;

		var path=page.$("path").value;
		var xmlObj=airport.search.xmlObj;
		var sep=url.str2concat(path);

		xmlObj.open('POST', path, true);

		xmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
		var urlx = path.split("?");
		if (urlx.length > 1){
			urlx[1] = urlx[1].replace(/&amp;/, "&");
			var urlx =  urlx[1]+"&country="+page.$('paisOrigen').value;

		}else{
			var urlx = "country="+page.$('paisOrigen').value;
		}

		xmlObj.send(urlx);

		xmlObj.onreadystatechange = function(){
			if (xmlObj.readyState == 4){
				if (xmlObj.status == 200){
					var xmlData=xmlObj.responseXML;
					if (xmlData.getElementsByTagName("errors").length>0){
						var errorData=xmlData.getElementsByTagName("cod")
						var errorDesc=errorData[0].firstChild.nodeValue;
						switch(errorDesc){
							case "AIRPORT.SEARCH_DESTINATIONS.NO_PARAMS" :
								alert(xmlData.getElementsByTagName("description")[0].firstChild.nodeValue);
								break;
							case "AIRPORT.SEARCH_DESTINATIONS.EMPTY_LIST" :
								alert(xmlData.getElementsByTagName("description")[0].firstChild.nodeValue);
								break;
							case "BOOKING.cars.listaVacia":
							//Mensajes en jsp
								firstOpt = xmlData.getElementsByTagName("description")[0].firstChild.nodeValue;
								firstValue = -1;
								break;
							default :
								break;
						}
						listDest.length=0;
					}
					else{
						for (i = listDest.length - 1; i>=0; i--) {
   							listDest.remove(i);
						}
						var allData=xmlData.getElementsByTagName("node");
						var count=0;
						for (var i=0; i<allData.length; i++){
							if (i==0){
								firstOpt = allData[i].firstChild.nodeValue;
								firstValue = allData[i].getAttribute("value");
							}
							listDest[count]=new Option(allData[i].firstChild.nodeValue,allData[i].getAttribute("value"))
							count++;
						}
					}
					listDest[0]=new Option(firstOpt,firstValue)
					listDest.selectedIndex=0;
				}
			}
		}
	},
	errorSelect:function(elm){for(var i=0; i<elm.length;i++){while (elm[i].firstChild) elm[i].removeChild(elm[i].firstChild)}},
	cleanSelects:function(el){for (var i=el.length; i<1; i--){while (el[i].firstChild) el[i].removeChild(el[i].firstChild); }}
}

// OMB: Lógica para el combo "País de origen"
var ombCombo =
{
    xmlObj:objAjax.create(),
    language:"",
    currencyCode:"",
    newCurrencyCode:"",
    newCurrencyDescription:"",
	alert:{
		content:"",
		acceptBtn:"",
		cancelBtn:""
	},
    init:function()
    {
		if (page.$("originCountry")) {
			_cl.ombCombo = true;
			page.$("originCountry").onchange = function(){
				page.$("reloadCountry").click();
				loader_show();
			}
			//page.$("originCountry").onchange = ombCombo.sData;
		}
	},
	sData:function()
    {
		var request = objAjax.create()
		if (request) {
				ombCombo.makePetitionByPost(request);
			} else { return false;}
	},
	makePetitionByPost: function(request)
    {
		if (ombCombo.file.indexOf("?") != -1)
		var url=ombCombo.file.split("?");
		request.onreadystatechange = function() { ombCombo.parseResponse(request); }
		loadingStr=page.$("loading").value;
        // todo:
        page.$("ciudadOrigen_0").length = 0;
        page.$("ciudadOrigen_0")[0] = new Option(loadingStr,"-1");
        page.$("ciudadDestino_0").length = 0;
        page.$("ciudadDestino_0")[0] = new Option(loadingStr,"-1");

        request.open("post", ombCombo.file, true);
		request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		request.send(url[1] + "&ajax=true" + "&language=" + ombCombo.language + "&originCountry=" + page.$("originCountry").value);
		return true;
	},
    parseResponse: function(request)
    {
        if (request.readyState == 4)
        {
            if(request.responseXML!=null)
            {
                var xmlData=request.responseXML;
                if( xmlData.getElementsByTagName("errors").length==0 )
                {
                    if (xmlData.getElementsByTagName("currency").length > 0 )
                    {
                        ombCombo.newCurrencyCode = xmlData.getElementsByTagName("currency")[0].getAttribute("code");
                        ombCombo.newCurrencyDescription = xmlData.getElementsByTagName("currency")[0].firstChild.nodeValue;
                        //alert("moneda: "+ombCombo.newCurrencyDescription+" ["+ombCombo.newCurrencyCode+"]");
                    }
                    else
                    {
                       //alert("no ha llegado moneda!"); // todo <-- quitar esta traza
                    }
                    if (xmlData.getElementsByTagName("departure").length > 0)
                    {
						var originCities = xmlData.getElementsByTagName("departure")[0].getElementsByTagName("option");

                        oriCombo = page.$("ciudadOrigen_0");
                        oriCombo.length = 0;
                        for (var i=0; i<originCities.length; i++)
                        {
                            oriCombo[i] = new Option(originCities[i].firstChild.nodeValue,originCities[i].getAttribute("value"))
						}
                    }
                    if (xmlData.getElementsByTagName("destination").length > 0)
                    {
						var destinationCities = xmlData.getElementsByTagName("destination")[0].getElementsByTagName("option");

                        destCombo = page.$("ciudadDestino_0");
                        destCombo.length = 0;
                        for (var i=0; i<destinationCities.length; i++)
                        {
                            destCombo[i] = new Option(destinationCities[i].firstChild.nodeValue,destinationCities[i].getAttribute("value"))
						}
                    }
					if (xmlData.getElementsByTagName("htmlConfirmAlert").length > 0)
                    {
						ombCombo.alert.content = xmlData.getElementsByTagName("htmlConfirmAlert")[0].firstChild.nodeValue;
						ombCombo.alert.acceptBtn="Aceptar"
						ombCombo.alert.cancelBtn="Cancelar"

                    }
					if (xmlData.getElementsByTagName("buttonsLiterals").length > 0)
                    {
						ombCombo.alert.cancelBtn = xmlData.getElementsByTagName("buttonsLiterals")[0].getElementsByTagName("cancel")[0].firstChild.nodeValue;
						ombCombo.alert.acceptBtn = xmlData.getElementsByTagName("buttonsLiterals")[0].getElementsByTagName("confirm")[0].firstChild.nodeValue;
                    }



					if (xmlData.getElementsByTagName("parameters").length > 0)
                    {
						var parameters = xmlData.getElementsByTagName("parameters")[0].getElementsByTagName("parameter");
						var isFlex = "";
						var maxPax = "";

						for (var i=0; i<parameters.length; i++)
                        {
                           switch ( parameters[i].getAttribute("name") ){
							   case "MAX_BOOKING_DAYS":
								Calendar.servData.nDays=parseInt(parameters[i].firstChild.nodeValue);
							   break;
							   case "MIN_BOOKING_HOURS":
							   	Calendar.servData.nHours=parseInt(parameters[i].firstChild.nodeValue);
							   break;
							   case "IS_FLEX_HOME":
							   	isFlex=parameters[i].firstChild.nodeValue;
								if (eval(isFlex))document.getElementsByName("flexible")[1].click()
								else document.getElementsByName("flexible")[0].click()
							   break;
							   case "MAX_PAX":
							   	Calendar.booking.maxTickets=parameters[i].firstChild.nodeValue;
							   break;
						   }
						}
						Calendar.load();
						_cl.booking._changeColor();
						var auxDate = new Date(_cl.initDate);
						var selectPrev=false;

						var selected = [];
						var i = 0;
						while (auxDate <= _cl.finalDate) {
							var monthYear = auxDate.getFullYear()
							monthYear += ((auxDate.getMonth() + 1 > 9) ? "" : "0") + (auxDate.getMonth() + 1)
							var monthName = _cl.servData.shortMonths[auxDate.getMonth()]
							for (var tt = 0; tt < _cl.allC.length; tt++) {
								if (i == 0) {
									selected[tt] = _cl.allC[tt][1].value;
									_cl.allC[tt][1].length = 0
								}
								if (_cl.allC[tt][1].className.indexOf("ancho3") != -1) {
									monthName = _cl.servData.months[auxDate.getMonth()]
								}
								_cl.allC[tt][1][i] = new Option(monthName, monthYear);
								if (monthYear == selected[tt]) {
									_cl.allC[tt][1][i].selected = true
								}
							}
							auxDate.setMonth(auxDate.getMonth() + 1)
							i++
						}
						_cl.allC[tt-1][1].onchange();


						/*
						for (var tt = 0; tt < _cl.allC.length; tt++) {
							_cl.allC[tt][1].onchange();
							for(var mm=_cl.allC[tt][1].options.length-1; mm >= 0 ;mm-- ){
								var monthYear=_cl.finalDate.getFullYear()
								monthYear+=((_cl.finalDate.getMonth()+1>9)?"":"0")+(_cl.finalDate.getMonth()+1)
								if(parseInt(_cl.allC[tt][1].options[mm].value)>parseInt(monthYear)){
									if(_cl.allC[tt][1].options[mm].selected) selectPrev=true;
									_cl.allC[tt][1].options[mm].style.display="none"
								} else{
									_cl.allC[tt][1].options[mm].style.display=""
									if(selectPrev){
										_cl.allC[tt][1].options[mm].selected=true;
										selectPrev=false;
									}
								}

							}
						}*/

                    }

                } else { // if(request.responseXML.getElementsByTagName("errors").length!=0)
					var txt=request.responseXML.getElementsByTagName("description")[0].childNodes[0].nodeValue;
					alert(txt);
				}
            }
            else location.href="/"
        }

    }
}

ev.addEvent(window,"load",Calendar.iberia.load,false)
