﻿    var defaultAdults="2";
    var cellStyle=" class='myFormhdr'";
    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 18+)";
    var textChildren="Children: (0-17)";
    var textChildError="Please specify the ages of all children.";
    var pad='<img src="http://travel.ian.com/images/p.gif" width="5" height="1">';
    // NOTE: Question marks ("?") get replaced with a numeric value
    var textRoomX="Room ?:";
    var textChildX="Child ?:";
    
    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: ";
var textChildren="Children: ";
var textChildError="Please specify the ages of all children.";
var pad='<img src="/images/p.gif" width="5" height="1">';
var textRoomX="Room ?:";
var textChildX="Child ?:";
var childrenPerRoom=new Array();
var adultsPerRoom=new Array();
var childAgesPerRoom=new Array();
var numRooms=0;
var maxChildren=0;
var pad='<img src="/images/p.gif" width="5" height="1">';
adultsPerRoom[0]=2;
childrenPerRoom[0]=0;
numRooms=1;
if (numRooms < 1) {
numRooms = 1;
}
refresh();
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;
refresh();
}
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;
}
}
refresh();
}
function renderRoomSelect() {
var x = '';
x += '<select class="poiList" 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 += '<option value="9"'+(numRooms == 9 ? ' selected' : '')+'>9+';
x += '</select>';
return x;
}
function refresh() {
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 border="0" cellspacing="2" cellpadding="0">\n';
x += '<tr><td'+cellStyle+'>'+textRooms+pad+'</td><td>';
x += renderRoomSelect();
x += '</td></tr></table>';
} else {
x += '<table border="0" cellspacing="2" cellpadding="0">\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 + '-adult-total', 'setNumAdults(' + i + ', this.options[this.selectedIndex].value)', 1, 4, adultsPerRoom[i]);
x += '</td><td'+cellStyle+'>';
x += buildSelect('room-' + i + '-child-total', '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 border="0" cellpadding="0" cellspacing="2">\n';
x += '<tr><td'+cellStyle+' colspan="'+(maxChildren+1)+'">';
x += '<img src="/images/p.gif" width="1" height="5"><br>';
x += childHelp;
x += '<img src="/images/p.gif" width="1" height="5"><br>';
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 class="poiList" 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("hot-search-params").innerHTML = x;
}
function buildSelect(name, onchange, min, max, selected) {
var x = '<select class="poiList" 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 validateGuests(form) {
if (numRooms < 9) {
var missingAge = false;
for (var i = 0; i < numRooms; i++) {
var numChildren = childrenPerRoom[i];
if (numChildren != null && numChildren > 0) {
for (var j = 0; j < numChildren; j++) {
if (childAgesPerRoom[i] == null || childAgesPerRoom[i][j] == null || childAgesPerRoom[i][j] == -1) {
missingAge = true;
}
}
}
}
if (missingAge) {
alert(textChildError);
return false;
} else {
return true;
}
} else {
return true;
}
}
function submitGuestInfoForm(form) {
if (!validateGuests(form)) {
return false;
}
return true;
}
function getValue(str, val) {
return str.replace(/\?/g, val);
}