﻿/// <reference path="../jquery-1.4.2.min.js" />

var containerCount = 0;
var object;
var prices;
var times;
var startPositionPrice;
var startPositionTime;

(function ($) {
    $.fn.timeBar = function (params) {

        object = $(this);

        prices = object.prev(".timebarPrices");
        times = object.next(".timebarTimes");

        containerCount++;
        
        if (params.bar1 != null && params.bar1.price != "" && params.bar1.color != "")
        {
            modifyTimeBar(20, parseInt(params.bar1.endtime), params.bar1);
            displayPrice(params.bar1.number - 1, params.bar1);
            displayTime(params.bar1.number - 1);
        }

        if (params.bar2 != null && params.bar2.price != "" && params.bar2.color != "")
        {
            modifyTimeBar(parseInt(params.bar1.endtime) + 1, parseInt(params.bar2.endtime), params.bar2);
            displayPrice(params.bar2.number - 1, params.bar2);      
            displayTime(params.bar2.number - 1);      
        }

        if (params.bar3 != null && params.bar3 != undefined && params.bar3.price != "" && params.bar3.color != "")
        {
            modifyTimeBar(parseInt(params.bar2.endtime) + 1, parseInt(params.bar3.endtime), params.bar3);
            displayPrice(params.bar3.number - 1, params.bar3);
            displayTime(params.bar3.number - 1);
        }

        var clearer = $("<div style='clear: both;' />")
        clearer.insertBefore(object);
    }

    var modifyTimeBar = function (start, length, bar) {

        var startValue = getTime(start);
        var stopValue = getTime(length);

        var price = $("<div class='timebarInfo' id='price_" + containerCount + "_" + bar.number + "' />");
        price.text(bar.price);

        var time = $("<div class='timebarInfo' id='time_" + containerCount + "_" + bar.number + "' />");
        time.text((start - 1) + " Uhr");

        for (var i = startValue; i <= stopValue; i++) { 

            var segment = object.find("div#timeBarSegment_" + i);
            segment.addClass("seamlessTimeBarSegment").css("background-color", bar.color);

            segment.css("padding-right", "1px");

            if (i == startValue) {
                startPositionPrice = segment.position().left - $("#price_" + containerCount + "_" + bar.number).width();
                startPositionTime = segment.position().left - $("#time_" + containerCount + "_" + bar.number).width();
            }

            if (i == stopValue) {
                segment.css("padding-right", "0px");
                segment.css("margin-right", "1px");
            }
        }

        price.appendTo(prices);        
        time.appendTo(times);
    }

    var displayPrice = function(index, bar) {
        $(prices.find("> *").get(index)).css("position", "absolute");
        $(prices.find("> *").get(index)).css("margin-top", "10px");
        $(prices.find("> *").get(index)).css("font-size", "14px");
        $(prices.find("> *").get(index)).css("color", bar.color);
        $(prices.find("> *").get(index)).css("left", startPositionPrice);
    }

    var displayTime = function(index) {
        $(times.find("> *").get(index)).css("position", "absolute");
        $(times.find("> *").get(index)).css("margin-top", "5px");
        $(times.find("> *").get(index)).css("font-size", "12px");
        $(times.find("> *").get(index)).css("color", "#000");
        $(times.find("> *").get(index)).css("left", startPositionTime);
    }

    var getTime = function (value) {
        if (value < 19) {
            return 24 + value;
        }
        return value;
    }
})(jQuery);
