// JKPropertiesJS.js
//


Type.registerNamespace('JKPropertiesJS.Controllers');

////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.AddOrRemoveToBasket

JKPropertiesJS.Controllers.AddOrRemoveToBasket = function JKPropertiesJS_Controllers_AddOrRemoveToBasket(parameters) {
    /// <param name="parameters" type="JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters">
    /// </param>
    /// <field name="_parameters" type="JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters">
    /// </field>
    /// <field name="_statusAddToBasket" type="Boolean">
    /// </field>
    /// <field name="_aButton" type="js.com.cs.v4.Controls.Common.MyAnchorElement">
    /// </field>
    /// <field name="_xhrAddOrRemoveFromBasket" type="js.com.cs.v4.Classes.XHR.XHRGetJSONRequest">
    /// </field>
    this._parameters = parameters;
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.AddOrRemoveToBasket.prototype = {
    _parameters: null,
    _statusAddToBasket: false,
    _aButton: null,
    _xhrAddOrRemoveFromBasket: null,
    
    _initControl: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_initControl() {
        this._statusAddToBasket = !this._parameters.alreadyInBasket;
        this._aButton = new js.com.cs.v4.Controls.Common.MyAnchorElement(this._parameters.buttonID);
        this._aButton.add_onClick(ss.Delegate.create(this, this._aButton_OnClick));
    },
    
    _aButton_OnClick: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_aButton_OnClick(elem, e) {
        /// <param name="elem" type="js.com.cs.v4.Controls.Common.MyElement">
        /// </param>
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._toggle();
        e.preventDefault();
    },
    
    _showAddToBasket: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_showAddToBasket() {
        this._statusAddToBasket = true;
        this._aButton.set_innerHTML('Add to basket');
        this._updateCSS(true);
    },
    
    _destroyXHR: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_destroyXHR() {
        if (this._xhrAddOrRemoveFromBasket != null) {
            this._xhrAddOrRemoveFromBasket.destroy();
            this._xhrAddOrRemoveFromBasket = null;
        }
    },
    
    _submitXHR: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_submitXHR(addToBasket) {
        /// <param name="addToBasket" type="Boolean">
        /// </param>
        this._destroyXHR();
        this._xhrAddOrRemoveFromBasket = new js.com.cs.v4.Classes.XHR.XHRGetJSONRequest();
        this._xhrAddOrRemoveFromBasket.add_onDataLoaded(ss.Delegate.create(this, this._xhrAddOrRemoveFromBasket_OnDataLoaded));
        var parameters = {};
        parameters['id'] = this._parameters.propertyID;
        parameters['add'] = addToBasket.toString().toLowerCase();
        this._xhrAddOrRemoveFromBasket.getJSON('/ajax/addOrRemoveFromBasket.ashx', parameters);
    },
    
    _xhrAddOrRemoveFromBasket_OnDataLoaded: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_xhrAddOrRemoveFromBasket_OnDataLoaded(request, data, status) {
        /// <param name="request" type="js.com.cs.v4.Classes.XHR.XHRGetJSONRequest">
        /// </param>
        /// <param name="data" type="Object">
        /// </param>
        /// <param name="status" type="js.com.cs.v4.Classes.XHR.XHR_REQUEST_STATUS">
        /// </param>
        if (status !== js.com.cs.v4.Classes.XHR.XHR_REQUEST_STATUS.success) {
            alert('Error encountered adding property to basket.  Please retry.  If problem persists, contact administration.');
        }
        else {
            var response = data['data'];
            JKPropertiesJS.Controllers.BasketStatusController.get_instance().updateBasket(response);
        }
    },
    
    _updateCSS: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_updateCSS(add) {
        /// <param name="add" type="Boolean">
        /// </param>
        this._aButton.toggle2CssClasses('add-to-basket', 'submit-wishlist', add);
    },
    
    _addToBasket: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_addToBasket() {
        this._submitXHR(true);
        this._showRemoveFromBasket();
    },
    
    _removeFromBasket: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_removeFromBasket() {
        if (this._parameters.viewingInBasket) {
            if (this._parameters.onRemoveRemoveElementID == null || confirm('Are you sure you want to remove this item from your wishlist?')) {
                this._submitXHR(false);
                this._showAddToBasket();
                if (this._parameters.onRemoveRemoveElementID != null) {
                    this._removeItemFromDOM();
                    this._fixBasketAmountValue();
                }
            }
        }
        else {
            js.com.cs.v4.Util.WindowUtil.changeLocation(this._parameters.basketURL);
        }
    },
    
    _fixBasketAmountValue: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_fixBasketAmountValue() {
        var spanValue = js.com.JQueryScriptSharpV2.jQueryUtil.select('span.span-basket-count', document.body);
        var value = parseInt(spanValue.text());
        if (value > 0) {
            spanValue.text((value - 1).toString());
        }
    },
    
    _removeItemFromDOM: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_removeItemFromDOM() {
        js.com.JQueryScriptSharpV2.jQueryUtil.selectById(this._parameters.onRemoveRemoveElementID).slideUp(500);
    },
    
    _showRemoveFromBasket: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_showRemoveFromBasket() {
        this._statusAddToBasket = false;
        this._aButton.set_innerHTML('Submit Wishlist');
        this._updateCSS(false);
    },
    
    _toggle: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_toggle() {
        if (!this._parameters.viewingInBasket) {
            if (this._statusAddToBasket) {
                this._addToBasket();
            }
            else {
                this._removeFromBasket();
            }
        }
        else {
            this._removeFromBasket();
        }
    },
    
    _init: function JKPropertiesJS_Controllers_AddOrRemoveToBasket$_init() {
        this._initControl();
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters

JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters = function JKPropertiesJS_Controllers_AddOrRemoveToBasketParameters() {
    /// <field name="buttonID" type="String">
    /// </field>
    /// <field name="propertyID" type="Number" integer="true">
    /// </field>
    /// <field name="alreadyInBasket" type="Boolean">
    /// </field>
    /// <field name="onRemoveRemoveElementID" type="String">
    /// </field>
    /// <field name="viewingInBasket" type="Boolean">
    /// </field>
    /// <field name="basketURL" type="String">
    /// </field>
}
JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters.prototype = {
    buttonID: null,
    propertyID: 0,
    alreadyInBasket: false,
    onRemoveRemoveElementID: null,
    viewingInBasket: false,
    basketURL: null
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse

JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse = function JKPropertiesJS_Controllers_AddOrRemoveToBasketResponse() {
    /// <field name="amtInBasket" type="Number" integer="true">
    /// </field>
}
JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse.prototype = {
    amtInBasket: 0
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.BasketStatusController

JKPropertiesJS.Controllers.BasketStatusController = function JKPropertiesJS_Controllers_BasketStatusController() {
    /// <field name="_elemBasket" type="js.com.cs.v4.Controls.Common.MyElement">
    /// </field>
    /// <field name="_INSTANCE" type="JKPropertiesJS.Controllers.BasketStatusController" static="true">
    /// </field>
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.BasketStatusController.get_instance = function JKPropertiesJS_Controllers_BasketStatusController$get_instance() {
    /// <value type="JKPropertiesJS.Controllers.BasketStatusController"></value>
    if (JKPropertiesJS.Controllers.BasketStatusController._INSTANCE == null) {
        JKPropertiesJS.Controllers.BasketStatusController._INSTANCE = new JKPropertiesJS.Controllers.BasketStatusController();
    }
    return JKPropertiesJS.Controllers.BasketStatusController._INSTANCE;
}
JKPropertiesJS.Controllers.BasketStatusController.prototype = {
    _elemBasket: null,
    
    _initControl: function JKPropertiesJS_Controllers_BasketStatusController$_initControl() {
        this._elemBasket = new js.com.cs.v4.Controls.Common.MyElement(js.com.JQueryScriptSharpV2.jQueryUtil.select('.basket'));
    },
    
    _init: function JKPropertiesJS_Controllers_BasketStatusController$_init() {
        this._initControl();
    },
    
    updateBasket: function JKPropertiesJS_Controllers_BasketStatusController$updateBasket(response) {
        /// <param name="response" type="JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse">
        /// </param>
        this._elemBasket.set_innerHTML(response.amtInBasket + ' ' + ((response.amtInBasket === 1) ? 'property' : 'properties') + ' in basket');
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.GotAnEnquiryButton

JKPropertiesJS.Controllers.GotAnEnquiryButton = function JKPropertiesJS_Controllers_GotAnEnquiryButton(parameters) {
    /// <param name="parameters" type="JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters">
    /// </param>
    /// <field name="_parameters" type="JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters">
    /// </field>
    /// <field name="_aGotAnEnquiry" type="js.com.cs.v4.Controls.Common.MyAnchorElement">
    /// </field>
    /// <field name="_divEnquiry" type="js.com.cs.v4.Controls.Common.MyDivElement">
    /// </field>
    this._parameters = parameters;
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.GotAnEnquiryButton.prototype = {
    _parameters: null,
    _aGotAnEnquiry: null,
    _divEnquiry: null,
    
    _initControls: function JKPropertiesJS_Controllers_GotAnEnquiryButton$_initControls() {
        this._aGotAnEnquiry = new js.com.cs.v4.Controls.Common.MyAnchorElement(this._parameters.buttonID);
        this._divEnquiry = new js.com.cs.v4.Controls.Common.MyDivElement(this._parameters.divID);
        this._divEnquiry.get_jQueryElement().slideUp(0);
        this._aGotAnEnquiry.add_onClick(ss.Delegate.create(this, this._aGotAnEnquiry_OnClick));
    },
    
    _aGotAnEnquiry_OnClick: function JKPropertiesJS_Controllers_GotAnEnquiryButton$_aGotAnEnquiry_OnClick(elem, e) {
        /// <param name="elem" type="js.com.cs.v4.Controls.Common.MyElement">
        /// </param>
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._divEnquiry.get_jQueryElement().slideDown(500);
        this._aGotAnEnquiry.get_jQueryElement().fadeOut(500);
        this._aGotAnEnquiry.remove_onClick(ss.Delegate.create(this, this._aGotAnEnquiry_OnClick));
        e.preventDefault();
        js.com.JQueryScriptSharpV2.jQueryUtil.select('input', this._divEnquiry.get_element()).eq(0).focus();
    },
    
    _init: function JKPropertiesJS_Controllers_GotAnEnquiryButton$_init() {
        this._initControls();
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters

JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters = function JKPropertiesJS_Controllers_GotAnEnquiryButtonParameters() {
    /// <field name="buttonID" type="String">
    /// </field>
    /// <field name="divID" type="String">
    /// </field>
}
JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters.prototype = {
    buttonID: null,
    divID: null
}


Type.registerNamespace('JKPropertiesJS.Controllers.ChooseProperty');

////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBar

JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBar = function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBar(parameters) {
    /// <param name="parameters" type="JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters">
    /// </param>
    /// <field name="_parameters" type="JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters">
    /// </field>
    this._parameters = parameters;
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBar.prototype = {
    _parameters: null,
    
    _initSections: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBar$_initSections() {
        for (var i = 0; i < this._parameters.aLinksIDs.length; i++) {
            var aLink = js.com.JQueryScriptSharpV2.jQueryUtil.selectById(this._parameters.aLinksIDs[i]);
            var divLinks = js.com.JQueryScriptSharpV2.jQueryUtil.selectById(this._parameters.divLinksIDs[i]);
            var sp = new JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters();
            sp.aLink = new js.com.cs.v4.Controls.Common.MyAnchorElement(aLink);
            sp.divLinks = new js.com.cs.v4.Controls.Common.MyDivElement(divLinks);
            new JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection(sp);
        }
    },
    
    _init: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBar$_init() {
        this._initSections();
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters

JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters = function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarParameters() {
    /// <field name="aLinksIDs" type="Array" elementType="String">
    /// </field>
    /// <field name="divLinksIDs" type="Array" elementType="String">
    /// </field>
}
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters.prototype = {
    aLinksIDs: null,
    divLinksIDs: null
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection

JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection = function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection(parameters) {
    /// <param name="parameters" type="JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters">
    /// </param>
    /// <field name="_callHide" type="js.com.cs.v4.Time.DelayedCall">
    /// </field>
    /// <field name="_callShow" type="js.com.cs.v4.Time.DelayedCall">
    /// </field>
    /// <field name="_parameters" type="JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters">
    /// </field>
    this._parameters = parameters;
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection.prototype = {
    _callHide: null,
    _callShow: null,
    _parameters: null,
    
    _hideSection: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_hideSection() {
        this._parameters.divLinks.get_jQueryElement().hide();
    },
    
    _initHandlers: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_initHandlers() {
        this._parameters.aLink.add_onMouseEnter(ss.Delegate.create(this, this._aLink_onMouseEnter));
        this._parameters.aLink.add_onMouseLeave(ss.Delegate.create(this, this._aLink_onMouseLeave));
        this._parameters.divLinks.add_onMouseEnter(ss.Delegate.create(this, this._divLinks_onMouseEnter));
        this._parameters.divLinks.add_onMouseLeave(ss.Delegate.create(this, this._divLinks_onMouseLeave));
        this._callHide = new js.com.cs.v4.Time.DelayedCall(ss.Delegate.create(this, this._fadeOut), 500);
        this._callShow = new js.com.cs.v4.Time.DelayedCall(ss.Delegate.create(this, this._fadeIn), 500);
    },
    
    _divLinks_onMouseLeave: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_divLinks_onMouseLeave(e) {
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._callHide.invoke();
    },
    
    _divLinks_onMouseEnter: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_divLinks_onMouseEnter(e) {
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._stopCall();
    },
    
    _aLink_onMouseLeave: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_aLink_onMouseLeave(e) {
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._stopCall();
        this._callHide.invoke();
    },
    
    _fadeOut: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_fadeOut() {
        this._parameters.divLinks.get_jQueryElement().fadeOut(250);
    },
    
    _fadeIn: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_fadeIn() {
        this._parameters.divLinks.get_jQueryElement().fadeIn(250);
    },
    
    _stopCall: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_stopCall() {
        if (this._callHide != null) {
            this._callHide.cancel();
        }
        if (this._callShow != null) {
            this._callShow.cancel();
        }
    },
    
    _aLink_onMouseEnter: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_aLink_onMouseEnter(e) {
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._stopCall();
        this._callShow.invoke();
    },
    
    _init: function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSection$_init() {
        this._hideSection();
        this._initHandlers();
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters

JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters = function JKPropertiesJS_Controllers_ChooseProperty_ChoosePropertyBarSectionParameters() {
    /// <field name="divLinks" type="js.com.cs.v4.Controls.Common.MyDivElement">
    /// </field>
    /// <field name="aLink" type="js.com.cs.v4.Controls.Common.MyAnchorElement">
    /// </field>
}
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters.prototype = {
    divLinks: null,
    aLink: null
}


Type.registerNamespace('JKPropertiesJS.Controllers.QuickSearchHoliday');

////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHoliday

JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHoliday = function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHoliday(parameters) {
    /// <param name="parameters" type="JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters">
    /// </param>
    /// <field name="_cmbType" type="js.com.cs.v4.Controls.Form.MyDropDownList">
    /// </field>
    /// <field name="_elemStars" type="js.com.cs.v4.Controls.Common.MyElement">
    /// </field>
    /// <field name="_parameters" type="JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters">
    /// </field>
    this._parameters = parameters;
    js.com.JQueryScriptSharpV2.jQueryUtil.addOnReadyCallback(ss.Delegate.create(this, this._init));
}
JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHoliday.prototype = {
    _cmbType: null,
    _elemStars: null,
    _parameters: null,
    
    _initControls: function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHoliday$_initControls() {
        var jCmbType = js.com.JQueryScriptSharpV2.jQueryUtil.selectById(this._parameters.cmbTypeID);
        var jStars = js.com.JQueryScriptSharpV2.jQueryUtil.selectById(this._parameters.starRatingElemID);
        if (jCmbType.length > 0 && jStars.length > 0) {
            this._cmbType = new js.com.cs.v4.Controls.Form.MyDropDownList(jCmbType);
            this._elemStars = new js.com.cs.v4.Controls.Common.MyElement(jStars);
            this._cmbType.add_onChangeEvenWithKeys(ss.Delegate.create(this, this._cmbType_OnChangeEvenWithKeys));
        }
        this._update();
    },
    
    _cmbType_OnChangeEvenWithKeys: function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHoliday$_cmbType_OnChangeEvenWithKeys(e) {
        /// <param name="e" type="js.com.JQueryScriptSharpV2.JQueryEvent">
        /// </param>
        this._update();
    },
    
    _update: function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHoliday$_update() {
        if (this._cmbType.get_value() === this._parameters.hotelTypeID) {
            this._elemStars.show();
        }
        else {
            this._elemStars.hide();
        }
    },
    
    _init: function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHoliday$_init() {
        this._initControls();
    }
}


////////////////////////////////////////////////////////////////////////////////
// JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters

JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters = function JKPropertiesJS_Controllers_QuickSearchHoliday_QuickSearchHolidayParameters() {
    /// <field name="cmbTypeID" type="String">
    /// </field>
    /// <field name="hotelTypeID" type="String">
    /// </field>
    /// <field name="starRatingElemID" type="String">
    /// </field>
}
JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters.prototype = {
    cmbTypeID: null,
    hotelTypeID: null,
    starRatingElemID: null
}


JKPropertiesJS.Controllers.AddOrRemoveToBasket.registerClass('JKPropertiesJS.Controllers.AddOrRemoveToBasket');
JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters.registerClass('JKPropertiesJS.Controllers.AddOrRemoveToBasketParameters');
JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse.registerClass('JKPropertiesJS.Controllers.AddOrRemoveToBasketResponse');
JKPropertiesJS.Controllers.BasketStatusController.registerClass('JKPropertiesJS.Controllers.BasketStatusController');
JKPropertiesJS.Controllers.GotAnEnquiryButton.registerClass('JKPropertiesJS.Controllers.GotAnEnquiryButton');
JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters.registerClass('JKPropertiesJS.Controllers.GotAnEnquiryButtonParameters');
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBar.registerClass('JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBar');
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters.registerClass('JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarParameters');
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection.registerClass('JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSection');
JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters.registerClass('JKPropertiesJS.Controllers.ChooseProperty.ChoosePropertyBarSectionParameters');
JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHoliday.registerClass('JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHoliday');
JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters.registerClass('JKPropertiesJS.Controllers.QuickSearchHoliday.QuickSearchHolidayParameters');
JKPropertiesJS.Controllers.BasketStatusController._INSTANCE = null;

