{"id":5553,"date":"2026-02-09T22:30:56","date_gmt":"2026-02-09T22:30:56","guid":{"rendered":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/obstacle-courses\/"},"modified":"2026-02-10T02:30:18","modified_gmt":"2026-02-10T02:30:18","slug":"obstacle-courses","status":"publish","type":"page","link":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/","title":{"rendered":"Obstacle Courses"},"content":{"rendered":"<!-- Start Shortcoder content --><!-- Cart -->\r\n<div class=\"cartInfo\" style=\"display:none\">\r\n    <i class=\"cartIcon fas fa-shopping-cart\"><\/i><!--no linebreak bc elementor--> <span class=\"simpleCart_quantity\"><\/span> items\r\n<\/div>\r\n\r\n<div class=\"pageDateRangeWrapper elementor-widget-button\">\r\n    <div class=\"elementor-button elementor-animation-grow\" onclick=\"checkAvailDateClick()\" style=\"display:block\">\r\n        <div class=\"ioDateRangeHeader\">Set Event Date<\/div>\r\n        <div id=\"pageDateRange\" class=\"ioDateRange\"><\/div>\r\n    <\/div>\r\n<\/div>\r\n<div class=\"io_category_wrapper elementor-widget-heading\">\r\n    <h1 class=\"catNameIO elementor-heading-title elementor-size-default\">Obstacle Courses<span class=\"io_forrent io_forrent_407299\"> for Rent<\/span><\/h1>\r\n<\/div>\r\n\r\n<!-- Add View Toggle Buttons -->\r\n<div class=\"io_view_toggle_container\" style=\"display:none;\">\r\n    <div class=\"io_view_toggle_buttons\">\r\n        <button class=\"io_view_toggle_btn active\" data-view=\"tile\" title=\"Tile View\">\r\n            <i class=\"fas fa-th-large\"><\/i>\r\n        <\/button>\r\n        <button class=\"io_view_toggle_btn\" data-view=\"list\" title=\"List View\">\r\n            <i class=\"fas fa-list\"><\/i>\r\n        <\/button>\r\n    <\/div>\r\n<\/div>\r\n<div class=\"category_id\" style=\"display: none\">407299<\/div>\r\n<div class=\"cat_div_wrapper\"><div class=\"io_cat_description io_cat_description_407299 elementor-widget-text-editor catDescriptionIO\">Obstacle Courses offer a dynamic physical challenge that turns any event into a fun and engaging adventure. Perfect for testing agility and teamwork, they bring an exciting, interactive element to your rental lineup.<\/div><\/div>\r\n<div class=\"io_catdiv2\"><\/div>\r\n<div class=\"io_landingpages io_landingpages_407299 elementor-widget-text-editor\"><!-- Start Shortcoder content -->Professional delivery to <span class=\\\"io_city_list\\\">Livonia MI<\/span> and surrounding areas. Please submit a quote or contact us to be sure we service your area.<!-- End Shortcoder content --><\/div>\r\n<div class=\"io_cat_longdescription io_cat_longdescription_407299 elementor-widget-text-editor\"><\/p>\n<h3 data-end=\"274\" data-start=\"198\">Inflatable Obstacle Course Rentals in Metro Detroit &amp; Southeast Michigan<\/h3>\n<p data-end=\"673\" data-start=\"276\">Turn up the excitement at your next event with our <strong data-end=\"358\" data-start=\"327\">Inflatable Obstacle Courses<\/strong>&mdash;perfect for high-energy fun that gets kids, teens, and even adults in on the action! Whether you&#39;re planning a school field day in <strong data-end=\"501\" data-start=\"490\">Livonia<\/strong>, a block party in <strong data-end=\"540\" data-start=\"520\">Dearborn Heights<\/strong>, or a corporate team-building event in <strong data-end=\"588\" data-start=\"580\">Troy<\/strong>, our obstacle courses deliver big-time thrills in a safe and controlled environment.<\/p>\n<p data-end=\"1039\" data-start=\"675\">These inflatables are ideal for everything from <strong data-end=\"743\" data-start=\"723\">birthday parties<\/strong>, <strong data-end=\"758\" data-start=\"745\">festivals<\/strong>, and <strong data-end=\"779\" data-start=\"764\">graduations<\/strong> to <strong data-end=\"800\" data-start=\"783\">church events<\/strong>, <strong data-end=\"822\" data-start=\"802\">school carnivals<\/strong>, and <strong data-end=\"849\" data-start=\"828\">community picnics<\/strong>. You&rsquo;ll often see them lighting up events in <strong data-end=\"907\" data-start=\"895\">Westland<\/strong>, <strong data-end=\"919\" data-start=\"909\">Canton<\/strong>, <strong data-end=\"933\" data-start=\"921\">Plymouth<\/strong>, and <strong data-end=\"950\" data-start=\"939\">Redford<\/strong>, bringing friends and families together for friendly races, relays, and competitive fun.<\/p>\n<p data-end=\"1383\" data-start=\"1041\">Our team regularly delivers to party destinations across <strong data-end=\"1112\" data-start=\"1098\">Southfield<\/strong>, <strong data-end=\"1122\" data-start=\"1114\">Novi<\/strong>, <strong data-end=\"1144\" data-start=\"1124\">Farmington Hills<\/strong>, <strong data-end=\"1161\" data-start=\"1146\">Garden City<\/strong>, and <strong data-end=\"1181\" data-start=\"1167\">Northville<\/strong>. Planning something in <strong data-end=\"1224\" data-start=\"1205\">Rochester Hills<\/strong>, <strong data-end=\"1246\" data-start=\"1226\">Sterling Heights<\/strong>, <strong data-end=\"1268\" data-start=\"1248\">Clinton Township<\/strong>, or <strong data-end=\"1283\" data-start=\"1273\">Macomb<\/strong>? We&rsquo;ve got obstacle courses long enough to challenge teens and exciting enough for little ones too.<\/p>\n<p data-end=\"1769\" data-start=\"1385\">Obstacle course inflatables are especially popular for school and youth events in <strong data-end=\"1479\" data-start=\"1467\">Oak Park<\/strong>, <strong data-end=\"1495\" data-start=\"1481\">Hazel Park<\/strong>, <strong data-end=\"1509\" data-start=\"1497\">Ferndale<\/strong>, and <strong data-end=\"1528\" data-start=\"1515\">Royal Oak<\/strong>, where energy runs high and everyone&rsquo;s eager to jump, climb, crawl, and slide. We&rsquo;ve also provided obstacle course rentals for events in <strong data-end=\"1680\" data-start=\"1666\">Birmingham<\/strong>, <strong data-end=\"1702\" data-start=\"1682\">Bloomfield Hills<\/strong>, and <strong data-end=\"1725\" data-start=\"1708\">Beverly Hills<\/strong>, where style and structure go hand-in-hand.<\/p>\n<p data-end=\"2103\" data-start=\"1771\">For larger community or church events, we travel to places like <strong data-end=\"1849\" data-start=\"1835\">Allen Park<\/strong>, <strong data-end=\"1865\" data-start=\"1851\">Melvindale<\/strong>, <strong data-end=\"1878\" data-start=\"1867\">Inkster<\/strong>, <strong data-end=\"1889\" data-start=\"1880\">Wayne<\/strong>, and <strong data-end=\"1906\" data-start=\"1895\">Romulus<\/strong>, making it easy to plan unforgettable fun without stress. Even if your event is further out&mdash;like <strong data-end=\"2017\" data-start=\"2004\">Ypsilanti<\/strong>, <strong data-end=\"2032\" data-start=\"2019\">Ann Arbor<\/strong>, <strong data-end=\"2044\" data-start=\"2034\">Howell<\/strong>, or <strong data-end=\"2063\" data-start=\"2049\">South Lyon<\/strong>&mdash;we&rsquo;re happy to bring the course to you.<\/p>\n<p data-end=\"2356\" data-start=\"2105\">Hosting a family reunion in <strong data-end=\"2142\" data-start=\"2133\">Wixom<\/strong>, <strong data-end=\"2165\" data-start=\"2144\">Commerce Township<\/strong>, or <strong data-end=\"2183\" data-start=\"2170\">Waterford<\/strong>? Or maybe a team challenge day in <strong data-end=\"2229\" data-start=\"2218\">Pontiac<\/strong>, <strong data-end=\"2244\" data-start=\"2231\">Hamtramck<\/strong>, or <strong data-end=\"2266\" data-start=\"2249\">Highland Park<\/strong>? Our obstacle courses bring everyone together for a dynamic and unforgettable experience.<\/p>\n<p data-end=\"2711\" data-start=\"2358\">We&rsquo;ve served birthday bashes and block parties in <strong data-end=\"2428\" data-start=\"2408\">St. Clair Shores<\/strong>, <strong data-end=\"2451\" data-start=\"2430\">Harrison Township<\/strong>, <strong data-end=\"2469\" data-start=\"2453\">Keego Harbor<\/strong>, <strong data-end=\"2482\" data-start=\"2471\">Clawson<\/strong>, <strong data-end=\"2503\" data-start=\"2484\">Lathrup Village<\/strong>, <strong data-end=\"2517\" data-start=\"2505\">Franklin<\/strong>, <strong data-end=\"2536\" data-start=\"2519\">Bingham Farms<\/strong>, <strong data-end=\"2554\" data-start=\"2538\">Lincoln Park<\/strong>, and even <strong data-end=\"2575\" data-start=\"2565\">Ecorse<\/strong>. If you&rsquo;re looking for that wow-factor that both kids and adults can enjoy, a high-quality inflatable obstacle course is the way to go.<\/p>\n<p data-end=\"3072\" data-start=\"2713\">At <strong data-end=\"2752\" data-start=\"2716\">Exclusive Event Rentals Michigan<\/strong>, we pride ourselves on clean, professionally installed equipment, outstanding customer service, and on-time delivery&mdash;<strong data-end=\"2909\" data-start=\"2870\">no matter where you are in Michigan<\/strong>. These cities are just a few of our most common delivery areas. If you don&rsquo;t see your location listed, just reach out or proceed to checkout&mdash;we&rsquo;ll make it happen.<\/p>\n<p><\/div>\r\n<script>\r\n    var isValid = function (u) {\r\n        if (!u) return false;\r\n        var s = String(u).trim();\r\n        if (!s) return false;\r\n        if (s.indexOf('%%') !== -1) return false;\r\n        if (s === '0' || s.toLowerCase() === 'null' || s.toLowerCase() === 'undefined') return false;\r\n        return true;\r\n    };\r\n\r\n    var isMp4 = function (u) {\r\n        if (!u) return false;\r\n        return \/\\.mp4(?:\\?|#|$)\/i.test(String(u).trim());\r\n    };\r\n\r\n    function CategoryGallery(rental_id, rental_name, images_arr){\r\n        var rid = rental_id;\r\n        var rentalName = rental_name;\r\n\r\n        try {\r\n            if (typeof images_arr === 'string' && images_arr.length) {\r\n                images_arr = JSON.parse(images_arr);\r\n            }\r\n        } catch (e) {\r\n            images_arr = {};\r\n        }\r\n        if (!images_arr) images_arr = {};\r\n\r\n        var $bigAfter = jQuery('#io_img_big2_' + rid);\r\n        var $thumbAfter = jQuery('#io_img_thumb1_' + rid);\r\n\r\n        if ($bigAfter.length && $thumbAfter.length) {\r\n            var relVal = $bigAfter.attr('rel') || 'img_group noopener';\r\n\r\n            var getBigUrl = function (imgObj) {\r\n                return imgObj[\"rentalimage_imagelocbig\"] || imgObj[\"imagelocbig\"] || imgObj[\"big\"] || \"\";\r\n            };\r\n\r\n            var getThumbUrl = function (imgObj) {\r\n                return imgObj[\"rentalimage_imageloc\"] || imgObj[\"imageloc\"] || imgObj[\"thumb\"] || \"\";\r\n            };\r\n\r\n            var addedThumbs = 0;\r\n            var $mainImg = jQuery('#io_img_big2_' + rid).closest('.io_item2_list').find('.io_image_big').first();\r\n\r\n            \/\/ Bind existing thumb1 to its existing big1 anchor using data-big-src\r\n            var $existingThumb1 = jQuery('#io_img_thumb1_' + rid);\r\n            var $existingBig1 = jQuery('#io_img_big1_' + rid);\r\n            if ($existingThumb1.length && $existingBig1.length) {\r\n                var existingBig1Href = $existingBig1.attr('href');\r\n                var existingThumb1Src = $existingThumb1.attr('src');\r\n\r\n                if (isMp4(existingBig1Href) && isValid(existingThumb1Src)) {\r\n                    existingBig1Href = existingThumb1Src;\r\n                    $existingBig1.attr('href', existingBig1Href);\r\n                }\r\n\r\n                if (isValid(existingBig1Href)) {\r\n                    $existingThumb1.attr('data-big-src', existingBig1Href);\r\n                    $existingThumb1.off('click.ioGallery').on('click.ioGallery', function () {\r\n                        if (typeof updateMainPic === 'function') {\r\n                            updateMainPic(this);\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n\r\n            \/\/ Fix built-in big2 anchor if it points to mp4\r\n            if ($bigAfter.length) {\r\n                var builtInBig2Href = $bigAfter.attr('href');\r\n                var builtInThumb2Src = $thumbAfter.attr('src');\r\n\r\n                if (isMp4(builtInBig2Href) && isValid(builtInThumb2Src)) {\r\n                    $bigAfter.attr('href', builtInThumb2Src);\r\n                }\r\n            }\r\n\r\n            for (var key in images_arr) {\r\n                if (!images_arr.hasOwnProperty(key)) continue;\r\n\r\n                var imgObj = images_arr[key] || {};\r\n                var href = getBigUrl(imgObj);\r\n                var src  = getThumbUrl(imgObj);\r\n\r\n                if (isMp4(href) && isValid(src)) {\r\n                    href = src;\r\n                }\r\n\r\n                var n = parseInt(key, 10);\r\n                if (isNaN(n)) {\r\n                    n = addedThumbs + 1;\r\n                }\r\n\r\n                var bigIndex = n + 1;\r\n                var thumbIndex = n + 1;\r\n\r\n                if (isValid(href)) {\r\n                    var bigId = '#io_img_big' + bigIndex + '_' + rid;\r\n                    if (jQuery(bigId).length === 0) {\r\n                        var $a = jQuery('<a\/>', {\r\n                            rel: relVal,\r\n                            href: href,\r\n                            id: 'io_img_big' + bigIndex + '_' + rid\r\n                        });\r\n                        $bigAfter.after($a);\r\n                        $bigAfter = $a;\r\n                    }\r\n                }\r\n\r\n                if (isValid(src)) {\r\n                    var thumbId = '#io_img_thumb' + thumbIndex + '_' + rid;\r\n                    if (jQuery(thumbId).length === 0) {\r\n                        var $img = jQuery('<img\/>', {\r\n                            'class': 'io_image_thumb skip-lazy',\r\n                            title: rentalName,\r\n                            src: src,\r\n                            alt: rentalName,\r\n                            id: 'io_img_thumb' + thumbIndex + '_' + rid,\r\n                            'data-big-src': href\r\n                        }).on('click', function () {\r\n                            if (typeof updateMainPic === 'function') {\r\n                                updateMainPic(this);\r\n                            }\r\n                        });\r\n\r\n                        $thumbAfter.after($img);\r\n                        $thumbAfter = $img;\r\n                        addedThumbs++;\r\n                    }\r\n                }\r\n            }\r\n\r\n            if (addedThumbs > 0) {\r\n                jQuery('#io_img_thumb1_' + rid).closest('.io_image_thumbbox').show();\r\n            }\r\n        }\r\n    }\r\n\r\n    \/\/ Function to generate list view content on demand (global scope)\r\n    generateListViewContent = function() {\r\n        console.log('[IO List View] Generating list view content dynamically');\r\n\r\n        jQuery('.io_item2_list').each(function() {\r\n            var $item = jQuery(this);\r\n\r\n            if ($item.find('.io_list_view_content').length > 0) {\r\n                return;\r\n            }\r\n\r\n            var rentalId = $item.find('.item_rentalid').text().trim();\r\n            if (!rentalId) {\r\n                console.warn('[IO List View] No rental_id found for item, skipping');\r\n                return;\r\n            }\r\n\r\n            var indoorOutdoor = String(window.io_category_data[rentalId][\"indoor_outdoor\"] || \"\").replace(\/[\\r\\n]+\/g, \"\").trim();\r\n            var staff = String(window.io_category_data[rentalId][\"staff\"] || \"\").replace(\/[\\r\\n]+\/g, \"\").trim();\r\n            var electric = String(window.io_category_data[rentalId][\"electric\"] || \"\").replace(\/[\\r\\n]+\/g, \"\").trim();\r\n            var dimensions = String(window.io_category_data[rentalId][\"dimensions\"] || \"\").replace(\/[\\r\\n]+\/g, \"\").trim();\r\n\r\n            var stripHtml = function(html) {\r\n                var tmp = document.createElement(\"DIV\");\r\n                tmp.innerHTML = html;\r\n                return (tmp.textContent || tmp.innerText || \"\").trim();\r\n            };\r\n\r\n            var escapeHtml = function(text) {\r\n                var map = {\r\n                    '&': '&amp;',\r\n                    '<': '&lt;',\r\n                    '>': '&gt;',\r\n                    '\"': '&quot;',\r\n                    \"'\": '&#039;'\r\n                };\r\n                return text.replace(\/[&<>\"']\/g, function(m) { return map[m]; });\r\n            };\r\n\r\n            var html = '<div class=\"io_list_view_content\">';\r\n            html += '<div class=\"io_item_details_labeled\">';\r\n\r\n            if (indoorOutdoor && indoorOutdoor !== '0' && indoorOutdoor.length > 0) {\r\n                html += '<div class=\"io_detail_item io_detail_setup\">';\r\n                html += '<span class=\"io_detail_label\">Setup:<\/span>';\r\n                html += '<span class=\"io_detail_value\">' + escapeHtml(indoorOutdoor) + '<\/span>';\r\n                html += '<\/div>';\r\n            }\r\n\r\n            var operatorsText = staff ? staff + ' Adult Supervision Required' : \"\";\r\n            if (operatorsText &&\r\n                operatorsText !== '0 Adult Supervision Required' &&\r\n                operatorsText !== 'Adult Supervision Required' &&\r\n                operatorsText !== '0') {\r\n                html += '<div class=\"io_detail_item io_detail_operators\">';\r\n                html += '<span class=\"io_detail_label\">Operators:<\/span>';\r\n                html += '<span class=\"io_detail_value\">' + escapeHtml(operatorsText) + '<\/span>';\r\n                html += '<\/div>';\r\n            }\r\n\r\n            var powerText = electric ? electric + ' Outlets' : \"\";\r\n            if (powerText &&\r\n                powerText !== '0 Outlets' &&\r\n                powerText !== '0.00 Outlets' &&\r\n                powerText !== 'Outlets' &&\r\n                powerText !== '0') {\r\n                html += '<div class=\"io_detail_item io_detail_power\">';\r\n                html += '<span class=\"io_detail_label\">Power:<\/span>';\r\n                html += '<span class=\"io_detail_value\">' + escapeHtml(powerText) + '<\/span>';\r\n                html += '<\/div>';\r\n            }\r\n\r\n            if (dimensions && dimensions !== '0' && dimensions.length > 0) {\r\n                html += '<div class=\"io_detail_item io_detail_size\">';\r\n                html += '<span class=\"io_detail_label\">Size:<\/span>';\r\n                html += '<span class=\"io_detail_value\">' + escapeHtml(dimensions) + '<\/span>';\r\n                html += '<\/div>';\r\n            }\r\n\r\n            html += '<\/div>';\r\n            html += '<\/div>';\r\n\r\n            $item.find('.io_buttons_container').before(html);\r\n        });\r\n    };\r\n\r\n    function bindExistingThumbTargets() {\r\n    jQuery('.io_item2_list').each(function() {\r\n        var $item = jQuery(this);\r\n        var rentalId = $item.find('.item_rentalid').text().trim();\r\n        if (!rentalId) return;\r\n\r\n        var arr = window.io_category_data?.[rentalId]?.images_arr;\r\n        try {\r\n            if (typeof arr === 'string' && arr.length) {\r\n                arr = JSON.parse(arr);\r\n            }\r\n        } catch (e) {\r\n            arr = {};\r\n        }\r\n        if (!arr) arr = {};\r\n\r\n        $item.find('.io_image_thumb[id]').each(function() {\r\n            var thumb = this;\r\n            var match = thumb.id.match(\/io_img_thumb(\\d+)_(\\d+)\/);\r\n            if (!match) return;\r\n\r\n            var index = parseInt(match[1], 10) - 1;\r\n            var imgObj = arr[index];\r\n            if (!imgObj) return;\r\n\r\n            var src = imgObj.rentalimage_imageloc || imgObj.imageloc || imgObj.thumb || \"\";\r\n            var href = imgObj.rentalimage_imagelocbig || imgObj.imagelocbig || imgObj.big || \"\";\r\n\r\n            if (isMp4(href) && isValid(src)) {\r\n                href = src;\r\n            }\r\n\r\n            if (isValid(href)) {\r\n                thumb.setAttribute('data-big-src', href);\r\n            }\r\n\r\n            jQuery(thumb).off('click.ioGallery').on('click.ioGallery', function () {\r\n                if (typeof updateMainPic === 'function') {\r\n                    updateMainPic(this);\r\n                }\r\n            });\r\n        });\r\n    });\r\n}\r\n\r\n\r\n    jQuery(document).ready(function($) {\r\n\r\n        jQuery(\".io_item2_list\").each(function(){\r\n            var rentalId = jQuery(this).find('.item_rentalid').text().trim();\r\n            if (io_categoryVariantImages == 'on'){\r\n                if (typeof window.io_category_data !== 'undefined' && window.io_category_data[rentalId]) {\r\n                    CategoryGallery(\r\n                        rentalId,\r\n                        window.io_category_data[rentalId]['rental_name'],\r\n                        window.io_category_data[rentalId][\"images_arr\"]\r\n                    );\r\n                }\r\n            }\r\n        });\r\n\r\n        bindExistingThumbTargets();\r\n\r\n        console.log('[IO View Toggle] Document ready, initializing view toggle functionality');\r\n\r\n        var categoryId = $('.category_id').text().trim();\r\n        var hasNumericCategoryId = categoryId && !isNaN(categoryId) && categoryId.length > 0;\r\n\r\n        if (!hasNumericCategoryId) {\r\n            console.log('[IO View Toggle] No valid numeric category ID found, this is not a category page - skipping initialization');\r\n            return;\r\n        }\r\n\r\n        console.log('[IO View Toggle] Category page detected with categoryId:', categoryId);\r\n        $('body').addClass('io-has-category-id');\r\n\r\n        $('.io_view_toggle_container').show();\r\n        console.log('[IO View Toggle] Toggle buttons displayed for category page');\r\n\r\n        var isInitialized = false;\r\n\r\n        function initViewToggle(force) {\r\n            if (isInitialized && !force) {\r\n                console.log('[IO View Toggle] Already initialized, skipping');\r\n                return;\r\n            }\r\n\r\n            console.log('[IO View Toggle] Initializing view toggle functionality');\r\n\r\n            if ($('.io_view_toggle_btn').length === 0) {\r\n                console.warn('[IO View Toggle] Toggle buttons not found in DOM');\r\n                return;\r\n            }\r\n            console.log('[IO View Toggle] Found', $('.io_view_toggle_btn').length, 'toggle buttons');\r\n\r\n            if ($('.io_catdiv2').length === 0) {\r\n                console.warn('[IO View Toggle] Category container (.io_catdiv2) not found');\r\n                return;\r\n            }\r\n            console.log('[IO View Toggle] Found', $('.io_catdiv2').length, 'category containers');\r\n\r\n            var savedView = localStorage.getItem('io_category_view') || 'tile';\r\n            console.log('[IO View Toggle] Retrieved saved view preference:', savedView);\r\n\r\n            $('.io_catdiv2').removeClass('tile-view list-view').addClass(savedView + '-view');\r\n            console.log('[IO View Toggle] Applied initial view class:', savedView + '-view');\r\n\r\n            $('.io_view_toggle_btn').removeClass('active');\r\n            $('.io_view_toggle_btn[data-view=\"' + savedView + '\"]').addClass('active');\r\n            console.log('[IO View Toggle] Updated button states, active button:', savedView);\r\n\r\n            if (savedView === 'list') {\r\n                if (typeof generateListViewContent === 'function') {\r\n                    generateListViewContent();\r\n                } else {\r\n                    console.warn('[IO View Toggle] generateListViewContent function not available yet');\r\n                }\r\n            }\r\n\r\n            var itemCount = $('.io_item2_list').length;\r\n            console.log('[IO View Toggle] Found', itemCount, 'items in category');\r\n\r\n            $('.io_view_toggle_btn').off('click.viewToggle');\r\n\r\n            var buttons = document.querySelectorAll('.io_view_toggle_btn');\r\n            console.log('[IO View Toggle] Attaching event listeners to', buttons.length, 'buttons using native JS');\r\n\r\n            buttons.forEach(function(button) {\r\n                var newButton = button.cloneNode(true);\r\n                button.parentNode.replaceChild(newButton, button);\r\n\r\n                newButton.addEventListener('click', function(e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    var view = this.getAttribute('data-view');\r\n                    console.log('[IO View Toggle] Button clicked (native listener), switching to view:', view);\r\n\r\n                    if (view === 'list') {\r\n                        if (typeof generateListViewContent === 'function') {\r\n                            generateListViewContent();\r\n                        } else {\r\n                            console.warn('[IO View Toggle] generateListViewContent function not available');\r\n                        }\r\n                    }\r\n\r\n                    document.querySelectorAll('.io_view_toggle_btn').forEach(function(btn) {\r\n                        btn.classList.remove('active');\r\n                    });\r\n                    this.classList.add('active');\r\n                    console.log('[IO View Toggle] Updated button active states');\r\n\r\n                    var catdiv = document.querySelector('.io_catdiv2');\r\n                    if (catdiv) {\r\n                        catdiv.classList.remove('tile-view', 'list-view');\r\n                        catdiv.classList.add(view + '-view');\r\n                        console.log('[IO View Toggle] Applied view class:', view + '-view');\r\n                    }\r\n\r\n                    localStorage.setItem('io_category_view', view);\r\n                    console.log('[IO View Toggle] Saved view preference to localStorage:', view);\r\n\r\n                    setTimeout(function() {\r\n                        if (catdiv) {\r\n                            var containerClasses = catdiv.className;\r\n                            var visibleItems = document.querySelectorAll('.io_item2_list:not([style*=\"display: none\"])').length;\r\n                            console.log('[IO View Toggle] Layout updated - Container classes:', containerClasses);\r\n                            console.log('[IO View Toggle] Visible items after view change:', visibleItems);\r\n\r\n                            if (view === 'list') {\r\n                                var visibleListContent = document.querySelectorAll('.io_list_view_content:not([style*=\"display: none\"])').length;\r\n                                console.log('[IO View Toggle] Visible list content elements:', visibleListContent);\r\n                            }\r\n                        }\r\n                    }, 100);\r\n                }, true);\r\n\r\n                console.log('[IO View Toggle] Event listener attached to button:', newButton.getAttribute('data-view'));\r\n            });\r\n\r\n            console.log('[IO View Toggle] Event handlers attached successfully');\r\n\r\n            isInitialized = true;\r\n        }\r\n\r\n        console.log('[IO View Toggle] Starting initial setup');\r\n        initViewToggle();\r\n\r\n        $(document).on('io_content_loaded', function() {\r\n            console.log('[IO View Toggle] Dynamic content loaded event detected, reinitializing');\r\n\r\n            jQuery(\".io_item2_list\").each(function(){\r\n                var rentalId = jQuery(this).find('.item_rentalid').text().trim();\r\n                if (io_categoryVariantImages == 'on'){\r\n                    if (typeof window.io_category_data !== 'undefined' && window.io_category_data[rentalId]) {\r\n                        CategoryGallery(\r\n                            rentalId,\r\n                            window.io_category_data[rentalId]['rental_name'],\r\n                            window.io_category_data[rentalId][\"images_arr\"]\r\n                        );\r\n                    }\r\n                }\r\n            });\r\n\r\n            bindExistingThumbTargets();\r\n            initViewToggle();\r\n        });\r\n\r\n        if (typeof MutationObserver !== 'undefined') {\r\n            var mutationTimeout;\r\n            var lastItemCount = $('.io_item2_list').length;\r\n\r\n            var observer = new MutationObserver(function(mutations) {\r\n                clearTimeout(mutationTimeout);\r\n\r\n                mutationTimeout = setTimeout(function() {\r\n                    var currentItemCount = $('.io_item2_list').length;\r\n\r\n                    if (currentItemCount > lastItemCount) {\r\n                        console.log('[IO View Toggle] New items detected in DOM (' + lastItemCount + ' -> ' + currentItemCount + ')');\r\n                        lastItemCount = currentItemCount;\r\n\r\n                        jQuery(\".io_item2_list\").each(function(){\r\n                            var rentalId = jQuery(this).find('.item_rentalid').text().trim();\r\n                            if (io_categoryVariantImages == 'on'){\r\n                                if (typeof window.io_category_data !== 'undefined' && window.io_category_data[rentalId]) {\r\n                                    CategoryGallery(\r\n                                        rentalId,\r\n                                        window.io_category_data[rentalId]['rental_name'],\r\n                                        window.io_category_data[rentalId][\"images_arr\"]\r\n                                    );\r\n                                }\r\n                            }\r\n                        });\r\n\r\n                        bindExistingThumbTargets();\r\n\r\n                        if (isInitialized) {\r\n                            var currentView = localStorage.getItem('io_category_view') || 'tile';\r\n                            if (currentView === 'list') {\r\n                                console.log('[IO View Toggle] Generating list view content for new items');\r\n                                if (typeof generateListViewContent === 'function') {\r\n                                    generateListViewContent();\r\n                                } else {\r\n                                    console.warn('[IO View Toggle] generateListViewContent function not available');\r\n                                }\r\n                            }\r\n                        } else {\r\n                            console.log('[IO View Toggle] Initializing due to new items');\r\n                            initViewToggle();\r\n                        }\r\n                    }\r\n                }, 250);\r\n            });\r\n\r\n            observer.observe(document.body, {\r\n                childList: true,\r\n                subtree: true\r\n            });\r\n            console.log('[IO View Toggle] DOM mutation observer started');\r\n        }\r\n\r\n        $(window).on('resize.viewToggle', function() {\r\n            var windowWidth = $(window).width();\r\n            var currentView = $('.io_catdiv2').hasClass('list-view') ? 'list' : 'tile';\r\n            console.log('[IO View Toggle] Window resized to:', windowWidth, 'px, current view:', currentView);\r\n        });\r\n\r\n        console.log('[IO View Toggle] Initialization complete');\r\n    });\r\n<\/script><!-- End Shortcoder content -->\n<!-- Start Shortcoder content --><script>window.io_category_data = window.io_category_data || {}; window.io_category_data['2774933'] = {\"indoor_outdoor\":\"\",\"staff\":\"\",\"electric\":\"2.00\",\"dimensions\":\"\",\"rental_id\":\"2774933\",\"rental_name\":\"Block Party Obstacle Course with Slide\",\"images_arr\":\"{\\u00220\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221878521\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222774933\\u0022,\\u0022rentalimage_order\\u0022:\\u00220\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/oricm79l_1744072154.png\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/oricm79l_1744072154_big.png\\u0022},\\u00221\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221878523\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222774933\\u0022,\\u0022rentalimage_order\\u0022:\\u00221\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/7mtuhm1n_1744072154.png\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/7mtuhm1n_1744072154_big.png\\u0022},\\u00222\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221878525\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222774933\\u0022,\\u0022rentalimage_order\\u0022:\\u00222\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/rgbzmxxj_1744072155.png\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/rgbzmxxj_1744072155_big.png\\u0022},\\u00223\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221878527\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222774933\\u0022,\\u0022rentalimage_order\\u0022:\\u00223\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/k8c6sw29_1744072155.png\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/k8c6sw29_1744072155_big.png\\u0022}}\"};<\/script><div class=\"io_item2_list elementor-widget-heading simpleCart_ioShelfItem cat_div_2774933\" name=\"maindiv_Block Party Obstacle Course with Slide\">\r\n    <div class=\"cat_div\">\r\n        <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/block-party-obstacle-course-with-slide\/\">\r\n            <div class=\"btn btn-primary view-product-button\">View Product<\/div>\r\n            <img decoding=\"async\" class=\"category_big_img cat_img item_image io_image_big\" title=\"Block Party Obstacle Course with Slide\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/oricm79l_1744072154_big.png\" alt=\"Block Party Obstacle Course with Slide\" \/>\r\n        <\/a>\r\n        <a rel=\"noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/oricm79l_1744072154_big.png\" id=\"io_img_big1_2774933\" target=\"_blank\"><\/a>\r\n        <a rel=\"img_group noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/7mtuhm1n_1744072154_big.png\" id=\"io_img_big2_2774933\" target=\"_blank\"><\/a>\r\n        <br>\r\n        <div class=\"io_image_thumbbox io_category_thumbox\" style=\"display:none;\">\r\n            <img decoding=\"async\" class=\"io_image_thumb skip-lazy\" title=\"Block Party Obstacle Course with Slide\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/oricm79l_1744072154.png\" alt=\"Block Party Obstacle Course with Slide\"\r\n                 id=\"io_img_thumb1_2774933\" onclick=\"updateMainPic(this)\" \/>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"io_item2_list_inner\">\r\n        <p class=\"elementor-heading-title rentNameIO item_name\"><a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/block-party-obstacle-course-with-slide\/\">Block Party Obstacle Course with Slide<\/a><\/p>\r\n        <p class=\"rentNameIO_price rentNameIO_price_2774933\"><span class=\"cat_from\" style=\"font-style:italic;font-size:smaller;\">from<\/span> <span class=\"rentNameIO_pricespan\">$425.00<\/span><\/p>\r\n        <p class=\"item_encoded\" style=\"display:none;\">Block+Party+Obstacle+Course+with+Slide<\/p>\r\n        <span class=\"item_href\" style=\"display:none;\">https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/block-party-obstacle-course-with-slide\/<\/span>\r\n        <p class=\"item_rentalid\" style=\"display:none;\">2774933<\/p>\r\n        <p class=\"item_vendorid\" style=\"display:none;\"><\/p>\r\n        <p class=\"item_qtytype\" style=\"display:none;\">Unlimited<\/p>\r\n        <p class=\"item_inputtype\" style=\"display:none;\">Dropdown<\/p>\r\n        <span class=\"item_qtyincrement\" style=\"display:none;\">1<\/span>\r\n        <div class=\"item_timeslots\" style=\"display:none;\"><\/div>\r\n        <p class=\"item_giftcardvalue\" style=\"display:none;\"><\/p>\r\n        <div class=\"item_hasRequiredAcc\" style=\"display:none;\">0<\/div>\r\n\r\n        <!-- Store list view data as attributes (lightweight) -->\r\n        <div class=\"io_list_view_data\"><\/div>\r\n        <div class=\"io_buttons_container\">\r\n            <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/block-party-obstacle-course-with-slide\/\" class=\"io_more_info_button\">MORE INFO<\/a>\r\n            <div class=\"elementor-widget-button add_cart_2774933\">\r\n                <a class=\"item_add elementor-button elementor-size-sm elementor-animation-grow io_button rentNameIO_button\"\r\n                   href=\"javascript:;\"><!--no linebreak bc elementor--><i class=\"fas fa-shopping-cart\"><\/i> Add to Cart<\/a>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"unavailable_message unavailable_message_2774933\"  onclick=\"checkAvailDateClick()\">item unavailable (change date)<\/div>\r\n    <\/div>\r\n<\/div>\r\n<script>\r\n    jQuery(document).ready(function () {\r\n        \/\/ Hide price when zero\r\n        jQuery(\".rentNameIO_pricespan\").each(function () {\r\n            if( !Number( this.textContent.replace(\/[^0-9.-]+\/g,\"\") ) ){\r\n                jQuery(this.parentElement).hide();\r\n            }\r\n        });\r\n    });\r\n<\/script><!-- End Shortcoder content -->\n<!-- Start Shortcoder content --><script>window.io_category_data = window.io_category_data || {}; window.io_category_data['2735333'] = {\"indoor_outdoor\":\"\",\"staff\":\"\",\"electric\":\"2.00\",\"dimensions\":\"\",\"rental_id\":\"2735333\",\"rental_name\":\"The Ultimate Obstacle Course\",\"images_arr\":\"{\\u00220\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221840047\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222735333\\u0022,\\u0022rentalimage_order\\u0022:\\u00220\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266298_40-Obstacle-Course_1_1742522581.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266298_40-Obstacle-Course_1_1742522581_big.jpg\\u0022},\\u00221\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221840049\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222735333\\u0022,\\u0022rentalimage_order\\u0022:\\u00221\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266309_40-Obstacle-Course_3_1742522581.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266309_40-Obstacle-Course_3_1742522581_big.jpg\\u0022},\\u00222\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221840051\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222735333\\u0022,\\u0022rentalimage_order\\u0022:\\u00222\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266304_40-Obstacle-Course_2_1742522581.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/fs_1686266304_40-Obstacle-Course_2_1742522581_big.jpg\\u0022}}\"};<\/script><div class=\"io_item2_list elementor-widget-heading simpleCart_ioShelfItem cat_div_2735333\" name=\"maindiv_The Ultimate Obstacle Course\">\r\n    <div class=\"cat_div\">\r\n        <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/the-ultimate-obstacle-course\/\">\r\n            <div class=\"btn btn-primary view-product-button\">View Product<\/div>\r\n            <img decoding=\"async\" class=\"category_big_img cat_img item_image io_image_big\" title=\"The Ultimate Obstacle Course\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/fs_1686266298_40-Obstacle-Course_1_1742522581_big.jpg\" alt=\"The Ultimate Obstacle Course\" \/>\r\n        <\/a>\r\n        <a rel=\"noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/fs_1686266298_40-Obstacle-Course_1_1742522581_big.jpg\" id=\"io_img_big1_2735333\" target=\"_blank\"><\/a>\r\n        <a rel=\"img_group noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/fs_1686266309_40-Obstacle-Course_3_1742522581_big.jpg\" id=\"io_img_big2_2735333\" target=\"_blank\"><\/a>\r\n        <br>\r\n        <div class=\"io_image_thumbbox io_category_thumbox\" style=\"display:none;\">\r\n            <img decoding=\"async\" class=\"io_image_thumb skip-lazy\" title=\"The Ultimate Obstacle Course\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/fs_1686266298_40-Obstacle-Course_1_1742522581.jpg\" alt=\"The Ultimate Obstacle Course\"\r\n                 id=\"io_img_thumb1_2735333\" onclick=\"updateMainPic(this)\" \/>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"io_item2_list_inner\">\r\n        <p class=\"elementor-heading-title rentNameIO item_name\"><a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/the-ultimate-obstacle-course\/\">The Ultimate Obstacle Course<\/a><\/p>\r\n        <p class=\"rentNameIO_price rentNameIO_price_2735333\"><span class=\"cat_from\" style=\"font-style:italic;font-size:smaller;\">from<\/span> <span class=\"rentNameIO_pricespan\">$475.00<\/span><\/p>\r\n        <p class=\"item_encoded\" style=\"display:none;\">The+Ultimate+Obstacle+Course<\/p>\r\n        <span class=\"item_href\" style=\"display:none;\">https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/the-ultimate-obstacle-course\/<\/span>\r\n        <p class=\"item_rentalid\" style=\"display:none;\">2735333<\/p>\r\n        <p class=\"item_vendorid\" style=\"display:none;\"><\/p>\r\n        <p class=\"item_qtytype\" style=\"display:none;\">Unlimited<\/p>\r\n        <p class=\"item_inputtype\" style=\"display:none;\">Dropdown<\/p>\r\n        <span class=\"item_qtyincrement\" style=\"display:none;\">1<\/span>\r\n        <div class=\"item_timeslots\" style=\"display:none;\"><\/div>\r\n        <p class=\"item_giftcardvalue\" style=\"display:none;\"><\/p>\r\n        <div class=\"item_hasRequiredAcc\" style=\"display:none;\">0<\/div>\r\n\r\n        <!-- Store list view data as attributes (lightweight) -->\r\n        <div class=\"io_list_view_data\"><\/div>\r\n        <div class=\"io_buttons_container\">\r\n            <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/the-ultimate-obstacle-course\/\" class=\"io_more_info_button\">MORE INFO<\/a>\r\n            <div class=\"elementor-widget-button add_cart_2735333\">\r\n                <a class=\"item_add elementor-button elementor-size-sm elementor-animation-grow io_button rentNameIO_button\"\r\n                   href=\"javascript:;\"><!--no linebreak bc elementor--><i class=\"fas fa-shopping-cart\"><\/i> Add to Cart<\/a>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"unavailable_message unavailable_message_2735333\"  onclick=\"checkAvailDateClick()\">item unavailable (change date)<\/div>\r\n    <\/div>\r\n<\/div>\r\n<script>\r\n    jQuery(document).ready(function () {\r\n        \/\/ Hide price when zero\r\n        jQuery(\".rentNameIO_pricespan\").each(function () {\r\n            if( !Number( this.textContent.replace(\/[^0-9.-]+\/g,\"\") ) ){\r\n                jQuery(this.parentElement).hide();\r\n            }\r\n        });\r\n    });\r\n<\/script><!-- End Shortcoder content -->\n<!-- Start Shortcoder content --><script>window.io_category_data = window.io_category_data || {}; window.io_category_data['2832189'] = {\"indoor_outdoor\":\"\",\"staff\":\"\",\"electric\":\"1.00\",\"dimensions\":\"\",\"rental_id\":\"2832189\",\"rental_name\":\"U-Turn Adventure Course\",\"images_arr\":\"{\\u00220\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221938067\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222832189\\u0022,\\u0022rentalimage_order\\u0022:\\u00220\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691134_28-Obstacle-180_6_1747196987.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691134_28-Obstacle-180_6_1747196987_big.jpg\\u0022},\\u00221\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221938069\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222832189\\u0022,\\u0022rentalimage_order\\u0022:\\u00221\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691156_28-Obstacle-180_7_1747196987.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691156_28-Obstacle-180_7_1747196987_big.jpg\\u0022},\\u00222\\u0022:{\\u0022rentalimage_id\\u0022:\\u00221938071\\u0022,\\u0022rentalimage_createtime\\u0022:null,\\u0022rentalimage_modifiedtime\\u0022:null,\\u0022rentalimage_itemid\\u0022:\\u00222832189\\u0022,\\u0022rentalimage_order\\u0022:\\u00222\\u0022,\\u0022rentalimage_imageloc\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691194_28-Obstacle-180_9_1747196987.jpg\\u0022,\\u0022rentalimage_imagelocbig\\u0022:\\u0022https:\\\/\\\/rental.software\\\/users\\\/exclusiveeventrentals\\\/images\\\/lg_1536691194_28-Obstacle-180_9_1747196987_big.jpg\\u0022}}\"};<\/script><div class=\"io_item2_list elementor-widget-heading simpleCart_ioShelfItem cat_div_2832189\" name=\"maindiv_U-Turn Adventure Course\">\r\n    <div class=\"cat_div\">\r\n        <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/u-turn-adventure-course\/\">\r\n            <div class=\"btn btn-primary view-product-button\">View Product<\/div>\r\n            <img decoding=\"async\" class=\"category_big_img cat_img item_image io_image_big\" title=\"U-Turn Adventure Course\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/lg_1536691134_28-Obstacle-180_6_1747196987_big.jpg\" alt=\"U-Turn Adventure Course\" \/>\r\n        <\/a>\r\n        <a rel=\"noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/lg_1536691134_28-Obstacle-180_6_1747196987_big.jpg\" id=\"io_img_big1_2832189\" target=\"_blank\"><\/a>\r\n        <a rel=\"img_group noopener\" href=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/lg_1536691156_28-Obstacle-180_7_1747196987_big.jpg\" id=\"io_img_big2_2832189\" target=\"_blank\"><\/a>\r\n        <br>\r\n        <div class=\"io_image_thumbbox io_category_thumbox\" style=\"display:none;\">\r\n            <img decoding=\"async\" class=\"io_image_thumb skip-lazy\" title=\"U-Turn Adventure Course\" src=\"https:\/\/rental.software\/users\/exclusiveeventrentals\/images\/lg_1536691134_28-Obstacle-180_6_1747196987.jpg\" alt=\"U-Turn Adventure Course\"\r\n                 id=\"io_img_thumb1_2832189\" onclick=\"updateMainPic(this)\" \/>\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"io_item2_list_inner\">\r\n        <p class=\"elementor-heading-title rentNameIO item_name\"><a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/u-turn-adventure-course\/\">U-Turn Adventure Course<\/a><\/p>\r\n        <p class=\"rentNameIO_price rentNameIO_price_2832189\"><span class=\"cat_from\" style=\"font-style:italic;font-size:smaller;\">from<\/span> <span class=\"rentNameIO_pricespan\">$450.00<\/span><\/p>\r\n        <p class=\"item_encoded\" style=\"display:none;\">U-Turn+Adventure+Course<\/p>\r\n        <span class=\"item_href\" style=\"display:none;\">https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/u-turn-adventure-course\/<\/span>\r\n        <p class=\"item_rentalid\" style=\"display:none;\">2832189<\/p>\r\n        <p class=\"item_vendorid\" style=\"display:none;\"><\/p>\r\n        <p class=\"item_qtytype\" style=\"display:none;\">Unlimited<\/p>\r\n        <p class=\"item_inputtype\" style=\"display:none;\">Dropdown<\/p>\r\n        <span class=\"item_qtyincrement\" style=\"display:none;\">1<\/span>\r\n        <div class=\"item_timeslots\" style=\"display:none;\"><\/div>\r\n        <p class=\"item_giftcardvalue\" style=\"display:none;\"><\/p>\r\n        <div class=\"item_hasRequiredAcc\" style=\"display:none;\">0<\/div>\r\n\r\n        <!-- Store list view data as attributes (lightweight) -->\r\n        <div class=\"io_list_view_data\"><\/div>\r\n        <div class=\"io_buttons_container\">\r\n            <a href=\"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/rentals\/obstacle-courses\/u-turn-adventure-course\/\" class=\"io_more_info_button\">MORE INFO<\/a>\r\n            <div class=\"elementor-widget-button add_cart_2832189\">\r\n                <a class=\"item_add elementor-button elementor-size-sm elementor-animation-grow io_button rentNameIO_button\"\r\n                   href=\"javascript:;\"><!--no linebreak bc elementor--><i class=\"fas fa-shopping-cart\"><\/i> Add to Cart<\/a>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"unavailable_message unavailable_message_2832189\"  onclick=\"checkAvailDateClick()\">item unavailable (change date)<\/div>\r\n    <\/div>\r\n<\/div>\r\n<script>\r\n    jQuery(document).ready(function () {\r\n        \/\/ Hide price when zero\r\n        jQuery(\".rentNameIO_pricespan\").each(function () {\r\n            if( !Number( this.textContent.replace(\/[^0-9.-]+\/g,\"\") ) ){\r\n                jQuery(this.parentElement).hide();\r\n            }\r\n        });\r\n    });\r\n<\/script><!-- End Shortcoder content -->\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":5552,"parent":1311,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"io_meta_description":"","footnotes":""},"class_list":["post-5553","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/pages\/5553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/comments?post=5553"}],"version-history":[{"count":2,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/pages\/5553\/revisions"}],"predecessor-version":[{"id":6581,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/pages\/5553\/revisions\/6581"}],"up":[{"embeddable":true,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/pages\/1311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/media\/5552"}],"wp:attachment":[{"href":"https:\/\/dev.rental.software\/exclusive-event-rentals.v115\/wp-json\/wp\/v2\/media?parent=5553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}