
                    if (!window['GSPK']) {
                        window['GSPK'] = {};
                    }

                    if (!window['GSPK']['GoogleMap']) {
                        window['GSPK']['GoogleMap'] = {};
                        GSPK.GoogleMap.LocationKeysLoaded = false;
                        
                        GSPK.GoogleMap.LocationKey = {};
                        GSPK.GoogleMap.LocationKey['root']      = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhSNBTQkd3ybMgPO53QyT8hP9fzjBxRdmCyoBxrzQZyOb2rm3FOzntWuIw'; 
                        GSPK.GoogleMap.LocationKey['seek']      = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhTaidws_dDHjAjP0orP_7FEoyaLoBSdKI8okO4ox_qppdzJQeMJbOuYOA';
                        GSPK.GoogleMap.LocationKey['admin']     = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhSC2qo8BvVQyz26uT9R_shEe_kOlhTu-nk_HoJroeFXHEEJiM3zGLwmHw';
                        GSPK.GoogleMap.LocationKey['my']        = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhRXt4GcQ6ff8nhDAadOwCPa78q8VhSFCBeSHA4MP8qp-1CC9s3WTdS10w'; 
                        GSPK.GoogleMap.LocationKey['track']     = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhSg3FGbSQp7GHAZLdebI9vtCjzJHxROOCK3g3THWZlRQmL4-av5xpzaTQ';
                        GSPK.GoogleMap.LocationKey['pocket']    = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhRO4G3HCJ4w_V4wt439o4UygXv9mhQMfb8mK8sAU-D8R5XFCrHxU4dafg';
                        GSPK.GoogleMap.LocationKey['map']       = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhTiCJxNmeu8c5C_3PlZbd-XWcSbrxS4r6ywbdY4tmDSuxmvKjucUqTuXA';
                        GSPK.GoogleMap.LocationKey['hide']      = 'ABQIAAAAVw9p8Eraf_QwLXsQo-y0KhRlbVaHM_C-0Im0FS_5cMdGlJ7QnhT8bICSfWz5agtWxs2EmuvaOV4YiA';
                        GSPK.GoogleMap.LocationKey['test']      = 'ABQIAAAAJgGMKHyR9XoIcK-3DmCRHBSv2ekjaYgxHIR9E6tI-t4dlktxmhRPCNqZWuS5djm45gAhgkPJW_xojg';            
                        GSPK.GoogleMap.LocationKey['hotels']    = 'ABQIAAAAJgGMKHyR9XoIcK-3DmCRHBTFORiws2LHHPTZra6QWOYMjT2gqxRhn36J6wqruPtUSoJASScIcP3b7w';            
                        GSPK.GoogleMap.LocationKey['account']    = 'ABQIAAAAJgGMKHyR9XoIcK-3DmCRHBSDPUykaEegOJ164KBBUJ40l5xQEBQ8QXiTKKFqHBU6q-fxVXene9m70w';            
                        GSPK.GoogleMap.LocationKey['garminphoto'] = 'ABQIAAAAJgGMKHyR9XoIcK-3DmCRHBTiRJWXQJVEDg7oF4mLngPSg-134BTwtbzOpa94B5qd6ltFnuNjQM_V_Q';            
                        GSPK.GoogleMap.LocationKey['reviews'] = 'ABQIAAAAJgGMKHyR9XoIcK-3DmCRHBQkNxQEDjiQkns1nMIAtpPdH8ULVBSrXC4qkmqZ4bD_8Daxc-DIsInCaA';            

                        GSPK.GoogleMap.LocationKeysLoaded = true;

                        GSPK.GoogleMap.StaticMapURL = function () {
                            return 'http://maps.google.com/staticmap?';
                        }

                        GSPK.GoogleMap.GetKeyForLocation = function () {
                            var pathFolder = document.location.pathname.substring(1, document.location.pathname.lastIndexOf('/')).toLowerCase();
                            if (pathFolder == '/' || pathFolder.length == 0) {
                                pathFolder = 'root';
                            }                                                     
                            return GSPK.GoogleMap.LocationKey[pathFolder];
                        }

                        GSPK.GoogleMap.LoadGoogleMap = function () {
                            var script = document.createElement('script');
                            script.src = 'http://maps.google.com/maps?file=api&v=2.x&key=' + GSPK.GoogleMap.GetKeyForLocation() + '&indexing=false';
                            script.type = 'text/javascript';
                            script.defer = true;
                            document.getElementsByTagName('head')[0].appendChild(script);
                        };    

                        GSPK.GoogleMap.LoadGoogleJSAPI = function (callbackName) {
                            var script = document.createElement('script');
                            script.src = 'http://www.google.com/jsapi?key=' + GSPK.GoogleMap.GetKeyForLocation() + '&callback=' + callbackName;
                            script.type = 'text/javascript';
                            script.defer = true;
                            document.getElementsByTagName('head')[0].appendChild(script);
                        };
                    }

                    // deprecated
                    function GoogleMapKeyForLocation() {
                        return GSPK.GoogleMap.GetKeyForLocation();
                    }
