﻿Agility.RegisterNamespace("BNN.Modules.TodaysGuests");

(function(TodaysGuests) {

    var _currentItem = 0;
    var _scrollSettings = { duration: 1000 }

    TodaysGuests.OnInit = function(ClientID, guestsToShow) {

        var client = $("#" + ClientID);

        $.ajax({
            url: AjaxWebserviceSvcUrl + '/GetTodaysGuests',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(jsonResponse) {
                var result = { d: jsonResponse };
                if (result.d != undefined && result.d != null && result.d.length > 0) {

                    var _data = result.d;

                    var container = client.find(".GuestsContainer");
                    var templateUrl = Agility.ResolveUrl("~/ClientTemplates/TodaysGuests.htm");

                    var height = (guestsToShow * 80) - 2;

                    container.css("height", height + "px");
                    container.css("max-height", height + "px");

                    var settings = { "f_escapeString": function(string) { return string; } };

                    container.setTemplateURL(templateUrl, null, settings);
                    container.processTemplate(_data);

                    client.find(".ScrollUp").bind('click', function(e) {
                        if (_currentItem > 0) {
                            _currentItem = _currentItem - 1;
                            var target = $("#GuestDetails" + _currentItem);
                            container.scrollTo(target, _scrollSettings);
                        }
                    });
                    client.find(".ScrollDown").bind('click', function(e) {
                        if (_currentItem < _data.length - guestsToShow) {
                            _currentItem = _currentItem + 1;
                            var target = $("#GuestDetails" + _currentItem);
                            container.scrollTo(target, _scrollSettings);
                        }
                    });

                    _currentItem = _data.length - 1;
                    var now = new Date();

                    for (var i = 0; i < _data.length; i++) {

                        var theDate = new Date(parseInt(_data[i].Date.substr(6)));

                        if ((theDate.getHours() > now.getHours()) || ((theDate.getHours() == now.getHours()) && (theDate.getMinutes() > now.getMinutes()))) {
                            _currentItem = i;
                            break;
                        }
                    }

                    _currentItem = Math.min(_currentItem, _data.length - guestsToShow);
                    _currentItem = Math.max(_currentItem, 0);
                    var target = $("#GuestDetails" + _currentItem);
                    container.scrollTo(target, _scrollSettings);
                    
                    return;
                }
                //remove module if there are no results
                client.remove();
            },
            complete: function(XMLHttpRequest, textStatus) {
                //alert(XMLHttpRequest.status + ' ' + textStatus);
                //alert(XMLHttpRequest.responseText);
            }
        });
    };

    TodaysGuests.GetTitle = function(guest) {
		if (guest == null) return "";
		var title = (guest.Title != null) ? guest.Title : "",
			company = (guest.Company != null) ? guest.Company : "";
        return title + (((title.length < 1) || (company.length < 1)) ? "" : ", ") + company;
    };

})(BNN.Modules.TodaysGuests);
