﻿/// <reference path="../jquery-1.4.2-vsdoc.js" />
/*
$.CufonIDCount = 0;

var initCufon = function (context) {
    if (context !== undefined) {
        if (context instanceof jQuery) { // if context is a jQuery object (a set of elements)
            var id = context.attr('id');

            if ($.trim(context.attr('id')) == '') {
                var autoID = 'AutoCufonID_' + (++$.CufonIDCount);
                id = context.attr('id', autoID);
            }
            context = '#' + id;
        }
        Cufon.replace(context + ' .cufon');
        Cufon.replace(context + ' .cufonHover', { 'hover': true });
    } else {
        // Page load
        Cufon.replace('#M04 .menyRePlace', { 'hover': true });
    }
};


initCufon();



$(function () { // No modules here!
    $('.temp-value').focus(function () {
        if (this.value == this.defaultValue)
            this.value = '';
    }).blur(function () {
        if ($.trim(this.value) == '')
            this.value = this.defaultValue;
    });
});

// +++ MODULES - Name convention: Mxxx

var M001 = function () {
    
};

// --- MODULES

// +++ TEMPLATES - Name convention: Txx

var T01 = function () {
    M001();
};

*/

// --- TEMPLATES

var setAnalyticsClick = function (category, id) {
    _gaq.push(['_trackEvent', 'Click', category, id]);
}

// --- IMAGE VIEWER
var imageviewer = function () {
    $("#image-viewer-menu-container").prepend('<span></span><div id="image-viewer-menu-bg"></div><div id="image-viewer-menu-slider"></div>');
    var slider = $("#image-viewer-menu-slider"), currentImage = $("#image-viewer-content .imageContainer:first-child");
    $("#image-viewer-content .imageContainer").hide();
    currentImage.show();
    slider.append("<div id='image-viewer-menu-slider-left'></div><div id='image-viewer-menu-slider-right'></div>");
    slider.css("width", ($("#image-viewer-menu li a:first-child").width() + 50) + "px");
    $("#image-viewer-menu li a").click(function () {
        var that = $(this);
        slideTo(that);
        fadeImage($(that.attr("href")));
        return false;
    });

    var slideTo = function (element) {
        var prop = {};
        prop.left = element.position().left;
        prop.width = element.width() + 50;
        var opt = {};
        opt.duration = 1000;
        slider.clearQueue();
        slider.animate(prop, opt);

    };
    var fadeImage = function (element) {
        var newimage = element;
        newimage.fadeIn(1000);
        currentImage.fadeOut(1000);
        currentImage = newimage;
    };
    var startHref = $("#image-viewer-menu li:first-child a").attr("href");
};


// --- CALENDAR
var calendar = function () {
    var caldata = {};
    caldata.calenderID = $("#calendarId").attr("value");
    caldata.year = parseInt($("#year").attr("value"));
    caldata.month = parseInt($("#month").attr("value"));
    var calendarContent = $("#calendar tbody"), defaultHTML = '<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>',
    tooltip,
    tooltime;
    var drawCalendar = function (data) {
        var ii = 0, n = data.daysWithEvents.length, events = [], monthName = $("#month-name")[0];
        while (ii < n) {
            events[ii] = data.daysWithEvents[ii].ID;
            ii += 1;
        }
        var startday = parseInt(data.startDay), prevdays = parseInt(data.daysInPrevMonth), curDays = parseInt(data.daysInMonth);
        calendarContent.find("td").each(function (index) {
            var date, i = index + 1, active = true, hasEvent = false, that = $(this), html = "";
            if (i < startday) {
                //Last month
                active = false;
                date = prevdays - startday + i + 1;
            }
            else if (i >= startday && i < curDays + startday) {
                //Current month
                date = i - startday + 1;
                if ($.inArray(date, events) > -1) {
                    that.addClass("event");
                    var j = 0, nn = data.daysWithEvents[$.inArray(date, events)].events.length;
                    html += '<span class="events"><ul>';
                    while (j < nn) {
                        html += '<li><a title="' + data.daysWithEvents[$.inArray(date, events)].events[j].Title + '" href="' + data.daysWithEvents[$.inArray(date, events)].events[j].Url + '">' + data.daysWithEvents[$.inArray(date, events)].events[j].Time + ' ' + data.daysWithEvents[$.inArray(date, events)].events[j].Title + '</a></li>';
                        j++;
                    }
                    html += '</ul></span>';
                }
            }
            else {
                //Next month
                date = i - startday - curDays + 1;
                active = false;
            }
            if (active === false) {
                that.addClass("inactive");
            }
            html += date;
            that.html(html);
        });
        monthName.innerHTML = data.currentMonth + " " + caldata.year;
        $(".event").hover(function () {
            tooltip.find("#calendar-tooltip-middle").html($(this).find(".events")[0].innerHTML);
            $("#calendar-tooltip-middle li a").click(function () {
                setAnalyticsClick("Kalender-klick", $(this).attr("title"));
                location.href = $(this).attr("href");
                return false;
            });
            tooltip.css("left", $(this).offset().left + ($(this).width() / 2 - tooltip.width() / 2) + "px").css("top", $(this).offset().top - tooltip.height() + "px");
            tooltip.show();
        });
        calendarContent.find("td").not(".inactive").hover(function () { $(this).addClass("hover"); }, function () { $(this).removeClass("hover"); });
        $("#calendar-wrapper").find("td,th,div").not(".event").hover(function () { tooltip.hide(); });

    };
    var changeMonth = function () {
        calendarContent.html(defaultHTML);
        if (tooltip != undefined) { tooltip.hide(); }
        $.ajax({
            url: '/Assets/Services/CalenderService.asmx/GetEvents',
            //url: '/Assets/JS/json/calendardata2.js',
            cache: false,
            data: caldata,
            dataType: 'json',
            success: function (data) {
                drawCalendar(data);
            }
        });
    };
    changeMonth();
    $("#prev-month-btn").click(function () { if (caldata.month != 1) { caldata.month -= 1; } else { caldata.month = 12; caldata.year -= 1; } changeMonth(); return false; });
    $("#next-month-btn").click(function () { if (caldata.month != 12) { caldata.month += 1; } else { caldata.month = 1; caldata.year += 1; } changeMonth(); return false; });

    var initTooltip = function () {
        var html = '<div id="calendar-tooltip-wrapper"><div id="calendar-tooltip-top" class="part"></div><div id="calendar-tooltip-middle" class="part"></div><div id="calendar-tooltip-bottom" class="part"></div></div>';
        $("body").append(html);
        tooltip = $("#calendar-tooltip-wrapper");
    };
    initTooltip();
};


var videoslideshow = function () {
    var nextBtn = $("#nextBtn"),
        prevBtn = $("#prevBtn"),
        items = $(".video-item"),
        activeItemIndex = 0,
        activeItemId = $(items[0]).attr("id"),
        activeItem,
        scrollable = $("#scrollable"),
        thumbnails = $(".thumbnail a");

    nextBtn.click(function () {
        animateTo($(items[activeItemIndex + 1]));
    });
    prevBtn.click(function () {
        //activeItemIndex--;
        animateTo($(items[activeItemIndex - 1]));
    });

    var animateTo = function (item) {
        var leftPos = item.position().left;
        scrollable.animate({ "left": -leftPos + 5 }, { duration: 500, queue: false });
        activeItemId = item.attr("id");
        activeItemIndex = jQuery.inArray(item[0], items);
        activeItem = item[0];
        setActiveThumb();
        updateArrows();
    };

    var updateArrows = function () {
        if (activeItemIndex === 0) {
            prevBtn.hide();
        }
        else {
            prevBtn.show();
        }


        if (activeItemIndex === items.length - 1) {
            nextBtn.hide();
        }
        else {
            nextBtn.show();
        }
    };
    updateArrows();

    var setActiveThumb = function () {
        var oldActiveImg = $(".thumbnail.active a img");
        oldActiveImg.animate({ "top": 0 }, { "duration": 200, complete: function () { oldActiveImg.parent().parent().removeClass("active"); } });
        var activeImg = $("a[href=#" + activeItemId + "] img");
        activeImg.animate({ "top": -7 }, { "duration": 200, complete: function () {
            //thumbnails.parent().removeClass("active");
            activeImg.parent().parent().addClass("active");
            //$(thumbnails[activeItemIndex]).parent().addClass("active");
        }
        });
    };

    thumbnails.click(function () {
        var that = $(this);
        animateTo($(that.attr("href")), that);
        /*var activeImg = $(".thumbnail.active a img");
        activeImg.animate({ "top": 0 }, { "duration": 200, complete: function () {

        }
        });*/
        return false;
    });

    thumbnails.hover(function () {
        /*var tn = $(this).find("img");
        var link = $(this);
        if (!link.parent().hasClass("active")) {
        tn.animate({ "top": -7 }, 200, function () {

        });
        }*/
    }, function () {
        /*var tn = $(this).find("img");
        var link = $(this);
        if (!link.parent().hasClass("active")) {
        tn.animate({ "top": 0 }, 200, function () {
        tn.attr("style", "");
        });
        }*/
    });
};
