if(!$chk(HKM)) {
	var HKM = {};
}

if(!$defined(console)) {
	var console = {};

}

HKM.NewArrivalsController = new Class({

    options: {
        limit: 4
    },

    currentOffset: 0,

    totalProductCount: 0,

    productList: [],

    newArrivalsContainer: null,

    pages: {
        themePage: Class.empty,
        newArrivalsPage: Class.empty
    },

    initialize: function(newArrivalsContainer, options) {
        this.setOptions(options);
        this.newArrivalsContainer = $(newArrivalsContainer);

        var newArrivalsPageCandidates = $ES('.categorySliderPage', this.newArrivalsContainer);

        if (newArrivalsPageCandidates.length > 0) {
            naOptions = {
                onRequestNewProducts: this.loadData.bind(this),
                onChanged: this.showThemePageImage.bind(this)
            };
            this.pages.newArrivalsPage = new HKM.CategorySliderPage(newArrivalsPageCandidates[0], naOptions);
        }


//        var themePageCandidates = $ES('.themePage', this.newArrivalsContainer);

//        if (themePageCandidates.length > 0) {
//            this.pages.themePage = new HKM.ThemePage(themePageCandidates[0], naOptions);
//        }

        // Load the data
        if ($chk(HKM.newArrivalsInitialData)) {
            this.pages.newArrivalsPage.prepareReload();
            this.naRequestSuccess(HKM.newArrivalsInitialData);
        } else {
            this.loadData();
        }

    },

    showThemePageImage: function(data) {
        return;
        this.pages.themePage.prepareReload();
        this.pages.themePage.renderData(data);
    },

    loadData: function(limit, offset) {



        this.pages.newArrivalsPage.prepareReload();

        var naRequestOptions = {
            onData: this.naRequestSuccess.bindAsEventListener(this),
            onDataFailed: this.naRequestFailed.bindAsEventListener(this)
        };

        if ($defined(HKM.shopConfiguration) && $defined(HKM.shopConfiguration.catalogServiceURL)) {
            naRequestOptions.serviceURL = HKM.shopConfiguration.catalogServiceURL;
        }

        var naRequest = new HKM.NewArrivalsRequest(naRequestOptions);

        naRequest.load({
            request: "",
            limit: $chk(limit) ? limit : this.options.limit,
            offset: $chk(offset) ? offset : this.currentOffset
        });

    },

    naRequestSuccess: function(data) {
        this.totalProductCount = data.totalProductCount;
        this.pages.newArrivalsPage.renderData(data);
    },

    naRequestFailed: function(message) {

    }

});
HKM.NewArrivalsController.implement(new Options);
HKM.NewArrivalsController.implement(new Events);


HKM.newArrivalsVars = {
	sharedController: Class.empty
}

HKM.initializeNewArrivals = function() {
	
	var newArrivalsCandidates = $$('.hkmNewArrivalsShopContainer');
	if(newArrivalsCandidates.length > 0) {
		var options = {};
		HKM.newArrivalsVars.sharedController = new HKM.NewArrivalsController(newArrivalsCandidates[0], options);
	}
}

window.addEvent('domready', HKM.initializeNewArrivals);     