Source: components/Carousel/Template.js

// Copyright 2012 Tart. All Rights Reserved.
//
// @author Firat Yalavuz firat.yalavuz@tart.com.tr

/**
 * @fileoverview tart.components.Carousel.Template is a base class for all carousel Template's.
 */

goog.provide('tart.components.Carousel.Template');



/**
 * @constructor
 */
tart.components.Carousel.Template = function() {
    this.properties = {
        CAROUSEL_WIDTH: this.carouselWidth
    };

    this.domMappings = {
        NAVIGATION: '.navigation',
        PREV: '.navigation.prev',
        NEXT: '.navigation.next',
        ITEMS: '.contents',
        PAGER: '.pager',
        PAGER_ITEMS: '.pagerItems',
        PAGER_ITEM: 'span'
    };
};


/**
 * Header
 *
 * @return {string} header markup.
 */
tart.components.Carousel.Template.prototype.header = function() {
    return '';
};

tart.components.Carousel.Template.prototype.carouselWidth = 780;

/**
 * Footer
 *
 * @return {string} footer markup.
 */
tart.components.Carousel.Template.prototype.footer = function() {
    return '<div class="pager rounded">' +
				'<div class="pagerItems"></div>' +
           '</div>';
};


/**
 * Base markup for carousel
 *
 * @return {string} base markup.
 */
tart.components.Carousel.Template.prototype.base = function() {
	return '<div class="carousel loading">' +
				this.header() +
            	'<span class="navigation next" title="next"></span>' +
            	'<span class="navigation prev" title="previous"></span>' +
            	'<div class="contentsWrapper">' +
               		'<div class="contents"></div>' +
           		'</div>' +
           		this.footer() +
			'</div>';
};


/**
 * Markup for carousel group
 *
 * @param {Array.<*>} itemArray carousel items.
 * @return {(Node)} base markup.
 */
tart.components.Carousel.Template.prototype.carouselItems = goog.abstractMethod;


/**
 *
 * @param {number} pageNum is number of selected page.
 * @param {boolean} selected class.
 * @return {string} markup.
 */
tart.components.Carousel.Template.prototype.pagerItem = function(pageNum, selected) {
    var selectedClass = selected ? 'selected' : '';
    return '<span class="' + selectedClass + '" title="' + pageNum + ' "></span>';
};


/**
 * @return {string}
 */
tart.components.Carousel.Template.prototype.noResults = function() {
	return '';
};