﻿window.addEvent('domready',function()
{
    //KupOfJoe.MetaData.GetStates(completeHandlerStates);
    //PowercatVision.MetaData.GetStates(FillAddListingStates);
     _uacct = "UA-3456939-1";
    var pageTracker = _gat._getTracker(_uacct);
    
//    if(screen.width == '1024' && screen.height == '768')
//    {
//        var mainCon = $$('div.main_container');
//        mainCon.setStyle('margin-left','');
//        mainCon.setStyle('position','');
//    }
//    
//    if(screen.width == '1280' && screen.height == '800')
//    {
//        var mainCon = $$('div.main_container');
//        mainCon.setStyle('margin-left','');
//        mainCon.setStyle('position','');
//    }
//    
//    if(screen.width == '1280' && screen.height == '1024')
//    {
//        var mainCon = $$('div.main_container');
//        mainCon.setStyle('margin-left','');
//        mainCon.setStyle('position','');
//    }
    
    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();
    }
    
    (function()
    {
        var addShopLink = $('add_shop_link');
        addShopLink.tween('color','#48FD01');
    }).delay(1000);
});



function SetupTabs()
{
    var buttons = $$('.mootools_new_button'); 
    var secondButtons = $$('.mootools_second_button');
    
    var details = $$('.mootools_tab_detail');
    var secondDetails = $$('.mootools_second_detail');
    
    var activeDetail = $('home_details').setStyle('display','block');
    var secondActiveDetail = $('search_controls').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');
        }
    });
    
    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);
//            if(Cookie.read('kojloggedin') == null || Cookie.read('kojloggedin') == 'false')
//            {
//                HideLoggedInControls();
//                if(button.get('id') == 'add_shop')
//                {
//                    CreateLoginControls($('add_shop_controls'));
//                }
//                else if(button.get('id') == 'add_review')
//                {
//                    CreateLoginControls($('add_review_controls'));
//                }
//            }
//            else
//            {
                ShowLoggedInControls();
                //SetLoggedInProps(Cookie.read('kojusername'), Cookie.read('kojemail'));
            //}
        });
    });
    
    
}
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);
            });
        }
    }