﻿function InsertShop()
{
    var _name = $('addshop_name');
    var _description = $('addshop_description');
    var _addone = $('addshop_addone');
    var _city = $('addshop_city');
    var _newCity = 'true';
    if(_city == null)
    {
        _city = $('addshop_cities');
        _newCity = 'false';
    }
    
    var _states = $('addshop_states');
    var _zip = $('addshop_zip');
    var _phone = $('addshop_phone');
    var _email = $('addshop_email');
    var _website = $('addshop_website');
    var _internet = $('addshop_internet_type');
    var _seating = $('addshop_seating_type');
    
    
    KupOfJoe.ListingsService.InsertShop(decodeURI(_name.value), decodeURI(_description.value), decodeURI(_addone.value), decodeURI(_city.value), decodeURI(_states.value), decodeURI(_zip.value), decodeURI(_phone.value), decodeURI(_email.value), decodeURI(_website.value), decodeURI(_internet.value), decodeURI(_seating.value), _newCity, completeInsertShopHandler);
    
    var _addShop = $('add_shop_controls');
    var _insertShopRes = new Element('div');
    var _a_AddAnother = new Element('input',{'type':'button'});
    _a_AddAnother.set('value','Add Another Shop');
    var _success = new Element('div');
    _success.set('html','The shop was successfully added.  Thank you for your participation.');
    _a_AddAnother.addEvent('click',function()
    {
        $('add_shop_controls_left').setStyle('display','block');
        $('add_shop_controls_center').setStyle('display','block');
        $('add_shop_controls_right').setStyle('display','block');
        $('add_shop_description_control').setStyle('display','block');
        _insertShopRes.destroy();
    });
    _success.inject(_insertShopRes);
    _a_AddAnother.inject(_insertShopRes);
    _insertShopRes.inject(_addShop,'top');
    
    _name.value = '';
    _description.value = '';
    _addone.value = '';
    if(_newCity)
    {
        _city.value = '';
    }
    else
    {
        _city.value = '0';
    }
    _states.value = '0';
    _zip.value = '';
    _phone.value = '';
    _email.value = '';
    _website.value = '';
    _internet.value = '0';
    _seating.value = '0';
    
    $('add_shop_controls_left').setStyle('display','none');
    $('add_shop_controls_center').setStyle('display','none');
    $('add_shop_controls_right').setStyle('display','none');
    $('add_shop_description_control').setStyle('display','none');
    _uacct = "UA-3456939-1";
    var pageTracker = _gat._getTracker(_uacct);
    pageTracker._trackPageview('/ShopInserted');
}
function InsertAdminShop()
{
    var _name = $('shop_name');
    var _description = $('shop_description');
    var _addone = $('shop_addone');
    var _city = $('shop_city');
    var _newCity = 'true';
    if(_city == null)
    {
        _city = $('shop_cities');
        _newCity = 'false';
    }
    
    var _states = $('shop_states');
    var _zip = $('shop_zip');
    var _phone = $('shop_phone');
    var _email = $('shop_email');
    var _website = $('shop_website');
    var _internet = $('shop_internet_type');
    var _seating = $('shop_seating_type');
    
    KupOfJoe.ListingsService.InsertShop(decodeURI(_name.value), decodeURI(_description.value), decodeURI(_addone.value), decodeURI(_city.value), decodeURI(_states.value), decodeURI(_zip.value), decodeURI(_phone.value), decodeURI(_email.value), decodeURI(_website.value), decodeURI(_internet.value), decodeURI(_seating.value), _newCity);
    
    var message = $('message');
    var currentDateTime = new Date();
    message.set('html','The shop was successfully added on : ' + currentDateTime.toLocaleDateString() + ' @ ' + currentDateTime.toLocaleTimeString());
    message.setStyle('color','#ffffff');
    message.setStyle('display','block');
    message.setStyle('padding','5');
    message.tween('height',[0,20]);
    
    _name.value = '';
    _description.value = '';
    _addone.value = '';
    if(_newCity)
    {
        _city.value = '';
    }
    else
    {
        _city.value = '0';
    }
    _states.value = '0';
    _zip.value = '';
    _phone.value = '';
    _email.value = '';
    _website.value = '';
    _internet.value = '0';
    _seating.value = '0';
    
}
function UpdateShop()
{
    var _shopId = $('adminSearchShops').getSelected().get('value');
    var _name = $('shop_name');
    var _description = $('shop_description');
    var _addone = $('shop_addone');
    var _city = $('shop_city');
    var _newCity = 'true';
    if(_city == null)
    {
        _city = $('shop_cities');
        _newCity = 'false';
    }
    
    var _states = $('shop_states');
    var _zip = $('shop_zip');
    var _phone = $('shop_phone');
    var _email = $('shop_email');
    var _website = $('shop_website');
    var _internet = $('shop_internet_type');
    var _seating = $('shop_seating_type');
    
    KupOfJoe.ListingsService.UpdateShop(_shopId, decodeURI(_name.value), decodeURI(_description.value), decodeURI(_addone.value), decodeURI(_city.value), decodeURI(_states.value), decodeURI(_zip.value), decodeURI(_phone.value), decodeURI(_email.value), decodeURI(_website.value), decodeURI(_internet.value), decodeURI(_seating.value), _newCity);
    
    var message = $('message');
    var currentDateTime = new Date();
    message.set('html','The shop was successfully updated on : ' + currentDateTime.toLocaleDateString() + ' @ ' + currentDateTime.toLocaleTimeString());
    message.setStyle('color','#ffffff');
    message.setStyle('display','block');
    message.setStyle('padding','5');
    message.tween('height',[0,20]);
}
function RenderShop(shop, _div)
{
    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'});
    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 _informationIcon = 'information.png';
    
    //alert(shop.Name + ' Email: ' + shop.Email);
    if(shop.Email == "")
    {
        _emailIcon = 'email_disabled.png';
    }
    if(shop.Website == null || shop.Website == "")
    {
        _websiteIcon = 'world_disabled.png';
    }
    if(shop.PhotoGallery == null || shop.PhotoGallery == "")
    {
        _photosIcon = 'camera_disabled.png';
    }
    
    var _a_email = new Element('a',{'href':'mailto:' + ConvertSymbols(decodeURI(shop.Email))});
    var _email = new Element('img',{'id':'img_email_' + shop.ID,'src': _path + _emailIcon,'title':'Send ' + ConvertSymbols(decodeURI(shop.Name)) + ' an Email', 'alt':'Email','class':'image_link'});
    var _camera = new Element('img',{'id':'img_photos_' + shop.ID,'src': _path + _photosIcon,'title':'View ' + ConvertSymbols(decodeURI(shop.Name)) + ' Photos', 'alt':'Photo Gallery','class':'image_link'});
    var _a_website = new Element('a',{'href':ConvertSymbols(decodeURI(shop.Website)),'target':'_blank'});
    var _world = new Element('img',{'id':'img_website_' + shop.ID,'src': _path + _websiteIcon,'title':'Visit the ' + ConvertSymbols(decodeURI(shop.Name)) + ' website', 'alt':'Website','class':'image_link'});
    var _zoom = new Element('img',{'id':'img_details_' + shop.ID,'src': _path + _detailsIcon,'title':'View ' + ConvertSymbols(decodeURI(shop.Name)) + ' Details', 'alt':'Details','class':'image_link'});
    var _addreview = new Element('img',{'id':'img_addreview_' + shop.ID,'src': _path + _addreviewIcon,'title':'Add review for ' + ConvertSymbols(decodeURI(shop.Name)),'alt':'Add Review','class':'image_link'});
    var _information = new Element('img',{'id':'img_mainreview_' + shop.ID,'src': _path + _informationIcon,'title':'View main review for ' + ConvertSymbols(decodeURI(shop.Name)),'alt':'View Main Review','class':'image_link'});
    var _reviewName = new Element('label',{'html': ' | ' + ConvertSymbols(decodeURI(shop.Name)) + ' | ','style':'cursor:pointer'});
    
    _reviewheaderdetails.set('html', ConvertSymbols(decodeURI(shop.Address)) + ' | ' + ConvertSymbols(decodeURI(shop.Phone)) + ' | ');
    
    _reviewheader.set('html', ' | ' + ConvertSymbols(decodeURI(shop.Name)) + ' | ' );
    
    //_reviewName.inject(_reviewheader);
    _reviewheaderdetails.inject(_reviewheader);
    //Injecting images for toolbar
    
    _information.inject(_reviewheader);
    if(shop.Email != null && ConvertSymbols(decodeURI(shop.Email)) != "")
    {
        _email.inject(_a_email);
        _a_email.inject(_reviewheader);
    }
    else
    {
        _email.setStyle('cursor','');
        _email.inject(_reviewheader);
    }
    _camera.addEvent('click',function()
    {
        //alert(shop.PhotoGallery.length);
        if(shop.PhotoGallery != null && shop.PhotoGallery.length > 0)
        {
            _review.set('html','<br /><hr />');
            _review.setStyle('height','160');
            $('shop_details').setStyle('display','none');
            shop.PhotoGallery.each(function(photo)
            {
                var _imageContainer = new Element('span',{'class':'result_list_images_container'});
                var _a_currentImage = new Element('a',{'href':ConvertSymbols(decodeURI(photo.Src)), 'rel':'milkbox[images_' + shop.ID + ']', 'title':photo.Caption});
                //_a_currentImage.set('html','View Image');
                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(shop.Website != null && shop.Website != "")
    {
        _world.inject(_a_website);
        _a_website.inject(_reviewheader);
    }
    else
    {
        _world.setStyle('cursor','');
        _world.inject(_reviewheader);
    }
    
    //show shop details
    _zoom.addEvent('click',function(e)
    {
        e = new Event(e);
        var _informationLabel = $('InformationLabel');
        if(_informationLabel != null)
        {
            _informationLabel.destroy();
        }
        var _mainContent = $('main_content');
        var _divDetailsContainer = $('shop_details');
        _divDetailsContainer.set('class','shop_details_container');
        _divDetailsContainer.setStyle('vertical-align','top');
        var _searchControls = $('search_controls');
        var _searchResults = $('searchResults');
        //var fxSlideControls = new Fx.Slide(_searchControls, {duration: 1000}); 
        //var fxSlideResults = new Fx.Slide(_searchResults, {duration: 1000}); 
        
//        var _subLevel = $('sub_level');
//        if(_subLevel != null)
//        {
//            var wrapper = _subLevel.retrieve('wrapper');
//             if(wrapper != null)
//             {
//                wrapper.setStyle('height','0');
//             }
//             else
//             {
//                _subLevel.setStyle('height','0');
//             }
//        }
//        fxSlideControls.toggle();
//        fxSlideResults.toggle();
        _searchControls.setStyle('display','none');
        _searchResults.setStyle('display','none');
        _divDetailsContainer.empty();
        var _detailsSeparator = new Element('hr');
        
        ///SHOP DETAILS TOOLBAR
        var _divToolBar = new Element('div');
        var _toolBarSep = new Element('label',{'html':'&nbsp;|&nbsp;'});
        //Back To Results
        var _a_BackToResults = new Element('a',{'class':'shop_details_toolbar'});
        var _a_BackToResultsIcon = new Element('img',{'src':'app_themes/main/images/arrow_left.gif','class':'shop_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');
            _searchResults.setStyle('display','block');
            _searchControls.setStyle('display','block');
            //fxSlideControls.toggle();
            //fxSlideResults.toggle();
        });
        _a_BackToResultsIcon.inject(_divToolBar);
        _a_BackToResults.inject(_divToolBar);
        _toolBarSep.inject(_divToolBar);
        //Website
        var _a_Website = new Element('a',{'class':'shop_details_toolbar','href':shop.Website,'target':'_blank'});
        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':'shop_details_toolbar','html':'Add Review','value':shop.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()
        {
            var contactInfo = $('contact_info');
            contactInfo.empty();
            var reviewEntryContainer = new Element('div');
//            if(Cookie.read('kojloggedin') == 'true')
//            {
                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()
                {
                    KupOfJoe.ReviewsService.InsertReview(shop.ID, reviewMessage.value, ratingStars.value, completeHandlerForDetailInsertReview);
                    reviewMessage.value = "";
                    ResetRatingStars('detail');
                });
                addReview.inject(addReviewContainer);
                
                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 star to set a rating)');
                _starsDirections.inject(ratingStars);
//            }
//            else
//            {
//                var _pleaseLogIn = new Element('label',{'html':'Please log in before adding a review for this coffee shop.'});
//                _pleaseLogIn.inject(reviewEntryContainer);
//                reviewEntryContainer.inject(contactInfo);
//            }
        });
        
        _a_AddReviewIcon.inject(_divToolBar);
        _a_AddReview.inject(_divToolBar);
        _toolAddReviewSep.inject(_divToolBar);
        
        //Directions to Here
        var _a_DirectionToHere = new Element('a',{'class':'shop_details_toolbar','html':'Get Directions'});
        var _a_DirectionToHereIcon = new Element('img',{'src':'app_themes/main/images/arrow_right.gif'});
        
        _a_DirectionToHere.addEvent('click',function()
        {
           
            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 shop.'});
            _directions.inject(contactInfo);
            //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(streetContainer);
            streetBreak.inject(streetContainer);
            streetAddress.inject(streetContainer);
            //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(cityContainer);
            cityBreak.inject(cityContainer);
            city.inject(cityContainer);
            //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(stateContainer);
            stateBreak.inject(stateContainer);
            state.inject(stateContainer);
            //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');
            streetContainer.inject(mapControlList);
            cityContainer.inject(mapControlList);
            stateContainer.inject(mapControlList);
            //zipContainer.inject(mapControlList);
            KupOfJoe.MetaData.GetStates(completeShopDetailsHandlerStates);
            //streetLI.inject(mapControlList);
            //cityLI.inject(mapControlList);
            //stateLI.inject(mapControlList);
            mapControlList.inject(contactInfo);
            //spacer.inject(contactInfo);
            getDirections.inject(contactInfo);
            mapControlList.addEvent('keydown',function()
            {
                //alert(window.event.keyCode);
                if(window.event)
                {
                    if(window.event.keyCode == 13)
                    {
                        getDirections.fireEvent('click');
                    }
                }
            });
            getDirections.addEvent('click',function()
            {
                
                var addressEntered = $('start_address');
                var cityEntered = $('city_address');
                var stateEntered = $('state_address');
                //alert(addressEntered.value);
                var currentMap = $('map' + shop.ID);
                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;
                }
                
                directions.load(ConvertSymbols(decodeURI(addressEntered.value)) + ',' + ConvertSymbols(decodeURI(cityEntered.value)) + ',' + ConvertSymbols(decodeURI(stateEntered.value)) + ' to ' + ConvertSymbols(decodeURI(shop.Address)) + ',' + ConvertSymbols(decodeURI(shop.CityInfo.Name)) + ',' + ConvertSymbols(decodeURI(shop.StateInfo.StateName)));
                
                var directionsToolBar = new Element('div');
                var _printDirectionsLbl = new Element('a',{'class':'shop_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 KupOfJoe.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');
            });
        });
        
        _a_DirectionToHereIcon.inject(_divToolBar);
        _a_DirectionToHere.inject(_divToolBar);
        
        _divToolBar.inject(_divDetailsContainer);
        _detailsSeparator.inject(_divDetailsContainer);
        //SHOP DETAILS TOOLBAR
        
        //<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',ConvertSymbols(decodeURI(shop.Name)));
        //DETAILS HEADER
        
        //DETAILS MAIN PIC
        var _divMainPic = new Element('div',{'class':'shop_details_image_container'});
        var _noPic = false;
        if(shop.PhotoGallery != null && shop.PhotoGallery.length > 0)
        {
            var _imgMainPic = new Element('img',{'src':ConvertSymbols(decodeURI(shop.PhotoGallery[0].Src)),'class':'shop_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' + shop.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':'shop_details_reviews'});
        _divReviewsHeader.inject(_divReviews);
        if(shop.Reviews != null && shop.Reviews.count > 0)
        {
            shop.Reviews.each(function(review)
            {
                var _reviewheader = new Element('span',{'class':'result_list_header'});
                var _reviewRating = new Element('span');
                for(i=0;i<=review.Rating-1;i++)
                {
                    var _filledStar = new Element('img',{'src':'app_themes/main/images/FilledStar.png'});
                    _filledStar.inject(_reviewRating);
                }
                var _review = new Element('span',{'class':'result_list_review'});
                _reviewheader.set('html',review.TimeStamp);
                
                _review.set('html','<br /><hr />' + ConvertSymbols(decodeURI(review.ReviewMessage)));
                
                _reviewRating.inject(_reviewheader);
                _reviewheader.inject(_divReviews);
                _review.inject(_divReviews);
            });
        }
//        else
//        {
//            var noReviews = new Element('label');
//            noReviews.set('html','<br /><br />Currently there are no reviews.  Share with us and become the first to review this shop!');
//            noReviews.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':'shop_details_contactinfo'});
        _divContactInfoHeader.inject(_divContactInfo);
        
        var _ulContactInfo = new Element('ul',{'class':'shop_details_contactinfo_ul'});
        var _liPhone = new Element('li',{'html':'<b>Phone:</b>&nbsp;' + ConvertSymbols(decodeURI(shop.Phone))});
        var _email;
        if(shop.Email != null & shop.Email != "")
        {
            _email = ConvertSymbols(decodeURI(shop.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);
        _divMap.inject(_divDetailsContainer);
        _divReviews.inject(_divDetailsContainer);
        _divContactInfo.inject(_divDetailsContainer);
        
        
        var _address = "";
        if(shop.CityInfo != null && shop.StateInfo != null)
        {
            _address = ConvertSymbols(decodeURI(shop.Address)) + ',' + ConvertSymbols(decodeURI(shop.CityInfo.Name)) + ',' + shop.StateInfo.StateAbbr;
        }
        else
        {
            _address = ConvertSymbols(decodeURI(shop.Address));
        }
        //alert(_address);
        //alert(shop.Address);
        showAddress(_address,_divMap.id);
        _divDetailsContainer.setStyle('display','block');
        _uacct = "UA-3456939-1";
        var pageTracker = _gat._getTracker(_uacct);
        pageTracker._trackPageview('/CoffeeShops/ShopDetails/' + shop.Name);
    });
//     _reviewheader.addEvent('click',function()
//    {
//        _zoom.fireEvent('click');
//    });
    _zoom.inject(_reviewheader);
    
    _addreview.addEvent('click',function()
    {
        _review.set('html','<br /><hr />');
        
        var reviewEntryContainer = new Element('div');
        if(Cookie.read('kojloggedin') == 'true')
        {
        
        
        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()
        {
            reviewMessage.value = "";
            ResetRatingStars('searchreview');
            KupOfJoe.ReviewsService.InsertReview(shop.ID, ConvertSymbols(decodeURI(reviewMessage.value)), ratingStars.value, completeHandlerForSearchResultInsertReview);
        });
        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 star to set a rating)');
        _starsDirections.inject(ratingStars);
        _review.setStyle('height','185');
        }
        else
        {
            var _pleaseLogIn = new Element('label',{'html':'Please log in before adding a review for this coffee shop.'});
            _pleaseLogIn.inject(reviewEntryContainer);
            reviewEntryContainer.inject(_review);
        }
    });
    
    //Inject button to add a review
    _addreview.inject(_reviewheader);
    
    _information.addEvent('click',function()
    {
        _review.set('html','');
        _review.setStyle('height','');
        _review.set('html','<br /><hr />' + ConvertSymbols(decodeURI(shop.Description)));
    });
    
    if(shop.Description == null || shop.Description == '')
    {
        //_review.setStyle('overflow','hidden');
        _camera.fireEvent('click');
    }
    else
    {
        _review.set('html','<br /><hr />' + ConvertSymbols(decodeURI(shop.Description)));
    }
  
    _reviewheader.inject(_div);
    _review.inject(_div);
}
function EditShop(text)
{
     this.response.json = JSON.decode(text, this.options.secure);
     var obj = eval(text);
     //alert(obj.Result.length);
     obj.Result.each(function(shop)
     {
        var shopName = $('shop_name');
        var shopDescription = $('shop_description');
        var shopAddress = $('shop_addone');
        var shopState = $('shop_states');
        var shopCity = $('shop_cities');
        var shopZip = $('shop_zip');
        var shopPhone = $('shop_phone');
        var shopEmail = $('shop_email');
        var shopWebsite = $('shop_website');
        var shopInternetType = $('shop_internet_type');
        var shopSeatingType = $('shop_seating_type');
        
        KupOfJoe.MetaData.GetStateCities(shop.StateInfo.StateID, EditShopCities);
        shopName.value = ConvertSymbols(decodeURI(shop.Name));
        shopDescription.value = ConvertSymbols(decodeURI(shop.Description));
        shopAddress.value = ConvertSymbols(decodeURI(shop.Address));
        SetSelectedItem(shopState, shop.StateInfo.StateID);
        shopZip.value = ConvertSymbols(decodeURI(shop.Zip));
        shopPhone.value = ConvertSymbols(decodeURI(shop.Phone));
        shopEmail.value = ConvertSymbols(decodeURI(shop.Email));
        shopWebsite.value = ConvertSymbols(decodeURI(shop.Website));
        SetSelectedItem(shopInternetType, shop.InternetTypeId);
        SetSelectedItem(shopSeatingType, shop.SeatingTypeId);
        (function(){SetSelectedItem(shopCity, shop.CityInfo.CityID);}).delay(100);
     });
}
function GetRecentListings()
{
    _uacct = "UA-3456939-1";
    var pageTracker = _gat._getTracker(_uacct);
    KupOfJoe.ListingsService.GetRecentListings(RenderRecentListings);
    pageTracker._trackPageview('/RecentListings');
}
function GetRecentListingsAdmin()
{
    KupOfJoe.ListingsService.GetRecentListings(RenderRecentListingsAdmin);
}
function RenderRecentListings(text)
{
     this.response.json = JSON.decode(text, this.options.secure);
     var obj = eval(text);
     var calloutList = $('callout_list'); 
     calloutList.empty();
     obj.Result.each(function(listing)
     {
        RecentListings(text, listing, calloutList);
     });
}
function RenderRecentListingsAdmin(text)
{
     this.response.json = JSON.decode(text, this.options.secure);
     var obj = eval(text);
     var calloutList = $('recent_shops'); 
     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 PopAddShopStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('addshop_states');
    _dropDownListStates.addEvent('change',function()
    {
        KupOfJoe.MetaData.GetStateCities(this.get('value'),completeHandlerAddShopCities);
    });
    obj.Result.each(function(state)
    {
        var _option = new Element('option');
        _option.set('value',state.StateID);
        _option.set('text',state.StateName);
        _option.inject(_dropDownListStates);
    });
}
function RecentListings(text, listing, calloutList)
{
     var listingContainer = new Element('div',{'style':'padding:3px;cursor:pointer;'});
        var listingName = new Element('label');
        listingName.set('html','<b><u>' + ConvertSymbols(decodeURI(listing.Name)) + '</u></b> | ');
        listingName.addEvent('mouseover',function()
        {
          listingName.setStyle('color','#F69B18');  
        });
        listingName.addEvent('mouseout',function()
        {
          listingName.setStyle('color','#ffffff');  
        });
        var listingAddress = new Element('label');
        listingAddress.set('html',ConvertSymbols(decodeURI(listing.Address)) + ' | ');
        var listingPhone = new Element('label');
        listingPhone.set('html',ConvertSymbols(decodeURI(listing.Phone)) + '<br /><br />');
        
        listingName.inject(listingContainer);
        //listingAddress.inject(listingContainer);
        listingPhone.inject(listingContainer);
        
        listingContainer.addEvent('click',function()
        {
            calloutList.empty();
            var listingDetails = new Element('div',{'style':'width:95%;height:95%;padding:5px;'});
            //listingDetails.setStyle('opacity','0.5');
            
            var listingName = new Element('label');
            listingName.set('html','<b>' + ConvertSymbols(decodeURI(listing.Name)) + '</b><br />');
            var listingAddress = new Element('label');
            listingAddress.set('html',ConvertSymbols(decodeURI(listing.Address)) + '<br />');
            var listingCity = new Element('label');
            if(listing.StateInfo != null)
            {
                listingCity.set('html',ConvertSymbols(decodeURI(listing.CityInfo.Name)) + ', ' + ConvertSymbols(decodeURI(listing.StateInfo.StateAbbr + '<br />')));
            }
            else
            {
                listingCity.set('html',ConvertSymbols(decodeURI(listing.CityInfo.Name)) + '<br />');
            }
            var listingState = new Element('label');
            if(listing.StateInfo != null)
            {
                listingState.set('html',ConvertSymbols(decodeURI(listing.StateInfo.StateAbbr)) + '<br />');
            }
            var listingZip = new Element('label');
            if(listing.Zip != null)
            {
                listingZip.set('html',decodeURI(listing.Zip) + '<br />');
            }
            var listingWebsite = new Element('label');
            listingWebsite.set('html',decodeURI(ConvertSymbols(listing.Website)) + '<br />');
            var listingEmail = new Element('label');
            listingEmail.set('html',decodeURI(ConvertSymbols(listing.Email)) + '<br />');
            var listingPhone = new Element('label');
            listingPhone.set('html',ConvertSymbols(decodeURI(listing.Phone)) + '<br /><br />');
            
            var backToListings = new Element('label');
            backToListings.setStyle('text-decoration','underline');
            backToListings.setStyle('cursor','pointer');
            backToListings.set('html','Back to Recent Listings');
            
            listingName.inject(listingDetails);
            listingAddress.inject(listingDetails);
            listingCity.inject(listingDetails);
            //listingState.inject(listingDetails);
            listingZip.inject(listingDetails);
            listingWebsite.inject(listingDetails);
            listingEmail.inject(listingDetails);
            listingPhone.inject(listingDetails);
            
            backToListings.addEvent('click',function()
            {
                KupOfJoe.ListingsService.GetRecentListings(RenderRecentListings);
            });
            backToListings.inject(listingDetails);
            
            listingDetails.inject(calloutList);
            
        });
        listingContainer.inject(calloutList);
}
function PopEditInternetTypes(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListInternetTypes = $('shop_internet_type');
    obj.Result.each(function(internetType)
    {
        var _option = new Element('option');
        _option.set('value',internetType.ID);
        _option.set('text',internetType.Name);
        _option.inject(_dropDownListInternetTypes);
    });
}

function PopEditSeatingTypes(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListSeatingTypes = $('shop_seating_type');
    obj.Result.each(function(seatingType)
    {
        var _option = new Element('option');
        _option.set('value',seatingType.ID);
        _option.set('text',seatingType.Name);
        _option.inject(_dropDownListSeatingTypes);
    });
}
function PopEditShopStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('shop_states');
    _dropDownListStates.addEvent('change',function()
    {
        KupOfJoe.MetaData.GetStateCities(this.get('value'),EditShopCities);
    });
    obj.Result.each(function(state)
    {
        var _option = new Element('option');
        _option.set('value',state.StateID);
        _option.set('text',state.StateName);
        _option.inject(_dropDownListStates);
    });
}
function EditShopCities(text, cityId)
    {
        this.response.json = JSON.decode(text, this.options.secure);
        var obj = eval(text);
        var _dropDownListCities = $('shop_cities');
        if(_dropDownListCities)
        {
        _dropDownListCities.empty();
        }
        if(obj.Result.length > 0)
        {
            if(_dropDownListCities == null)
            {
                _dropDownListCities = new Element('select',{'id':'shop_cities'});
                 var _newCity = $('shop_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()
            {
                if(this.get('value') == '-1')
                {
                    var _newCity = new Element('input',{'id':'shop_city'});
                    var _dropDownListCitiesParent = _dropDownListCities.getParent();
                    _newCity.replaces(_dropDownListCities);
                    _newCity.focus();
                }
            });
        }
        else
        {
            var _existingCity = $('shop_city');
            if(_existingCity == null)
            {
            var _newCity = new Element('input',{'id':'shop_city'});
            var _dropDownListCitiesParent = _dropDownListCities.getParent();
            _newCity.replaces(_dropDownListCities);
            _newCity.focus();
            }
        }
    }
function PopSearchListingsStates(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var _dropDownListStates = $('searchState');
    _dropDownListStates.addEvent('change',function()
    {
        KupOfJoe.MetaData.GetStateCities(this.get('value'),completeHandlerCities);
    });
    obj.Result.each(function(state)
    {
        var _option = new Element('option');
        _option.set('value',state.StateID);
        _option.set('text',state.StateName);
        _option.inject(_dropDownListStates);
    });
}

function GetShopPhotos()
{
    var sPath = window.location.pathname;
    var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
    //alert(sPath.indexOf('admin'));
    if(sPath.indexOf('admin') > 0)
    {
        var selectedShop = $('photos_shops').getSelected().get('value');
        KupOfJoe.ListingsService.GetPhotosByShopId(selectedShop, RenderAdminPhotos);
    }
    else
    {
        KupOfJoe.ListingsService.GetPhotosByShopId('');
    }
}