<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.js" type="text/javascript"></script>
    <link rel="stylesheet" href="<?php echo $this->css?>" type="text/css">
    <script src="<?php echo $this->jquery ?>" type="text/javascript"></script>
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,700' rel='stylesheet' type='text/css'>
    <script type="text/javascript">
        $(document).ready(function() {

            //initialize first day to active
            $('.tabs').find("li").first().addClass("active");
            $('.schedule_content').find('.schedule_item').first().addClass("active");

            $('.tabs li').click(function(){
                //var tab_id = $(this).attr('data-tab');
                var tab_id = "day-"+$(this).find('span').text();

                $('.tabs li').removeClass('active');
                $('.schedule_item').removeClass('active');

                $(this).addClass('active');
                $("#"+tab_id).addClass('active');
            });
        });

        String.prototype.paddingLeft = function(paddingValue) {
            return String(paddingValue + this).slice(-paddingValue.length);
        };

        var schedule_data = <?php echo $this->schedule_data; ?>;

        var app = angular.module('scheduleWidget', []);
        app.controller('scheduleController', ['$scope', '$window', function($scope, $window) {

            // Loop through every show and assign it to the corresponding day of the week's
            // show array.
            angular.forEach($window.schedule_data["shows"], function(value, key) {

                // First we have to create a Date object out of the show time in UTC.
                // Then we can format the string in the client's local timezone.
                // NOTE: we have to multiply the timestamp by 1000 because in PHP
                // the timestamps are in seconds and are in milliseconds in javascript.
                var start_date = new Date(value.starts_timestamp*1000);
                var end_date = new Date(value.ends_timestamp*1000);

                // This variable is used to identify which schedule_data object (which day of the week)
                // we should assign the show to.
                // NOTE: we have to add 1 to the month because javascript's Date.getMonth()
                // function returns the month number starting with an index of 0. In PHP,
                // the months are indexed starting at 1.
                var format_start_date = start_date.getFullYear() + "-" + (start_date.getMonth()+1) + "-" + start_date.getDate();

                if ($window.schedule_data["weekDays"][format_start_date] !== undefined) {
                    $window.schedule_data["weekDays"][format_start_date]["shows"].push(
                        {
                            "show_start_hour": start_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
                            "show_end_hour": end_date.toLocaleTimeString([], { hour: 'numeric', minute : 'numeric' }),
                            "name": value.name
                        });
                }
            });
            // Convert the object into an array to maintain the same order when we
            // iterate over each weekday
            $scope.weekDays = $.map($window.schedule_data["weekDays"], function(value, index) {
                return [value];
            });

            $scope.isEmpty = function(obj) {
                return obj.length == 0;
            };
        }]);
    </script>
</head>

<body ng-app="scheduleWidget" ng-controller="scheduleController">
<div class="schedule tab_content current">
    <ul class="tabs">
        <li ng-repeat="x in weekDays track by $index">
            {{x.dayOfWeek}}<span>{{x.dayOfMonth}}</span>
        </li>
    </ul>

    <div class="schedule_content">
        <div ng-repeat="x in weekDays track by $index" ng-attr-id="{{'day-' + x.dayOfMonth}}" class="schedule_item">
            <div ng-if="isEmpty(x.shows)" class="row empty-schedule"><?php echo _('Looks like there are no shows scheduled on this day.') ?></div>
            <div ng-repeat="show in x.shows" class="row">
                <div class="time_grid">{{show.show_start_hour}} - {{show.show_end_hour}}</div>
                <div class="name_grid">{{show.name}}</div>
            </div>
        </div>
    </div>

    <div class="weekly-schedule-widget-footer" <?php if ($this->widgetStyle == "premium") echo "style='display:none'"; ?>>
        <a href="<?php echo PRODUCT_SITE_URL; ?>" target="_blank"><?php printf(_('Powered by %s'), PRODUCT_NAME); ?></a>
    </div>
</div>

</body>

</html>