/**
 * Destination hitlist element
 *
 * model:
 *  {
 *      name: 'Avesta',
 *      link: '/travel/destination/97',
 *      province: 'Dalarna',                    // set only if needed
 *      privinceLink: '/travel/destination/5',
 *      keywords: [],
 *      morekeywords: "true",                   // set only if needed
 *      rating: 4,
 *      voters: 100
 *  }
 *
 */   

(function () {

    var ampPattern = /&amp;/g;
    var assets;

    TRAVEL.DestinationHitListElement = function (target) {

        var self;
        var root;
        var data;

        assets = TRAVEL.Assets.DestinationList;

        this.create = function (model) {

            data = model;

            var arr = [
                '<div class="item clearer">',
                    '<div class="item-wrapper">',
                        '<div class="item-body">',
                            '<div class="column-text">',
                                '<h2 class="item-name icons"><a href="', model.link, '">', model.name, '</a></h2>'];
            if (model.province) {
                arr.push(       '<div class="item-location">',
                                    '<a href="', model.provincelink, '">', model.province, '</a>',
                                '</div>');
            }
            arr.push(           '<div class="item-keywords">', '</div>',
                            '</div>',
                            '<div class="column">',
                                '<div class="panel">',
                                    '<ul class="item-other-links">',
                                        '<li class="products"><a href="', model.link, '#products"><span>', assets.productlink, '</span></a></li>',
                                        '<li class="producers"><a href="', model.link, '#producers"><span>', assets.producerlink, '</span></a></li>',
                                    '</ul>',
                                '</div>',
                                '<div class="item-rating readonly"></div>',
                            '</div>',
                        '</div>',
                    '</div>',
                    '<div class="item-image">',
                        '<a href="', model.link, '">',
                            '<img src="', model.picSrc, '" alt="', model.name, '" />',
                        '</a>',
                    '</div>',
                '</div>');

            var element = $(arr.join('')).get(0);

            var divBody = element.firstChild.firstChild;
            var divKeyword = $("div.item-keywords", divBody);
            var divRating = $("div.item-rating", divBody);

            if (model.desc) {
                $(divKeyword).html(TRAVEL.para(model.desc.replace(ampPattern, '&')));
            }

            $(divRating).starrating( { value: model.rating, voters: model.voters } );

            root.appendChild(element);
        };

        self = this;
        root = target;
    };

})();