﻿function ShowEvents()
{
    KupOfJoe.EventsService.GetEvents(RenderEvents);
}
function ShowAdminEvents()
{
    KupOfJoe.EventsService.GetPagedEvents("0", "5", RenderAdminEvents);
}
function RenderEvents(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
     var _eventDetails = $('events_results');
    if(obj.Result != null && obj.Result.length > 0)
    {
        var _eventListHeader; 
        _eventListHeader = new Element('div',{'html':'Events for: <b />' + $('searchEventShops').getSelected().get('text') + '</b>'});
        _eventListHeader.set('class','event_list_header');
        var _eventList = new Element('ul');
        _eventList.set('class','vertical_ul');
        _eventDetails.empty();
        _eventListHeader.inject(_eventDetails);
        obj.Result.each(function(event)
        {
            if(event.EventId != "Count")
            {
                //alert(event.Name);
                var _eventItem = new Element('li',{'style':'margin-left:-115px;'});
                var _eventDateItem = new Element('li',{'style':'margin-left:-115px;'});
                var _eventTimeItem = new Element('li',{'style':'margin-left:-115px;'});
                var _eventDescriptionItem = new Element('li',{'style':'margin-left:-115px;'});
                var convertedDate = "n/a";
               
                if(event.EventDate != null)
                {
                    convertedDate = event.EventDate.substring(0, event.EventDate.indexOf(' '));
                }
                else
                {
                    convertedDate = "n/a";
                }
                var _eventLocationLbl = new Element('label',{'html': 'Type:'});
                _eventLocationLbl.set('class','vertical_ul_label');
                var _eventLocation = new Element('label',{'html':ConvertSymbols(decodeURI(event.EventType)),'style':'width:70%;'});
                _eventLocation.set('class','vertical_ul_control');
                
                var _eventDateLbl = new Element('label',{'html': 'Event Date:'});
                _eventDateLbl.set('class','vertical_ul_label');
                var _eventDate = new Element('label',{'html':ConvertSymbols(decodeURI(convertedDate)),'style':'width:70%;'});
                _eventDate.set('class','vertical_ul_control');
                
                var _eventStartTimeLbl = new Element('label',{'html': 'Time:'});
                _eventStartTimeLbl.set('class','vertical_ul_label');
                var _eventStartTime = new Element('label',{'html': ConvertSymbols(decodeURI(event.StartTime)) + ' - ' + ConvertSymbols(decodeURI(event.EndTime)),'style':'width:70%;'});
                _eventStartTime.set('class','vertical_ul_control');
                
                //var _eventEndTimeLbl = new Element('label',{'html': decodeURI(event.EndTime), 'style':'width:100%;'});
                //_eventEndTimeLbl.set('class','vertical_ul_label');
                //var _eventEndTime = new Element('label',{'html':ConvertSymbols(decodeURI(convertedDate))});
                //_eventEndTime.set('class','vertical_ul_control');
                
                var _eventDetailsLbl = new Element('label',{'html': 'Details:'});
                _eventDetailsLbl.set('class','vertical_ul_label');
                var _eventDetails = new Element('label',{'html': ConvertSymbols(decodeURI(event.Description)),'style':'width:70%;'});
                _eventDetails.set('class','vertical_ul_control');
                
                _eventLocationLbl.inject(_eventItem);
                _eventLocation.inject(_eventItem);
                _eventDateLbl.inject(_eventDateItem);
                _eventDate.inject(_eventDateItem);
                _eventStartTimeLbl.inject(_eventTimeItem);
                _eventStartTime.inject(_eventTimeItem);
                //_eventEndTime.inject(_eventTimeItem);
                _eventDetailsLbl.inject(_eventDescriptionItem);
                _eventDetails.inject(_eventDescriptionItem);
                
                _eventItem.inject(_eventList);
                _eventDateItem.inject(_eventList);
                _eventTimeItem.inject(_eventList);
                _eventDescriptionItem.inject(_eventList);
                
                var _eventSeparator = new Element('li');
                _eventSeparator.set('html','<hr />');
                
                _eventSeparator.inject(_eventList);
            }
        });
        _eventList.inject(_eventDetails);
        obj.Result.each(function(event)
        {
            if(event.Name == "Count")
            {
                //alert(watchparty.ListingId);
                CreateEventPager(event.EventId, _eventDetails);
            }
        });
    }
    else
    {
        _eventDetails.empty();
        _eventDetails.setStyle('width','100%');
        var _emptyResults = new Element('label',{'html':'There currently is not any events for the location selected.  Please select another location.','style':'width:100%;'});
        _emptyResults.inject(_eventDetails);
    }
}
function RenderAdminEvents(text)
{
 this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
if(obj.Result != null)
    {
        var linkDetails = $('events_results');
        linkDetails.empty();
        var linkList = new Element('ul');
        obj.Result.each(function(event)
        {
            if(event.EventId != "Count")
            {
            var linkItem = new Element('li');
            var eventItemLocation = new Element('label');
            var eventItemType = new Element('label');
            var eventItemDate = new Element('label');
            var eventItemStartTime = new Element('label');
            var eventItemEndTime = new Element('label');
            var eventSynopsis = new Element('label');
            var eventItemHR = new Element('hr');
            
            linkItem.set('class','mootools_ballon_detail_link');
            eventItemLocation.set('html','<b>Where: </b>' + ConvertSymbols(decodeURI(event.Location)) + '&nbsp;&nbsp;');
            eventItemType.set('html','<br /><b>What: </b>' + event.EventType);
            eventItemDate.set('html','<br /><b>When: </b>' + event.EventDate + ' | ');
            eventSynopsis.set('html','<br /><b>Synopsis: </b>' + event.Synopsis);
            eventItemStartTime.set('html',event.StartTime + ' - ');
            eventItemEndTime.set('html',event.EndTime);
            
            eventItemLocation.inject(linkItem);
            eventItemType.inject(linkItem);
            eventItemDate.inject(linkItem);
            eventItemStartTime.inject(linkItem);
            eventItemEndTime.inject(linkItem);
            eventSynopsis.inject(linkItem);
            eventItemHR.inject(linkItem);
            linkItem.inject(linkList);
            }
            else
            {
                CreateAdminEventPager(event.EventType,linkDetails);
            }
        });
        linkList.inject(linkDetails);
    }
}
    function CreateAdminEventPager(_totalCount, _results)
    {
        var searchResults = _results;
          var _pager = new Element('div');
          var _pagerBottom = new Element('div');
          var _processing = new Element('label');
          var _pageFromToTop = new Element('label');
          var _pageFromToBottom = new Element('label');
          var _pageSize = 5;
          var _pageStart = 1;
            var _count = _totalCount / _pageSize;
            var _decimal = _count.toString().substr(0,_count.toString().indexOf('.',0));
            if(_count > _decimal)
            {
                _count += 1;
            }
            for(counter=1;counter<=_count;counter++)
            {
                if(counter > 1)
                {
                    _pageStart = _pageStart + _pageSize;
                }
                //_newHtml = _pager.get('html') + counter + ' | ';
                var _pageLink = new Element('label',{'id':'page_top_' + counter,'value':_pageStart,'class':'pager_link'});
                var _pageLinkBottom = new Element('label',{'id':'page_bottom_' + counter,'value':_pageStart,'class':'pager_link'});
                
                var _pageNumSep = new Element('label');
                _pageNumSep.setStyle('width','10px');
                _pageLink.setStyle('width','10px');
                
                _pageNumSep.set('html','&nbsp;|&nbsp;');
                _pageLink.set('html',counter);
                _pageLink.setStyle('cursor','pointer');
                _pageLink.addEvent('click', function()
                {
                    var _totalShops = 0;
                    var _to = this.get('value') + _pageSize;
                    _pageFromToTop.set('html', this.get('value') + ' - ' + _to);
                    //$('watch_party_list').empty();
                    _processing.set('html','Processing.....');
                    //GetPagedWatchParties(this.get('value'),_pageSize);
                    KupOfJoe.EventsService.GetPagedEvents(this.get('value'), _pageSize, RenderAdminEvents);
                });
                _pageLink.inject(_pager);
                _pageNumSep.inject(_pager);
            }
            
            _pageFromToTop.inject(_pager);
            //_processing.inject(_pager);
            var _sep = new Element('hr');
            //_sep.inject(_pager);
            
            
            _pager.inject(_results,'top');
            //_pagerBottom.inject(_results,'bottom');
            
        //}
    }
function CreateEventPager(_totalCount, _results)
    {
        var searchResults = $('event_details');
          var _pager = new Element('div');
          var _pagerBottom = new Element('div');
          var _processing = new Element('label');
          var _pageFromToTop = new Element('label');
          var _pageFromToBottom = new Element('label');
          var _pageSize = 5;
          var _pageStart = 1;
            var _count = _totalCount / _pageSize;
            var _decimal = _count.toString().substr(0,_count.toString().indexOf('.',0));
            if(_count > _decimal)
            {
                _count += 1;
            }
            for(counter=1;counter<=_count;counter++)
            {
                if(counter > 1)
                {
                    _pageStart = _pageStart + _pageSize;
                }
                //_newHtml = _pager.get('html') + counter + ' | ';
                var _pageLink = new Element('label',{'id':'page_top_' + counter,'value':_pageStart,'class':'pager_link'});
                var _pageLinkBottom = new Element('label',{'id':'page_bottom_' + counter,'value':_pageStart,'class':'pager_link'});
                
                var _pageNumSep = new Element('label');
                _pageNumSep.setStyle('width','10px');
                _pageLink.setStyle('width','10px');
                
                _pageNumSep.set('html','&nbsp;|&nbsp;');
                _pageLink.set('html',counter);
                _pageLink.setStyle('cursor','pointer');
                _pageLink.addEvent('click', function()
                {
                    var _totalShops = 0;
                    var _to = this.get('value') + _pageSize;
                    _pageFromToTop.set('html', this.get('value') + ' - ' + _to);
                    $('watch_party_list').empty();
                    _processing.set('html','Processing.....');
                    //GetPagedWatchParties(this.get('value'),_pageSize);
                });
                _pageLink.inject(_pager);
                _pageNumSep.inject(_pager);
            }
            
            _pageFromToTop.inject(_pager);
            //_processing.inject(_pager);
            var _sep = new Element('hr');
            //_sep.inject(_pager);
            
            
            _pager.inject(_results,'top');
            //_pagerBottom.inject(_results,'bottom');
            
        //}
    }
function InsertEvent()
{
    //alert('Adding Event');
    var eventType = $('add_event_types');
    var eventState = $('add_event_state');
    var eventCity = $('add_event_city');
    var location = $('add_event_location');
    var eventDate = $('event_date');
    var startHour = $('add_event_start_hour').getSelected();
    var startMin = $('add_event_start_min').getSelected();
    var startMerid = $('add_event_start_meridian');
    
    var startMeridSelected = startMerid.getSelected();
    var _addEventMessage = $('add_event_message');
    
    if(eventType.value == '0')
    {
        _addEventMessage.set('html','Please select an event type before saving this event.  <br />Thank you,<br/>KupOfJoe.com');
        _addEventMessage.setStyle('display','block');
        _addEventMessage.setStyle('text-align','center');
        _addEventMessage.setStyle('color','red');
        _addEventMessage.tween('height',[0, 50]);
        return;
    }
    else
    {
        _addEventMessage.tween('height',[50, 0]);
        _addEventMessage.setStyle('display','none');
        _addEventMessage.set('html','');
    }
    
    var sMin;
    if(startMin.get('text') == '0')
    {
        sMin = '00';
    }
    else
    {
        sMin = startMin.get('text');
    }
    var startTime = startHour.get('text') + ':' + sMin + ' ' + startMeridSelected.get('text');
    
    var endHour = $('add_event_end_hour').getSelected();
    var endMin = $('add_event_end_min').getSelected();
    var endMerid = $('add_event_end_meridian');
    var endMeridSelected = endMerid.getSelected();
    var eMin;
    if(endMin.get('text') == '0')
    {
        eMin = '00';
    }
    else
    {
        eMin = endMin.get('text');
    }
    var endTime = endHour.get('text') + ':' + eMin + ' ' + endMeridSelected.get('text');
    
    var synopsis = $('event_synopsis');
    var details = $('event_description');
    var locationId = location.get('value');
    var convertedDate = decodeURI(eventDate.value);
    
    KupOfJoe.EventsService.InsertEvent(eventType.value, locationId, convertedDate, startTime, endTime, ConvertSymbols(decodeURI(synopsis.value)), ConvertSymbols(decodeURI(details.value)));
    
    eventType.value = '0';
    eventState.value = '0';
    eventCity.value = '0';
    location.value = '0';
    eventDate.value = '';
    $('add_event_start_hour').value = '1';
    $('add_event_start_min').value = '0';
    startMerid.value = '0';
    $('add_event_end_hour').value = '1';
    $('add_event_end_min').value = '0';
    endMerid.value = '0';
    synopsis.value = '';
    details.value = '';
    
    _addEventMessage.setStyle('color','#ffffff');
    _addEventMessage.set('html','The event was successfully entered into our database.  <br />Thank you for your participation,<br/>KupOfJoe.com');
    _addEventMessage.setStyle('display','block');
    _addEventMessage.setStyle('text-align','center');
    _addEventMessage.tween('height',[0, 50]);
    
    (function()
        { 
            _addEventMessage.tween('height',[50, 0]);
            _addEventMessage.setStyle('display','none');
            
            _addEventMessage.set('html','');
        }
    ).delay(3000);
}
function PopEventStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('searchEventStates');
    var _dropDownListStatesAddEvent = $('add_event_state');
    if(_dropDownListStates != null)
    {
        _dropDownListStates.addEvent('change',function()
        {
            KupOfJoe.MetaData.GetStateCities(this.get('value'),PopEventCities);
        });
    }
    _dropDownListStatesAddEvent.addEvent('change',function()
    {
        KupOfJoe.MetaData.GetStateCities(this.get('value'),PopEventCities);
    });
    obj.Result.each(function(state)
    {
        if(_dropDownListStates != null)
        {
            var _option = new Element('option');
            _option.set('value',state.StateID);
            _option.set('text',state.StateName);
            _option.inject(_dropDownListStates);
        }
        var _optionAddEvent = new Element('option');
        _optionAddEvent.set('value',state.StateID);
        _optionAddEvent.set('text',state.StateName);
        _optionAddEvent.inject(_dropDownListStatesAddEvent);
    });
}
function PopEventCities(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListCities = $('searchEventCities');
    var _dropDownListCitiesAddEvent = $('add_event_city');
    if(_dropDownListCities != null)
    {
        _dropDownListCities.addEvent('change',function()
        {
            //Going to get Shops within this state and generate an alphabet list based on
            //the cities in which those shops are located
            KupOfJoe.ListingsService.GetListingsByCity(this.get('value'),0,0,PopEventShops);
        });
        _dropDownListCities.empty();
        var _option = new Element('option');
        _option.set('value','0');
        _option.set('text','[Select a City]');
        _option.inject(_dropDownListCities);
    }
    _dropDownListCitiesAddEvent.addEvent('change',function()
    {
        //Going to get Shops within this state and generate an alphabet list based on
        //the cities in which those shops are located
        KupOfJoe.ListingsService.GetListingsByCity(this.get('value'),0,0,PopEventShops);
    });
    
    var _optionAddEvent = new Element('option');
    _optionAddEvent.set('value','0');
    _optionAddEvent.set('text','[Select a City]');
    _optionAddEvent.inject(_dropDownListCitiesAddEvent);
    obj.Result.each(function(city)
    {
        if(_dropDownListCities != null)
        {
            var _option = new Element('option');
            _option.set('value',city.CityID);
            _option.set('text',decodeURI(city.Name));
            _option.inject(_dropDownListCities);
        }
         var _optionAddEvent = new Element('option');
        _optionAddEvent.set('value',city.CityID);
        _optionAddEvent.set('text',decodeURI(city.Name));
        _optionAddEvent.inject(_dropDownListCitiesAddEvent);
    });
}
function PopEventShops(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListShops = $('searchEventShops');
    var _dropDownListShopsAddEvent = $('add_event_location');
    
    if(_dropDownListShops != null)
    {
        _dropDownListShops.empty();
        var _option = new Element('option');
        _option.set('value','0');
        _option.set('text','[Select a Shop]');
        _option.inject(_dropDownListShops);
    }
    _dropDownListShopsAddEvent.empty();
    
    var _optionAddEvent = new Element('option');
    _optionAddEvent.set('value','0');
    _optionAddEvent.set('text','[Select a Shop]');
    _optionAddEvent.inject(_dropDownListShopsAddEvent);
    
    obj.Result.each(function(shop)
    {
        if(_dropDownListShops != null)
        {
            var _option = new Element('option');
            _option.set('value',shop.ID);
            _option.set('text',decodeURI(shop.Name));
            _option.inject(_dropDownListShops);
        }
        var _optionAddEvent = new Element('option');
        _optionAddEvent.set('value',shop.ID);
        _optionAddEvent.set('text',decodeURI(shop.Name));
        _optionAddEvent.inject(_dropDownListShopsAddEvent);
    });
}

function PopEventTypes(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListEventTypes = $('add_event_types');
    
    _dropDownListEventTypes.empty();
    
    var _option = new Element('option');
    _option.set('value','0');
    _option.set('text','[Select a Event Type]');
    _option.inject(_dropDownListEventTypes);
    
    obj.Result.each(function(type)
    {
        var _option = new Element('option');
        _option.set('value',type.EventTypeId);
        _option.set('text',decodeURI(type.Name));
        _option.inject(_dropDownListEventTypes);
    });
}