var g_mbk = undefined; var g_mpt = undefined; var g_cbeb_md = undefined; var g_db = undefined; var g_expectCache = false; var g_allow_google_map = undefined; var g_bespoke_google_api_key = undefined; /* var g_cbeb_md = { u: "", m: "" }; */ var read_cookie = (name) => { var match_outcome = document.cookie.match( '(^|;)\\s*' + name + '\\s*=\\s*([^;]+)' ); if( match_outcome ) { return match_outcome.pop() || ''; } else { return ''; } }; ( function() { if( typeof UserAccountApi === "object" ) { if( UserAccountApi.isUserAuthenticated() === true ) { const cached_login = read_cookie( "logged_in_maybe" ) if( typeof cached_login === "string" && cached_login.length > 0 ) { g_cbeb_md = { u: cached_login, m: "member areas" } } } } } )(); ( function() { if( typeof Thinkific === "object" ) { if( Thinkific.current_user ) { console.log( `Found Thinkific user `, Thinkific.current_user.email ) g_cbeb_md = { u: Thinkific.current_user.email, m: "thinkific" } } } } )(); function initialise_msp_login_details( member_info ) { if( member_info !== undefined && member_info.memberInfo !== undefined ) { g_cbeb_md = {} g_cbeb_md.u = member_info.memberInfo.email; g_cbeb_md.f = member_info.memberInfo.firstName; g_cbeb_md.l = member_info.memberInfo.lastName; g_cbeb_md.msp_key = member_info.memberInfo.id; g_cbeb_md.m = "memberspace"; } else { if( member_info !== undefined ) { console.log( `Unusual member info:`, member_info ) } else { console.log( `Undefined member_info` ) } } } ( function() { if( typeof MemberSpace !== "undefined" && MemberSpace.ready === true ) { console.log( `MemberSpace.ready === true` ); if( MemberSpace.getMemberInfo ) { const member_info = MemberSpace.getMemberInfo() if( member_info ) { initialise_msp_login_details( MemberSpace.getMemberInfo() ); } } } else { if( typeof MemberSpace !== "undefined" ) { console.log( `MemberSpace object exists but ready was false or undefined:`, MemberSpace ) if( MemberSpace.User !== undefined && MemberSpace.User.get !== undefined && typeof MemberSpace.User.get === "function" ) { const member_info = MemberSpace.User.get() if( member_info !== undefined ) { g_cbeb_md = {} g_cbeb_md.u = member_info.email; g_cbeb_md.f = member_info.firstName; g_cbeb_md.l = member_info.lastName; g_cbeb_md.msp_key = member_info.id; g_cbeb_md.m = "memberspace"; console.log( `Updated MemberSpace user data the old-fashioned way` ) return; } } } document.addEventListener('MemberSpace.member.info', function({ detail }) { const { memberInfo } = detail; g_cbeb_md = {} g_cbeb_md.u = memberInfo.email; g_cbeb_md.f = memberInfo.firstName; g_cbeb_md.l = memberInfo.lastName; g_cbeb_md.msp_key = memberInfo.id; g_cbeb_md.m = "memberspace" }) } })(); function CbDbCachePrefetch( box, cachecode ) { var path = "https://cdn.communitybox.co/directory/"+box+"/"+cachecode+"/db-"+cachecode; var prefetch_xhr = new XMLHttpRequest(); prefetch_xhr.open( "GET", path, true ); prefetch_xhr.onload = function() { if( prefetch_xhr.readyState === 4 && prefetch_xhr.status === 200 ) { if( prefetch_xhr.responseText ) g_db = JSON.parse( prefetch_xhr.responseText ) } else { console.log( `CbDbCachePrefetch - onload - unexpected status ${prefetch_xhr.status}` ) } } prefetch_xhr.onerror = function() { console.error( `An error occurred during CbDbCachePrefetch` ) } prefetch_xhr.send() } function loadCbResources( boxKey ) { var payload = { box: boxKey, origin: window.location.href }, cb_xhr = new XMLHttpRequest(); cb_xhr.open( "POST", "https://cfapi.communitybox.co/get/embed/bootstrap/data", true ) cb_xhr.setRequestHeader( 'Content-type', 'application/json; charset=utf-8' ) cb_xhr.onload = function() { if( cb_xhr.readyState === 4 && cb_xhr.status === 200 ) { var returnObj = JSON.parse( cb_xhr.responseText ); if( returnObj.hasOwnProperty( "err" ) ) { console.error( returnObj.err ); } else { if( returnObj.cachecode ) { g_expectCache = true; CbDbCachePrefetch( boxKey, returnObj.cachecode ); } else { console.log( "No cache-code for box ", boxKey ); } g_allow_google_map = returnObj.allow_google_map; g_mbk = returnObj.mapbox_api_key || atob( "cGsuZXlKMUlqb2ljbTlzWVc1a1pqY2lMQ0poSWpvaVkyczRjMnM1Tnpabk1HTjZlRE5sYnpWM1lXVjVNM1Z3YXlKOS5wV0xTR0hMWFBhX3JqVGFpSzlkYW5B" ); var revision = returnObj.revision, obj = document.createElement("script"), map = undefined, mapStyle = document.createElement( "link" ), mapbox_geocoder_style = document.createElement( "link" ), font = document.createElement("link"), fal = document.createElement("link"); obj.src = /localhost/.test( window.location.href ) ? "embed.js" : "https://dashboard.communitybox.co/embed/" + revision + "/embed-" + revision + ".js"; obj.setAttribute( 'defer', '' ); g_bespoke_google_api_key = returnObj.bespoke_google_api_key if( returnObj.gmap_api_key !== undefined || returnObj.bespoke_google_api_key !== undefined ) { var key_to_use = returnObj.bespoke_google_api_key || returnObj.gmap_api_key map = document.createElement("script") map.src = "https://maps.googleapis.com/maps/api/js?key=" + key_to_use + "&libraries=places,geometry" map.setAttribute('async', "") } else { } mapStyle.href = "https://api.tiles.mapbox.com/mapbox-gl-js/v2.2.0/mapbox-gl.css"; mapStyle.rel = "stylesheet"; mapbox_geocoder_style.href = "https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.0/mapbox-gl-geocoder.css" mapbox_geocoder_style.rel = "stylesheet" if( returnObj.font_loader !== undefined ) { font.href = returnObj.font_loader; } else { font.href = "https://fonts.googleapis.com/css?family=Quicksand:400,500"; } font.rel = "stylesheet"; fal.rel = "stylesheet"; fal.href = "https://use.fontawesome.com/releases/v5.2.0/css/all.css"; fal.setAttribute( 'crossorigin', 'anonymous' ); fal.setAttribute( 'integrity', 'sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ' ); if( returnObj.custom_design_file !== undefined ) { var custom_design = document.createElement( "link" ); custom_design.rel = "stylesheet"; custom_design.href = [ "https://cdn.communitybox.co/directory/", boxKey, "/design/", returnObj.custom_design_file, "/design-", returnObj.custom_design_file, ".css" ].join('') document.head.appendChild( custom_design ); } document.head.appendChild( font ); document.head.appendChild( fal ); document.head.appendChild( obj ); document.head.appendChild( mapStyle ); document.head.appendChild( mapbox_geocoder_style ); if( map !== undefined ) document.head.appendChild( map ); } } else { console.log( `Unexpected network state ${cb_xhr.readyState} and/or status ${cb_xhr.status} during loadCbResources` ) console.error( cb_xhr.responseText ); } } cb_xhr.onerror = function() { console.log( `Error registered in loadCbResources` ) } cb_xhr.send( JSON.stringify( payload ) ); } function fetchCbBoxKey() { var boxElem = document.getElementById( "communitybox-target" ); var search_bar_elem = document.querySelector( "[cbeb-filter-bar]" ) || document.querySelector( "[communitybox-search-bar]" ) if( boxElem || search_bar_elem ) { var boxKey = ( boxElem && boxElem.getAttribute( "box" ) ) || search_bar_elem.getAttribute( "directory" ) if( boxKey ) { return boxKey; } } return undefined; } function waitForCbDiv(param) { var boxKey = fetchCbBoxKey() if( boxKey === undefined && param.triesLeft > 0 ) { window.setTimeout(function () { waitForCbDiv({ triesLeft: param.triesLeft - 1 }) }, 500) } else { if( boxKey !== undefined ) { loadCbResources( boxKey ) } } } ( function() { waitForCbDiv({ triesLeft: 10 }) } )();