/**
 * Favorites management component
 *
 */

(function () {

    var assets;

    TRAVEL.FavoritesHitlist = function (target) {

        var self = TRAVEL.Observable2(this);
        var root = target;

        assets = TRAVEL.Assets.Favorites;

        this.create = function (model) {

            var i;
            var productElement, producerElement, destinationElement;
            var div;

            if (model.products) {
                div = document.createElement('div');
                div.id = 'products-hitlist';

                $(div).html('<h1 class="title>' + assets.favproducts + '</h1>');

                for (i = 0; i < model.products.length; i++) {
                    productElement = new TRAVEL.ProductHitListElement(div);
                    productElement.create(model.products[i]);
                }

                $(root).append(div);
            }

            if (model.producers) {
                div = document.createElement('div');
                div.id = 'producers-hitlist';

                $(div).html('<h1 class="title>' + assets.favproducers + '</h1>');

                for (i = 0; i < model.producers.length; i++) {
                    producerElement = new TRAVEL.ProducerHitListElement(div);
                    producerElement.create(model.producers[i]);
                }

                $(root).append(div);
            }

            if (model.destinations) {
                div = document.createElement('div');
                div.id = 'destinations-hitlist';

                $(div).html('<h1 class="title>' + assets.favdestinations + '</h1>');

                for (i = 0; i < model.destinations.length; i++) {
                    destinationElement = new TRAVEL.DestinationHitListElement(div);
                    destinationElement.create(model.destinations[i]);
                }

                $(root).append(div);
            }

            if (!model.products && !model.producers && !model.destinations) {
                $(root).append('<h1 class="title">' + assets.title + '</h1><p>' + assets.nofavorites + '</p>');
            }
            
            self.attachObserver('refreshList', function (m) {
                $(root).empty();
                self.create(m);
            });
        };

    };

})();