﻿window.addEvent('domready',function()
{
   var sPath = window.location.pathname;
   var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
   if(sPath.indexOf('admin') < 0)
   {
   if(sPage == "SITES.aspx")
   {
        //AddEnterKeyEvent('filter_controls_container','getListings');
        PowercatVision.MetaData.GetStates(FillStates);
        PowercatVision.MetaData.GetStates(FillAddListingStates);
        //if(sPath.indexOf('admin') == 0)
        //{
            PowercatVision.PageContentService.GetNewsItems(RenderNewsItems);
            PowercatVision.PageContentService.GetLinksByType('1', RenderLinks);
            //SetupCalloutTabs();
        //}
        CreateListingRatingStars();
        if(Cookie.read('loggedIn') == 'true')
        {
           var _memberLoggedInPanel = $('header_logged_in_panel');
           var _headerControls = $('header_login_controls');
           var _loggedInMessage = new Element('label');
           var _loggedInMessageSep = new Element('label',{'html':' | '});
           var _accountDetails = new Element('label',{'html':'Account Details','style':'cursor:pointer;'}); 
           var _accountDetailsSep = new Element('label',{'html':' | '});
           var _logOutLabel = new Element('label',{'html':'Log Out','style':'cursor:pointer;'});
           _logOutLabel.addEvent('click',function()
           {
                LogOut();
                _memberLoggedInPanel.setStyle('display','none');
                _headerControls.setStyle('display','block');
           });
            _accountDetails.addEvent('click',function()
            {
                var _elm = $('add_details');
                var _children = _elm.getChildren();
                //alert(_children);
                _children.each(function(child)
                {
                    child.setStyle('display','none');
                });
                var _pcvId = Cookie.read('pcvuid');
                PowercatVision.MemberService.GetMemberById(_pcvId, function(text)
                {
                    this.response.json = JSON.decode(text, this.options.secure); 
                    var obj = eval(text);
                    obj.Result.each(function(member)
                    {
                        var _detailsContainer = new Element('div',{'id':'accountDetailsContainer'});
                        var _usernameLbl = new Element('label',{'html':'Username : ' + member.UName + '<br />'});
                        var _emailLbl = new Element('label',{'html':'Email : ' + member.Email});
                        
                        _usernameLbl.inject(_detailsContainer);
                        _emailLbl.inject(_detailsContainer);
                        _detailsContainer.inject(_elm);
                       
                    });
                });
            });
           var _uName = Cookie.read('pcvuname');    
            _loggedInMessage.set('html','Welcome ' + _uName);
            _memberLoggedInPanel.empty(); 
            _memberLoggedInPanel.setStyle('display','block');
            _loggedInMessage.inject(_memberLoggedInPanel);
            _loggedInMessageSep.inject(_memberLoggedInPanel);
            _accountDetails.inject(_memberLoggedInPanel);
            _accountDetailsSep.inject(_memberLoggedInPanel);
            _logOutLabel.inject(_memberLoggedInPanel);
            _headerControls.setStyle('display','none');
        }
        if(querySt('func') == 'add')
        {
            AddListing();
        }
    }
    }
});
function CreateListingRatingStars()
{
    var _ratingControl = $('overall_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'overall');
    
    var _ratingControl = $('ksu_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'ksu');
    
    var _ratingControl = $('food_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'food');
    
    var _ratingControl = $('service_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'service');
    
    var _ratingControl = $('clean_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'clean');
    
    var _ratingControl = $('seat_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'seat');
    
    var _ratingControl = $('variety_rating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'variety');
    
    var _ratingControl = $('reviewKSURating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewKSU');
    
    var _ratingControl = $('reviewFoodRating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewFood');
    
    var _ratingControl = $('reviewServiceRating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewService');
    
    var _ratingControl = $('reviewCleanRating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewClean');
    
    var _ratingControl = $('reviewSeatRating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewSeat');
    
    var _ratingControl = $('reviewVarietyRating');
    if(_ratingControl != null)
    {
        _ratingControl.empty();
    }
    CreateStars(_ratingControl,'reviewVariety');
}
function DisplayListingResults(text)
{
    var _addDetails = $('add_details');
    var _listingDetails = $('listing_details');
    var searchResults = $('detail_search');
    
    this.response.json = JSON.decode(text, this.options.secure); 
    var obj = eval(text);
    if(obj.Result != null && obj.Result.length > 0)
    {
        if(obj.Result.length > 2)
        {
            //ExpandContainer('676','1435');
        }
        var _results = $('searchResults');
        if(_results != null)
        {
            try
            {
                _results.destroy();
            }
            catch (err)
            {
                alert(err);
            }
        }   
              
        var wrapper = searchResults.retrieve('wrapper');
        if(wrapper != null)
        {
            
            var _searchResults = $('detail_search');
            //var fxSlideControls = new Fx.Slide(_searchControls, {duration: 1000}); 
            var fxSlideResults = new Fx.Slide(_searchResults, {duration: 1000}); 
            //fxSlideControls.toggle();
            fxSlideResults.hide().slideIn();
            wrapper.setStyle('height','1435');
        }
        
        var _div = new Element('div',{'class':'result_list_container'});
        _div.set('id','searchResults');
        searchResults.empty();
        searchResults.setStyle('display','block');
        
        obj.Result.each(function(listing)
        {
            if(listing.Name != "Count")
            {
                RenderListings(listing, _div);
            }
        });
        _div.inject(searchResults);
        obj.Result.each(function(listing)
        {
            if(listing.Name == "Count")
            {
                CreatePager(listing.ID, _div);
            }
        });
        HideTopElements();
        _addDetails.setStyle('display','');
        $('add_details_controls').setStyle('display','none');
        var _loginControls = $('login_controls_container');
        if(_loginControls != null)
        {
            _loginControls.destroy();
        }
        _listingDetails.setStyle('display','none');
    }
    else
    {
        var _existingNoResults = $('no_results_element');
        if(_existingNoResults != null)
        {
            _existingNoResults.destroy();
        }
        var _noResults = new Element('span',{'id':'no_results_element','class':'no_results'});
        _noResults.set('html','<hr />There are currently no coffe shops found in your search.');
        _noResults.inject(_div);
    }
}
function CreatePager(_totalCount, _results)
    {
        var searchResults = $('detail_search');
          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('span',{'id':'page_top_' + counter,'value':_pageStart,'class':'pager_link'});
                var _pageLinkBottom = new Element('span',{'id':'page_bottom_' + counter,'value':_pageStart,'class':'pager_link'});
                
                var _pageNumSep = new Element('label');
                
                _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);
                    $('detail_search').empty();
                    _processing.set('html','Processing.....');
                    GetPagedListings(this.get('value'),_pageSize);
                });
                _pageLink.inject(_pager);
                _pageNumSep.inject(_pager);
                
                //bottom pager
                var _pageNumBottomSep = new Element('label');
                _pageNumBottomSep.set('html','&nbsp;|&nbsp;');
                _pageLinkBottom.set('html',counter);
                _pageLinkBottom.setStyle('cursor','pointer');
                _pageLinkBottom.addEvent('click', function()
                {
                    $('detail_search').empty();
                    GetPagedListings(this.get('value'),_pageSize);
                });
                _pageLinkBottom.inject(_pagerBottom);
                _pageNumBottomSep.inject(_pagerBottom);
                
            }
            
            _pageFromToTop.inject(_pager);
            _processing.inject(_pager);
            var _sep = new Element('hr');
            _sep.inject(_pager);
            
            
            _pager.inject(_results,'top');
            _pagerBottom.inject(_results,'bottom');
            
        //}
    }
function RenderListing(listing, _div)
{
    var _header = new Element('span');
    _header.set('html',listing.Name);
    _header.inject(_div);
}
function RenderListings(listing, _div)
{
    var _uacct = "UA-6427972-1";
    var pageTracker = _gat._getTracker(_uacct);
    var _infoContainer = new Element('div',{'style':'clear:both;'});
    _infoContainer.setStyle('height','auto');
    var _reviewheader = new Element('span',{'class':'result_list_header'});
    var _reviewheaderdetails = new Element('label');
    var _review = new Element('span',{'id':'main_review','class':'result_list_review','style':'display: inline-block; float: left; clear: both;'});
    var _path = 'app_themes/main/images/';
    var _emailIcon = 'email.png';
    var _websiteIcon = 'world.png';
    var _photosIcon = 'camera.png';
    var _detailsIcon = 'zoom.png';
    var _addreviewIcon = 'addreview.png';
    var _ratingsIcon = 'ratings.png';
    var _informationIcon = 'information.png';
    
    //alert(listing.Name + ' Email: ' + listing.Email);
    if(listing.Email == null || listing.Email == "")
    {
        _emailIcon = 'email_disabled.png';
    }
    if(listing.Website == null || listing.Website == "")
    {
        _websiteIcon = 'world_disabled.png';
    }
    //if(listing.PhotoGallery == null || listing.PhotoGallery == "")
    if(listing.PhotoCount == 0)
    {
        _photosIcon = 'camera_disabled.png';
    }
    var _a_email = new Element('a',{'href':'mailto:' + ConvertSymbols(decodeURI(listing.Email))});
    var _email = new Element('img',{'id':'img_email_' + listing.ID,'src': _path + _emailIcon,'title':'Send ' + ConvertSymbols(listing.Name) + ' an Email', 'alt':'Email','class':'image_link'});
    var _camera = new Element('img',{'id':'img_photos_' + listing.ID,'src': _path + _photosIcon,'title':'View ' + ConvertSymbols(listing.Name) + ' Photos', 'alt':'Photo Gallery'});
    var _website = ConvertSymbols(decodeURI(listing.Website));
    if(_website.indexOf('http://') < 0 || _website.indexOf('HTTP://') < 0)
    {
        _website = 'http://' + _website;
    }
    var _a_website = new Element('a',{'href':_website,'class':'image_link','target':'_blank'});
    var _world = new Element('img',{'id':'img_website_' + listing.ID,'src': _path + _websiteIcon,'title':'Visit the ' + ConvertSymbols(decodeURI(listing.Name)) + ' website', 'alt':'Website','class':'image_link'});
    var _zoom = new Element('img',{'id':'img_details_' + listing.ID,'src': _path + _detailsIcon,'title':'View ' + ConvertSymbols(decodeURI(listing.Name)) + ' Details', 'alt':'Details'});
    var _addreview = new Element('img',{'id':'img_addreview_' + listing.ID,'src': _path + _addreviewIcon,'title':'Add review for ' + ConvertSymbols(decodeURI(listing.Name)),'al':'Add Review'});
    var _ratingsbutton = new Element('img',{'id':'img_ratings_' + listing.ID,'src':_path + _ratingsIcon,'title':'View Ratings for ' + ConvertSymbols(decodeURI(listing.Name)),'al':'View Ratings'});
    var _information = new Element('img',{'id':'img_mainreview_' + listing.ID,'src': _path + _informationIcon,'title':'View main review for ' + ConvertSymbols(decodeURI(listing.Name)),'al':'View Main Review'});
    var _officialGPC = new Element('fieldset',{'id':'official_gpc_' + listing.ID,'class':'content'});
    var _officialGPCLegend = new Element('legend');
//    if(listing.OfficialGPCLocation == 'True')
//    {
//        _officialGPCLegend.set('html','Official GoPowercat.com Away Location');
//        _officialGPCLegend.inject(_officialGPC);
//    }
    _reviewheaderdetails.set('html', ConvertSymbols(decodeURI(listing.Address)) + ' | ' + ConvertSymbols(decodeURI(listing.Phone)) + ' | ');
    
    _reviewheader.set('html', ' | ' + ConvertSymbols(decodeURI(listing.Name)) + ' | ' );
    _reviewheaderdetails.inject(_reviewheader);
    //Injecting images for toolbar
    _ratingsbutton.inject(_reviewheader);
    _information.inject(_reviewheader);
    if(listing.Email != null && ConvertSymbols(decodeURI(listing.Email)) != "")
    {
        _email.inject(_a_email);
        _a_email.inject(_reviewheader);
    }
    else
    {
        _email.setStyle('cursor','');
        _email.inject(_reviewheader);
    }
    _camera.addEvent('click',function()
    {
        //alert(listing.PhotoGallery.length);
        PowercatVision.ListingsService.GetListingPhotos(listing.ID,function(text)
        {
            this.response.json = JSON.decode(text, this.options.secure); 
            var obj = eval(text);
            if(obj.Result != null && obj.Result.length > 0)
            {
                _review.set('html','<hr />');
                _review.setStyle('height','160');
            
                photos = obj.Result;
                photos.each(function(photo)
                {
                    var _imageContainer = new Element('span',{'class':'result_list_images_container'});
                    var _a_currentImage = new Element('a',{'href':photo.Src, 'rel':'milkbox[images_' + listing.ID + ']'});
                    var _currentImage = new Element('img',{'id':'img_' + photo.ID, 'src': photo.Src, 'class':'result_list_images_container'});
                    _currentImage.inject(_a_currentImage);
                     _a_currentImage.inject(_review);
                });
                Milkbox = new Milkbox();
            }
        })
//        if(listing.PhotoGallery.length > 0)
//        {
//            _review.set('html','<hr />');
//            _review.setStyle('height','160');
//            
//            listing.PhotoGallery.each(function(photo)
//            {
//                var _imageContainer = new Element('span',{'class':'result_list_images_container'});
//                var _a_currentImage = new Element('a',{'href':photo.Src, 'rel':'milkbox[images_' + listing.ID + ']'});
//                var _currentImage = new Element('img',{'id':'img_' + photo.ID, 'src': photo.Src, 'class':'result_list_images_container'});
//                _currentImage.inject(_a_currentImage);
//                 _a_currentImage.inject(_review);
//            });
//           Milkbox = new Milkbox();
//        }
    });
    _camera.inject(_reviewheader);
    if(listing.Website != null && listing.Website != "")
    {
        _world.inject(_a_website);
        _a_website.inject(_reviewheader);
    }
    else
    {
        _world.setStyle('cursor','');
        _world.inject(_reviewheader);
    }
    
    //show listing details
    _zoom.addEvent('click',function(e)
    {
        pageTracker._trackPageview('/Sites/SiteDetails/' + ConvertSymbols(decodeURI(listing.Name)));
        e = new Event(e);
        var _divDetailsContainer = $('listing_details');
        _divDetailsContainer.setStyle('vertical-align','top');
        var _searchResults = $('detail_search');
        var _addDetails = $('add_details');
        
        //Hiding all the main page elements
        HideTopElements();
        
        var fxSlideResults = new Fx.Slide(_addDetails, {duration: 1000}); 
        
        fxSlideResults.toggle();
        _divDetailsContainer.empty();
        var _detailsSeparator = new Element('hr');
        
        ///listing DETAILS TOOLBAR START
        var _divToolBar = new Element('div');
        var _toolBarSep = new Element('label',{'html':'&nbsp;|&nbsp;'});
        //Back To Results
        var _a_BackToResults = new Element('a',{'class':'listing_details_toolbar'});
        var _a_BackToResultsIcon = new Element('img',{'src':'app_themes/main/images/arrow_left.gif','class':'listing_details_toolbar'});
        
        _a_BackToResults.set('html','Back to Results');
        _a_BackToResults.addEvent('click',function()
        {
            _divDetailsContainer.setStyle('height','0');
            _divDetailsContainer.setStyle('vertical-align','');
            _divDetailsContainer.setStyle('display','none');
           _addDetails.setStyle('display','block');
           var wrapper = _addDetails.retrieve('wrapper');
            if(wrapper != null)
            {
               wrapper.setStyle('height','');
               fxSlideResults.slideIn();
               wrapper.setStyle('height','auto');
            }
            else
            {
                fxSlideResults.toggle();
            }
        });
        _a_BackToResultsIcon.inject(_divToolBar);
        _a_BackToResults.inject(_divToolBar);
        _toolBarSep.inject(_divToolBar);
        
        //Website
        var _a_Website = new Element('a',{'class':'listing_details_toolbar','href':_website,'target':'_blank','style':'color:#ffffff;'});
        var _a_WebsiteIcon = new Element('img',{'src':'app_themes/main/images/icon_world.gif'});
        var _toolWebsiteSep = new Element('label',{'html':'&nbsp;|&nbsp;'});
        
        _a_Website.set('html','Website');
        _a_WebsiteIcon.inject(_divToolBar);
        _a_Website.inject(_divToolBar);
        _toolWebsiteSep.inject(_divToolBar);
        
        //Add Review
        var _a_AddReview = new Element('a',{'class':'listing_details_toolbar','html':'Add Review','value':listing.ID,'id':'add_review'});
        var _a_AddReviewIcon = new Element('img',{'src':'app_themes/main/images/comment_new.gif'});
        var _toolAddReviewSep = new Element('label',{'html':'&nbsp;|&nbsp;'});
        
        _a_AddReview.addEvent('click',function()
        {
            pageTracker._trackPageview('/Sites/SiteDetails/AddReview/' + ConvertSymbols(decodeURI(listing.Name)));
            var contactInfo = $('contact_info');
            
            contactInfo.empty();
            
            var reviewEntryContainer = new Element('div',{'style':'float:left;position:relatvie;display:inline-block;'});
            
            var ratingStarsContainer = new Element('div');
            var ratingStars = new Element('span',{'id':'detail_rating_stars'});
            ratingStars.inject(ratingStarsContainer);
            
            var reviewMessageContainer = new Element('div',{'class':'review_message_container'});
            var reviewMessage = new Element('textarea',{'id':'review_message','class':'review_message'});
            reviewMessage.inject(reviewMessageContainer);
            
            var addReviewContainer = new Element('div');
            var addReview = new Element('input',{'type':'button'});
            addReview.set('value','Insert Review');
            reviewEntryContainer.addEvent('keydown',function()
            {
                if(window.event)
                {
                if(window.event.keyCode == 13)
                {
                    addReview.fireEvent('click');
                }
                }
            });
            addReview.addEvent('click',function()
            {
                //alert(JSON.encode(reviewMessage.value));
                PowercatVision.ReviewsService.InsertReview(listing.ID, ConvertSymbols(reviewMessage.value), ratingStars.value,'0','0','0','0','0', DetailInsertReview);
                reviewMessage.value = "";
                ResetRatingStars('detail');
            });
            addReview.inject(addReviewContainer);
            ratingStars.setStyle('top','5');
            ratingStars.setStyle('position','relative');
            ratingStarsContainer.inject(reviewEntryContainer);
            reviewMessageContainer.inject(reviewEntryContainer);
            addReviewContainer.inject(reviewEntryContainer);
            
            
            reviewEntryContainer.inject(contactInfo);
            
            CreateStars(ratingStars, 'detail');
            var _starsDirections = new Element('label');
            _starsDirections.set('html','(Click on a powercat to set a rating)');
            _starsDirections.inject(ratingStars);
        });
        
        _a_AddReviewIcon.inject(_divToolBar);
        _a_AddReview.inject(_divToolBar);
        _toolAddReviewSep.inject(_divToolBar);
        
        //Directions to Here
        var _a_DirectionToHere = new Element('a',{'class':'listing_details_toolbar','html':'Get Directions'});
        var _a_DirectionToHereIcon = new Element('img',{'src':'app_themes/main/images/arrow_right.gif'});
        
        _a_DirectionToHere.addEvent('click',function()
        {
            pageTracker._trackPageview('/Sites/GetDirections/' + ConvertSymbols(decodeURI(listing.Name)));
            var contactInfo = $('contact_info');
            var reviewInfo = $('review_info');
            
            contactInfo.empty();
            reviewInfo.empty();
            
            var mapControlList = new Element('div',{'class':'address_container'});
            
            var _directions = new Element('label',{'html':'Enter a start address to get directions to this listing.'});
            //_directions.inject(contactInfo);
            var _fieldset = new Element('fieldset');
            var _fieldsetLegend = new Element('legend',{'html':'Start Address'});
            _fieldsetLegend.inject(_fieldset);
            var _controlList = new Element('ul');
            var streetLI = new Element('li');
            var streetContainer = new Element('div',{'class':'street_container'});
            var streetAddressLbl = new Element('label');
            streetAddressLbl.set('html','Street Address');
            var streetBreak = new Element('br');
            var streetAddress = new Element('input',{'id':'start_address'});
            streetAddress.addEvent('focus',function()
            {
                if(streetAddress.value == 'Street Required')
                {
                    streetAddress.setStyle('color','black');
                    streetAddress.value = '';
                }
            });
            streetAddressLbl.inject(streetLI);
            //streetBreak.inject(streetContainer);
            streetAddress.inject(streetLI);
            //streetContainer.inject(streetLI);
            
            var cityLI = new Element('li');
            var cityContainer = new Element('div',{'class':'city_container'});
            var cityLbl = new Element('label');
            cityLbl.set('html','City');
            var cityBreak = new Element('br');
            var city = new Element('input',{'id':'city_address'});
            city.addEvent('focus',function()
            {
                if(city.value == 'City Required')
                {
                    city.setStyle('color','black');
                    city.value = '';
                }
            });
            cityLbl.inject(cityLI);
            //cityBreak.inject(cityContainer);
            city.inject(cityLI);
            //cityContainer.inject(cityLI);
            
            var stateLI = new Element('li');
            var stateContainer = new Element('div',{'class':'state_container'});
            var stateLbl = new Element('label');
            stateLbl.set('html','State');
            var stateBreak = new Element('br');
            var state = new Element('select',{'id':'state_address'});
            var stateFirst = new Element('option',{'value':'0','selected':'true'});
            stateFirst.set('html','[Select a State');
            stateFirst.inject(state);
            stateLbl.inject(stateLI);
            //stateBreak.inject(stateContainer);
            state.inject(stateLI);
            //stateContainer.inject(stateLI);
            
            //var cityLI = new Element('li');
            var zipContainer = new Element('div',{'class':'zip_container'});
            var zipLbl = new Element('label');
            zipLbl.set('html','Zip');
            var zipBreak = new Element('br');
            var zip = new Element('input',{'id':'zip_address'});
            zipLbl.inject(zipContainer);
            //zipBreak.inject(zipContainer);
            zip.inject(zipContainer);
            
            var spacer = new Element('label');
            spacer.set('html','&nbsp;&nbsp;');
            var getDirections = new Element('input',{'type':'button'});
            getDirections.set('value','Get Directions');
            PowercatVision.MetaData.GetStates(FillListingDetailsStates);
            streetLI.inject(_controlList);
            cityLI.inject(_controlList);
            stateLI.inject(_controlList);
            _controlList.inject(_fieldset);
            getDirections.inject(_fieldset);
            _fieldset.inject(contactInfo);
            //spacer.inject(contactInfo);
            
            _controlList.addEvent('keydown',function()
            {
                //alert(window.event.keyCode);
                if(window.event)
                {
                    if(window.event.keyCode == 13)
                    {
                        getDirections.fireEvent('click');
                    }
                }
            });
            getDirections.addEvent('click',function()
            {
                pageTracker._trackPageview('/Sites/SiteDetails/SubmittedDirections/' + ConvertSymbols(decodeURI(listing.Name)));
                var addressEntered = $('start_address');
                var cityEntered = $('city_address');
                var stateEntered = $('state_address');
                var selectedState = stateEntered.getSelected();
                //alert(addressEntered.value);
                var currentMap = $('map' + listing.ID);
                //alert(currentMap.innerHTML);
                var map = new GMap2(currentMap);
                var directionsPanel = $('review_info');
                var directions = new GDirections(map, directionsPanel);
                if(addressEntered.value == '')
                {
                    addressEntered.setStyle('color','red');
                    addressEntered.value = 'Street Required';
                    return;
                }
                if(cityEntered.value == '')
                {
                    cityEntered.setStyle('color','red');
                    cityEntered.value = 'City Required';
                    return;
                }
                
                if(stateEntered.value == '0')
                {
                    stateLbl.setStyle('color','red');
                    stateLbl.set('html','State Required');
                    return;
                }
                else
                {
                    stateLbl.setStyle('color','black');
                    stateLbl.set('html','State');
                }
                
                directions.load(decodeURI('from:' + addressEntered.value) + ',' + ConvertSymbols(decodeURI(cityEntered.value)) + ',' + decodeURI(selectedState.get('html')) + ' to:' + decodeURI(listing.Address) + ',' + decodeURI(listing.CityInfo.Name) + ',' + decodeURI(listing.StateInfo.StateName));
                var _existingDirectionsToolbar = $('directions_toolbar');
                if (_existingDirectionsToolbar != null)
                {
                    _existingDirectionsToolbar.destroy();
                }
                var directionsToolBar = new Element('div',{'id':'directions_toolbar'});
                var _printDirectionsLbl = new Element('a',{'class':'listing_details_toolbar','html':'Print Directions'});
                var _printDirectionsIcon = new Element('img',{'src':'app_themes/main/images/action_print.gif'});
                var _hr = new Element('hr');
                _printDirectionsLbl.addEvent('click',function()
                {
                    var _logoContainer = new Element('div');
                    _logoContainer.setStyle('text-align','center');
                    _logoContainer.setStyles(
                    {
                        width:797,
                        padding:3
                    });
                    var _printedByLabel = new Element('label',{'html':'Printed from PowercatVision.com'});
                    var _footerBreak = new Element('br');
                    var _logo = new Element('img',{'src':'app_themes/main/images/logo.png'});
                    _printedByLabel.inject(_logoContainer);
                    _footerBreak.inject(_logoContainer);
                    //_logo.inject(_logoContainer);
                    _logoContainer.inject(directionsPanel,'bottom');
                    var newWin = window.open("","printDirection","width=800px,height=600px");
                    newWin.document.open();
                    newWin.document.write("<html>" + directionsPanel.get('html'));
                    newWin.document.writeln("<script>window.print();");
                    newWin.document.writeln("</"+"script></html>");
                    newWin.document.close();

                });
                
                _printDirectionsIcon.inject(directionsToolBar);
                _printDirectionsLbl.inject(directionsToolBar);
                _hr.inject(directionsToolBar);
                
                directionsToolBar.inject(contactInfo,'top');
                map.checkResize();
            });
        });
        
        _a_DirectionToHereIcon.inject(_divToolBar);
        _a_DirectionToHere.inject(_divToolBar);
        
        _divToolBar.inject(_divDetailsContainer);
        _detailsSeparator.inject(_divDetailsContainer);
        //listing DETAILS TOOLBAR END
        
        //<a id="mapLink" onclick="showAddress('8025 Perry, Overland Park, KS')" style="cursor:hand;">Map</a>
        
        //DETAILS HEADER
        var _divDetailsHeader = new Element('div',{'class':'details_header'});
        _divDetailsHeader.set('html','');
        _divDetailsHeader.set('html',decodeURI(listing.Name));
        //DETAILS HEADER
        
        //DETAILS MAIN PIC
        var _divMainPic = new Element('div',{'class':'listing_details_image_container'});
        var _noPic = false;
        if(listing.PhotoGallery != null && listing.PhotoGallery.length > 0)
        {
            var _imgMainPic = new Element('img',{'src':listing.PhotoGallery[0].Src,'class':'listing_details_image'});
            _imgMainPic.inject(_divMainPic);
        }
        else
        {
            _divMainPic.set('html','No Pictures currently available.');
        }
        //DETAILS MAIN PIC
        
        //DETAILS MAP
        var _divMap = new Element('div',{'id':'map' + listing.ID, 'class':'details_map'});
        //DETAILS MAP
        
        //DETAILS REVIEWS
        var _divReviewsHeader = new Element('span',{'html':'REVIEWS<hr />'});
        var _divReviews = new Element('div',{'id':'review_info','class':'listing_details_reviews'});
        _divReviewsHeader.inject(_divReviews);
        //if(listing.Reviews != null)
        //{
           PowercatVision.ReviewsService.GetAllReviewsForListing(listing.ID, function(text)  
           {
            this.response.json = JSON.decode(text, this.options.secure);
            var obj = eval(text);
            obj.Result.each(function(review)
            {
                var _reviewCon = new Element('div');
                var _reviewheader = new Element('span',{'class':'result_list_header','style':'width:100%;float:left;'});
                _reviewheader.setStyle('height','');
                var _reviewRating = new Element('span');
                //alert(review.TimeStamp);
                //alert(review.KsuRating);
                for(i=0;i<=review.KsuRating-1;i++)
                {
                    var _filledStar = new Element('img',{'src':'app_themes/main/images/powercat_on.png'});
                    _filledStar.inject(_reviewRating);
                }
                var _review = new Element('span',{'class':'result_list_review','style':'float:left;width:100%;'});
                _reviewheader.set('html',review.TimeStamp + ' | ');
                
                _review.set('html',ConvertSymbols(decodeURI(review.ReviewMessage)) + '<hr /><br /><br />');
                
                _reviewRating.inject(_reviewheader);
                _reviewheader.inject(_reviewCon);
                _review.inject(_reviewCon);
                _reviewCon.inject(_divReviews);
            });
            });
        //}
//DETAILS REVIEWS
        
//DETAILS CONTACT INFO
        var _divContactInfoHeader = new Element('span',{'id':'contact_header','html':'CONTACT INFO<hr />'});
        var _divContactInfo = new Element('div',{'id':'contact_info','class':'listing_details_contactinfo'});
        _divContactInfoHeader.inject(_divContactInfo);
        
        var _ulContactInfo = new Element('ul',{'class':'listing_details_contactinfo_ul'});
        var _liPhone = new Element('li',{'html':'<b>Phone:</b>&nbsp;' + ConvertSymbols(decodeURI(listing.Phone))});
        var _email;
        if(listing.Email != null & listing.Email != "")
        {
            _email = ConvertSymbols(decodeURI(listing.Email));
        }
        else
        {
            _email = "<i>Currently there is not an email address.<i/>";
        }
        var _liEmail = new Element('li',{'html':'<b>Email:</b>&nbsp;' + _email});
        
        _liPhone.inject(_ulContactInfo);
        _liEmail.inject(_ulContactInfo);
        
        _ulContactInfo.inject(_divContactInfo);
//DETAILS CONTACT INFO
        
        
//ADDING ALL ELEMENTS TO THE DETAILS CONTAINER
        _divDetailsHeader.inject(_divDetailsContainer);
        _divMainPic.inject(_divDetailsContainer);
        _divContactInfo.inject(_divDetailsContainer);
        _divReviews.inject(_divDetailsContainer);
        _divMap.inject(_divDetailsContainer);
        
        var _address = decodeURI(listing.Address) + ',' + decodeURI(listing.CityInfo.Name) + ',' + listing.StateInfo.StateAbbr;
        showAddress(_address,_divMap.id);
        _divDetailsContainer.setStyle('display','block');
    });
    _zoom.inject(_reviewheader);
    
    _addreview.addEvent('click',function()
    {
        pageTracker._trackPageview('/Sites/AddReview/' + ConvertSymbols(decodeURI(listing.Name)));
        _review.set('html','<hr />');
        
        var reviewEntryContainer = new Element('div');
        
        var ratingStarsContainer = new Element('div');
        var ratingStars = new Element('span',{'id':'detail_rating_stars'});
        ratingStars.inject(ratingStarsContainer);
        
        var reviewMessageContainer = new Element('div',{'class':'review_message_container'});
        var reviewMessage = new Element('textarea',{'id':'review_message','class':'review_message'});
        reviewMessage.inject(reviewMessageContainer);
        
        var addReviewContainer = new Element('div');
        var addReview = new Element('input',{'type':'button'});
        addReview.set('value','Insert Review');
        reviewEntryContainer.addEvent('keydown',function()
        {
            if(window.event)
            {
            if(window.event.keyCode == 13)
            {
                addReview.fireEvent('click');
            }
            }
        });
        addReview.addEvent('click',function()
        {
            PowercatVision.ReviewsService.InsertReview(listing.ID, reviewMessage.value, ratingStars.value, '0','0','0','0','0', SearchResultInsertReview);
            reviewMessage.value = "";
            ResetRatingStars('searchreview');
        });
        addReview.inject(addReviewContainer);
        
        ratingStarsContainer.inject(reviewEntryContainer);
        reviewMessageContainer.inject(reviewEntryContainer);
        addReviewContainer.inject(reviewEntryContainer);
        
        
        reviewEntryContainer.inject(_review);
        
        CreateStars(ratingStars, 'searchreview');
        var _starsDirections = new Element('label');
        _starsDirections.set('html','(Click on a powercat to set a rating)');
        _starsDirections.inject(ratingStars);
        _review.setStyle('height','185');
    });
    
    //Inject button to add a review
    _addreview.inject(_reviewheader);
    
    //Official GPC Site Label
    //alert(listing.OfficialGPCLocation);
//    if(listing.OfficialGPCLocation == 'True')
//    {
//        _officialGPC.set('html','<br><b>-Official GoPowercat.com Away Location-</b>');
//        _officialGPC.set('margin-left','10');
//        _officialGPC.inject(_reviewheader);
//    }
    
    var _ratings = $('ratings' + listing.ID);
    if(_ratings != null)
    {
        _ratings.destroy();
    }
    var _amenities = $('amenities' + listing.ID);
    if(_amenities != null)
    {
        _amenities.destroy();
    }
    
    _amenities = new Element('div',{'id':'amenities' + listing.ID,'class':'amenities_container'});
    _ratings = new Element('div',{'id':'ratings' + listing.ID,'class':'ratings_container'});
    _ratingsbutton.addEvent('click',function()
    {
        var _ratings = $('ratings' + listing.ID);
        if(_ratings != null)
        {
            _ratings.destroy();
        }
        var _amenities = $('amenities' + listing.ID);
        if(_amenities != null)
        {
            _amenities.destroy();
        }
        _amenities = new Element('div',{'id':'amenities' + listing.ID,'class':'amenities_container'});
        _ratings = new Element('div',{'id':'ratings' + listing.ID,'class':'ratings_container'});
        
        _review.set('html','');
        _review.setStyle('height','');
        
        RenderAmenities(listing, _amenities);
        RenderRatings(listing, _ratings);
        
        _amenities.inject(_review);
        _ratings.inject(_review);
        
        pageTracker._trackPageview('/Sites/Ratings/' + ConvertSymbols(decodeURI(listing.Name)));
    });
    
    _information.addEvent('click',function()
    {
        _review.set('html','');
        _review.setStyle('height','');
        _review.set('html','<br /><hr />' + ConvertSymbols(decodeURI(listing.Description)));
    });
    //Adding Initial Ratings and Amenities
    
    
    
    RenderAmenities(listing, _amenities);
    RenderRatings(listing, _ratings);
    
    //var _ratingsList = _ratings.getElement('ul');
    //_ratingsList.set('style','width:100%;');
    _amenities.inject(_review);
    _ratings.inject(_review);
//    if(listing.OfficialGPCLocation == 'True')
//    {
//        _reviewheader.inject(_officialGPC);
//        _review.inject(_officialGPC);
//        _officialGPC.inject(_infoContainer);
//    }
//    else
//    {
        _reviewheader.inject(_infoContainer);
        _review.inject(_infoContainer);
    //}
    _infoContainer.inject(_div);
}
function RenderRecentListingsAdmin(text)
{
     this.response.json = JSON.decode(text, this.options.secure);
     var obj = eval(text);
     var calloutList = $('recent_listings'); 
     calloutList.empty();
     var _header = new Element('label',{'html':'<b>RECENT SHOPS</b><hr />'});
     _header.inject(calloutList);
     obj.Result.each(function(listing)
     {
        RecentListings(text, listing, calloutList);
     });
}


function InsertListing()
{
    //var overallRating = $('overall_rating');
   
    
    //alert('Overall: ' + overallRating.get('value'));
    //alert('KSU: ' + ksuRating.get('value'));
    //alert('Food: ' + foodRating.get('value'));
    //alert('Service: ' + serviceRating.get('value'));
    //alert('Clean: ' + cleanRating.get('value'));
    //alert('Seat: ' + seatRating.get('value'));
    //alert('Variety: ' + varietyRating.get('value'));
    //alert('HD: ' + addHD.get('checked'));
    var sPath = window.location.pathname;
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    var _uacct;
    var pageTracker;
    if(sPath.indexOf('admin') < 0)
    {
        _uacct = "UA-6427972-1";
        pageTracker = _gat._getTracker(_uacct);
    }
    var _name = $('addName');
    var _addone = $('addAddressOne');
    var _city = $('addshop_city');
    var _newCity = 'true';
    if(_city == null)
    {
        _city = $('addCities');
        _newCity = 'false';
    }
    
    var _states = $('addStates');
    var _zip = $('addZip');
    var _phone = $('addPhone');
    var _email = $('addEmail');
    var _website = $('addWebsite');
    var _description = $('addDescription');
    var _officialGpcLocation = $('official_gpc_location');
    
    var overallRating = $('overall_rating');
    var ksuRating = $('ksu_rating');
    var foodRating = $('food_rating');
    var serviceRating = $('service_rating');
    var cleanRating = $('clean_rating');
    var seatRating = $('seat_rating');
    var varietyRating = $('variety_rating');
    var addHD = $('addHD');
    var addWifi = $('addWifi');
    var addSpecials = $('addSpecials');
    var addCable = $('addCable');
    var addDirectTV = $('addDirectTV');
    var addDish = $('addDish');
    
    //string ksuRating, string foodRating, string serviceRating, string cleanRating, string seatRating, string varietyRating, 
    //string _hd, string _wifi, string _specials, string _cable, string _directTV, string _dish
    var message = $('errorMessageSites');
    var result = ValidateRequiredFields();
    //alert(result);
    var _officialGpcLocationValue = '0';
    if(_officialGpcLocation != null)
    {
        _officialGpcLocationValue = _officialGpcLocation.get('checked');
    }
    if(result != '')
    {
        message.set('html',result);
    }
    else
    {
        PowercatVision.ListingsService.InsertShop(ConvertSymbols(decodeURI(_name.value)), ConvertSymbols(decodeURI(_addone.value)), ConvertSymbols(decodeURI(_city.value)), ConvertSymbols(decodeURI(_states.value)), ConvertSymbols(decodeURI(_zip.value)), ConvertSymbols(decodeURI(_phone.value)), ConvertSymbols(decodeURI(_email.value)), ConvertSymbols(decodeURI(_website.value)), ConvertSymbols(decodeURI(_description.value)), _officialGpcLocationValue, ConvertSymbols(decodeURI(_newCity)), overallRating.get('value'), ksuRating.get('value'), foodRating.get('value'), serviceRating.get('value'), cleanRating.get('value'), seatRating.get('value'), varietyRating.get('value'),addHD.get('checked'), addWifi.get('checked'), addSpecials.get('checked'), addCable.get('checked'), addDirectTV.get('checked'), addDish.get('checked'), ListingInserted);
    }
    
    
    
}
function ValidateRequiredFields()
{
    var sPath = window.location.pathname;
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    var _uacct;
    var pageTracker;
    if(sPath.indexOf('admin') < 0)
    {
        _uacct = "UA-6427972-1";
        pageTracker = _gat._getTracker(_uacct);
    }
    var valid = '';
    var _name = $('addName');
    var _addone = $('addAddressOne');
    var _city = $('addshop_city');
    var _newCity = 'true';
    var _description = $('addDescription');
    var overallRating = $('overall_rating');
    var ksuRating = $('ksu_rating');
    var foodRating = $('food_rating');
    var serviceRating = $('service_rating');
    var cleanRating = $('clean_rating');
    var seatRating = $('seat_rating');
    var varietyRating = $('variety_rating');
    var _selectedCity;
    if(_city == null)
    {
        _city = $('addCities');
        _newCity = 'false';
        _selectedCity = $('addCities').getSelected();
    }
    //alert(valid);
    var _states = $('addStates');
    var _selectedState = $('addStates').getSelected();
    //alert(valid);
    if(_name.value == '')
    {
        _name.setStyle('border','solid 1px red');
        valid = 'Please add a name for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoName');
        return valid;
    }
    else
    {
        _name.setStyle('border','');
    }
    //alert(valid);
    if(_addone.value == '')
    {
        _addone.setStyle('border','solid 1px red');
        valid = 'Please add an address for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoAddress');
        return valid;
    }
    else
    {
        _addone.setStyle('border','');
    }
    if(_selectedState.get('value') == '0')
    {
        _states.setStyle('border','solid 1px red');
        valid = 'Please select a state for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoState');
        return valid;
    }
    else
    {
        _states.setStyle('border','');
    }
    //alert(valid);
    if(_newCity == 'false' && _selectedCity.get('value') == '0')
    {
        _city.setStyle('border','solid 1px red');
        valid = 'Please select a city for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoCity');
        return valid;
    }
    else
    {
        _city.setStyle('border','');
    }
    //alert(valid);
    if(_newCity == 'true' && _city.value == '')
    {
        _city.setStyle('border','solid 1px red');
        valid = 'Please insert a name for the city.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoNewCityName');
        return valid;
    }
    else
    {
        _city.setStyle('border','');
    }
    if(_description.value == '')
    {
        _description.setStyle('border','solid 1px red');
        valid = 'Please add a brief description for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoDescription');
        return valid;
    }
    else
    {
        _description.setStyle('border','');
    }
    if(overallRating.get('value') == '0')
    {
        overallRating.setStyle('border','solid 1px red');
        valid = 'Please select a overall rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoOverallRating');
        return valid;
    }
    else
    {
        overallRating.setStyle('border','');
    }
    //KSU Friendliness:
    //Food:
    //Overall Service:
    //Overall Cleanliness:
    //Seating Quality:
    //Food & Drink Variety:
    if(ksuRating.get('value') == '0')
    {
        ksuRating.setStyle('border','solid 1px red');
        valid = 'Please select a KSU rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoKSURating');
        return valid;
    }
    else
    {
        ksuRating.setStyle('border','');
    }
    if(foodRating.get('value') == '0')
    {
        foodRating.setStyle('border','solid 1px red');
        valid = 'Please select a food rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoFoodRating');
        return valid;
    }
    else
    {
        foodRating.setStyle('border','');
    }
    if(serviceRating.get('value') == '0')
    {
        serviceRating.setStyle('border','solid 1px red');
        valid = 'Please select a overall service rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoServiceRating');
        return valid;
    }
    else
    {
        serviceRating.setStyle('border','');
    }
    if(cleanRating.get('value') == '0')
    {
        cleanRating.setStyle('border','solid 1px red');
        valid = 'Please select a overall cleanliness rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoCleanlinessRating');
        return valid;
    }
    else
    {
        cleanRating.setStyle('border','');
    }
    if(seatRating.get('value') == '0')
    {
        seatRating.setStyle('border','solid 1px red');
        valid = 'Please select a overall seating rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoSeatRating');
        return valid;
    }
    else
    {
        seatRating.setStyle('border','');
    }
    if(varietyRating.get('value') == '0')
    {
        varietyRating.setStyle('border','solid 1px red');
        valid = 'Please select a overall food & drink variety rating for this establishment.';
        pageTracker._trackPageview('/Sites/AddSite/Error/NoVarietyRating');
        return valid;
    }
    else
    {
        varietyRating.setStyle('border','');
    }
    //alert(valid);
    return valid;
}
function FillAddListingStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('addStates');
    if(_dropDownListStates != null)
    {
        _dropDownListStates.addEvent('change',function()
        {
            PowercatVision.MetaData.GetStateCities(this.get('value'),FillAddListingCities);
        });
        obj.Result.each(function(state)
        {
            var _option = new Element('option');
            _option.set('value',state.StateID);
            _option.set('text',state.StateName);
            _option.inject(_dropDownListStates);
            
        });
    }
}
function FillEditListingStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('edit_states');
    if(_dropDownListStates != null)
    {
        _dropDownListStates.addEvent('change',function()
        {
            PowercatVision.MetaData.GetStateCities(this.get('value'),FillEditListingCities);
        });
        obj.Result.each(function(state)
        {
            var _option = new Element('option');
            _option.set('value',state.StateID);
            _option.set('text',state.StateName);
            _option.inject(_dropDownListStates);
            
        });
    }
}
function FillAdminSearchStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('adminSearchStates');
    if(_dropDownListStates != null)
    {
        _dropDownListStates.addEvent('change',function()
        {
            PowercatVision.MetaData.GetStateCities(this.get('value'),FillAdminSearchCities);
        });
        obj.Result.each(function(state)
        {
            var _option = new Element('option');
            _option.set('value',state.StateID);
            _option.set('text',state.StateName);
            _option.inject(_dropDownListStates);
            
        });
    }
}
function FillAddListingCities(text)
    {
        this.response.json = JSON.decode(text, this.options.secure);
        var obj = eval(text);
        var _dropDownListCities = $('addCities');
        if(_dropDownListCities != null)
        {
        _dropDownListCities.empty();
        }
        if(obj.Result.length > 0)
        {
            if(_dropDownListCities == null)
            {
                _dropDownListCities = new Element('select',{'id':'addCities'});
                 var _newCity = $('addshop_city');
                _dropDownListCities.replaces(_newCity);
                
            }
            _dropDownListCities.setStyle('visibility','visible');
            //_newCity.setStyle('visibility','hidden');
            var _option = new Element('option');
            _option.set('value','0');
            _option.set('text','[Select a City]');
            _option.inject(_dropDownListCities);
            
            var _option = new Element('option');
            _option.set('value','1');
            _option.set('text','[Add New City]');
            _option.inject(_dropDownListCities);
            obj.Result.each(function(city)
            {
                var _option = new Element('option');
                _option.set('value',city.CityID);
                _option.set('text',decodeURI(city.Name));
                _option.inject(_dropDownListCities);
            });
            _dropDownListCities.focus();
            _dropDownListCities.addEvent('change',function()
            {
                //alert(_dropDownListCities.getSelected());
                var _selected = _dropDownListCities.getSelected();
                //alert(_selected.get('html'));
                if(_selected.get('html') == '[Add New City]')
                {
                    var _newCity = new Element('input',{'id':'addshop_city'});
                    var _dropDownListCitiesParent = _dropDownListCities.getParent();
                    _newCity.replaces(_dropDownListCities);
                    _newCity.focus();
                }
            });
        }
        else
        {
            var _existingCity = $('addshop_city');
            if(_existingCity == null)
            {
            var _newCity = new Element('input',{'id':'addshop_city'});
            var _dropDownListCitiesParent = _dropDownListCities.getParent();
            _newCity.replaces(_dropDownListCities);
            _newCity.focus();
            }
        }
    }
    function FillEditListingCities(text)
    {
        this.response.json = JSON.decode(text, this.options.secure);
        var obj = eval(text);
        var _dropDownListCities = $('edit_city');
        if(_dropDownListCities != null)
        {
        _dropDownListCities.empty();
        }
        if(obj.Result.length > 0)
        {
            if(_dropDownListCities == null)
            {
                _dropDownListCities = new Element('select',{'id':'edit_city'});
                 var _newCity = $('addshop_city');
                _dropDownListCities.replaces(_newCity);
                
            }
            _dropDownListCities.setStyle('visibility','visible');
            //_newCity.setStyle('visibility','hidden');
            var _option = new Element('option');
            _option.set('value','0');
            _option.set('text','[Select a City]');
            _option.inject(_dropDownListCities);
            
            obj.Result.each(function(city)
            {
                var _option = new Element('option');
                _option.set('value',city.CityID);
                _option.set('text',decodeURI(city.Name));
                _option.inject(_dropDownListCities);
            });
        }
    }
    function FillAdminSearchCities(text)
    {
        this.response.json = JSON.decode(text, this.options.secure);
        var obj = eval(text);
        var _dropDownListCities = $('adminSearchCities');
        if(_dropDownListCities != null)
        {
        _dropDownListCities.empty();
        }
        if(obj.Result.length > 0)
        {
            if(_dropDownListCities == null)
            {
                _dropDownListCities = new Element('select',{'id':'adminSearchCities'});
            }
            _dropDownListCities.addEvent('change',function()
            {
                PowercatVision.ListingsService.GetListingsForEditByCity(this.get('value'),FillAdminSearchEstablishments);
            });
            _dropDownListCities.setStyle('visibility','visible');
            //_newCity.setStyle('visibility','hidden');
            var _option = new Element('option');
            _option.set('value','0');
            _option.set('text','[Select a City]');
            _option.inject(_dropDownListCities);
            
             obj.Result.each(function(city)
            {
                var _option = new Element('option');
                _option.set('value',city.CityID);
                _option.set('text',decodeURI(city.Name));
                _option.inject(_dropDownListCities);
            });
        }
    }
     function FillAdminSearchEstablishments(text)
    {
        this.response.json = JSON.decode(text, this.options.secure);
        var obj = eval(text);
        var _dropDownListShops = $('adminSearchShops');
        if(_dropDownListShops != null)
        {
        _dropDownListShops.empty();
        }
        if(obj.Result.length > 0)
        {
            if(_dropDownListShops == null)
            {
                _dropDownListShops = new Element('select',{'id':'adminSearchShops'});
            }
            _dropDownListShops.setStyle('visibility','visible');
            //_newCity.setStyle('visibility','hidden');
            var _option = new Element('option');
            _option.set('value','0');
            _option.set('text','[Select a Establishment]');
            _option.inject(_dropDownListShops);
            
             obj.Result.each(function(shop)
            {
                var _option = new Element('option');
                _option.set('value',shop.ID);
                _option.set('text',decodeURI(shop.Name));
                _option.inject(_dropDownListShops);
            });
        }
        else
        {
            if(_dropDownListShops == null)
            {
                _dropDownListShops = new Element('select',{'id':'adminSearchShops'});
            }
            _dropDownListShops.setStyle('visibility','visible');
            //_newCity.setStyle('visibility','hidden');
            var _option = new Element('option');
            _option.set('value','0');
            _option.set('text','[Select a Establishment]');
            _option.inject(_dropDownListShops);
        }
    }
function ListingInserted(text)
{
        var sPath = window.location.pathname;
        var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
        var _uacct;
        var pageTracker;
        if(sPath.indexOf('admin') < 0)
        {
            _uacct = "UA-6427972-1";
            pageTracker = _gat._getTracker(_uacct);
        }
        var _name = $('addName');
        var _addone = $('addAddressOne');
        var _city = $('addshop_city');
        var _newCity = 'true';
        if(_city == null)
        {
            _city = $('addCities');
            _newCity = 'false';
        }
        
        var _states = $('addStates');
        var _zip = $('addZip');
        var _phone = $('addPhone');
        var _email = $('addEmail');
        var _website = $('addWebsite');
        
        var ksuRating = $('ksu_rating');
        var foodRating = $('food_rating');
        var serviceRating = $('service_rating');
        var cleanRating = $('clean_rating');
        var seatRating = $('seat_rating');
        var varietyRating = $('variety_rating');
        var addHD = $('addHD');
        var addWifi = $('addWifi');
        var addSpecials = $('addSpecials');
        var addCable = $('addCable');
        var addDirectTV = $('addDirectTV');
        var addDish = $('addDish');
        var _addListing = $('add_details');
        var _addDescription = $('addDescription');
        
        var _insertShopRes = new Element('div');
        var _a_AddAnother = new Element('input',{'type':'button'});
        _a_AddAnother.set('value','Add Another Listing');
        var _success = new Element('div');
        _success.set('html','The listing was successfully added.  Thank you for your participation.');
        _a_AddAnother.addEvent('click',function()
        {
            //$('addshop_left_col').setStyle('display','block');
            //$('addshop_center_col').setStyle('display','block');
            //$('addshop_right_col').setStyle('display','block');
            _insertShopRes.destroy();
        });
        //_success.inject(_insertShopRes);
        //_a_AddAnother.inject(_insertShopRes);
        //_insertShopRes.inject(_addShop,'top');
        
        _name.value = '';
        _addone.value = '';
        if(_newCity)
        {
            _city.value = '';
        }
        else
        {
            _city.value = '0';
        }
        _states.value = '0';
        _zip.value = '';
        _phone.value = '';
        _email.value = '';
        _website.value = '';
        _addDescription.value = '';
        //_internet.value = '0';
        //_seating.value = '0';
        addHD.removeProperty('checked');
        addWifi.removeProperty('checked');
        addSpecials.removeProperty('checked');
        addCable.removeProperty('checked');
        addDirectTV.removeProperty('checked');
        addDish.removeProperty('checked');
        CreateListingRatingStars();
        var varDate = new Date();
        var _statusMessage = $('statusMessage');
        var statusMessage = new Element('label',{'html':'Thank you for your participation.  Your establishment has been successfully added on ' + varDate.toDateString() + ' at ' + varDate.toTimeString()});
        statusMessage.inject(_statusMessage);
        _statusMessage.tween('height',[0,50])
        _statusMessage.setStyle('display','block');
        pageTracker._trackPageview('/Sites/SiteInserted');
        var tweenStatusMessage = function()
        {
            _statusMessage.tween('height',[50,0]);
            _statusMessage.setStyle('display','none');
        };
        tweenStatusMessage.delay(5000);
        
    }
function GetListings()
{
    var _uacct = "UA-6427972-1";
    var pageTracker = _gat._getTracker(_uacct);
    
    var _states = $('selectState');
    var _cities = $('filterCity');
    
    var _stateName = _states.getSelected().get('text');
    var _cityName = _cities.getSelected().get('text');
    
    pageTracker._trackPageview('/Sites/Search/' + _stateName + '/' + _cityName);
    
    var _stateValue = _states.get('value');
    var _cityValue = _cities.get('value');
    
    if(_stateValue == '0')
    {
        $('errorMessageSites').set('html','Please select a state.');
        return;
    }
    
    if(_cityValue == '0')
    {
        $('errorMessageSites').set('html','Please select a city.');
        return;
    }
     $('errorMessageSites').setStyle('display','none');
    HideAllDetails();
    PowercatVision.ListingsService.GetFilteredListings('',_cities.get('value'),'','0','5','', DisplayListingResults);
    
//    var _mainContainer = $('main_container');
//    var _footer = $('pcv_footer');
//    var _footerBottomBorder = $('pcv_bottom_border');
//    var _mainContent = $('main_content');
//    
//    var fxExpandMainContainer = new Fx.Tween(_mainContainer, {duration: 1000});
//    var fxExpandMainContent = new Fx.Tween(_mainContent, {duration: 1000});
//    var fxMoveBottomBorder = new Fx.Tween(_footerBottomBorder, {duration: 1000});
//    var fxMoveFooter = new Fx.Tween(_footer, {duration: 1000});
//    var fxSwitchBackground = new Fx.Tween(_mainContent,{duration:0});
//    
//    fxMoveFooter.start('margin-top','');
//    fxMoveBottomBorder.start('margin-top','');
//    fxExpandMainContainer.start('height','763');
//    fxExpandMainContent.start('height','750');
//    fxSwitchBackground.start('background-image','url(app_themes/main/images/main_content_tall.png)');
}
//string shop, string city, string zip, string _pageStart, string _pageSize, out string _totalShops
function GetPagedListings(_pageStart, _pageSize)
{
    var _states = $('selectState');
    var _cities = $('filterCity');
    
    var _stateValue = _states.get('value');
    var _cityValue = _cities.get('value');
    
    if(_stateValue == '0')
    {
        $('errorMessageSites').set('html','Please select a state.');
        return;
    }
    
    if(_cityValue == '0')
    {
        $('errorMessageSites').set('html','Please select a city.');
        return;
    }
     $('errorMessageSites').setStyle('display','none');
    HideAllDetails();
    PowercatVision.ListingsService.GetFilteredListings('',_cities.get('value'),'',_pageStart,_pageSize,'', DisplayListingResults);
}
function HideAllDetails()
{
    //var _homeDetails = $('home_details');
    //_homeDetails.setStyle('display','none');
//    var _aboutDetails = $('about_details');
//    _aboutDetails.setStyle('display','none');
    //var _contactDetails = $('contact_details');
    //_contactDetails.setStyle('display','none');
}
function DetailInsertReview(text)
{
    PowercatVision.ReviewsService.GetReviewsForListing('0','5',$('add_review').value, completeHandlerForDetailShopReviews);
}

function completeHandlerForDetailShopReviews(reviews)
{
    this.response.json = JSON.decode(reviews, this.options.secure); 
    var obj = eval(reviews);
    //DETAILS REVIEWS
    var _divReviewsHeader = new Element('span',{'html':'REVIEWS<hr />'});
    var _divReviews = $('review_info');
    //new Element('div',{'id':'review_info','class':'shop_details_reviews'});
    _divReviews.empty();
    _divReviewsHeader.inject(_divReviews);
    //alert(obj.Result.length);
    obj.Result.each(function(review)
    {
        var _reviewCon = new Element('div');
        var _reviewheader = new Element('span',{'class':'result_list_header','style':'width:100%;float:left;'});
        _reviewheader.setStyle('height','');
        var _reviewRating = new Element('span');
        for(i=0;i<=review.KsuRating-1;i++)
        {
            var _filledStar = new Element('img',{'src':'app_themes/main/images/powercat_on.png'});
            _filledStar.inject(_reviewRating);
        }
        var _review = new Element('span',{'class':'result_list_review','style':'float:left;width:100%;'});
        _reviewheader.set('html',review.TimeStamp + ' | ');
        
        _review.set('html',ConvertSymbols(review.ReviewMessage) + '<hr /><br /><br />');
        
        _reviewRating.inject(_reviewheader);
        _reviewheader.inject(_reviewCon);
        _review.inject(_reviewCon);
        _reviewCon.inject(_divReviews);
    });
    //DETAILS REVIEWS
}

function SearchResultInsertReview(text)
{
    //alert($('add_review').value);
    //KupOfJoe.ReviewsService.GetReviewsForShop($('add_review').value, completeHandlerForDetailShopReviews);
}

function AddListing()
{
    var _uacct;
    var pageTracker;
    var sPath = window.location.pathname;
   var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    if(sPath.indexOf('admin') < 0)
    {
        _uacct = "UA-6427972-1";
        pageTracker = _gat._getTracker(_uacct);
        pageTracker._trackPageview('/Sites/AddSite');
    }
    var _mainContainer = $('main_container');
    var _searchDetails = $('detail_search');
    var _addDetailsContainer = $('add_details');
    var _addLocationDetails = $('add_details_controls');
    //var loggedIn = Cookie.read('loggedIn');
    var _addListing = $('addListing');
     
    _searchDetails.setStyle('display','none');             
//    if(loggedIn == null || loggedIn == 'false')
//    {
//        //_addLocationDetails.setStyle('display','none');
//        CreateLoginControls(_addDetailsContainer);
//    }
//    else
//    {
        var _footer = $('pcv_footer');
        var _footerBottomBorder = $('pcv_bottom_border');
        var fxExpandMainContainer = new Fx.Tween(_mainContainer, {duration: 1000});
        var fxMoveBottomBorder = new Fx.Tween(_footerBottomBorder, {duration: 1000});
        var fxMoveFooter = new Fx.Tween(_footer, {duration: 1000});
        if(_addListing.get('html') == '[ Add Location ]')
        {
            _addLocationDetails.setStyle('display','block');
            _addListing.set('html','[ Cancel ]');
            fxMoveFooter.start('margin-top','450');
            fxMoveBottomBorder.start('margin-top','0');
            fxExpandMainContainer.start('height','1175');
            
            
        }
        else
        {
            _addListing.set('html','[ Add Location ]');
            HideAllDetails();
            $('add_details_controls').setStyle('display','none');
            CollapseContainer();
        }
        
//    }
    
}
function UpdateListing()
{
    var _name = $('edit_name');
    var _addone = $('edit_address');
    var _city = $('edit_city').getSelected();
    var _newCity = 'false';
//    if(_city == null)
//    {
//        _city = $('addCities');
//        _newCity = 'false';
//    }
    
    var _states = $('edit_states').getSelected();
    var _zip = $('edit_zip');
    var _phone = $('edit_phone');
    var _email = $('edit_email');
    var _website = $('edit_website');
    var _description = $('edit_description');
    
    var overallRating = $('edit_overall_rating');
    var ksuRating = $('edit_ksu_rating');
    var foodRating = $('edit_food_rating');
    var serviceRating = $('edit_service_rating');
    var cleanRating = $('edit_cleanliness_rating');
    var seatRating = $('edit_seating_rating');
    var varietyRating = $('edit_variety_rating');
    var addHD = $('edit_hd');
    var addWifi = $('edit_wifi');
    var addSpecials = $('edit_specials');
    var addCable = $('edit_cable');
    var addDirectTV = $('edit_directv');
    var addDish = $('edit_dish');
    var officialGPCLocation = $('edit_official_gpc_location');
    //alert(addCable.get('checked'));
    //string ksuRating, string foodRating, string serviceRating, string cleanRating, string seatRating, string varietyRating, 
    //string _hd, string _wifi, string _specials, string _cable, string _directTV, string _dish
    //var message = $('errorMessageSites');
    //var result = ValidateRequiredFields();
    //alert(result);
//    if(result != '')
//    {
//        message.set('html',result);
//    }
//    else
//    {
//alert(ksuRating.get('value'));
    var selectedListing = $('adminSearchShops').getSelected();
        PowercatVision.ListingsService.UpdateListing(selectedListing.get('value'), 
                                                     ConvertSymbols(decodeURI(_name.value)), 
                                                     ConvertSymbols(decodeURI(_addone.value)), 
                                                     ConvertSymbols(decodeURI(_city.get('value'))), 
                                                     ConvertSymbols(decodeURI(_states.get('value'))), 
                                                     ConvertSymbols(decodeURI(_zip.value)), 
                                                     ConvertSymbols(decodeURI(_phone.value)), 
                                                     ConvertSymbols(decodeURI(_email.value)), 
                                                     ConvertSymbols(decodeURI(_website.value)), 
                                                     ConvertSymbols(decodeURI(_description.value)), 
                                                     officialGPCLocation.get('checked'),
                                                     ConvertSymbols(decodeURI(_newCity)), 
                                                     overallRating.get('value'), 
                                                     ksuRating.get('value'), 
                                                     foodRating.get('value'), 
                                                     serviceRating.get('value'), 
                                                     cleanRating.get('value'), 
                                                     seatRating.get('value'), 
                                                     varietyRating.get('value'),
                                                     addHD.get('checked'), 
                                                     addWifi.get('checked'), 
                                                     addSpecials.get('checked'), 
                                                     addCable.get('checked'), 
                                                     addDirectTV.get('checked'), 
                                                     addDish.get('checked'));
    $('statusMessage').empty();
    var varDate = new Date();
    var statusMessage = new Element('label');
    statusMessage.set('html','This site has been successfully updated on ' + varDate.toDateString() + ' at ' + varDate.toTimeString());
    statusMessage.inject($('statusMessage'));
    $('statusMessage').tween('height',[0,50])
    $('statusMessage').setStyle('display','block');
    var tweenStatusMessage = function()
    {
        $('statusMessage').tween('height',[50,0]);
        $('statusMessage').setStyle('display','none');
    };
    tweenStatusMessage.delay(5000);
    //}
}
function DeleteListing()
{
    var selectedListing = $('adminSearchShops').getSelected();
    PowercatVision.ListingsService.DeleteListing(selectedListing.get('value'));
}
