Help
RSS
API
Feed
Maltego
Contact
Domain > rockymountainroll.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-06-09
66.150.164.36
(
ClassC
)
2024-09-22
209.250.2.114
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Sun, 22 Sep 2024 11:30:31 GMTServer: Apache/2.4.62 (Ubuntu)X-Content-Type-Options: nosniffStrict-Transport-Security: max-age31536000; includeSubDomainsLocation: https://rockymountainroll.com/Content-Length: 325Content-Type: text/html; charsetiso-8859-1 !DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>html>head>title>301 Moved Permanently/title>/head>body>h1>Moved Permanently/h1>p>The document has moved a hrefhttps://rockymountainroll.com/>here/a>./p>hr>address>Apache/2.4.62 (Ubuntu) Server at rockymountainroll.com Port 80/address>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sun, 22 Sep 2024 11:30:31 GMTServer: Apache/2.4.62 (Ubuntu)Cache-Control: no-cacheWPO-Cache-Status: cachedX-Content-Type-Options: nosniffStrict-Transport-Security: max-age31536000; includeSubDomainsUpgrade: h2,h2cConnection: UpgradeLast-Modified: Sat, 21 Sep 2024 22:38:35 GMTCache-Control: private, must-revalidateExpires: Sun, 20 Oct 2024 11:30:31 GMTVary: Accept-EncodingTransfer-Encoding: chunkedContent-Type: text/html; charsetUTF-8 !doctype html>html langen-US prefixog: https://ogp.me/ns#>head>meta charsetUTF-8>meta nameviewport contentwidthdevice-width, initial-scale1>link relprofile hrefhttp://gmpg.org/xfn/11>link mediaall hrefhttps://rockymountainroll.com/wp-content/cache/autoptimize/css/autoptimize_77cfd6b77a30ee2a5e3af9f756ad90d1.css relstylesheet>title>Rocky Mountain Roll Meridian ID - Party and Bounce House Rental/title>meta namedescription contentParty and Event Rentals by Rocky Mountain Roll. Disc Jockey Services in the Pacific Northwest. Inflatables, Bounce House Rental, Audio, Visual, Games/>meta namerobots contentfollow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large/>link relcanonical hrefhttps://rockymountainroll.com/ />meta propertyog:locale contenten_US />meta propertyog:type contentwebsite />meta propertyog:title contentParty and Event Rentals by Rocky Mountain Roll. />meta propertyog:description contentParty and Event Rentals by Rocky Mountain Roll Offering Disc Jockey Services, Inflatables, Amusements, Games, Event Rental, Audio Visual and more in the Pacific Northwest. With a focus on the Idaho Treasure Valley. />meta propertyog:url contenthttps://rockymountainroll.com/ />meta propertyog:site_name contentRocky Mountain Roll Meridian ID />meta propertyog:updated_time content2022-06-13T16:19:49+00:00 />meta nametwitter:card contentsummary_large_image />meta nametwitter:title contentParty and Event Rentals by Rocky Mountain Roll. />meta nametwitter:description contentParty and Event Rentals by Rocky Mountain Roll Offering Disc Jockey Services, Inflatables, Amusements, Games, Event Rental, Audio Visual and more in the Pacific Northwest. With a focus on the Idaho Treasure Valley. />meta nametwitter:site content@boisedj />meta nametwitter:creator content@boisedj />meta nametwitter:label1 contentWritten by />meta nametwitter:data1 contentio />meta nametwitter:label2 contentTime to read />meta nametwitter:data2 content4 minutes /> script typeapplication/ld+json classrank-math-schema-pro>{@context:https://schema.org,@graph:{@type:Organization,@id:https://rockymountainroll.com/#organization,name:Rocky Mountain Roll,url:https://rockymountainroll.com,sameAs:https://www.facebook.com/RockyMountainRoll,https://twitter.com/boisedj,logo:{@type:ImageObject,@id:https://rockymountainroll.com/#logo,url:https://rockymountainroll.com/wp-content/uploads/2020/04/rocky-mountain-roll-small-logo.png,contentUrl:https://rockymountainroll.com/wp-content/uploads/2020/04/rocky-mountain-roll-small-logo.png,caption:Rocky Mountain Roll,inLanguage:en-US,width:192,height:157}},{@type:WebSite,@id:https://rockymountainroll.com/#website,url:https://rockymountainroll.com,name:Rocky Mountain Roll,publisher:{@id:https://rockymountainroll.com/#organization},inLanguage:en-US,potentialAction:{@type:SearchAction,target:https://rockymountainroll.com/?s{search_term_string},query-input:required namesearch_term_string}},{@type:ImageObject,@id:http://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1.jpg,url:http://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1.jpg,width:200,height:200,inLanguage:en-US},{@type:WebPage,@id:https://rockymountainroll.com/#webpage,url:https://rockymountainroll.com/,name:Rocky Mountain Roll Meridian ID - Party and Bounce House Rental,datePublished:2020-01-28T15:14:48+00:00,dateModified:2022-06-13T16:19:49+00:00,about:{@id:https://rockymountainroll.com/#organization},isPartOf:{@id:https://rockymountainroll.com/#website},primaryImageOfPage:{@id:http://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1.jpg},inLanguage:en-US}}/script> link reldns-prefetch href//www.googletagmanager.com />link relalternate typeapplication/rss+xml titleRocky Mountain Roll Meridian ID » Feed hrefhttps://rockymountainroll.com/feed/ />link relalternate typeapplication/rss+xml titleRocky Mountain Roll Meridian ID » Comments Feed hrefhttps://rockymountainroll.com/comments/feed/ />link relstylesheet idgoogle-fonts-1-css hrefhttps://fonts.googleapis.com/css?familyRoboto%3A100%2C100italic%2C200%2C200italic%2C300%2C300italic%2C400%2C400italic%2C500%2C500italic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic%2C900%2C900italic%7CRoboto+Slab%3A100%2C100italic%2C200%2C200italic%2C300%2C300italic%2C400%2C400italic%2C500%2C500italic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic%2C900%2C900italic%7CMerriweather%3A100%2C100italic%2C200%2C200italic%2C300%2C300italic%2C400%2C400italic%2C500%2C500italic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic%2C900%2C900italic%7CGreat+Vibes%3A100%2C100italic%2C200%2C200italic%2C300%2C300italic%2C400%2C400italic%2C500%2C500italic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic%2C900%2C900italic%7CMontserrat%3A100%2C100italic%2C200%2C200italic%2C300%2C300italic%2C400%2C400italic%2C500%2C500italic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic%2C900%2C900italic&displayauto&ver6.5.5 typetext/css mediaall />link relpreconnect hrefhttps://fonts.gstatic.com/ crossorigin>script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/jquery/jquery.min.js?ver3.7.1 idjquery-core-js>/script> script typetext/javascript idio-scripts-js-extra>var io_scripts_vars {io_username:rmr4djs,io_locationid:0,io_phonenumber:(208) 887-5468,io_emailaddress:Sales@rockymountainroll.com,io_businesshours:,io_facebooklink:https:\/\/www.facebook.com\/RockyMountainRoll,io_twitterlink:https:\/\/twitter.com\/boisedj,io_instagramlink:,io_youtubelink:,io_fpnumber:,io_companyname:Rocky Mountain Roll Meridian ID};/script> script typetext/javascript srchttps://rockymountainroll.com/wp-content/cache/autoptimize/js/autoptimize_single_d21551da7921c1679c2cf4d0199f7f3b.js?ver6.5.5 idio-scripts-js>/script> link relhttps://api.w.org/ hrefhttps://rockymountainroll.com/wp-json/ />link relalternate typeapplication/json hrefhttps://rockymountainroll.com/wp-json/wp/v2/pages/109 />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://rockymountainroll.com/xmlrpc.php?rsd />meta namegenerator contentWordPress 6.5.5 />link relshortlink hrefhttps://rockymountainroll.com/ />link relalternate typeapplication/json+oembed hrefhttps://rockymountainroll.com/wp-json/oembed/1.0/embed?urlhttps%3A%2F%2Frockymountainroll.com%2F />link relalternate typetext/xml+oembed hrefhttps://rockymountainroll.com/wp-json/oembed/1.0/embed?urlhttps%3A%2F%2Frockymountainroll.com%2F&formatxml />meta namegenerator contentSite Kit by Google 1.135.0 />meta namegoogle-adsense-platform-account contentca-host-pub-2644536267352236>meta namegoogle-adsense-platform-domain contentsitekit.withgoogle.com>meta namegenerator contentElementor 3.24.3; features: additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-auto>link relicon hrefhttps://rockymountainroll.com/wp-content/uploads/2020/04/logo-150x146.png sizes32x32 />link relicon hrefhttps://rockymountainroll.com/wp-content/uploads/2020/04/logo.png sizes192x192 />link relapple-touch-icon hrefhttps://rockymountainroll.com/wp-content/uploads/2020/04/logo.png />meta namemsapplication-TileImage contenthttps://rockymountainroll.com/wp-content/uploads/2020/04/logo.png />/head>body classhome page-template-default page page-id-109 wp-custom-logo mega-menu-max-mega-menu-1 mega-menu-max-mega-menu-2 mega-menu-max-mega-menu-3 mega-menu-max-mega-menu-4 mega-menu-max-mega-menu-5 mega-menu-max-mega-menu-6 mega-menu-max-mega-menu-7 mega-menu-max-mega-menu-8 mega-menu-max-mega-menu-9 mega-menu-max-mega-menu-10 mega-menu-max-mega-menu-11 mega-menu-max-mega-menu-12 mega-menu-max-mega-menu-13 mega-menu-max-mega-menu-14 elementor-default elementor-kit-812 elementor-page elementor-page-109>div data-elementor-typeheader data-elementor-id429 classelementor elementor-429 elementor-location-header data-elementor-post-typeelementor_library>section classelementor-section elementor-top-section elementor-element elementor-element-8192c74 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id8192c74 data-element_typesection ideo-sidebar-header data-settings{"background_background":"classic"}>div classelementor-background-overlay>/div>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ea49401 data-idea49401 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>section classelementor-section elementor-inner-section elementor-element elementor-element-649df9b elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id649df9b data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-18d79e0 data-id18d79e0 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-5ff969bb elementor-widget elementor-widget-theme-site-logo elementor-widget-image data-id5ff969bb data-element_typewidget data-widget_typetheme-site-logo.default>div classelementor-widget-container> a hrefhttps://rockymountainroll.com> img width192 height157 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/rocky-mountain-roll-small-logo.png classattachment-full size-full wp-image-3150 altImage of Rocky Mountain Roll Logo /> /a>/div>/div>/div>/div>div classelementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-ff8ce40 data-idff8ce40 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-78584237 elementor-widget elementor-widget-text-editor data-id78584237 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>Serving the Pacific Northwest/p>/div>/div>/div>/div>div classelementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-e6634f3 data-ide6634f3 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-949f990 elementor-widget elementor-widget-html data-id949f990 data-element_typewidget data-widget_typehtml.default>div classelementor-widget-container>div idio_contactblock>/div> script>let ioBox document.querySelector(#io_contactblock); let output ; let io_pn getIOUserInfo(io_phonenumber); if (io_pn || io_pn undefined) { io_pn div styledisplay:none;>/div>; } else { io_pn a hreftel: + io_pn + > + io_pn + /a>; io_pn div classboxIO1>i classfa fa-phone io_pnc>/i> + io_pn + /div>; } output + io_pn; let io_ea getIOUserInfo(io_emailaddress); if (io_ea || io_ea undefined) { io_ea div styledisplay:none;>/div>; } else { io_ea a hrefmailto: + io_ea + ?subjectWebsite Contact Form + > + io_ea + /a>; io_ea div classboxIO2>i classfa fa-envelope io_pnc>/i> + io_ea + /div>; } output + io_ea; let io_bh getIOUserInfo(io_businesshours); if (io_bh || io_bh undefined) { io_bh div styledisplay:none;>/div>; } else { io_bh div classboxIO3>i classfa fa-hourglass io_pnc>/i> + io_bh + /div>; } output + io_bh; ioBox.innerHTML output;/script> /div>/div>div classelementor-element elementor-element-fa1aa17 elementor-widget elementor-widget-wp-widget-search data-idfa1aa17 data-element_typewidget data-widget_typewp-widget-search.default>div classelementor-widget-container>form rolesearch methodget classsearch-form actionhttps://rockymountainroll.com/> label> span classscreen-reader-text>Search for:/span> input typesearch classsearch-field placeholderSearch … value names data-swplivetrue data-swpenginedefault data-swpconfigdefault data-swplivetrue data-swpenginedefault data-swpconfigdefault /> /label> input typesubmit classsearch-submit valueSearch />/form>/div>/div>/div>/div>/div>/section>div classelementor-element elementor-element-3735c526 elementor-widget-divider--view-line elementor-widget elementor-widget-divider data-id3735c526 data-element_typewidget data-widget_typedivider.default>div classelementor-widget-container>div classelementor-divider> span classelementor-divider-separator> /span>/div>/div>/div>section classelementor-section elementor-inner-section elementor-element elementor-element-d7ecefe elementor-section-boxed elementor-section-height-default elementor-section-height-default data-idd7ecefe data-element_typesection data-settings{"background_background":"classic"}>div classelementor-background-overlay>/div>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ca8908c data-idca8908c data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-b74e4ee elementor-widget elementor-widget-wp-widget-maxmegamenu data-idb74e4ee data-element_typewidget data-widget_typewp-widget-maxmegamenu.default>div classelementor-widget-container>div idmega-menu-wrap-max_mega_menu_4 classmega-menu-wrap>div classmega-menu-toggle>div classmega-toggle-blocks-left>/div>div classmega-toggle-blocks-center>div classmega-toggle-block mega-menu-toggle-block mega-toggle-block-1 idmega-toggle-block-1 tabindex0>span classmega-toggle-label rolebutton aria-expandedfalse>span classmega-toggle-label-closed>/span>span classmega-toggle-label-open>/span>/span>/div>/div>div classmega-toggle-blocks-right>/div>/div>ul idmega-menu-max_mega_menu_4 classmega-menu max-mega-menu mega-menu-horizontal mega-no-js data-eventhover_intent data-effectfade_up data-effect-speed200 data-effect-mobiledisabled data-effect-speed-mobile0 data-mobile-force-widthbody data-second-clickgo data-document-clickcollapse data-vertical-behaviourstandard data-breakpoint600 data-unbindtrue data-mobile-statecollapse_all data-hover-intent-timeout300 data-hover-intent-interval100>li classmega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-4533 idmega-menu-item-4533>a classmega-menu-link href# aria-haspopuptrue aria-expandedfalse tabindex0>Servicesspan classmega-indicator>/span>/a>ul classmega-sub-menu>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4009 idmega-menu-item-4009>a classmega-menu-link hrefhttps://rockymountainroll.com/audio-visual-rentals/>Audio Visual Rentals/a>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3219 idmega-menu-item-3219>a classmega-menu-link hrefhttps://rockymountainroll.com/disc-jockey-boise/>Disc Jockey Services/a>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4006 idmega-menu-item-4006>a classmega-menu-link hrefhttps://rockymountainroll.com/event-photos/>Event Photos/a>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-3220 idmega-menu-item-3220>a classmega-menu-link hrefhttps://rockymountainroll.com/party-rentals/>Party Rentals/a>/li>/ul>/li>li classmega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-megamenu mega-menu-item-has-children mega-align-bottom-left mega-menu-megamenu mega-menu-item-806 idmega-menu-item-806>a classmega-menu-link hrefhttps://rockymountainroll.com/rentals/ aria-haspopuptrue aria-expandedfalse tabindex0>Inventoryspan classmega-indicator>/span>/a>ul classmega-sub-menu>li classmega-menu-item mega-menu-item-type-widget widget_widget_featured mega-menu-columns-6-of-6 mega-menu-item-widget_featured-2 idmega-menu-item-widget_featured-2>div classwidget-text wp_widget_plugin_box panel-grid panel-has-style stylemargin-top:0px;>script>jQuery(document).ready(function(){ jQuery(.io_mm_item .io_item2_list).css(box-shadow, none) jQuery(.io_mm_item .io_item2_list).addClass(nohover) jQuery(.io_mm_item .io_item2_listcat).css(box-shadow, none) jQuery(.io_mm_item .io_item2_listcat).addClass(nohover) })/script>div classio_mm_outer io_widget_ style>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/amusements-inflatables-jump-house-rental-boise-meridian-treasure-valley/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/DSC_0100_1586540244_big.JPG altAmusements titleAmusements />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/amusements-inflatables-jump-house-rental-boise-meridian-treasure-valley/>p classrentNameIO elementor-heading-title>Amusements/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p> span data-sheets-userformat{2:14849,3:{1:0},12:0,14:null,2,0,15:Tahoma,16:12} data-sheets-value{1:2,2:Mechanical rides will make your event unique and are a lot of fun to watch as well. These are a must for large events. Many of these rides are the ones youd see at fairs and carnivals and can be rented for short or long events.} stylefont-size:12pt;font-family:Tahoma,Arial;font-weight:normal;font-style:normal;color:#000000;>/span>/p>div data-blocktrue data-editoragc7 data-offset-key8asti-0-0>div data-offset-key8asti-0-0>span data-offset-key8asti-0-0>Looking for amusements and entertainment for your party? This is the place to begin. /span>span data-offset-key8asti-1-0> Our amusements page includes games, large amusements, and even some of our most popular inflatables/span>span data-offset-key8asti-2-0>. /span>span data-offset-key8asti-3-0> We also have separate pages for our a hrefhttps://rockymountainroll.com/inventory/obstacle-courses/>obstacle courses/a>, a hrefhttps://rockymountainroll.com/inventory/slides/>slides/a>, a hrefhttps://rockymountainroll.com/inventory/jumphouses/>bounce houses/a>, and a hrefhttps://rockymountainroll.com/inventory/game-rental/>game rentals/a>/span>span data-offset-key8asti-4-0>./span>/div>/div>div data-blocktrue data-editoragc7 data-offset-key1m1g4-0-0>div data-offset-key1m1g4-0-0>span data-offset-key1m1g4-0-0> /span>/div>/div>div data-blocktrue data-editoragc7 data-offset-keye21ul-0-0>div data-offset-keye21ul-0-0>span data-offset-keye21ul-3-0>Whether you're planning a large corporate event, carnival, or party, or a small backyard event, our amusements are the perfect addition. Including our Mini Train, Climbing Wall, or Mechanical Bull, for instance, can help your guests feel engaged and welcomed to the event. In addition, these larger amusements help create wonderful memories for you and your guests of the event. If you don't see what you're looking for, keep searching or call our entertainment specialists to put together a customized quote/span>span data-offset-keye21ul-4-0>./span>/div>p>span data-offset-keye21ul-4-0>Because Rocky Mountain Roll cares about your safety, all of our amusements and inflatables are cleaned before each use and are secured properly before every use./span>/p>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/arcade-video-game/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/XBox20One_410073049_big_1586983870_big.jpg altArcade/Video Game titleArcade/Video Game />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/arcade-video-game/>p classrentNameIO elementor-heading-title>Arcade/Video Game/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editor3ekqr data-offset-keyf7vf8-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keyf7vf8-0-0 stylebox-sizing: border-box;>Arcade or video game system rentals are a great way to bring some exciting fun to your next party. We’ve had some great gaming themed parties and events where guests enjoyed a variety of video games or arcade games all evening long./div>/div>div data-blocktrue data-editor3ekqr data-offset-keydte9c-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keydte9c-0-0 stylebox-sizing: border-box;>span data-offset-keydte9c-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editor3ekqr data-offset-key6k9rj-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key6k9rj-0-0 stylebox-sizing: border-box;>span data-offset-key6k9rj-0-0 stylebox-sizing: border-box;>Video gaming systems such as X-Box, Playstation, Wii will make any gamer’s day. Rocky Mountain Roll offers a variety of options and accessories to add to the rental./span>/div>/div>div data-blocktrue data-editor3ekqr data-offset-key9vpc2-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key9vpc2-0-0 stylebox-sizing: border-box;>span data-offset-key9vpc2-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editor3ekqr data-offset-key6blp3-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key6blp3-0-0 stylebox-sizing: border-box;>span stylebox-sizing: border-box;>span data-offset-key6blp3-0-0 stylebox-sizing: border-box;>Go retro with old-school pinball games and other arcade options at a company party that your employees will be sure to love/span>/span>span data-offset-key6blp3-1-0 stylebox-sizing: border-box;>. If you have a specific theme, then we will do our best to match it with a game of your choice./span>/div>/div>div data-blocktrue data-editor3ekqr data-offset-keyaoe8a-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keyaoe8a-0-0 stylebox-sizing: border-box;>span data-offset-keyaoe8a-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editor3ekqr data-offset-keyc4ue6-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keyc4ue6-0-0 stylebox-sizing: border-box;>span data-offset-keyc4ue6-0-0 stylebox-sizing: border-box;>Including a a hrefhttps://rockymountainroll.com/audio-visual-rentals/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>sound system and television/a> to complete the gaming effect at your party. Ask one of our Audio Visual professionals how to upgrade your video gaming system to be spectacular. Adding a few of the Gamepod Chairs to your home party, or smaller company party to make your very own gaming station. Don’t forget that we offer a great a hrefhttps://rockymountainroll.com/inventory/amusements-inflatables-jump-house-rental-boise-meridian-treasure-valley/rock-band-experience/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>Rock Band Experience/a> for your guests, as well, complete with drums, guitars, microphones and everything you need to really rock out./span>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/casino-games/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/IMG_0504_1586488026_big.jpg altCasino Games titleCasino Games />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/casino-games/>p classrentNameIO elementor-heading-title>Casino Games/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-element_typewidget data-idf85a3e0 data-widget_typetext-editor.default stylebox-sizing: border-box; position: relative; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight ); width: 1120px; margin-bottom: 20px;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>div stylebox-sizing: border-box;>div data-blocktrue data-editor76dua data-offset-keyehg5u-0-0 stylebox-sizing: border-box;>div data-offset-keyehg5u-0-0 stylebox-sizing: border-box;>span data-offset-keyehg5u-0-0 stylebox-sizing: border-box;>Casino parties are one of Rocky Mountain Roll’s most popular events. We see them at corporate holiday parties, fundraisers, birthday parties, and more. What happens in Vegas doesn’t have to stay in Vegas any longer! Bring the casino home and have stress-free fun without losing the mortgage payment. /span>span stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ); font-weight: var( --e-global-typography-text-font-weight );>span data-offset-key1k6lp-0-0 stylebox-sizing: border-box;>Call one of our trained entertainment specialists today to get started planning your next casino party/span>/span>span data-offset-key1k6lp-1-0 stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ); font-weight: var( --e-global-typography-text-font-weight );>. /span>span stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ); font-weight: var( --e-global-typography-text-font-weight );>span data-offset-key1k6lp-2-0 stylebox-sizing: border-box;>With more than forty years in the entertainment industry, Rocky Mountain Roll knows how to do it right/span>/span>span data-offset-key1k6lp-3-0 stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ); font-weight: var( --e-global-typography-text-font-weight );>. And remember, we don’t just bring the music…we bring the party!!!/span>/div>div data-offset-keyehg5u-0-0 stylebox-sizing: border-box;>span data-offset-key1k6lp-3-0 stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ); font-weight: var( --e-global-typography-text-font-weight );>/span>/div>/div>/div>/div>/div>div data-element_typewidget data-id04c2051 data-widget_typeheading.default stylebox-sizing: border-box; position: relative; width: 1120px; margin-bottom: 20px;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>h2 stylebox-sizing: border-box; padding: 0px; margin: 0px; line-height: 1; color: var( --e-global-color-primary ); font-family: var( --e-global-typography-primary-font-family ), Sans-serif; font-weight: var( --e-global-typography-primary-font-weight );>How do I know what I need?/h2>/div>/div>div data-element_typewidget data-idcd45903 data-widget_typetext-editor.default stylebox-sizing: border-box; position: relative; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight ); width: 1120px; margin-bottom: 20px;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>div stylebox-sizing: border-box;>div data-blocktrue data-editor76dua data-offset-key1f581-0-0 stylebox-sizing: border-box;>div data-offset-key1f581-0-0 stylebox-sizing: border-box;>span data-offset-key95ea8-0-0 stylebox-sizing: border-box;>You can rent the tables yourself and provide your own dealers for a small, private party. All tables are available to rent on their own. You can even rent the chips, cards, and supplies to do-it-yourself. /span>Or let us take the hassle and supply everything you need for a great casino event. Because no party is the same, we customize each party package to fit the number of guests and types of games you want. We offer blackjack, poker, craps, and roulette, as well as bingo./div>/div>div data-blocktrue data-editor76dua data-offset-keyb8si2-0-0 stylebox-sizing: border-box;>div data-offset-keyb8si2-0-0 stylebox-sizing: border-box;>span data-offset-keyb8si2-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editor76dua data-offset-keyb5vi2-0-0 stylebox-sizing: border-box;>div data-offset-keyb5vi2-0-0 stylebox-sizing: border-box;>span data-offset-keyb5vi2-0-0 stylebox-sizing: border-box;>Not sure how many tables and which games you might need? No problem! We can help you plan your party. Not sure how to play? Our dealers are well-trained and experienced enough to teach you and your guests how to play. Our tables are all high-quality, cleaned and well-maintained. The dealers come /span>span stylebox-sizing: border-box;>span data-offset-keyb5vi2-1-0 stylebox-sizing: border-box;>professionally/span>/span>span data-offset-keyb5vi2-2-0 stylebox-sizing: border-box;> dressed and presentable in white shirts, slacks, and bowties. Go all out and include a a hrefhttps://rockymountainroll.com/event-photos/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>photo booth/a> or a hrefhttps://rockymountainroll.com/disc-jockey/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>disc jockey/a> to your event to bring the real Vegas show to life!/span>/div>/div>div data-blocktrue data-editor76dua data-offset-key2nrkh-0-0 stylebox-sizing: border-box;>div data-offset-key2nrkh-0-0 stylebox-sizing: border-box;>span data-offset-key2nrkh-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editor76dua data-offset-keydojks-0-0 stylebox-sizing: border-box;>div data-offset-keydojks-0-0 stylebox-sizing: border-box;>span data-offset-key6dg1u-0-0 stylebox-sizing: border-box;>PLANNING TIP: /span>span stylebox-sizing: border-box;>span data-offset-key6dg1u-1-0 stylebox-sizing: border-box;>Consider hosting your party in November or January to increase your chances of finding an open evening for your event. /span>/span>span data-offset-key6dg1u-4-0 stylebox-sizing: border-box;>Dates during those months are usually available easier than December ones./span>/div>/div>/div>/div>/div>div data-element_typewidget data-id3eaf691d data-widget_typetext-editor.default stylebox-sizing: border-box; position: relative; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight ); width: 1120px;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>div stylebox-sizing: border-box;>div styletop: 7px; white-space: nowrap; font-family: Roboto Condensed, sans-serif; font-size: 13px; font-weight: bold; background-color: white; color: rgb(110, 110, 110); text-shadow: rgb(255, 255, 255) 1px 1px 0px; border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 1px 0px inset, rgb(255, 255, 255) 0px 1px 0px; padding: 7px 8px 6px 10px; line-height: 18px; position: fixed; right: 20px; z-index: 999999; margin: 10px; cursor: pointer; transition: background-color 0.2s linear 0s; display: none; max-width: 90px !important; box-sizing: border-box; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>i stylebox-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-style: normal; font-variant: normal; text-rendering: auto; line-height: 1; font-family: Font Awesome 5 Free; font-weight: 900;>/i> span stylebox-sizing: border-box;>0/span> items/div>div stylemax-width: 366px; padding: 2px; cursor: pointer; margin: 10px 0px; box-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div onclickcheckAvailDateClick() stylefont-family: var( --e-global-typography-accent-font-family ), Sans-serif; font-weight: var( --e-global-typography-accent-font-weight ); background-color: var( --e-global-color-accent ); font-size: 15px; padding: 12px 24px; border-radius: 3px; color: rgb(255, 255, 255); transition: all 0.3s ease 0s; box-sizing: border-box; display: block; line-height: 1; fill: rgb(255, 255, 255); text-align: center;>br>/div>/div>/div>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/canopies/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/10x1020White20Canopy_1624308359_big.png altCanopies titleCanopies />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/canopies/>p classrentNameIO elementor-heading-title>Canopies/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylebox-sizing: border-box; caret-color: rgb(122, 122, 122); color: rgb(122, 122, 122); font-family: Roboto, sans-serif;>Canopies and tents make a great addition to any outdoor event. They are a good way to stay out of the sun or bad weather. They are perfect for weddings, school dances, or corporate parties./p>p stylebox-sizing: border-box; caret-color: rgb(122, 122, 122); color: rgb(122, 122, 122); font-family: Roboto, sans-serif;>As of July 1, 2021, Rocky Mountain Roll will no longer be offering canopies larger than 10x10 for our events. /p>p stylebox-sizing: border-box; caret-color: rgb(122, 122, 122); color: rgb(122, 122, 122); font-family: Roboto, sans-serif;>If your event requires a larger canopy or tent, please contact one of our community partners to help you with your needs. We recommend: /p>p stylebox-sizing: border-box; caret-color: rgb(122, 122, 122); color: rgb(122, 122, 122); font-family: Roboto, sans-serif;>a hrefhttps://idahoeventrent.com/ stylebox-sizing: border-box; -webkit-box-shadow: none; box-shadow: none; text-decoration: none;>Event Rent/a>/p>p stylebox-sizing: border-box; caret-color: rgb(122, 122, 122); color: rgb(122, 122, 122); font-family: Roboto, sans-serif;>a hrefhttps://www.boisepartyrentals.com/ stylebox-sizing: border-box; -webkit-box-shadow: none; box-shadow: none; text-decoration: none;>Idaho Tents & Events/a>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/chairs-rental/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/08/White20Chairs_1587003307_big.jpg altChairs titleChairs />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/chairs-rental/>p classrentNameIO elementor-heading-title>Chairs/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editoragc7 data-offset-key8asti-0-0 stylepadding: 0px; margin: 0px; border: 0px; outline: 0px; color: rgb(17, 17, 17); font-family: Libre Baskerville, serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.2px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(250, 250, 250); text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key>span data-offset-key>span data-text stylefont-family: Tahoma, Geneva, sans-serif;>Rocky Mountain Roll rents chairs for your special event. You'll feel the difference the moment you sit in one of our deluxe seats. The flex-mesh allows your body to breath while still being strong enough to support you fully. /span>/span>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key>span data-text> Above all, you won't mind sitting for a wedding, corporate event, or casino party in these./span>/span>/span>/div>span stylefont-family: Tahoma,Geneva,sans-serif;> /span>div data-offset-key>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key>span data-text>They come in either white or black to match the theme of your event. Because Rocky Mountain Roll cares about your safety, all rental items are cleaned and inspected before every event. /span>/span> /span>/div>p>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key>span data-text>In addition to chairs, we also offer a hrefhttps://rockymountainroll.com/inventory/tables/>tables/a>, a hrefhttps://rockymountainroll.com/inventory/linens-table-chair-covers-rugs/>linens/a>, and other a hrefhttps://rockymountainroll.com/inventory/event-rental/>rental items/a> to compliment your party, meeting, or event perfectly. Call Rocky Mountain Roll today to speak with one of our party professionals and see how we can help make your event stress-free!/span>/span>/span>/p>/div>p>br>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/concessions/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/Cotton-Candy_1586471439_big.png altConcessions titleConcessions />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/concessions/>p classrentNameIO elementor-heading-title>Concessions/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Concessions are a must for parties! A party just isn't a party without a sweet treat, a salty snack, or a sno cone or ice cream to cool off after all the fun./span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Rocky Mountain Roll offers a variety of concession machines to rent for your next event. From fluffy cotton candy, to hot popcorn, icy sno cones, smooth soft serve ice cream, and even a slush machine, Rocky Mountain Roll has it all! These machines can be operated by our staff or your volunteers. Supplies are additional, but we have them on hand most of the time./span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>strong>What are the most popular concessions?/strong>/span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Trending right now is having a soft serve ice cream machine at your wedding reception or corporate party. Serve your guests creamy vanilla ice cream cones, or mix up a Dole whip recipe that your guests will rave about for years to come./span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Popcorn and cotton candy are always favorites for school carnivals and fundraisers. Did you know that we also carry caramel corn kits?!/span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>And hot summer months demand a little icy coolness with a sno cone or slush machine for your summer barbecue. Don't forget to add a hrefhttps://rockymountainroll.com/inventory/tables/>tables/a>, a hrefhttps://rockymountainroll.com/inventory/chairs-rental/>chairs/a>, or even a a hrefhttps://rockymountainroll.com/inventory/canopies/>canopy/a> to your event!/span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/craft-projects/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/DSCN1918_1586480224_big-1.jpg altCraft Projects titleCraft Projects />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/craft-projects/>p classrentNameIO elementor-heading-title>Craft Projects/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Craft and art projects are popular with school carnivals, fundraisers, corporate picnics, and birthdays. Our various craft projects are fun and interactive for all your guests. We currently offer sand art and spin art./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Guests make sand art by layering colored sand into various sized bottles. This gives them a great piece of artwork to take home and remember the event with./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Spin art is a craft made by dripping paint onto cards or flying discs spun around for an artistic look. Everyone enjoys this hands-on type of entertainment and you get to keep your spin art product for years to come./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Rocky Mountain Roll occasionally offers unique and customized craft projects based upon our client needs, for instance. If you’d like to include a craft project at your next event, contact us and we can work out the details. span stylebox-sizing: border-box; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );>Craft projects are a great interactive rental that will help kids create and grow while still having loads of fun./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/disc-jockey-packages/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/IMG_1059_1586480841_big.JPG altDisc Jockey Packages titleDisc Jockey Packages />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/disc-jockey-packages/>p classrentNameIO elementor-heading-title>Disc Jockey Packages/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Rocky Mountain Roll offers a huge music selection along with charming disc jockeys to help bring your party to life. Because we believe our job is to help you celebrate life in all its diversity, quirkiness, and joy, we take pride in providing music and disc jockeys to the Treasure Valley and beyond for more than forty years. Whatever the event, music is the detail that makes your event shine above the rest. The right DJ can set the perfect mood for celebration, fun, and creating memories. We provide DJ’s for wedding receptions, corporate holiday parties, birthday parties, school dances, and so much more./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>span stylebox-sizing: border-box; font-weight: 400;>Since 1981, we have helped clients just like you plan events all over the Pacific Northwest. Music is in our roots and in our blood. Each of our talented disc jockeys takes pride in being not just the person behind the equipment, but an entertainer with class and a style all their own. They excel in outstanding customer service with a smile! They simply love what they do./span>/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Our disc jockey packages are custom made to include what you need for a classy event. Because we know you like a little sparkle and shine, be sure to ask about other items we can add to make your event memorable. Add a a hrefhttps://rockymountainroll.com/event-photos/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>photo booth/a>, a hrefhttps://rockymountainroll.com/inventory/lighting-packages/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>lighting/a>, or a hrefhttps://rockymountainroll.com/inventory/special-effects/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>special effects/a> to transform your event into one of a kind!/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>span stylebox-sizing: border-box; font-weight: 400;>Not sure which package will fit your needs? Just contact one of our representatives and they can help you customize the perfect disc jockey package for your event. With a combined total of more than 75 years of experience in planning, hosting, and entertaining at parties just like yours, our staff is well qualified to help you find just what you need while letting you and your guests be the star of the show./span>/p>p>span data-sheets-userformat{2:12801,3:{1:0},12:0,15:Tahoma,16:12} data-sheets-value{1:2,2:Rent a DJ and sound equipment for your next party, wedding, after-prom, or other event. We provide high-quality entertainment and equipment that will solve your need to hire a dj and rent speakers. Call today to get started.} stylefont-size:12pt;font-family:Tahoma,Arial;font-weight:normal;font-style:normal;> /span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/entertainer-professional/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Latin20dancers_1604349084_big.jpg altEntertainer / Professional titleEntertainer / Professional />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/entertainer-professional/>p classrentNameIO elementor-heading-title>Entertainer / Professional/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylecolor: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;>Rocky Mountain Roll works with many different professional entertainers and can help you find just what you are looking for. A clown, face painter, or even a caricature artist would be a great addition to any birthday party or corporate picnic! Having a face painter, airbrush tattoo artist, or henna tattoo artist at your graduation party would allow your guests to be a part of the fun. We also have themed entertainers for your events. There are so many different options available when looking for an entertainer. Don’t see what you want? Give us a call and we will use our resources to find what you’re looking for./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/event-rental/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Epilepsy20Foundation20Dinner20AV_1587003071_big-1.jpg altEvent Rental titleEvent Rental />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/event-rental/>p classrentNameIO elementor-heading-title>Event Rental/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Our Event Rental section offers many different odds-and-ends that can help make your party or event a success. Often, it is the little details that put a polished finish on your event. Our trained representatives can help you determine if your event would benefit from our event rentals and can even suggest those things that will make your event unforgettable./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>From corporate parties, fundraisers, corporate meetings, trade shows, and any other event, Rocky Mountain Roll’s event rental can help you tie up those loose ends and make the whole thing a true success. Because we care about your image, Rocky Mountain Roll takes care to make sure all of our event rentals are clean, presentable, and in great working order before every event. Each item is clean and disinfected after use for the safety of your guests./p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/foam-parties/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Foam20Party_1587003523_big.jpg altFoam Parties titleFoam Parties />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/foam-parties/>p classrentNameIO elementor-heading-title>Foam Parties/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>strong>What is a foam party?/strong>/p>div data-element_typewidget data-id8c86024 data-widget_typeheading.default stylebox-sizing: border-box; position: relative; width: 1120px; margin-bottom: 20px; color: rgb(0, 0, 0); font-family: Times New Roman; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>/div>/div>div data-element_typewidget data-id41d337b data-widget_typetext-editor.default stylebox-sizing: border-box; position: relative; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: 400; width: 1120px; margin-bottom: 20px; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div stylebox-sizing: border-box; transition: background 0.3s ease 0s, border 0.3s ease 0s, border-radius 0.3s ease 0s, box-shadow 0.3s ease 0s, -webkit-border-radius 0.3s ease 0s, -webkit-box-shadow 0.3s ease 0s;>div stylebox-sizing: border-box;>p stylebox-sizing: border-box;>They are the cleanest fun around! Is there a more fun party-starter than a giant pile of bubbles to dance or play in? We don’t think so. A foam party is one where you and your guests dance or play in bubbles created by one of our amazing machines. They have taken place at concerts, festivals, dances, birthday parties, school carnivals, and more! These parties can happen outdoors, or indoors. (The foam is a water-based product therefore indoor floors will be wet and slippery. Because safety is our highest priority, our experienced staff can help you plan for this when you call to book your event.)/p>p stylebox-sizing: border-box;>Rocky Mountain Roll offers two options when booking one of these parties: Our Foam Cannon is meant for your small to medium parties, outdoor events, and events on a budget. It fits well in smaller spaces and projects a stream of bubbles up to 25 feet and can be aimed to fill a certain space. Our Foam Machine Extreme is an extreme experience to the max. This large machine must be mounted or flown (hung) from a ceiling, in a tent, or other such structure to build up the massive piles of foam. This machine is meant for your larger events and maximum bubble fun./p>p stylebox-sizing: border-box;>We’ve even used our Cannon on the a hrefhttps://rockymountainroll.com/inventory/water-amusements/wild-splash-wet/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>Wild Splash/a> at a birthday party to make a fantastic Foam-N-Slide! Or seen it added to a a hrefhttps://rockymountainroll.com/disc-jockey/ stylebackground-color: transparent; box-sizing: border-box; box-shadow: none; text-decoration: none;>Disc Jockey/a> package for an unforgettable event./p>p stylebox-sizing: border-box;>Call today to book your foam party today and let us help you find the perfect experience to fit your needs./p>/div>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/game-rental/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/2_Minute_Drill_Electronic_Football_standard_3222_1586470653_big.jpeg altGame Rental titleGame Rental />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/game-rental/>p classrentNameIO elementor-heading-title>Game Rental/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editoragc7 data-offset-key8asti-0-0 stylepadding: 0px; margin: 0px; border: 0px; outline: 0px; color: rgb(17, 17, 17); font-family: Libre Baskerville, serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.2px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(250, 250, 250); text-decoration-style: initial; text-decoration-color: initial;>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Game rental is one of Rocky Mountain Roll's specialties. Adding games at your backyard BBQ, corporate event, or even wedding is a great way to keep your guests engaged and celebrating. /span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Games bring out the competitive and team-building nature in most people, therefore renting games for corporate activities is a great idea. Plan a company cornhole competition, or ping pong party. /span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Renting games for your themed event is a perfect way to include even more fun. We offer a variety of sports-themed items for the super-competitive. Similarly, there are some great summer games like water balloon volleyball, tug-o-war, and leaky bucket races for picnic fun. Get spike ball, volleyball, horseshoes, or even ladderball for your backyard party. All these games are a huge hit with children and adults alike. These, along with our amusements, really makes it a party! Games are great entertainment and a way to keep your party guests involved and having fun. Rocky Mountain Roll offers a large selection of games for backyard BBQ’s and more formal events, too. /span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Take a look through what we offer and see if the one you want is there! Games make great team-building activities for corporate picnics, retreats, summer camps, birthday parties, graduation parties, and more/span>/p>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/generators-power/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/25KW20Generator_1586479898_big-1.jpg altGenerators / Power titleGenerators / Power />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/generators-power/>p classrentNameIO elementor-heading-title>Generators / Power/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>When you need a generator to bring power for your event, this is the place to come! Rocky Mountain Roll offers many different sizes and options to provide the spark to run your event./span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Many parks and outdoor venues require you to bring your own generator, rather than tie into their power. If you need a bounce house or jump house inflated, a PA system powered, or a large event up and running, we can help./span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>span stylefont-family: Tahoma,Geneva,sans-serif;>Our experienced party professionals can help you learn what you need and provide solutions for large and small events./span>/p>p stylemargin-bottom:0in;line-height:normal;background:#FAFAFA;>br stylemso-special-character: line-break;>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/giant-games/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/Giant Checkers_1586540992_big.jpg altGiant Games titleGiant Games />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/giant-games/>p classrentNameIO elementor-heading-title>Giant Games/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylecolor: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;>Our giant games are so much fun for anyone who plays. Who wouldn’t like a king-sized game of checkers? Or attempt not to topple a Giant Jenga tower while strategically pulling pieces away? These games fit well into corporate parties, graduation events, birthday parties, and casual picnic or BBQ entertainment. Easy to setup and use, and great for all ages./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/bounce-houses/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/DSC_0034_1586479993_big.JPG altBounce Houses titleBounce Houses />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/bounce-houses/>p classrentNameIO elementor-heading-title>Bounce Houses/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Bounce Houses or Jumphouses are the most popular inflatable to rent. They make birthday parties exciting whether at home or at a park. Corporate events would not be the same without them. And we’ve even rented a few to weddings as a way to keep the littlest guests happy. Rocky Mountain Roll offers a good selection of themes and options to fit any budget./p>p stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>Our jumphouses are always clean, in good repair, and made of the highest quality, lead-free vinyl, therefore you can count on them to be inflated during your entire rental. We sanitize our jumphouses with every rental and make sure they are secured properly to prevent safety issues./p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/linens-table-chair-covers-rugs/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/12020inch20round20tablecloth_1586481441_big.jpg altLinens, Table/Chair Covers & Rugs titleLinens, Table/Chair Covers & Rugs />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/linens-table-chair-covers-rugs/>p classrentNameIO elementor-heading-title>Linens, Table/Chair Covers & Rugs/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span data-sheets-userformat{2:12801,3:{1:0},12:0,15:Tahoma,16:12} data-sheets-value{1:2,2:We have a huge selection of colorful table cloths, linen rentals, and anything you need to take your event up to the next level. We have both table rentals and tablecloth rentals.} stylefont-size:12pt;font-family:Tahoma,Arial;font-weight:normal;font-style:normal;>We have a huge selection of colorful table cloths, linen rentals, and anything you need to take your event up to the next level. We have both table rentals and tablecloth rentals./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/midway-games/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/DSC00903_1586541107_big-1.jpg altMidway Games titleMidway Games />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/midway-games/>p classrentNameIO elementor-heading-title>Midway Games/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editordidqi data-offset-key1qmo3-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key1qmo3-0-0 stylebox-sizing: border-box;>span data-offset-key1qmo3-0-0 stylebox-sizing: border-box;>The sites, smells, and sounds of the carnival are what lure most guests to the spectacle. /span>span stylebox-sizing: border-box;>span data-offset-key1qmo3-1-0 stylebox-sizing: border-box;>Midway games are a classic part of that allure with their risk, necessary skill, and possibility of reward/span>/span>span data-offset-key1qmo3-2-0 stylebox-sizing: border-box;>./span>/div>/div>div data-blocktrue data-editordidqi data-offset-keyccu8r-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keyccu8r-0-0 stylebox-sizing: border-box;>span data-offset-keyccu8r-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editordidqi data-offset-key448a7-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key448a7-0-0 stylebox-sizing: border-box;>span data-offset-key448a7-0-0 stylebox-sizing: border-box;>Bring the carnival to your party, picnic, or school event when you rent our Midway Games. They are bright colored and /span>span stylebox-sizing: border-box;>span data-offset-key448a7-1-0 stylebox-sizing: border-box;>kid-friendly/span>/span>span data-offset-key448a7-2-0 stylebox-sizing: border-box;> while still being challenging enough for adults. These games can be freestanding, or sit on the ground or table top for convenience of play./span>/div>/div>div data-blocktrue data-editordidqi data-offset-keyf5eiu-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-keyf5eiu-0-0 stylebox-sizing: border-box;>span data-offset-keyf5eiu-0-0 stylebox-sizing: border-box;> /span>/div>/div>div data-blocktrue data-editordidqi data-offset-key4jr0j-0-0 stylebox-sizing: border-box; color: rgb(122, 122, 122); font-family: Roboto, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;>div data-offset-key4jr0j-0-0 stylebox-sizing: border-box;>span data-offset-key4jr0j-0-0 stylebox-sizing: border-box;>Have your own carnival midway set up when you rent a variety of games. Get ready to yell “we have a winner!” and break out the prizes./span>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/obstacle-courses/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/DJI_0031_1586479603_big.jpg altObstacle Courses titleObstacle Courses />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/obstacle-courses/>p classrentNameIO elementor-heading-title>Obstacle Courses/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span data-sheets-userformat{2:14849,3:{1:0},12:0,14:null,2,0,15:Tahoma,16:12} data-sheets-value{1:2,2:Large inflatable slides can be rented from us as well as inflatable play areas. Obstacle course inflatables offer more interaction and can be a fun way for kids to race each other and get a lot of energy out.} stylefont-size:12pt;font-family:Tahoma,Arial;font-weight:normal;font-style:normal;color:#000000;>/span>span stylefont-family: Tahoma,Geneva,sans-serif;>We have several different obstacle courses to offer for birthday parties, corporate events, graduation parties, and any other event. All of our inflatables are sanitized at each event and secured safely by our setup crew. Enjoy running through the obstacles, sliding down slides, and racing to beat your opponent through. We even have a mini obstacle course for the younger guests to enjoy. br>br>Large obstacle course inflatables offer more interaction and can be a fun way for kids to race each other and get a lot of energy out. Rent huge inflatables like these obstacle courses to really impress your guests!/span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/photo-2/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/mirror-mirror-photo-booth_1587003214_big.jpg altPhoto titlePhoto />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/photo-2/>p classrentNameIO elementor-heading-title>Photo/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editorfs9u6 data-offset-key8pair-0-0>div data-offset-key8pair-0-0>span data-offset-key8pair-0-0 stylefont-family: Tahoma, Geneva, sans-serif;>Photo Booths and Event Photos are a great way to give your guests a chance at taking home a personalized souvenir of our party or event/span>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key8pair-1-0>. /span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key2o0mq-0-0>div data-offset-key2o0mq-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key2o0mq-0-0> /span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key4rlu2-0-0>div data-offset-key4rlu2-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key4rlu2-0-0>Popular at a hrefhttps://rockymountainroll.com/disc-jockey/>proms, weddings, and company parties/a>, our Booths are completely customizable for your event/span>span data-offset-key4rlu2-1-0>. You choose the theme of the print and the screens. NOW TOUCHLESS!! /span>span data-offset-key4rlu2-2-0> To keep our customers safe, Rocky Mountain Roll's photo booths are now activated by scanning a code on the screen/span>span data-offset-key4rlu2-3-0>. No more touching! /span>span data-offset-key4rlu2-4-0> The booths come in a variety of options--Classic, Mirror Mirror, and even our /span>span data-offset-key4rlu2-5-0>budget-friendly/span>span data-offset-key4rlu2-6-0> VenuePad/span>span data-offset-key4rlu2-7-0>. And don't forget all the fun props we offer for your rental. Digital images are always provided, too./span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key3l958-0-0>div data-offset-key3l958-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key3l958-0-0> /span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key9qgav-0-0>div data-offset-key9qgav-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key9qgav-0-0>Also popular are digital event pictures. Rocky Mountain Roll provides the attendant to take the images and they print right there for you! Custom backdrops are available upon request, or provide your own. /span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keya2etc-0-0>div data-offset-keya2etc-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-keya2etc-0-0> /span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key81avd-0-0>div data-offset-key81avd-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key81avd-0-0>Green Screen is another fantastic option for event souvenirs. /span>span data-offset-key81avd-1-0> Rocky Mountain Roll provides the green screen and everything needed for the shoot, while you choose which images you'd like to see printed/span>/span>span data-offset-key81avd-2-0 stylefont-family: Tahoma, Geneva, sans-serif;>. It's as easy as smile, click, and print, and you can see yourself anywhere in the world!/span>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/services/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/Backline_1586480565_big.jpg altServices titleServices />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/services/>p classrentNameIO elementor-heading-title>Services/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylefont-family: Tahoma,Geneva,sans-serif;>We offer a variety of event services to help your party go off without a hitch. Looking for a decorator? Hoping to get some aerial footage of the event? Need some CAD event design done? You've come to the right place. If you don't see the service that you need, just let us know and we will see what we can do./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/slides/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/Tree20House20Slide_1604349948_big-1.jpg altSlides titleSlides />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/slides/>p classrentNameIO elementor-heading-title>Slides/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editorfs9u6 data-offset-key8pair-0-0>div data-offset-key8pair-0-0>span data-offset-key8pair-0-0>Slides are a great addition to any party. Climb to the top and zip down the slick surface to arrive in the cushioned landing-zone and you've experienced how much fun an inflatable slide can be/span>span data-offset-key8pair-1-0>! Childhood memories are full of these fun moments and now you can pass the excitement along./span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key67aqm-0-0>div data-offset-key67aqm-0-0>span data-offset-key67aqm-0-0> /span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key4vq37-0-0>div data-offset-key4vq37-0-0>span data-offset-key4vq37-0-0>Rocky Mountain Roll offers a variety of sizes and styles to choose from. /span>span data-offset-key4vq37-1-0>Our slides are great for backyard birthday parties, barbecues, or even large corporate events/span>span data-offset-key4vq37-2-0>. /span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key1p17v-0-0>div data-offset-key1p17v-0-0>span data-offset-key1p17v-0-0> /span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-key6ssa2-0-0>div data-offset-key6ssa2-0-0>span data-offset-key6ssa2-0-0>We also have water options, but not all slides are available for use with water. Visit our a hrefhttps://rockymountainroll.com/inventory/water-amusements/>Water Amusements page/a> to learn more. /span>span data-offset-key6ssa2-1-0>If you want to use water, please ensure that you communicate that with us to avoid unnecessary damage to out rentals and charges to your account/span>span data-offset-key6ssa2-2-0>./span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keycsupk-0-0>div data-offset-keycsupk-0-0>span data-offset-keycsupk-0-0> /span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keya69r1-0-0>div data-offset-keya69r1-0-0>span data-offset-keya69r1-0-0>Because Rocky Mountain Roll /span>span data-offset-keya69r1-1-0>is committed/span>span data-offset-keya69r1-2-0> to safety, we sanitize and clean all inflatables for every rental/span>span data-offset-keya69r1-3-0>. We also make sure each inflatable /span>span data-offset-keya69r1-4-0>is secured/span>span data-offset-keya69r1-5-0> before you and your guests use them./span>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/tables/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/IMG_0393_1587004046_big.JPG altTables titleTables />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/tables/>p classrentNameIO elementor-heading-title>Tables/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span data-sheets-userformat{2:14849,3:{1:0},12:0,14:null,2,0,15:Tahoma,16:12} data-sheets-value{1:2,2:We have tables for rent and chair rentals for your party. All our equipment is cleaned and inspected regularly. Book soon so you get enough for our event.} stylefont-size:12pt;font-family:Tahoma,Arial;font-weight:normal;font-style:normal;color:#000000;>/span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Every event needs a place for your guests to sit and socialize, or eat the food that has been provided. If it's a backyard barbecue, a wedding reception, or a company picnic, people need a place to rest. Rocky Mountain Roll offers a wide selection of tables for rent in various sizes and shapes including cocktail, round, banquet, conference, and even serpentine shaped. /span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>If you are catering an event or having a wedding or graduation party, table rental is needed. Don't forget to add chairs and linens to complete your party rentals. We offer a large variety of colors and styles, as well as the finishing touches like table runners, napkins, and even chair coverings for a polished, fancy look. /span>/p>p>span stylefont-family: Tahoma,Geneva,sans-serif;>One call to Rocky Mountain Roll is all you need to start and finish your party rental experience./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/water-slide-rentals/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Wild-Wave-Mini-Slide_1604349968_big.jpg altWater Slides & Water Amusements titleWater Slides & Water Amusements />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/water-slide-rentals/>p classrentNameIO elementor-heading-title>Water Slides & Water Amusements/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>/p>div data-blocktrue data-editorfs9u6 data-offset-key3idkb-0-0>div data-blocktrue data-editorfs9u6 data-offset-key3idkb-0-0 stylepadding: 0px; margin: 0px; border: 0px; outline: 0px; color: rgb(17, 17, 17); font-family: Libre Baskerville, serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.2px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(250, 250, 250); text-decoration-style: initial; text-decoration-color: initial;>div data-blocktrue data-editorfs9u6 data-offset-key3idkb-0-0>div data-offset-key3idkb-0-0>span data-offset-key3idkb-0-0 stylefont-family: Tahoma, Geneva, sans-serif;>Hot summer months bring the opportunity for water amusements as a way to cool off and celebrate outdoor life/span>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key3idkb-1-0>. Imagine gliding down a slippery water slide or splashing into a cool dunk tank. If that's your idea of fun, then call Rocky Mountain Roll today! /span>/span>/div>/div>span stylefont-family: Tahoma,Geneva,sans-serif;> /span>div data-blocktrue data-editorfs9u6 data-offset-key4t2m3-0-0>div data-offset-key4t2m3-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key4t2m3-0-0>Rocky Mountain Roll offers a nice selection of wet amusements for your cool-down pleasure/span>span data-offset-key4t2m3-1-0>. /span>span data-offset-key4t2m3-2-0> Check out our Wild Splash, a 30 foot long inflatable slip-and-slide that allows you to coast down the surface while /span>span data-offset-key4t2m3-3-0>being sprayed/span>span data-offset-key4t2m3-4-0> from above/span>span data-offset-key4t2m3-5-0>. Or our Summer Splash slide, which is great for adults and children alike./span>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keyca6hk-0-0>div data-offset-keyca6hk-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>br>/span>/div>/div>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-key4rqi9-0-0>Dunk tanks are a great addition to carnivals, fundraisers, and corporate parties. They are a classic carnival game with a wet twist./span> /span>div data-blocktrue data-editorfs9u6 data-offset-key7lci6-0-0>div data-offset-key7lci6-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>br>/span>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keyvf3i-0-0>div data-offset-keyvf3i-0-0>span stylefont-family: Tahoma,Geneva,sans-serif;>span data-offset-keyvf3i-0-0>All water slide rentals /span>span data-offset-keyvf3i-1-0>require/span>span data-offset-keyvf3i-2-0> a water source and are not suitable for public parks. /span>span data-offset-keyvf3i-3-0>Because we care about your safety, Rocky Mountain Roll cleans and sanitizes every inflatable before each use and always secures them well/span>span data-offset-keyvf3i-4-0>./span>/span>/div>/div>/div>div data-blocktrue data-editorfs9u6 data-offset-keyvf3i-0-0 stylepadding: 0px; margin: 0px; border: 0px; outline: 0px; color: rgb(17, 17, 17); font-family: Libre Baskerville, serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.2px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(250, 250, 250); text-decoration-style: initial; text-decoration-color: initial;>br>/div>/div>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/amplifiers/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/q_amp_pld4.5_img_heroFront_1586983404_big.jpg altAmplifiers titleAmplifiers />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/amplifiers/>p classrentNameIO elementor-heading-title>Amplifiers/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylefont-family: Tahoma,Geneva,sans-serif;>If you have powered a hrefhttps://rockymountainroll.com/inventory/speakers/>speakers/a>, then you can rent our amplifiers to make sure your speakers perform great at your event./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/cables-snakes-adaptors/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/2520foot20extension20cord_1586541167_big-1.jpg altCables, Snakes & Adaptors titleCables, Snakes & Adaptors />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/cables-snakes-adaptors/>p classrentNameIO elementor-heading-title>Cables, Snakes & Adaptors/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p>span stylefont-family: Tahoma,Geneva,sans-serif;>Cords, cables, power strips and everything else you might need for your event with music. Order one of our a hrefhttps://rockymountainroll.com/inventory/disc-jockey-packages/>DJ packages/a>, and we'll bring everything that is needed./span>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/cd-dvd-blu-ray-players/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/cdj-2000nexus-main_1586983708_big.png altCD/DVD/Blu Ray Players titleCD/DVD/Blu Ray Players />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/cd-dvd-blu-ray-players/>p classrentNameIO elementor-heading-title>CD/DVD/Blu Ray Players/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/dance-floor/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/083e0bad31aa06729acb80c7800ffe24-1.png altDance Floor titleDance Floor />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/dance-floor/>p classrentNameIO elementor-heading-title>Dance Floor/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p stylefont-family: Tahoma, Geneva, sans-serif;>br>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/dj-pa-systems/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/PA System 12inch_1586481274_big.jpg altDJ & PA Systems titleDJ & PA Systems />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/dj-pa-systems/>p classrentNameIO elementor-heading-title>DJ & PA Systems/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/karaoke/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/2010-05-07 18.16.16_1586541278_big.jpg altKaraoke titleKaraoke />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/karaoke/>p classrentNameIO elementor-heading-title>Karaoke/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/led-video-wall/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/LED Video Wall Panel_928099930_big.JPG altLED Video Wall titleLED Video Wall />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/led-video-wall/>p classrentNameIO elementor-heading-title>LED Video Wall/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p stylefont-family: Tahoma, Geneva, sans-serif;>br>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/lighting/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/08/Inno20Spot20Elite_1586541940_big.jpg altLighting titleLighting />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/lighting/>p classrentNameIO elementor-heading-title>Lighting/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/lighting-controllers/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/07/mydmxgoplusipad.jpg_97_927792759_big_1586982893_big.jpg altLighting Controllers titleLighting Controllers />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/lighting-controllers/>p classrentNameIO elementor-heading-title>Lighting Controllers/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/lighting-packages/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/IMG_4848_1587004237_big-1.jpg altLighting Packages titleLighting Packages />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/lighting-packages/>p classrentNameIO elementor-heading-title>Lighting Packages/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/microphones/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/SM58 Vocal Microphone_1586471023_big.JPG altMicrophones titleMicrophones />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/microphones/>p classrentNameIO elementor-heading-title>Microphones/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/mixers-sound-boards/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/fc3dac71ae85061004095f72ff6f359f.jpg altMixers & Sound Boards titleMixers & Sound Boards />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/mixers-sound-boards/>p classrentNameIO elementor-heading-title>Mixers & Sound Boards/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/pipe-drape/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Trade-Show-Booth_1586541395_big.jpg altPipe & Drape titlePipe & Drape />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/pipe-drape/>p classrentNameIO elementor-heading-title>Pipe & Drape/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/speakers/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2023/03/ZX-5_542344_big.jpeg altSpeakers titleSpeakers />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/speakers/>p classrentNameIO elementor-heading-title>Speakers/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/special-effects/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/Confetti Cannon 2_1586481311_big.PNG altSpecial Effects titleSpecial Effects />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/special-effects/>p classrentNameIO elementor-heading-title>Special Effects/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/dance-floor-staging/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/Stage20Steps_1586541212_big.jpg altStaging titleStaging />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/dance-floor-staging/>p classrentNameIO elementor-heading-title>Staging/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/stage-packages/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/01/IMG_0158_1706642797_big.jpeg altStage Packages titleStage Packages />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/stage-packages/>p classrentNameIO elementor-heading-title>Stage Packages/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>p stylefont-family: Tahoma, Geneva, sans-serif;>br>/p>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/stands/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/TS-9020Speaker20Stand_1586471371_big.jpg altStands titleStands />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/stands/>p classrentNameIO elementor-heading-title>Stands/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/truss-3/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/07/1000x1000-20f34-2090_1_1586464148_big-1.jpg altTruss titleTruss />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/truss-3/>p classrentNameIO elementor-heading-title>Truss/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/various-a-v-items/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rental.software/users/rmr4djs/images/In Ear Monitor Wireless_1586543410_big.JPG altVarious A/V Items titleVarious A/V Items />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/various-a-v-items/>p classrentNameIO elementor-heading-title>Various A/V Items/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>div classio_mm_item elementor-widget-heading simpleCart_ioShelfItem namemaindiv_Amusements_ styletext-align:center>div classio_item2_listcat elementor-widget-heading> a hrefhttps://rockymountainroll.com/rentals/video-3/>div classcat_div>div classbtn btn-primary view-product-button>View Products/div> img classcat_img srchttps://rockymountainroll.com/wp-content/uploads/2024/09/IMG_598420copy_1586545916_big-1.jpeg altVideo titleVideo />/div> /a>div classcat_div_inner> a hrefhttps://rockymountainroll.com/rentals/video-3/>p classrentNameIO elementor-heading-title>Video/p>div classcatDescriptionIO catDescriptionIO_small elementor-widget-text-editor>/div> /a>/div>/div>/div>/div>/div>/li>/ul>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-3381 idmega-menu-item-3381>a classmega-menu-link hrefhttps://rockymountainroll.com/audio-visual-sales-and-installations/ tabindex0>A/V Sales/a>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-494 idmega-menu-item-494>a classmega-menu-link hrefhttps://rockymountainroll.com/celebrate/ aria-haspopuptrue aria-expandedfalse tabindex0>About Usspan classmega-indicator>/span>/a>ul classmega-sub-menu>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-493 idmega-menu-item-493>a classmega-menu-link hrefhttps://rockymountainroll.com/faqs/>FAQs/a>/li>li classmega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-23 idmega-menu-item-23>a classmega-menu-link hrefhttps://rockymountainroll.com/io_contactform/>Contact Us/a>/li>/ul>/li>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-778 idmega-menu-item-778>a classmega-menu-link hrefhttps://rockymountainroll.com/io_quoteform/ aria-haspopuptrue aria-expandedfalse tabindex0>Book Now!span classmega-indicator>/span>/a>ul classmega-sub-menu>li classmega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-492 idmega-menu-item-492>a classmega-menu-link hrefhttps://rockymountainroll.com/specials/>Specials/a>/li>/ul>/li>/ul>/div>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-061ee23 data-id061ee23 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-161868b ioCart elementor-view-default elementor-widget elementor-widget-icon data-id161868b data-element_typewidget data-widget_typeicon.default>div classelementor-widget-container>div classelementor-icon-wrapper>div classelementor-icon> i aria-hiddentrue classfas fa-shopping-cart>/i>/div>/div>/div>/div>/div>/div>/div>/section>/div>/div>/div>/section>/div>main idmain classsite-main rolemain>header classpage-header io_phshow>div class elementor-widget-heading>/div>/header>div classpage-content>div data-elementor-typewp-page data-elementor-id109 classelementor elementor-109 data-elementor-post-typepage>section classelementor-section elementor-top-section elementor-element elementor-element-cdc5d26 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-idcdc5d26 data-element_typesection data-settings{"background_background":"classic","background_motion_fx_opacity_effect":"yes","background_motion_fx_opacity_range":{"unit":"%","size":"","sizes":{"start":"51","end":"76"}},"background_motion_fx_motion_fx_scrolling":"yes","background_motion_fx_opacity_direction":"in-out","background_motion_fx_opacity_level":{"unit":"px","size":10,"sizes":},"background_motion_fx_devices":"desktop","tablet","mobile"}>div classelementor-background-overlay>/div>div classelementor-container elementor-column-gap-no>div classelementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f6a2dee data-idf6a2dee data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>section classelementor-section elementor-inner-section elementor-element elementor-element-62926f2 elementor-section-full_width elementor-section-height-min-height elementor-section-content-bottom elementor-section-height-default data-id62926f2 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-0e58b68 data-id0e58b68 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-c6a43dc elementor-widget elementor-widget-heading data-idc6a43dc data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h1 classelementor-heading-title elementor-size-default>lets make memories!/h1>/div>/div>div classelementor-element elementor-element-3d6c169 elementor-widget elementor-widget-text-editor data-id3d6c169 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>h1>We bring the music and the party!/h1>/div>/div>div classelementor-element elementor-element-27598dd elementor-align-center elementor-widget elementor-widget-button data-id27598dd data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/io_quoteform/> span classelementor-button-content-wrapper> span classelementor-button-text>Get a Quote Online!/span> /span> /a>/div>/div>/div>/div>/div>/div>/section>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-3cf16580 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id3cf16580 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c144ea8 data-idc144ea8 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-1b283c60 elementor-widget elementor-widget-image data-id1b283c60 data-element_typewidget data-widget_typeimage.default>div classelementor-widget-container>figure classwp-caption> img fetchpriorityhigh decodingasync width690 height437 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1.jpg classattachment-large size-large wp-image-2667 altImage of Bride and Groom dance at their reception. srcsethttps://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1.jpg 690w, https://rockymountainroll.com/wp-content/uploads/2020/04/Wedding-DJ-1-300x190.jpg 300w sizes(max-width: 690px) 100vw, 690px />figcaption classwidget-image-caption wp-caption-text>A happy bride and groom dance at their wedding reception./figcaption>/figure>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-71ace620 data-id71ace620 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-49594825 elementor-widget elementor-widget-heading data-id49594825 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>Disc Jockey Services/h2>/div>/div>div classelementor-element elementor-element-64844e9f elementor-widget elementor-widget-text-editor data-id64844e9f data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>Weddings and ceremonies are not complete without music. Get your guests up and keep them dancing all night. /p>p>Rocky Mountain Roll offers a largespan stylecolor: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );> music selection along with charming disc jockeys to help bring your party to life. No matter the event–a wedding, reception, corporate holiday party, or a school dance–music is the one detail that takes your event sparkle and shine above the rest./span>/p>/div>/div>div classelementor-element elementor-element-0619467 elementor-align-center elementor-widget elementor-widget-button data-id0619467 data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/disc-jockey/> span classelementor-button-content-wrapper> span classelementor-button-text>View our Disc Jockey Services/span> /span> /a>/div>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-ea3bb9e elementor-section-boxed elementor-section-height-default elementor-section-height-default data-idea3bb9e data-element_typesection data-settings{"background_background":"classic"}>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-bf56da7 data-idbf56da7 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-2c0f4b4 elementor-widget elementor-widget-heading data-id2c0f4b4 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>Party Rentals & Services/h2>/div>/div>div classelementor-element elementor-element-299c5ba elementor-widget elementor-widget-text-editor data-id299c5ba data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>Rocky Mountain Roll provides our customers with a large selection of fun and exciting bounce house inflatable rentals, inflatables, amusement attractions, and special event services designed to make your event one of a kind./p>p>Party rentals are the difference between amazing and blah. If you need an inflatable to help keep your guests happy but are not sure where to start, contact us. We would love to help you select the perfect rentals./p>/div>/div>div classelementor-element elementor-element-9fbf5ff elementor-align-center elementor-widget elementor-widget-button data-id9fbf5ff data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/party-rentals/> span classelementor-button-content-wrapper> span classelementor-button-text>View Our Party Rentals & Services/span> /span> /a>/div>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-12f1fa6 data-id12f1fa6 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-9eb1db6 elementor-widget elementor-widget-image data-id9eb1db6 data-element_typewidget data-widget_typeimage.default>div classelementor-widget-container>figure classwp-caption> img decodingasync width1024 height683 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-1024x683.jpg classattachment-large size-large wp-image-2670 altBounce House Rental srcsethttps://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-1024x683.jpg 1024w, https://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-300x200.jpg 300w, https://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-768x512.jpg 768w, https://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-1536x1024.jpg 1536w, https://rockymountainroll.com/wp-content/uploads/2020/04/DSC_0011-scaled-2048x1366.jpg 2048w sizes(max-width: 1024px) 100vw, 1024px />figcaption classwidget-image-caption wp-caption-text>Inflatables at a large school carnival./figcaption>/figure>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-e439556 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-ide439556 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-95bf52d data-id95bf52d data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-6633f26 elementor-widget elementor-widget-image data-id6633f26 data-element_typewidget data-widget_typeimage.default>div classelementor-widget-container>figure classwp-caption> img loadinglazy decodingasync width750 height562 srchttps://rockymountainroll.com/wp-content/uploads/2020/10/white-classic-photo-booth-outside_1603475725_big.jpg classattachment-large size-large wp-image-9037 altImage of Classic Photo Booth White srcsethttps://rockymountainroll.com/wp-content/uploads/2020/10/white-classic-photo-booth-outside_1603475725_big.jpg 750w, https://rockymountainroll.com/wp-content/uploads/2020/10/white-classic-photo-booth-outside_1603475725_big-300x225.jpg 300w sizes(max-width: 750px) 100vw, 750px />figcaption classwidget-image-caption wp-caption-text>Our Classic Photo Booth ready for guests to create memories./figcaption>/figure>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-03a51e6 data-id03a51e6 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-ce5ee25 elementor-widget elementor-widget-heading data-idce5ee25 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>Event Photos/h2>/div>/div>div classelementor-element elementor-element-9e5f480 elementor-widget elementor-widget-text-editor data-id9e5f480 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>span stylecolor: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );>Creating the perfect event is just the beginning. Give your guests a fun way to capture the moment. /span>span stylecolor: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );>Rocky Mountain Roll offers digital photos, green screen photos, and fun photo booth rentals. All of our Photo Rentals come with the necessary supplies. Pricing for supplies is based on guest count. /span>/p>/div>/div>div classelementor-element elementor-element-4471e93 elementor-align-center elementor-widget elementor-widget-button data-id4471e93 data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/event-photos/> span classelementor-button-content-wrapper> span classelementor-button-text>View our Event Photos/span> /span> /a>/div>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-7faada80 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id7faada80 data-element_typesection data-settings{"background_background":"classic"}>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-2f7aeb97 data-id2f7aeb97 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-a512dba elementor-widget elementor-widget-heading data-ida512dba data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>Audio Visual Rentals/h2>/div>/div>div classelementor-element elementor-element-5caa2371 elementor-widget elementor-widget-text-editor data-id5caa2371 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>When your event requires audio visual equipment, Rocky Mountain Roll has a large inventory of audio, video, and lighting items for rent and for sale./p>p>Company events with guest speakers, outdoor picnics with ambient music, private parties with slideshows, we have everything you need to have a beautiful and memorable event. If you need help selecting the rental that fits your event, please contact us!/p>/div>/div>div classelementor-element elementor-element-25bec36 elementor-align-center elementor-widget elementor-widget-button data-id25bec36 data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/audio-visual-rentals/> span classelementor-button-content-wrapper> span classelementor-button-text>View Our Audio Visual Rentals/span> /span> /a>/div>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-357b654f data-id357b654f data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-7e6eafb elementor-widget elementor-widget-image data-id7e6eafb data-element_typewidget data-widget_typeimage.default>div classelementor-widget-container>figure classwp-caption> img loadinglazy decodingasync width1024 height576 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-1024x576.jpg classattachment-large size-large wp-image-2688 altImage of Dance Marathon Event srcsethttps://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-1024x576.jpg 1024w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-300x169.jpg 300w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-768x432.jpg 768w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-1536x864.jpg 1536w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0654-scaled-2048x1152.jpg 2048w sizes(max-width: 1024px) 100vw, 1024px />figcaption classwidget-image-caption wp-caption-text>Students celebrate a successful fundraiser at Boise State University./figcaption>/figure>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-503632bf elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id503632bf data-element_typesection data-settings{"background_background":"classic"}>div classelementor-container elementor-column-gap-narrow>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-37e8812 data-id37e8812 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-84213e4 elementor-widget elementor-widget-image data-id84213e4 data-element_typewidget data-widget_typeimage.default>div classelementor-widget-container>figure classwp-caption> img loadinglazy decodingasync width300 height225 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-300x225.jpg classattachment-medium size-medium wp-image-3100 alt srcsethttps://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-300x225.jpg 300w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-1024x768.jpg 1024w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-768x576.jpg 768w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-1536x1152.jpg 1536w, https://rockymountainroll.com/wp-content/uploads/2020/04/IMG_0472-scaled-2048x1536.jpg 2048w sizes(max-width: 300px) 100vw, 300px />figcaption classwidget-image-caption wp-caption-text>Dancing under the Rocky Mountain Roll lights and fog at prom./figcaption>/figure>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-7ae62a97 data-id7ae62a97 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-b53c39f elementor-testimonial--layout-image_stacked elementor-testimonial--skin-default elementor-testimonial--align-center elementor-arrows-yes elementor-pagination-type-bullets elementor-widget elementor-widget-testimonial-carousel data-idb53c39f data-element_typewidget data-settings{"show_arrows":"yes","pagination":"bullets","speed":500,"autoplay":"yes","autoplay_speed":5000,"loop":"yes","pause_on_hover":"yes","pause_on_interaction":"yes","space_between":{"unit":"px","size":10,"sizes":},"space_between_tablet":{"unit":"px","size":10,"sizes":},"space_between_mobile":{"unit":"px","size":10,"sizes":}} data-widget_typetestimonial-carousel.default>div classelementor-widget-container>div classelementor-swiper>div classelementor-main-swiper swiper>div classswiper-wrapper>div classswiper-slide>div classelementor-testimonial>div classelementor-testimonial__content>div classelementor-testimonial__text> Absolutely LOVE working with Rocky Mountain Roll! The staff is always so friendly and fun and they truly do Bring the Party!/div>/div>div classelementor-testimonial__footer> cite classelementor-testimonial__cite>span classelementor-testimonial__name>Meridian Chamber of Commerce/span>/cite>/div>/div>/div>div classswiper-slide>div classelementor-testimonial>div classelementor-testimonial__content>div classelementor-testimonial__text> Would overall recommend Rocky Mountain Roll for any of your party needs. We will definitely be using them in the future!/div>/div>div classelementor-testimonial__footer> cite classelementor-testimonial__cite>span classelementor-testimonial__name>Ryan/span>span classelementor-testimonial__title>Company Party/span>/cite>/div>/div>/div>div classswiper-slide>div classelementor-testimonial>div classelementor-testimonial__content>div classelementor-testimonial__text> I would not work with anyone else in the area for party rentals!/div>/div>div classelementor-testimonial__footer> cite classelementor-testimonial__cite>span classelementor-testimonial__name>Henley/span>span classelementor-testimonial__title>Corporate Party/span>/cite>/div>/div>/div>/div>div classswiper-pagination>/div>div classelementor-swiper-button elementor-swiper-button-prev rolebutton tabindex0> i aria-hiddentrue classeicon-chevron-left>/i> span classelementor-screen-only>Previous/span>/div>div classelementor-swiper-button elementor-swiper-button-next rolebutton tabindex0> i aria-hiddentrue classeicon-chevron-right>/i> span classelementor-screen-only>Next/span>/div>/div>/div>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-8d864c3 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id8d864c3 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-967d6ca data-id967d6ca data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>section classelementor-section elementor-inner-section elementor-element elementor-element-eef8c62 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-ideef8c62 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-ef826cd data-idef826cd data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-d32e362 elementor-widget elementor-widget-heading data-idd32e362 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>i>What type of events do you rent for?/i>/h2>/div>/div>div classelementor-element elementor-element-f60a3a2 elementor-widget elementor-widget-text-editor data-idf60a3a2 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>We provide rentals for all types of events. For events that are small to large, we are a trusted partner for special event rentals. Our inflatable bounce houses are ready for private parties, backyard BBQs, and park picnics. If you’re having a wedding, ceremony, or company event, we can assist in selecting the right items based on your guest count. /p>p>When it comes to deciding which company to trust for your event, trust in our reputation as Boise’s most trusted special event rental company. /p>/div>/div>/div>/div>/div>/section>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6a89f8e data-id6a89f8e data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>section classelementor-section elementor-inner-section elementor-element elementor-element-39cae61 elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id39cae61 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c8cfa92 data-idc8cfa92 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-fc61ff0 elementor-widget elementor-widget-heading data-idfc61ff0 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>How does it work?/h2>/div>/div>/div>/div>/div>/section>div classelementor-element elementor-element-ada0917 elementor-widget elementor-widget-text-editor data-idada0917 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>When you’re ready to move forward, you can start with selecting items in our inventory. By adding the item to the cart you are able to adjust the requested rental date./p>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-6df6072d elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id6df6072d data-element_typesection data-settings{"background_background":"classic"}>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4bc5ead9 data-id4bc5ead9 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-579e5b61 elementor-widget elementor-widget-heading data-id579e5b61 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h3 classelementor-heading-title elementor-size-default>Popular Rentals book quickly - be sure to Book Early!/h3>/div>/div>div classelementor-element elementor-element-2122b6a elementor-align-center elementor-widget elementor-widget-button data-id2122b6a data-element_typewidget data-widget_typebutton.default>div classelementor-widget-container>div classelementor-button-wrapper> a classelementor-button elementor-button-link elementor-size-sm hrefhttp://rockymountainroll.com/io_quoteform/> span classelementor-button-content-wrapper> span classelementor-button-text>Get a Quote Online!/span> /span> /a>/div>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-inner-section elementor-element elementor-element-277cc53a elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id277cc53a data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-441cddca data-id441cddca data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-534afe10 elementor-widget elementor-widget-theme-site-logo elementor-widget-image data-id534afe10 data-element_typewidget data-widget_typetheme-site-logo.default>div classelementor-widget-container> a hrefhttps://rockymountainroll.com> img loadinglazy decodingasync width192 height157 srchttps://rockymountainroll.com/wp-content/uploads/2020/04/rocky-mountain-roll-small-logo.png classelementor-animation-grow attachment-full size-full wp-image-3150 altImage of Rocky Mountain Roll Logo /> /a>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-101aac37 data-id101aac37 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-463ec9e9 elementor-widget elementor-widget-heading data-id463ec9e9 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h2 classelementor-heading-title elementor-size-default>Who We Are/h2>/div>/div>div classelementor-element elementor-element-4f69e326 elementor-widget elementor-widget-text-editor data-id4f69e326 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>If you’re looking to make only one call, one stop to meet all of your party needs…look no further! We offer a wide variety of services to make your party unique and unforgettable. With us you have less stress and more fun./p>p>We’re your strong>#1 source/strong> for inflatable, bounce house, event and a hrefhttp://rockymountainroll.com/party-rentals/>party rentals/a>. With each a hrefhttp://rockymountainroll.com/inventory/event-rental/>event rental/a>, we focus on providing world-class quality so you and your guests can strong>enjoy your event/strong>./p>p>We are known for providing b>clean and safe /b>bounce house rentals. Each item is cleaned and sanitized after every event to ensure your safety. We always follow the strong>strictest safety guidelines/strong> and we absolutely will not sacrifice your safety for business. strong>EVER/strong>. /p>/div>/div>/div>/div>/div>/section>section classelementor-section elementor-top-section elementor-element elementor-element-2b356a3c elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id2b356a3c data-element_typesection>div classelementor-container elementor-column-gap-no>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-43ea69f0 data-id43ea69f0 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-33783712 elementor-widget elementor-widget-heading data-id33783712 data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h6 classelementor-heading-title elementor-size-default>Services Areas/h6>/div>/div>div classelementor-element elementor-element-74fac04e elementor-widget elementor-widget-heading data-id74fac04e data-element_typewidget data-widget_typeheading.default>div classelementor-widget-container>h5 classelementor-heading-title elementor-size-default>Boise Idaho/h5>/div>/div>div classelementor-element elementor-element-2bc604a7 elementor-widget elementor-widget-text-editor data-id2bc604a7 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p>Rocky Mountain Roll services the area around Boise, Idaho – as well as nearby smaller cities listed. /p>p>We are able to provide support for all types of events around the Boise area including both large and small events. If you are having an up-scale, fancy event like a wedding or ceremony, we provide event rental equipment and DJ audio visual services. /p>p>If you are looking for outdoor, inflatable rentals and are interested in a fun bounce house rental for your backyard parties, contact us. We have everything you need for a party with or without water. Our selection of water slides are sure to make a splash!/p>/div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-76095ed7 data-id76095ed7 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-7567adfb elementor-widget elementor-widget-toggle data-id7567adfb data-element_typewidget data-widget_typetoggle.default>div classelementor-widget-container>div classelementor-toggle>div classelementor-toggle-item>div idelementor-tab-title-1961 classelementor-tab-title data-tab1 rolebutton aria-controlselementor-tab-content-1961 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Meridian/a>/div>div idelementor-tab-content-1961 classelementor-tab-content elementor-clearfix data-tab1 roleregion aria-labelledbyelementor-tab-title-1961>p>Meridian, ID is our home base, but we can travel to your location as well!/p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1962 classelementor-tab-title data-tab2 rolebutton aria-controlselementor-tab-content-1962 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Nampa/a>/div>div idelementor-tab-content-1962 classelementor-tab-content elementor-clearfix data-tab2 roleregion aria-labelledbyelementor-tab-title-1962>p>We love doing parties and events in Nampa ID, so give us a call or do a quote today./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1963 classelementor-tab-title data-tab3 rolebutton aria-controlselementor-tab-content-1963 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Caldwell/a>/div>div idelementor-tab-content-1963 classelementor-tab-content elementor-clearfix data-tab3 roleregion aria-labelledbyelementor-tab-title-1963>p>We do events in Caldwell Idaho as well, so if you looking to rent party equipment give us a call./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1964 classelementor-tab-title data-tab4 rolebutton aria-controlselementor-tab-content-1964 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Eagle/a>/div>div idelementor-tab-content-1964 classelementor-tab-content elementor-clearfix data-tab4 roleregion aria-labelledbyelementor-tab-title-1964>p>We will travel up to Eagle, TX as well for your rentals as well./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1965 classelementor-tab-title data-tab5 rolebutton aria-controlselementor-tab-content-1965 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Kuna/a>/div>div idelementor-tab-content-1965 classelementor-tab-content elementor-clearfix data-tab5 roleregion aria-labelledbyelementor-tab-title-1965>p>Kuna, ID is within our service area./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1966 classelementor-tab-title data-tab6 rolebutton aria-controlselementor-tab-content-1966 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Middleton/a>/div>div idelementor-tab-content-1966 classelementor-tab-content elementor-clearfix data-tab6 roleregion aria-labelledbyelementor-tab-title-1966>p>Live in or near Middleton, ID? We travel there to serve your party rental needs./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1967 classelementor-tab-title data-tab7 rolebutton aria-controlselementor-tab-content-1967 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Sonna/a>/div>div idelementor-tab-content-1967 classelementor-tab-content elementor-clearfix data-tab7 roleregion aria-labelledbyelementor-tab-title-1967>p>Sonna, ID is in our travel area./p>/div>/div>div classelementor-toggle-item>div idelementor-tab-title-1968 classelementor-tab-title data-tab8 rolebutton aria-controlselementor-tab-content-1968 aria-expandedfalse> span classelementor-toggle-icon elementor-toggle-icon-right aria-hiddentrue> span classelementor-toggle-icon-closed>i classfas fa-caret-right>/i>/span> span classelementor-toggle-icon-opened>i classelementor-toggle-icon-opened fas fa-caret-up>/i>/span> /span> a classelementor-toggle-title tabindex0>Star/a>/div>div idelementor-tab-content-1968 classelementor-tab-content elementor-clearfix data-tab8 roleregion aria-labelledbyelementor-tab-title-1968>p>Star, ID is within our service area as well./p>/div>/div>/div>/div>/div>/div>/div>/div>/section>/div>/div>/main>div data-elementor-typefooter data-elementor-id410 classelementor elementor-410 elementor-location-footer data-elementor-post-typeelementor_library>section classelementor-section elementor-top-section elementor-element elementor-element-1f2d1940 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle data-id1f2d1940 data-element_typesection data-settings{"background_background":"classic","background_motion_fx_motion_fx_scrolling":"yes","background_motion_fx_opacity_effect":"yes","background_motion_fx_opacity_direction":"in-out","background_motion_fx_opacity_range":{"unit":"%","size":"","sizes":{"start":"51","end":"76"}},"background_motion_fx_opacity_level":{"unit":"px","size":10,"sizes":},"background_motion_fx_devices":"desktop","tablet","mobile"}>div classelementor-background-overlay>/div>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1e6041ee data-id1e6041ee data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>section classelementor-section elementor-inner-section elementor-element elementor-element-4d802d6d elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id4d802d6d data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-55bf2468 data-id55bf2468 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-4ed55c82 elementor-widget elementor-widget-text-editor data-id4ed55c82 data-element_typewidget data-widget_typetext-editor.default>div classelementor-widget-container>p> /p>p>Rocky Mountain Roll was founded in 1981, giving us over thirty-nine years of entertaining in the Treasure Valley and the Northwest. We’ve built a reputation on providing superior customer service while having fun at it. Many of our past clients can now be called friends–and we count that as a very important thing./p>p> /p>p>DJ & Entertainment Services Serving: Boise, Caldwell, Eagle, Meridian, Nampa, Idaho, and beyond./p>/div>/div>div classelementor-element elementor-element-3e99343 elementor-widget elementor-widget-html data-id3e99343 data-element_typewidget data-widget_typehtml.default>div classelementor-widget-container>div idio_contactblock2>/div> script>let ioBox2 document.querySelector(#io_contactblock2); let output2 ; let io_pn2 getIOUserInfo(io_phonenumber); if (io_pn2 || io_pn2 undefined) { io_pn2 div styledisplay:none;>/div>; } else { io_pn2 a hreftel: + io_pn2 + > + io_pn2 + /a>; io_pn2 div classboxIO1>i classfa fa-phone io_pnc>/i> + io_pn2 + /div>; } output2 + io_pn2; let io_ea2 getIOUserInfo(io_emailaddress); if (io_ea || io_ea undefined) { io_ea div styledisplay:none;>/div>; } else { io_ea2 a hrefmailto: + io_ea2 + ?subjectWebsite Contact Form + > + io_ea2 + /a>; io_ea2 div classboxIO2>i classfa fa-envelope io_pnc>/i> + io_ea2 + /div>; } output2 + io_ea2; let io_bh2 getIOUserInfo(io_businesshours); if (io_bh2 || io_bh2 undefined) { io_bh2 div styledisplay:none;>/div>; } else { io_bh2 div classboxIO3>i classfa fa-hourglass io_pnc>/i> + io_bh2 + /div>; } output2 + io_bh2; ioBox2.innerHTML output2;/script> /div>/div>div classelementor-element elementor-element-4d93604 elementor-widget elementor-widget-html data-id4d93604 data-element_typewidget data-widget_typehtml.default>div classelementor-widget-container>div idio_socialmedia>/div> script>let io_socialbox document.querySelector(#io_socialmedia); let output_sm ; let io_fb getIOUserInfo(io_facebooklink); if (io_fb || io_fb undefined) { io_pn div styledisplay:none;>/div>; } else { io_fb div classboxIO1>a href + io_fb + >i classfa fa-facebook io_pnc>/i>/a>/div>; } output_sm + io_fb; let io_tl getIOUserInfo(io_twitterlink); if (io_tl || io_tl undefined) { io_tl div styledisplay:none;>/div>; } else { io_tl div classboxIO2>a href + io_tl + >i classfa fa-twitter io_pnc>/i>/a>/div>; } output_sm + io_tl; let io_ig getIOUserInfo(io_instagramlink); if (io_ig || io_ig undefined) { io_ig div styledisplay:none;>/div>; } else { io_ig div classboxIO2>a href + io_ig + >i classfa fa-instagram io_pnc>/i>/a>/div>; } output_sm + io_ig; let io_yt getIOUserInfo(io_youtubelink); if (io_yt || io_yt undefined) { io_yt div styledisplay:none;>/div>; } else { io_yt div classboxIO2>a href + io_yt + >i classfa fa-youtube io_pnc>/i>/a>/div>; } output_sm + io_yt; io_socialbox.innerHTML output_sm;/script> /div>/div>div classelementor-element elementor-element-f30616d elementor-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list data-idf30616d data-element_typewidget data-widget_typeicon-list.default>div classelementor-widget-container>ul classelementor-icon-list-items>li classelementor-icon-list-item> a hrefhttps://g.page/RockyMountainRoll?share> span classelementor-icon-list-icon> i aria-hiddentrue classfas fa-location-arrow>/i> /span> span classelementor-icon-list-text>865 Taylor Ave. Meridian, ID 83642/span> /a>/li>/ul>/div>/div>div classelementor-element elementor-element-fd34b7c elementor-widget elementor-widget-wp-widget-custom_html data-idfd34b7c data-element_typewidget data-widget_typewp-widget-custom_html.default>div classelementor-widget-container>div classtextwidget custom-html-widget>a hrefhttps://www.bbb.org/us/id/meridian/profile/jumping-balloons/rocky-mountain-roll-1296-1000018784/#sealclick target_blank relnofollow noopener>img srchttps://seal-alaskaoregonwesternwashington.bbb.org/seals/blue-seal-200-42-whitetxt-bbb-1000018784.png styleborder: 0 altRocky Mountain Roll BBB Business Review />/a>/div>/div>/div>div classelementor-element elementor-element-233c1e4 elementor-widget elementor-widget-html data-id233c1e4 data-element_typewidget data-widget_typehtml.default>div classelementor-widget-container> script>setTimeout(() > { let io_mm_items document.querySelectorAll(.io_mm_item); io_mm_items.forEach((i) > { let io_mm_name i.querySelector(.rentNameIO).innerHTML; if (io_mm_name Fees - Hotel, Travel & other) { i.style.display none; } });}, 500);/script> /div>/div>/div>/div>/div>/section>section classelementor-section elementor-inner-section elementor-element elementor-element-36819db9 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default data-id36819db9 data-element_typesection>div classelementor-container elementor-column-gap-default>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1305b549 data-id1305b549 data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-3783a011 elementor-widget elementor-widget-html data-id3783a011 data-element_typewidget data-widget_typehtml.default>div classelementor-widget-container>div idio_footerbox>p>Copyright © span idioyeario>2020/span> span idio_fbs>/span> | All Rights Reserved | Rental Software Powered By a hrefhttps://www.eventoffice.io target_blank>EventOffice/a>/p>/div> script>let insrty document.querySelector(#io_fbs); let io_cn + getIOUserInfo(io_companyname); insrty.innerHTML io_cn; let ioyeario document.querySelector(#ioyeario); let ddd new Date(); let dddn ddd.getFullYear(); ioyeario.innerText dddn;/script> /div>/div>/div>/div>div classelementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-469254ca data-id469254ca data-element_typecolumn>div classelementor-widget-wrap elementor-element-populated>div classelementor-element elementor-element-0106eca elementor-icon-list--layout-inline elementor-tablet-align-left elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list data-id0106eca data-element_typewidget data-widget_typeicon-list.default>div classelementor-widget-container>ul classelementor-icon-list-items elementor-inline-items>li classelementor-icon-list-item elementor-inline-item> a hrefhttp://rockymountainroll.com/sitemap/> span classelementor-icon-list-text>Sitemap/span> /a>/li>/ul>/div>/div>/div>/div>/div>/section>/div>/div>/div>/section>/div> img srchttps://rental.software/include/iotracking.php styledisplay:none; importancelow altdynamic io trk code /> script>var io_wp_local_path ; var io_checkavail warn; var io_hidetimes off; var io_user_country US; var io_user_currency USD; var io_default_start_time 5:00 pm; var io_default_end_time 1:00 am; var io_cart_date_format m/d/yy; var io_cart_message ; var io_cart_time_format g:i a; var io_multidayquote on; var io_cartdayselect ; var io_cartAllowSameDay ; var io_overnightPickupTime 12:00 am; var io_incartupsell ; var io_distancecharge ; var io_deliverymethod ; var io_brand IO; var io_restrict_times ; var io_restrict_time_start 12:00 am; var io_restrict_time_end 12:00 am; var io_default_state ID; var io_hide_zero 1; var io_weekEndPrice off; var io_weekDayText Weekday price.; var io_weekEndText Weekend price.; var io_weekendDefine friday-sunday; var io_accessory_price off; var io_accessory_select off; var io_upsell_price off; var io_cart_party_planner_email ; var io_cart_party_planner_destination ; var io_hideQuantityAvail off; var io_company_timeslots ; var io_info_required off; var io_always_display_live_price off; var io_hide_live_prices 1; var io_info_required_data ; var io_prices {0:isset,override_groups:}; var io_delivery_prices {default:,override:}; var io_custom_prices {default:, override:}; var io_delivery_methods {Deliver\/Pickup:{restricted:,id:2591},Fully Staffed:{restricted:,id:516},Supervised Event:{restricted:,id:517},Delivery\/Client Return:{restricted:\176537\,\176570\,\457277\,\314970\,\261165\,\201804\,\196218\,\220217\,\25369\,\25365\,\442045\,\347670\,\25411\,\441005\,\25111\,\25373\,\202898\,\25569\,\87075\,\87077\,\87073\,\22473\,\386909\,\386911\,\25103\,\155105\,\25115\,\25065\,\25117\,\25543\,\47417\,\25119\,\25121\,\25097\,\26969\,\26643\,\25095\,\424657\,\25125\,\25247\,\95335\,\25063\,\25127\,\26567\,\22475\,\232132\,\25091\,\25297\,\25101\,\26559\,\154923\,\26537\,\395097\,\25133\,\24935\,\25129\,\25547\,\47421\,\347704\,\140307\,\25113\,\25123\,\25131\,\25089\,\25067\,\154925\,\25087\,id:518},Customer Pick-Up:{restricted:\22473\,\25111\,\155105\,\25115\,\25117\,\25119\,\25121\,\25125\,\25123\,\25103\,\25065\,\25095\,\25063\,\25127\,\232132\,\25091\,\26537\,\25129\,\952331\,\25089\,\25067\,\154925\,\952263\,\964101\,\952211\,\927367\,\27089\,\639631\,\639633\,\196218\,\497249\,\261165\,\201804\,\721601\,\314970\,\457277\,\176570\,\176537\,\248757\,\131861\,\337070\,\259126\,\119527\,\25097\,\26969\,\26643\,\25569\,\693039\,\25603\,\25629\,\294980\,\211737\,\25639\,\25641\,\25203\,\25205\,\25207\,\25101\,\26559\,\154923\,\952175\,\24935\,\952563\,\395097\,\25133\,\952615\,\26567\,\22475\,\25131\,\964337\,\952399\,\25087\,\25113\,\167667\,\25107\,\525779\,\442045\,\347670\,\525781\,\25411\,\140307\,\441005\,\25409\,\25559\,\584379\,\856451\,\332232\,\95335\,\25365\,\514915\,\961067\,\25495\,\25373\,\202898\,\206620\,\249690\,\25377\,\133075\,\525771\,\424701\,id:519},Email:{restricted:,id:31559},Partially Staffed:{restricted:,id:5229}}; var io_delivery_methods_restrict ; var io_pagename Rocky Mountain Roll; //var io_seocitylinktext Professional delivery to span class\io_city_list\>%%landing_pages%%/span> and surrounding areas. Please submit a quote or contact us to be sure we service your area.; jQuery( document ).ready(function() { //force all quote form links to use cart data //removing back to cart shortcode as this needs to only be done if cart is not empty IO-22561 /* let headerBookButton jQuery(ahref$io_quoteform/); headerBookButton.addClass(ioCart_link); headerBookButton.attr(href, javascript:;); */ let last_cat_name ; let ioTrigger false; jQuery(.io_all_item_cat).each(function() { current_cat_name jQuery(this).html(); if(last_cat_name ! current_cat_name) { jQuery(this).show(); ioTrigger true; } last_cat_name current_cat_name; }); // Setup gen page blocks let io_divs document.querySelectorAll(.io_item2_list, .io_item2_listcat, .io_item2_listrent, .io_all_item_cat); let io_divscat document.querySelectorAll(.io_item2_listcat); let io_divsrent document.querySelectorAll(.io_item2_listrent); let io_divcat document.querySelector(.io_catdiv2); let io_pcc document.querySelector(.page-content); let io_html; if (io_divs.length > 0) { for (let i of io_divs) { if(i.parentNode.className.indexOf(io_mm_) -1){ io_divcat.appendChild(i); } } if(io_divcat!null) io_divcat.style.display grid; } if (ioTrigger) { let pageBlock document.querySelector(.io_catdiv2); pageBlock.classList.add(elementor-widget-heading); let scanRes pageBlock.querySelectorAll(.io_item2_listrent); pageBlock.style.display block; pageBlock.style.margin auto; pageBlock.style.textAlign center; pageBlock.style.marginLeft 5px; pageBlock.style.marginRight 5px; for (let i of scanRes) { i.style.display inline-block; i.style.marginLeft 5px; i.style.marginRight 5px; } } /* fix font color on older sites */ if(jQuery(#cartData).css(background-color)rgb(35, 36, 37)){ jQuery(#cartData).css(color,white); } });/script>div idcartPopover>div idtriangle>/div>div idcartCalendarTimePickerContainer>div idcartCalendar>/div>div idcartTimePicker>div iddiv-overnight> Days select stylecolor:black; namewhatday idwhatday onchangeendDisplay();>option valueSame Day selectedselected>Single Day/option>option valueOvernight>Overnight/option>option valueMulti-Day>Multi-Day/option> /select>/div> br>div idioCartTimeSelectContainer>div> span classcalTimeLabel calTimeLabelStart>Start/span> i classfas fa-calendar-check>/i> input typetext namedateStart classioCartDateInput readonlyreadonly /> i classfas fa-clock>/i> input typetext nametimeStart classtimepicker stylewidth:75px; />/div>div> span classcalTimeLabel calTimeLabelEnd>End/span> i classfas fa-calendar-check>/i> input typetext namedateEnd classioCartDateInput readonlyreadonly /> i classfas fa-clock>/i> input typetext nametimeEnd classtimepicker stylewidth:75px; />/div>/div> br>div idioDeliveryMethodContainer styledisplay:none; text-align: center;>/div> br>div idioAdditonalInformationContainer styledisplay:none; text-align: center;>div classio_info_modal_data_container idio_info_modal_address> label foraddress idio_iml_address_label stylewidth:105px> Street Address /label> input classio_modal_input_address stylemargin-left:5px idio_im_address nameaddress typetext>/input> br>/div>div classio_info_modal_data_container idio_info_modal_city> label forcity idio_iml_city_label stylewidth:105px> City /label> input classio_modal_input_city stylemargin-left:5px idio_im_city namecity typetext>/input> br>/div>div classio_info_modal_data_container idio_info_modal_zip> label forzip idio_iml_zip_label stylewidth:105px> Zip Code /label> input classio_modal_input_zip idio_im_zip stylemargin-left:5px namezip typetext>/input>/div>/div> br>div classelementor-widget-button stylepadding:10px;display:inline-block;> a onclickcalApply() hrefjavascript:; classelementor-button-link elementor-button elementor-size-sm elementor-animation-grow styletext-decoration: none;>Apply/a>/div>div classelementor-widget-button stylepadding:10px;display:inline-block;> a onclickcalCancel() hrefjavascript:; classelementor-button-link elementor-button elementor-size-sm elementor-animation-grow simpleCart_cancel styletext-decoration: none;>Cancel/a>/div>/div>div idcartDateRange classioDateRange onclickcalSetDateRange(1) styledisplay:none;>/div>div classchangeDateLinkWrapper elementor-widget-button>div idchangeDateLink onclickcalSetDateRange(1) classelementor-button elementor-animation-grow>Change Date/div>/div>/div>div idcartPartyBuilderEmailContainer styledisplay:none;text-align:center>p>Provide an email address here to recieve our free party planner!/p> input typetext idcartPartyBuilderEmailInput>div classelementor-widget-button styledisplay:inline-block;> a onclickio_party_planner_email_submit() hrefjavascript:; classelementor-button-link elementor-button elementor-size-sm stylepadding: 6px 15px;text-decoration: none;>Go/a>/div>div idcartPartyBuilderEmailWarning styledisplay:none>Pleave provide a valid email address./div> br>br>/div>div idcartCustomMessage styledisplay:none;text-align:center>/div>div idcartWarning classclearfix>/div>div iddeliveryMethodWarning classclearfix>Some items are not available for the selected delivery method./div>div idcartData classclearfix>div classsimpleCart_items>/div>/div>div classcartSubtotalBox> Subtotal (estimate):div idcartSubtotal>/div>/div>div classcheckDeliveryCartContainer>div idcheckDeliveryMessage classcartDeliverytotalBox>a classcartLink hrefjavascript:; onClickshowAddressEntry(true)>Check Delivery/a>/div>div iddeliverSubtotalContainer classcartDeliverytotalBox> Delivery Fee (span>a classcartLink hrefjavascript:; onClickshowAddressEntry(true)>Change Address/a>/span>):div iddeliverySubtotal>/div>/div>/div>div idcartCheckoutButton classclearfix>div classelementor-widget-button> a hrefjavascript:cartHide(); classsimpleCart_continue elementor-button elementor-size-sm elementor-animation-grow io_button>Continue Shopping/a> a hrefjavascript:; classsimpleCart_checkout elementor-button elementor-size-sm elementor-animation-grow io_button>Checkout/a>/div>div idcart-carousel-container styledisplay:none> label> Some items you may be interested in: /label> br>div classcart-carousel>/div>/div>div classioLink>a hrefhttps://www.inflatableoffice.com target_blank>powered by io/a>/div>/div>/div> script>/* configurable globals */ var start_default 11:00 am; if(io_default_start_time ! ) start_default io_default_start_time; var end_default 3:00 pm; if(io_default_end_time ! ) end_default io_default_end_time; if(io_user_currency){ var currency io_user_currency; } else{ var currency USD; } if(io_user_country){ var country io_user_country; } else{ var country US; } var timeFormat g:i a; if(io_cart_time_format ! ) timeFormat io_cart_time_format; var dateFormat m/d/yy; if(io_cart_date_format ! ) dateFormat io_cart_date_format; var restrictTimes false; if(io_restrict_times on) restrictTimes true; var restrictTimeStart start_default; if(io_restrict_time_start ! ) restrictTimeStart io_restrict_time_start; var restrictTimeEnd end_default; if(io_restrict_time_end ! ) restrictTimeEnd io_restrict_time_end; var multi_day true; if(io_multidayquote off || io_cartdayselect Single Day) multi_day false; var in_cart_upsell false; if(io_incartupsell on) in_cart_upsell true; var io_distance_charge false; if(io_distancecharge on) io_distance_charge true; /* other globals */ var pallet_color1 ; /* set in onready */ /* track the date start/end of calendar clicking */ var click_count 0; /* for configuring upsell carosel in cart */ var cart_carousel_set false; /* for checking when we remove an item from the cart */ var last_remove 0; var last_upsell_call 0; /* for buffering cart qty changes checkAvail calls for qty change only */ var last_checkAvail_call 0; /*var start_default 11:00; var end_default 15:00; var currency EUR; var timeFormat G:i; var dateFormat d/m/yy;*/ /* For weekday weekend pricing */ var use_weekday_weekend false; if(io_weekEndPrice on) use_weekday_weekend true; /* Accessory and Upsell Prices */ var show_accessory_price false; if(io_accessory_price on) show_accessory_price true; var show_upsell_price false; if(io_upsell_price on) show_upsell_price true; /*editor-fold defaultstatecollapsed descOn Ready>*/ jQuery(document).ready(function () { pallet_color1 var( --e-global-color-accent,green ); if(pallet_color1rgba(0, 0, 0, 0) || pallet_color1rgb(255, 255, 255)) pallet_color1rgb(25, 147, 35); /*editor-fold defaultstatecollapsed descSimpleCart Init>*/ simpleCart({ currency: currency, cartColumns: { view: image, attr: image, label: Image }, { attr: name, label: Name }, { attr: encoded, label: false }, { attr: rentalid, label: false }, { attr: availability, label: false }, { view: decrement, label: false, text: i classfas far fa-minus-square stylecolor: + pallet_color1 + >/i> }, { view: calculate_area, label: false }, { view:input, attr:quantity }, { attr: qtyincrement, label: false }, { attr: inputtype, label: false }, { attr: qtytype, label: false }, { attr: vendorid, label: false }, { view: increment, label: false, text: i classfas far fa-plus-square stylecolor: + pallet_color1 + >/i> }, { attr: price, label: Price, view: currency }, { view: remove, label: false, text: i classfas fa-trash stylecolor: + pallet_color1 + >/i> }, { attr: total, label: SubTotal, view: currency }, { attr: timeslots, label: false }, { attr: timeslots-orig, label: false }, { attr: href, label: false }, { attr: linkqty, label: false }, { attr: acc_dd_parent_limit, label: false } , checkout: { type: SendForm, method: GET, url: io_wp_local_path+/io_quoteform/, extra_data: { /* name: decodeURIComponent(Rocky Mountain Roll.replace(/+/gi, )), */ clear_rentals: 1, selected_only: 1, wp_checkout: 1, startdate: , enddate: , starttime: , endtime: , io_custguid: } } }); simpleCart.bind(update, cart_onUpdate); simpleCart.bind(beforeSave, cart_hideTimepickerWrapper); simpleCart.bind(beforeRemove, cart_beforeRemove); simpleCart.bind(afterRemove, cart_afterRemove); simpleCart.bind(afterQtyChange, cart_afterQtyChange); simpleCart.bind(beforeCheckout, cart_beforeCheckout); simpleCart.bind(afterAdd, cart_afterAdd); simpleCart.bind(beforeAdd, cart_beforeAdd); /*/editor-fold>*/ /* showAvail(); */ let io_star_pic document.querySelector(#io_star_pic); if (io_star_pic ! null) { let io_star_src io_star_pic.src; if (io_star_src.indexOf(0star) > -1 || io_star_src.indexOf(1star) > -1 || io_star_src.indexOf(2star) > -1 || io_star_src.indexOf(3star) > -1) { io_star_pic.style.display none; } } /*editor-fold descBuild Thumb Images>*/ /* build multiple thumb images */ let img_container document.querySelector(.io_image_thumbbox); let page_picbox document.querySelector(.io_product_picbox); if (typeof images_arr ! undefined){ /* Clear noopeners to rebuild */ let no_openers document.querySelectorAll(id^io_img_big); for(let n of no_openers){ n.parentElement.removeChild(n); } img_container.innerHTML ; for (key in images_arr) { /* build and add the noopener */ img_noopener_ele document.createElement(a); img_noopener_ele.rel img_group noopener; img_noopener_ele.href images_arrkeyrentalimage_imagelocbig; img_noopener_ele.id io_img_big+(parseInt(key, 10)+1); page_picbox.appendChild(img_noopener_ele); /* build and add the thumb image */ img_thumb_ele document.createElement(img); img_thumb_ele.className io_image_thumb skip-lazy; img_thumb_ele.title rental_name_template; img_thumb_ele.src images_arrkeyrentalimage_imageloc; img_thumb_ele.alt alt_text_template; img_thumb_ele.id io_img_thumb+(parseInt(key, 10)+1); img_thumb_ele.onclick function() { updateMainPic(this) }; img_container.appendChild(img_thumb_ele); } } /* Test For Broken Images */ let img_box document.querySelectorAll(.io_image_thumb); for (let i of img_box) { let io_img_src i.src; if(io_img_src!null) io_img_src io_img_src.toLowerCase(); let io_img_datasrc i.getAttribute(data-src); if(io_img_datasrcnull){ io_img_datasrc ; }else{ io_img_datasrc io_img_datasrc.toLowerCase(); } if ((io_img_src.indexOf(io_noimage.png) > 0 || io_img_datasrc.indexOf(io_noimage.png) > 0) || (io_img_src.indexOf(.jpg) -1 && io_img_src.indexOf(.jpe) -1 && io_img_src.indexOf(.png) -1 && io_img_src.indexOf(.gif) -1 && io_img_src.indexOf(.tif) -1 && io_img_src.indexOf(.webp) -1)){ i.style.display none; } } /* hide thumb if only 1 */ let img2 document.querySelector(#io_img_thumb2); let img1 document.querySelector(#io_img_thumb1); if(img2 null && img1 ! null){ document.querySelector(#io_img_thumb1).style.display none; } /*/editor-fold>*/ /*editor-fold descSet up Accessories>*/ /* Add Add To Cart Buttons */ let button_add document.querySelector(#bookNowBtn); var main_id 0; if(jQuery(.io_product_container .item_rentalid)){ main_id jQuery(.io_product_container .item_rentalid).first().text(); } /* if main item is dd but not pkg (linen code) */ if(jQuery(.io_acc_accessorydd).text()1 && jQuery(.io_acc_ispackage).text()!1){ /* if order is defined, then reorder here. */ var acc_cls jQuery(.io_product_accessories) acc_cls.hide(); let pkg document.querySelector(.io_product_acc_pkg); if(pkgundefined){ pkg document.createElement(div); pkg.classList.add(io_product_acc_pkg); pkg.style.textAlign center; acc_cls.after(pkg); } for (let key, value of acc_obj_relate) { elem getAccElem(key,main_id); if(elem){ btn makeAccBtn(elem,main_id); pkg.append(btn); } } let line document.createElement(div); line.innerHTML br>; pkg.append(line.cloneNode(true)); for (let key, value of acc_obj_relate) { for (key2 in acc_obj_relate.get(key)) { let id acc_obj_relate.get(key)key2; if(typeof id object){ /* 3rd level */ pkg.append(line.cloneNode(true)); for (key3 in acc_obj_relate.get(key)key2) { let id acc_obj_relate.get(key)key2key3; if(typeof id ! object){ elem getAccElem(id,key2); if(elem){ btn makeAccBtn(elem,key2); btn.style.display none; pkg.append(btn); } } } }else{ elem getAccElem(id,key); if(elem){ btn makeAccBtn(elem,key); btn.style.display none; pkg.append(btn); } } } } }else { let access_array document.querySelectorAll(.io_acc_li); let count 0; for (let i of access_array) { let path i.id.replace(io_acc_,); count++; let newButton button_add.cloneNode(true); newButton.id button_add.id + count; newButton.classList.remove(elementor-animation-grow); newButton.classList.add(elementor-animation-shrink); let path_arr path.split(_); let pid parseInt(path_arr0); let this_id parseInt(path_arr1); if(path_arr.length1) pid0; if(jQuery(#io_acc_accessorydd_+path).first().text()1){ /* display different to provide choices in dd */ main_id pid; }else{ /* hide accessories inside a pkg when under an accessory choice item until clicked */ if(jQuery(#io_acc_accessorydd_+main_id+_+pid).first().text()1){ }else{ /* jpa - not finished/tested yet */ /*jQuery(#io_acc_+path).hide();*/ } /* Fix broken images for accessories. */ let img_box document.querySelectorAll(.io_acc_li_img_thumb); let firstImg true; let lastAcc ; for (let i of img_box) { if(lastAcc) lastAcc i.id; if(lastAcc!i.id){ lastAcc i.id; firstImg true; } let io_img_src i.src; if(io_img_src!null) io_img_src io_img_src.toLowerCase(); let io_img_datasrc i.getAttribute(data-src); if(io_img_datasrcnull){ io_img_datasrc ; }else{ io_img_datasrc io_img_datasrc.toLowerCase(); } if ((io_img_src.indexOf(io_noimage.png) > 0 || io_img_datasrc.indexOf(io_noimage.png) > 0) || (io_img_src.indexOf(.jpg) -1 && io_img_src.indexOf(.jpe) -1 && io_img_src.indexOf(.png) -1 && io_img_src.indexOf(.gif) -1 && io_img_src.indexOf(.tif) -1 && io_img_src.indexOf(.webp) -1)){ i.style.display none; }else if(!firstImg && jQuery(#io_acc_accessorydd_+main_id+_+pid).first().text()!1){ i.style.display none; } firstImg false; } if(jQuery(#io_acc_accessorydd_+main_id+_+pid).first().text()1){ /* Make the accessory category look more mike a label. */ jQuery(#iothumb_+main_id+_+pid).hide(); jQuery(#io_acc_+main_id+_+pid).css(border, none); jQuery(#io_acc_+main_id+_+pid).css(width, 100%); jQuery(#io_acc_+main_id+_+pid).css(margin-bottom, 5vh); jQuery(#io_acc_+main_id+_+pid).css(box-shadow, none); jQuery(#io_acc_shortname_+pid).css(font-weight, bold); jQuery(#io_acc_shortname_+pid).css(position, absolute); /* Make this auto selected to fix an issue where we can not add to cart if this item is a child of another hidden accessory on screen */ jQuery(#io_acc_+main_id+_+pid).prop(selected, true); accessory_cat_text jQuery(#io_acc_shortname_+pid).first().text(); /* This is necessary to make sure there are not multiple colons. */ if(!accessory_cat_text.includes(:)){ jQuery(#io_acc_shortname_+pid).text(accessory_cat_text+:); } /* Remove Href so we do not open images on click for dd accessories. */ jQuery(id^io_acc_imgbig_+pid+_).removeAttr(href); /* Get the accessory limit for this set of acessories, then set up click events. */ /* Unbind is used to prevent cascading calls. */ accLmt parseInt(jQuery(#io_acc_accessorylimit_+main_id+_+pid).prop(textContent)); jQuery(id^io_acc_+pid+_).unbind(click).click({pid: pid, accLmt: accLmt}, accDDClicked); jQuery(id^io_acc_+pid+_).css(cursor, pointer); /* Set up the slected property of all children accessories. Default to false. */ jQuery(id^io_acc_+pid+_).prop(selected, false); /* We need to add a hidden button so we can simulate a click on add_item for the cart. */ let newButton button_add.cloneNode(true); newButton.id button_add.id + count; newButton.classList.remove(elementor-animation-grow); newButton.setAttribute(style, display: none !important); i.appendChild(newButton); }else{ let button_wrap document.createElement(div); button_wrap.classList.add(elementor-widget-button); button_wrap.classList.add(io_access_button); button_wrap.appendChild(newButton); let req false; if(jQuery(#io_acc_required_+path).first().text()>0) req true; if(!req){ i.appendChild(button_wrap); }else{ var textnode document.createTextNode(Included); i.appendChild(textnode); } } } } } /*/editor-fold>*/ let upsell_array document.querySelectorAll(.io_upsell_li); count 0; for (let i of upsell_array) { count++; let newButton button_add.cloneNode(true); newButton.id button_add.id + count; newButton.classList.remove(elementor-animation-grow); newButton.classList.add(elementor-animation-shrink); let button_wrap document.createElement(div); button_wrap.classList.add(elementor-widget-button); button_wrap.classList.add(io_upsell_button); button_wrap.appendChild(newButton); i.appendChild(button_wrap); } if(io_deliverymethod on && jQuery(.calDeliveryMethodLabel).length0){ let delivery_method_container jQuery(#ioDeliveryMethodContainer).first(); delivery_method_container.append(span classcalDeliveryMethodLabel>Select Delivery Method/span>); let delivery_method_html select classioDeliveryMethods onchangedeliveryMethodSelected()>; let delivery_methods Object.keys(io_delivery_methods) for(const index in delivery_methods){ if(!io_delivery_methods_restrict){ delivery_method_html + option value+delivery_methodsindex+>+delivery_methodsindex+/option>; if(index 0 && !getCookie(io_delivery_method)) setCookie(io_delivery_method, delivery_methodsindex, 14); }else if( !io_delivery_methods_restrict.includes( io_delivery_methods delivery_methodsindex id ) ){ delivery_method_html + option value+delivery_methodsindex+>+delivery_methodsindex+/option>; if(index 0 && !getCookie(io_delivery_method)) setCookie(io_delivery_method, delivery_methodsindex, 14); } } delivery_method_container.append(delivery_method_html); delivery_method_container.show(); if(getCookie(io_delivery_method)){ jQuery(.ioDeliveryMethods).val(getCookie(io_delivery_method)); } }else{ setCookie(io_delivery_method, , 14); } let allow_same_day 1; if(io_cartAllowSameDay on){ allow_same_day 0; } /*editor-fold descCart Calandar and Time Settings Setup>*/ //var fullmonth_array jQuery.datepicker.regionalen.monthNames; jQuery(#cartCalendar).datepicker({ changeMonth: true, changeYear: true, //monthNamesShort : fullmonth_array, dateFormat: dateFormat, rangeSelect: true, numberOfMonths: 1, stepMonths: 1, prevText: Previous Months, nextText: Next Months >>, speed: fast, showOn: both, onChangeMonthYear: cal_onChangeMonthYear, onSelect: cal_onSelect, buttonText: Calendar, minDate: allow_same_day, firstDay: 0 }); jQuery(.ui-datepicker-trigger).hide(); if(restrictTimes){ jQuery(.timepicker).timepicker({ startTime: new Date(0, 0, 10, 0, 0, 0), endTime: new Date(0, 0, 0, 20, 0, 0, 0), minTime:restrictTimeStart, maxTime:restrictTimeEnd, /*show24Hours: $show24Hours,*/ timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }).keypress(function(e){ e.preventDefault(); }); } else{ jQuery(.timepicker).timepicker({ startTime: new Date(0, 0, 10, 0, 0, 0), endTime: new Date(0, 0, 0, 20, 0, 0, 0), /*show24Hours: $show24Hours,*/ timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } /* if we have company wide timeslots, alter time select in cart. Do this only if we are set to single day only */ if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ let time_select_container jQuery(#ioCartTimeSelectContainer).first(); time_select_container.empty(); let selected_date_html span stylemargin-right: 5px !important classcalTimeLabel>Date/span>i classfas fa-calendar-check>/i>input stylemargin-left: 5px !important typetext namedateStart classioCartDateInput readonlyreadonly />input styledisplay: none !important typetext namedateEnd classioCartDateInput readonlyreadonly /> time_select_container.append(selected_date_html); time_select_container.append(br>) time_select_container.append(span classcalTimeLabel>Select Timeslot/span>); let timeslot_html select classioCartCompanyTimeslots>; for(i0; iio_company_timeslots.length; ++i){ timeslot_html + io_company_timeslotsi; } timeslot_html + /select> time_select_container.append(timeslot_html); } /* jQuery( .datepicker ).datepicker({dateFormat: m/d/yy,minDate:0}); */ /* jQuery( .datepicker ).val(getCookie(checkDate)); */ jQuery(inputnamedateStart).val(getCookie(dateStart)); jQuery(inputnamedateEnd).val(getCookie(dateEnd)); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day && getCookie(company_timeslot_selected)){ jQuery(.ioCartCompanyTimeslots).val(getCookie(company_timeslot_selected)); // Set it on the quote page too. jQuery(.controls selectnametimeslot).val(getCookie(company_timeslot_selected)); } else{ jQuery(inputnametimeStart).val(getCookie(timeStart)); jQuery(inputnametimeEnd).val(getCookie(timeEnd)); } if (jQuery(inputnamedateEnd).val() ! ) { setCalBackground(); jQuery(#cartSubtotal).html(simpleCart.toCurrency(simpleCart.total())); if(getCookie(dateApplied) true) calCancel(); else { jQuery(inputnamedateStart).val(getCookie(dateStart)); jQuery(inputnamedateEnd).val(getCookie(dateEnd)); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day && getCookie(company_timeslot_selected)){ jQuery(.ioCartCompanyTimeslots).val(getCookie(company_timeslot_selected)); } else{ jQuery(inputnametimeStart).val(getCookie(timeStart)); jQuery(inputnametimeEnd).val(getCookie(timeEnd)); } jQuery(.changeDateLinkWrapper).hide(); } } /*/editor-fold>*/ if ((window.innerWidth > 500 | window.location.href.indexOf(io_) > -1) && window.location.href.indexOf(io_contactform) -1) { jQuery(ahref*httprel*img_group).not(#io_img_big1).fancybox({ transitionIn: none, transitionOut: none, titlePosition: over, cyclic: true, helpers: { title: { type: over } }, beforeShow: function () { this.title (this.title ? + this.title + : ) + Image + (this.index + 1) + of + this.group.length; } }); } else { let imageClick document.querySelector(.io_product_picbox a#single_image); if (imageClick ! undefined || imageClick ! null) { imageClick.addEventListener(click, (e) > { e.preventDefault(); }); } } jQuery(#io-dialog).dialog({ autoOpen: false, resizable: false, modal: true, dialogClass: noTitleStuff, width: 350, open: function () { jQuery(.ui-widget-overlay).bind(click, function () { jQuery(#io-dialog).dialog(close); }) } }); /* change jquery calendar next/prev buttons to fa arrows w/matching site color */ jQuery(#cartCalendar .ui-datepicker-prev).addClass(fas fa-arrow-left).css(color, pallet_color1); jQuery(#cartCalendar .ui-datepicker-next).addClass(fas fa-arrow-right).css(color, pallet_color1); /* hide sections if not set */ if(jQuery(.io_product_circuits_right).first().text()0){jQuery(.io_product_circuits_right,.io_product_circuits_left).hide();} if(jQuery(.io_city_list).html()){jQuery(.io_landingpages).hide();} /* using this instead as it will handle custom ones added */ let io_field_valbox document.querySelector(.io_product_infobox); if (io_field_valbox ! null || io_field_valbox ! undefined) { let io_field_valarr io_field_valbox.querySelectorAll(.io_product_detail_box); for (let i of io_field_valarr) { let check i.querySelector(p:nth-child(2)); if (check ! null && check.innerText ) i.style.display none; } } /* Hide description if there is no description */ desc_box document.querySelector(.io_product_desc) if(desc_box ! null && desc_box.innerText.length 0){ desc_detail_box desc_box.parentElement; desc_detail_box.style.display none; } if(document.querySelector(.io_product_reviewbox)!null){ if (document.querySelector(.io_product_reviewbox).innerText ) { if(document.querySelector(.io_star_rating)!null) document.querySelector(.io_star_rating a).style.display none; } } let rid jQuery(.io_product_container .item_rentalid).first().text(); let regex new RegExp(^io_product_price_.*_ + rid + $); for (const price_index in io_prices){ if(regex.test(io_pricesprice_index)){ use_weekday_weekend false; } } /* hide end date input. */ if(!multi_day){ /* TODO: Need to wait and see if this is necessary. If so needs to be more involved than this. */ /* jQuery(inputnamedateEnd).style(visibility, hidden); */ } /* Call page avail now so we can display live price if its enabled */ setTimeout(checkAvailPageOnly,50); /* Adjust picbox for header heights */ setTimeout(adjustPicBoxForHeader,500); /* Show buttons for distance charge check if the setting is on. Hide or show map button if applicable*/ if(io_distance_charge){ jQuery(.delivery_charge_check_container).show(); jQuery(.calc_price_with_map_container).hide(); jQuery(.checkDeliveryCartContainer).show(); } else { jQuery(.delivery_charge_check_container).hide(); jQuery(.calc_price_with_map_container).hide(); jQuery(.checkDeliveryCartContainer).hide(); } if(io_brandEH){ jQuery(.delivery_charge_check_container).hide(); jQuery(.eh_additional_description).show(); } if(jQuery(.io_product_infobox .item_inputtype).text() Map){ jQuery(.delivery_charge_check_container).hide(); jQuery(.checkDeliveryCartContainer).hide(); jQuery(.calc_price_with_map_container).show(); } /* If we have delivery set in cookie, be sure to show the charge in the cart. */ if(getCookie(deliveryFee) && simpleCart.items().length > 0) { setDeliverySubtotal(getCookie(deliveryFee)); jQuery(#deliverSubtotalContainer).show(); jQuery(#checkDeliveryMessage).hide(); } else{ jQuery(#deliverSubtotalContainer).hide(); } /* moved back here for IO-22561 */ if(simpleCart.items().length > 0){ let headerBookButton jQuery(ahref$io_quoteform/); headerBookButton.addClass(ioCart_link); headerBookButton.attr(href, javascript:;); } jQuery(.cartInfo).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartShow(); }); jQuery(.ioCart,.ioCart_link).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartShow(); }); /* hide if click outside cart */ jQuery(document).mouseup(function(e){ var container jQuery(#cartPopover); var cartButton jQuery(.cartInfo, .ioCart, .ioCart_link); var addButton jQuery(.item_add); var timePicker jQuery(.ui-timepicker-wrapper); if(jQuery(.cartInfo, .ioCart, .ioCart_link).hasClass(open)){ if(!container.is(e.target) && container.has(e.target).length 0 && !cartButton.is(e.target) && cartButton.has(e.target).length 0 && !addButton.is(e.target) && addButton.has(e.target).length 0 && !timePicker.is(e.target) && timePicker.has(e.target).length 0 && !jQuery(.address_entry).is(e.target) && jQuery(.address_entry).has(e.target).length 0){ cartHide(); } } }); if(!getCookie(state) && io_default_state){ setCookie(state, io_default_state, 14); } if(country ! US) { jQuery(#io_cd_state).replaceWith(input idio_cd_state styledisplay: table-cell namestate typetext>/input>); jQuery(#io_cdl_zip_label).text(Postal code); if(country CA){ jQuery(#io_cdl_state_label).text(Province); } else if(country AU){ jQuery(#io_cdl_city_label).text(Suburb); } } else{ jQuery(#io_cd_zip).attr(type, number); } /* Set up on change events to stop end timepickers from allowing users to pick times before start time */ setTimeout(restrictEndTimepickers, 500); /* If we have a custom message in cart, display it. */ if(io_cart_message){ show_cart_message(); } /* code for day select in cart */ if(io_cartdayselect dropdown_options && io_multidayquote on){ saved_whatday getCookie(io_whatday); if(saved_whatday) jQuery(#whatday).val(saved_whatday); endDisplay(); setCalBackground(); } else{ jQuery(#div-overnight).hide(); jQuery(#whatday).val(); } checkRestrictedDeliveries() /* If we are using the information gathering tool, we do not want to show this message. */ if( live_pricing_is_on() && io_info_required off ){ if(!event_time_set() && io_always_display_live_price ! on){ jQuery(#item_live_price_time_set_message).show(); }else{ jQuery(#item_live_price_time_set_message).hide(); } } /* Check if information gathering header exists. If it does, Remove set even button and add some classes on onclicks */ if(jQuery(#ioInfoHeader).length){ remove_set_event_buttton(); add_classes_and_onClicks(); header_increment_step(); } jQuery(.io_acc_li).each(function() { if(jQuery(this).find(.item_required).first().text() 1 && jQuery(this).find(.item_accessorydd).first().text() 1){ jQuery(jQuery(jQuery(this).parent()).prev()).appendTo(.io_product_requiredDD_accessories); jQuery(jQuery(this).parent()).appendTo(.io_product_requiredDD_accessories); jQuery(.io_product_requiredDD_accessories).show(); } }); if(jQuery(.io_product_accessories .io_acc_li).length 0) jQuery(.io_product_accessories).hide(); /* Hide the cart add button for items with required accessories on category page */ jQuery(.item_hasRequiredAcc).each(function() { if (this.innerText 1) { let rental_id_element jQuery(this).parent().find(.item_rentalid)0; let addCartButton jQuery(.io_item2_list_inner .add_cart_ + rental_id_element.innerText).find(.io_button); addCartButton.removeClass(item_add); addCartButton.html(i classfas fa-arrow-right>/i>); let itemHref jQuery(this).parent().find(.item_href).text(); addCartButton.attr(href, itemHref); } }); /* If they have same day selection allowed, need to update checkout page datepicker on delay to make sure it works */ if(io_cartAllowSameDay on){ setTimeout(allow_same_day_select_on_checkout, 500); } if(io_info_required_data && io_info_required on){ let io_required_data io_info_required_data; jQuery(#ioAdditonalInformationContainer).show(); for (const data, value of Object.entries(io_required_data)) { if(value 1){ jQuery(#io_info_modal_+data).css(display, inline-flex) jQuery(#io_im_+data).val(getCookie(data)); } } show_or_hide_required_info_message() } if(jQuery(.bootstrap-timepicker).length 0) { if (!/Mobi|Android/i.test(navigator.userAgent)) { jQuery(#cartPopover).scroll(function () { jQuery(nametimeStart).timepicker(hide); jQuery(nametimeEnd).timepicker(hide); }); jQuery(window).scroll(function () { jQuery(#cartPopover nametimeStart).timepicker(hide); jQuery(#cartPopover nametimeEnd).timepicker(hide); }); } } if(jQuery(.io_product_infobox .item_inputtype).text() Map){ simpleCart.items().forEach(function (item, index){ if(item.get(rentalid) jQuery(.io_product_infobox .item_rentalid).text()){ if(item.get(quantity) > 1){ let units; if(jQuery(.io_product_infobox .item_qtytype).text() Area){ units sq meters if(country US) units sq feet }else if(jQuery(.io_product_infobox .item_qtytype).text() Perimeter){ units meters if(country US) units feet } set_price_on_item_page(units, item.get(quantity)); } } }); } /* IO-21808 */ jQuery(.io_product_price_box).each(function() { let classes jQuery(this).attr(class); jQuery(this).attr(class, classes.replace(:, _)); }); /* Set time instructions (IO-21496) */ set_cart_time_instructions(); if(io_accessory_select on){ if(jQuery(.io_product_acc_pkg).children().length > 0){ let main_rental_id jQuery(.item_rentalid).text(); let sel_div jQuery(div class\io_product_acc_pkg\ style\display:flex; margin-top:10px;\>/div>); let sel jQuery(select class\io_product_acc_pkg\ onchange\accOnClick(this)\ />); sel.append(option value\\ selected\selected\ style\display:none\ disabled>Select one../option>) jQuery(id^io_acc_shortname_+main_rental_id+).each(function(){ sel.append(option value+this.id+>+this.innerHTML+/option>) if(this.id.split(_).length > 4){ let split_id this.id.split(_); let option_rental_id split_idsplit_id.length - 1; let sel2 jQuery(select id\io_product_acc_pkg_sel_+option_rental_id+\ style\display:none; margin-left:5px;\ onchange\accOnClick(this)\ />); sel2.append(option value\\ selected\selected\ style\display:none\ disabled>Select one../option>) jQuery(id^io_acc_shortname_+option_rental_id+_).each(function(){ sel2.append(option value+this.id+>+this.innerHTML+/option>) }); sel_div.append(sel2); } }); sel_div.prepend(sel); jQuery(.io_product_acc_pkg).replaceWith(sel_div); } } if(io_cart_party_planner_email on && io_cart_party_planner_destination){ jQuery(#cartPartyBuilderEmailContainer).show() if(getCookie(email)){ jQuery(#cartPartyBuilderEmailInput).val(getCookie(email)); } } if(io_brand PW){ jQuery(.io_product_price_box).attr(style, display: none !important;); jQuery(.io_product_price_sqfoot).attr(style, display: grid !important;); } setTimeout(simpleCart.init, 100); if(io_hide_zero 1){ jQuery(.io_product_price_top_left).each(function (){ if(Number(this.innerText.replace(/^0-9.-+/g,)) 0){ jQuery(this).parent().attr(style,display:none !important); } }); jQuery(.io_product_price_left).each(function (){ if(Number(this.innerText.replace(/^0-9.-+/g,)) 0){ jQuery(this).parent().attr(style,display:none !important); } }); } }); /*end of on-ready*/ /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descHelper Functions>*/ function io_party_planner_email_submit(){ let valid_regex /^((^>()\\\.,;:\s@+(\.^>()\\\.,;:\s@+)*)|.(.+))@((\0-9{1,3}\.0-9{1,3}\.0-9{1,3}\.0-9{1,3}\)|((a-zA-Z\-0-9+\.)+a-zA-Z{2,}))$/; let email jQuery(#cartPartyBuilderEmailInput).val(); if(email){ if(email.match(valid_regex)){ setCookie(email, email, 14); window.open(io_cart_party_planner_destination, _blank).focus(); }else{ jQuery(#cartPartyBuilderEmailWarning).show(); } }else{ jQuery(#cartPartyBuilderEmailWarning).show(); } } function rid_in_batch(rid, batch_ids){ let result batch_ids.filter(function(batch){ if(batch.includes(this)) return true; }, rid); return result } function set_cart_time_instructions(){ /* Making it clearer that customers need to set the time in order to see pricing and availability. */ let instructions_container jQuery(p id\ioCartTimeInstructions\>/p>); let instructions ; if(multi_day){ instructions + Select the event date or date range using the calendar; }else{ instructions + Select the event date using the calendar; } instructions + .; instructions_container.text(instructions); jQuery(#cartCalendar).append(instructions_container); } function live_pricing_is_on(){ /* Checks to see if live pricing is on. Assumes it is on unless one of the following conditions: The setting Hide Live Price is off. The setting Show Weekend/Weekday Pricing is off. Delivery method pricing is enabled by default. We are on an item page that uses delivery method pricing. */ if(io_hide_live_prices ! 1 || io_weekEndPrice ! on || io_delivery_pricesdefault.length ! 0 || jQuery(.io_product_infobox .item_rentalid).innerText in io_delivery_pricesoverride || io_custom_pricesdefault.length ! 0 || jQuery(.io_product_infobox .item_rentalid).innerText in io_delivery_pricesoverride){ return false; } return true; } function allow_same_day_select_on_checkout(){ jQuery(.jquery-datepicker).datepicker(option, minDate, 0); } function show_or_hide_required_info_message(){ if(io_info_required on){ if(!all_info_provided()){ jQuery(#io_all_prices).hide(); jQuery(#item_additonal_info_open_message).show(); }else{ jQuery(#io_all_prices).show(); jQuery(#item_additonal_info_open_message).hide(); } } } function all_info_provided(){ /* This is used for when the Hide all pricing on page until information is provided setting is on price settings. */ let all_data_provided true; let io_required_data io_info_required_data; for (const data, value of Object.entries(io_required_data)) { if(value 1){ if(!getCookie(data)){ all_data_provided false } } } if(live_pricing_is_on() && !event_time_set()) { all_data_provided false; } return all_data_provided; } function event_time_set(){ if(getCookie(timeStart) && getCookie(timeEnd) && getCookie(dateStart) && getCookie(dateEnd)){ return true; } else{ return false } } function show_cart_message(){ message_container jQuery(#cartCustomMessage); message_container.html(io_cart_message); message_container.show(); } function deliveryMethodSelected(){ setCookie(io_delivery_method, jQuery(.ioDeliveryMethods option:selected).text(), 14); checkRestrictedDeliveries(); } function adjustPicBoxForHeader(){ /* For some reason its hard to get css with querySelector so we use jQuery to get the picbox. */ pic_box jQuery(.io_product_picbox); io_header document.querySelector(.io_header); if(pic_box ! null && pic_box.css(position) sticky){ if(io_header ! null){ header_height io_header.offsetHeight; pic_box.css(top, (10+header_height).toString()+px); } else{ possible_headers document.querySelectorAll(header,section) possible_headers.forEach((ele) >{ if(ele.style.top 0px && (ele.style.position fixed || ele.style.position sticky)){ header ele; header_height header.offsetHeight; pic_box.css(top, (10+header_height).toString()+px); } }); } } } function cart_times_all_set(){ if(jQuery(#ioCartTimeSelectContainer namedateStart).val() ){ return false; } if(io_hidetimes off || io_hidetimes ){ if(jQuery(#ioCartTimeSelectContainer nametimeStart).val() ){ return false; } if(jQuery(#ioCartTimeSelectContainer nametimeEnd).val() ){ return false; } } return true; } function checkRestrictedDeliveries(){ let items simpleCart.items() let restrictions_found false; for(i in items){ let rid itemsi.get(rentalid); if(typeof jQuery(.ioDeliveryMethods).val() ! undefined){ if(io_delivery_methodsjQuery(.ioDeliveryMethods).val()restricted.includes(rid)){ jQuery(#deliveryMethodWarning).show(); restrictions_found true; } } } if(!restrictions_found){ jQuery(#deliveryMethodWarning).hide(); } } function display_cart_warning(item){ let cart_warning_container jQuery(#cartWarning); // Check if an event date if not we should tell them to set it. event_times getAvailTimes(); if(!event_times0 || !event_times1){ cart_warning_container.text(Please set the date and time for your event above.); cart_warning_container.show() return false; } let item_name item.get(name); let item_timeslots item.get(timeslots); let timeslot_name getTimeslotName(item_timeslots); let stop_loop false; if(item_timeslots){ if(jQuery(item_timeslots).nodeName SELECT){ /* NOTE: It should not be possible for timeslots to be empty. But in the event they somehow are, we should have this here. */ /* timeslots */ var timeslot_sel_range jQuery(.item-timeslots name\+timeslot_name+\ option:selected).val(); if(typeof timeslot_sel_range ! undefined){ var start_time, end_time break_timeslot_sel_range(timeslot_sel_range); } }else{ /* timepickers */ let start_timepicker, end_timepicker get_cart_timepickers(timeslot_name); var start_time start_timepicker.value; var end_time end_timepicker.value; } if(!start_time || !end_time){ cart_warning_container.text(Please select a time range for the following item: + item_name); cart_warning_container.show() stop_loop true; } } else{ cart_warning_container.text(Some items are not available on this date.); cart_warning_container.show() } return stop_loop } function setCookie(cname, cvalue, exdays) { var d new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires expires + d.toUTCString(); document.cookie cname + + cvalue + ; + expires + ;path/; } function getCookie(cname) { var name cname + ; var ca document.cookie.split(;); for (var i 0; i ca.length; i++) { var c cai; while (c.charAt(0) ) c c.substring(1); if (c.indexOf(name) 0) return c.substring(name.length, c.length); } return ; } function break_timeslot_sel_range(timeslot_sel_range){ /* Takes a time range given by selected timeslot and gets the start and end time removing meridiem.*/ timeslot_sel_arr timeslot_sel_range.split( - ); var start_time timeslot_sel_arr0.replace(am, am).replace(pm, pm).replace( , ); var end_time timeslot_sel_arr1.replace(am, am).replace(pm, pm).replace( , ); return Array(start_time, end_time); } function getAvailTimes(){ /* Commonly used helper function. Accomplishes two things: Returns an array containing start_date, start_time, and event duration. Sets cookies for start and end date, and start and end time. Uses the inputs available in the cart if they are filled out, so dateStart, dateEnd, timeStart, and timeEnd. If timeslots are being used in cart it chooses the selected timeslot and breaks it on - and gets the start ane end time from that. */ let start_date jQuery(inputnamedateStart).val(); let end_date jQuery(inputnamedateEnd).val(); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ let cart_company_timeslot_selected jQuery(.ioCartCompanyTimeslots option:selected).first().val(); if(cart_company_timeslot_selected){ setCookie(company_timeslot_selected, cart_company_timeslot_selected, 14); cart_company_timeslot_selected cart_company_timeslot_selected.split(-); var start_time cart_company_timeslot_selected0.trim(); var end_time cart_company_timeslot_selected1.trim(); } } else { var start_time jQuery(inputnametimeStart).val(); var end_time jQuery(inputnametimeEnd).val(); } if (start_date.length 0) { start_date getCookie(dateStart); end_date getCookie(dateEnd); start_time getCookie(timeStart); end_time getCookie(timeEnd); } if(start_time.length 0){ start_time start_default; } if(end_time.length 0){ end_time end_default; } /* no past dates */ if(start_date.length ! 0 && convertDateStringtoDateObject(start_date, start_time) new Date()){ start_date; end_date; } /* setCookie(checkDate, start_date, 14); */ setCookie(dateStart, start_date, 14); setCookie(dateEnd, end_date, 14); setCookie(timeStart, start_time, 14); setCookie(timeEnd, end_time, 14); /* If we are using the information gathering tool, we do not want to show this message.*/ if( live_pricing_is_on() && io_info_required off ){ if(!event_time_set() && io_always_display_live_price ! on){ jQuery(#item_live_price_time_set_message).show(); }else{ jQuery(#item_live_price_time_set_message).hide(); } } var newDate1 convertDateStringtoDateObject(start_date, start_time); var newDate2 convertDateStringtoDateObject(end_date, end_time); let time_duration ((newDate2 - newDate1) / 3600) / 1000; return start_date,start_time,time_duration; } function getAllRentalIDsFromCart(){ let rental_ids ; jQuery(id^cartItem_).each(function(){ children this.children for(let i 0; i children.length; ++i){ if(childreni.className item-rentalid) { rental_ids + childreni.innerText + |; break; } } }); return rental_ids } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descInfo Header Functions>*/ function init_date_timepicker_for_info_header(){ jQuery(.ioInfoDatepicker).datepicker({ changeMonth: true, changeYear: true, dateFormat: dateFormat, rangeSelect: true, numberOfMonths: 1, stepMonths: 1, speed: fast, showOn: both, onChangeMonthYear: cal_onChangeMonthYear, buttonText: Calendar, minDate: 1, firstDay: 0 }); jQuery(#ioHeaderDateStart).datepicker(option, { onSelect: function() { set_info_header_end_date(); saveInfoHeader(); // Add more functions if needed } }); if(restrictTimes){ jQuery(.ioInfoTimepicker).timepicker({ startTime: new Date(0, 0, 10, 0, 0, 0), endTime: new Date(0, 0, 0, 20, 0, 0, 0), minTime:restrictTimeStart, maxTime:restrictTimeEnd, /*show24Hours: $show24Hours,*/ timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } else{ jQuery(.ioInfoTimepicker).timepicker({ startTime: new Date(0, 0, 10, 0, 0, 0), endTime: new Date(0, 0, 0, 20, 0, 0, 0), /*show24Hours: $show24Hours,*/ timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } setTimeout(setUpTimeRestrictions_infoHeaderTimepickers, 500); } function saveInfoHeader(){ let info_header_start_date jQuery(id$ioHeaderDateStart); let info_header_end_date jQuery(id$ioHeaderDateEnd); let info_header_start_time jQuery(id$ioHeaderTimeStart); let info_header_end_time jQuery(id$ioHeaderTimeEnd); let info_header_address jQuery(id$ioHeaderAddress); let info_header_city jQuery(id$ioHeaderCity); let info_header_state jQuery(id$ioHeaderState); let info_header_zip jQuery(id$ioHeaderZipCode); let info_header_phone jQuery(id$ioHeaderPhone); let info_header_email jQuery(id$ioHeaderEmail); if(info_header_start_time.val()) setCookie(timeStart, info_header_start_time.val(), 14); if(info_header_end_time.val()) setCookie(timeEnd, info_header_end_time.val(), 14); if(info_header_start_date.val()) setCookie(dateStart, info_header_start_date.val(), 14); if(info_header_end_date.val()) setCookie(dateEnd, info_header_end_date.val(), 14); if(info_header_address.val()) setCookie(address, info_header_address.val(), 14); if(info_header_city.val()) setCookie(city, info_header_city.val(), 14); if(info_header_state.val()) setCookie(state, info_header_state.val(), 14); if(info_header_zip.val()) setCookie(zip, info_header_zip.val(), 14); if(info_header_phone.val()) setCookie(phone, info_header_phone.val(), 14); if(info_header_email.val()) setCookie(email, info_header_email.val(), 14); /* Set information in the cart. */ calCancel(); header_increment_step(); /* Stop form from doing anything else for elementor */ // jpa - still allow, turn off actions in form if wanted. to turn off io lead submission use the plugin settings //event.preventDefault(); //event.stopPropagation(); return true; } function set_info_header_values(){ let info_header_start_date jQuery(id$ioHeaderDateStart); let info_header_end_date jQuery(id$ioHeaderDateEnd); let info_header_start_time jQuery(id$ioHeaderTimeStart); let info_header_end_time jQuery(id$ioHeaderTimeEnd); let info_header_street jQuery(id$ioHeaderAddress); let info_header_city jQuery(id$ioHeaderCity); let info_header_state jQuery(id$ioHeaderState); let info_header_zip jQuery(id$ioHeaderZipCode); let info_header_phone jQuery(id$ioHeaderPhone); let info_header_email jQuery(id$ioHeaderEmail); if(getCookie(timeStart)) info_header_start_time.val(getCookie(timeStart)); if(getCookie(timeEnd)) info_header_end_time.val(getCookie(timeEnd)); if(getCookie(dateStart)) info_header_start_date.val(getCookie(dateStart)); if(getCookie(dateEnd)) info_header_end_date.val(getCookie(dateEnd)); if(getCookie(address)) info_header_street.val(getCookie(address)); if(getCookie(city)) info_header_city.val(getCookie(city)); if(getCookie(state)) info_header_state.val(getCookie(state)); if(getCookie(zip)) info_header_zip.val(getCookie(zip)); if(getCookie(phone)) info_header_phone.val(getCookie(phone)); if(getCookie(email)) info_header_email.val(getCookie(email)); } function add_classes_and_onClicks(){ /* First set up for dates */ let info_header_start_date jQuery(#ioHeaderDateStart); let info_header_end_date jQuery(#ioHeaderDateEnd); info_header_start_date.addClass(ioInfoDatepicker); info_header_end_date.addClass(ioInfoDatepicker); /* Now Timepickers */ let info_header_start_time jQuery(#ioHeaderTimeStart); let info_header_end_time jQuery(#ioHeaderTimeEnd); info_header_start_time.addClass(ioInfoTimepicker); info_header_end_time.addClass(ioInfoTimepicker); /* Add the onClick to the button */ let button jQuery(#ioInfoHeaderSubmit); button.click(saveInfoHeader); button.css(cursor, pointer); /* Init datepicker and timepickers */ init_date_timepicker_for_info_header(); /* Lastly set the values if they are set already */ set_info_header_values(); } function remove_set_event_buttton(){ let set_event_button jQuery(.pageDateRangeWrapper); if(set_event_button.length > 0) set_event_button.hide(); } function set_info_header_end_date(){ if(!jQuery(#ioHeaderDateEnd).val()){ jQuery(#ioHeaderDateEnd).val(jQuery(#ioHeaderDateStart).val()) } jQuery(#ioHeaderDateEnd).datepicker(option, { minDate: new Date(jQuery(#ioHeaderDateStart).val()) }); } function header_increment_step(){ let active jQuery(.io-step-active); switch(active.attr(id)){ case io-step-1: if (/Mobi|Android/i.test(navigator.userAgent)) { jQuery(#io-step-2,#io-step-3,#io-step-4).hide(); } if(check_header_step_one(active)){ active.removeClass(io-step-active); active.addClass(io-step-done) jQuery(#io-step-2).addClass(io-step-active) header_increment_step(); } break; case io-step-2: if (/Mobi|Android/i.test(navigator.userAgent)) { jQuery(#io-step-2,#io-step-3,#io-step-4).show(); } if(simpleCart.items().length > 0){ active.removeClass(io-step-active); active.addClass(io-step-done) jQuery(#io-step-3).addClass(io-step-active) header_increment_step(); } break; case io-step-3: if (/Mobi|Android/i.test(navigator.userAgent)) { jQuery(#io-step-2,#io-step-3,#io-step-4).show(); } if(document.location.href.indexOf(io_quoteconfirm) > 0){ active.removeClass(io-step-active); active.addClass(io-step-done) jQuery(#io-step-4).addClass(io-step-active) header_increment_step(); } break; case io-step-4: if (/Mobi|Android/i.test(navigator.userAgent)) { jQuery(#io-step-2,#io-step-3,#io-step-4).show(); } break; } } function check_header_step_one(active) { var allInputs active.find(input); for (var i 0; i allInputs.length; i++) { if (jQuery(allInputsi).val() ) { return false; // Return false if any input is empty } } return true; // Return true if all inputs have a value } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descAccessory Click Functions>*/ function accDDClicked(event){ this_element jQuery(this) if(!this_element.prop(selected)){ pid event.data.pid accLmt event.data.accLmt all_elements jQuery(id^io_acc_+pid+_) let count 0; /* Tried using .filter and .length to get the count of selected items but could not make it work. */ for(i 0; i all_elements.length; ++i){ if(all_elementsi.selected){ ++count; } } if(accLmt 0){ this_element.css(border, 5px solid #bbb); this_element.prop(selected, true); } else if(count > accLmt){ let selected_value jQuery(id^io_acc_+pid+_).filter(function() { return thisselected; }); /* be sure to unselect other slected values if our acc limit has been reached. */ selected_value.prop(selected, false); selected_value.css(border, 1px solid #bbb); } this_element.css(border, 5px solid #bbb); this_element.prop(selected, true); } else{ this_element.prop(selected, false); this_element.css(border, 1px solid #bbb); } } /* when accessory choice is clicked */ function accOnClick(acc_selectnull){ /* set name/img back to original main in case they are just clicking on a 1st level size option */ jQuery(.io_product_title.item_name).html(main_name_orig); jQuery(.io_product_container .item_image).first().attr(src,main_img_src); jQuery(.io_product_container .item_image).first().attr(data-src,main_img_src); jQuery(.io_product_container .item_encoded).first().html(main_encoded); jQuery(.io_product_container .io_image_big).first().attr(src,main_img_src); jQuery(.io_product_container .io_image_big).first().attr(data-src,main_img_src); let main_id jQuery(.io_product_container .item_rentalid).first().text(); let main_id_arr main_id.split(:) jQuery(.io_product_container .item_rentalid).html(main_id_arr0); let clk_id; if(jQuery(acc_select).find(:selected).val()){ clk_id jQuery(acc_select).find(:selected).val().replace(io_acc_shortname_,); }else{ clk_id this.id.replace(io_acc_shortname_,); } clk_id clk_id.replace(iothumb_,); let click_id_arr clk_id.split(_); /* let pid main_id; */ /* if(main_id.split(_).length>1) pid parseInt(click_id_arr0); */ for (let key, value of acc_obj_relate) { let id key; if(acc_obj_relate.get(key)0!undefined){ for (key2 in acc_obj_relate.get(key)) { let id acc_obj_relate.get(key)key2; if(typeof id object){ /* 3rd level */ for (key3 in acc_obj_relate.get(key)key2) { let id acc_obj_relate.get(key)key2key3; if(typeof id ! object){ displayPackageChoices(clk_id,key2,id,acc_obj_relate.get(key)key2); } } }else{ displayPackageChoices(clk_id,key,id,acc_obj_relate.get(key)); } } }else{ displayPackageChoices(clk_id,0,id,acc_obj_relate); } } } /* show/hide accessory levels as needed */ /* clk_id: one they clicked on, pid: parentid, id: iterator, arr: relationship array */ function displayPackageChoices(clk_id,pid,id,arr){ let main_id jQuery(.io_product_container .item_rentalid).first().text(); let main_arr main_id.split(_); if(main_arr.length>1) main_id parseInt(main_arr0); let click_id_arr clk_id.split(_); elem getAccElem(id,pid); if(click_id_arr0pid || click_id_arr1pid || pid0){ elem.style.displayinline-block; }else{ elem.style.displaynone; } if(click_id_arr1id && (click_id_arr0pid || (pid0 && click_id_arr0main_id) ) || (click_id_arr.length1 && click_id_arr0id)){ updateMainItem(id,pid); } } /* update it with accessory data for choices */ var main_img_src jQuery(#single_image).first().attr(href); var main_name_orig jQuery(.io_product_title.item_name).html(); var main_encoded jQuery(.io_product_container .item_encoded).html(); var main_desc jQuery(.io_product_detailbox .io_product_desc).html(); function updateMainItem(id,pid){ /* update add to cart btn, name, img, desc */ let name ; let name_enc ; let main_id jQuery(.io_product_container .item_rentalid).first().text(); let main_arr main_id.split(:); if(main_arr.length>1) main_id main_arr0; if(pid!0){ name + jQuery(#io_acc_itemname_+pid).html()+:; name_enc + jQuery(#io_acc_itemname_+pid).html()+:; name + jQuery(#io_acc_shortname_+id).html(); name_enc + jQuery(#io_acc_itemname_+id).html(); }else{ pid main_id; name + jQuery(#io_acc_itemname_+id).html(); name_enc + jQuery(#io_acc_itemname_+id).html(); } jQuery(.io_product_container .item_encoded).html(encodeURIComponent(name_enc.replace(/\u2032\u2019+/ig,))); jQuery(.io_product_container .item_rentalid).html(main_id+:+pid+_+id); jQuery(.io_product_title.item_name).html(name); if(jQuery(#io_acc_desc_+pid+_+id).first().length>0){ jQuery(.io_product_container .io_product_desc).first().html(jQuery(#io_acc_desc_+pid+_+id).first()0.innerHTML); } /* swap accessory image with main image pic for drop-down type items (linens) */ let img jQuery(#io_acc_imgbig_+pid+_+id).first().attr(href); if(imgnull) img jQuery(#iothumb_+pid+_+id).first().attr(src) if(imgnull){ }else{ if(img.length0 && pidmain_id){ /* for 1 level dd items that have no img, use the main img */ img main_img_src; } jQuery(.io_product_container .io_image_big).first().attr(src,img); jQuery(.io_product_container .io_image_big).first().attr(data-src,img); jQuery(.io_product_container .item_image).first().attr(src,jQuery(#iothumb_+pid+_+id).first().attr(src)); jQuery(.io_product_container .item_image).first().attr(data-src,jQuery(#iothumb_+pid+_+id).first().attr(src)); jQuery(#single_image).first().attr(href,img).show(); } checkAvailFilter(); } /* get either img or text for accessory choices */ function getAccElem(id,pid){ let path pid+_+id; if(pid0){ pathid; } let elem null; try{ elem document.querySelector(#ioAccButtonWrapper_+path); }catch(e){} if(elem null){ try{ elem document.querySelector(#iothumb_+path); }catch(e){} } if(elemnull){ try{ elem document.querySelector(#io_product_acc_pkg_sel_+pid); }catch(e){} if(elem!null) return elem; }else{ return elem; } if(elem null){ try{ elem document.querySelector(#io_acc_shortname_+path); }catch(e){} }else if(elem.src | elem.getAttribute(data-src)){ try{ elem document.querySelector(#io_acc_shortname_+path); }catch(e){} }else if(elem.src.substr(-1)/){ try{ elem document.querySelector(#io_acc_shortname_+path); }catch(e){} } if(elemnull){ try{ elem document.querySelector(#io_acc_shortname_+id); }catch(e){} } return elem; } /* create the accessory choice btn (img/text) */ function makeAccBtn(button_add,pid){ let newButton; if(button_add.nodeNameIMG){ newButton button_add; let id newButton.id.replace(iothumb_+pid,); var wrapper document.createElement(div); wrapper.setAttribute(id, ioAccButtonWrapper_+pid+id); wrapper.style.display inline-block; wrapper.appendChild(newButton); let acc_name document.createElement(span); acc_name.style.overflow hidden; acc_name.style.textOverflow ellipsis; acc_name.style.maxWidth 80px; acc_name.style.display block; acc_name.style.whiteSpace nowrap; acc_name.textContent jQuery(#io_acc_shortname+id).text(); acc_name.classList.add(accTextName); acc_name.setAttribute(id, io_acc_shortname_+pid+id); wrapper.appendChild(document.createElement(br)); wrapper.appendChild(acc_name); }else{ newButton button_add.cloneNode(true); let id newButton.id.replace(io_acc_shortname_,); newButton.id io_acc_shortname_ + pid + _ + id; } newButton.classList.add(elementor-animation-grow); newButton.classList.remove(item_image); newButton.stylecursor:pointer;border: solid 1px grey; newButton.classList.add(io_access_button); newButton.style.display inline-block; newButton.style.verticalAlign top; newButton.onclickaccOnClick; if(newButton.nodeNameIMG){ newButton.style.minWidth 80px; newButton.style.width 80px; newButton.style.margin 2px; newButton.style.height 80px; }else{ newButton.style.margin 0px 2px 0px 2px; } if(button_add.nodeNameIMG){ return wrapper } return newButton; } /* when clicking the thumb swatches under main image (2nd image for an item) */ function updateMainPic(img) { /* calling image */ let thumb_id img.id; let big_id thumb_id.replace(thumb, big); /* main image we are updating */ let main_img document.querySelector(.io_image_big); let img_big document.querySelector(# + big_id); main_img.src img_big.href; /* document.querySelector(#single_image).href img_big.href; */ } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descCalendar Functions>*/ function calApply() { /* reset timeslots if filtering is on */ filterTimeslotsByDay_itemTimeslots(); simpleCart.update(); if(cart_times_all_set()){ setCookie(dateApplied, true, 1) checkAvailAll(); calCancel(); } let io_required_data io_info_required_data; for (const data, value of Object.entries(io_required_data)) { if(value 1){ setCookie(data, jQuery(#io_im_+data).val(), 14); } } /* Check if information gathering header exists. If it does, update the times on there. */ if(jQuery(#ioInfoHeader).length){ jQuery(#ioHeaderTimeStart).val(jQuery(nametimeStart).val()); jQuery(#ioHeaderTimeEnd).val(jQuery(nametimeEnd).val()); jQuery(#ioHeaderDateStart).val(jQuery(namedateStart).val()); jQuery(#ioHeaderDateEnd).val(jQuery(namedateEnd).val()); header_increment_step(); } show_or_hide_required_info_message() /* if(!cartStayOpen) cartHide(); */ } function calCancel() { click_count 0; jQuery(inputnamedateStart).val(getCookie(dateStart)); jQuery(inputnamedateEnd).val(getCookie(dateEnd)); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day && getCookie(company_timeslot_selected)){ jQuery(.ioCartCompanyTimeslots).val(getCookie(company_timeslot_selected)); } else{ jQuery(inputnametimeStart).val(getCookie(timeStart)); jQuery(inputnametimeEnd).val(getCookie(timeEnd)); } setCalBackground(); jQuery(.ioDateRange).html(smartFormatDateRange()) jQuery(#cartCalendar, #cartTimePicker).hide(); jQuery(.ioDateRange).show(); jQuery(.changeDateLinkWrapper).show(); } /* var cartStayOpen false; */ function calSetDateRange(stayOpen) { /* if(stayOpen1){ cartStayOpen true; }else{ cartStayOpen false; } */ jQuery(.changeDateLinkWrapper).hide(); jQuery(#cartCalendar, #cartTimePicker).show(); jQuery(#cartDateRange).hide(); } function smartFormatDateRange() { let start_date jQuery(inputnamedateStart).val(); let end_date jQuery(inputnamedateEnd).val(); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ let cart_company_timeslot_selected jQuery(.ioCartCompanyTimeslots option:selected).first().val(); if(cart_company_timeslot_selected){ setCookie(company_timeslot_selected, cart_company_timeslot_selected, 14); cart_company_timeslot_selected cart_company_timeslot_selected.split(-); var start_time cart_company_timeslot_selected0.trim(); var end_time cart_company_timeslot_selected1.trim(); } } else { var start_time jQuery(inputnametimeStart).val(); var end_time jQuery(inputnametimeEnd).val(); } let text ; text start_date; if(io_hidetimes!on) text + + start_time; if (start_date end_date) { if(io_hidetimes!on){ text + i classfas fa-arrow-right stylepadding:5px;>/i> ; text + end_time; } } else { text + i classfas fa-arrow-right stylepadding:5px;>/i> ; text + end_date; if(io_hidetimes!on) text + + end_time; } /* text + i classfas fa-pencil-alt stylemargin-left:9px;color:+pallet_color1+;>/i> ; */ return text; } function resetCalButtons() { jQuery(#cartCalendar .ui-datepicker-prev).addClass(fas fa-arrow-left).css(color, pallet_color1); jQuery(#cartCalendar .ui-datepicker-next).addClass(fas fa-arrow-right).css(color, pallet_color1); } function cal_onChangeMonthYear(year, month, obj) { setTimeout(resetCalButtons, 10); setTimeout(setCalBackground, 10); } function cal_onSelect(dateText, obj) { setTimeout(resetCalButtons, 10); let whatday_choice ; if(io_cartdayselect dropdown_options && io_multidayquote on){ let choice_obj jQuery(#whatday); if(choice_obj){ whatday_choice choice_obj.val(); } } click_count++; end_timepicker jQuery(inputnametimeEnd); let timeStart jQuery(inputnametimeStart).val(); if (timeStart ) { jQuery(inputnametimeStart).val(start_default); jQuery(inputnametimeEnd).val(end_default); } if (click_count 1 || !multi_day || whatday_choiceSame Day || whatday_choiceOvernight) { jQuery(inputnamedateStart).val(dateText); jQuery(inputnamedateEnd).val(dateText) end_timepicker.timepicker(option,{minTime: jQuery(inputnametimeStart).val()}); if(EndTimeLessThanStartTime( jQuery(inputnametimeStart).val(), end_timepicker.val(), jQuery(namedateStart).val(), jQuery(namedateEnd).val() ) ) { end_timepicker.val(); } if(io_cartAllowSameDay on){ restrictStartTimepickerOnSameDaySelect(dateText, jQuery(inputnametimeStart), end_timepicker); } } else if (click_count 2) { jQuery(inputnamedateEnd).val(dateText); let start_date_str jQuery(inputnamedateStart).val(); let start_date_obj convertDateStringtoDateObject(start_date_str); let end_date_obj convertDateStringtoDateObject(dateText); if(end_date_obj start_date_obj){ jQuery(inputnamedateStart).val(dateText); if(io_cartAllowSameDay on){ restrictStartTimepickerOnSameDaySelect(dateText, jQuery(inputnametimeStart), end_timepicker); } } else{ end_timepicker.timepicker(option,{minTime: io_restrict_time_start}); } click_count 0; } else { click_count 0; } //custom code for suncoast_event if(io_cartdayselect dropdown_options && io_multidayquote on){ endDisplay(); //daysSelect(); } filterTimeslotsByDay_companyTimeslots(); setTimeout(setCalBackground, 10); } function endDisplay(){ //todo: need to figure out if these work and set triggers // trigger enddisplay after date is selected or possibly when dateEnd changes? let choice jQuery(#whatday).val(); setCookie(io_whatday, choice, 14); let dateStart jQuery(namedateStart); let timeStart jQuery(nametimeStart); let dateEnd jQuery(namedateEnd); let timeEnd jQuery(nametimeEnd); if(choiceOvernight){ let startdate dateStart.val(); let starttime io_overnightPickupTime; let endcalc_date_obj new Date(buildDateobjectstring(startdate,dateFormat,starttime)); let duration_hrs 24; let end_date_obj new Date(endcalc_date_obj.getTime()+duration_hrs*60*60*1000); if(!isNaN(end_date_obj)){ dateEnd.val(getFormatteddate(end_date_obj)); timeEnd.val(getFormattedtime(end_date_obj)); timeEnd.attr(readonly,readonly); } }else if(choiceMulti-Day){ timeEnd.removeAttr(readonly); }else{ timeEnd.removeAttr(readonly); } setTimeout(setCalBackground, 10); } function setCalBackground() { let dateStart_string jQuery(inputnamedateStart).val(); let dateEnd_string jQuery(inputnamedateEnd).val(); if (dateFormat d/m/yy) { let dateStartArray dateStart_string.split(/); let dateEndArray dateEnd_string.split(/); var dateStart new Date(dateStartArray2, Number(dateStartArray1)-1, dateStartArray0); var dateEnd new Date(dateEndArray2, Number(dateEndArray1)-1, dateEndArray0); } else { var dateStart new Date(dateStart_string); var dateEnd new Date(dateEnd_string); } let sday dateStart.getDate(); let smonth dateStart.getMonth(); let syear dateStart.getFullYear(); let eday dateEnd.getDate(); let emonth dateEnd.getMonth(); let eyear dateEnd.getFullYear(); /* clear any (in case of cancel) */ jQuery(.ui-datepicker-calendar data-handlerselectDay).css(background-color,initial); /* set the selected ones */ jQuery(#cartCalendar data-month + smonth + data-year + syear + , #cartCalendar data-month + emonth + data-year + eyear + ).each(function (i) { let cday jQuery(this).find(a).first().text(); let cmonth jQuery(this).attr(data-month); let cyear jQuery(this).attr(data-year); /* let dateCurrent new Date(Date.UTC(cyear,cmonth,cday,12)); */ let dateCurrent new Date(cyear, cmonth, cday); if (click_count 1 && dateEnd_string.length 0) dateEnd dateStart; if (dateCurrent.getTime() dateStart.getTime() && dateCurrent.getTime() dateEnd.getTime()) { jQuery(this).css(border-radius, 6px 6px 6px 6px); } else if (dateCurrent.getTime() dateStart.getTime()) { jQuery(this).css(border-radius, 6px 0 0 6px); } else if (dateCurrent.getTime() dateEnd.getTime()) { jQuery(this).css(border-radius, 0 6px 6px 0); } if (dateCurrent > dateStart && dateCurrent dateEnd) { jQuery(this).css(background-color, pallet_color1); } }); } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descTimeslot/Timepicker Functions>*/ /* called from simplecart */ function timeslotChange(){ checkAvailCartTimeslots(); } function filterTimeslotsByDay_companyTimeslots(){ var weekday new Array(); weekday0 Sunday; weekday1 Monday; weekday2 Tuesday; weekday3 Wednesday; weekday4 Thursday; weekday5 Friday; weekday6 Saturday; let times getAvailTimes(); let start_date times0; let day weekdaynew Date(start_date).getDay(); let selected_option_label jQuery(.ioCartCompanyTimeslots option:selected).first().text().toLowerCase(); if(optionHasDay(weekday, selected_option_label)){ if(selected_option_label.indexOf(day.toLowerCase()) -1){ jQuery(.ioCartCompanyTimeslots).val(); } } if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ jQuery(.ioCartCompanyTimeslots > option).each(function() { if(optionHasDay(weekday, this.text.toLowerCase())){ for(i0; iweekday.length; ++i){ if(day.toLowerCase() weekdayi.toLowerCase() && this.text.toLowerCase().indexOf(day.toLowerCase()) ! -1){ jQuery(this).show(); day_missing false; } else if(day.toLowerCase() ! weekdayi.toLowerCase() && this.text.toLowerCase().indexOf(day.toLowerCase()) -1){ jQuery(this).hide(); } } } }); } } function filterTimeslotsByDay_itemTimeslots(){ var weekday new Array(); weekday0 Sunday; weekday1 Monday; weekday2 Tuesday; weekday3 Wednesday; weekday4 Thursday; weekday5 Friday; weekday6 Saturday; let times getAvailTimes(); let start_date times0; let day weekdaynew Date(start_date).getDay(); simpleCart.each(function (item, x) { var timeslots_html item.get(timeslots); if(typeof timeslots_html ! undefined && jQuery.parseHTML(timeslots_html)0.nodeName SELECT){ if(timeslots_html.length > 0){ var timeslot_name getTimeslotName(timeslots_html); if(typeof item.get(timeslots-orig) undefined){ var timeslots_obj jQuery.parseHTML(timeslots_html); } else{ var timeslots_obj jQuery.parseHTML(item.get(timeslots-orig)); } jQuery(timeslots_obj).find(option).each(function(){ if(optionHasDay(weekday, this.text.toLowerCase())){ for(i0; iweekday.length; ++i){ if(day.toLowerCase() weekdayi.toLowerCase() && this.text.toLowerCase().indexOf(day.toLowerCase()) ! -1){ /* jQuery(this).show(); */ } else if(day.toLowerCase() ! weekdayi.toLowerCase() && this.text.toLowerCase().indexOf(day.toLowerCase()) -1){ jQuery(this).remove(); } } } }); if(typeof item.get(timeslots-orig) undefined) item.set(timeslots-orig,item.get(timeslots)); item.set(timeslots,select classsimpleCart_timeslots name+timeslot_name+>+jQuery(timeslots_obj).html()+/select>); } } }); } function optionHasDay(weekdays, option_label){ for(i0; iweekdays.length; ++i){ if(option_label.indexOf(weekdaysi.toLowerCase()) ! -1){ return true; } } return false; } function getTimeslotName(timeslots_html){ if(typeof timeslots_htmlundefined) return ; var timeslot_name_s timeslots_html.indexOf(name); timeslot_name_s + 6; var timeslot_name_e timeslots_html.indexOf(,timeslot_name_s); var timeslot_name timeslots_html.substr(timeslot_name_s,timeslot_name_e-timeslot_name_s); return timeslot_name; } function setTimeslotSelected(item, timeslot_name){ jQuery(.item-timeslots name\+timeslot_name+\ option).not(:selected).removeAttr(selected); jQuery(.item-timeslots name\+timeslot_name+\ option:selected).attr(selected,selected); if(jQuery(.item-timeslots name\+timeslot_name+\).length>0){ item.set(timeslots,jQuery(.item-timeslots name\+timeslot_name+\)0.outerHTML); } /* set on quote page */ jQuery(.controls name\+timeslot_name+\ option).not(:selected).removeAttr(selected); jQuery(.controls name\+timeslot_name+\ optionvalue+jQuery(.item-timeslots name\+timeslot_name+\ option:selected).val()+).attr(selected,selected); } function setTimePicker(item, timepicker_name){ let start_timepicker, end_timepicker get_cart_timepickers(timepicker_name); let start_time start_timepicker.value; let end_time end_timepicker.value; if(!start_time){ start_timepicker.style.borderColor red; } else{ start_timepicker.style.borderColor ; } if(!end_time){ end_timepicker.style.borderColor red; } else{ end_timepicker.style.borderColor ; } let start_timepicker_html start_timepicker.outerHTML; let end_timepicker_html end_timepicker.outerHTML; if(document.querySelectorAll(.item-timeslots name\+timepicker_name+\).length>0){ start_timepicker_html addOrReplaceValueInTimepicker(start_timepicker_html, start_time); end_timepicker_html addOrReplaceValueInTimepicker(end_timepicker_html, end_time); item.set(timeslots, div name+timepicker_name+> Start: +start_timepicker_html+ End: +end_timepicker_html+/div>); } /* set on quote page */ /* For linen type items with timepickers */ let rental_id item.get(rentalid); let split_on_colon rental_id.split(:); if(split_on_colon.length > 1){ fix_time_name_for_linen_rid(timepicker_name, split_on_colon, start_time, end_time, rental_id) }else{ let quote_page_start_timepicker document.querySelectorAll(.controls name\+timepicker_name.replace(io_timepicker_, starttime_)+\)0; let quote_page_end_timepicker document.querySelectorAll(.controls name\+timepicker_name.replace(io_timepicker_, endtime_)+\)0; if(quote_page_start_timepicker ! null && quote_page_end_timepicker ! null){ quote_page_start_timepicker.value start_time; quote_page_end_timepicker.value end_time; } } } function fix_time_name_for_linen_rid(time_name, split_rid, start_time, end_time, rental_id){ for(let x 0; x split_rid.length; x++){ temp_timepicker_name time_name.replace(rental_id, split_ridx); let quote_page_start_timepicker document.querySelectorAll(.controls name\+temp_timepicker_name.replace(io_timepicker_, starttime_)+\)0; let quote_page_end_timepicker document.querySelectorAll(.controls name\+temp_timepicker_name.replace(io_timepicker_, endtime_)+\)0; if(quote_page_start_timepicker ! null && quote_page_end_timepicker ! null){ quote_page_start_timepicker.value start_time; quote_page_end_timepicker.value end_time; } } } function addOrReplaceValueInTimepicker(timepicker_html, time_value){ if(timepicker_html.includes(value)){ timepicker_html timepicker_html.slice(0, timepicker_html.indexOf(value)), value+time_value+, timepicker_html.slice(timepicker_html.length-1).join(); }else{ /* No value defined. Add it at the end of the outer html. */ let position timepicker_html.lastIndexOf(>); timepicker_html timepicker_html.slice(0, position), value+time_value+, timepicker_html.slice(position).join(); } return timepicker_html } function restrictEndTimepickers(){ setUpTimeRestrictions_cartTimepickers() setUpTimeRestrictions_timeBasedItems() } function setUpTimeRestrictions_timeBasedItems(){ jQuery(inputname^start_timeslot_).change(function() { end_timepicker jQuery(inputname+this.name.replace(start, end)+); end_timepicker jQuery(end_timepickerend_timepicker.length - 1); end_timepicker.timepicker(option,{minTime: jQuery(this).val()}); if( EndTimeLessThanStartTime( jQuery(this).val(), end_timepicker.val(), 0/0/0, 0/0/0 ) ){ end_timepicker.val(); } }); } function setUpTimeRestrictions_cartTimepickers(){ jQuery(inputnametimeStart).change(function() { end_timepicker jQuery(name+this.name.replace(Start, End)+); if(jQuery(namedateStart).val() jQuery(inputnamedateEnd).val()){ end_timepicker.timepicker(option,{minTime: jQuery(this).val()}); if(EndTimeLessThanStartTime( jQuery(this).val(), end_timepicker.val(), jQuery(namedateStart).val(), jQuery(namedateEnd).val() ) ) { end_timepicker.val(); } } }); } function setUpTimeRestrictions_infoHeaderTimepickers(){ jQuery(#ioHeaderTimeStart).change(function() { end_timepicker jQuery(#ioHeaderTimeEnd); if(jQuery(#ioHeaderDateStart).val() jQuery(#ioHeaderDateEnd).val()){ end_timepicker.timepicker(option,{minTime: jQuery(this).val()}); if(EndTimeLessThanStartTime( jQuery(this).val(), end_timepicker.val(), jQuery(#ioHeaderDateStart).val(), jQuery(#ioHeaderDateEnd).val() ) ) { end_timepicker.val(); } } }); } /* helper function to see if the value from a start timepicker is less than the string value of an end timepicker. param start_time: string representation of the start time picker. 12hr or 24hr. param end_time: string representation of the end time picker. 12hr or 24hr. param start_date: string representation of the start date, seperated by /. Can be wither d/m/y or m/d/y. Pass 0/0/0 if dates do not matter. param end_date: string representation of the end date, seperated by /. Can be wither d/m/y or m/d/y. Pass 0/0/0 if dates do not matter. */ function EndTimeLessThanStartTime(start_time, end_time, start_date, end_date){ if(!start_time || !end_time) return false; start_time convert12HourTo24Hour(start_time); end_time convert12HourTo24Hour(end_time); var split_start_date start_date.split(/); var split_end_date end_date.split(/); var startDate buildDateObj(split_start_date, start_time); var endDate buildDateObj(split_end_date, end_time); if(endDate startDate){ return true; } else { return false; } } function get_cart_timepickers(timepicker_name){ let start_timepicker document.getElementsByName(timepicker_name.replace(io_timepicker_, start_timeslot_)); let end_timepicker document.getElementsByName(timepicker_name.replace(io_timepicker_, end_timeslot_)); start_timepicker start_timepickerstart_timepicker.length-1; end_timepicker end_timepickerend_timepicker.length-1; return Array(start_timepicker, end_timepicker); } function restrictStartTimepickerOnSameDaySelect(start_date_str, start_timepicker, end_timepicker){ let selected_date_obj convertDateStringtoDateObject(start_date_str); let current_date_obj new Date(); if(current_date_obj.getDate() selected_date_obj.getDate() && current_date_obj.getMonth() selected_date_obj.getMonth() && current_date_obj.getYear() selected_date_obj.getYear()){ let next_hour_time_stamp current_date_obj.setMinutes(60); let next_hour_str getFormattedtime(new Date(next_hour_time_stamp)) start_timepicker.timepicker(option,{minTime: next_hour_str}); /* If the time in the input box is less than the time we just restricted too, then clear time inputs */ restricted_time_obj convertDateStringtoDateObject(start_date_str, next_hour_str); currently_selected_time_obj convertDateStringtoDateObject(start_date_str, start_timepicker.val()); if(currently_selected_time_obj restricted_time_obj){ start_timepicker.val(next_hour_str); end_timepicker.val(); end_timepicker.timepicker(option,{minTime: next_hour_str}); } }else{ start_timepicker.timepicker(option,{minTime: restrictTimeStart}); } } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descSimple Cart Bound Functions>*/ function cart_onUpdate() { /* need slight delay so simplecart updates before this runs */ setTimeout(cart_onUpdate2, 500); try{ for(var i0;idocument.getElementsByClassName(ioCart).length;i++){ document.getElementsByClassName(ioCart)i.setAttribute(cnt, simpleCart.items().length); } }catch(e){} } function cart_onUpdate2() { jQuery(#cartSubtotal).html(simpleCart.toCurrency(simpleCart.total())); if(io_checkavailoff) return; jQuery(#cartWarning).hide(); let hasUnavail false; gift_cards_only false; simpleCart.each(function (item, x) { let item_id item.get(id); var giftCardValue item.get(giftcardvalue); if (giftCardValue && giftCardValue.trim()) { gift_cards_only true; } let avail 0; let stop_loop false; if (item.get(availability) ! null) avail item.get(availability).replace( available, ); let quantity Number(item.get(quantity)); if(item.get(inputtype) Map){ quantity 1 } if(typeof item.get(availability) ! undefined){ if (quantity > Number(avail) || avail not) { /* item.set(availability,span stylecolor:red>+item.get(availability)+/span>); */ setTimeout(function () { jQuery(#cartItem_ + item_id + .item-availability).css(color, red) }, 10); //jQuery(#cartWarning).show(); stop_loop display_cart_warning(item); hasUnavail true; } else { jQuery(#cartItem_ + item_id + .item-availability).css(color, inherit); } }else{ event_times getAvailTimes(); if(!event_times0 || !event_times1){ jQuery(#cartWarning).text(Please set the date and time for your event above.); jQuery(#cartWarning).show() } } var timeslots_html item.get(timeslots); if(typeof timeslots_html ! undefined){ if(timeslots_html.length > 0){ var timeslot_name getTimeslotName(timeslots_html); if(timeslots_html.indexOf(select) > 0){ setTimeslotSelected(item, timeslot_name); }else{ setTimePicker(item, timeslot_name); } } } if(stop_loop){ return false; } }); if(gift_cards_only){ jQuery(#cartCalendarTimePickerContainer).hide(); }else{ jQuery(#cartCalendarTimePickerContainer).show(); } if(hasUnavail && io_checkavail!off){ jQuery(.simpleCart_checkout).removeClass(simpleCart_checkout).addClass(simpleCart_checkout_off).trigger(classChange).click(cartShow); }else if(io_checkavail!off){ jQuery(.simpleCart_checkout_off).removeClass(simpleCart_checkout_off).addClass(simpleCart_checkout).trigger(classChange); } add_cart_buttons document.querySelectorAll(class*add_cart_); if(add_cart_buttons){ for(let i 0; i add_cart_buttons.length; ++i){ add_cart_buttonsi.innerHTML add_cart_buttonsi.innerHTML.replace(fa-cart-arrow-down, fa-shopping-cart); add_cart_buttonsi.innerHTML add_cart_buttonsi.innerHTML.replace(Added to Cart, Add to Cart); add_cart_buttonsi.style.filter brightness(100%); simpleCart.each(function (item, x) { if( add_cart_buttonsi.className.includes( item.get(rentalid) ) ){ add_cart_buttonsi.innerHTML add_cart_buttonsi.innerHTML.replace(fa-shopping-cart, fa-cart-arrow-down); add_cart_buttonsi.innerHTML add_cart_buttonsi.innerHTML.replace(Add to Cart, Added to Cart); add_cart_buttonsi.style.filter brightness(90%); } }); } } /* init time-based items */ if(document.location.href.indexOf(io_quoteform) -1){ let today new Date(); let io_dd today.getDate(); let io_mm today.getMonth() + 1; let io_yyyy today.getFullYear(); if(restrictTimes){ jQuery(.item-timeslots .timepicker).each( function() { if(this.name.includes(end)){ start_timepicker jQuery(inputname+this.name.replace(end, start)+); start_timepicker jQuery(start_timepickerstart_timepicker.length - 1); if(start_timepicker.val() ! ){ jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), minTime:start_timepicker.val(), maxTime:restrictTimeEnd, timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } else { jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), minTime:restrictTimeStart, maxTime:restrictTimeEnd, timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } } else { jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), minTime:restrictTimeStart, maxTime:restrictTimeEnd, timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } }); } else{ jQuery(.item-timeslots .timepicker).each( function() { if(this.name.includes(end) ! -1){ start_timepicker jQuery(inputname+this.name.replace(end, start)+); start_timepicker jQuery(start_timepickerstart_timepicker.length - 1); if(start_timepicker.val() ! ){ jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), minTime:start_timepicker.val(), timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } else { jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } } else{ jQuery(this).timepicker({ startTime: new Date(io_mm+/+io_dd+/+io_yyyy + + start_default), endTime: new Date(io_mm+/+io_dd+/+io_yyyy + + end_default), timeFormat: timeFormat, separator: :, className: elementor-widget-text-editor, step: 15, disableTouchKeyboard: true }); } }); } setUpTimeRestrictions_timeBasedItems(); if(!event_time_set()){ jQuery(.itemRow .item-total).hide(); }else{ jQuery(.itemRow .item-total).show(); } } } function cart_beforeCheckout(data) { data.startdate jQuery(inputnamedateStart).val(); data.enddate jQuery(inputnamedateEnd).val(); data.io_custguid getCookie(guid); if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ let cart_company_timeslot_selected jQuery(.ioCartCompanyTimeslots option:selected).first().val(); if(cart_company_timeslot_selected){ setCookie(company_timeslot_selected, cart_company_timeslot_selected, 14); cart_company_timeslot_selected cart_company_timeslot_selected.split(-); data.starttime cart_company_timeslot_selected0; data.endtime cart_company_timeslot_selected1; } } else { data.starttime jQuery(inputnametimeStart).val(); data.endtime jQuery(inputnametimeEnd).val(); } } function cart_beforeAdd(item) { var main_id jQuery(.io_product_container .item_rentalid).first().text(); var item_id item.get(rentalid); timeslots item.get(timeslots); if(timeslots){ if(timeslots.indexOf(select) ! -1){ timeslot_name_id_start_pos timeslots.lastIndexOf(nametimeslot_) + nametimeslot_.length; timeslot_name_id_end_pos timeslots.indexOf(, timeslot_name_id_start_pos); new_timeslots timeslots.slice(0, timeslot_name_id_start_pos), item_id, timeslots.slice(timeslot_name_id_end_pos,timeslots.length) new_timeslots new_timeslots.join() item.set(timeslots, new_timeslots); }else if(timeslots.indexOf(div name\io_timepicker_) ! -1){ timeslot_name_id_start_pos timeslots.lastIndexOf(nameio_timepicker_) + nameio_timepicker_.length; timeslot_name_id_end_pos timeslots.indexOf(, timeslot_name_id_start_pos); new_timeslots timeslots.slice(0, timeslot_name_id_start_pos), item_id, timeslots.slice(timeslot_name_id_end_pos,timeslots.length) new_timeslots new_timeslots.join() timeslot_name_id_start_pos new_timeslots.lastIndexOf(namestart_timeslot_) + namestart_timeslot_.length; timeslot_name_id_end_pos new_timeslots.indexOf(, timeslot_name_id_start_pos); new_timeslots new_timeslots.slice(0, timeslot_name_id_start_pos), item_id, new_timeslots.slice(timeslot_name_id_end_pos,new_timeslots.length) new_timeslots new_timeslots.join() timeslot_name_id_start_pos new_timeslots.lastIndexOf(nameend_timeslot_) + nameend_timeslot_.length; timeslot_name_id_end_pos new_timeslots.indexOf(, timeslot_name_id_start_pos); new_timeslots new_timeslots.slice(0, timeslot_name_id_start_pos), item_id, new_timeslots.slice(timeslot_name_id_end_pos,new_timeslots.length) new_timeslots new_timeslots.join() item.set(timeslots, new_timeslots); } } /* Here we are checking if we are on an item page and if we are adding the main item. If this is not true, we do not want to continue. Bail here. */ if((!main_id || !item_id)){ return true; }else if (item_id ! main_id){ /* we are adding an accessory, We want to forcibly add the main item first. */ /* IO-26864 */ jQuery(#bookNowBtn).click(); } let required_dropdown_values jQuery(.io_acc_li).filter(function() { let required_ele jQuery(this).find(.item_required); let required 0; if(required_ele0){ required required_ele0.outerText; } let dropdown_ele jQuery(this).find(.item_accessorydd); let dropdown 0; if(dropdown_ele0){ dropdown dropdown_ele0.outerText; } return (required > 0 && dropdown 1) }); var required_selected true; required_dropdown_values.each(function() { required_value_id jQuery(this).find(.item_rentalid)0.outerText; required_value_id required_value_id.split(_); required_value_id required_value_idrequired_value_id.length-1; let selected jQuery(id^io_acc_+required_value_id+).filter(function() { return thisselected; }); //IO-22431 - This wasnt catching if 0 was undefined if(jQuery(this).find(.io_acc_li_name)0 ! undefined){ required_value_name jQuery(this).find(.io_acc_li_name)0.outerText ? jQuery(this).find(.io_acc_li_name)0.outerText : ; } if(selected.length jQuery(this).find(.item_required)0.outerText){ if(item_id main_id){ alert(required_value_name+ is a required field.); } required_selected false; } if(!required_selected){ return false; } return true; }); if(!required_selected){ return false; } /* IO-14857 */ if(jQuery(.io_product_measurement_price).length > 0){ let units; if(jQuery(.io_product_infobox .item_qtytype).text() Area){ units sq meters if(country US) units sq feet }else if(jQuery(.io_product_infobox .item_qtytype).text() Perimeter){ units meters if(country US) units feet } item.set(units, units); item.set(quantity, jQuery(.io_measure_price_raw_measurement).text()); } } function cart_afterAdd(item) { /* Add required Accessories */ let required_accs jQuery(id^io_acc_required_).filter(function() { return parseInt(thisouterText) > 0 && this.parentElement.styledisplay ! none; }); required_accs.each(function(index) { simpleCart.parse_html_and_add(this, true); }); /* required_accs.each(function(index) { let parent_element this.parentElement; let info {}; if(jQuery(parent_element).find(.io_acc_li_name).length > 0){ infoname jQuery(parent_element).find(.io_acc_li_name)0.outerText } if(jQuery(parent_element).find(.item_qtyincrement).length > 0){ infoqtyincrement jQuery(parent_element).find(.item_qtyincrement)0.outerText } if(jQuery(parent_element).find(.item_inputtype).length > 0){ infoinputtype jQuery(parent_element).find(.item_inputtype)0.outerText } if(jQuery(parent_element).find(.item_vendorid).length > 0){ infovendorid jQuery(parent_element).find(.item_vendorid)0.outerText } if(jQuery(parent_element).find(.item_required).length > 0){ infoquantity jQuery(parent_element).find(.item_required)0.outerText } if(jQuery(parent_element).find(.item_rentalid).length > 0){ inforentalid jQuery(parent_element).find(.item_rentalid)0.outerText } if(jQuery(parent_element).find(.io_acc_li_img_thumb)0){ infoimage jQuery(parent_element).find(.io_acc_li_img_thumb)0.src } if(jQuery(parent_element).find(.item_accessorydd)0.outerText ! 1){ let rentalid inforentalid; let split_rid rentalid.split(_); if(split_rid.length > 2){ let parent_rid split_rid0+_+split_rid1; if(jQuery(#io_acc_accessorydd_+parent_rid)0.outerText ! 1){ simpleCart.add(info, true); } }else{ simpleCart.add(info, true); } } }); */ let selected_values jQuery(id^io_acc_).filter(function() { return thisselected; }); selected_values.each(function() { let info {}; let rid jQuery(this).find(.item_rentalid)0.outerText; let split_rid rid.split(_); if(split_rid.length 3){ let parent_rid split_rid1; let main_item_rid split_rid0; infoacc_dd_parent_limit jQuery(#io_acc_accessorylimit_+main_item_rid+_+parent_rid)0.outerText; } infoname jQuery(this).find(.io_acc_li_name)0.outerText infoqtyincrement jQuery(this).find(.item_qtyincrement)0.outerText infoquantity jQuery(this).find(.item_required)0.outerText > 0 ? jQuery(this).find(.item_required)0.outerText : 1; inforentalid jQuery(this).find(.item_rentalid)0.outerText if(jQuery(this).find(.io_acc_li_img_thumb)0){ infoimage jQuery(this).find(.io_acc_li_img_thumb)0.src } if(jQuery(this).find(.item_accessorydd)0.outerText ! 1){ simpleCart.add(info, true); } }); checkAvailCartOnly(true); let last_upsell_call_time Date.now() - last_upsell_call; if(in_cart_upsell && last_upsell_call_time > 2000){ let rental_ids ; /* Get the last element in the cart. This is the last item added. */ last_added jQuery(id^cartItem_).last(); if(last_added.length){ last_added_children last_added.children(); for(let i 0; i last_added_children.length; ++i){ if(last_added_childreni.className item-rentalid) { rental_ids + last_added_childreni.innerText + |; } } } if(rental_ids.length>0 && jQuery(#cartPopover).attr(class) cartIn){ var times getAvailTimes(); last_upsell_call Date.now(); getUpsellsCall(times0,times1,times2,rental_ids,updateCartUpsell); } else{ jQuery(#cart-carousel-container).hide(); } } if(io_company_timeslots.length ! 0 && io_cartdayselect single_day){ filterTimeslotsByDay_itemTimeslots(); simpleCart.update(); } if (jQuery(.cartInfo.open,.ioCart.open, .ioCart_link.open).length 0) { setTimeout(function () { cartShow(); }, 100); } if(simpleCart.items().length0){ jQuery(.simpleCart_checkout).hide() }else{ jQuery(.simpleCart_checkout).show(); } if(simpleCart.items().length > 0){ let headerBookButton jQuery(ahref$io_quoteform/); headerBookButton.addClass(ioCart_link); headerBookButton.attr(href, javascript:;); } checkRestrictedDeliveries() if(jQuery(#ioInfoHeader).length){ header_increment_step(); } } function cart_afterQtyChange(){ let last_checkAvail_call_time Date.now() - last_checkAvail_call; if(last_checkAvail_call_time > 2000){ last_checkAvail_call Date.now(); checkAvailCart(); checkAvailCartTimeslots(); } } function cart_hideTimepickerWrapper(){ jQuery(.ui-timepicker-wrapper).hide(); } function cart_beforeRemove() { last_remove Date.now(); } function cart_afterRemove(removed_item){ checkAvailCart(); last_upsell_call_time Date.now() - last_upsell_call; if(in_cart_upsell && last_upsell_call_time > 2000){ rental_ids getAllRentalIDsFromCart(); if(rental_ids.length>0 && jQuery(#cartPopover).attr(class) cartIn){ var times getAvailTimes(); last_upsell_call Date.now(); getUpsellsCall(times0,times1,times2,rental_ids,updateCartUpsell); } else{ jQuery(#cart-carousel-container).hide(); } } /* IO-24060 */ simpleCart.items().forEach(function (item, index) { let expression ^ + removed_item.get(rentalid) + (?:_:\\d+)*; if(item.get(rentalid).match(expression)){ item.remove(); } }); checkAvailCartTimeslots(); checkRestrictedDeliveries(); if(simpleCart.items().length0){ jQuery(.simpleCart_checkout).hide() }else{ jQuery(.simpleCart_checkout).show(); } if(jQuery(#ioInfoHeader).length && simpleCart.items().length 0){ jQuery(#io-step-3).removeClass(io-step-active); jQuery(#io-step-2).addClass(io-step-active); jQuery(#io-step-2).removeClass(io-step-done) } } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descDate/Time Object/String Conversion Functions>*/ function getFormatteddate(date_obj){ if(dateFormat.substring(0,1)d){ let month date_obj.getMonth() + 1; formatteddate date_obj.getDate()+/+month+/+date_obj.getFullYear(); }else{ let month date_obj.getMonth() + 1; formatteddate month+/+date_obj.getDate()+/+date_obj.getFullYear(); } return formatteddate; } function getFormattedtime(date_obj){ var hour24 false; var ampm am; var starttime jQuery(nametimeStart).val(); if(starttime.length>0 && starttime.indexOf(m)-1) hour24 true; if(hour24){ //24 hour return return date_obj.getHours()+:+pad(date_obj.getMinutes(),2); }else{ //12 hour return var hour date_obj.getHours(); if(hour12) ampmpm; if(hour0) hour12; if(hour>12){ hour-12; ampmpm; } return hour+:+pad(date_obj.getMinutes(),2)+ +ampm; } } function buildDateobjectstring(date,dateformat,time){ var ampm am; var hour24 false; if(typeof date undefined) return; if(typeof dateformat undefined) return; var start_arr date.split(/); if(dateformat.substring(0,1)d){ date start_arr2+/+pad(start_arr1,2)+/+pad(start_arr0,2); }else{ date start_arr2+/+pad(start_arr0,2)+/+pad(start_arr1,2); } if(time.length>0 && time.indexOf(m)-1) hour24 true; if(hour24){ try{ var time_arr time.split(:); var hour parseInt(time_arr0); var min pad(time_arr1, 2); time hour + : + min + :00; }catch(err){ time ; } }else { try { time time.replace(am, ).replace( , ); if (time.indexOf(pm) ! -1) ampm pm; time time.replace(pm, ).replace( , ); var time_arr time.split(:); var hour parseInt(time_arr0); var min pad(time_arr1, 2); if (ampm pm) { if (hour 12) hour + 12; } else if (ampm am && hour 12) { hour - 12; } hour pad(hour, 2); time hour + : + min + :00; } catch (err) { time ; } } return date+ +time; } function pad(num, size) { var s num+; while (s.length size) s 0 + s; return s; } function convertDateStringtoDateObject(date_str, time_strnull){ if(date_str){ split_date_str date_str.split(/); /* Parse start and end time. */ if(time_str){ /* Check and see if we are in 12 hour format, if so convert it to 24 hour format. */ split_time_str convert12HourTo24Hour(time_str); }else{ /* If we do not have a time, then default to zeros */ split_time_str 0, 0; } /* Create date object based off our set date format. */ date_obj buildDateObj(split_date_str, split_time_str); return date_obj; }else{ return new Date(); } } function buildDateObj(split_date_str, split_time_str){ if (dateFormat d/m/yy){ return new Date(split_date_str2, (+split_date_str1 - 1).toString(), split_date_str0, split_time_str0, split_time_str1); }else{ return new Date(split_date_str2, (+split_date_str0 - 1).toString(), split_date_str1, split_time_str0, split_time_str1); } } function convert12HourTo24Hour(time_str){ /* This function returns an array containing hours and minutes of provided string in 24 hour format. */ /* This is primarily used for creating JS Date objects */ split_time time_str.split(:); /* We are in 12 hour format if there is an m attached to minutes portion. */ if(split_time1.toLowerCase().search(m) ! -1) { let separated_minutes split_time1.split( ); if(separated_minutes.length1){ split_time1 split_time1.replace(am, am); split_time1 split_time1.replace(pm, pm); separated_minutes split_time1.split( ); } let minutes separated_minutes0; let modifier separated_minutes1; split_time1 minutes; /* First assume that if the hours are 12, then its midnight. */ if(split_time0 12){ split_time0 00; } /* Second if there is a p in the modifier, then add twelve to the hours. */ if(typeof modifier ! undefined){ if(modifier.toLowerCase().search(p) ! -1){ split_time0 (parseInt(split_time0, 10) + 12); } } } return split_time; } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descCart Show and Hide>*/ function cartShow() { jQuery(#cartPopover).show(); jQuery(#cartPopover).removeClass(cartOut); jQuery(#cartPopover).addClass(cartIn); jQuery(.cartInfo,.ioCart,.ioCart_link).addClass(open); if (/Mobi|Android/i.test(navigator.userAgent)) { document.body.style.overflow hidden; } /* jQuery(this).one(click, cartHide); */ jQuery(.cartInfo).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartHide(); }); jQuery(.ioCart, .ioCart_link).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartHide(); }); jQuery(.cartIcon).removeClass(fa-shopping-cart).addClass(fa-close); if(simpleCart.items().length0){ jQuery(.simpleCart_checkout).hide() }else{ jQuery(.simpleCart_checkout).show(); } checkAvailCartOnly(); last_upsell_call_time Date.now() - last_upsell_call; if(in_cart_upsell && last_upsell_call_time > 2000){ rental_ids getAllRentalIDsFromCart(); if(rental_ids.length>0 && jQuery(#cartPopover).attr(class) cartIn){ var times getAvailTimes(); last_upsell_call Date.now(); getUpsellsCall(times0,times1,times2,rental_ids,updateCartUpsell); } else{ jQuery(#cart-carousel-container).hide(); } } } function cartHide() { jQuery(#cartPopover).removeClass(cartIn); jQuery(#cartPopover).addClass(cartOut); if (/Mobi|Android/i.test(navigator.userAgent)) { document.body.style.overflow auto; } /* jQuery(#cartPopover).hide(); */ jQuery(.cartInfo,.ioCart, .ioCart_link).removeClass(open); /* jQuery(this).one(click, cartShow); */ jQuery(.cartInfo).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartShow(); }); jQuery(.ioCart, .ioCart_link).unbind(click).one(click, function(event){ event.stopPropagation(); event.stopImmediatePropagation(); cartShow(); }); jQuery(.cartIcon).removeClass(fa-close).addClass(fa-shopping-cart); } /* function set_date_cookie(){ if(this.id.indexOf(start_) ! -1){ setCookie(dateStart, this.value, 14); } else if(this.id.indexOf(end_) ! -1){ setCookie(dateEnd, this.value, 14); } } */ jQuery(document).ready(function () {setTimeout(simpleCart.init, 3);}); /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descCheck Avail All Call>*/ function checkAvailAll(){ checkAvailCart(); checkAvailCartTimeslots(); checkAvailFilter(); if(addressCookiesSet() && io_distance_charge){ runDeliveryCall(true); } } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descCheck Avail - Page>*/ /* for items on page not in cart */ function checkAvailFilter() { let rental_names ; let rental_ids ; let batch_ids ; let cart_rental_names ; let cart_rental_ids ; let item_id ; let main_id ; jQuery(.item_encoded).each(function(){ rental_names + this.innerText + |; }); jQuery(.io_product_infobox .item_rentalid).each(function(){ rental_ids + this.innerText + |; item_id this.innerText; main_id this.innerText; }); let batch_count 0; let batch_index 0; jQuery(.io_item2_list_inner .item_rentalid).each(function(){ /* if(rental_ids.indexOf(this.innerText+|) -1){ rental_ids + this.innerText + |; } */ if(batch_count 9){ if(!batch_ids.length) batch_ids.push() if(!rid_in_batch(this.innerText + |, batch_ids).length){ batch_idsbatch_index + this.innerText + |; batch_count++; } }else{ if(!rid_in_batch(this.innerText + |, batch_ids).length){ batch_idsbatch_index + this.innerText + |; batch_index++; batch_count 0; batch_ids.push(); } } }); simpleCart.each(function (item, x) { var cart_name item.get(encoded); if(cart_namenull){ cart_name encodeURIComponent(item.get(name)); cart_name encodeURIComponent(decodeURIComponent(cart_name).replace(/\u2032\u2019+/ig,)); } let quantity item.get(quantity); if(item.get(inputtype) Map){ quantity 1 } cart_rental_names + cart_name + - + quantity + |; var cart_id item.get(rentalid); cart_rental_ids + cart_id + - + quantity + |; }); /* #14494 IO-13779 */ let delivery_methods_arr ; if(io_delivery_prices){ if(Object.keys(io_delivery_pricesoverride).includes(item_id)){ var delivery_prices io_delivery_pricesoverrideitem_id }else{ var delivery_prices io_delivery_pricesdefault } for(item in io_delivery_methods){ if(delivery_prices.includes(io_delivery_methodsitemid)){ delivery_methods_arr.push(item); } } } let custom_prices_arr ; if(io_custom_prices){ if(Object.keys(io_custom_pricesoverride).includes(item_id)){ custom_prices_arr io_custom_pricesoverrideitem_id }else{ custom_prices_arr io_custom_pricesdefault } } /* IO-13548 */ if(io_accessory_price on){ let times getAvailTimes(); let acc_rental_id_str getAccIDforPrice(); let return_id 0; if(acc_rental_id_str ! ){ checkAvailCall(times0,times1,times2,rental_names,acc_rental_id_str,displayAccessoryPrices,0,,,return_id,0,null,1,,1); } } let times getAvailTimes(); if(rental_names.length>0){ if(use_weekday_weekend){ let return_id 0; let week_weekend ; if(rental_ids ! ){ return_id 1; week_weekend get_week_weekend_times(times, main_id); checkAvailCall(week_weekendweekday0,week_weekendweekday1,week_weekendweekday2,rental_names,rental_ids,updatePageAvail_weekday,0,cart_rental_ids,cart_rental_names,return_id,1); checkAvailCall(week_weekendweekend0,week_weekendweekend1,week_weekendweekend2,rental_names,rental_ids,updatePageAvail_weekend,0,cart_rental_ids,cart_rental_names,return_id,1); } } let return_id 0; if(rental_ids ! || batch_ids.length){ return_id 1; } if(delivery_methods_arr && (rental_ids ! || batch_ids.length)){ delivery_methods_arr.forEach(function(delivery_method){ checkAvailCall(times0,times1,times2,rental_names,rental_ids,updatePageAvail_delivery_method,0,cart_rental_ids,cart_rental_names,return_id,1,delivery_method); }); } if(custom_prices_arr && (rental_ids ! || batch_ids.length)){ custom_prices_arr.forEach(function(custom_price){ let start_date times0; let start_time times1; if(!start_date){ start_date getFormatteddate(new Date()); } if(!start_time){ start_time io_default_start_time; } checkAvailCall(start_date,start_time,custom_priceduration,rental_names,rental_ids,updatePageAvail_custom_price,0,cart_rental_ids,cart_rental_names,return_id,1,,1,custom_pricename); }); } if(batch_ids.length){ batch_ids.forEach(function(rids){ return checkAvailCall(times0,times1,times2,,rids,updatePageAvail,0,cart_rental_ids,cart_rental_names,return_id,1,null,1,,1); }); }else{ return checkAvailCall(times0,times1,times2,rental_names,rental_ids,updatePageAvail,0,cart_rental_ids,cart_rental_names,return_id,1,null,1); } } } function get_week_weekend_times(times, rid){ /* Create a copy instead of reference.*/ let temp_times JSON.parse(JSON.stringify(times)); let start_date temp_times0; if(!start_date){ start_date getFormatteddate(new Date()); temp_times0 start_date; } temp_times1 io_default_start_time var newDate1 convertDateStringtoDateObject(start_date, io_default_start_time); var newDate2 convertDateStringtoDateObject(start_date, io_default_end_time); let time_duration ((newDate2 - newDate1) / 3600) / 1000; temp_times2 time_duration; let day new Date(start_date).getDay(); let weekday_weekend {}; weekday_weekendrid rid; if(io_weekendDefine friday-sunday){ if(day 5 || day 6 || day 0){ weekday_weekendweekend JSON.parse(JSON.stringify(temp_times)); temp_times0 getNextMonday(temp_times0); weekday_weekendweekday JSON.parse(JSON.stringify(temp_times)); }else if(day 1 || day 2 || day 3 || day 4){ weekday_weekendweekday JSON.parse(JSON.stringify(temp_times)); temp_times0 getNextSaturday(temp_times0); weekday_weekendweekend JSON.parse(JSON.stringify(temp_times)); } }else if(io_weekendDefine saturday-sunday){ if(day 6 || day 0){ weekday_weekendweekend JSON.parse(JSON.stringify(temp_times)); temp_times0 getNextMonday(temp_times0); weekday_weekendweekday JSON.parse(JSON.stringify(temp_times)); }else if(day 1 || day 2 || day 3 || day 4 || day 5){ weekday_weekendweekday JSON.parse(JSON.stringify(temp_times)); temp_times0 getNextSaturday(temp_times0); weekday_weekendweekend JSON.parse(JSON.stringify(temp_times)); } } return weekday_weekend; } /* helper function found here: https://bobbyhadz.com/blog/javascript-get-date-of-next-monday#:~:textTo%20get%20the%20next%20Monday%2C%20we%3A&textIf%20the%20remainder%20is%20equal,month%20for%20the%20next%20Monday. */ function getNextMonday(date_str) { const date_obj new Date(date_str); const nextMonday new Date( date_obj.setDate( date_obj.getDate() + ((7 - date_obj.getDay() + 1) % 7 || 7), ), ); return getFormatteddate(nextMonday); } /* modified from function above */ function getNextSaturday(date_str) { const date_obj new Date(date_str); const next_friday new Date( date_obj.setDate( date_obj.getDate() + ((7 - date_obj.getDay() + 6) % 7 || 7), ), ); return getFormatteddate(next_friday); } function updatePageAvail(data){ let use_id datareturn_id delete datareturn_id; if(use_id 1){ updatePageAvail_itemIDs(data) }else{ updatePageAvail_itemNames(data); } } function updatePageAvail_weekday(data){ jQuery.each(data, function (rental_id, qty){ if (rental_id price) { var prices qty; jQuery.each(prices, function (price_id, amt) { let cust_price document.querySelector(.io_product_cust_price_weekday); if(cust_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price_weekday); cust_price.style.display none; first_price.before(cust_price); } } main_item_id jQuery(.io_product_infobox .item_rentalid).first().text(); if(main_item_id price_id && cust_price!undefined){ if(typeof amt string) amt Number(amt.replace(,,)); cust_price.querySelector(p:nth-child(1)).innerHTMLsimpleCart.toCurrency(amt); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML io_weekDayText; if(amt>0){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } }); } function updatePageAvail_delivery_method(data){ var delivery_method datadelivery_method jQuery.each(data, function (rental_id, qty){ if (rental_id price) { var prices qty; jQuery.each(prices, function (price_id, amt) { let cust_price document.querySelector(.io_product_cust_price_delivery_method+io_delivery_methodsdelivery_methodid); let rid jQuery(.io_product_container .item_rentalid).first().text(); if(cust_priceundefined && !io_delivery_methodsdelivery_methodrestricted.includes(rid)){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price_delivery_method+io_delivery_methodsdelivery_methodid); cust_price.style.display none; first_price.before(cust_price); } } main_item_id jQuery(.io_product_infobox .item_rentalid).first().text(); if(main_item_id price_id && cust_price!undefined){ if(typeof amt string) amt Number(amt.replace(,,)); cust_price.querySelector(p:nth-child(1)).innerHTMLsimpleCart.toCurrency(amt); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML make_live_price_editable_time(times, delivery_method); if(amt>0 && event_time_set()){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } }); } function updatePageAvail_custom_price(data, custom_price_name){ let custom_price_class_name custom_price_name.replace(/\s:.//g, _); jQuery.each(data, function (rental_id, qty){ if (rental_id price) { var prices qty; jQuery.each(prices, function (price_id, amt) { let cust_price document.querySelector(.io_product_cust_price_+custom_price_class_name); let rid jQuery(.io_product_container .item_rentalid).first().text(); if(cust_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price_+custom_price_class_name); cust_price.style.display none; first_price.before(cust_price); } } main_item_id jQuery(.io_product_infobox .item_rentalid).first().text(); if(main_item_id price_id && cust_price!undefined){ if(typeof amt string) amt Number(amt.replace(,,)); cust_price.querySelector(p:nth-child(1)).innerHTMLsimpleCart.toCurrency(amt); cust_price.querySelector(p:nth-child(2)).innerHTML for + custom_price_name; if(amt>0){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } }); } function updatePageAvail_weekend(data){ jQuery.each(data, function (rental_id, qty){ if (rental_id price) { var prices qty; jQuery.each(prices, function (price_id, amt) { let cust_price document.querySelector(.io_product_cust_price_weekend); if(cust_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price_weekend); cust_price.style.display none; first_price.before(cust_price); } } main_item_id jQuery(.io_product_infobox .item_rentalid).first().text(); if(main_item_id price_id && cust_price!undefined){ if(typeof amt string) amt Number(amt.replace(,,)); cust_price.querySelector(p:nth-child(1)).innerHTMLsimpleCart.toCurrency(amt); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML io_weekEndText; if(amt>0){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } }); } function updatePageAvail_itemIDs(data){ jQuery.each(data, function (rental_id, qty){ if (rental_id price && jQuery(.io_product_infobox .item_inputtype).text() ! Map) { var prices qty; jQuery.each(prices, function (price_id, amt) { let cust_price document.querySelector(.io_product_cust_price); if(cust_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price); cust_price.style.display none; first_price.before(cust_price); } } main_item_id jQuery(.io_product_infobox .item_rentalid).first().text(); if(main_item_id price_id && cust_price!undefined){ if(typeof amt string) amt Number(amt.replace(,,)); cust_price.querySelector(p:nth-child(1)).innerHTMLsimpleCart.toCurrency(amt); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML make_live_price_editable_time(times); if(amt>0 && (event_time_set() || io_always_display_live_price on)){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } if(qty0 && rental_id ! delivery_method){ /* cat,all-item,widget */ if(io_checkavailwarn){ jQuery(.add_cart_+rental_id.replace(:, \\\:)+ .item_add).removeClass(item_add).addClass(item_add_off).trigger(classChange); jQuery(.unavailable_message_+rental_id.replace(:, \\\:)).show(); } if(io_checkavailhide) jQuery(.add_cart_+rental_id).parent().parent().hide(); /* product page */ if(jQuery(.io_product_container).length && io_checkavail!off && jQuery(.io_product_container .item_rentalid).first().text() rental_id){ jQuery(.add_cart_+rental_id.replace(:, \\\:)+ .item_add).first().removeClass(item_add).addClass(item_add_off).trigger(classChange); jQuery(.io_product_container .unavailable_message).show(); } }else if(qty>0){ if(io_checkavailwarn){ jQuery(.add_cart_+rental_id.replace(:, \\\:)+ .item_add_off).removeClass(item_add_off).addClass(item_add).trigger(classChange); jQuery(.unavailable_message_+rental_id.replace(:, \\\:)).hide(); } if(io_checkavailhide) jQuery(.add_cart_+rental_id).parent().parent().show(); /* product page */ if(jQuery(.io_product_container).length && io_checkavail!off && jQuery(.io_product_container .item_rentalid).first().text() rental_id){ jQuery(.add_cart_+rental_id.replace(:, \\\:)+ .item_add_off).removeClass(item_add_off).addClass(item_add).trigger(classChange); jQuery(.io_product_container .unavailable_message).hide(); } } }); } function updatePageAvail_itemNames(data){ jQuery.each(data, function (rental_name, qty) { rental_name rental_name.replace(/\u2032\u2019+/ig,); var main_name_temp ; if(typeof main_name_orig ! undefined){ main_name_temp main_name_orig.replace(/\u2032\u2019+/ig,); } rental_name_esc rental_name.replace(//g, \\\\); if (rental_name price) { var prices qty; jQuery.each(prices, function (price_name, amt) { /* var prices document.querySelector(.io_product_price_box:not(.io_product_cust_price)); */ /* if(prices ! null) prices.remove(); */ let cust_price document.querySelector(.io_product_cust_price); if(cust_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ cust_price first_price.cloneNode(true); /* clear all classes */ cust_price.className ; cust_price.classList.add(io_product_price_box); cust_price.classList.add(io_product_cust_price); cust_price.style.display none; first_price.before(cust_price); } } try{ var main_name decodeURIComponent(jQuery(.io_product_container .item_encoded).first().html().replace(/+/gi, %20)); }catch(e){main_name} var i main_name.lastIndexOf(:); let acc_name ; let rental_name ; var i main_name.lastIndexOf(:); if(i>0){ rental_name main_name.substring(0, i); acc_name main_name.substring(i+1); } if (acc_name.toUpperCase() price_name.toUpperCase() && cust_price!undefined){ var rental_id document.querySelector(.item_rentalid).innerText; if(rental_id ! null){ rid_arr rental_id.split(:); /* ignore the main id for this */ rental_id rid_arrrid_arr.length-1; if(jQuery(#io_acc_overrideprice_+rental_id).first().text()>0){ amt pricesacc_name; }else{ let item_price Number(pricesrental_name.replace(,,)); amt Number(amt.replace(,,)) + item_price; amt simpleCart.toCurrency(amt, {symbol:}) } } cust_price.querySelector(p:nth-child(1)).innerText$+amt; if(typeof amt string) amt Number(amt.replace(,,)); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML make_live_price_editable_time(times); if(amt>0 && (event_time_set() || io_always_display_live_price on)){ cust_price.style.display grid; }else{ cust_price.style.display none; } }else if(!rental_name && !acc_name && cust_price!undefined){ amt pricesmain_name; cust_price.querySelector(p:nth-child(1)).innerText$+amt; if(typeof amt string) amt Number(amt.replace(,,)); let times getAvailTimes(); cust_price.querySelector(p:nth-child(2)).innerHTML make_live_price_editable_time(times); if(amt>0 && (event_time_set() || io_always_display_live_price on)){ cust_price.style.display grid; }else{ cust_price.style.display none; } } }); } if(qty0){ /* cat,all-item,widget */ if(io_checkavailwarn){ jQuery(divnamemaindiv_+rental_name_esc+ .item_add).removeClass(item_add).addClass(item_add_off).trigger(classChange); jQuery(divnamemaindiv_+rental_name_esc+ .unavailable_message).show(); } if(io_checkavailhide) jQuery(divnamemaindiv_+rental_name_esc+).hide(); /* product page */ if(jQuery(.io_product_container).length && io_checkavail!off){ if(main_name_temprental_name){ jQuery(.io_product_container .item_add).first().removeClass(item_add).addClass(item_add_off).trigger(classChange); jQuery(.io_product_container .unavailable_message).show(); } } }else if(qty>0){ /* console.log(good); */ if(io_checkavailwarn){ jQuery(divnamemaindiv_+rental_name_esc+ .item_add_off).removeClass(item_add_off).addClass(item_add).trigger(classChange); jQuery(divnamemaindiv_+rental_name_esc+ .unavailable_message).hide(); } if(io_checkavailhide) jQuery(divnamemaindiv_+rental_name_esc+).show(); /* product page */ if(jQuery(.io_product_container).length && io_checkavail!off){ if(main_name_temprental_name){ jQuery(.io_product_container .item_add_off).removeClass(item_add_off).addClass(item_add).trigger(classChange); jQuery(.io_product_container .unavailable_message).hide(); } } } }); } function displayAccessoryPrices(data){ if(data.price){ let acc_prices data.price; for (const key, value of Object.entries(acc_prices)) { let new_key key; if((key.match(/_/g)||).length > 1){ let split_key key.split(_); let second_to_last split_keysplit_key.length-2; let last split_keysplit_key.length-1; new_key second_to_last+_+last; } if(io_hide_zero 1 && value > 0){ let id_string #io_acc_desc_ + new_key; let formatted_price simpleCart.toCurrency(value); if(jQuery(#io_acc_+new_key+ .io_acc_price).length > 0){ jQuery(#io_acc_+new_key+ .io_acc_price).html(formatted_price); }else{ let price_display span classio_acc_price> +formatted_price+ /span>; jQuery(id_string).after(price_display); } }else if(io_hide_zero 0){ let id_string #io_acc_desc_ + new_key; let formatted_price simpleCart.toCurrency(value); if(jQuery(.io_acc_price).length > 0){ jQuery(.io_acc_price).html(formatted_price); }else{ let price_display span classio_acc_price> +formatted_price+ /span>; jQuery(id_string).after(price_display); } } } } } function make_live_price_editable_time(times, delivery_methodnull) { if(!delivery_method) delivery_method getCookie(io_delivery_method); let ele_text ; if(times0) ele_text on + times0 + ; if(times2 0) times2 1; if(io_hidetimes!on && !isNaN(times2)) ele_text + for +times2+ hours ; if(delivery_method) ele_text + for + delivery_method + . ; ele_text + span stylecursor:pointer; color:blue; text-decoration:underline; onclickcheckAvailDateClick()>edit/span>; return ele_text; } function checkAvailDateClick(){ cartShow(); /* expand the date picker */ setTimeout(calSetDateRange,100); } function checkAvailPageOnly(){ checkAvailFilter(); if(addressCookiesSet() && io_distance_charge){ runDeliveryCall(true); } } function getAccIDforPrice(){ let accessory_arr jQuery(.io_acc_li).toArray(); let acc_rental_id_str ; for(let current_accessory 0; current_accessory accessory_arr.length; current_accessory++){ let required_tag jQuery(accessory_arrcurrent_accessory).find(.item_required); if(required_tag.length > 0){ if(required_tag0.innerText 0){ acc_rental_id_str + jQuery(accessory_arrcurrent_accessory).find(.item_rentalid)0.innerText +|; } } } return acc_rental_id_str; } function getUpsellIDforPrice(){ let upsell_arr jQuery(.page-carousel-rid).toArray(); let upsell_rental_id_str ; for(let current_upsell 0; current_upsell upsell_arr.length; current_upsell++){ upsell_rental_id_str +upsell_arrcurrent_upsell.innerText+|; } return upsell_rental_id_str; } function displayUpsellPrices(data){ if(data.price){ let upsell_prices data.price; for (const key, value of Object.entries(upsell_prices)) { if(io_hide_zero 1 && value > 0){ let id_string #rid+ key; let formatted_price simpleCart.toCurrency(value); let price_display span classpage-carousel-price> +formatted_price+ /span>; jQuery(id_string).after(price_display); }else if(io_hide_zero 0){ let id_string #rid+ key; let formatted_price simpleCart.toCurrency(value); let price_display span classpage-carousel-price> +formatted_price+ /span>; jQuery(id_string).after(price_display); } } pageFlickityRefresh(); } } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descCheck Avail - Cart>*/ function checkAvailCartOnly(skip_timerfalse){ checkAvailCart(); checkAvailCartTimeslots(); if(addressCookiesSet() && io_distance_charge){ runDeliveryCall(true); } } function checkAvailCartTimeslots(){ let rental_names ; let rental_ids ; let cart_rental_names ; let cart_rental_ids ; let times getAvailTimes(); let start_date times0; let event_duration times2; let end_date start_date; var event_start_time getCookie(timeStart); simpleCart.each(function (item, x) { var timeslots_html item.get(timeslots); if(typeof timeslots_html undefined) return; if(timeslots_html.length 0) return; var cart_name item.get(encoded); if(cart_namenull) { cart_name encodeURIComponent(item.get(name)); cart_name encodeURIComponent(decodeURIComponent(cart_name).replace(/\u2032\u2019+/ig,)); } rental_id item.get(rentalid); var timeslot_name getTimeslotName(timeslots_html); var timeslot_sel_range jQuery(.item-timeslots name\+timeslot_name+\ option:selected).val(); if(typeof timeslot_sel_range ! undefined){ /* timeslots */ setTimeslotSelected(item, timeslot_name); }else{ /* timepickers */ setTimePicker(item, timeslot_name); let start_timepicker document.getElementsByName(timeslot_name.replace(io_timepicker_, start_timeslot_)); let end_timepicker document.getElementsByName(timeslot_name.replace(io_timepicker_, end_timeslot_)); timeslot_sel_range start_timepickerstart_timepicker.length-1.value; timeslot_sel_range + - + end_timepickerend_timepicker.length-1.value; } var timeslot_sel_arr ; if(typeof timeslot_sel_range ! undefined){ var start_time, end_time break_timeslot_sel_range(timeslot_sel_range); if(start_time && end_time){ let newDate1 convertDateStringtoDateObject(start_date, start_time); let newDate2 convertDateStringtoDateObject(end_date, end_time); let time_duration ((newDate2 - newDate1) / 3600) / 1000; let quantity item.get(quantity); if(item.get(inputtype) Map){ quantity 1 } rental_names + cart_name + - + quantity+|; rental_ids + rental_id+-+quantity+-+start_time+-+time_duration+|; cart_rental_names rental_names; cart_rental_ids rental_ids; } } }); if(rental_ids || rental_names){ checkAvailCall(start_date,event_start_time,event_duration,rental_names,rental_ids,updateCartAvail,1,cart_rental_ids,cart_rental_names,1); } return true; } function checkAvailCart(){ let rental_names ; let rental_ids ; let cart_rental_names ; let cart_rental_ids ; simpleCart.each(function (item, x) { if(typeof item.get(timeslots) ! undefined){ if(item.get(timeslots).length > 0){ return; } } var cart_name item.get(encoded); if(cart_namenull){ cart_name encodeURIComponent(item.get(name)); cart_name encodeURIComponent(decodeURIComponent(cart_name).replace(/\u2032\u2019+/ig,)); } let quantity item.get(quantity); if(item.get(inputtype) Map){ quantity 1 } rental_names + cart_name + - + quantity + |; cart_rental_names + cart_name + - + quantity + |; var cart_id item.get(rentalid); rental_ids + cart_id + - + quantity + |; cart_rental_ids + cart_id + - + quantity + |; }); var times getAvailTimes(); let return_id 0; if(rental_ids ! ){ return_id 1; } return checkAvailCall(times0,times1,times2,rental_names,rental_ids,updateCartAvail,1,cart_rental_ids,cart_rental_names,return_id); } function updateCartAvail(data){ let use_id datareturn_id delete datareturn_id; if(use_id 1){ updateCartAvail_itemIDs(data) }else{ updateCartAvail_itemNames(data); } console.log(cart update); /* simpleCart.trigger(update); */ simpleCart.update(); /* jQuery(#avail).html(output); */ } function updateCartAvail_itemIDs(data){ jQuery.each(data, function (rental_id, qty){ simpleCart.each(function (item, x) { if(rental_id item.get(rentalid)){ if(io_hideQuantityAvail off){ if(qty>9999 || item.get(inputtype) Map || (item.get(giftcardvalue) && item.get(giftcardvalue).trim())){ item.set(availability, available); }else{ item.set(availability, qty + available); } }else if(io_hideQuantityAvail on){ if(qty0){ item.set(availability, not available); }else{ item.set(availability, available); } } var vendorid item.get(vendorid); if(vendorid && vendorid.trim()){ item.set(availability, availability must be verified); } } if (rental_id price) { var prices qty; jQuery.each(prices, function (price_name, amt) { if(price_name item.get(rentalid)){ if (typeof amt string || amt instanceof String){ if(amt ! TBD){ if(typeof amt string) amt Number(amt.replace(,,)); } } item.set(price, amt); } }); } }); }); } function updateCartAvail_itemNames(data){ jQuery.each(data, function (rental_name, qty) { rental_name rental_name.replace(/\u2032\u2019+/ig,); simpleCart.each(function (item, x) { try{ var cart_name decodeURIComponent(item.get(encoded).replace(/+/gi, %20)); }catch(e){cart_namenull} if(cart_namenull) cart_name item.get(name) cart_name cart_name.replace(/\u2032\u2019+/ig,); var i cart_name.lastIndexOf(:); if(i>0 && cart_name.toUpperCase() ! rental_name.toUpperCase() && rental_name!price){cart_name cart_name.substring(i+1)} if (cart_name.toUpperCase() rental_name.toUpperCase()) { if(qty>9999){ item.set(availability, available); }else{ item.set(availability, qty + available); } } if (rental_name price) { var prices qty; jQuery.each(prices, function (price_name, amt) { price_name price_name.replace(/\u2032\u2019+/ig,); let acc_name ; let rental_name ; var i cart_name.lastIndexOf(:); if(i>0){ rental_name cart_name.substring(0, i); acc_name cart_name.substring(i+1); } if (acc_name price_name) { var rental_id item.get(rentalid); if(rental_id ! null){ rid_arr rental_id.split(:); /* ignore the main id for this */ rental_id rid_arrrid_arr.length-1; if(jQuery(#io_acc_overrideprice_+rental_id).first().text()>0){ amt pricesacc_name; }else{ let item_price Number(pricesrental_name.replace(,,)); amt Number(amt.replace(,,)) + item_price; item.set(price, amt); return; } } if(amtnull){ amt 0; } /* returned price is per unit */ if(typeof amt string) amt Number(amt.replace(,,)); item.set(price, amt); }else if(!rental_name && !acc_name){ amt Number(pricescart_name.replace(,,)); item.set(price, amt); } }); } }); }); } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descUpsell Carousels>*/ function updateCartUpsell(data){ let cart_carousel jQuery(.cart-carousel); viewport jQuery(.cart-carousel .flickity-viewport); if(viewport.length > 0){ cart_carousel.flickity(destroy); } cart_carousel.empty(); data.forEach(function(upsell){ cell createCartCarouselCell(upsellimage, upsellname, upsellpage); cart_carousel.append(cell); }); makeCarousel(cart_carousel); jQuery(#cart-carousel-container).show(); setTimeout(cartFlickityRefresh, 500); } function cartFlickityRefresh(){ jQuery(.cart-carousel).flickity(resize); } function makeCarousel(cart_carousel){ cart_carousel.flickity({ wrapAround: true, draggable: false, cellAlign: left, //autoPlay: 3000, groupCells: true, resize: true }); cart_carousel_set true; } function createCartCarouselCell(image, name, page){ cell div classio_cart_carousel_cell> a href+page+ classcart-carousel-link> img classcart-carousel-image src+image+> p classcart-carousel-name> +name+ /p> /a> /div>; return cell; } /*/editor-fold>*/ /*editor-fold defaultstatecollapsed descAjax Calls>*/ function checkAvailCall(start_date,start_time,time_duration,rental_names,rental_ids,returnFunc,singleCart,cart_rental_ids,cart_rental_names,return_id,temp0,delivery_methodnull,price_only0,custom_price_name, skip_hidden_lead 0) { /* IO-21459 If we have no duration set (event not set in cart), and we are doing the call for the page live price, and we have the setting on where we want to display this price even if the event date is not set: We set the time_duration to 1 hour. This defaults the start date to January 1, 1970 with duration of 1 hour in the lead meaning it will be available and we have the one hour price. */ if((isNaN(time_duration) || time_duration0) && price_only1 && io_always_display_live_price on){ time_duration 1; }else if((isNaN(time_duration) || time_duration0) && price_only0 && io_hidetimes on){ /* IO-22689 if they have times hidden, and happen to have the same default start and end time, we still want to do the call. */ time_duration 1; }else if(isNaN(time_duration) || time_duration0){ return; } url https://rental.software/quotes/check_availability_v2.php?callback?; if(window.location.href.indexOf(localhost) > -1){ //url http://localhost/bugs/quotes/check_availability_v2.php?callback?; url http://localhost/io/bugs/quotes/check_availability_v2.php?callback?; //url http://localhost/jbug/trunk/quotes/check_availability_v2.php?callback?; } if(!delivery_method) delivery_method getCookie(io_delivery_method); let address_data { address: getCookie(address), state: getCookie(state), city: getCookie(city), zip: getCookie(zip) }; url + &name + encodeURIComponent(Rocky Mountain Roll) + &startdate + start_date + &starttime + start_time + &duration + time_duration + &street + encodeURIComponent(address_dataaddress) + &city + encodeURIComponent(address_datacity) + &state + encodeURIComponent(address_datastate) + &zip + encodeURIComponent(address_datazip) + &single_cart + singleCart + &usecushion1 + &include_price1 + &showlocations0 + &rental_names + rental_names + &rental_ids + rental_ids + &cart_rental_names + cart_rental_names + &cart_rental_ids + cart_rental_ids + &return_id + return_id + &delivery_method + delivery_method + &temp + temp + &skip_hidden_lead+ skip_hidden_lead; if(custom_price_name){ jQuery.getJSON(url, function(data) { returnFunc(data, custom_price_name); }); }else{ jQuery.getJSON(url, returnFunc); } } function getUpsellsCall(start_date,start_time,time_duration,rental_ids,returnFunc) { if(rental_ids.replace(/|/g,).length0){return;} url https://rental.software/quotes/in_cart_upsell.php?callback?; if(window.location.href.indexOf(localhost) > -1){ //url http://localhost/bugs/quotes/in_cart_upsell.php?callback? url http://localhost/io/bugs/quotes/in_cart_upsell.php?callback? } url + &name + encodeURIComponent(Rocky Mountain Roll) + &startdate + start_date + &starttime + start_time + &duration + time_duration + &usecushion1 + &include_price1 + &showlocations0 + &rental_ids + rental_ids; //IO-25557 if(window.location.href.indexOf(dev.rental.software) > -1)//if it is a dev site, we need to send { let pattern /(https:\/\/dev\.rental\.software\/^\/+\/)/; let matches window.location.href.match(pattern); matches && matches.length > 0 ? url + &site + matches0:0; } else { url + &site + window.location.host; } jQuery.getJSON(url, returnFunc); } /*/editor-fold>*//script> div classaddress_entry elementor-widget-text-editor>table>tr>td> label foraddress idio_cdl_address_label styledisplay: table-cell> Street Address /label>/td>td> input idio_cd_address styledisplay: table-cell nameaddress typetext>/input>/td>/tr>tr>td> label forcity idio_cdl_city_label styledisplay: table-cell> City /label>/td>td> input idio_cd_city styledisplay: table-cell namecity typetext>/input>/td>/tr>tr idus-state-select>td> label forstate idio_cdl_state_label styledisplay: table-cell> State /label>/td>td> select namestate idio_cd_state styledisplay: table-cell classinput-mini>option value>/option>option valueAK>AK/option>option valueAL>AL/option>option valueAR>AR/option>option valueAZ>AZ/option>option valueCA>CA/option>option valueCO>CO/option>option valueCT>CT/option>option valueDC>DC/option>option valueDE>DE/option>option valueFL>FL/option>option valueGA>GA/option>option valueHI>HI/option>option valueIA>IA/option>option valueID>ID/option>option valueIL>IL/option>option valueIN>IN/option>option valueKS>KS/option>option valueKY>KY/option>option valueLA>LA/option>option valueMA>MA/option>option valueMD>MD/option>option valueME>ME/option>option valueMI>MI/option>option valueMN>MN/option>option valueMO>MO/option>option valueMS>MS/option>option valueMT>MT/option>option valueNC>NC/option>option valueND>ND/option>option valueNE>NE/option>option valueNH>NH/option>option valueNJ>NJ/option>option valueNM>NM/option>option valueNV>NV/option>option valueNY>NY/option>option valueOH>OH/option>option valueOK>OK/option>option valueOR>OR/option>option valuePA>PA/option>option valueRI>RI/option>option valueSC>SC/option>option valueSD>SD/option>option valueTN>TN/option>option valueTX>TX/option>option valueUT>UT/option>option valueVA>VA/option>option valueVT>VT/option>option valueWA>WA/option>option valueWI>WI/option>option valueWV>WV/option>option valueWY>WY/option> /select>/td>/tr>tr>td> label forzip idio_cdl_zip_label styledisplay: table-cell> Zip Code /label>/td>td> input idio_cd_zip styledisplay: table-cell namezip typetext>/input>/td>/tr>/table> a classelementor-button elementor-size-sm io_button idaddress_entry_submit hrefjavascript:;> Save Address /a>div iddelivery_charge_info_box>hr>h3 idinfo_box_header>/h3>p idinfo_box_information>/p> a hrefjavascript:; onClickcloseAddressEntry() classdelivery_info_continue elementor-button elementor-size-sm io_button>Continue Shopping/a>/div>/div> script>/* for checking delivery */ function runDeliveryCall(cart_only false){ let address_fields jQuery(id^io_cd_); let address_data { address: getCookie(address), state: getCookie(state), city: getCookie(city), zip: getCookie(zip) }; let times getAvailTimes(); let start_date times0; let end_date start_date; let start_time times1; let duration times2; let rental_ids ; simpleCart.each(function (item, x) { if(typeof item.get(timeslots) ! undefined){ if(item.get(timeslots).length > 0){ var timeslots_html item.get(timeslots); var rental_id item.get(rentalid); if(typeof timeslots_html undefined) return; if(timeslots_html.length 0) return; var timeslot_name getTimeslotName(timeslots_html); var timeslot_sel_range jQuery(.item-timeslots name\+timeslot_name+\ option:selected).val(); if(typeof timeslot_sel_range ! undefined){ /* timeslots */ setTimeslotSelected(item, timeslot_name); }else{ /* timepickers */ setTimePicker(item, timeslot_name);//todo? let start_timepicker document.getElementsByName(timeslot_name.replace(io_timepicker_, start_timeslot_)); let end_timepicker document.getElementsByName(timeslot_name.replace(io_timepicker_, end_timeslot_)); timeslot_sel_range start_timepickerstart_timepicker.length-1.value; timeslot_sel_range + - + end_timepickerend_timepicker.length-1.value; } var timeslot_sel_arr ; if(typeof timeslot_sel_range ! undefined){ timeslot_sel_arr timeslot_sel_range.split( - ); var timeslot_start_time timeslot_sel_arr0.replace(am, am).replace(pm, pm).replace( , ); var timeslot_end_time timeslot_sel_arr1.replace(am, am).replace(pm, pm).replace( , ); if(timeslot_start_time && timeslot_end_time){ let newDate1 convertDateStringtoDateObject(start_date, timeslot_start_time); let newDate2 convertDateStringtoDateObject(end_date, timeslot_end_time); let timeslot_duration ((newDate2 - newDate1) / 3600) / 1000; rental_ids + rental_id+-+item.get(quantity)+-+timeslot_start_time+-+timeslot_duration+|; } } } } else{ var cart_id item.get(rentalid); rental_ids + cart_id + - + item.get(quantity) + |; } }); address_fields.each(function() { let field this.id.split(_)2; value this.value; if(!value && !address_datafield){ jQuery(this).addClass(invalid_address_field) } else if(value){ jQuery(this).removeClass(invalid_address_field) address_datafield this.value; } }); if(jQuery(.invalid_address_field).length > 0){ return; } getCookie(io_delivery_method) setCookie(address, address_dataaddress, 14); setCookie(city, address_datacity, 14); setCookie(state, address_datastate, 14); setCookie(zip, address_datazip, 14); cart_total simpleCart.total(); if(cart_total TBD) cart_total 0; url https://rental.software/quotes/get_delivery_info.php?callback?; if(window.location.href.indexOf(localhost) > -1){ //url http://localhost/bugs/quotes/get_delivery_info.php?callback?; url http://localhost/io/bugs/quotes/get_delivery_info.php?callback?; } url + &name + encodeURIComponent(Rocky Mountain Roll) + &rental_ids + rental_ids + &street + encodeURIComponent(address_dataaddress) + &city + encodeURIComponent(address_datacity) + &state + encodeURIComponent(address_datastate) + &zip + encodeURIComponent(address_datazip) + &startdate + start_date + &starttime + start_time + &duration + duration + &delivery_method + encodeURIComponent(getCookie(io_delivery_method)) + &total + cart_total jQuery.getJSON(url, function(data){ if(datadelivery_restrict 1){ datacharge 0; } handleDeliveryInfo(data, cart_only); }); } function handleDeliveryInfo(data, cart_only false){ jQuery(#deliverSubtotalContainer).show(); jQuery(#checkDeliveryMessage).hide(); let info_box jQuery(#delivery_charge_info_box); if(datadelivery_restrict 1){ jQuery(#info_box_header).text(Sorry...); jQuery(#info_box_information).text(dataerror) setDeliverySubtotal(datacharge, true) } else{ setDeliverySubtotal(datacharge) jQuery(#info_box_header).text(Success!); if(datacharge > 0){ jQuery(#info_box_information).html(We are able to deliver to your location with a + simpleCart.toCurrency(datacharge) + fee!); } else{ jQuery(#info_box_information).html(We are able to deliver to your location with no charge!); } } if(simpleCart.items().length 0 && cart_only){ jQuery(#info_box_header).text(Items Required.); jQuery(#info_box_information).html(There needs to be items in your cart to check for delivery fees. But we will save the address information so you dont have to enter it again!) } info_box.show(); jQuery.fancybox.update(jQuery(.address_entry)); } function showAddressEntry(cart_onlyfalse){ cartHide(); jQuery(.invalid_address_field).removeClass(invalid_address_field) jQuery(#delivery_charge_info_box).hide(); jQuery(#io_cd_address).val(getCookie(address)); jQuery(#io_cd_state).val(getCookie(state)); jQuery(#io_cd_city).val(getCookie(city)); jQuery(#io_cd_zip).val(getCookie(zip)); if(!cart_only){ jQuery(#address_entry_submit).on(click, null, function(){ runDeliveryCall(); }); } else{ jQuery(#address_entry_submit).on(click, null, function(){ runDeliveryCall(cart_only); }); } jQuery.fancybox.open(jQuery(.address_entry)); } function closeAddressEntry(){ jQuery.fancybox.close(); } function setDeliverySubtotal(amount, unavailablefalse){ if(unavailable){ jQuery(#deliverySubtotal).html(Unavailable); } else{ jQuery(#deliverySubtotal).html(simpleCart.toCurrency(amount)); } } function addressCookiesSet(){ if(getCookie(address) && getCookie(state) && getCookie(city) && getCookie(zip)){ return true; } else{ return false } }/script>script>let map; let geocoder; let item_id_map; let drawingManager; let drawingListener; let polygons new Array(); let polyline_markers new Array(); let polylines new Array(); let previous_marker; current_polyline undefined; let previous_map_height ; function initMap() { map new google.maps.Map(document.getElementById(map_container), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, mapTypeId: hybrid, disableDefaultUI: true, tilt: 0 }); drawingManager new google.maps.drawing.DrawingManager({ drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: google.maps.drawing.OverlayType.POLYGON, , } }); geocoder new google.maps.Geocoder(); } function io_geocode(){ let prefix #io_mc_ let request let address_value ; if(jQuery(prefix+address).length) { address_value jQuery(prefix+address).val(); if(address_value) setCookie(address, jQuery(#io_mc_address).val(), 14); } let city_value ; if(jQuery(prefix+city).length){ city_value jQuery(prefix+city).val(); if(city_value) setCookie(city, jQuery(#io_mc_city).val(), 14); } let state_value ; if(jQuery(prefix+state).length){ state_value jQuery(prefix+state).val(); if(state_value) setCookie(state, jQuery(#io_mc_state).val(), 14); } let zip_value ; if(jQuery(prefix+zip).length){ zip_value jQuery(prefix+zip).val(); if(zip_value) setCookie(zip, jQuery(#io_mc_zip).val(), 14); } request address_value + + city_value + + state_value + + zip_value; if(request){ geocoder.geocode({address:request}).then((result) > { const { results } result; map.setCenter(results0.geometry.location); map.setZoom(24); return results; }); } if(!addressProvided()) { jQuery(#io_map_address_entry).attr(open, open); }else{ jQuery(#io_map_address_entry).removeAttr(open); } } function openMap(element){ cartHide() io_map_clear() let unit meters if(country US) unit feet polygons new Array(); polyline_marker_sets new Array(); polylines new Array(); previous_marker undefined; current_polyline undefined; jQuery(#io_mc_address).val(getCookie(address)); jQuery(#io_mc_state).val(getCookie(state)); jQuery(#io_mc_city).val(getCookie(city)); jQuery(#io_mc_zip).val(getCookie(zip)); io_geocode(); google.maps.event.removeListener(drawingListener); if(element.id calcPriceOpenMap){ item_id_map jQuery(.io_product_infobox .item_rentalid).text(); if(jQuery(.io_product_infobox .item_qtytype).text() Area){ setMapTools_Area(unit, true) }else if(jQuery(.io_product_infobox .item_qtytype).text() Perimeter){ setMapTools_Perimeter(unit, true) } } else{ item_id_map jQuery(element).parent().parent().find(.item-rentalid).text(); if(jQuery(element).parent().parent().find(.item-qtytype).text() Area){ setMapTools_Area(unit) }else if(jQuery(element).parent().parent().find(.item-qtytype).text() Perimeter){ setMapTools_Perimeter(unit) } } } function addressProvided(){ if(jQuery(#io_mc_address).val() && jQuery(#io_mc_state).val() && jQuery(#io_mc_city).val() && jQuery(#io_mc_zip).val() ){ return true; } return false; } function setMapTools_Area(unit, item_pagefalse){ jQuery.fancybox.open(jQuery(.map_fancybox)); drawingManager.setOptions({ drawingControlOptions: { drawingModes: google.maps.drawing.OverlayType.POLYGON }, drawingMode: google.maps.drawing.OverlayType.POLYGON, polygonOptions: { fillColor: #0191fc, strokeColor: #0113fc }, }); let units meters if(country US) units feet jQuery(#io_measurement_input_label).text(Approximate area in +units+: ); jQuery(#io_map_manual_input).off(click); jQuery(#io_map_manual_input).on(click, function(){manual_calc_price(Area, item_page)}); jQuery(#io_perimeter_options_container).hide(); jQuery(#io_map_new_line_container).hide(); jQuery(#io_map_instructions).html(Use the map below to take measurements by clicking on each corner of the area you want to measure. span id\io_map_additional_instructions\>You can draw multiple polygons to include multiple separate surfaces in the total area. Press Clear to remove all polygons and start again. Alternatively if you know the approximate area in +units+ you can enter the measurement manually below. When finished press Done and the price of the item will be updated /span>i id\io_show_more_instructions\ onClick\show_more_instruct_click(this)\>(more)/i>) drawingListener google.maps.event.addListener(drawingManager, polygoncomplete, function(polygon) { polygons.push(polygon); let convert_feet 1; if(country US) convert_feet 10.764; let approx_area 0; polygons.forEach(function(polygon) { approx_area + google.maps.geometry.spherical.computeArea(polygon.getPath()) * convert_feet; }); calcprice_approx_area(Math.round(approx_area)); }); drawingManager.setMap(map); } function setMapTools_Perimeter(unit, item_pagefalse){ jQuery.fancybox.open(jQuery(.map_fancybox)); drawingManager.setOptions({ drawingControlOptions: { drawingModes: google.maps.drawing.OverlayType.MARKER }, drawingMode: google.maps.drawing.OverlayType.MARKER }); let height jQuery(#perimeter_height).val(); let units ; if(height){ units sq meters if(country US) units sq feet jQuery(#io_measurement_input_label).text(Approximate surface area in +units+: ); jQuery(#io_map_instructions).html(Use the map below to take measurements by clicking on each corner of the area you want to measure. span id\io_map_additional_instructions\>You can add additional lines by clicking Add New Line button to include more structures into the total. Press Clear to remove all lines and start again. Alternatively if you know the approximate surface area in +units+ you can enter the measurement manually below. When finished press Done and the price of the item will be updated /span>i id\io_show_more_instructions\ onClick\show_more_instruct_click(this)\>(more)/i>) }else{ units meters if(country US) units feet jQuery(#io_measurement_input_label).text(Approximate perimeter in +units+: ); jQuery(#io_map_instructions).html(Use the map below to take measurements by clicking on each corner of the area you want to measure. span id\io_map_additional_instructions\>You can add additional lines by clicking Add New Line button to include more structures into the total. Press Clear to remove all lines and start again. Alternatively if you know the approximate perimeter in +units+ you can enter the measurement manually below. When finished press Done and the price of the item will be updated /span>i id\io_show_more_instructions\ onClick\show_more_instruct_click(this)\>(more)/i>) } jQuery(#io_map_manual_input).off(click); jQuery(#io_map_manual_input).bind(click, function(){manual_calc_price(Perimeter, item_page)}); jQuery(#perimeter_height).bind(change, function(){change_perimeter_instructions()}); jQuery(#io_perimeter_options_container).show(); jQuery(#io_map_clear_container).show(); jQuery(#io_map_new_line_container).show(); current_polyline new google.maps.Polyline({ map: map, path: , strokeColor: #0113fc, strokeOpacity: 1.0, strokeWeight: 2 }) drawingListener google.maps.event.addListener(drawingManager, markercomplete, function(marker) { polyline_markers.push(marker) marker.setVisible(false); current_polyline.getPath().push(marker.getPosition()) if(previous_marker){ let convert_feet 1; if(country US) convert_feet 3.281; let approx_perimeter 0; polylines.forEach(function(polyline) { if(convert_feet > 1) convert_feet 10.764 approx_perimeter + google.maps.geometry.spherical.computeArea(polyline.getPath()) * convert_feet; }); approx_perimeter + google.maps.geometry.spherical.computeLength(current_polyline.getPath()) * convert_feet; calcprice_approx_perimeter(Math.round(approx_perimeter)); } previous_marker marker; }); jQuery(#perimeter_height_contianer).show(); drawingManager.setMap(map); } function change_perimeter_instructions(){ let height jQuery(#perimeter_height).val(); if(height){ units sq meters if(country US) units sq feet jQuery(#io_measurement_input_label).text(Approximate surface area in +units+: ); jQuery(#io_map_instructions).html(Use the map below to take measurements by clicking on each corner of the area you want to measure. span id\io_map_additional_instructions\>You can add additional lines by clicking Add New Line button to include more structures into the total. Press Clear to remove all lines and start again. Alternatively if you know the approximate surface area in +units+ you can enter the measurement manually below. When finished press Done and the price of the item will be updated /span>i id\io_show_more_instructions\ onClick\show_more_instruct_click(this)\>(more)/i>) }else { units meters if(country US) units feet jQuery(#io_measurement_input_label).text(Approximate perimeter in +units+: ); jQuery(#io_map_instructions).html(Use the map below to take measurements by clicking on each corner of the area you want to measure. span id\io_map_additional_instructions\>You can add additional lines by clicking Add New Line button to include more structures into the total. Press Clear to remove all lines and start again. Alternatively if you know the approximate perimeter in +units+ you can enter the measurement manually below. When finished press Done and the price of the item will be updated /span>i id\io_show_more_instructions\ onClick\show_more_instruct_click(this)\>(more)/i>) } } function manual_calc_price(method, item_page){ let approx_measurement parseInt(jQuery(#io_measurement_input).val()); let units ; if(approx_measurement){ if(method Area){ units sq meters if(country US) units sq feet }else if(method Perimeter){ let height jQuery(#perimeter_height).val(); if(height){ units sq meters if(country US) units sq feet }else{ units meters if(country US) units feet } } simpleCart.items().forEach(function (item, index){ if(item.get(rentalid) item_id_map){ item.set(units, units); item.set(quantity, approx_measurement); } }); simpleCart.update(); if(item_page || jQuery(.io_product_infobox .item_rentalid).text() item_id_map) set_price_on_item_page(units, approx_measurement); if(!item_page) cartShow(); } jQuery.fancybox.close(); } function calcprice_approx_area(approx_area){ jQuery(#io_measurement_input).val(approx_area); } function calcprice_approx_perimeter(approx_perimeter){ let height jQuery(#perimeter_height).val(); if(height && height > 0) approx_perimeter * parseInt(height); jQuery(#io_measurement_input).val(approx_perimeter); } function set_price_on_item_page(units, measurement){ let measurement_price document.querySelector(.io_product_measurement_price); if(measurement_priceundefined){ var first_price document.querySelector(.io_product_price_box); if(first_price ! null){ measurement_price first_price.cloneNode(true); /* clear all classes */ measurement_price.className ; measurement_price.classList.add(io_product_price_box); measurement_price.classList.add(io_product_measurement_price); measurement_price.style.display grid; /* Make a hidden data span for when adding to cart */ raw_measurement document.createElement(span); raw_measurement.classList.add(io_measure_price_raw_measurement); raw_measurement.style.display none; raw_measurement.textContent measurement; measurement_price.appendChild(raw_measurement); first_price.before(measurement_price); } } var price_1h Number(jQuery(.io_product_price_1h_+jQuery(.io_product_infobox .item_rentalid).text()).text().replace(/^0-9.-+/g,)); measurement_price.querySelector(p:nth-child(1)).innerHTML simpleCart.toCurrency(price_1h*measurement); measurement_price.querySelector(p:nth-child(2)).innerHTML For approximately +measurement+ +units; } function io_map_clear() { if(drawingManager.getDrawingMode() polygon){ drawingManager.setDrawingMode(polygon); } if(polygons) polygons.forEach(function(polygon) { polygon.setMap(null); }); if(current_polyline) current_polyline.setMap(null); if(polylines) polylines.forEach(function(polyline) { polyline.setMap(null); }); if(polyline_markers) polyline_markers.forEach(function(marker) { marker.setMap(null); }); current_polyline new google.maps.Polyline({ map: map, path: , strokeColor: #0113fc, strokeOpacity: 1.0, strokeWeight: 2 }); polygons new Array(); polylines new Array(); polyline_markers new Array(); previous_marker undefined; } function io_map_new_line() { polylines.push(new google.maps.Polyline({ map: map, path: current_polyline.getPath(), strokeColor: #0113fc, strokeOpacity: 1.0, strokeWeight: 2 }) ); previous_marker undefined; current_polyline.setMap(null); current_polyline new google.maps.Polyline({ map: map, path: , strokeColor: #0113fc, strokeOpacity: 1.0, strokeWeight: 2 }); } function show_more_instruct_click(show_more_button) { if(show_more_button.textContent (more)) { show_more_button.textContent (hide); jQuery(#io_map_additional_instructions).show(); }else if(show_more_button.textContent (hide)) { show_more_button.textContent (more); jQuery(#io_map_additional_instructions).hide(); } } function perimeter_height_changed(){ let current_map_height jQuery(#perimeter_height).val(); if(current_map_height && current_map_height > 0){ if(jQuery(#io_measurement_input).val() && !previous_map_height){ let measurement jQuery(#io_measurement_input).val(); jQuery(#io_measurement_input).val(measurement * current_map_height); }else if(jQuery(#io_measurement_input).val() && previous_map_height){ let measurement jQuery(#io_measurement_input).val(); if(previous_map_height > 0){ measurement measurement / previous_map_height; } jQuery(#io_measurement_input).val(measurement * current_map_height); } }else if (!current_map_height || current_map_height 0){ if(jQuery(#io_measurement_input).val() && previous_map_height){ let measurement jQuery(#io_measurement_input).val(); if(previous_map_height > 0){ measurement measurement / previous_map_height; } jQuery(#io_measurement_input).val(measurement); } } previous_map_height current_map_height; } window.initMap initMap;/script> div classmap_fancybox>div classelementor-widget-text-editor>div> details idio_map_address_entry> summary style cursor:pointer>Enter Address Information (edit)/summary>table stylemargin-left: 10px>tr>td> label foraddress idio_mcl_address_label styledisplay: table-cell> Street Address /label>/td>td> input idio_mc_address styledisplay: table-cell nameaddress typetext>/input>/td>/tr>tr>td> label forcity idio_mcl_city_label styledisplay: table-cell> City /label>/td>td> input idio_mc_city styledisplay: table-cell namecity typetext>/input>/td>/tr>tr idio_mc_us-state-select>td> label forstate idio_mcl_state_label styledisplay: table-cell> State /label>/td>td> select namestate idio_mc_state styledisplay: table-cell classinput-mini>option value>/option>option valueAK>AK/option>option valueAL>AL/option>option valueAR>AR/option>option valueAZ>AZ/option>option valueCA>CA/option>option valueCO>CO/option>option valueCT>CT/option>option valueDC>DC/option>option valueDE>DE/option>option valueFL>FL/option>option valueGA>GA/option>option valueHI>HI/option>option valueIA>IA/option>option valueID>ID/option>option valueIL>IL/option>option valueIN>IN/option>option valueKS>KS/option>option valueKY>KY/option>option valueLA>LA/option>option valueMA>MA/option>option valueMD>MD/option>option valueME>ME/option>option valueMI>MI/option>option valueMN>MN/option>option valueMO>MO/option>option valueMS>MS/option>option valueMT>MT/option>option valueNC>NC/option>option valueND>ND/option>option valueNE>NE/option>option valueNH>NH/option>option valueNJ>NJ/option>option valueNM>NM/option>option valueNV>NV/option>option valueNY>NY/option>option valueOH>OH/option>option valueOK>OK/option>option valueOR>OR/option>option valuePA>PA/option>option valueRI>RI/option>option valueSC>SC/option>option valueSD>SD/option>option valueTN>TN/option>option valueTX>TX/option>option valueUT>UT/option>option valueVA>VA/option>option valueVT>VT/option>option valueWA>WA/option>option valueWI>WI/option>option valueWV>WV/option>option valueWY>WY/option> /select>/td>/tr>tr>td> label forzip idio_mcl_zip_label styledisplay: table-cell> Zip Code /label>/td>td> input idio_mc_zip styledisplay: table-cell namezip typetext>/input>/td>/tr>/table> a classelementor-button elementor-size-sm io_button idmap_geocode_submit onClickio_geocode() hrefjavascript:;> Locate /a> /details>div idperimeter_height_contianer>p>If you are taking measurements for a structure such as a building or fence, please provide the height of the structure here. If height does not apply to the wash, for instance for a gutter wash, leave this field empty. strong> Please note if you enter a value here after taking measurements, you will need to take measurements again. /strong>/p> label> Height of structure: /label> input typenumber idperimeter_height onChangeperimeter_height_changed()/>/div>div>p idio_map_instructions>/p>/div>div idio_measurement_input_container> label idio_measurement_input_label> /label> input typenumber idio_measurement_input/> a classelementor-button elementor-size-sm io_button idio_map_manual_input hrefjavascript:;> Done /a>/div>div styledisplay: inline-flex>div idio_map_clear_container> a classelementor-button elementor-size-sm io_button idio_map_clear_btn onClickio_map_clear() hrefjavascript:;> Clear /a>/div>div idio_map_new_line_container stylemargin-left:5px> a classelementor-button elementor-size-sm io_button idio_map_new_line_btn onClickio_map_new_line() hrefjavascript:;> Add New Line /a>/div>/div>/div>/div> br>div idmap_container> script srchttps://maps.googleapis.com/maps/api/js?keyAIzaSyDEuvvqefKaUABPvydm00SV8Fr8tQeGVcw&librariesdrawing&callbackinitMap defer>/script> /div>/div> script>jQuery(.io_testimonials, #io_testimonials).each(function(){ io_get_reviews(this); }) setTimeout(function(){ jQuery(.io_testimonials .w3-ul li p).each(function(){ const container jQuery(this).parent() const element jQuery(this); if (element0.scrollHeight > container0.clientHeight) { jQuery(this).parent().parent().append(create_read_more()); } }); }, 500); function create_read_more(){ let html p class\io_review_readmore\ onClick\review_readmore_clicked(this)\>read more/p> return html; } function review_readmore_clicked(element){ let review_li jQuery(element).parent().find(li:eq(3)); new_height jQuery(review_li).find(p).height() + 16; jQuery(review_li).height(new_height); jQuery(element).hide(); } function io_get_reviews(element){ let io_un rmr4djs; let io_loc 0; let io_url1 https://rental.software/testimonials_iframe.php?user; if (location.hostname localhost){ io_url1 http://localhost/io/bugs/testimonials_iframe.php?user; //io_url1 http://localhost/jbug/trunk/testimonials_iframe.php?user; } let io_url2 &location_id; let io_url3 &width100%&number_of_reviews10&show_average_rating1&show_stars1&show_date&show_reviewer_name1&orderbytime&iframe0; let io_url_c io_url1 + io_un + io_url2 + io_loc + io_url3; fetch(io_url_c, { method: get }).then( function(response){ return response.json(); } ).then(function(data) { //let element document.getElementById(io_testimonials); let out ; let review_cnt0; let rating_sum 0; data.forEach((user) > { const { name, review, rating, time } user; rating_sum + Number(rating); review_cnt++; let img_star Math.round(parseFloat(rating)); star `img classreview_img srchttps://rental.software/images/${img_star}star.png />`; out + `div> ul classw3-ul> li >${name}/li> li>${rating} ${star}/li> li >${time}/li> li> p>${review}/p> /li> /ul> /div>`; }); let avg (parseFloat(rating_sum)/parseFloat(review_cnt)).toFixed(1); let avg_img Math.round(avg); let head `div >h2>Avg Rating: ${avg}/h2>img classreview_avg_img srchttps://rental.software/images/${avg_img}star.png />/div>`; element.innerHTML head + out; return head+out; }).catch(function(err) { console.log(err); });}/script> script>var _searchIO_LIVE_AJAX_SEARCH_BLOCKS true; var _searchIO_LIVE_AJAX_SEARCH_ENGINE default; var _searchIO_LIVE_AJAX_SEARCH_CONFIG default;/script> script>var _SEARCHWP_LIVE_AJAX_SEARCH_BLOCKS true; var _SEARCHWP_LIVE_AJAX_SEARCH_ENGINE default; var _SEARCHWP_LIVE_AJAX_SEARCH_CONFIG default;/script> script typetext/javascript>const lazyloadRunObserver () > { const lazyloadBackgrounds document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver new IntersectionObserver( ( entries ) > { entries.forEach( ( entry ) > { if ( entry.isIntersecting ) { let lazyloadBackground entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( e-lazyloaded ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: 200px 0px 200px 0px } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) > { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events DOMContentLoaded, elementor/lazyload/observe, ; events.forEach( ( event ) > { document.addEventListener( event, lazyloadRunObserver ); } );/script> script typetext/javascript idjquery-ui-datepicker-js-after>jQuery(function(jQuery){jQuery.datepicker.setDefaults({closeText:Close,currentText:Today,monthNames:January,February,March,April,May,June,July,August,September,October,November,December,monthNamesShort:Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,nextText:Next,prevText:Previous,dayNames:Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,dayNamesShort:Sun,Mon,Tue,Wed,Thu,Fri,Sat,dayNamesMin:S,M,T,W,T,F,S,dateFormat:MM d, yy,firstDay:1,isRTL:false});});/script> script typetext/javascript idswp-live-search-client-js-extra>var searchio_live_search_params ;searchio_live_search_params {ajaxurl:https:\/\/rockymountainroll.com\/wp-admin\/admin-ajax.php,origin_id:109,config:{default:{engine:default,input:{delay:300,min_chars:3},results:{position:bottom,width:auto,offset:{x:0,y:5}},spinner:{lines:12,length:8,width:3,radius:8,scale:1,corners:1,color:#424242,fadeColor:transparent,speed:1,rotate:0,animation:searchio-spinner-line-fade-quick,direction:1,zIndex:2000000000,className:spinner,top:50%,left:50%,shadow:0 0 1px transparent,position:absolute}}},msg_no_config_found:No valid searchIO Live Search configuration found!,aria_instructions:When autocomplete results are available use up and down arrows to review and enter to go to the desired page. Touch device users, explore by touch or with swipe gestures.,io_search_results_same_width:false,io_search_results_width:false,io_search_results_align:false};;var searchwp_live_search_params ;searchwp_live_search_params {ajaxurl:https:\/\/rockymountainroll.com\/wp-admin\/admin-ajax.php,origin_id:109,config:{default:{engine:default,input:{delay:300,min_chars:3},results:{position:bottom,width:auto,offset:{x:0,y:5}},spinner:{lines:12,length:8,width:3,radius:8,scale:1,corners:1,color:#424242,fadeColor:transparent,speed:1,rotate:0,animation:searchwp-spinner-line-fade-quick,direction:1,zIndex:2000000000,className:spinner,top:50%,left:50%,shadow:0 0 1px transparent,position:absolute}}},msg_no_config_found:No valid SearchWP Live Search configuration found!,aria_instructions:When autocomplete results are available use up and down arrows to review and enter to go to the desired page. Touch device users, explore by touch or with swipe gestures.,searchwp_live_search_client_nonce:6d544f1be2};;/script> script typetext/javascript idmegamenu-js-extra>var megamenu {timeout:300,interval:100};/script> script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver3.1.2 idwp-polyfill-inert-js>/script> script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver0.14.0 idregenerator-runtime-js>/script> script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver3.15.0 idwp-polyfill-js>/script> script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/dist/hooks.min.js?ver2810c76e705dd1a53b18 idwp-hooks-js>/script> script typetext/javascript srchttps://rockymountainroll.com/wp-includes/js/dist/i18n.min.js?ver5e580eb46a90c2b997e6 idwp-i18n-js>/script> script typetext/javascript idwp-i18n-js-after>wp.i18n.setLocaleData( { text direction\u0004ltr: ltr } );/script> script typetext/javascript idelementor-pro-frontend-js-before>var ElementorProFrontendConfig {ajaxurl:https:\/\/rockymountainroll.com\/wp-admin\/admin-ajax.php,nonce:d35ca3b2d9,urls:{assets:https:\/\/rockymountainroll.com\/wp-content\/plugins\/elementor-pro\/assets\/,rest:https:\/\/rockymountainroll.com\/wp-json\/},settings:{lazy_load_background_images:true},shareButtonsNetworks:{facebook:{title:Facebook,has_counter:true},twitter:{title:Twitter},linkedin:{title:LinkedIn,has_counter:true},pinterest:{title:Pinterest,has_counter:true},reddit:{title:Reddit,has_counter:true},vk:{title:VK,has_counter:true},odnoklassniki:{title:OK,has_counter:true},tumblr:{title:Tumblr},digg:{title:Digg},skype:{title:Skype},stumbleupon:{title:StumbleUpon,has_counter:true},mix:{title:Mix},telegram:{title:Telegram},pocket:{title:Pocket,has_counter:true},xing:{title:XING,has_counter:true},whatsapp:{title:WhatsApp},email:{title:Email},print:{title:Print},x-twitter:{title:X},threads:{title:Threads}},facebook_sdk:{lang:en_US,app_id:},lottie:{defaultAnimationUrl:https:\/\/rockymountainroll.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json}};/script> script typetext/javascript idelementor-frontend-js-before>var elementorFrontendConfig {environmentMode:{edit:false,wpPreview:false,isScriptDebug:false},i18n:{shareOnFacebook:Share on Facebook,shareOnTwitter:Share on Twitter,pinIt:Pin it,download:Download,downloadImage:Download image,fullscreen:Fullscreen,zoom:Zoom,share:Share,playVideo:Play Video,previous:Previous,next:Next,close:Close,a11yCarouselWrapperAriaLabel:Carousel | Horizontal scrolling: Arrow Left & Right,a11yCarouselPrevSlideMessage:Previous slide,a11yCarouselNextSlideMessage:Next slide,a11yCarouselFirstSlideMessage:This is the first slide,a11yCarouselLastSlideMessage:This is the last slide,a11yCarouselPaginationBulletMessage:Go to slide},is_rtl:false,breakpoints:{xs:0,sm:480,md:768,lg:1025,xl:1440,xxl:1600},responsive:{breakpoints:{mobile:{label:Mobile Portrait,value:767,default_value:767,direction:max,is_enabled:true},mobile_extra:{label:Mobile Landscape,value:880,default_value:880,direction:max,is_enabled:false},tablet:{label:Tablet Portrait,value:1024,default_value:1024,direction:max,is_enabled:true},tablet_extra:{label:Tablet Landscape,value:1200,default_value:1200,direction:max,is_enabled:false},laptop:{label:Laptop,value:1366,default_value:1366,direction:max,is_enabled:false},widescreen:{label:Widescreen,value:2400,default_value:2400,direction:min,is_enabled:false}}},version:3.24.3,is_static:false,experimentalFeatures:{additional_custom_breakpoints:true,container_grid:true,e_swiper_latest:true,e_nested_atomic_repeaters:true,e_onboarding:true,theme_builder_v2:true,home_screen:true,ai-layout:true,landing-pages:true,link-in-bio:true,floating-buttons:true,display-conditions:true,form-submissions:true},urls:{assets:https:\/\/rockymountainroll.com\/wp-content\/plugins\/elementor\/assets\/,ajaxurl:https:\/\/rockymountainroll.com\/wp-admin\/admin-ajax.php},nonces:{floatingButtonsClickTracking:7ebef13522},swiperClass:swiper,settings:{page:,editorPreferences:},kit:{active_breakpoints:viewport_mobile,viewport_tablet,lightbox_enable_counter:yes,lightbox_enable_fullscreen:yes,lightbox_enable_zoom:yes,lightbox_enable_share:yes,lightbox_title_src:title,lightbox_description_src:description},post:{id:109,title:Rocky%20Mountain%20Roll%20Meridian%20ID%20-%20Party%20and%20Bounce%20House%20Rental,excerpt:,featuredImage:false}};/script> script defer srchttps://rockymountainroll.com/wp-content/cache/autoptimize/js/autoptimize_4016f29f8df40b0039741a347b265b94.js>/script>/body>/html>!-- Cached by WP-Optimize - https://getwpo.com - Last modified: September 21, 2024 10:38 pm (UTC:0) -->
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]