Universal Audio Dream ´65 Reverb Amplifier (2024)

Skip to content
  • Home
  • Tonefest Marketplace™
  • Electric Guitars
  • Acoustic Guitars
  • Bass Guitars
  • Amps
  • Pedals
  • Cabinets
  • Repairs
  • Accessories
  • Wanted by our Customers!
  • The Shop
  • Sell your gear
  • Showroom for manufacturers
  • Gallery Sessions
  • Warranty
  • Account

Cart

Item added to cart. View cart and check out.

Our payment methods include all the major credit & debit cards and Klarna with possibility for installments.

  • Sale

  • Regular price €379,00

Shipping calculated at checkout.

Product Name
UAFX Dream ‘65 Reverb Amplifier

Description
Stereo amp and cabinet emulation pedal with spring reverb and vibrato, multiple speakers, cabinets, and boosts, live and preset modes, and customization with the UAFX mobile app.

Product Description
Get the classic American tube amp sounds that shaped music.

The UAFX Dream '65 Reverb Amp pedal gives you the essential American tube amp used by artists and producers for 60 years, ranging from Muddy Waters to The Beatles to Mac Demarco.

Built on powerful dual-engine processing and world-class UAD modeling, Dream '65 delivers bold cleans, sweet breakup, and divine spring reverb and vibrato.

Deliver Legit Tube Amp Tones, Stage and Studio
Whether it's replacing your amp rig and going direct to front-of-house on stage, or recording tracks into your DAW — Dream '65 gives you the inspiring, album-ready tones of an expertly miked “golden unit” tube amp, within seconds.

Lose Yourself in Authentic Spring Reverb & Vibrato
Dream '65 is the only amp-in-a-box pedal that faithfully captures the immersive sound of real tube-powered spring reverb and vibrato, making this pedal perfect for soul to surf, funk to punk, blues to bebop… you get it.

Put a Modded Studio Amp on Your Pedalboard
Take your vintage amp tone a step further with custom mods and legendary drive sounds made famous by artists like Stevie Ray Vaughan and Steve Lukather. With two iconic mods and a clean boost built-in, Dream '65 lays down sounds that put whiz-bang amp modelers under the bunk bed.

Get the '60s American Tube Tones You've Always Wanted
With custom mic and speaker pairings derived from UA’s award-winning OX Amp Top Box, Dream ‘65 gives you inspiring, album-ready studio tones at the flip of a switch.

12" Combo Speaker Models
● GB25: Vintage Celestion Greenback
● Oxford: Original Oxford 12K5-6
● EV12: Electro-Voice EVM12L

Free Additional Speaker Cabinet Models
(Get with the UAFX Control app)
● Two-Rock 2x12 extension cab w/ Celestion G12-65s
● Vintage 1966 4x10 Fender Super Reverb cab w/ original CTS speakers
● Vintage 1968 2x12 Fender Twin Reverb cab w/ original JBL D-120F speakers

* Product names used herein are trademarks of their respective owners, which are in no way affiliated with Universal Audio Inc. These name(s) are used solely to identify products studied in the creation of the sound models found in Dream '65 Reverb Amplifier.

Customize your Sound with the UAFX App
Dream '65 gets even better with the UAFX Control mobile app. Download custom artist tones, recall and archive your presets, and dive deeper into one of the best American tube amps ever made.

Key Features:
● Powerful UAFX dual-engine delivers the most authentic mid-'60s American tube combo sound ever placed into a stompbox
● Authentic spring reverb and vibrato modeled from a "golden unit" amp heard on more than 100 classic records
● Includes the world's best speaker cabinet, mic, and room tones derived from the award-winning OX Amp Top Box
● Features "hot rod" amp and speaker mods, plus free additional downloadable speaker cabinets and mics upon product registration
● Bypass cabinet/mic emulations and use in front of your amp for added tonal flavor and overdrive sounds
● UAFX mobile app lets you customize footswitches, recall and archive your presets, unlock additional features, download artist presets, and more
● Timeless UA design and craftsmanship, built to last decades

Specifications
● Power requirements: Isolated 9VDC, center-negative, 400 mA minimum (sold separately)
● Inputs: 2 x ¼” TS (right input for stereo connections and 4-cable mode)
● Outputs: 2 x ¼” TS (right output for stereo connections and 4-cable mode)
● USB Type-C for updates via computer
● Height: 2.56” (6.5 cm)
● Width: 3.62” (9.2 cm)
● Depth: 5.55” (14.1 cm)
● Weight: 1.24 lbs (0.567 kg)

Share

Universal Audio Dream ´65 Reverb Amplifier (10)

×

Please wait...

Make An Offer

Universal Audio Dream ´65 Reverb Amplifier (11)

Universal Audio Dream ´65 Reverb Amplifier

Universal Audio Dream ´65 Reverb Amplifier (12)

Universal Audio Dream ´65 Reverb Amplifier

€379,00

×

Offerly Support

Don't fret! This pop up only shows up in Shopify Editor Mode. Offerly could not find your add to cart button! This can happen for one of the following reasons:

    1. This product is sold out.
      To solve this please navigate to a different product!

    2. Your Theme is custom or uses different text for the "Add to Cart" button.
      If this is the case, please contact Support@OfferlyApp.com and we will add support for your theme!

Default Title

`); var productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); var productCollections = [{"id":299675746457,"handle":"just-in","updated_at":"2024-08-10T16:12:32+03:00","published_at":"2022-03-16T15:38:34+02:00","sort_order":"created-desc","template_suffix":"","published_scope":"global","title":"Just In","body_html":"Newest additions."},{"id":242646646937,"handle":"pedals","title":"Pedals","updated_at":"2024-08-10T16:13:00+03:00","body_html":"Pedals are preowned unless specified Brand New.","published_at":"2021-01-30T21:29:55+02:00","sort_order":"created-desc","template_suffix":"","disjunctive":false,"rules":[{"column":"tag","relation":"equals","condition":"pedals"}],"published_scope":"global"},{"id":625048518981,"handle":"universal-audio-guitar-gear","title":"Universal Audio Guitar Gear","updated_at":"2024-08-06T18:10:51+03:00","body_html":"\u003cp\u003eBuilt upon UA's proven analog modeling expertise, UAFX Guitar Pedals give you sonic authenticity far beyond other stompboxes.\u003cbr\u003e\u003cbr\u003eFrom award-winning amp emulators to classic reverbs, delays, modulators, and compressors — experience legit vintage tones like you’ve never heard before.\u003c\/p\u003e\n\u003c!----\u003e","published_at":"2024-08-06T16:37:10+03:00","sort_order":"best-selling","template_suffix":"","disjunctive":true,"rules":[{"column":"tag","relation":"equals","condition":"UA"}],"published_scope":"global","image":{"created_at":"2024-08-06T16:37:08+03:00","alt":null,"width":2000,"height":1125,"src":"\/\/www.tonefestguitargallery.com\/cdn\/shop\/collections\/UAFX_Hero_2023_with_Singles_OX.jpg?v=1722951429"}}]; var collectionsString = ''; productCollections.map((collection) => { collectionsString += collection.id + ','; }); var showButtonInformation = {productSelectorType: 'None', selectedProducts: ''} var autoResponseDelay = 1; var delayAutoMessage = false; var quantityInput = document.querySelector('#productQuantity') || document.querySelector('input[name="quantity"]:not(.offerInput)') || document.querySelector('.product-form__quantity'); if (quantityInput && 52950827161 != 69336465675) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'block'; quantityInput.addEventListener('input', function (event) { updateQuantity(event.target.value); }); } if (quantityInput && 52950827161 == 9177890913 && !isVisibleElement(quantityInput.parentElement)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var hideQuantityInput = [69336465675,61879943221,69664833775,86812131607,50712314049,51222872236,49644142759]; if (quantityInput && hideQuantityInput.includes(52950827161)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var modalProductDescription = document.getElementById('modalProductDescription'); // if modalProductDescription is over 400 characters truncate it if (modalProductDescription && modalProductDescription.textContent.length > 200) { modalProductDescription.textContent = modalProductDescription.textContent.substring(0, 200) + '...'; } mountOfferlyModalAtEndOfBody(); populateUserInformation(); fixColorOfTexts(); hidePriceForStores(); document.getElementById('offerlyCloseButton').onclick = function () { closeOfferlyModal(); }; document.getElementById('offerAmountInput').addEventListener('input', validateOfferAmount); document.getElementById('submitOfferButton').onclick = function(){ submitOffer(); }; document.getElementById('offerQuanitityInput').addEventListener('input', validateOfferAmount); document.addEventListener('DOMContentLoaded', function () { function usePushState(handler) { //modern themes use pushstate to track variant changes without reload function track(fn, handler, before) { return function interceptor() { if (before) { handler.apply(this, arguments); return fn.apply(this, arguments); } else { var result = fn.apply(this, arguments); handler.apply(this, arguments); return result; } }; } var currentVariantId = null; function variantHandler() { var selectedVariantId = window.location.search.replace(/.*variant=(\d+).*/, '$1'); if (!selectedVariantId) return; if (selectedVariantId != currentVariantId) { currentVariantId = selectedVariantId; handler(selectedVariantId); } } window.history.pushState = track(history.pushState, variantHandler); window.history.replaceState = track(history.replaceState, variantHandler); window.addEventListener('popstate', variantHandler); } usePushState(function (variantId) { productVariantId = variantId; updateModalInformation(variantId); var shouldShowButton = showButton(); var addToCartButton = findAddToCartButton(); if (shouldShowButton && !document.getElementById('offerButton') && addToCartButton) { addOfferButton(); } if(!shouldShowButton && document.getElementById('offerButton')){ var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); } } if (shouldShowButton && !addToCartButton) { var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); } } }); }); document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { // Use "Escape" for modern browsers var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display === 'flex') { modal.style.display = 'none'; } var supportModal = document.getElementById('OfferlySupportDiv'); if (supportModal.style.display === 'flex') { supportModal.style.display = 'none'; } } }); window.onclick = function (event) { if (event.target == modal) { modal.style.display = 'none'; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } }; window.addEventListener('resize', function() { var offerButton = document.getElementById('offerButton'); var addToCartButton = findAddToCartButton(); if (offerButton && addToCartButton) { updateOfferButton(offerButton, addToCartButton); } }); fetch(`/apps/offerly-proxy/app/acceptOffers/?${new URLSearchParams({ collections: collectionsString, product: productVariantId })}`, { method: 'GET' }) .then((response) => response.json()) .then((data) => { showButtonInformation = data; autoResponseDelay = showButtonInformation.automatedResponseDelay; delayAutoMessage = showButtonInformation.delayAutomatedResponse; var shouldShowButton = showButton(); if (shouldShowButton) { addOfferButton(); } if (showButtonInformation.autoOpenModal && shouldShowButton ){ if (showButtonInformation.startTimerWhenInactive){ inactivityAlertOfferly(showButtonInformation.autoOpenModalDelay * 1000); } else { setTimeout(function () { openModal(true); }, showButtonInformation.autoOpenModalDelay * 1000); } } }) .catch((error) => { // Handle any errors console.error(error) }); function mountOfferlyModalAtEndOfBody() { var modal = document.getElementById('OfferlyModalDiv'); if (modal) { document.body.appendChild(modal); } } function updateLabelsForStores(){ var storesForUpdatingLabels = [50712314049,59154694339] //if store not in storesForUpdatingLabels if (storesForUpdatingLabels.includes(52950827161) ) { var offerNameLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerName"]'); var offerNameInput = document.querySelector('input.offerInput.offerly-text[name="customerName"]'); var offerAmountLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerAmount"]'); var offerAmountInput = document.querySelector('input.offerInput.offerly-text[name="offerAmount"]'); var additionalInformationLabel = document.querySelector('label.offerly-text.offerly-input-label[for="additionalInformation"]'); var additionalInformationInput = document.querySelector('textarea.offerInput.offerly-text[name="additionalTextField"]'); var phoneInput = document.querySelector('input.offerInput.offerly-text[name="customerPhone"]'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); var header = document.getElementById('offerlyModalHeader'); var modalProductTitle = document.getElementById('productTitleOfferModal'); var modalPrice = document.getElementById('modalPrice'); var modalProductDescription = document.getElementById('modalProductDescription'); var offerDescriptionDiv = document.getElementById('offerDescriptionDiv'); if(52950827161 == 50712314049){ offerNameLabel.innerHTML = 'Full Name'; offerNameInput.placeholder = 'Please enter your full name'; offerAmountLabel.innerHTML = 'Your Offer'; offerAmountInput.placeholder = 'Offer price excludes shipping'; additionalInformationLabel.innerHTML = 'Location'; phoneInput.placeholder = 'Phone number with country code'; //change additionalInformation Input to a dropdown with countries var countrySelect = document.createElement('select'); //make the background a dark color //change the placeholder to country countrySelect.id = 'OfferInput'; var placeholderOption = document.createElement('option'); placeholderOption.style.backgroundColor = '#313739'; placeholderOption.value = ''; placeholderOption.text = 'Country'; placeholderOption.disabled = true; countrySelect.appendChild(placeholderOption); //add it to where additionalInformationInput is additionalInformationInput.parentNode.insertBefore(countrySelect, additionalInformationInput); additionalInformationInput.remove(); //add options to the select var countries = ['Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi', "Côte d'Ivoire", 'Cabo Verde', 'Cambodia', 'Cameroon', 'Canada', 'Central African Republic', 'Chad', 'Chile', 'China', 'Colombia', 'Comoros', 'Congo (Congo-Brazzaville)', 'Costa Rica', 'Croatia', 'Cuba', 'Cyprus', 'Czechia (Czech Republic)', 'Democratic Republic of the Congo', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Eswatini (fmr. "Swaziland")', 'Ethiopia', 'Fiji', 'Finland', 'France', 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Greece', 'Grenada', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Holy See', 'Honduras', 'Hong Kong' , 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Mauritania', 'Mauritius', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Morocco', 'Mozambique', 'Myanmar (formerly Burma)', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'North Korea', 'North Macedonia', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Palestine State', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Poland', 'Portugal', 'Qatar', 'Romania', 'Russia', 'Rwanda', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Korea', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Sweden', 'Switzerland', 'Syria', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Vietnam', 'Yemen', 'Zambia', 'Zimbabwe']; countries.sort(); for (var i = 0; i < countries.length; i++) { var option = document.createElement('option'); option.style.backgroundColor = '#313739'; option.value = countries[i]; option.text = countries[i]; countrySelect.appendChild(option); } countrySelect.name = 'additionalTextField'; countrySelect.classList.add('offerInput'); countrySelect.classList.add('offerly-text'); //make inital value empty countrySelect.value = ''; var offerQuanitityInput = document.getElementById('offerQuanitityInput'); var additionalInformationInput = document.getElementById('additionalInformationInput'); //rearange the order of the inputs make sure #offerAmountInput is after #additionalInformationInput offerQuanitityInput.parentNode.insertBefore(additionalInformationInput, offerQuanitityInput); //make header display none header.style.display = 'none'; offerlyHeaderStoreLogo.src = 'https://cdn.shopify.com/s/files/1/0507/1231/4049/files/smallwhitelogo.png?v=1716447954'; offerlyHeaderStoreLogo.style.display = 'flex'; //move submitOfferButton to be whole bottom var submitOfferButton = document.getElementById('submitOfferButton'); //remove it from the dom submitOfferButton.remove(); //add it as the last item in offerly-modal-content-group document.querySelector('.offerly-modal-content').appendChild(submitOfferButton); } if(52950827161 == 59154694339){ // get offerly-modal-content-group and alignItems to center var offerlyModalContentGroup = document.querySelector('.offerly-modal-content-group'); offerlyModalContentGroup.style.alignItems = 'center'; // get rightSide and set width to 100% var rightSide = document.getElementById('rightSide'); // take id offerlyModalHeader and move it to the right side var productTitle = document.getElementById('modalProductTitle'); rightSide.prepend(productTitle); rightSide.style.flex = '1 1 215px'; var image = document.getElementById('offerImage'); image.style.paddingBottom = '0px'; var productTitleOfferModal = document.getElementById('productTitleOfferModal'); productTitleOfferModal.style.paddingBottom = '0px'; // get description and set display to block offerDescriptionDiv.style.display = 'block'; offerDescriptionDiv.style.width = '100%'; modalProductDescription.style.fontSize = '18px'; modalPrice.style.fontSize = '18px'; } } } function addOfferButton() { var addToCartButton = findAddToCartButton(); if (!addToCartButton) { console.log('No add to cart button found'); return } var offerButton = document.createElement('button'); offerButton.id = 'offerButton'; var submitOfferButton = document.getElementById('submitOfferButton'); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); offerButton.innerHTML = 'make an offer!' == 'make an offer' ? 'Make An Offer' : 'Make An Offer!'; updateOfferButton(offerButton, addToCartButton); updateOfferButton(submitOfferButton, addToCartButton); updateOfferButton(modalAddToCartButton, addToCartButton); offerButton.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); openModal(); }); if (52950827161 == 73665609995) { var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Send Enquiry'; submitOfferButton.innerHTML = 'Enquire'; } mixpanel.track("Button Added", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, } ); updateLabelsForStores() var flexWrapShop = [74034315537, 20281681, 77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143, 27394244673 ]; if (flexWrapShop.includes(52950827161)){ addToCartButton.parentNode.style.flexWrap = 'wrap'; } if ( 52950827161 == 20281681 || 52950827161 == 77076005182 || 52950827161 == 58405322835 || 52950827161 == 75196203307 || 52950827161 == 61769482425 || 52950827161 == 27527348276 || 52950827161 == 57320276143 ){ addToCartButton.style.marginBottom = '16px'; } if ( 52950827161 == 68129849588 ){ addToCartButton.parentNode.style.flexWrap = 'wrap'; addToCartButton.parentNode.style.display = 'flex'; addToCartButton.parentNode.style.flexDirection = 'column'; } var useParentNodeShopIds = [ 9238556, 65386643635, 1502598, 58408730675, 13638089, 18581729, 81888772409, 55008591957, 52291043514, 29522460808, 58351059100, 8722284, 65605828783, 80557900122, 85798322485]; if (useParentNodeShopIds.includes(52950827161)) { addToCartButton.parentNode.insertAdjacentElement("afterend", offerButton); return; } if ( 52950827161 == 73305882890 || 52950827161 == 49644142759) { addToCartButton.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 52950827161 == 49574117544 || 52950827161 == 67113091311) { addToCartButton.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 52950827161 == 9177890913) { addToCartButton.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("beforeend", offerButton) return; } if ( 52950827161 == 69664833775 || 52950827161 == 65273659647 || 52950827161 == 87724163412) { addToCartButton.parentNode.insertBefore(offerButton, addToCartButton); return } if ( 52950827161 == 50712314049) { // find the button on the page that says "thinking of selling?" var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); sellingButton ? sellingButton.parentNode.insertBefore(offerButton, sellingButton.nextSibling) : addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); return } addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); } function updateOfferButton(button, addToCartButton) { //get computed style from add to cart button if (!addToCartButton) { return; } var addToCartButtonStyle = window.getComputedStyle(addToCartButton); button.classList.add('offerButton'); button.style.backgroundColor = '#e28e00'; button.style.color = '#FFFFFF'; button.style.borderRadius = 'px'; button.style.setProperty('width', '100%', 'important'); button.style.height = addToCartButtonStyle.height; button.style.margin = addToCartButtonStyle.margin; button.style.padding = addToCartButtonStyle.padding; button.style.fontFamily = addToCartButtonStyle.fontFamily; button.style.fontSize = addToCartButtonStyle.fontSize; button.style.fontWeight = addToCartButtonStyle.fontWeight; button.style.letterSpacing = addToCartButtonStyle.letterSpacing; button.style.borderRadius = addToCartButtonStyle.borderRadius; button.style.border = addToCartButtonStyle.border; button.style.lineHeight = addToCartButtonStyle.lineHeight; button.style.cursor = 'pointer'; button.style.zIndex = 'auto'; button.style.textTransform = addToCartButtonStyle.textTransform; button.style.textAlign = addToCartButtonStyle.textAlign; // if addToCartButton is all caps then make the offer button all caps if (addToCartButton.textContent === addToCartButton.textContent.toUpperCase()) { button.style.textTransform = 'uppercase'; } // remove all spaces from the word and check if only the first letter is uppercase if (addToCartButton.textContent.replace(/\s/g, '').charAt(0) === addToCartButton.textContent.replace(/\s/g, '').charAt(0).toUpperCase() && addToCartButton.textContent.replace(/\s/g, '').slice(1) === addToCartButton.textContent.replace(/\s/g, '').slice(1).toLowerCase()){ //captialize only the first letter of the first word button.textContent = button.textContent.charAt(0).toUpperCase() + button.textContent.slice(1).toLowerCase(); } var add10pxMarginTop = [19884211, 61020012786, 19703995, 9177890913, 63635554481, 78885716262, 18581729, 57483493549, 55218503785, 73305882890, 4411654217, 74848502074, 16867965, 49574117544, 64379584700, 54885220561, 61775872347, 2440329, 53819474108, 233242649, 72843067733, 49644142759, 26670334031, 76660179259, 55590715717, 73939091772, 5708365834, 59154694339, 83330335009, 29999070, 64795246644, 72810922327, 50319622293, 51553501368, 52950827161]; if ( add10pxMarginTop.includes(52950827161) ) { button.style.marginTop = '10px'; } var add10pxMarginBottom = [69664833775, 67113091311, 55008591957, 80557900122 ]; if ( add10pxMarginBottom.includes(52950827161) ) { button.style.marginBottom = '10px'; } var noMarginBottom = [20281681, 77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143]; if ( noMarginBottom.includes(52950827161) ) { button.style.marginBottom = '0px'; } var add5pxMarginTop = [61879943221]; if ( add5pxMarginTop.includes(52950827161) ) { button.style.marginTop = '5px'; } var margin0px = [85798322485] if (margin0px.includes(52950827161)) { button.style.margin = '0px'; } if ( 52950827161 == 3014819906) { button.style.width = '230px'; } var sameWidthButton = [55218503785, 20281681, 77076005182, 58405322835, 29999070, 56208556218, 61769482425, 27527348276, 57320276143 ]; if ( sameWidthButton.includes(52950827161) ) { button.style.width = addToCartButtonStyle.width; } if ( 52950827161 == 29999070 ) { button.style.padding = '0px'; } if (52950827161 == 75196203307){ button.style.width = 'fit-content'; } if ( 52950827161 == 68129849588) { button.style.gridColumn = 'span 2'; } if ( 52950827161 == 8722284) { button.style.margin = '0px'; button.style.marginTop = '10px'; } if ( 52950827161 == 2252701765){ button.style.width = '90%'; button.style.height = ''; } if ( 52950827161 == 50712314049) { //add the class button to the button var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); if (!sellingButton) { button.style.marginTop = '24px'; } button.classList.add('button'); button.classList.add('button--outline'); } var submitButtonShopIds = [20281681, 77076005182, 58405322835, 75196203307, 29999070, 56208556218, 61769482425, 27527348276, 57320276143]; if (submitButtonShopIds.includes(52950827161) && button.id == 'submitOfferButton') { button.style.width = '100%'; button.style.margin = '0px'; } var maxWidthButton =[55590715717, 13484519, 27394244673 ] if ( maxWidthButton.includes(52950827161) && button.id == 'offerButton') { button.style.maxWidth = addToCartButtonStyle.width; } if ( 52950827161 == 27254259764 && button.id == 'offerButton') { button.style.fontSize = 'inherit'; button.style.width = 'fit-content'; button.classList.add('btn'); } if ( 52950827161 == 87724163412){ button.style.maxHeight = '44px'; button.style.height = '44px'; button.style.textTransform = 'uppercase'; button.style.textAlign = 'center'; button.style.fontSize = '14px'; } if ( 52950827161 == 12125098 && button.id == 'offerButton'){ button.style.padding = ''; button.style.paddingBottom = '4px'; button.style.maxWidth = '200px'; button.style.marginLeft='10px'; } if ( 52950827161 == 59154694339 && button.id == 'offerButton') { button.addEventListener('mouseover', () => { button.style.boxShadow = '0 0 10px rgb(42 49 70)'; }); button.addEventListener('mouseout', () => { button.style.boxShadow = ''; }); button.classList.add('glow-button'); } var copyButtonClasses = [19884211] if (copyButtonClasses.includes(52950827161) && button.id == 'offerButton') { // get the classes from addToCartButton and add them to the offerButton var classes = addToCartButton.classList; for (var i = 0; i < classes.length; i++) { button.classList.add(classes[i]); } } } function findAddToCartButton() { var addToCartButton = [...document.querySelectorAll('button:not(#modalAddToCartButton)')].find((button) => (button.textContent.trim().toLowerCase().includes('add to cart') || button.textContent.trim().toLowerCase().includes('pre order') || button.textContent.trim().toLowerCase().includes('pre-order') || button.textContent.trim().toLowerCase().includes('receive a stock alert') || button.textContent.trim().toLowerCase().includes('purchase') || button.textContent.trim().toLowerCase().includes('kosárba') || button.textContent.trim().toLowerCase().includes('add to bag') || button.textContent.trim().toLowerCase().includes('add to shopping cart') || button.textContent.trim().toLowerCase().includes('add to shopping bag') || button.textContent.trim().toLowerCase().includes('add to basket') || button.textContent.trim().toLowerCase().includes('ajouter au panier') || button.textContent.trim().toLowerCase().includes('añadir al carrito') || button.textContent.trim().toLowerCase().includes('in den warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al carrello') || button.textContent.trim().toLowerCase().includes('adicionar ao carrinho') || button.textContent.trim().toLowerCase().includes('legg til i handlekurven') || button.textContent.trim().toLowerCase().includes('lägg i varukorgen') || button.textContent.trim().toLowerCase().includes('tilføj til kurv') || button.textContent.trim().toLowerCase().includes('aggiungi alla borsa') || button.textContent.trim().toLowerCase().includes('ajouter au sac') || button.textContent.trim().toLowerCase().includes('añadir a la bolsa') || button.textContent.trim().toLowerCase().includes('der tasche hinzufügen') || button.textContent.trim().toLowerCase().includes('zum warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al cesto') || button.textContent.trim().toLowerCase().includes('ajouter à la corbeille') || button.textContent.trim().toLowerCase().includes('in winkelwagen') || button.textContent.trim().toLowerCase().includes('aan winkelwagen toevoegen') || button.textContent.trim().toLowerCase().includes('legg i handlekurv') || button.textContent.trim().toLowerCase().includes('lisää ostoskoriin') || button.textContent.trim().toLowerCase().includes('adauga in cos') || button.textContent.trim().toLowerCase().includes('sepete ekle') || button.textContent.trim().toLowerCase().includes('enquire') || button.textContent.trim().toLowerCase().includes('acquire') || button.textContent.trim().toLowerCase().includes('do kosza') || button.textContent.trim().toLowerCase().includes('gooods') || button.textContent.trim().toLowerCase().includes('select size') || button.textContent.trim().toLowerCase().includes('einkaufswagen') || button.textContent.trim().toLowerCase().includes('įdėti į krepšelį') || button.textContent.trim().toLowerCase().includes('hozzáadás kosárhoz') || button.textContent.trim().toLowerCase().includes('dodaj do koszyka') || button.textContent.trim().toLowerCase().includes('agregar al carrito')) && !button.textContent.trim().toLowerCase().includes('terms of purchase') ); if (52950827161 == 49574117544) { addToCartButton = document.querySelector('.product-form__submit.button.button--secondary.an-horizontal-shaking.button-text-change'); } if ( 52950827161 == 25109954659 || 52950827161 == 20375995) { addToCartButton = document.getElementById("addToCart"); } if ( 52950827161 == 67113091311) { if (!addToCartButton) { addToCartButton = document.querySelector('button[value="Add to cart"]'); } } if ( 52950827161 == 83549651224) { addToCartButton = document.querySelector('input[type="submit"][name="button"][value="Add to Cart"].btn-secondary'); } if ( 52950827161 == 65386643635) { addToCartButton = document.querySelector(".btn_sp.addtocart_btn.product-form__cart-submit"); } if ( 52950827161 == 78885716262) { addToCartButton = document.querySelectorAll('button[data-aid="product-form-submit-button"][data-name="product-submit"]')[1]; } if ( 52950827161 == 13638089 || 52950827161 == 86882484502 ) { addToCartButton = document.getElementById('AddToCart'); } if ( 52950827161 == 82779046162) { var potentialAddToCartButton = document.getElementById('AddToCart'); if (potentialAddToCartButton && !potentialAddToCartButton.textContent.toLowerCase().includes('ausverkauft')) { addToCartButton = potentialAddToCartButton; } } if ( 52950827161 == 3014819906 ) { addToCartButton = document.querySelector('input.add-to-cart[type="submit"]'); } if ( 52950827161 == 2252701765 ){ addToCartButton = document.querySelector('input[value="Purchase"]'); } if ( 52950827161 == 64379584700 ) { addToCartButton = document.querySelector('.btn.btn-primary.btn-lg.paira-add-to-cart.add-to-cart.margin-top-0.pull-left.display-in-b'); } if ( 52950827161 == 53819474108 ) { addToCartButton = document.querySelector('[data-js-trigger-id="add-to-cart"]'); } if ( 52950827161 == 87724163412 ){ addToCartButton = document.getElementById('dynamic-buttons-form') } if ( 52950827161 == 13484519 ) { addToCartButton = document.querySelector('.btn.btn-lg.btn-addtocart.addtocart-js'); } if (!addToCartButton) { if (Shopify.designMode && showButton()) { var supportModal = document.getElementById('OfferlySupportDiv'); supportModal.style.display = 'flex'; mixpanel.track("Support Modal Opened", { admin: true, shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, } ); } return null; } return addToCartButton; } function isVisibleElement(element) { computedStyle = window.getComputedStyle(element); return computedStyle.display !== 'none' && computedStyle.visibility !== 'hidden'; } function openModal(autoOpened = false) { var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'flex'; modal.style.animationName = 'animateopacity'; modal.style.animationDuration = '1s'; offerlyModalOpenedOnce = true; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'true'); } if (autoOpened) { mixpanel.track("Modal Auto-Opened", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, } ); } else { mixpanel.track("Modal Opened", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, } ); } var botContainer = document.getElementById('smart-bot-container'); var smileliteContainer = document.getElementById('smile-ui-lite-container'); if (botContainer) { botContainer.style.zIndex = '2147483645'; } if (smileliteContainer) { smileliteContainer.style.zIndex = '2147483645'; } } function updateModalProductTitle(title) { var productTitle = document.getElementById('modalProductTitle'); var productMobileTitle = document.getElementById('mobileModalProductTitle'); if (title.includes('Default Title')){ productTitle.innerHTML = `

Universal Audio Dream ´65 Reverb Amplifier

`; productMobileTitle.innerHTML = `

Universal Audio Dream ´65 Reverb Amplifier

`; return `Universal Audio Dream ´65 Reverb Amplifier`; } else{ productTitle.innerHTML = title; productMobileTitle.innerHTML = title; return title; } } function updateModalInformation(selectedVariant){ var productVariants = [{"id":49860518019397,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Universal Audio Dream ´65 Reverb Amplifier","public_title":null,"options":["Default Title"],"price":37900,"weight":1000,"compare_at_price":null,"inventory_management":"shopify","barcode":"Custom Product","requires_selling_plan":false,"selling_plan_allocations":[]}] var productTitleBase = `Universal Audio Dream ´65 Reverb Amplifier`; var productTitleDOM = document.getElementById('modalProductTitle'); var productMobileTitleDOM = document.getElementById('mobileModalProductTitle'); var productPriceDOM = document.getElementById('modalPrice'); var currency = `€`; var image = document.getElementById('offerImage'); var mobileImage = document.getElementById('productImageMobile'); productVariants.forEach(function (variant) { if (variant.id == selectedVariant){ var variantTitle = variant.title; var variantTitleArray = variantTitle.split(' / '); var newVariantTitle = ''; variantTitleArray.forEach(function (title, index){ newVariantTitle += `

${title}

`; }); let newTitle = `

${productTitleBase}

` + newVariantTitle; productTitleDOM.innerHTML = newTitle; productPriceDOM.innerHTML = currency + variant.price / 100.0; productTitle = updateModalProductTitle(newTitle); productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); priceMaxNumber = parseFloat(variant.price / 100.0).toFixed(2); if (variant?.featured_image?.src) { image.src = variant?.featured_image?.src; mobileImage.src = variant?.featured_image?.src; prodOfferImageSrc = variant?.featured_image?.src; } validateOfferAmount(); selectedSKU = variant.sku; } }); } function updateQuantity(quantity) { var offerQuantity = document.querySelector('#OfferInput[name="quantity"]'); offerQuantity.value = quantity; validateOfferAmount(); } function hidePriceForStores(){ var storesForHidingPrice = [8722284] if (storesForHidingPrice.includes(52950827161) ) { var modalPrice = document.getElementById('modalPrice'); modalPrice.style.display = 'none'; } } function validateOfferAmount() { const offerInput = document.querySelector('input[name="offerAmount"]'); const priceDOM = document.getElementById('modalPrice') const currency = `€`; const offer = offerInput.value; const offerRegex = /^\d+(\.\d{1,2})?$/; const useTotalAmount = true; const inputQuantity = document.querySelector('input[name="quantity"].offerInput'); const quantity = inputQuantity ? inputQuantity.value : 1; updatedPriceMaxNumber = useTotalAmount ? priceMaxNumber * quantity : priceMaxNumber; priceDOM.innerHTML = currency + formatPrice(updatedPriceMaxNumber); var issue; if (!offerRegex.test(offer)) { issue = 'Invalid Offer. Numbers and decimals only.' offerInput.setCustomValidity('Please enter only numbers and a decimal point'); } else if (parseFloat(offer) >= updatedPriceMaxNumber) { issue = 'Offer Cannot Exceed Price' offerInput.setCustomValidity('Please enter an offer less than the price'); } else if (parseFloat(offer) <= 0) { issue = 'Offer Must Be Above Zero' offerInput.setCustomValidity('Please enter an offer greater than 0'); } else { offerInput.setCustomValidity(''); } // update element with id modalPrice to inclue a percentage off const modalPrice = document.getElementById('modalPrice'); const percentageOff = (1 - (parseFloat(offer) / updatedPriceMaxNumber)) * 100; const priceTwoDecimal = formatPrice(updatedPriceMaxNumber); if (offer !== '' && offerRegex.test(offer) && parseFloat(offer) < updatedPriceMaxNumber && parseFloat(offer) > 0){ modalPrice.innerHTML = '€' + ''+priceTwoDecimal+'' + '
' + '€' + formatPrice(offer) + ' (' + percentageOff.toFixed(2) + '% off)'; } else if (offer !== ''){ modalPrice.innerHTML = '€' + priceTwoDecimal + '
' + issue; } else { modalPrice.innerHTML = '€' + priceTwoDecimal + '

'; } } function formatPrice(price) { //if price is a string, convert it to a number price = parseFloat(price).toFixed(2); price = (price.endsWith('.00') ? parseInt(price, 10) : price).toString(); // add commas to the price if it is greater than 999 and remove nubmers after decimal if (price > 999) { return price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } else { return price; } } function showSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); rightSide.style.display = 'none'; leftSide.style.display = 'none'; var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'flex'; } function hideSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'none'; rightSide.style.display = 'flex'; leftSide.style.display = 'flex'; } function updateModalState(header, content, buttonText, onClick, offerData){ var modal = document.getElementById('OfferlyModalDiv'); var modalHeader = document.getElementById('offerlyModalHeader'); var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); var modalMessage = document.getElementById('modalTextInformation'); var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); offerlyHeaderStoreLogo.style.display = 'none'; modalHeader.style.display = 'flex'; modalMessage.textContent = content; inputFields.style.display = 'none'; rightSide.style.display = 'none'; modalHeader.innerHTML = header; submitOfferButton.textContent = buttonText; submitOfferButton.onclick = function(){ mixpanel.track("Modal Button Clicked", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, buttonText: buttonText, } ); onClick() }; if (offerData?.discountCode && offerData?.showAddToCart) { submitOfferButton.style.display = 'none'; var modalAddToCartButton = document.getElementById('modalAddToCartButton'); updateOfferButton(modalAddToCartButton, findAddToCartButton()); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); modalAddToCartButton.style.display = 'block'; modalAddToCartButton.onclick = function() { mixpanel.track("Modal Button Clicked", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, buttonText: 'Add to Cart', }); let formData = { 'items': [{ 'id': offerData.productVariantId, 'quantity': offerData.quantity, 'discount_code': offerData.discountCode, }] }; fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(response => //print the response to the console response.json() ) .then(data => { // get dicsountCodes from local storage var discountCodes = JSON.parse(localStorage.getItem('OfferlyCodes')) || {}; discountArray = []; for (const [key, value] of Object.entries(discountCodes)) { discountArray.push(value); } fetch(`/checkout?discount=${discountArray.join(',')}`) .then(response => response.json()) .then(data => { //navigate to the cart page window.location.href = '/cart'; }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }; } } function closeOfferlyModal(){ var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'none'; mixpanel.track("Modal Closed", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, } ); if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } function backAndClearAmount(){ var offerInput = document.querySelector('input[name="offerAmount"]'); offerInput.value = ''; var modalMessage = document.getElementById('modalTextInformation'); modalMessage.textContent = ''; var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); rightSide.style.display = 'flex'; inputFields.style.display = 'block'; var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Make An Offer'; var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); if (52950827161 == 50712314049) { modalHeader.display = 'none'; offerlyHeaderStoreLogo.style.display = 'flex'; } submitOfferButton.innerHTML = `Send Offer`; submitOfferButton.onclick = function(){ submitOffer(); }; } function checkoutButton(url){ window.location.href = url } function inactivityAlertOfferly(maxInactivityTime) { let timeOfferly; // Function to reset the timer const resetOfferlyTimer = () => { if (timeOfferly) { clearTimeout(timeOfferly); } if (!offerlyModalOpenedOnce) { // Only set the timer if modal hasn't been opened timeOfferly = setTimeout(showInactivityAlertOfferly, maxInactivityTime); } }; // Function to show an alert when the user has been inactive function showInactivityAlertOfferly() { var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display != 'flex' && !offerlyModalOpenedOnce) { clearTimeout(timeOfferly); // Clear the timeout to stop polling openModal(); } } // Events that reset the timer window.onload = resetOfferlyTimer; document.onmousemove = resetOfferlyTimer; document.onkeypress = resetOfferlyTimer; document.onclick = resetOfferlyTimer; document.onscroll = resetOfferlyTimer; }; if (Shopify.designMode) { var modal = document.getElementById('OfferlyModalDiv'); // get local storage value var offerButtonClicked = localStorage.getItem('offerButtonClicked'); if (modal && offerButtonClicked === 'true') { // if you have clicked the button to open the modal once keep it open. modal.style.display = 'flex'; } } function populateUserInformation() { // if the user is logged in populate user information var customerName = document.querySelector('input[name="customerName"]'); var customerEmail = document.querySelector('input[name="customerEmail"]'); var customerNameValue = `` var customerEmailValue = `` if (customerName && customerNameValue) { customerName.value = customerNameValue; } if (customerEmail && customerEmailValue) { customerEmail.value = customerEmailValue; } } function showButton(){ let showButton = false; switch (showButtonInformation.productSelectorType) { case 'all': showButton = true; break; case 'collections': collectionsString = collectionsString.slice(0, -1); collectionsString.split(',').forEach((collection) => { if (showButtonInformation.selectedProducts.includes(collection) && collection.length > 0) { showButton = true; } }); break; case 'products': if (showButtonInformation.selectedProducts.includes(productVariantId)) { showButton = true; } break; case 'none': showButton = false; break; default: showButton = false; } var soldOut = [...document.querySelectorAll('button')].find((button) => button.textContent.trim().toLowerCase().includes('sold out') ) var ignoreSoldOut = [67113091311, 78280556873, 58405322835, 20281681, 61769482425, 27527348276, 57320276143]; if (soldOut && !ignoreSoldOut.includes(52950827161)) { showButton = false; } //if showButton is false delete the modal from the page // if (!showButton){ // var modal = document.getElementById('OfferlyModalDiv'); // if (modal){ // modal.remove(); // } // } //exclude this collection if ( 52950827161 == 86812131607 ){ var collectionsToExclude = ['477039395095']; collectionsString = collectionsString.slice(0, -1); collectionsString.split(',').forEach((collection) => { if (collectionsToExclude.includes(collection) && collection.length > 0) { showButton = false; } }); } return showButton; } function validateEmail(email) { var re = /\S+@\S+\.\S+/; return re.test(email); } function fixColorOfTexts(){ var labels = document.querySelectorAll('.offerly-input-label'); var Title = document.getElementById('offerlyModalHeader'); var modalPrice = document.getElementById('modalPrice'); var productTitle = document.getElementById('productTitleOfferModal'); var titleColor = rgbToHex(window.getComputedStyle(Title).color); var productTitleColor = rgbToHex(window.getComputedStyle(productTitle).color); var priceColor = rgbToHex(window.getComputedStyle(modalPrice).color); var modalColor = rgbToHex(window.getComputedStyle(document.querySelector('.offerly-modal-content')).backgroundColor); //if the color of the title and the background of the modal are the same //change the color of the title to black if (titleColor === modalColor){ Title.style.color = 'black'; } //if the color of the price and the background of the modal are the same //change the color of the price to black if (priceColor === modalColor){ modalPrice.style.color = 'black'; } //if the color of the product title and the background of the modal are the same //change the color of the product title to black if (productTitleColor === modalColor){ productTitle.style.color = 'black'; } //if the color of the labels and the background of the modal are the same //change the color of the labels to black labels.forEach(function(label){ var labelColor = rgbToHex(window.getComputedStyle(label).color); //get modal background color by the class offerly-modal-content //compare the color of the label and the background of the modal //if they are similar change the color of the label to black if (labelColor === modalColor){ // if the color is white change it to black if (labelColor === '#ffffff'){ label.style.color = 'black'; } else { label.style.color = 'white'; } } }); }; function rgbToHex(rgb) { // This regex splits the RGB values into an array let arr = rgb.match(/\d+/g); // Convert each RGB value to a two-digit hexadecimal value // if there is an opacity value, ignore it let hex = arr.map((val, index) => { if (index < 3) { return ('0' + parseInt(val).toString(16)).slice(-2); } }).join(''); return '#' + hex; } function submitOffer(){ //validate productVaraintID if (productVariantId.toString().match(/[^0-9]/g)){ var productVariants = [{"id":49860518019397,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Universal Audio Dream ´65 Reverb Amplifier","public_title":null,"options":["Default Title"],"price":37900,"weight":1000,"compare_at_price":null,"inventory_management":"shopify","barcode":"Custom Product","requires_selling_plan":false,"selling_plan_allocations":[]}] productVariants.forEach(function (variant) { if (productTitleText.includes(variant.title) || productTitleText.includes(variant.name)){ productVariantId = variant.id; } }); } var inputs = document.querySelectorAll('.offerInput'); var data = {}; var isValid = true; inputs.forEach(function (input) { if (input.style.display === 'none'){ return; } else if (input.name == 'termsCheckboxName' && !input.checked && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='additionalTextField' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='customerPhone' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name!='additionalTextField' && input.name!='customerPhone') { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) >= updatedPriceMaxNumber) { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) <= 0) { isValid = false; input.classList.add('offerInputError'); } else if(input.name == 'offerAmount' && !input.value.match(/^\d+(\.\d{1,2})?$/)){ isValid = false; input.classList.add('offerInputError'); } else if (input.name == 'customerEmail' && !validateEmail(input.value)) { isValid = false; input.classList.add('offerInputError'); } else { input.classList.remove('offerInputError'); } data[input.name] = input.value; }); delete data['termsCheckboxName']; data['quantity'] = data['quantity'] ? parseInt(data['quantity']) : 1; data['productVariantId'] = productVariantId.toString(); data['productPriceMax'] = priceMaxNumber; data['productTitle'] = productTitleText; data['offerAmount'] = true ? (parseFloat(data['offerAmount']) / parseInt(data['quantity'])).toFixed(2) : data['offerAmount'] ; data['productLink'] = "/products/universal-audio-dream-65-reverb-amplifier" + "?variant=" + productVariantId; data['currency'] = currency; data['currencySymbol'] = currencySymbol data['variantSKU'] = selectedSKU?.toString(); data['productID'] = productID?.toString(); data['productVendor'] = productVendor?.toString(); data['imageSrc'] = prodOfferImageSrc ? prodOfferImageSrc : document.getElementById('offerImage')?.src; var additionalTextInput = document.querySelector('textarea[name="additionalTextField"]'); if (additionalTextInput) { data['additionalTextField'] = additionalTextInput.value; } if (!isValid) { return; } mixpanel.track("Offer Submitted", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], } ); //disable the button var submitOfferButton = document.getElementById('submitOfferButton'); submitOfferButton.disabled = true; fetch('/apps/offerly-proxy/app/acceptOffers?', { method: 'POST', body: JSON.stringify(data), }) .then((response) => response.json()) .then((data) => { //enable the button submitOfferButton.disabled = false; var delayForAutoResponse = delayAutoMessage ? autoResponseDelay : 0; if (data.offerStatus === 'Pending'){ if (52950827161 == 50712314049 ){ updateModalState("Thank you for contacting Lougher", "A member of our sales team will get back to you shortly.", "Close", closeOfferlyModal); } if (52950827161 == 58351059100){ updateModalState("Thank you for your offer!", "You should see a response within 2-10 minutes. If you do not see an email from us after a few hours, please check your junk/spam folder.", "Close", closeOfferlyModal); } else{ updateModalState("Thank You!", "We will get back to you shortly.", "Close", closeOfferlyModal); } mixpanel.track("Offer Pending", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], }); } if (data.offerStatus === 'Auto-Declined'){ mixpanel.track("Offer Auto-Declined", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], }); showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Try Again!", "Your offer was too low. Please try again!", "Try Again", backAndClearAmount ); }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Accepted'){ mixpanel.track("Offer Auto-Accepted", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Congratulations!", "Great news! Your offer was accepted. Click below to proceed to checkout with your discount applied!", "Checkout", function(){checkoutButton(data.checkoutLink)} , data ) }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Countered'){ mixpanel.track("Offer Auto-Countered", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); // wait 10 seconds before updating modal showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Countered!", `Your offer was countered to ${data.currencySymbol}${parseFloat(data.counterAmount).toFixed(2)} ${data.currency}. Click below to proceed to checkout with your discount applied!`, "Checkout", function(){checkoutButton(data.checkoutLink)}, data) }, delayForAutoResponse * 1000); } }) .catch((error) => { // Handle any errors console.error(error); mixpanel.track("Offer Error", { shop: `www.tonefestguitargallery.com`, productTitle: `Universal Audio Dream ´65 Reverb Amplifier`, offerAmount: data['offerAmount'], } ); updateModalState("Error Occurred!", "An error occurred while submitting your offer. Please try again.", "Try Again", backAndClearAmount); }); }

Universal Audio Dream ´65 Reverb Amplifier (2024)

References

Top Articles
Lineare Algebra 1 Klausur bestehen
Ksbg.paris Full Live
Marcial Quinones Useless MBA: 1500 applications & still no job!
Jay Cutler of NFL Biography, Wife, Career Stats, Net Worth &amp; Salary
Boost Mobile 69Th Ashland
Celebrity Guest Tape Free
Solo Player Level 2K23
What Does Sybau Mean
Madden 23 Playbooks Database
Tammi Light Obituary
Mypdr
Thomas Funeral Home Sparta Nc
Summoner Calamity
Cuộc thi “Chung tay vì an toàn giao thông” năm 2024
Lexi Ainsworth Baby
Employment Vacancies - Find Jobs with our recruitment team
Uc My Bearcat Network
Gay Cest Com
Tuition Fee Compensation
Offres Emploi Purchasing manager Paris (75000) | HelloWork
Secret Stars Sessions Julia
Rugged Gentleman Barber Shop Martinsburg Wv
Cozy Bug Company Net Worth
Telegram Voyeur
Death Valley National Park: The Complete Guide
360 Training Food Handlers Final Exam Answers 2022
10 018 Sqft To Acres
Wall Tapestry At Walmart
Virtualrewardcenter.com/Activate
Pa Lottery Remaining Prizes Scratch Offs
Craigslist Free Charlottesville Va
Here's everything Apple just announced: iPhone 16, iPhone 16 Pro, Apple Watch Series 10, AirPods 4 and more
Hux Lipford Funeral
What Happened To Doublelist? Unveiling The Mystery | Men's Venture
Www.playgd.mobi Wallet
Joy Ride 2023 Showtimes Near Amc Ward Parkway
Shs Games 1V1 Lol
Advanced Auto Body Hilton Head
Whats On Metv Now
NCCAC
424-385-0597 phone is mostly reported for Text Message!
How to Set Up Dual Carburetor Linkage (with Images)
Benson Downs Resident Portal
Carros Jeep Wrangler Tachira | MercadoLibre 📦
Eliza Hay, MBA on LinkedIn: I’m happy to share that I’ve started a new position as Regional Director… | 36 comments
Azpeople Self Service
Towne Pizza Carman Road
Liberty 1098-T
Farmers And Merchants Bank Broadway Va
Level A Sarasota
big island real estate - craigslist
Pay My Sewer Bill Long Island
Latest Posts
Article information

Author: Tuan Roob DDS

Last Updated:

Views: 5760

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.