Uname:Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64

403WebShell
403Webshell
Server IP : 13.126.101.145  /  Your IP : 216.73.217.50
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.3.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/rentals_updated/wp-content/themes/hello-elementor-child/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/rentals_updated/wp-content/themes/hello-elementor-child/js/custom-js.js
/////////////////////////////////////////////////////////////Header
document.addEventListener("DOMContentLoaded", function () {
	const header = document.querySelector("header");

	// Open menu
	document.querySelectorAll(".hm-btn").forEach(function (btn) {
		btn.addEventListener("click", function () {
			header.classList.add("active-mobile-menu");
		});
	});

	// Close menu + all submenus
	function closeMenu() {
		header.classList.remove("active-mobile-menu");

		// Close all submenus
		document.querySelectorAll(".nav-menu .show").forEach(function (submenu) {
			submenu.classList.remove("show");
		});

		// Remove active class from buttons
		document.querySelectorAll(".nav-menu .dd-toggle").forEach(function (btn) {
			btn.classList.remove("active");
		});
	}

	// Close button and background layer
	document.querySelectorAll(".close-btn, .nav-bg-layer").forEach(function (btn) {
		btn.addEventListener("click", closeMenu);
	});

	// Close menu on link click
	document.querySelectorAll(".nav-menu a").forEach(function (link) {
		link.addEventListener("click", closeMenu);
	});

	// Toggle submenus
	document.querySelectorAll('.nav-menu .dd-toggle').forEach(button => {
		button.addEventListener('click', function (e) {
			e.stopPropagation(); // Prevent bubbling to document

			const submenu = this.nextElementSibling;
			const isOpen = submenu.classList.contains('show');

			const parentUl = this.closest('ul');

			// Close all sibling submenus
			parentUl.querySelectorAll('ul').forEach(ul => ul.classList.remove('show'));
			parentUl.querySelectorAll('button').forEach(btn => btn.classList.remove('active'));

			// Toggle current
			if (!isOpen) {
				submenu.classList.add('show');
				this.classList.add('active');
			}
		});
	});
});


jQuery(document).ready(function ($) {
// ---------------------------------------------------------------------------- Change text on cart page
	var checkExist = setInterval(function () {
		var $el = $(".wp-block-woocommerce-cart-order-summary-heading-block, .wc-block-cart__totals-title");
		if ($el.length) {
			$el.text("Checkout Summary");
			clearInterval(checkExist);
		}
	}, 10);
// ---------------------------------------------------------------------------- Rent page category slider
$('.category-grid').slick({
	slidesToShow: 5,
	slidesToScroll: 1,
	infinite: true,
	arrows: true,
	dots: false,
	prevArrow: '<button type="button" class="slick-prev custom-arrow"></button>',
	nextArrow: '<button type="button" class="slick-next custom-arrow"></button>',
	responsive: [
		{ breakpoint: 1025, settings: { slidesToShow: 3 } },
		{ breakpoint: 769, settings: { slidesToShow: 2 } },
		{ breakpoint: 480, settings: { slidesToShow: 1 } }
	]
});
	// -------------------------------------------------------------------------------------------------- Home Search
	const today = new Date();
	const yyyy = today.getFullYear();
	const mm = String(today.getMonth() + 1).padStart(2, '0'); // Months start from 0
	const dd = String(today.getDate()).padStart(2, '0');
	const formattedToday = `${yyyy}-${mm}-${dd}`;

// 	$('#rent-form #start_date, #rent-form #end_date').attr('min', formattedToday);

	//-----------------------------  Home page rent and buy section
	$('#rent-button').on('click', function () {
		$('#intro-section').hide();
		$('#rent-form').show();
		$('#rent-form #start_date').val('');
		$('#rent-form #end_date').val('').prop('disabled', true).removeAttr('min');
		$('#rent_product_search').val('');
		$('#product-rent-results').empty();
		$(".input-clear-btn").hide();
	});

	$('#buy-button').on('click', function () {
		$('#intro-section').hide();
		$('#buy-form').show();
	});

	window.goBack = function () {
		$('#intro-section').show();
		$('#rent-form').hide();
		$('#buy-form').hide();
	};

	// ----------------------------------------------------------------------------------- custom filter on shop page
	$('.power-capacity-filter').css({
		'display': 'none',
	});
	let currentPage = 1;
	let loading = false;

	function fetchFilteredProducts(reset = true) {
		$('#load-more-btn').hide();

		if (loading) return;

		loading = true;
		if (reset) currentPage = 1;

		let categories = $('.category-filter:checked').map(function () {
			return $(this).val();
		}).get();

		let purpose = $('.purpose-filter:checked').map(function () {
			return $(this).val();
		}).get();

		let power = $('.power-filter:checked').map(function () {
			return $(this).val();
		}).get();

		// let yardChecked = $('.yard-toggle:checked');
		// let yard_location = yardChecked.length ? yardChecked.data('value') : '';

		let yard_location = $('.yard-filter:checked').map(function () {
			return $(this).val();
		}).get();

		categories = categories.length > 0 ? categories : [currentTermId, categories];

		const urlParams = new URLSearchParams(window.location.search);
		const start_date = urlParams.get('start_date');
		const end_date = urlParams.get('end_date');
		const state = urlParams.get('state');
		const district = urlParams.get('district');
		// console.log(ajax_object.ajax_url);
		$.ajax({
			url: ajax_object.ajax_url,
			type: 'POST',
			data: {
				action: 'filter_products',
				categories: categories,
				purpose: purpose,
				power: power,
				yard_location: yard_location,
				paged: currentPage,
				start_date: start_date,
				end_date: end_date,
				state: state,
				district: district
			},
			beforeSend: function () {
				$('#product-loader').show();
				if (reset) {
					$('#ajax-products').empty(); // Clear content
				} else {
					$('#load-more-btn').prop('disabled', true).hide();
				}
			},
			success: function (response) {
				$('#product-loader').hide();
				if (response.total_found > 0) {
					$('#total-found-count').text(response.total_found).closest('p').show();
				} else {
					$('#total-found-count').closest('p').hide();
				}

				if (reset) {
					$('#ajax-products').html(response.html);
				} else {
					$('#ajax-products').append(response.html);
				}
				if (response.has_more) {
					$('#load-more-btn').show().prop('disabled', false);
				} else {
					$('#load-more-btn').hide();
				}
				loading = false;
			}
		});
	}

	$('.category-filter, .purpose-filter, .power-filter, .yard-filter').on('change', function () {
		// if ($(this).hasClass('yard-filter') && $(this).is(':checked')) {
		// 	$('.yard-filter').not(this).prop('checked', false);
		// }

		if ($(this).hasClass('category-filter')) {
			$('.power-filter').prop('checked', false);
		}
		fetchFilteredProducts(true);

	});

	// ------------------- On category filter change (for user interaction)
	$('.category-filter').on('change', function () {
		const parent = $(this).closest('.category-box');
		const value = $(this).val(); // This is the correct way to get the checkbox value

		if ($(this).is(':checked')) {
			// Check all checkboxes with same value and add .active to parent
			$('.category-filter[value="' + value + '"]').each(function () {
				$(this).prop('checked', true);
				$(this).closest('.category-box').addClass('active');
			});
		} else {
			// Uncheck all clones and remove .active
			$('.category-filter[value="' + value + '"]').each(function () {
				$(this).prop('checked', false);
				$(this).closest('.category-box').removeClass('active');
			});
		}
		if ($('.category-box.active').length === 0) {
			$('.power-capacity-filter').css({
				'display': 'block',
			});
		}

		$('.category-box.active').each(function () {
			const val = $(this).find('input[type="checkbox"]').val();
			if (val === '384') {
				$('.power-capacity-filter').css({
					'display': 'block',
				});
			} else {
				$('.power-capacity-filter').css({
					'display': 'none',
				});
			}
		});
	});


	$('#load-more-btn').on('click', function () {
		currentPage++;
		fetchFilteredProducts(false);
	});
	
	

	function setFiltersByScreen() {
		if ($(window).width() <= 1024) {
			// Mobile: close all filters
			$('.toggle-content').hide();
			$('.toggle-header').removeClass('active');
		} else {
			// Desktop: open all filters
			$('.toggle-content').show();
			$('.toggle-header').addClass('active');
		}
	}

	// Run on page load
	setFiltersByScreen();

	// Run again if window is resized
	$(window).resize(function () {
		setFiltersByScreen();
	});

	$('.toggle-header').click(function () {
		$(this).toggleClass('active');
		$(this).next('.toggle-content').slideToggle();
	});

	fetchFilteredProducts(true);

	// ------------------------------------------------------------------------------------------------- Home Rent Filter
	// Initially disable end date field
	$('#rent-form #end_date').prop('disabled', true);

	// Enable end date when start date is selected
	$('#rent-form #start_date').on('change', function () {
		const startDate = $(this).val();
		if (startDate) {
			$('#rent-form #end_date').prop('disabled', false);
// 			$('#rent-form #end_date').attr('min', startDate);
			
			 let minEndDate = new Date(startDate);
        minEndDate.setMonth(minEndDate.getMonth() + 1);
			function formatDate(date) {
            let day = ("0" + date.getDate()).slice(-2);
            let month = ("0" + (date.getMonth() + 1)).slice(-2);
            let year = date.getFullYear();
            return year + "-" + month + "-" + day;
        }
			$('#rent-form #end_date').attr('min', formatDate(minEndDate));
			
		} else {
			$('#rent-form #end_date').prop('disabled', true).val('').removeAttr('min');
		}
		fetchProducts();
	});

	$('#rent-form #end_date, #state, #district').on('change', function () {
		fetchProducts(); // Trigger AJAX when end date changes
	});

	let debounceTimer;

	function fetchProducts() {
		const keyword = $('#rent_product_search').val();
		const startDate = $('#rent-form #start_date').val();
		const endDate = $('#rent-form #end_date').val();
	const state = $('#state').val();
		const district = $('#district').val();
		

		$.ajax({
			url: ajax_object.ajax_url,
			method: 'POST',
			data: {
				action: 'ajax_search_products',
				keyword,
				startDate,
				endDate,
				state,
				district
			},
			beforeSend: function () {
				$(".search-loader").show();
				$('#product-rent-results').empty();
			},
			success: function (response) {
				$(".search-loader").hide();
				$(".input-clear-btn").show();
				if (response.trim() !== "") {
					$('#product-rent-results').html(response);
					// $("#filter-properties").prop("disabled", false);
				} else {
					// $("#filter-properties").prop("disabled", true);
					$("#product-rent-results").html(`<p>No properties found.</p>`);
				}
			}
		});
	}

	// Debounced search
	$('#rent_product_search').on('keyup', function () {
		$(".search-loader").show();
		clearTimeout(debounceTimer);

		let query = $(this).val().trim();

		if (query.length < 3) {
			clearTimeout(debounceTimer);
			$('#product-rent-results').empty();
			$(".search-loader").hide();
			return;
		}
		debounceTimer = setTimeout(fetchProducts, 300); // 300ms debounce
	});

	// On change (dropdown/filters)
	$('#category-filter').on('change', fetchProducts);

	$(".input-clear-btn").click(function () {
		clearTimeout(debounceTimer);
		// $("#filter-properties").prop("disabled", true);
		$('#product-rent-results').empty();
		$('#rent_product_search').val('');
		$(".search-loader").hide();
		$(".input-clear-btn").hide();
	});

	$('#rent-form #start_date, #rent-form #end_date, #rent-form #state, #rent-form #district').on('change', function () {
		let query = $('#rent_product_search').val().trim();
		if (query.length > 2) {
			//console.log('sssss');
			fetchProducts();
		}
	})

	//     $(document).on('click', '.search-prod-item', function (e) {
	//         const startDate = $('#start_date').val();

	//         if (startDate) {
	//             e.preventDefault(); // Only prevent if start date exists

	//             const endDate = $('#end_date').val();

	//             // Store values in localStorage
	//             localStorage.setItem('rent_start_date', startDate);
	//             localStorage.setItem('rent_end_date', endDate);

	//             // Navigate to the data-href URL
	//             const href = $(this).data('href');
	//             if (href) {
	//                 window.location.href = href;
	//             }
	//         }
	//     });

	$(document).on('click', '.search-prod-item', function (e) {
		const href = $(this).data('href');

		const isRentContext = $('#rent-form').is(':visible');

		if (isRentContext) {
			const startDate = $('#rent-form #start_date').val();
			const endDate = $('#rent-form #end_date').val();
			const state = $('#rent-form #state').val();
			const district = $('#rent-form #district').val();

			if (startDate) {
				e.preventDefault();

				localStorage.setItem('rent_start_date', startDate);
				localStorage.setItem('rent_end_date', endDate);
				localStorage.setItem('rent_state', state);
				localStorage.setItem('rent_district', district);
			}
		}
		// For Buy — no need to store dates
		if (href) {
			window.location.href = href;
		}
	});

	const savedStart = localStorage.getItem('rent_start_date');
	const savedEnd = localStorage.getItem('rent_end_date');
	
	let rent_start_date = localStorage.getItem('rent_start_date');
	let rent_end_date = localStorage.getItem('rent_end_date');
	let rent_state = localStorage.getItem('rent_state');
	let rent_district = localStorage.getItem('rent_district');
	
	$('.rent_state').text(rent_state);
	$('.rent_district').text(rent_district);

// 	if (rent_start_date) {
//         $('#rent-form #start_date').val(rent_start_date).trigger('change');

//         // Enable and set end date if available
//         if (rent_end_date) {
//             $('#rent-form #end_date').prop('disabled', false).val(rent_end_date);
//         }
//     }
	
// 	if (rent_state) {
//         $('#rent-form #state').val(rent_state).trigger('change');

//         // If you have a function to populate districts based on state, call it here
//         if (rent_district) {
//             // Small delay in case districts are populated dynamically
//             setTimeout(function () {
//                 $('#rent-form #district').val(rent_district);
//             }, 300);
//         }
//     }
// 	if (savedStart && $('.rfq-date-field#start_date')[0]?._flatpickr) {
// 		$('.rfq-date-field#start_date')[0]._flatpickr.setDate(savedStart, true); // true triggers onChange
// 		// localStorage.removeItem('rent_start_date');
// 		}

// 		if (savedEnd) {
// 		$('.rfq-date-field#end_date')[0]._flatpickr.setDate(savedEnd, true); // true triggers onChange
// 		// localStorage.removeItem('rent_end_date');
// 		}
		if (savedStart && $('.rfq-date-field#start_date')[0] && $('.rfq-date-field#start_date')[0]._flatpickr) {
    $('.rfq-date-field#start_date')[0]._flatpickr.setDate(savedStart, true); // true triggers onChange
}

if (savedEnd && $('.rfq-date-field#end_date')[0] && $('.rfq-date-field#end_date')[0]._flatpickr) {
    $('.rfq-date-field#end_date')[0]._flatpickr.setDate(savedEnd, true); // true triggers onChange
}


		if (savedStart && $('#rent-form #start_date').length && $('#rent-form #start_date')[0]._flatpickr) {
		$('#rent-form #start_date')[0]._flatpickr.setDate(savedStart, true); // true = triggerChange
		// localStorage.removeItem('rent_start_date');
		}

		if (savedEnd && $('#rent-form #end_date').length && $('#rent-form #end_date')[0]._flatpickr) {
		$('#rent-form #end_date')[0]._flatpickr.setDate(savedEnd, true); // true = triggerChange
		// localStorage.removeItem('rent_end_date');
		}

		const urlParams = new URLSearchParams(window.location.search);
		const start_date = urlParams.get('start_date');
		const end_date = urlParams.get('end_date');
		const state = urlParams.get('state');
		const district = urlParams.get('district');

		if (start_date && end_date) {
		localStorage.setItem('rent_start_date', start_date);
		localStorage.setItem('rent_end_date', end_date);
		localStorage.setItem('rent_state', state);
		localStorage.setItem('rent_district', district);
		//console.log('Saved to localStorage:', start_date, end_date, state, district);
		}

		// ------------------------------------------------------------------------------------------------- Home Buy Filter
		let debounceBuyTimer;

		$('#buy_product_search').on('keyup', function () {
		$(".search-loader").show();
		clearTimeout(debounceBuyTimer);

		debounceBuyTimer = setTimeout(fetchBuyProducts, 300);
		});

		function fetchBuyProducts() {
				const keyword = $('#buy_product_search').val();

				$.ajax({
				url: ajax_object.ajax_url,
				method: 'POST',
				data: {
				action: 'ajax_search_products',
				keyword,
				category: 'buy',
				},
				beforeSend: function () {
				$(".search-loader").show();
				$('#product-buy-results').empty();
			},
				success: function (response) {
					$(".search-loader").hide();
					$(".input-clear-btn").show();
					if (response.trim() !== "") {
						$('#product-buy-results').html(response);
					} else {
						$("#product-buy-results").html(`<p>No products found.</p>`);
					}
				}
		});
	}

});

// ------------------------------------------------------------------ First accordion by default should be closed
jQuery(document).ready(function ($) {
	var $firstCard = $('.elementor-widget-elementskit-accordion .elementskit-card:first-child');

	$firstCard.removeClass('active');

	var $collapse = $firstCard.find('.collapse');
	$collapse.removeClass('show').addClass('collapse').attr('aria-expanded', 'false').css('height', '0');

	$firstCard.find('[data-bs-toggle="collapse"]').attr('aria-expanded', 'false');
});

// ------------------------------------------------------------------ Rent page filter option for mobile screen
jQuery(document).ready(function ($) {
	$(".mobile-filter-toggle").on("click", function () {
		$("#product-filters").toggleClass("active");
		$(this).find("i").toggleClass("fa-chevron-down fa-chevron-up");
	});
});

// confirmation popup on cart page
// (function () {
// 	// Avoid binding twice
// 	if (window._wcRemoveConfirmBound) return;
// 	window._wcRemoveConfirmBound = true;

// 	document.addEventListener(
// 		"click",
// 		function (e) {
// 			const btn = e.target && e.target.closest(".wc-block-cart-item__remove-link");
// 			if (!btn) return;

// 			// If we're re-firing after user confirmed, let Woo handle it
// 			if (btn.dataset.confirmBypass === "1") {
// 				btn.dataset.confirmBypass = "0";
// 				return; // do not block
// 			}

// 			// Block Woo's React handler first
// 			e.preventDefault();
// 			e.stopPropagation();
// 			if (typeof e.stopImmediatePropagation === "function") e.stopImmediatePropagation();

// 			// Ask
// 			const msg = "Are you sure you want to remove this item from the cart?";
// 			if (window.confirm(msg)) {
// 				// Allow the next click to go through to Woo
// 				btn.dataset.confirmBypass = "1";
// 				// Trigger a fresh native click so React's handler runs
// 				btn.click();
// 				setTimeout(function(){ window.location.reload(); }, 1200);

// 			}
// 			// If "No", we simply stop everything and do nothing
// 		},
// 		true // <-- capture phase is critical
// 	);
// })();


 (function () {
      if (window._wcRemoveConfirmBound) return;
      window._wcRemoveConfirmBound = true;

      let targetBtn = null;
      const popup = document.getElementById("cart-remove-confirm");
      const btnYes = document.getElementById("confirm-yes");
      const btnNo = document.getElementById("confirm-no");

      document.addEventListener(
        "click",
        function (e) {
          const btn = e.target && e.target.closest(".wc-block-cart-item__remove-link");
          if (!btn) return;

          if (btn.dataset.confirmBypass === "1") {
            btn.dataset.confirmBypass = "0";
            return;
          }

          e.preventDefault();
          e.stopPropagation();
          if (typeof e.stopImmediatePropagation === "function") e.stopImmediatePropagation();

          targetBtn = btn;
          popup.style.display = "flex";
        },
        true
      );

      btnYes.addEventListener("click", function () {
        if (targetBtn) {
          targetBtn.dataset.confirmBypass = "1";
          targetBtn.click();
          setTimeout(function () {
            window.location.reload();
          }, 1200);
        }
        popup.style.display = "none";
        targetBtn = null;
      });

      btnNo.addEventListener("click", function () {
        popup.style.display = "none";
        targetBtn = null;
      });
    })();

jQuery(document).ready(function($) {
	// Function to disable all plus buttons
	function disablePlusButtons() {
		$('.wc-block-components-quantity-selector__button--plus').prop('disabled', true);
	}

	// Disable buttons on page load
	disablePlusButtons();

	// Disable button if user tries to click
	$(document).on('click', '.wc-block-components-quantity-selector__button--plus', function(e) {
		e.preventDefault(); // Prevent any click action
		$(this).prop('disabled', true); // Ensure it's disabled
	});

	// If WooCommerce dynamically updates quantity selectors (e.g., after AJAX), observe DOM changes
	const observer = new MutationObserver(function(mutationsList) {
		mutationsList.forEach(function(mutation) {
			if (mutation.addedNodes.length) {
				disablePlusButtons(); // Re-disable newly added plus buttons
			}
		});
	});

	// Start observing the document body for added nodes
	observer.observe(document.body, { childList: true, subtree: true });
});



jQuery(document).ready(function ($) {
	function updateQuantityButtons(selector) {
		$(selector).each(function () {
			const $input = $(this).find('.wc-block-components-quantity-selector__input');
			const $minus = $(this).find('.wc-block-components-quantity-selector__button--minus');
			const val = parseInt($input.val(), 10);
			const min = parseInt($input.attr('min'), 10) || 1;

			if (val <= min) {
				$minus.prop('disabled', true);
			} else {
				$minus.prop('disabled', false);
			}
		});
	}

	// Initial run
	updateQuantityButtons('.wc-block-components-quantity-selector');

	// Run when value changes
	$(document).on('change input', '.wc-block-components-quantity-selector__input', function () {
		updateQuantityButtons('.wc-block-components-quantity-selector');
	});
});



jQuery(document).ready(function($) {
    function addAfterTotalText() {
        let disclaimerText = '* Transportation cost will be billed additional. Please read the Terms and Conditions at the checkout page.';

        if ($('.woocommerce-cart').length > 0 && typeof cartPrices !== 'undefined' && cartPrices.length > 0) {

            // Check if any product is in "buy" category
            let skipGST = false;
            if (typeof cartCategories !== 'undefined') {
                for (let pid in cartCategories) {
                    if (cartCategories[pid].includes('buy')) {
                        skipGST = true;
                        break;
                    }
                }
            }

            // Calculate total base price
            let basePrice = cartPrices.reduce((sum, price) => sum + Number(price), 0);

            // GST only if not skipped
            let gst = skipGST ? 0 : basePrice * 0.18;

            // Final total
            let total = basePrice + gst;

            // Format numbers in Indian style
            const formatINR = (num) => num.toLocaleString('en-IN', { minimumFractionDigits: 2, maximumFractionDigits: 2 });

            // Build HTML dynamically
            let priceHtml = '';

			if (!skipGST) {
				priceHtml = `
					<div class="cart-price-summary" style="font-size: 14px; color: #000; margin-top: 12px;width: 100%;">
						<div style="display: flex; justify-content: space-between;">
							<span>Base Price:</span>
							<span>₹${formatINR(basePrice)}</span>
						</div>
						<div style="display: flex; justify-content: space-between;">
							<span>GST @18%:</span>
							<span>₹${formatINR(gst)}</span>
						</div>
						<div style="display: flex; justify-content: space-between; font-weight: bold;">
							<span>Total:</span>
							<span>₹${formatINR(total)}</span>
						</div>
					</div>
				`;
			}

            // Append only if not already added
			if (priceHtml && $('.woocommerce-cart .cart-price-summary').length === 0) {
                $('.woocommerce-cart .wc-block-components-totals-footer-item').append(priceHtml);
            }
        }

        // Transportation cost logic remains the same
        if (typeof cartDistances !== 'undefined' && cartDistances.length > 0) {
            let totalCost = 0;
            cartDistances.forEach(item => totalCost += (2 * item.distance * 100));
            totalCost = Math.round(totalCost / 100) * 100;
            let formattedCost = totalCost.toLocaleString('en-IN', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
            disclaimerText = '* Additional tentative transportation cost is ₹' + formattedCost +
                '. Actual transportation cost will be invoiced during machine delivery. Please read ' +
                '<a href="/terms-and-conditions-rental-machines/" target="_blank" style="color: #000; text-decoration: underline;">Terms and Conditions</a> for transportation charges.';
        }

        // Cart disclaimer
        if ($('.woocommerce-cart .wc-block-components-totals-footer-item .cart-after-total-text').length === 0) {
            $('.woocommerce-cart .wc-block-components-totals-footer-item').append(
                '<div class="cart-after-total-text" style="font-size: 12px;color: #aa1d25;line-height: 13px;margin-top: 12px">' +
                disclaimerText +
                '</div>'
            );
        }

        // Checkout disclaimer
        if ($('.woocommerce-checkout-review-order-table + .checkout-after-total-text').length === 0) {
            $('.woocommerce-checkout-review-order-table').after(
                '<div class="checkout-after-total-text" style="font-size: 12px;color: #aa1d25;line-height: 13px;margin-bottom: 12px">' +
                disclaimerText +
                '</div>'
            );
        }
    }

    // Run immediately
    addAfterTotalText();

    // Watch Cart
    const cartTarget = document.querySelector('.woocommerce-cart');
    if (cartTarget) {
        const cartObserver = new MutationObserver(() => addAfterTotalText());
        cartObserver.observe(cartTarget, { childList: true, subtree: true });
    }

    // Watch Checkout
    const checkoutTarget = document.querySelector('.woocommerce-checkout-review-order-table');
    if (checkoutTarget) {
        const checkoutObserver = new MutationObserver(() => addAfterTotalText());
        checkoutObserver.observe(checkoutTarget.parentNode, { childList: true, subtree: true });
    }
});



jQuery(document).ready(function($) {
    $('#rfqTable, #quotationTable, #equiryTable, #agreementTable, #invoiceTable, #logTable, #contractTable, #renewContractTable, #otherContractTable, #financeTable').DataTable({
        "order": [[0, "asc"]], // Default sort by Sr. No.
    });
});
$("#start_date").on("change", function () {
    let startDate = new Date($(this).val());

    if (!isNaN(startDate.getTime())) {
        // calculate +1 month from start date
        let minEndDate = new Date(startDate);
        minEndDate.setMonth(minEndDate.getMonth() + 1);

        function formatDate(date) {
            let day = ("0" + date.getDate()).slice(-2);
            let month = ("0" + (date.getMonth() + 1)).slice(-2);
            let year = date.getFullYear();
            return year + "-" + month + "-" + day;
        }
        
        // block all dates before +1 month
        $("#end_date").attr("min", formatDate(minEndDate));
        $(".end-date-new").attr("min", formatDate(minEndDate));
        //$("#end_date").val(""); // clear if invalid
    }
});


//  $('#state').on('change', function(){
//         var state_id = $(this).val();
//         $('#district').html('<option>Loading...</option>');
//         $.ajax({
//             url: '/wp-admin/admin-ajax.php',
//             data: {
//                 action: 'get_yard_districts',
//                 parent_id: state_id
//             },
//             dataType: 'json',
//             success: function(response){
//                 var html = '<option value="">Select District</option>';
//                 if(response && response.length){
//                     $.each(response, function(i, item){
//                         html += '<option value="'+item.term_id+'">'+item.name+'</option>';
//                     });
//                 }
//                 $('#district').html(html);
//             }
//         });
//     });


// State and district code
var AndraPradesh = ["Anantapur", "Chittoor", "East Godavari", "Guntur", "Kadapa", "Krishna", "Kurnool", "Prakasam",
							"Nellore", "Srikakulam", "Visakhapatnam", "Vizianagaram", "West Godavari"
						   ];
		var ArunachalPradesh = ["Anjaw", "Changlang", "Dibang Valley", "East Kameng", "East Siang", "Kra Daadi",
								"Kurung Kumey", "Lohit", "Longding", "Lower Dibang Valley", "Lower Subansiri", "Namsai", "Papum Pare",
								"Siang", "Tawang", "Tirap", "Upper Siang", "Upper Subansiri", "West Kameng", "West Siang", "Itanagar"
							   ];
		var Assam = ["Baksa", "Barpeta", "Biswanath", "Bongaigaon", "Cachar", "Charaideo", "Chirang", "Darrang", "Dhemaji",
					 "Dhubri", "Dibrugarh", "Goalpara", "Golaghat", "Hailakandi", "Hojai", "Jorhat", "Kamrup Metropolitan",
					 "Kamrup (Rural)", "Karbi Anglong", "Karimganj", "Kokrajhar", "Lakhimpur", "Majuli", "Morigaon", "Nagaon",
					 "Nalbari", "Dima Hasao", "Sivasagar", "Sonitpur", "South Salmara Mankachar", "Tinsukia", "Udalguri",
					 "West Karbi Anglong"
					];
		var Bihar = ["Araria", "Arwal", "Aurangabad", "Banka", "Begusarai", "Bhagalpur", "Bhojpur", "Buxar", "Darbhanga",
					 "East Champaran", "Gaya", "Gopalganj", "Jamui", "Jehanabad", "Kaimur", "Katihar", "Khagaria", "Kishanganj",
					 "Lakhisarai", "Madhepura", "Madhubani", "Munger", "Muzaffarpur", "Nalanda", "Nawada", "Patna", "Purnia",
					 "Rohtas", "Saharsa", "Samastipur", "Saran", "Sheikhpura", "Sheohar", "Sitamarhi", "Siwan", "Supaul",
					 "Vaishali", "West Champaran"
					];
		var Chhattisgarh = ["Balod", "Baloda Bazar", "Balrampur", "Bastar", "Bemetara", "Bijapur", "Bilaspur", "Dantewada",
							"Dhamtari", "Durg", "Gariaband", "Janjgir Champa", "Jashpur", "Kabirdham", "Kanker", "Kondagaon", "Korba",
							"Koriya", "Mahasamund", "Mungeli", "Narayanpur", "Raigarh", "Raipur", "Rajnandgaon", "Sukma", "Surajpur",
							"Surguja"
						   ];
		var Goa = ["North Goa", "South Goa"];
		var Gujarat = ["Ahmedabad", "Amreli", "Anand", "Aravalli", "Banaskantha", "Bharuch", "Bhavnagar", "Botad",
					   "Chhota Udaipur", "Dahod", "Dang", "Devbhoomi Dwarka", "Gandhinagar", "Gir Somnath", "Jamnagar", "Junagadh",
					   "Kheda", "Kutch", "Mahisagar", "Mehsana", "Morbi", "Narmada", "Navsari", "Panchmahal", "Patan", "Porbandar",
					   "Rajkot", "Sabarkantha", "Surat", "Surendranagar", "Tapi", "Vadodara", "Valsad"
					  ];
		var Haryana = ["Ambala", "Bhiwani", "Charkhi Dadri", "Faridabad", "Fatehabad", "Gurugram", "Hisar", "Jhajjar",
					   "Jind", "Kaithal", "Karnal", "Kurukshetra", "Mahendragarh", "Mewat", "Palwal", "Panchkula", "Panipat",
					   "Rewari", "Rohtak", "Sirsa", "Sonipat", "Yamunanagar"
					  ];
		var HimachalPradesh = ["Bilaspur", "Chamba", "Hamirpur", "Kangra", "Kinnaur", "Kullu", "Lahaul Spiti", "Mandi",
							   "Shimla", "Sirmaur", "Solan", "Una"
							  ];
		var JammuKashmir = ["Anantnag", "Bandipora", "Baramulla", "Budgam", "Doda", "Ganderbal", "Jammu", "Kargil",
							"Kathua", "Kishtwar", "Kulgam", "Kupwara", "Leh", "Poonch", "Pulwama", "Rajouri", "Ramban", "Reasi",
							"Samba", "Shopian", "Srinagar", "Udhampur"
						   ];
		var Jharkhand = ["Bokaro", "Chatra", "Deoghar", "Dhanbad", "Dumka", "East Singhbhum", "Garhwa", "Giridih", "Godda",
						 "Gumla", "Hazaribagh", "Jamtara", "Khunti", "Koderma", "Latehar", "Lohardaga", "Pakur", "Palamu", "Ramgarh",
						 "Ranchi", "Sahebganj", "Seraikela Kharsawan", "Simdega", "West Singhbhum"
						];
		var Karnataka = ["Bagalkot", "Bangalore Rural", "Bangalore Urban", "Belgaum", "Bellary", "Bidar", "Vijayapura",
						 "Chamarajanagar", "Chikkaballapur", "Chikkamagaluru", "Chitradurga", "Dakshina Kannada", "Davanagere",
						 "Dharwad", "Gadag", "Gulbarga", "Hassan", "Haveri", "Kodagu", "Kolar", "Koppal", "Mandya", "Mysore",
						 "Raichur", "Ramanagara", "Shimoga", "Tumkur", "Udupi", "Uttara Kannada", "Yadgir"
						];
		var Kerala = ["Alappuzha", "Ernakulam", "Idukki", "Kannur", "Kasaragod", "Kollam", "Kottayam", "Kozhikode",
					  "Malappuram", "Palakkad", "Pathanamthitta", "Thiruvananthapuram", "Thrissur", "Wayanad"
					 ];
		var MadhyaPradesh = ["Agar Malwa", "Alirajpur", "Anuppur", "Ashoknagar", "Balaghat", "Barwani", "Betul", "Bhind",
							 "Bhopal", "Burhanpur", "Chhatarpur", "Chhindwara", "Damoh", "Datia", "Dewas", "Dhar", "Dindori", "Guna",
							 "Gwalior", "Harda", "Hoshangabad", "Indore", "Jabalpur", "Jhabua", "Katni", "Khandwa", "Khargone", "Mandla",
							 "Mandsaur", "Morena", "Narsinghpur", "Neemuch", "Panna", "Raisen", "Rajgarh", "Ratlam", "Rewa", "Sagar",
							 "Satna",
							 "Sehore", "Seoni", "Shahdol", "Shajapur", "Sheopur", "Shivpuri", "Sidhi", "Singrauli", "Tikamgarh",
							 "Ujjain", "Umaria", "Vidisha"
							];
		var Maharashtra = ["Ahmednagar", "Akola", "Amravati", "Aurangabad", "Beed", "Bhandara", "Buldhana", "Chandrapur",
						   "Dhule", "Gadchiroli", "Gondia", "Hingoli", "Jalgaon", "Jalna", "Kolhapur", "Latur", "Mumbai City",
						   "Mumbai Suburban", "Nagpur", "Nanded", "Nandurbar", "Nashik", "Osmanabad", "Palghar", "Parbhani", "Pune",
						   "Raigad", "Ratnagiri", "Sangli", "Satara", "Sindhudurg", "Solapur", "Thane", "Wardha", "Washim", "Yavatmal"
						  ];
		var Manipur = ["Bishnupur", "Chandel", "Churachandpur", "Imphal East", "Imphal West", "Jiribam", "Kakching",
					   "Kamjong", "Kangpokpi", "Noney", "Pherzawl", "Senapati", "Tamenglong", "Tengnoupal", "Thoubal", "Ukhrul"
					  ];
		var Meghalaya = ["East Garo Hills", "East Jaintia Hills", "East Khasi Hills", "North Garo Hills", "Ri Bhoi",
						 "South Garo Hills", "South West Garo Hills", "South West Khasi Hills", "West Garo Hills",
						 "West Jaintia Hills", "West Khasi Hills"
						];
		var Mizoram = ["Aizawl", "Champhai", "Kolasib", "Lawngtlai", "Lunglei", "Mamit", "Saiha", "Serchhip", "Aizawl",
					   "Champhai", "Kolasib", "Lawngtlai", "Lunglei", "Mamit", "Saiha", "Serchhip"
					  ];
		var Nagaland = ["Dimapur", "Kiphire", "Kohima", "Longleng", "Mokokchung", "Mon", "Peren", "Phek", "Tuensang",
						"Wokha", "Zunheboto"
					   ];
		var Orissa = ["Angul", "Balangir", "Balasore", "Bargarh", "Bhadrak", "Boudh", "Cuttack", "Debagarh", "Dhenkanal",
					  "Gajapati", "Ganjam", "Jagatsinghpur", "Jajpur", "Jharsuguda", "Kalahandi", "Kandhamal", "Kendrapara",
					  "Kendujhar", "Khordha", "Koraput", "Malkangiri", "Mayurbhanj", "Nabarangpur", "Nayagarh", "Nuapada", "Puri",
					  "Rayagada", "Sambalpur", "Subarnapur", "Sundergarh"
					 ];
		var Punjab = ["Amritsar", "Barnala", "Bathinda", "Faridkot", "Fatehgarh Sahib", "Fazilka", "Firozpur", "Gurdaspur",
					  "Hoshiarpur", "Jalandhar", "Kapurthala", "Ludhiana", "Mansa", "Moga", "Mohali", "Muktsar", "Pathankot",
					  "Patiala", "Rupnagar", "Sangrur", "Shaheed Bhagat Singh Nagar", "Tarn Taran"
					 ];
		var Rajasthan = ["Ajmer", "Alwar", "Banswara", "Baran", "Barmer", "Bharatpur", "Bhilwara", "Bikaner", "Bundi",
						 "Chittorgarh", "Churu", "Dausa", "Dholpur", "Dungarpur", "Ganganagar", "Hanumangarh", "Jaipur", "Jaisalmer",
						 "Jalore", "Jhalawar", "Jhunjhunu", "Jodhpur", "Karauli", "Kota", "Nagaur", "Pali", "Pratapgarh",
						 "Rajsamand", "Sawai Madhopur", "Sikar", "Sirohi", "Tonk", "Udaipur"
						];
		var Sikkim = ["East Sikkim", "North Sikkim", "South Sikkim", "West Sikkim"];
		//     var TamilNadu = ["Ariyalur", "Chennai", "Coimbatore", "Cuddalore", "Dharmapuri", "Dindigul", "Erode", "Kanchipuram",
		//         "Kanyakumari", "Karur", "Krishnagiri", "Madurai", "Nagapattinam", "Namakkal", "Nilgiris", "Perambalur",
		//         "Pudukkottai", "Ramanathapuram", "Salem", "Sivaganga", "Thanjavur", "Theni", "Thoothukudi",
		//         "Tiruchirappalli", "Tirunelveli", "Tiruppur", "Tiruvallur", "Tiruvannamalai", "Tiruvarur", "Vellore",
		//         "Viluppuram", "Virudhunagar"
		//     ];
		var TamilNadu = [ "Ariyalur", "Chengalpattu", "Chennai", "Coimbatore", "Cuddalore", "Dharmapuri", "Dindigul", "Erode", "Kallakurichi", "Kancheepuram", "Karur", "Krishnagiri", "Madurai", "Mayiladuthurai", "Nagapattinam", "Namakkal", "Nilgiris", "Perambalur", "Pudukkottai", "Ramanathapuram", "Ranipet", "Salem", "Sivagangai", "Tenkasi", "Thanjavur", "Theni", "Thoothukudi", "Tiruchirappalli", "Tirunelveli", "Tirupathur", "Tiruppur", "Tiruvallur", "Tiruvannamalai", "Tiruvarur", "Vellore", "Viluppuram", "Virudhunagar" ];

		var Telangana = ["Adilabad", "Bhadradri Kothagudem", "Hyderabad", "Jagtial", "Jangaon", "Jayashankar", "Jogulamba",
						 "Kamareddy", "Karimnagar", "Khammam", "Komaram Bheem", "Mahabubabad", "Mahbubnagar", "Mancherial", "Medak",
						 "Medchal", "Nagarkurnool", "Nalgonda", "Nirmal", "Nizamabad", "Peddapalli", "Rajanna Sircilla",
						 "Ranga Reddy", "Sangareddy", "Siddipet", "Suryapet", "Vikarabad", "Wanaparthy", "Warangal Rural",
						 "Warangal Urban", "Yadadri Bhuvanagiri"
						];
		var Tripura = ["Dhalai", "Gomati", "Khowai", "North Tripura", "Sepahijala", "South Tripura", "Unakoti",
					   "West Tripura"
					  ];
		var UttarPradesh = ["Agra", "Aligarh", "Allahabad", "Ambedkar Nagar", "Amethi", "Amroha", "Auraiya", "Azamgarh",
							"Baghpat", "Bahraich", "Ballia", "Balrampur", "Banda", "Barabanki", "Bareilly", "Basti", "Bhadohi",
							"Bijnor", "Budaun", "Bulandshahr", "Chandauli", "Chitrakoot", "Deoria", "Etah", "Etawah", "Faizabad",
							"Farrukhabad", "Fatehpur", "Firozabad", "Gautam Buddha Nagar", "Ghaziabad", "Ghazipur", "Gonda",
							"Gorakhpur", "Hamirpur", "Hapur", "Hardoi", "Hathras", "Jalaun", "Jaunpur", "Jhansi", "Kannauj",
							"Kanpur Dehat", "Kanpur Nagar", "Kasganj", "Kaushambi", "Kheri", "Kushinagar", "Lalitpur", "Lucknow",
							"Maharajganj", "Mahoba", "Mainpuri", "Mathura", "Mau", "Meerut", "Mirzapur", "Moradabad", "Muzaffarnagar",
							"Pilibhit", "Pratapgarh", "Raebareli", "Rampur", "Saharanpur", "Sambhal", "Sant Kabir Nagar",
							"Shahjahanpur", "Shamli", "Shravasti", "Siddharthnagar", "Sitapur", "Sonbhadra", "Sultanpur", "Unnao",
							"Varanasi"
						   ];
		var Uttarakhand = ["Almora", "Bageshwar", "Chamoli", "Champawat", "Dehradun", "Haridwar", "Nainital", "Pauri",
						   "Pithoragarh", "Rudraprayag", "Tehri", "Udham Singh Nagar", "Uttarkashi"
						  ];
		var WestBengal = ["Alipurduar", "Bankura", "Birbhum", "Cooch Behar", "Dakshin Dinajpur", "Darjeeling", "Hooghly",
						  "Howrah", "Jalpaiguri", "Jhargram", "Kalimpong", "Kolkata", "Malda", "Murshidabad", "Nadia",
						  "North 24 Parganas", "Paschim Bardhaman", "Paschim Medinipur", "Purba Bardhaman", "Purba Medinipur",
						  "Purulia", "South 24 Parganas", "Uttar Dinajpur"
						 ];
		var AndamanNicobar = ["Nicobar", "North Middle Andaman", "South Andaman"];
		var Chandigarh = ["Chandigarh"];
		var DadraHaveli = ["Dadra Nagar Haveli"];
		var DamanDiu = ["Daman", "Diu"];
		var Delhi = ["Central Delhi", "East Delhi", "New Delhi", "North Delhi", "North East Delhi", "North West Delhi",
					 "Shahdara", "South Delhi", "South East Delhi", "South West Delhi", "West Delhi"
					];
		var Lakshadweep = ["Lakshadweep"];
		var Puducherry = ["Karaikal", "Mahe", "Puducherry", "Yanam"];
		jQuery('.state-list').on('change', function() {
			var StateSelected = $(this).val();
			var optionsList = "";
			var htmlString = "";

			switch (StateSelected) {
				case "Andhra Pradesh":
					optionsList = AndraPradesh;
					break;
				case "Arunachal Pradesh":
					optionsList = ArunachalPradesh;
					break;
				case "Assam":
					optionsList = Assam;
					break;
				case "Bihar":
					optionsList = Bihar;
					break;
				case "Chhattisgarh":
					optionsList = Chhattisgarh;
					break;
				case "Goa":
					optionsList = Goa;
					break;
				case "Gujarat":
					optionsList = Gujarat;
					break;
				case "Haryana":
					optionsList = Haryana;
					break;
				case "Himachal Pradesh":
					optionsList = HimachalPradesh;
					break;
				case "Jammu and Kashmir":
					optionsList = JammuKashmir;
					break;
				case "Jharkhand":
					optionsList = Jharkhand;
					break;
				case "Karnataka":
					optionsList = Karnataka;
					break;
				case "Kerala":
					optionsList = Kerala;
					break;
				case "Madhya Pradesh":
					optionsList = MadhyaPradesh;
					break;
				case "Maharashtra":
					optionsList = Maharashtra;
					break;
				case "Manipur":
					optionsList = Manipur;
					break;
				case "Meghalaya":
					optionsList = Meghalaya;
					break;
				case "Mizoram":
					optionsList = Mizoram;
					break;
				case "Nagaland":
					optionsList = Nagaland;
					break;
				case "Orissa":
					optionsList = Orissa;
					break;
				case "Punjab":
					optionsList = Punjab;
					break;
				case "Rajasthan":
					optionsList = Rajasthan;
					break;
				case "Sikkim":
					optionsList = Sikkim;
					break;
				case "Tamil Nadu":
					optionsList = TamilNadu;
					break;
				case "Telangana":
					optionsList = Telangana;
					break;
				case "Tripura":
					optionsList = Tripura;
					break;
				case "Uttaranchal":
					optionsList = Uttaranchal;
					break;
				case "Uttar Pradesh":
					optionsList = UttarPradesh;
					break;
				case "West Bengal":
					optionsList = WestBengal;
					break;
				case "Andaman and Nicobar Islands":
					optionsList = AndamanNicobar;
					break;
				case "Chandigarh":
					optionsList = Chandigarh;
					break;
				case "Dadar and Nagar Haveli":
					optionsList = DadraHaveli;
					break;
				case "Daman and Diu":
					optionsList = DamanDiu;
					break;
				case "Delhi":
					optionsList = Delhi;
					break;
				case "Lakshadeep":
					optionsList = Lakshadeep;
					break;
				case "Pondicherry":
					optionsList = Pondicherry;
					break;
				case "Lakshadweep":
					optionsList = Lakshadweep;
					break;
			}


			for (var i = 0; i < optionsList.length; i++) {
				htmlString = htmlString + "<option value='" + optionsList[i] + "'>" + optionsList[i] + "</option>";
			}
			$(".user_district").html(htmlString);
		});

// Remove Model from Product Detail page of "Purpose of Listing"
jQuery(function($){
  if (!$('body').hasClass('single-product')) return;

  const $cell = $('.woocommerce-product-attributes-item--attribute_pa_purpose-of-listing .woocommerce-product-attributes-item__value p');

  // remove the anchor that has text "Model"
  $cell.find('a').filter(function(){
    return $(this).text().trim().toLowerCase() === 'model';
  }).remove();

  // now clean commas around empty spots
  let text = $cell.html() || '';

  // remove double commas, leading/trailing commas, and dangling spaces
  text = text.replace(/,\s*,/g, ', ');
  text = text.replace(/^,\s*/,'');
  text = text.replace(/,\s*$/,'');

  // tidy up spaces
  text = text.replace(/\s+,/g, ',').replace(/,\s+/g, ', ');

  // trim overall
  text = text.trim();

  $cell.html(text);
});



jQuery(document).ready(function($){
    // Clear specific shipping fields on checkout page load
    $("#shipping_address_1").val(''); // Street Address
    $("#shipping_address_2").val(''); // Address line 2 (if needed)
    $("#shipping_postcode").val('');  // Postcode
});

Youez - 2016 - github.com/yon3zu
LinuXploit