﻿var calclick = Class.create();
calclick.prototype = {

    currentCalclick: null,
    effects: [],

    initialize: function(container, options) {
        if (!$(container)) {
            throw (container + " doesn't exist!");
            return false;
        }
        this.options = Object.extend({
            classNames: {
                has_event: 'day_has_event',
                has_event_wknd: 'day_has_event_wknd',
                active: 'day_active',
                today: 'day_today',
                off: 'day_off',
                BF: 'BF'
            },
            onEvent: 'click',
            startcolor: '#ffff99',
            onActivate: null,
            RepeatActivate: {}
        }, options || {});
        //alert('Need to wait utill document has loaded the enta extentions...');
        this.AlreadyActivated = [];
        // Click event for today with events
        var calclicks = $$('#' + container + ' .' + this.options.classNames.today);
        calclicks.each(function(calclick) {
            Event.observe(calclick, this.options.onEvent, this.dateclick.bind(this, calclick), false);
            if (this.options.onEvent == 'click') {
                calclick.onclick = function() { return false; };
            }
        } .bind(this));

        // Click event for weekdays with events
        var calclicks = $$('#' + container + ' .' + this.options.classNames.has_event);
        calclicks.each(function(calclick) {
            Event.observe(calclick, this.options.onEvent, this.dateclick.bind(this, calclick), false);
            if (this.options.onEvent == 'click') {
                calclick.onclick = function() { return false; };
            }
        } .bind(this));

        // Click event for weekend dates with events
        calclicks = $$('#' + container + ' .' + this.options.classNames.has_event_wknd);
        calclicks.each(function(calclick) {
            Event.observe(calclick, this.options.onEvent, this.dateclick.bind(this, calclick), false);
            if (this.options.onEvent == 'click') {
                calclick.onclick = function() { return false; };
            }
        } .bind(this));

        // Click event for next/prev. month
        calclicks = $$('#' + container + ' .' + this.options.classNames.BF);
        calclicks.each(function(calclick) {
            Event.observe(calclick, this.options.onEvent, this.nextmonthclick.bind(this, calclick), false);
            if (this.options.onEvent == 'click') {
                calclick.onclick = function() { return false; };
            }
        } .bind(this));
    },
    dateclick: function(calcklick) {
        //new Ajax.Request('http://www.malmostadsteater.se/Transport.php?url=http://nettbillett.billettportalen.no/mst/SHOWCALENDARPERFS.ASPX&method=get&fromdate=' + calcklick.id, {
        new Ajax.Request('http://www.malmostadsteater.se/Transport.php?url=http://boka.malmostadsteater.se/mst/SHOWCALENDARPERFS.ASPX&method=get&fromdate=' + calcklick.id, {

            onSuccess: function(resp) {
                $('show_result').replace('<div id="show_result">' + resp.responseText.replace('ï»¿','') + '</div>');
            },
            onFailure: function(resp) {
                //What to show, if the ajax request fails?
                $('show_result').replace('<div id="show_result"><h1>' + calcklick.id + '</h1></div>');
            },
            parameters: 'fromdate=' + calcklick.id
        });

        // Toggle highlighted dates back to original style, as we wish only one click to be highlighted.
        var calclicks = $$('#entaMooCalendar .day_active');
        calclicks.each(function(acalclick) {
            acalclick.toggleClassName("day_active");
        } .bind(this));

        // Highlight the clicked date
        calcklick.toggleClassName("day_active");

    },
    nextmonthclick: function(calcklick) {
        var acal;
        //new Ajax.Request('http://www.malmostadsteater.se/Transport.php?url=http://nettbillett.billettportalen.no/mst/bpCalendar.aspx&method=get&fromdate=' + calcklick.id, {
        new Ajax.Request('http://www.malmostadsteater.se/Transport.php?url=http://boka.malmostadsteater.se/mst/bpCalendar.aspx&method=get&fromdate=' + calcklick.id, {
            onSuccess: function(resp) {
                $('entaMooCalendar').innerHTML = resp.responseText.replace('ï»¿','');
                acal = new calclick('entaMooCalendar');
            },
            onFailure: function(resp) {
                //What to show, if the ajax request fails?
                $('entaMooCalendar').innerHTML = '<h1>' + calcklick.id + '</h1>';
            },
            parameters: 'fromdate=' + calcklick.id
        })

        //alert('Need to wait till document has loaded extentions...');
        //Event.observe(window, 'load', function() {var acal; acal = new calclick('entaMooCalendar');}, false);
        // Highlight the clicked date
        //calcklick.toggleClassName("day_active");

    }
}
