var cellStyle='';var childHelp="Please provide the ages of children in each room. Children's ages should be their age at the time of travel.";var adultHelp="";var textRooms="Rooms:";var textAdults="Adults: (age 19+)";var textChildren="Children: (0-18)";var textChildError="Please specify the ages of all children.";var pad='';var textRoomX="Room ?:";var textChildX="Child ?:";var childrenPerRoom=new Array();var adultsPerRoom=new Array();var childAgesPerRoom=new Array();var numRooms=0;var maxChildren=0;adultsPerRoom[0]=2;childrenPerRoom[0]=0;numRooms=1;if(numRooms<1){numRooms=1;}
function setChildAge(room,child,age){if(childAgesPerRoom[room]==null){childAgesPerRoom[room]=new Array();}
childAgesPerRoom[room][child]=age;}
function setNumAdults(room,numAdults){adultsPerRoom[room]=numAdults;}
function setNumChildren(room,numChildren){childrenPerRoom[room]=numChildren;initRoomSelector();}
function setNumRooms(x){numRooms=x;for(i=0;i<x;i++){if(adultsPerRoom[i]==null){adultsPerRoom[i]=2;}
if(childrenPerRoom[i]==null){childrenPerRoom[i]=0;}}
initRoomSelector();}
function renderRoomSelect(){var x='';x+='<select name="numberOfRooms" onchange="setNumRooms(this.options[this.selectedIndex].value);">';for(var i=1;i<9;i++){x+='<option value="'+i+'"'+(numRooms==i?' selected':'')+'>'+i;}
x+='</select>';return x;}
function initRoomSelector(){maxChildren=0;for(var i=0;i<numRooms;i++){if(childrenPerRoom[i]>maxChildren){maxChildren=childrenPerRoom[i];}}
var x='';if(adultHelp.length>0){x=adultHelp+"<p>\n";}
if(numRooms>8){x+='<table>\n';x+='<tr><td'+cellStyle+'>'+textRooms+pad+'</td><td>';x+=renderRoomSelect();x+='</td></tr></table>';}else{x+='<table>\n';x+='<tr><td'+cellStyle+'>'+textRooms+pad+'</td>';if(numRooms>1){x+='<td'+cellStyle+'>&nbsp;</td>';}
x+='<td'+cellStyle+'><nobr>'+textAdults+pad+'</nobr></td><td'+cellStyle+'><nobr>'+textChildren+pad+'</nobr></td></tr>\n';for(var i=0;i<numRooms;i++){x+='<tr><td'+cellStyle+'>';if(i==0){x+=renderRoomSelect();}else{x+='&nbsp;';}
x+='</td>';if(numRooms>1){x+='<td'+cellStyle+'><nobr>'+getValue(textRoomX,i+1)+pad+'</nobr></td>';}
x+='<td'+cellStyle+'>';x+=buildSelect('room'+i+'_adultTotal','setNumAdults('+i+', this.options[this.selectedIndex].value)',1,2,adultsPerRoom[i]);x+='</td><td'+cellStyle+'>';x+=buildSelect('room'+i+'_childTotal','setNumChildren('+i+', this.options[this.selectedIndex].value)',0,3,childrenPerRoom[i]);x+='</td></tr>\n';}
x+='</table>\n';var didHeader=false;for(var i=0;i<numRooms;i++){if(childrenPerRoom[i]>0){if(!didHeader){x+='<table>\n';x+='<tr><td'+cellStyle+' colspan="'+(maxChildren+1)+'">';x+=childHelp;x+='</td></tr>\n<tr><td'+cellStyle+'>&nbsp;</td>';for(var j=0;j<maxChildren;j++){x+='<td'+cellStyle+'><nobr>'+getValue(textChildX,j+1)+pad+'</nobr></td>\n';}
didHeader=true;}
x+='</tr>\n<tr><td'+cellStyle+'><nobr>'+getValue(textRoomX,i+1)+pad+'</nobr></td>';for(var j=0;j<childrenPerRoom[i];j++){x+='<td'+cellStyle+'>';var def=-1;if(childAgesPerRoom[i]!=null){if(childAgesPerRoom[i][j]!=null){def=childAgesPerRoom[i][j];}}
x+='<select name="room'+i+'_child'+j+'Age" onchange="setChildAge('+i+', '+j+', this.options[this.selectedIndex].value);">';x+='<option value="-1"'+(def==-1?' selected':'')+'>-?-';x+='<option value="0"'+(def==0?' selected':'')+'>&lt;1';for(var k=1;k<=17;k++){x+='<option value="'+k+'"'+(def==k?' selected':'')+'>'+k;}
x+='</td>';}
if(childrenPerRoom[i]<maxChildren){for(var j=childrenPerRoom[i];j<maxChildren;j++){x+='<td'+cellStyle+'>&nbsp;</td>';}}
x+='</tr>\n';}}
if(didHeader){x+='</table>\n';}}
document.getElementById("hotelRooms").innerHTML=x;}
function buildSelect(name,onchange,min,max,selected){var x='<select name="'+name+'"';if(onchange!=null){x+=' onchange="'+onchange+'"';}
x+='>\n';for(var i=min;i<=max;i++){x+='<option value="'+i+'"';if(i==selected){x+=' selected';}
x+='>'+i+'\n';}
x+='</select>';return x;}
function getValue(str,val){return str.replace(/\?/g,val);};<!--
function initIntervalCal(){function IntervalCalendar(container,cfg){this._iState=0;cfg=cfg||{};cfg.multi_select=true;IntervalCalendar.superclass.constructor.call(this,container,cfg);this.beforeSelectEvent.subscribe(this._intervalOnBeforeSelect,this,true);this.selectEvent.subscribe(this._intervalOnSelect,this,true);this.beforeDeselectEvent.subscribe(this._intervalOnBeforeDeselect,this,true);this.deselectEvent.subscribe(this._intervalOnDeselect,this,true);}
IntervalCalendar._DEFAULT_CONFIG=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG;YAHOO.lang.extend(IntervalCalendar,YAHOO.widget.CalendarGroup,{_dateString:function(d){var a=[];a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_MONTH_POSITION.key)-1]=(d.getMonth()+1);a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_DAY_POSITION.key)-1]=d.getDate();a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_YEAR_POSITION.key)-1]=d.getFullYear();var s=this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.DATE_FIELD_DELIMITER.key);return a.join(s);},_dateIntervalString:function(l,u){var s=this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.DATE_RANGE_DELIMITER.key);return(this._dateString(l)
+s+this._dateString(u));},getInterval:function(){var dates=this.getSelectedDates();if(dates.length>0){var l=dates[0];var u=dates[dates.length-1];return[l,u];}
else{return[];}},setInterval:function(d1,d2){var b=(d1<=d2);var l=b?d1:d2;var u=b?d2:d1;this.cfg.setProperty('selected',this._dateIntervalString(l,u),false);this._iState=2;},resetInterval:function(){this.cfg.setProperty('selected',[],false);this._iState=0;},_intervalOnBeforeSelect:function(t,a,o){this._iState=(this._iState+1)%3;if(this._iState==0){this.deselectAll();this._iState++;}},_intervalOnSelect:function(t,a,o){var dates=this.getSelectedDates();if(dates.length>1){var l=dates[0];var u=dates[dates.length-1];this.cfg.setProperty('selected',this._dateIntervalString(l,u),false);}
this.render();},_intervalOnBeforeDeselect:function(t,a,o){if(this._iState!=0){return false;}},_intervalOnDeselect:function(t,a,o){if(this._iState!=0){this._iState=0;this.deselectAll();var d=a[0];var date=YAHOO.widget.DateMath.getDate(d[0],d[1]-1,d[2]);var page=this.getCalendarPage(date);if(page){page.beforeSelectEvent.fire();this.cfg.setProperty('selected',this._dateString(date),false);page.selectEvent.fire([d]);}
return false;}}});YAHOO.namespace("intervalcalendar");YAHOO.intervalcalendar.IntervalCalendar=IntervalCalendar;YAHOO.namespace("calendar");var cal;var d=new Date();var pageDate=(d.getMonth()+1)+"_"+d.getFullYear();YAHOO.calendar.generateStateString=function(from,to,pagedate,rooms){if(from!="0"&&to!="0"){return"from="+from.replace(/\//g,"_")+"&to="+to.replace(/\//g,"_")+"&pagedate="+pagedate.replace(/\//g,"_");}else{return"pagedate="+pagedate;}};YAHOO.calendar.parseStateString=function(state){return{from:/\bfrom=(\w+)/.test(state)?RegExp.$1:0,to:/\bto=(\w+)/.test(state)?RegExp.$1:0,pagedate:/\bpagedate=(\w+)/.test(state)?RegExp.$1:pageDate};};var bookmarkedCalendarState=YAHOO.util.History.getBookmarkedState("calendar");var initialCalendarState=bookmarkedCalendarState||YAHOO.calendar.generateStateString(0,0,pageDate,1);YAHOO.util.History.register("calendar",initialCalendarState,function(state){var parsed=YAHOO.calendar.parseStateString(state);if(parsed.from!="0"&&parsed.to!="0"&&parsed.pagedate){cal.cfg.setProperty("pagedate",parsed.pagedate.replace(/_/g,"/"));cal.cfg.setProperty("selected",parsed.from.replace(/_/g,"/")+"-"+parsed.to.replace(/_/g,"/"),false);cal._iState=2;cal.render();}});YAHOO.calendar.initHistoryCalendar=function(fromEl,toEl,minDate,maxDate){try{YAHOO.util.History.initialize("yui-history-field","yui-history-iframe");YAHOO.util.History.onReady(function(){var currentState=YAHOO.util.History.getCurrentState("calendar");YAHOO.calendar.initCalendar(fromEl,toEl,minDate,maxDate,currentState);});}catch(e){YAHOO.calendar.initCalendar(fromEl,toEl,minDate,maxDate,false);}}
YAHOO.calendar.initCalendar=function(fromEl,toEl,minDate,maxDate,state){var inTxt=YAHOO.util.Dom.get(fromEl),outTxt=YAHOO.util.Dom.get(toEl),inDate,outDate,interval;cal=new YAHOO.intervalcalendar.IntervalCalendar("calcontainer",{pages:3,mindate:minDate,maxdate:maxDate});var firstCal=cal.pages[0];firstCal.changePageEvent.subscribe(function(){var monthyear=firstCal.cfg.getProperty("pagedate");pageDate=(monthyear.getMonth()+1)+"_"+monthyear.getFullYear();});cal.selectEvent.subscribe(function(){interval=this.getInterval();if(interval.length==2){inDate=(interval[0].getMonth()+1)+"/"+interval[0].getDate()+"/"+interval[0].getFullYear();inTxt.value=inDate;if(interval[0].getTime()!=interval[1].getTime()){outDate=(interval[1].getMonth()+1)+"/"+interval[1].getDate()+"/"+interval[1].getFullYear();outTxt.value=outDate;var newState=YAHOO.calendar.generateStateString(inDate,outDate,pageDate,'1');var currentState=YAHOO.util.History.getCurrentState("calendar");if(newState!==currentState){YAHOO.util.History.navigate("calendar",newState);}}else{outTxt.value="";}}},cal,true);if(state){var parsed=YAHOO.calendar.parseStateString(state);if(parsed.from!="0"&&parsed.to!="0"&&parsed.pagedate){cal.cfg.setProperty("selected",parsed.from.replace(/_/g,"/")+"-"+parsed.to.replace(/_/g,"/"),false);cal._iState=2;inTxt.value=parsed.from.replace(/_/g,"/");outTxt.value=parsed.to.replace(/_/g,"/");if(fromEl=="pickUpDate"){getApi('getCarAvailability','formSearchCars','carResults',1);}else if(fromEl=="departureDate"){getApi('getAirAvailability','formSearchFlights','flightResults',1);}else{getApi('getHotelRoomAvailabilities','formBookDate','roomResults',1);}}}
cal.render();}}
-->