Ext.onReady(function() {
    var area = document.getElementById('area_id');
    if (area && area.id == 'area_id') {
        new Mc.MasterSlaveSelectController({
            applyTo: 'area_id',
            slaveSelect: 'location_id',
            firstSlaveItem: 1,
            url: '/'+LOCALE+'/hotels/find_locations_as_json'
        });
    } else {
        var area_ids = ['area_id_19', 'area_id_2'];
        for (var i=area_ids.length-1; i >= 0; i--){
            area = document.getElementById(area_ids[i]);
            if (area) {
                new Mc.MasterSlaveSelectController({
                    applyTo: area_ids[i],
                    slaveSelect: 'location_id',
                    firstSlaveItem: 1,
                    respondEvent: 'click',
                    url: '/'+LOCALE+'/hotels/find_locations_as_json'
                });
            }
        }
    }

    var datepickers = ['hotel_check_in','hotel_check_out',
    'ferry_depart_day', 'ferry_return_day',
    'activity_from_day', 'activity_to_day',
    'package_depart_day', 'package_return_day'
    ];
    
    for (var j= 0; j < datepickers.length; j=j+2){
        if (document.getElementById(datepickers[j])){
            var from_date = new Mc.DoubleDatePicker({
                applyTo: datepickers[j],
                triggerButton: datepickers[j] + '_button',
                minDate: SERVER_DATE
            });
        }
    
        if (document.getElementById(datepickers[j+1])){
            var to_date = new Mc.DoubleDatePicker({
                applyTo: datepickers[j+1],
                triggerButton: datepickers[j+1] + '_button',
                minDate: from_date.minDate.add(Date.DAY, 1)
            });
        }
    
        if (from_date && to_date) {
            var nights = new Mc.NightsController({
                applyTo:  datepickers[j].match(/[a-zA-Z0-9]+_/) + 'nights',
                checkIn: from_date,
                checkOut: to_date
            });
        }
    }

    var room_selectors = [];
    var room_blocks = ['hotel', 'activity', 'package'];
    for (var k=0; k < room_blocks.length; k++){
        if (document.getElementById(room_blocks[k] + '_room_selector')) {
            room_selectors.push(new Mc.RoomController({
                applyTo: room_blocks[k] + '_room_selector',
                rootNodeId: room_blocks[k] + '_room_blocks'
            }));
        }
    }

    // searh panel selection, which panel is selected?
    Ext.select('#search-for-trip form', true).each(function(el){
        el.dom.className = 'hidden';
    });

    Ext.select('#search-for-trip .type-item input', true).each(function(el){
        el.on('click', switchForm, this);
    });

    var frm;
    Ext.select('#search-for-trip .type-item input[type="radio"]', true).each(function(el){
        if (el.dom.checked){
            switchForm(null, el.dom);
        }
    });

    if (Ext.isIE6) {
        Ext.getBody().repaint()
    }

    //activity search filter check boxes
    Ext.select("#srch-activity input[type=checkbox]").each(function(el){
        el.on('click', resetCheckBoxes)
    });

    function switchForm(e,t) {
        var frm = document.getElementById('srch-' + t.value);
        if (frm) {
            //set all forms hidden
            Ext.select('#search-for-trip form', true).each(function(el){
                el.dom.className = 'hidden';
            });
            // set this one visible
            frm.className = 'visible';
            t.checked = true;

            if (t.id == 'hotel-activities'){
               frm.action = document.getElementById('srch-package').action;
            } else if (t.id == 'btn-sel-panel_hotel'){
               frm.action = frm.action_url.value;
            }

            if (frm.search_for){
                frm.search_for.value = t.id;
            }

            if (Ext.isIE6) {
                Ext.getBody().repaint()
            } // because ie6 can't repaint!? 

        } else {
            booking_panel_redirect(t);
        }
    }
    
});

/*booking panel radio button links*/
function booking_panel_redirect(t) {
    if (t.value != 'hotel') {document.getElementById('btn-sel-panel_hotel').checked = true; window.open(t.value);}//window.location = t.value;}
}

/*activities booking panel*/
function resetCheckBoxes(e, t) {
    if (t.value == 'all' && t.checked){
        Ext.select('#srch-activity input[type=checkbox]').each(function(el) {
            if (el.dom.value != 'all') {
                el.dom.checked = false;
            }
        });
    }
    if (t.value != 'all' && t.checked) {
        Ext.select("#srch-activity input[type=checkbox]").each(function(el) {
            if (el.dom.value == 'all') {
                el.dom.checked = false; return;
            }
        });
    }
}

function one_way_trip(what){
    if(what == 'ferry'){
        document.getElementById('ferry_return_day').disabled = "disabled";
        document.getElementById('ferry_return_day_button').style.visibility = 'hidden';
    } else if(what == 'flight') {
        document.getElementById('flight_return_day').disabled = "disabled";
        document.getElementById('flight_return_day_button').style.visibility = 'hidden';
    }
}

function round_trip(what){
    if(what == 'ferry'){
        document.getElementById('ferry_return_day').disabled = "";
        document.getElementById('ferry_return_day_button').style.visibility = 'inherit';
    } else if(what == 'flight') {
        document.getElementById('flight_return_day').disabled = "";
        document.getElementById('flight_return_day_button').style.visibility = 'visible';
    }
}

if (document.getElementById('ferry_trip_type_one-way') && document.getElementById('ferry_trip_type_one-way').checked == true) one_way_trip('ferry');
if (document.getElementById('flight_trip_type_one-way') && document.getElementById('flight_trip_type_one-way').checked == true) one_way_trip('flight');
