function renameElements() {
    document.getElementById("ftRooms").setAttribute("name", "stayDetails.rooms");    
    document.getElementById("ftAdults1").setAttribute("name", "stayDetails.roomRequests[0].Adults");
    document.getElementById("ftChildren1").setAttribute("name", "stayDetails.roomRequests[0].Children");
}

function initDateDropDowns(formId) {
	var d = new Date();
	d.setDate(d.getDate() + 1);

	for (i = 1; i < 32; i++) {
	    document.getElementById(formId).startDay[i - 1] = new Option(i, i, (i == d.getDate()), (i == d.getDate()));
	}

	d = new Date();
	d.setDate(d.getDate() + 1);

	for (i = 0; i < 12; i++) {
	    document.getElementById(formId).startMonthYearCombination[i] =
			new Option(d.toString().substring(4, 7) + " - " + d.getFullYear(), (d.getMonth() + 1) + "-" + d.getFullYear().toString());

	    d.setDate(1);
	    d.setMonth(d.getMonth() + 1);
	}
}

function getRooms(total) {
    var html = "";
    for (var room = 1; room <= total; room++) {
        html = html + "<div id=\"room" + room + "\" class=\"room\" \>&nbsp;<label for=\"ftAdults" + room + "\">Adults:&nbsp;</label><select id=\"ftAdults" + room +
        "\" name=\"stayDetails.roomRequests[" + (room - 1) + "].Adults\"><option value=\"0\">0</option><option value=\"1\">1</option><option selected=\"selected\" value=\"2\">2</option><option value=\"3\">3</option><option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option></select>&nbsp;<label for=\"ftChildren" + room + "\">&nbsp;&nbsp;Children:&nbsp;</label><select id=\"ftChildrenRoom" + room + "\" name=\"stayDetails.roomRequests[" + (room - 1) + "].Children\"><option selected=\"selected\" value=\"0\">0</option><option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option><option value=\"4\">4</option></select></div>";
    }

    return html;
}

function insertChildAges(childrenElemId) {
    var room = parseInt(jQuery(childrenElemId).attr("name").match("[0-9]+"));

    if (isNaN(room)) {
        room = 1;
    }
    else {
        room = room + 1;
    }

    if (room == 1) {
        left = 154;
        bottom = 0;
    }
    else {
        left = 12;
        bottom = 2;
    }

    childAgeElemName = "childAges_" + room;
    childAges = getChildAges(room, jQuery(childrenElemId).attr('selectedIndex'));

    jQuery("#" + childAgeElemName).empty();

    content = "<div id=\"" + childAgeElemName + "\"" + childAges + "</div>";

    jQuery(childrenElemId).after(content);
}

function getChildAges(room, total) {
    var html = "";

    if (total > 0) {
        for (var children = 1; children <= total; children++) {
            if (children == 1) {
                html = html + "<label for=\"ftChildAges_" + room + "_" + children +
                    "\" class=\"ftAges\" classname=\"ftAges\">Ages:&nbsp;</label>";
            }

            html = html + "<select class=\"childAge\" id=\"ftChildAges_" + room + "_" + children +
                "\" name=\"stayDetails.roomRequests[" + (room - 1) + "].childAges[" + (children - 1) +
                "]\"\"><option value=\"-1\">--</option><option value=\"0\">< 1</option><option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option><option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option><option value=\"7\">7</option><option value=\"8\">8</option><option value=\"9\">9</option><option value=\"10\">10</option><option value=\"11\">11</option><option value=\"12\">12</option><option value=\"13\">13</option><option value=\"14\">14</option><option value=\"15\">15</option></select>&nbsp;";
        }
    }

    return html;
}

function attachOccupancyHelper(roomElemId) {
    if (typeof(jQuery) != "undefined") {
        var rooms = jQuery(roomElemId).attr('selectedIndex') + 1;

        jQuery("#roomSelection").remove();

        jQuery("#bookingParty").empty().append(getRooms(rooms));

        for (var room = 1; room <= rooms; room++) {
            attachChildAgeHelper("#ftChildrenRoom" + room);
        }
    }
}

function attachChildAgeHelper(childrenElemId) {
    if (typeof(jQuery) != "undefined") {
        jQuery(childrenElemId).change(
			function(e) {
			    insertChildAges(childrenElemId);
			}
		);
    }
}

function initForm() {
    renameElements();    
    initDateDropDowns("sb_hotelSearch");

    if (typeof(jQuery) != "undefined") {        
        jQuery("#ftRooms").change(
			function(e) {
            attachOccupancyHelper("#ftRooms");
			}
		);

			jQuery("#bookingParty").empty().append(getRooms(jQuery("#ftRooms").attr('selectedIndex') + 1))
		
		attachChildAgeHelper("#ftChildrenRoom1");                
    }
}

load = function() {
    load.getScript("http://www.superbreak.com/content/scripts/jquery-1.3.2.min.js");
    load.tryReady(0); // We will write this function later. It's responsible for waiting until jQuery loads before using it.
}

load.getScript = function(filename) {
    var script = document.createElement('script')
    script.setAttribute("type", "text/javascript")
    script.setAttribute("src", filename)

    if (typeof (script) != "undefined") {
        document.getElementsByTagName("head")[0].appendChild(script);
    }
}

load.tryReady = function(time_elapsed) {
    // Continually polls to see if jQuery is loaded.
    if (typeof (jQuery) == "undefined") { // if jQuery isn't loaded yet...
        if (time_elapsed <= 5000) { // and we havn't given up trying...
            setTimeout("load.tryReady(" + (time_elapsed + 200) + ")", 200); // set a timer to check again in 200 ms.
        } else {
            alert("Timed out while loading jQuery.")
        }
    } else {
        initForm();
    }
}

if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", load, false);
}
else {
    window.onload = load;
}
