﻿window.addEvent('domready', function() {

    var sPath = window.location.pathname;
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    if (sPage == 'sites.aspx' || sPage == 'SITES.aspx') {
        SetupSecondButtonTabs();
    }

    _uacct = "UA-3456939-1";
    var pageTracker = _gat._getTracker(_uacct);

    if (screen.width != '1400' && screen.height != '1050') {
        var mainCon = $$('div.main_container');
        mainCon.setStyle('margin-left', '');
        mainCon.setStyle('position', '');
    }
    KupOfJoe.MetaData.GetStates(PopSearchListingsStates);
    KupOfJoe.MetaData.GetStates(PopAddShopStates);
    KupOfJoe.MetaData.GetStates(PopAddReviewStates);
    KupOfJoe.MetaData.GetStates(PopReviewStates);
    KupOfJoe.MetaData.GetInternetTypes(completeHandlerInternetTypes);
    KupOfJoe.MetaData.GetSeatingTypes(completeHandlerSeatingTypes);
    KupOfJoe.MetaData.GetRelatedLinks(RenderRelatedLinks);
    KupOfJoe.MetaData.GetLatestNewsItems(RenderLatestNewsItems);
    KupOfJoe.EventsService.GetEventTypes(PopEventTypes);
    SetupTabs();
    SetupBalloonTabs();
    GetRecentListings();

    //Creating the calendar for Adding an Event
    myCal2 = new Calendar({ event_date: 'm/d/Y' }, { classes: ['dashboard'], direction: 1, tweak: { x: -192, y: 17} });

    var _ratingControl = $('rating_stars');
    CreateStars(_ratingControl, 'main');

    //AddEnterKeyEvent('filter_controls_container','getListings');
    //PowercatVision.PageContentService.GetPageContents('Home',RenderPageContent);
    if (Cookie.read('kojloggedIn') == 'true') {
        SetLoggedInProps(Cookie.read('kojusername'), Cookie.read('kojemail'), Cookie.read('kojadmin'));
    }

    if (querySt('action') == 'register') {
        Register();
    }

    if (querySt('action') == 'home') {
        var home = $('home_details');
        home.fireEvent('click');
    }

    if (querySt('action') == 'coffee') {
        var coffee = $('coffee');
        coffee.fireEvent('click');
    }

    if (querySt('action') == 'aboutus') {
        var about = $('about');
        about.fireEvent('click');
    }

    if (querySt('action') == 'contactus') {
        var contact = $('contact');
        contact.fireEvent('click');
    }

    if (querySt('action') == 'events') {
        var events = $('events');
        events.fireEvent('click');
    }
    if (querySt('action') == 'login') {
        MemberLogin();
    }

    (function() {
        var addShopLink = $('add_shop_link');
        addShopLink.tween('color', '#48FD01');
    }).delay(1000);
});



function SetupTabs() {
    var buttons = $$('.mootools_new_button');
    var details = $$('.mootools_tab_detail');
    var activeDetail = $('home_details').setStyle('display', 'block');

    buttons.each(function(button) {
        var detail = $(button.id + '_details');
        var fx = new Fx.Morph(detail, { duration: 500, transition: Fx.Transitions.Sine.easeOut });
        var mouseoverFx = new Fx.Morph(button, { duration: 500, transition: Fx.Transitions.Sine.easeOut });
        var mouseoutFx = new Fx.Morph(button, { duration: 500, transition: Fx.Transitions.Sine.easeOut });

        button.setStyle('cursor', 'hand');
        if (detail.id != activeDetail.id) {
            detail.setStyle('display', 'none');
        }

        button.addEvent('click', function() {
            activeDetail.setStyle('display', 'none');
            detail.setStyle('display', 'block');
            detail.setOpacity(0);
            fx.start({ 'opacity': 1 });
            activeDetail = detail;

            if (button.id == 'coffee') {

                var homePage = $('home_page');
                var secondNav = $('second_nav');
                var fxHomePage = new Fx.Morph(homePage, { duration: 500, transition: Fx.Transitions.Sine.easeOut });
                var coffeeDetails = $('coffee_details');

                fxHomePage.start({ 'opacity': 0, 'display': 'none' });
                secondNav.setStyles({
                    'opacity': .5,
                    'background-color': '#543F16'
                });

                coffeeDetails.setStyle('display', 'block');
                _uacct = "UA-3456939-1";
                var pageTracker = _gat._getTracker(_uacct);
                pageTracker._trackPageview('/CoffeeShops');
            }
            else if (button.id == 'events') {
                var homePage = $('home_page');
                var secondNav = $('events_second_nav');
                var fxHomePage = new Fx.Morph(homePage, { duration: 500, transition: Fx.Transitions.Sine.easeOut });
                var eventDetails = $('events_details');

                fxHomePage.start({ 'opacity': 0, 'display': 'none' });
                secondNav.setStyles({
                    'opacity': .5,
                    'background-color': '#543F16'
                });

                eventDetails.setStyle('display', 'block');

                KupOfJoe.MetaData.GetStates(PopEventStates);

                _uacct = "UA-3456939-1";
                var pageTracker = _gat._getTracker(_uacct);
                pageTracker._trackPageview('/Events');

                var eventButtons = $$('.mootools_eventsecond_button');
                var secondDetails = $$('.mootools_event_detail');
                var eventActiveDetail = $('event_search_controls').setStyle('display', 'block');

                eventButtons.each(function(eventButton) {
                    var eventDetail = $(eventButton.id + '_controls');
                    var fx = new Fx.Morph(eventDetail, { duration: 500, transition: Fx.Transitions.Sine.easeOut });

                    eventButton.setStyle('cursor', 'hand');
                    if (eventDetail.id != eventActiveDetail.id) {
                        eventDetail.setStyle('display', 'none');
                    }

                    eventButton.addEvent('click', function() {
                        eventActiveDetail.setStyle('display', 'none');
                        eventDetail.setStyle('display', 'block');
                        eventDetail.setOpacity(0);
                        fx.start({ 'opacity': 1 });
                        eventActiveDetail = eventDetail;
                        //$('event_search_controls').setStyle('display','none');
                        _uacct = "UA-3456939-1";
                        var pageTracker = _gat._getTracker(_uacct);
                        pageTracker._trackPageview('/Events/' + eventButton.id);
                        if (eventButton.id == 'event_add') {
                            KupOfJoe.EventsService.GetEventTypes(PopEventTypes);
                            KupOfJoe.MetaData.GetHours(FillEventHours);
                            KupOfJoe.MetaData.GetMinutes(FillEventMinutes);

                        }
                        //                        if(Cookie.read('kojloggedin') == null || Cookie.read('kojloggedin') == 'false')
                        //                        {
                        //                            HideEventLoggedInControls();
                        //                            if(eventButton.get('id') == 'event_add')
                        //                            {
                        //                               
                        //                                CreateLoginControls($('event_add_controls'));
                        //                            }
                        //                            else if(eventButton.get('id') == 'event_addreview')
                        //                            {
                        //                                CreateLoginControls($('event_addreview_controls'));
                        //                            }
                        //                        }
                        //                        else
                        //                        {

                        ShowLoggedInControls();
                        //SetLoggedInProps(Cookie.read('kojusername'), Cookie.read('kojemail'));
                        //}
                    });
                });
            }
            else {
                var homePage = $('home_page');
                var fxHomePage = new Fx.Morph(homePage, { duration: 500, transition: Fx.Transitions.Sine.easeOut });
                var coffeeDetails = $('coffee_details');

                fxHomePage.start({ 'opacity': 1, 'display': 'block' });
                coffeeDetails.setStyle('display', 'none');
                _uacct = "UA-3456939-1";
                var pageTracker = _gat._getTracker(_uacct);
                pageTracker._trackPageview('/' + button.id);
            }

            var registerDetails = $('register_details');
            var accountDetails = $('account_details');

            accountDetails.setStyle('display', 'none');
            registerDetails.setStyle('display', 'none');
        });
        if (querySt('action') == button.id) {
            detail.setStyle('display', 'block');
            button.fireEvent('click');
        }
    });


    SetupSecondButtonTabs();
}
function SetupSecondButtonTabs() {
    var secondButtons = $$('.mootools_second_button');
    var secondDetails = $$('.mootools_second_detail');
    var secondActiveDetail = $('search_controls').setStyle('display', 'block');
    secondButtons.each(function(button) {
        var detail = $(button.id + '_controls');
        var fx = new Fx.Morph(detail, { duration: 500, transition: Fx.Transitions.Sine.easeOut });

        button.setStyle('cursor', 'hand');
        if (detail.id != secondActiveDetail.id) {
            detail.setStyle('display', 'none');
        }

        button.addEvent('click', function() {
            secondActiveDetail.setStyle('display', 'none');
            detail.setStyle('display', 'block');
            detail.setOpacity(0);
            fx.start({ 'opacity': 1 });
            secondActiveDetail = detail;
            $('shop_details').setStyle('display', 'none');
            _uacct = "UA-3456939-1";
            var pageTracker = _gat._getTracker(_uacct);
            pageTracker._trackPageview('/CoffeeShops/' + button.id);
            ShowLoggedInControls();
        });
    });
}
function SetupBalloonTabs() {
    var balloonButtons = $$('.mootools_balloon_button');
    var balloonDetails = $$('.mootools_balloon_detail');
    var balloonActiveDetail = $('features_details').setStyle('display', 'block');

    balloonButtons.each(function(button) {
        var detail = $(button.id + '_details');
        var fx = new Fx.Morph(detail, { duration: 500, transition: Fx.Transitions.Sine.easeOut });

        button.setStyle('cursor', 'hand');
        if (detail.id != balloonActiveDetail.id) {
            detail.setStyle('display', 'none');
        }

        button.addEvent('click', function() {
            balloonActiveDetail.setStyle('display', 'none');
            detail.setStyle('display', 'block');
            detail.setOpacity(0);
            fx.start({ 'opacity': 1 });
            balloonActiveDetail = detail;

            if (button.id == 'talk') {

                KupOfJoe.ForumService.GetForums(RenderForums);
            }

            if (button.id == 'related') {
                $('related_details').empty();
                KupOfJoe.PageContentService.GetCoffeeNews('http://www.feedzilla.com/rss/industry/beverage-coffee', RenderCoffeeNewsByFeedzilla);
                KupOfJoe.PageContentService.GetCoffeeNews('http://coffeegeek.com/rss', RenderCoffeeNewsCoffeeGeek);
                KupOfJoe.PageContentService.GetCoffeeNews('http://feeds2.feedburner.com/FreshCoffeeNews?format=xml', RenderCoffeeNewsFreshCoffee);
            }

            if (button.id == 'upcoming') {
                KupOfJoe.EventsService.GetUpcomingEvents(RenderUpcomingEvents);
            }
        });
    });
}
function RenderCoffeeNewsByFeedzilla(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj != null && obj.Result != null) {
        RenderCoffeeNewsItem(obj.Result, 'Coffee News by Feedzilla', 'Feedzilla', 'related_details', 'http://www.feedzilla.com/rss/industry/beverage-coffee', RenderCoffeeNewsByFeedzilla);
    }
}
function RenderCoffeeNewsCoffeeGeek(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj != null && obj.Result != null) {
        RenderCoffeeNewsItem(obj.Result, 'Coffee News by Coffee Geek', 'Coffee Geek', 'related_details', 'http://coffeegeek.com/rss', RenderCoffeeNewsCoffeeGeek);
    }
}
function RenderCoffeeNewsFreshCoffee(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj != null && obj.Result != null) {
        RenderCoffeeNewsItem(obj.Result, 'Coffee News by Fresh Coffee', 'Fresh Coffee', 'related_details', 'http://feeds2.feedburner.com/FreshCoffeeNews?format=xml', RenderCoffeeNewsFreshCoffee);
    }
}
function RenderCoffeeNewsItem(results, headerTitle, showHideLabel, containerElm, rssFeed, itemRenderFunc) {

    var leftNewsFeeds = $(containerElm);
    //leftNewsFeeds.empty();
    var coffeeNewsItemContainer = new Element('div', { 'id': 'coffee_' + showHideLabel + '_container' });

    var coffeeNewsItemList;

    if (containerElm == 'left_news_feeds') {
        coffeeNewsItemList = new Element('ul', { 'id': 'coffee_item_list', 'style': 'margin-left:5px;' });
    }
    else {
        coffeeNewsItemList = new Element('ul', { 'id': 'coffee_item_list', 'style': 'margin-right:5px;' });
    }
    coffeeNewsItemList.setStyle('padding', 3);
    coffeeNewsItemContainer.setStyles(
    {
        bgColor: '#ffffff'
        //color:'#000000';
    });
    coffeeNewsItemList.setStyles(
    {
        backgroundColor: '#ffffff',
        color: '#000000'
    });
    var newsHeaderListItem = new Element('li', { 'style': 'list-style:none;', 'id': 'header_item' });
    var newsHeader = new Element('label');
    newsHeader.set('class', 'section_header');
    newsHeader.set('html', headerTitle);
    newsHeader.inject(newsHeaderListItem);
    var listCollapse = new Element('img', { 'src': './App_Themes/new/images/toggle_minus.png', 'style': 'cursor:pointer;' });
    listCollapse.set('title', 'Hide ' + showHideLabel + ' Items');
    listCollapse.setStyle('cursor', 'pointer');
    listCollapse.addEvent('click', function() {
        if (listCollapse.get('src') == './App_Themes/new/images/toggle_minus.png') {
            var children = coffeeNewsItemList.getChildren('li');
            children.each(function(child) {
                if (child.get('id') != 'header_item') {
                    child.setStyle('display', 'none');
                }
            });
            listCollapse.set('src', './App_Themes/new/images/toggle_plus.png');
            listCollapse.set('title', 'Show ' + showHideLabel + ' Items');
        }
        else {
            var children = coffeeNewsItemList.getChildren('li');
            children.each(function(child) {
                if (child.get('id') != 'header_item') {
                    child.setStyle('display', 'block');
                    child.setStyle('list-style-type', 'circle');
                }
            });
            listCollapse.set('src', './App_Themes/new/images/toggle_minus.png');
            listCollapse.set('title', 'Hide ' + showHideLabel + ' Items');
        }
    });
    listCollapse.inject(newsHeaderListItem);
    var listRefresh = new Element('img', { 'src': './App_Themes/new/images/refresh_small.png' });
    listRefresh.set('title', 'Refresh ' + showHideLabel);
    listRefresh.setStyle('cursor', 'pointer');
    listRefresh.addEvent('click', function() {
        coffeeNewsItemList.empty();
        KupOfJoe.PageContentService.GetCoffeeNews(rssFeed, itemRenderFunc);
    });
    listRefresh.inject(newsHeaderListItem);
    newsHeaderListItem.inject(coffeeNewsItemList);
    results.each(function(coffeeNewsItem) {
        var coffeeNewsListItem = new Element('li');
        coffeeNewsListItem.setStyles(
        {
            backgroundColor: '#ffffff',
            color: '#000000'
        });
        var newsItemTitle = CreateCoffeeNewsItemLink(coffeeNewsItem);
        newsItemTitle.setStyle('color', '#000000');
        newsItemTitle.inject(coffeeNewsListItem);
        coffeeNewsListItem.inject(coffeeNewsItemList);

    });
    coffeeNewsItemList.inject(coffeeNewsItemContainer);
    coffeeNewsItemContainer.inject(leftNewsFeeds);
}
function CreateCoffeeNewsItemLink(item) {
    var itemTitle = new Element('a');
    itemTitle.set('class', 'section_content');
    itemTitle.set('html', item.Title);
    itemTitle.set('title', item.Title);
    itemTitle.set('href', item.Link);
    itemTitle.set('target', '_blank');
    return itemTitle;
}
function RenderForums(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null) {
        var talkDetails = $('talk_details');
        talkDetails.empty();
        //var _ul = new Element('ul');

        var _forumDashboard = new Element('ul');
        _forumDashboard.set('class', 'ul_label_form');

        var _forumDashboardItemHdr = new Element('li');
        _forumDashboardItemHdr.set('class', 'li_label_form');
        var _forumNameHdr = new Element('label', { 'html': '<b>Name</b>' });
        var _forumThreadCtHdr = new Element('label', { 'html': '<b>Thread Count</b>' });

        _forumNameHdr.inject(_forumDashboardItemHdr);
        _forumThreadCtHdr.inject(_forumDashboardItemHdr);

        _forumDashboardItemHdr.inject(_forumDashboard);
        obj.Result.each(function(forum) {
            var _forumDashboardItem = new Element('li');
            _forumDashboardItem.set('class', 'li_label_form');
            var _forumName = new Element('label', { 'class': 'mootools_balloon_button', 'forumid': forum.ForumID });
            var _forumThreadCount = new Element('label');


            _forumName.addEvent('click', function() {
                window.location.href = 'forum.aspx?fid=' + _forumName.get('forumid');
            });
            _forumName.set('html', forum.ForumName);
            _forumName.set('title', forum.ForumDescription);

            var _threadCount = 0;
            KupOfJoe.ForumService.GetForumThreads(forum.ForumID, function(textThreads) {
                //alert(textThreads);
                this.response.json = JSON.decode(textThreads, this.options.secure);
                var objThreads = eval(textThreads);
                //alert(objThreads.Result.length);
                _threadCount = objThreads.Result.length;
                _forumThreadCount.set('html', _threadCount);
            });

            _forumName.inject(_forumDashboardItem);
            _forumThreadCount.inject(_forumDashboardItem);

            _forumDashboardItem.inject(_forumDashboard);
        });
        _forumDashboard.inject(talkDetails);
    }
}
function RenderRelatedLinks(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null) {
        var linkDetails = $('link_details');
        var linkList = new Element('ul');
        obj.Result.each(function(link) {
            var linkItem = new Element('li');
            var linkAnchor = new Element('a');
            linkAnchor.set('class', 'mootools_ballon_detail_link');
            linkItem.set('class', 'mootools_ballon_detail_link');
            linkAnchor.set('target', '_blank');
            linkAnchor.set('href', link.Link);
            linkAnchor.set('html', link.Name);

            linkAnchor.inject(linkItem);
            linkItem.inject(linkList);
        });
        linkList.inject(linkDetails);
    }
}
function RenderLatestNewsItems(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null) {
        var linkDetails = $('news_details');
        var linkList = new Element('ul');
        obj.Result.each(function(newsitem) {
            var linkItem = new Element('li');
            var newsitemTitle = new Element('label');
            var newsitemSynopsis = new Element('label');
            var newsitemsMore = new Element('label');
            var newsitemHR = new Element('hr');
            linkItem.set('class', 'mootools_ballon_detail_link');
            newsitemTitle.set('html', newsitem.Title);
            newsitemSynopsis.set('html', '<br />' + newsitem.Synopsis);
            newsitemsMore.set('html', '  more...');

            newsitemTitle.inject(linkItem);
            newsitemSynopsis.inject(linkItem);
            newsitemsMore.inject(linkItem);
            newsitemHR.inject(linkItem);
            linkItem.inject(linkList);
        });
        linkList.inject(linkDetails);
    }
}
function RenderUpcomingEvents(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null) {
        var linkDetails = $('upcoming_details');
        linkDetails.empty();
        var linkList = new Element('ul');
        obj.Result.each(function(event) {
            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);
        });
        linkList.inject(linkDetails);
    }
}
function HideLoggedInControls() {
    $('add_shop_controls_left').setStyle('display', 'none');
    $('add_shop_controls_center').setStyle('display', 'none');
    $('add_shop_controls_right').setStyle('display', 'none');
    $('review_controls_container').setStyle('display', 'none');
}
function ShowLoggedInControls() {
    $('add_shop_controls_left').setStyle('display', 'block');
    $('add_shop_controls_center').setStyle('display', 'block');
    $('add_shop_controls_right').setStyle('display', 'block');
    $('review_controls_container').setStyle('display', 'block');
}
function HideEventLoggedInControls() {
    $('event_add_controls_list').setStyle('display', 'none');
    $('event_addreview_controls_list').setStyle('display', 'none');
}
function ShowEventLoggedInControls() {
    $('event_add_controls_list').setStyle('display', 'block');
    $('event_addreview_controls_list').setStyle('display', 'block');
}
function FillEventHours(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null && obj.Result.length > 0) {
        var startHour = $('add_event_start_hour');
        var endHour = $('add_event_end_hour');
        obj.Result.each(function(hour) {
            var _optionStart = new Element('option');
            _optionStart.set('value', hour.HourID);
            _optionStart.set('text', hour.Name);
            _optionStart.inject(startHour);

            var _optionEnd = new Element('option');
            _optionEnd.set('value', hour.HourID);
            _optionEnd.set('text', hour.Name);
            _optionEnd.inject(endHour);
        });
    }
}

function FillEventMinutes(text) {
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    if (obj.Result != null && obj.Result.length > 0) {
        var startMinute = $('add_event_start_min');
        var endMinute = $('add_event_end_min');
        obj.Result.each(function(minute) {
            var _optionStart = new Element('option');
            _optionStart.set('value', minute.MinuteID);
            _optionStart.set('text', minute.Name);
            _optionStart.inject(startMinute);

            var _optionEnd = new Element('option');
            _optionEnd.set('value', minute.MinuteID);
            _optionEnd.set('text', minute.Name);
            _optionEnd.inject(endMinute);
        });
    }
}
