﻿Type.registerNamespace("Sembo.Site.Accommodation.House");

Sembo.Site.Accommodation.House.HousesAndTransportationSearch = function(element) {
    Sembo.Site.Accommodation.House.HousesAndTransportationSearch.initializeBase(this, [element]);
        
    this._transportation = null;
    this._houses = null;
}

Sembo.Site.Accommodation.House.HousesAndTransportationSearch.prototype = {

    //Methods
    initialize: function() {
        Sembo.Site.Accommodation.House.HousesAndTransportationSearch.callBaseMethod(this, "initialize");
        this.createEventHandlers();

        Sys.Application.add_load(this.application_load);
    },

    dispose: function() {
        Sembo.Site.Accommodation.House.HousesAndTransportationSearch.callBaseMethod(this, "dispose");
        Sys.Application.remove_load(this.application_load);
    },

    //    //Event handlers
    createEventHandlers: function() {
        var me = this;

        this.application_load = function(s, e) {
            
            var elements = document.getElementById("SearchEngine").childNodes;
            
            for (var i = 0; i < elements.length; i++) {
                if (elements[i].className != null && elements[i].className == 'FerryFieldset') {
                    me._transportation = $find(elements[i].id)
                }
                else if (elements[i].className != null && elements[i].className == 'HouseSearchFields') { 
                    me._houses = $find(elements[i].id)
                }
            }

            me._transportation.add_ferryOutDateChanged(me.transportation_ferryOutDateChanged);
            me._transportation.add_ferryHomeDateChanged(me.transportation_ferryHomeDateChanged);

            me._houses.add_FromDateChanged(me.houses_fromDateChanged);
            me._houses.add_ToDateChanged(me.houses_toDateChanged);
        };

        this.transportation_ferryOutDateChanged = function(s, e) {
            if (!me._houses.get_fromDateSet()) {
                me._houses.set_fromDate(me._transportation.get_ferryOutDate());
            }
        };

        this.transportation_ferryHomeDateChanged = function(s, e) {
            if (!me._houses.get_toDateSet()) {
                me._houses.set_toDate(me._transportation.get_ferryHomeDate());
            }
        };

        this.houses_fromDateChanged = function(s, e) {
            if (!me._transportation.get_outDateSet()) {
                me._transportation.set_ferryOutDate(me._houses.get_fromDate());
            }
        };

        this.houses_toDateChanged = function(s, e) {
            if (!me._transportation.get_homeDateSet()) {
                me._transportation.set_ferryHomeDate(me._houses.get_toDate());
            }
        };
    }
}

Sembo.Site.Accommodation.House.HousesAndTransportationSearch.registerClass("Sembo.Site.Accommodation.House.HousesAndTransportationSearch", Sys.UI.Control);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

