﻿/// <reference name="MicrosoftAjax.js"/>

Type.registerNamespace("MXA.Website.Kaldenbroeck");

MXA.Website.Kaldenbroeck.CalendarItemTemplate = function (element) {

    MXA.Website.Kaldenbroeck.CalendarItemTemplate.initializeBase(this, [element]);
    this.addCssClass('CalendarItemTemplate');
    this._datasource = null;
    this._selectedIndex = 0;
    this._titleElement = document.createElement('div');
    this._titleElement.className = 'ctTitle';
    element.appendChild(this._titleElement);

    this._sloganElement = document.createElement('div');
    this._sloganElement.className = 'ctSlogan';
    element.appendChild(this._sloganElement);

    this._bodyElement = document.createElement('div');
    this._bodyElement.className = 'ctBody';
    element.appendChild(this._bodyElement);

    this._dateElement = document.createElement('div');
    this._dateElement.className = 'ctEventDate';
    element.appendChild(this._dateElement);

    this._timeElement = document.createElement('div');
    this._timeElement.className = 'ctEventTime';
    element.appendChild(this._timeElement);

}

MXA.Website.Kaldenbroeck.CalendarItemTemplate.prototype =
{

    initialize: function () {
        MXA.Website.Kaldenbroeck.CalendarItemTemplate.callBaseMethod(this, 'initialize');
    },

    dispose: function () {
        MXA.Website.Kaldenbroeck.CalendarItemTemplate.callBaseMethod(this, 'dispose');
    },

    show: function () {


    },

    databind: function () {
        var source = this._datasource[this._selectedIndex];
        var _this = this;
        if (source != null) {
            if (source.title != null) {
                _this._titleElement.innerHTML = source.title;
            } else {
                _this._titleElement.innerHTML = '';
            }

            if (source.slogan == null) {
                _this._sloganElement.innerHTML = '';
            }
            else {
                _this._sloganElement.innerHTML = source.slogan;
            }

            if (source.body != null) {
                _this._bodyElement.innerHTML = source.body;
            }
            else {
                _this._bodyElement.innerHTML = '';
            }
            _this._dateElement.innerHTML = String.format("{0}.{1}.{2}", source.year, source.month, source.day);
            _this._timeElement.innerHTML = String.format("{0} - {1}", source.start, source.end);
            Cufon.replace([_this._titleElement, _this._sloganElement, _this._bodyElement, _this._dateElement, _this._timeElement]);

        }
    },

    set_datasource: function (value) {
        this._datasource = value;
    },

    _onPrevious: function (evt) {
        if (this._selectedIndex == 0) {
            this._selectedIndex = (this._datasource.length - 1);
        }
        else {
            this._selectedIndex--;
        }
        this.databind();
        evt.stopPropagation();
        evt.preventDefault();
        return false;
    },

    _onNext: function (evt) {
        if (this._selectedIndex >= this._datasource.length - 1) {
            this._selectedIndex = 0;
        }
        else {
            this._selectedIndex++;
        }
        this.databind();
        evt.stopPropagation();
        evt.preventDefault();
        return false;
    }
}



MXA.Website.Kaldenbroeck.CalendarItemTemplate.registerClass('MXA.Website.Kaldenbroeck.CalendarItemTemplate', MXA.Website.Kaldenbroeck.LightboxTemplate);
