Tuscaloosa Bakery & Cake Shop | Weddings & Birthdays (2024)

Skip to Content Toggle Nav

Search

My Account

My Cart

"); } if (fulfillment[i] == "curbside") { $("#curbside").html("

Curbside

"); } if (fulfillment[i] == "pickup") { if (bakery_session_data.isKosher == 1) { if (bakery_session_data.kosherMessage) { } if (bakery_session_data.kosherImage) { $("#pickup").html("

Tuscaloosa Bakery & Cake Shop | Weddings & Birthdays (20)

"); } else { $("#pickup").html("

Kosher

"); } } } } } var address2 = ''; var address2_url = ''; if (bakery_session_data.street2) { address2 = bakery_session_data.street2; address2_url = encodeURIComponent(bakery_session_data.street2) + "+"; } $("#store-address").html("" + bakery_session_data.street + "" + address2 + "" + bakery_session_data.city + ", " + bakery_session_data.regionId + " " + bakery_session_data.postcode + ""); var date = new Date(); var timezone = bakery_session_data.timeZone; var dayName = date.toLocaleString("en-US", { timeZone: timezone, weekday: 'long' }); var today = dayName.toUpperCase(); var timezoneDate = date.toLocaleString("en-US", { timeZone: timezone }); var currentDate = getCurrentdate(timezoneDate); var currentTimeStamp = new Date(timezoneDate).getTime() / 1000; var bakeryOpenTimeStamp = null; var bakeryCloseTimeStamp = null; let shopOpenStatus = ""; if (bakery_session_data.businessHours) { var bakeryContentAppend = ""; if (isOpened) { var business_hours = JSON.parse(bakery_session_data.businessHours); for (k = 0; k < business_hours.length; k++) { if (today == business_hours[k].dayofWeek) { shopOpenStatus = shopOpenStatusRenderer( business_hours[k].open, business_hours[k].openTime, business_hours[k].closeTime, currentDate, currentTimeStamp ); break; } } bakeryContentAppend += "

"; bakeryContentAppend += "

    "; var days = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']; var business_hours = jQuery.parseJSON(bakery_session_data.businessHours); var business_hours_override = jQuery.parseJSON(bakery_session_data.businessHoursOverride); var todayIndex = days.indexOf(today); var nextdays; if(todayIndex == 3){ nextdays = 3; } else{ nextdays = (days.length-1) - todayIndex; } var daysTmp = []; var j = 0; for(var i = todayIndex; i < days.length; i++){ daysTmp[j] = days[i]; j++; } for(var i = 0; i < todayIndex; i++){ daysTmp[j] = days[i]; j++; } days = daysTmp; todayIndex = days.indexOf(today); if(todayIndex == 3){ nextdays = 3; } else{ nextdays = (days.length-1) - todayIndex; } for (j = 0; j < days.length; j++) { for (k = 0; k < business_hours.length; k++) { if (days[j] == business_hours[k].dayofWeek) { if (today == business_hours[k].dayofWeek) { var overrideMessage = ""; var openTimeStr = business_hours[k].openTime; var closeTimeStr = business_hours[k].closeTime; var isBakeryOpen = business_hours[k].open; if (business_hours_override) { for(var x = 0; x < business_hours_override.length; x++){ let overrideDate = business_hours_override[x].overrideDate.split('/'); overrideDate = overrideDate[2]+"/"+overrideDate[0]+"/"+overrideDate[1]; if (currentDate == overrideDate) { if ('message' in business_hours_override[x]) { overrideMessage ="

    "+business_hours_override[x].message+"

    "; } isBakeryOpen = !business_hours_override[x].close; shopOpenStatus = shopOpenStatusRenderer( isBakeryOpen, business_hours_override[x].openTime, business_hours_override[x].closeTime, currentDate, currentTimeStamp ); if (isBakeryOpen) { openTimeStr = business_hours_override[x].openTime; closeTimeStr = business_hours_override[x].closeTime; } } } } if (isBakeryOpen == true) { bakeryOpenTimeStamp = new Date( currentDate + ' ' + timeToHHmm(openTimeStr) ).getTime() / 1000; bakeryCloseTimeStamp = new Date( currentDate + ' ' + timeToHHmm(closeTimeStr) ).getTime() / 1000; var splitDay = business_hours[k].dayofWeek.substring(0, 3); var dayofWeekStr = titleCase(splitDay); var openTimeStr = titleCase(openTimeStr); var closeTimeStr = titleCase(closeTimeStr); if ((bakeryOpenTimeStamp < bakeryCloseTimeStamp && currentTimeStamp >= bakeryOpenTimeStamp && currentTimeStamp <= bakeryCloseTimeStamp) || (bakeryOpenTimeStamp > bakeryCloseTimeStamp && (currentTimeStamp >= bakeryOpenTimeStamp || currentTimeStamp <= bakeryCloseTimeStamp))) { bakeryContentAppend += "
  • " + dayofWeekStr + "" + openTimeStr + " - " + closeTimeStr + "
  • "+overrideMessage; } else { bakeryContentAppend += "
  • " + dayofWeekStr + "" + openTimeStr + " - " + closeTimeStr + "
  • "+overrideMessage; } } else { var splitDay = business_hours[k].dayofWeek.substring(0, 3); var dayofWeekStr = titleCase(splitDay); bakeryContentAppend += "
  • " + dayofWeekStr + "Closed
  • "+overrideMessage; } } else { var overrideMessage = ''; var openTimeStr = business_hours[k].openTime; var closeTimeStr = business_hours[k].closeTime; var isBakeryOpen = business_hours[k].open; if (days.indexOf(business_hours[k].dayofWeek) > todayIndex && business_hours_override) { for (var x = 1; x <= nextdays; x++) { let nextDate = getCustomdate(timezoneDate,x); for (var y = 0; y < business_hours_override.length; y++) { let overrideDate = business_hours_override[y].overrideDate.split('/'); overrideDate = overrideDate[2]+"/"+overrideDate[0]+"/"+overrideDate[1]; if ( nextDate == overrideDate && business_hours[k].dayofWeek == days[todayIndex+x] ){ if ('message' in business_hours_override[y]) { overrideMessage = "

    "+business_hours_override[y].message+"

    "; } isBakeryOpen = !business_hours_override[y].close; if (isBakeryOpen) { let override = business_hours_override[y]; openTimeStr = override.openTime; closeTimeStr = override.closeTime; } } } } } if (isBakeryOpen) { var splitDay = business_hours[k].dayofWeek.substring(0, 3); var dayofWeekStr = titleCase(splitDay); var openTimeStr = titleCase(openTimeStr); var closeTimeStr = titleCase(closeTimeStr); bakeryContentAppend += "
  • " + dayofWeekStr + "" + openTimeStr + " - " + closeTimeStr + "
  • "+overrideMessage; } else { var splitDay = business_hours[k].dayofWeek.substring(0, 3); var dayofWeekStr = titleCase(splitDay); bakeryContentAppend += "
  • " + dayofWeekStr + "Closed
  • "+overrideMessage; } } } } } bakeryContentAppend += "

"; bakeryContentAppend += "

"; } else { bakeryContentAppend += "Hours: Coming Soon!"; } bakeryContentAppend += "

" + shopOpenStatus + bakeryContentAppend; $("#businessHours").html(bakeryContentAppend); if ($('#product-addtocart-button-top').length > 0) { if ($('#product-addtocart-button-top span').html() != 'Out Of Stock') { $('#product-addtocart-button-top').attr('disabled', false); } } else if ($('#product-updatecart-button-top').length > 0) { if ($('#product-updatecart-button-top span').html() != 'Out Of Stock') { $('#product-updatecart-button-top').attr('disabled', false); } } $('.cart-qty-minus').attr('disabled', false); $('.cart-qty-plus').attr('disabled', false); $('.quantity-minus').attr('disabled', false); $('.quantity-plus').attr('disabled', false); } console.log('bakery_session_data', bakery_session_data); console.log('bakery_session_data.closeExceptions', JSON.parse(bakery_session_data.closeExceptions)); console.log('currentTimeStamp', currentTimeStamp, new Date(currentTimeStamp * 1000)); var showcloseMessage = false; if (bakery_session_data.closeExceptions && isOpened) { let close_exceptions = JSON.parse(bakery_session_data.closeExceptions); for (l = 0; l < close_exceptions.length; l++) { let message = close_exceptions[l].message; let startTimeStamp = new Date(changeToCurrentDate(close_exceptions[l].startDate) + ' ' + timeToHHmm(close_exceptions[l].startTime)).getTime() / 1000; let endTimeStamp = new Date(changeToCurrentDate(close_exceptions[l].endDate) + ' ' + timeToHHmm(close_exceptions[l].endTime)).getTime() / 1000; console.log('startTimeStamp', startTimeStamp, 'endTimeStamp', endTimeStamp); if ((startTimeStamp < endTimeStamp && currentTimeStamp >= startTimeStamp && currentTimeStamp <= endTimeStamp) || (startTimeStamp > endTimeStamp && (currentTimeStamp >= startTimeStamp || currentTimeStamp <= endTimeStamp))) { $("#close-exceptions-message").html('

' + message + '

'); showcloseMessage = true; } } } if (bakery_session_data.globalMessage && isOpened && showcloseMessage === false) { let startTimeStamp = new Date(changeToFullCurrentDate(bakery_session_data.globalMessageStartTime)).getTime() / 1000; let endTimeStamp = new Date(changeToFullCurrentDate(bakery_session_data.globalMessageEndTime)).getTime() / 1000; console.log('globalMessageStartTime', changeToFullCurrentDate(bakery_session_data.globalMessageStartTime)); console.log('globalMessageEndTime', changeToFullCurrentDate(bakery_session_data.globalMessageEndTime)); console.log('globalMessageStartTimeStamp', startTimeStamp); console.log('globalMessageEndTimeStamp', endTimeStamp); if ((startTimeStamp < endTimeStamp && currentTimeStamp >= startTimeStamp && currentTimeStamp <= endTimeStamp) || (startTimeStamp > endTimeStamp && (currentTimeStamp >= startTimeStamp || currentTimeStamp <= endTimeStamp))) { $("#global-message").html('

' + bakery_session_data.globalMessage + '

'); } } let tracking = Tracking(); let bakeryData = { 'bakeryinfo': bakery_session_data.location_code + " - " + bakery_session_data.location }; if ($.cookie('fireChangeBakery') == '1') { tracking.setBakeryChange(bakeryData); let localLifeTime = parseInt(localStorage.getItem("cookie_session_life_value")); let cookieTime = new Date(); let cookiemins = localLifeTime * 60; cookieTime.setTime(cookieTime.getTime() + (cookiemins * 60 * 1000)); $.cookie('fireChangeBakery', '0', { expires: cookieTime, path: '/', domain: "."+window.location.host }); } else { tracking.setBakeryInfo(bakeryData); } window.IsBakerySession = true; } else { console.log('ZACHLO b ELSE'); if (1) { getLocationByIP(); } window.IsBakerySession = false; $('#product-addtocart-button-top').attr('disabled', true); $('#product-updatecart-button-top').attr('disabled', true); $('.cart-qty-minus').attr('disabled', true); $('.cart-qty-plus').attr('disabled', true); $('.quantity-minus').attr('disabled', true); $('.quantity-plus').attr('disabled', true); $("#find-a-bakery").css("display", "block"); if (isEnableApiAddress) { $("#current-bakery-popup-top").css("display", "none"); } window.localStorage.removeItem('bakery_id'); window.localStorage.removeItem('bakery_methods'); window.localStorage.removeItem('bakery_pre_order_day'); } } /*NEW CODE END*/ customerData.get('bakery-current').subscribe(updateMenuBakery.bind(this)); var bakeryModalConfigSection = customerData.get('bakerymodal_config'); var urlParams = new URLSearchParams(window.location.search); actualizeCurrentBakery.actualizeWhenLocationCodeInUrlIsDifferent($.Deferred()) function formatPhone(phone) { format_phone = phone.replace(/\D+/g, '') .replace(/(\d{3})(\d{3})(\d{4})/, '($1) $2-$3'); return format_phone; } function showPosition(position) { let tracking = Tracking(); let locationData = {}; navigator.permissions && navigator.permissions.query({ name: 'geolocation' }) .then(function (PermissionStatus) { locationData = { state: PermissionStatus.state } tracking.setLocationPermission(locationData); }) var latitude = position.coords.latitude; var longitude = position.coords.longitude; $.ajax({ url: "/find-a-bakery-api/api/nearbybakery", data: { 'latitude': latitude, 'longitude': longitude, 'radius': 30, }, type: 'POST', success: function (data) { console.log('IP FALLBACK'); if (data.length > 0) { setCookie('latitude', latitude, 1); setCookie('longitude', longitude, 1); setCookie('locationEnabled', 1, 1); setCookie('location_enabled_latitude', latitude, 1); setCookie('location_enabled_longitude', longitude, 1); $('#loadedlocation').val('New Value'); let location_code = data[0].location_code; let time_zone = data[0].timezone; let d = new Date(); d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); let expires = 'expires=' + d.toUTCString(); let maxAge = 'max-age=' + 30 * 24 * 60 * 60; let path = 'path=/'; let domain = 'domain=.nothingbundtcakes.com'; document.cookie = "x-bakery=" + location_code + "; " + expires + "; " + maxAge + '; ' + path + '; ' + domain + '; secure;'; document.cookie = "x-bakery-timezone=" + time_zone + "; " + expires + "; " + maxAge + '; ' + path + '; ' + domain + '; secure;'; let outputTimezone = data[0].timezone; if (typeof outputTimezone == 'undefined' || outputTimezone == null || outputTimezone == '') { outputTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone; } let localD = new Date(); let utcDate = {timeZone: outputTimezone, month: 'numeric', day: 'numeric', year: 'numeric'}; let convertedDate = new Intl.DateTimeFormat('en-US', utcDate).format(localD); let targetD = new Date(convertedDate); let mon = targetD.getMonth() + 1; let days = targetD.getDate(); let years = targetD.getFullYear(); let pickupDate = mon + '/' + days + '/' + years; if ($.cookie('overlay-methodSelected') && $.cookie('overlay-methodSelected') == "delivery" && $.cookie('overlay-deliveryDate')) { pickupDate = $.cookie('overlay-deliveryDate'); } else if($.cookie('overlay-pickupDate')) { pickupDate = $.cookie('overlay-pickupDate'); } let locationUrl = window.location.href; if (locationUrl.includes('location') && window.is_location_url_enable == 1) { let newUrlLocation = locationUrl.replace(/location=[\d\/-]+/, "location=" + location_code); if (window.is_fulfillment_date_url_enable == 1) { newUrlLocation = newUrlLocation.replace(/fulfillment=[\d\/-]+/, "fulfillment=" + pickupDate); } window.location.href = newUrlLocation; } else { window.location.reload(); } } else { window.location.reload(); } } }); } function shopOpenStatusRenderer(isShopOpen, openTime, closeTime, currentDate, currentTimeStamp) { let shopOpenStatus = ""; let bakeryOpenTimeStamp; let bakeryCloseTimeStamp; if (isShopOpen) { bakeryOpenTimeStamp = new Date(currentDate + ' ' + timeToHHmm(openTime)).getTime() / 1000; bakeryCloseTimeStamp = new Date(currentDate + ' ' + timeToHHmm(closeTime)).getTime() / 1000; if ((bakeryOpenTimeStamp < bakeryCloseTimeStamp && currentTimeStamp >= bakeryOpenTimeStamp && currentTimeStamp <= bakeryCloseTimeStamp) || (bakeryOpenTimeStamp > bakeryCloseTimeStamp && (currentTimeStamp >= bakeryOpenTimeStamp || currentTimeStamp <= bakeryCloseTimeStamp))) { shopOpenStatus = "" + "Hours: Open Now" + ""; } else { shopOpenStatus = "" + "Hours: Closed Now" + ""; } } else { shopOpenStatus = "" + "Hours: Closed Now" + ""; } return shopOpenStatus; } function showError(error) { let tracking = Tracking(); let locationData = {}; navigator.permissions && navigator.permissions.query({ name: 'geolocation' }) .then(function (PermissionStatus) { locationData = { state: PermissionStatus.state } tracking.setLocationPermission(locationData); }) switch (error.code) { case error.PERMISSION_DENIED: var ip_api_config = "1"; if (ip_api_config == 1) { getLocationByIP(); } console.log("User denied the request for Geolocation."); break; case error.POSITION_UNAVAILABLE: console.log("Location information is unavailable."); break; case error.TIMEOUT: console.log("The request to get user location timed out."); break; case error.UNKNOWN_ERROR: console.log("An unknown error occurred."); break; } } function getLocationByIP() { console.log('getLocationByIP'); var GOOGLE_API_KEY = "AIzaSyCEuMMkjCv8kMN3dB8yysNP4aoRCo1mQ8k"; $.ajax({ url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=' + GOOGLE_API_KEY, data: JSON.stringify({ "considerIp": "true" }), type: 'POST', async: true, contentType: 'application/json', success: function (data) { if (data.location) { var latitude = data.location.lat; var longitude = data.location.lng; $.ajax({ url: "/find-a-bakery-api/api/nearbybakery", data: { 'latitude': latitude, 'longitude': longitude, 'radius': 30, }, async: true, type: 'POST', success: function (data) { if (data.length > 0) { setCookie('latitude', latitude, 1); setCookie('longitude', longitude, 1); setCatagory(); let location_code = data[0].location_code; let timezone = data[0].timezone; let d = new Date(); d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); let expires = 'expires=' + d.toUTCString(); let maxAge = 'max-age=' + 30 * 24 * 60 * 60; let path = 'path=/'; let domain = 'domain=.nothingbundtcakes.com'; document.cookie = "x-bakery=" + location_code + "; " + expires + "; " + maxAge + '; ' + path + '; ' + domain + '; secure;'; document.cookie = "x-bakery-timezone=" + timezone + "; " + expires + "; " + maxAge + '; ' + path + '; ' + domain + '; secure;'; let outputTime = data[0].timezone; if (typeof outputTime == 'undefined' || outputTime == null || outputTime == '') { outputTime = Intl.DateTimeFormat().resolvedOptions().timeZone; } let localDate = new Date(); let utcDate = { timeZone: outputTime, month: 'numeric', day: 'numeric', year: 'numeric' }; let convertedD = new Intl.DateTimeFormat('en-US', utcDate).format(localDate); let targetDate = new Date(convertedD); let mon = targetDate.getMonth() + 1; let days = targetDate.getDate(); let years = targetDate.getFullYear(); let pickupD = mon + '/' + days + '/' + years; if ($.cookie('overlay-methodSelected') && $.cookie('overlay-methodSelected') == "delivery" && $.cookie('overlay-deliveryDate')) { pickupD = $.cookie('overlay-deliveryDate'); } else if ($.cookie('overlay-pickupDate')) { pickupD = $.cookie('overlay-pickupDate'); } let locationUrl = window.location.href; if (locationUrl.includes('location') && window.is_location_url_enable == 1) { let newUrlLocation = locationUrl.replace(/location=[\d\/-]+/, "location=" + location_code); if (window.is_fulfillment_date_url_enable == 1) { newUrlLocation = newUrlLocation.replace(/fulfillment=[\d\/-]+/, "fulfillment=" + pickupD); } window.location.href = newUrlLocation; } else { window.location.reload(); } } } }); } }, error: function (e) { console.log('error!', JSON.parse(e.responseText)); } }); } function setCatagory() { $.ajax({ url: "/find-a-bakery-api/api/catagoryProductUrl", data: { 'path': window.location.href, }, type: 'POST', success: function (successData) { location.assign(successData); } }); } function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = 'expires=' + d.toUTCString(); var maxAge = 'max-age=' + exdays * 24 * 60 * 60; var path = 'path=/'; document.cookie = cname + "=" + cvalue + "; " + expires + "; " + maxAge + '; ' + path; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length, c.length); } return ''; } function titleCase(string) { return string.replace(/^(\w)(.+)/, (match, p1, p2) => p1.toUpperCase() + p2.toLowerCase()); } function getCurrentdate(timestamp) { let now = new Date(timestamp), y = now.getFullYear(), m = ("0" + (now.getMonth() + 1)).slice(-2), d = ("0" + now.getDate()).slice(-2); return `${y}/${m}/${d}`; } function getCustomdate(timestamp, day) { let now = new Date(Date.now(timestamp) + day*(3600 * 1000 * 24)), y = now.getFullYear(), m = ("0" + (now.getMonth() + 1)).slice(-2), d = ("0" + now.getDate()).slice(-2); return `${y}/${m}/${d}`; } function changeToCurrentDate(date) { let arr = date.split('/'); y = arr[2]; m = arr[0]; d = arr[1]; return `${y}/${m}/${d}`; } function changeToFullCurrentDate(fullDate) { let fullDateArr = fullDate.split(' '); let currentDate = changeToCurrentDate(fullDateArr[0]); return `${currentDate} ${fullDateArr[1]}`; } function changeToCurrentDate(date) { let arr = date.split('/'); y = arr[2]; m = arr[0]; d = arr[1]; return `${y}/${m}/${d}`; } function changeToFullCurrentDate(fullDate) { let fullDateArr = fullDate.split(' '); let currentDate = changeToCurrentDate(fullDateArr[0]); return `${currentDate} ${fullDateArr[1]}`; } function timeToHHmm(time) { var nums = time.match(/\d+/g); var am = /am/i.test(time); nums[0] = ('0' + ((nums[0] % 12) + (am ? 0 : 12))).slice(-2); return nums.join(':'); } }); });

Tuscaloosa Bakery & Cake Shop | Weddings & Birthdays (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Arline Emard IV

Last Updated:

Views: 5754

Rating: 4.1 / 5 (72 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Arline Emard IV

Birthday: 1996-07-10

Address: 8912 Hintz Shore, West Louie, AZ 69363-0747

Phone: +13454700762376

Job: Administration Technician

Hobby: Paintball, Horseback riding, Cycling, Running, Macrame, Playing musical instruments, Soapmaking

Introduction: My name is Arline Emard IV, I am a cheerful, gorgeous, colorful, joyous, excited, super, inquisitive person who loves writing and wants to share my knowledge and understanding with you.