No pick-up locations found in selected area. Please retry your search using an alternate city or ZIP code.
Drop-Off Locations Not Found
No drop-off locations found in selected area. Please retry your search using an alternate city or ZIP code.
No Locations Found
No pick-up or drop-off locations in selected area. Please retry your search using alternate cities or ZIP codes.
System Error, Please Call
Sorry, our site is currently experiencing issues. Please call us at
1-844-847-9577
, or try again later.
No 22' Trucks Available
There is no immediate availability for the truck size you have selected. Would you like to view other available truck sizes or change your dates?
No Trucks Available
There is no immediate availability in your area on the pick-up date you selected. Please call us at
1-844-847-9577
to discuss options..
Locations Not Found
Sorry, we can't find any results in your search area. Please retry your search using an alternate location.
Something Went Wrong
Please try again. If the problem continues, restart your reservation or call
1-844-847-9577
.
Change Time or Call
Online reservations must be made at least 3 hours before pickup in your location’s time zone and must have a minimum duration of 24 hours. To continue, select a new pickup date or call
1-844-906-3404
.
Change Time or Call
Online reservations must be made at least 24 hours before pickup in your location’s time zone and must have a minimum duration of 24 hours. To continue, select a new pickup date or call
1-844-906-3404
.
Change Time or Call
Online reservations must be made at least 48 hours before pickup in your location’s time zone and must have a minimum duration of 24 hours. To continue, select a new pickup date or call
1-844-906-3404
.
Return to Pickup
Location?
It looks like you’ll be staying within 25 miles of your pickup location. Returning your truck to the same location may offer you a lower cost. Would you like to return your truck to the pickup location or keep the selected drop-off spot?
What's the Difference?
Location Options
Different Location(Drop-off at different location)
Same Location(Drop-off at same location)
Return Truck To
Different Location
Same Location
Truck Offers
12', 16', 22', 26' Truck
Cargo Van, 12', 16', 26' Truck
Rental Quote
Pay on a per-trip basis
Pay for the miles/days used
Trip Type
Long Distance, Interstate
Short Distance, Same City
Distance to Destination
Over 25 miles
Within 25 miles
Drop-off Date
Distance determines
drop-off date
Same day to up to 9 days
Mileage
Unlimited Mileage
Pay per mileage used
Additional Days
Up to 3 days: $100 eachUp to three additional days at $100 per day
We understand that plans change. You can cancel or change your existing reservation by calling
1-888-996-5415 to chat with one of our moving specialists or manage your reservation online.
If you prepaid for your reservation online, please call 844-721-1436 to cancel your reservation and receive a refund for the prepaid amount.
3. Can I change the date of my reservation?
You can make as many date changes as needed prior to pick-up (within 6 months of original reservation date), based on availability, without affecting your rate.
4. What if I need to add days to my one-way truck rental reservation?
You may purchase extra days at any time for $100 per day. To do this, you can change your reservation
online, call us at 1-888-996-5415 or chat with one of our moving specialists.
5. If I return my rental truck early, will I receive a refund?
One-way rentals - The one-way rental rate is on a per-trip basis. There is no refund for early return.
Local (round-trip) rentals - You will only be charged for the number of days you have your rental vehicle.
6. Do I need to provide a deposit for my reservation?
Reservations are confirmed once the applicable security deposit has been applied.
For one-way reservations:
When paying with a credit card, no security deposit is required.
When paying with cash or check, a security deposit of at least $150 is required, varying by location.
For round-trip (local) reservations:
When paying with a credit card, a security deposit of at least $150 is required, varying by location.
When paying with cash or check, a security deposit of at least 150% of the estimated total is required.
All security deposits are fully refundable if the terms and conditions of the reservation are met.
7. Is my reservation guaranteed?
At Penske, we guarantee that the vehicle you reserved, or an equivalent or larger vehicle, will be available at the time and location you selected. If you reserve within 24 hours of pickup, Penske cannot guarantee a truck will be available for your reservation and Penske may provide an alternate pickup location.
8. How do I pack a moving truck?
Many overlook the importance of proper loading when renting a moving truck. For a smoother and safer move, begin by loading your heaviest items in an 'I' formation, securing items to prevent shifting. Additionally, ensure an even distribution of weight across the truck for stability during transit. Read more about loading a moving truck here.
Rates, Payment & Fees
1. How much is a moving truck?
Penske moving truck rates are calculated based on several factors, all aimed at ensuring your DIY move remains cost-effective. You can easily estimate the cost of your move today by selecting your pickup and drop-off locations and preferred dates, then choosing the most suitable truck for your move. Plus, for all one-way moves, enjoy the added benefit of unlimited miles at no extra cost.
2. I checked a rate yesterday and it is different today. Why is that?
Our rates are influenced by several variables, such as the time of year, equipment availability and customer demand. As these factors can vary daily, our rates are subject to adjustments that accurately reflect current conditions. We highly recommend making your moving reservations in advance to lock in your rate and secure your preferred vehicle, as rates may fluctuate closer to your desired moving date.
3. What forms of payment does Penske accept?
We accept major credit cards, debit cards, bank or cashier checks, and cash. We do not accept Chime Visa® Debit or Credit Cards, or prepaid cards of any kind. Please note that Penske does not accept cash payments in excess of $5,000, though transactions can be split between two forms of payment.
4. Why are cash payments limited?
Due to federal money laundering concerns, Penske does not accept cash payments in excess of $5,000.
5. What is the environmental fee?
Penske is committed to doing its part to protect our environment. In the operation of our truck rental business, we handle a number of materials that may be harmful to the environment. These materials must be disposed of properly and in accordance with the law. Penske charges a nominal environmental fee on all local, one-way and commercial rentals to cover these costs. Please review your rental agreement for cost details.
6. Are there any charges due when I return the truck?
There are no charges due if you are on time and return the truck in the same condition and with the same fuel level or charge level, with respect to electric vehicles, as when you received it. Penske does not have any hidden mileage or turn-in fees.
7. Are additional days for one-way rentals refundable?
Prior to pick-up, any additional days added are refundable up to payment of rental. Once payment is made and after pick-up, additional days paid for are non-refundable.
8. Can I pay for my reservation before pickup?
Yes, customers with a one-way reservation can prepay for their rental before pickup.
How to make a prepayment:
After completing your one-way reservation, you
have the option to prepay for your rental. This can be done by
managing your reservation online and selecting the option “Make Payment."
Additional details:
You
can make a partial payment or pay in full. The minimum amount that can be
submitted as a prepayment is $10.
Multiple
credit and debit cards can be used. There are no limitations to the number
of prepayments you can make. See our accepted forms of payment above.
Cardholder
needs to be present at pickup to provide signature for paying any
remaining balances. When prepayment is made in full, the cardholder does
not need to be present at pickup.
Please
call 844-721-1436. to cancel your reservation and receive a refund for the
prepaid amount.
Renter Qualifications
1. How old do I have to be to drive a Penske truck?
At pickup, you must be at least 18 years old and able to produce two forms of identification, including a valid United States or Canadian driver's license and one of the following:
Credit card
State-issued ID
Passport
Social Security card
Vehicle registration
Phone bill
Military ID
Penske personal moving trucks do not require a special license to drive.
2. Can someone else drive the truck I have rented?
Yes. You may add up to three additional drivers for a fee of $10 each. Family members may be added at no charge. All additional drivers must also provide a valid driver's license from the United States or Canada along with one additional form of identification from the list above.
3. What is the driver's license digital verification process?Â
To help ensure the safety and security of our customers and associates, Penske verifies the driver’s license at the start of each rental. This quick and easy process confirms that the license is valid, authentic and belongs to the person picking up the truck. Learn more.
4. When does the driver's license digital verification process happen?Â
Verification is completed at the Penske rental location using your smartphone to upload a photo of your U.S. or Canadian driver's license and a selfie to confirm your identity.
5. How does the driver's license digital verification process work?Â
The driver's license verification process confirms that your driver's license is valid, authentic and belongs to you by using data from state motor vehicle departments.
6. Can a paper, mobile or digital driver's license be used for vehicle rental?
No, paper, mobile or digital driver's licenses cannot be used for truck rental. Customers must present a physical driver's license to be eligible for rental.
Towing Questions
1. Can I tow a car with a moving truck?
Yes. Penske offers tow dollies and car carriers that can be included in your reservation, allowing you to transport your vehicle safely to your new destination. However, it's important to note that not all vehicles are suitable for towing due to factors such as weight, width, tire size, wheelbase and drive shaft specifications. These requirements are in place to prevent any damage to your vehicle during transportation. To determine the right towing equipment for your vehicle, please refer to our towing equipment options.
2. Does Penske rent moving trailers?
Penske does not rent moving trailers. However, we do rent a variety of truck sizes. Picking a larger truck will allow you to pack all your belongings in one spot. And you can tow your car behind your Penske truck on our safe and convenient towing equipment.
3. Can I tow my own trailer behind a Penske truck?
Our customers are our top priority so for your safety and for liability reasons, we do not allow customers to tow any non-Penske-owned equipment behind our trucks.
4. Can I rent a car carrier or tow dolly without a Penske truck?
We do not allow customers to rent towing equipment without a Penske truck. Penske's towing equipment is engineered specifically to tow behind a Penske truck only, so for your safety and to avoid possible damage to your vehicle we do not allow this.
5. Why can't my make or model of car be towed on your towing equipment?
Not all vehicles meet our weight, width, tire size, wheelbase and drive shaft requirements. We have these requirements to prevent damage to your vehicle. View our towing equipment.
Toll Road Questions
1. Am I responsible for
paying tolls?
Yes. You are responsible for any fines or penalties related to parking, traffic, operating and moving violations, including toll fees that occur during your rental period.
2. What happens if I go
through electronic tolling?
Unless you have paid the toll directly, Penske will initially be charged for the toll since the license plate on the rented truck or cargo van is registered to Penske. Penske will then charge you for tolls incurred throughout your rental, plus a $25 processing fee.
3. How do I find and pay
for the toll fees?
After your rental period, you will receive a communication outlining the toll charges that occurred during your rental period and the $25 processing fee. The payment will be processed using the payment method you have on file.
4. How long will it take to receive a communication about my toll fees?
Penske has no control over when a jurisdiction will provide toll charges. You will be notified once Penske receives and processes the information.
Accessibility
1. What Penske vehicles offer hand controls?
Currently, hand controls are available for our high-roof cargo vans, 12 foot trucks and 16 foot trucks.
2. How do I rent a vehicle with hand controls?
For assistance reserving a vehicle with hand controls, call
1-844-847-9577 to speak with a customer service representative. Reservations must be set up at least 10 days in advance.
3. Which locations offer vehicles with hand controls?
Rental trucks and vans with hand controls are available at Penske locations and cannot be rented at agent locations. To find a location near you, call
1-844-847-9577.
4. Will I need any additional documentation to rent a vehicle with hand controls?
Yes, you will need a driver’s license indicating your ability to drive a motor vehicle equipped with hand controls.
Become a Rental Truck Agent
Why team up with Penske? Because we treat your business as if it were our own, creating custom plans that keep you moving forward.
element
var prevElem = div.previousElementSibling;
if (prevElem && prevElem.tagName.toLowerCase() === 'p') {
// Check if the
element is empty or contains only or whitespace
if (prevElem.innerHTML.trim() === '' || prevElem.innerHTML.trim() === ' ') {
prevElem.remove(); // Remove the empty
element
}
}
});
}
// Call the function to remove empty
elements before .rebellt-item divs
removeEmptyParagraphBeforeDiv();
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
//function about single click and double click to open dropdown and redirects in topbar
let navbarLinks = document.querySelectorAll(".right-side .navbar .item .text-element a");
function doubleClick () {
if (window.innerWidth >= 768 && window.innerWidth <= 1199) {
document.querySelector(".topbar-wrapper").classList.add("touch-nav");
REBELMOUSE_STDLIB.createElementChangeListener(".right-side .navbar .item .text-element a", function(el){
let doubleClicked = false;
el.addEventListener("click", (e)=>{
e.preventDefault();
let dropdownDiv = document.querySelectorAll(".right-side .navbar .item .dropdown");
dropdownDiv.forEach((item) => {
item.classList.remove("tablet-dropdown")
})
setTimeout(() => {
let parent = el.parentNode.parentNode;
let dropdown = parent.querySelector(".dropdown");
if (dropdown) {
dropdown.classList.add("tablet-dropdown")
}
},500)
// if doubleclicked is true then redirect to link
if (doubleClicked) {
window.location.href = el.href
}
doubleClicked = true;
setTimeout(() => {
doubleClicked = false;
}, 300);
})
})
document.querySelector("body").addEventListener("click", (e)=>{
let dropdownLinks = document.querySelectorAll(".right-side .navbar .item a");
let isTrue = []
dropdownLinks.forEach((item) => {
if (e.target != item) {
isTrue.push(false)
} else {
isTrue.push(true);
}
})
if (!isTrue.includes(true)) {
document.querySelectorAll(".right-side .navbar .item .dropdown").forEach((item => {
item.classList.remove("tablet-dropdown")
}))
}
//console.log(isTrue);
})
} else {
document.querySelector(".topbar-wrapper").classList.remove("touch-nav")
}
}
doubleClick();
//Open Dropdowns menu with clicks for screen >= 768 && screen <= 1199
window.addEventListener("resize", (event) => {
doubleClick();
});
let scrollPosition = 0; // Store the current scroll position
function disableScroll() {
document.body.style.overflow = 'hidden';
}
function enableScroll() {
document.body.style.overflow = 'unset';
}
REBELMOUSE_STDLIB.createElementChangeListener(".hamburger-wrapper", function(el){
let menuIcon = el.querySelector(".hamburger");
let hamburgerWrapper = el.querySelector('.dark-overlay');
let loginBtn = el.querySelector('.login-icon');
let langBtn = el.querySelector('.language-icon');
let closeBtn = el.querySelector('.close-icon');
let hamLogBlock = el.querySelector('.ham-login-block');
let hamLangBlock = el.querySelector('.ham-lang-block');
let hamSearchBlock = el.querySelector('.ham-search-block');
let searchBtn = el.querySelector('.search-icon');
let searchWidget = el.querySelector('.search-container');
let searchClose = searchWidget.querySelector('.close');
menuIcon.addEventListener('click', () => {
hamburgerWrapper.classList.toggle('hidden');
if(hamburgerWrapper.classList.contains('hidden')) {
enableScroll();
} else {
disableScroll();
}
});
closeBtn.addEventListener('click', () => {
hamburgerWrapper.classList.toggle('hidden');
enableScroll();
});
loginBtn.addEventListener('click', ()=>{
hamLogBlock.classList.toggle("hidden");
hamLangBlock.classList.add('hidden');
hamSearchBlock.classList.add('hidden');
loginBtn.querySelector('.account-bold').classList.toggle("hidden");
loginBtn.querySelector('.account').classList.toggle("hidden");
langBtn.querySelector('.lang').classList.remove("hidden");
langBtn.querySelector('.lang-bold').classList.add("hidden");
searchBtn.querySelector('svg').classList.remove("ham-search-bold");
langBtn.querySelector('.navbar-line').classList.add('hidden');
searchBtn.querySelector('.navbar-line')?.classList?.add('hidden');
loginBtn.querySelector('.navbar-line').classList.toggle('hidden');
})
langBtn.addEventListener('click', ()=>{
hamLogBlock.classList.add("hidden");
hamSearchBlock.classList.add('hidden');
hamLangBlock.classList.toggle('hidden');
loginBtn.querySelector('.account-bold').classList.add("hidden");
loginBtn.querySelector('.account').classList.remove("hidden");
searchBtn.querySelector('svg').classList.remove("ham-search-bold");
langBtn.querySelector('.lang').classList.toggle("hidden");
langBtn.querySelector('.lang-bold').classList.toggle("hidden");
langBtn.querySelector('.navbar-line').classList.toggle('hidden');
searchBtn.querySelector('.navbar-line')?.classList?.add('hidden');
loginBtn.querySelector('.navbar-line').classList.add('hidden');
})
searchBtn.addEventListener('click', () => {
//searchWidget.classList.toggle('hidden');
hamLogBlock.classList.add("hidden");
hamSearchBlock.classList.toggle('hidden');
hamLangBlock.classList.add('hidden');
langBtn.querySelector('.lang').classList.remove("hidden");
loginBtn.querySelector('.account').classList.remove("hidden");
loginBtn.querySelector('.account-bold').classList.add("hidden");
langBtn.querySelector('.lang-bold').classList.add("hidden");
searchBtn.querySelector('.navbar-line')?.classList?.toggle('hidden')
langBtn.querySelector('.navbar-line').classList.add('hidden');
loginBtn.querySelector('.navbar-line').classList.add('hidden');
});
searchBtn.querySelector('svg').classList.add("ham-search-bold");
searchClose.addEventListener('click', () => {
searchWidget.classList.toggle('hidden');
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".ham-links-block .item", function(el){
//console.log(el);
//let right = el.querySelector('.angle-right');
//let left = el.querySelector('.angle-left');
el.addEventListener('click', (e) => {
let text = el.querySelector(".text-element").textContent.toLowerCase();
console.log(text);
let dropdown = el.querySelector('.dropdown');
let header = el.querySelector('.ham-header');
if (e.target == header) {
dropdown.classList.remove('open');
//document.querySelector(".ham-main-links").classList.remove("upd-height");
document.querySelector(".ham-main-links").style.height = `auto`;
} else {
if (dropdown) {
console.log("here here")
dropdown.classList.add('open');
let div_height = dropdown.getBoundingClientRect().height;
console.log(dropdown.getBoundingClientRect().height);
document.querySelector(".ham-main-links").style.height = `${div_height}px`;
/*if (text == "plan your move" || text == "need help?") {
document.querySelector(".ham-main-links").classList.add("upd-height");
}*/
}
}
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".nav-icons .search-icon", function(el){
el.addEventListener('click', (event) => {
let parentNode = el.parentNode;
el.style.outline = "none";
if(el.classList.contains("key-focus")){ el.classList.remove("key-focus")}
let icon = el.querySelector(".search-icon");
el.classList.toggle('select');
let searchBox = document.querySelector('.nav-icons .dropdown.search');
let line = document.querySelector('.nav-search .navbar-line');
if (el.classList.contains('select')) {
searchBox.setAttribute('style', 'display:grid !important');
line.setAttribute('style', 'display:block !important');
} else {
searchBox.setAttribute('style', 'display:none !important');
line.setAttribute('style', 'display:none !important');
}
})
})
//close search desktop dropdown when user click outside of search container
window.addEventListener("click", function(event) {
let iconbtn = document.querySelector(".nav-search .search-icon");
let inputWrapper = document.querySelector(".nav-search #search--definition");
let dropdown = document.querySelector(".nav-search .dropdown.search");
if (event.target == iconbtn || event.target.parentNode == inputWrapper || event.target == dropdown) {
//console.log("same");
} else {
document.querySelector(".nav-icons .search-icon").classList.remove('select');
document.querySelector('.nav-icons .dropdown.search').setAttribute('style', 'display:none !important');
document.querySelector('.nav-search .navbar-line').setAttribute('style', 'display:none !important');
}
//console.log(event.target.parentNode);
});
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
window.addEventListener("keydown", (e) => {
if(e.key === "Tab"){
REBELMOUSE_STDLIB.createElementChangeListener(".topbar-wrapper .nav-icons svg", function(el){
let item = el.parentNode;
//detec if focus is by tab keyboard
//el.addEventListener("keydown", (e) => {
el.classList.add("key-focus");
//});
el.addEventListener("focusin", (e) => {
//show dropdown
let dropdown = item.querySelector('.dropdown');
if (dropdown) {
//remove keyshow class
document.querySelectorAll(".navbar .dropdown.key-show").forEach((item) => {
item.classList.remove("key-show");
})
dropdown.classList.add("key-show");
}
el.addEventListener("focusout", (e) => {
item.classList.remove("key-focus");
})
})
})
}
//remove focus from default nav.menu-global links
REBELMOUSE_STDLIB.createElementChangeListener(".menu-global a", function(el){
el.tabIndex = '-1';
})
document.querySelector(".top-promo").tabIndex = '0';
REBELMOUSE_STDLIB.createElementChangeListener(".topbar-wrapper .navbar .text-element a", function(el){
//console.log(el);
el.addEventListener("focusin", () => {
let item = el.parentNode.parentNode;
let dropdown = item.querySelector('.dropdown');
if (dropdown) {
//remove keyshow class
document.querySelectorAll(".navbar .dropdown.key-show").forEach((item) => {
item.classList.remove("key-show");
})
dropdown.classList.add("key-show");
}
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".topbar-wrapper", function(el){
el.addEventListener("mouseover", ()=>{
document.querySelectorAll(".navbar .item ").forEach((item)=>{
if(item.querySelector(".dropdown")){
item.querySelector(".dropdown").classList.remove("key-show")
}
})
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".nav-lang a:last-child", function(el){
//console.log(el);
el.addEventListener("focusin", () => {
el.addEventListener("keydown", (e) => {
if(e.key === "Tab"){
e.preventDefault();
//alert("Tab Key Pressed");
el.parentNode.classList.remove("key-show");
document.querySelector(".top-promo").classList.remove("hidden");
document.querySelector(".top-promo").tabIndex = '0';
}
});
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".promo-desktop .all-promo-link", function(el){
el.addEventListener("focusin", () => {
document.querySelector(".all-promotions").style.display = "block";
let lastChild = document.querySelector(".all-promotions .promo-cont:last-child .order-btn");
lastChild.addEventListener("focusin", () => {
lastChild.addEventListener("focusout", () => {
document.querySelector(".all-promotions").style.display = "none";
document.querySelector(".promo-desktop .promo-btn").focus();
})
})
})
})
})
// Remove accessibility to link images when images have text redirecting to the same link
REBELMOUSE_STDLIB.createElementChangeListener("a img", function(el){
let parent = el.parentNode;
if (parent.tagName === 'A') {
parent.setAttribute("tabIndex", "-1");
}
})
// COMMERCIAL WIDGET KEYBOARD ACCESSIBILITY
REBELMOUSE_STDLIB.createElementChangeListener(".booking-container form", function(el){
el.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
event.preventDefault();
}
});
})
REBELMOUSE_STDLIB.createElementChangeListener(".returnto-input-container input", function(el){
el.addEventListener("keydown", (event)=>{
if(event.key === "Enter") {
el.click();
}
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".booking-container .quote-submit-button button", function(el){
el.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
el.click();
}
});
})
//remove tabindex of calkendar input
function removeCalendarTabInd(el, section) {
el.addEventListener("focus", () => {
if (document.querySelector(`.${section} .pickup-date-time commercial-date-selector`)) {
document.querySelector(`.${section} .pickup-date-time commercial-date-selector .cr-date-picker__input`).setAttribute("tabindex", "-1");
document.querySelector(`.${section} .dropoff-date-time commercial-date-selector .cr-date-picker__input`).setAttribute("tabindex", "-1");
}
})
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .pickup-container input", function(el){
removeCalendarTabInd(el, "home-rental");
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .pickup-container input", function(el){
removeCalendarTabInd(el, "top-promo");
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .pickup-container input", function(el){
removeCalendarTabInd(el, "sidebar");
})
function keybLocItem(el, section) {
el.setAttribute("tabindex", "0");
el.addEventListener("keydown", (event) => {
if(event.key === 'Enter') {
el.click();
el.parentNode.parentNode.classList.add("hidden");
document.querySelector(`.${section} .pickup-date-time .cr-date-picker__input`).focus();
}
})
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .dropdown-loc .location-item", function(el){
keybLocItem(el, "home-rental")
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .dropdown-loc .location-item", function(el){
keybLocItem(el, "top-promo")
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .dropdown-loc .location-item", function(el){
keybLocItem(el, "sidebar")
})
function keylastLocItem(el, section) {
el.addEventListener('keydown', function(event) {
if (event.key === 'Tab' && event.shiftKey) {
console.log('Shift + Tab was pressed');
} else if (event.key === 'Tab') {
el.parentNode.parentNode.classList.add("hidden");
let commercialCalendar = document.querySelector(`.${section} .pickup-date-time .cr-date-picker__input`);
if(commercialCalendar) {
commercialCalendar.focus();
}
}
});
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .dropdown-loc .location-item:nth-of-type(5)", function(el){
keylastLocItem(el, "home-rental")
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .dropdown-loc .location-item:nth-of-type(5)", function(el){
keylastLocItem(el, "top-promo")
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .dropdown-loc .location-item:nth-of-type(5)", function(el){
keylastLocItem(el, "sidebar")
})
function keyCurrLoc(el, section, inputType) {
el.setAttribute("tabindex", "0");
el.addEventListener("focus", () => {
setTimeout(()=>{
el.parentNode.classList.remove("hidden");
document.querySelector(`.${section} .${inputType} .gmap-loc`).style.display = 'block';
el.addEventListener("keydown", (event) => {
if(event.key === 'Enter') {
el.click();
el.parentNode.classList.add("hidden");
document.querySelector(`.${section} .pickup-date-time .cr-date-picker__input`).focus();
}
if(event.key === 'Tab') {
console.log("is running here in tab")
}
})
},500)
})
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .pickup-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "home-rental", "pickup-container");
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .pickup-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "top-promo", "pickup-container");
})
REBELMOUSE_STDLIB.createElementChangeListener(".sibar .pickup-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "sidebar", "pickup-container");
})
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .dropoff-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "home-rental", "dropoff-container");
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .dropoff-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "top-promo", "dropoff-container");
})
REBELMOUSE_STDLIB.createElementChangeListener(".sibar .dropoff-container .dropdown-loc .current-loc", function(el){
keyCurrLoc(el, "sidebar", "dropoff-container");
})
let typeTimeSelector, typeSection, widgetSection;
function keycalendarfocus(el, section, calendarSec) {
el.addEventListener("focus", () => {
el.click();
setTimeout(()=> {
//document.querySelector(`.${section} .${calendarSec} .cr-date-range-picker__close-button`).focus();
document.querySelector(`.${section} .dropdown-loc`).classList.add("hidden");
let calendarCells = document.querySelectorAll(`.${section} .${calendarSec} commercial-date-selector .cr-date-range-picker__month-cell`);
calendarCells.forEach((calCell) => {
if (!calCell.classList.contains('cr-date-range-picker__month-cell--disabled') &&
!calCell.classList.contains('cr-date-range-picker__month-cell--empty')) {
calCell.setAttribute("tabindex", "0");
}
calCell.addEventListener("keydown", (event) => {
if (event.key === 'Enter') {
calCell.click();
document.querySelector(`.${section} .${calendarSec} commercial-date-selector .cr-date-range-picker__button`).focus();
setTimeout(()=>{
let timeSelector = document.querySelector(`.${section} .${calendarSec} .quote_pickup_time_select`) || document.querySelector(`.${section} .${calendarSec} .quote_dropoff_time_select`);
typeTimeSelector = timeSelector.className;
typeSection = timeSelector.getAttribute("data-section");
widgetSection = section;
timeSelector.click();
},1000)
}
})
})
},500)
})
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .pickup-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "home-rental", "pickup-date-time");
})
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .dropoff-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "home-rental", "dropoff-date-time");
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .pickup-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "top-promo", "pickup-date-time");
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .dropoff-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "top-promo", "dropoff-date-time");
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .pickup-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "sidebar", "pickup-date-time");
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .dropoff-date-time commercial-date-selector .cr-date-picker input", function (el) {
keycalendarfocus(el, "sidebar", "dropoff-date-time");
})
//close calendar popup by keyboard accessibility
REBELMOUSE_STDLIB.createElementChangeListener("commercial-date-selector .cr-date-range-picker__close-button", function (el) {
el.setAttribute("tabindex", "0");
el.addEventListener("keydown", (event) => {
if (event.key === 'Enter') {
el.click();
}
})
})
function keyTimeVal(el, section, typeTime) {
el.addEventListener("keydown", (event) => {
if(event.key === 'Enter') {
el.click();
let widgetError = document.querySelector(".widget-overlay-error");
if (widgetError.classList.contains("hidden") && typeTime === "quote_widget_pickup-time") {
document.querySelector(`.${section} .dropoff-date-time .cr-date-picker__input`).focus();
} else {
document.querySelector(".widget-overlay-error").focus();
}
}
})
}
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .date-time-select .quote_widget_pickup-time .time-val", function(el){
keyTimeVal(el, "home-rental", "quote_widget_pickup-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".home-rental .date-time-select .quote_widget_dropoff-time .time-val", function(el){
keyTimeVal(el, "home-rental", "quote_widget_dropoff-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .date-time-select .quote_widget_pickup-time .time-val", function(el){
keyTimeVal(el, "top-promo", "quote_widget_pickup-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".top-promo .date-time-select .quote_widget_dropoff-time .time-val", function(el){
keyTimeVal(el, "top-promo", "quote_widget_dropoff-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .date-time-select .quote_widget_pickup-time .time-val", function(el){
keyTimeVal(el, "sidebar", "quote_widget_pickup-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar .date-time-select .quote_widget_dropoff-time .time-val", function(el){
keyTimeVal(el, "sidebar", "quote_widget_dropoff-time")
})
REBELMOUSE_STDLIB.createElementChangeListener(".widget-error .error-close", function(el){
el.addEventListener("keydown", (event) => {
if(event.key === 'Enter') {
el.click();
//console.log(document.querySelector(`.${typeSection} .${typeTimeSelector}`));
setTimeout(()=>{document.querySelector(`.${typeSection} .${typeTimeSelector}`).click();},500)
}
})
})
REBELMOUSE_STDLIB.createElementChangeListener(".widget-popup-info .close", function(close){
close.addEventListener("click", () => {
close.parentNode.parentNode.classList.add("hidden");
document.querySelector(".widget-overlay-error").classList.add("hidden");
})
})
let lastInteractionType = null;
// Detect keyboard interactions at the document level
document.addEventListener("keydown", (event) => {
lastInteractionType = 'keyboard';
});
// Detect mouse interactions at the document level
document.addEventListener("mousedown", (event) => {
lastInteractionType = 'mouse';
});
REBELMOUSE_STDLIB.createElementChangeListener(".booking-container .quote_truck_size_select", function(el){
el.setAttribute("tabindex", "0");
// Handle focus event
el.addEventListener("focus", (event) => {
if (lastInteractionType === 'keyboard') {
el.parentNode.querySelector(".truck-options").classList.remove("hidden");
console.log("Keyboard interaction detected, key:", event.key);
} else if (lastInteractionType === 'mouse') {
console.log("Mouse click detected, no need to show options.");
}
lastInteractionType = null;
});
})
REBELMOUSE_STDLIB.createElementChangeListener(".booking-container .truck-sizes-options", function(el){
el.setAttribute("tabindex", "0");
})
REBELMOUSE_STDLIB.createElementChangeListener(".booking-container .compare-option", function(el){
el.setAttribute("tabindex", "0");
el.addEventListener('keydown', function(event) {
if (event.key === 'Tab' && event.shiftKey) {
console.log('Shift + Tab was pressed');
} else if (event.key === 'Tab') {
el.parentNode.parentNode.classList.add("hidden");
}
});
})
// Detect when user has scroll at the end of the what's difference popup to clear linear gradient
let isScrolling;
const scrollContainer = document.querySelector('.popup-scroll-content');
scrollContainer.addEventListener('scroll', function() {
window.clearTimeout(isScrolling);
isScrolling = setTimeout(function() {
const scrollTop = scrollContainer.scrollTop;
const scrollHeight = scrollContainer.scrollHeight;
const offsetHeight = scrollContainer.offsetHeight;
if (scrollTop + offsetHeight >= scrollHeight) {
console.log('User has scrolled to the end of .popup-info-content.');
// scrolling reaches the end
document.querySelector('.popup-info-content').classList.add("remove-gradient");
} else {
console.log('User has not scrolled to the end of .popup-info-content.');
// scrolling stops but hasn't reached the end
document.querySelector('.popup-info-content').classList.remove("remove-gradient")
}
}, 200);
}, false);
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
let chatArray = [
document.querySelector(".widget-chat .chat-btn"),
document.querySelector(".nav-help .widget__headline-text[aria-label='Live Chat']"),
document.querySelector(".nav-help .nav-btn[aria-label='Live Chat']"),
document.querySelector(".nav-help-mobile a[aria-label='Live Chat']"),
document.querySelector(".gchat-button")
];
var d = false;
var h = {};
var k = { // prod
"deploymentURL": "https://c.la4-c1-phx.salesforceliveagent.com/content/g/js/46.0/deployment.js",
"endpointURL": "https://d.la4-c1-phx.salesforceliveagent.com/chat",
"orgID": "57260000000CavO",
"deploymentID": "00D60000000JPQu",
"buttonID": "57360000000CazR"
};
var f = function (p) {
var script = document.createElement('script');
script.onload = function () {
b();
};
script.src = p;
document.head.appendChild(script);
};
function handleOpenChat(element) {
window._laq.push(function () {
liveagent.showWhenOnline(k.buttonID, element);
});
element.onclick = function () {
liveagent.startChat(k.buttonID);
};
}
function getChatPageReferrer() {
const fullPath = window.location.href.replace(window.location.origin, '');
const segments = fullPath.replace('/quote', 'quote');
const isQA = window.location.origin.startsWith('https://penske-redesign')
const chatPageReferrer = isQA ? 'QA-Testing: ' + segments : segments;
return chatPageReferrer ?? '';
}
var b = function () {
const referrer = getChatPageReferrer();
liveagent.setChatWindowHeight(650);
liveagent.setChatWindowWidth(780);
liveagent
.addCustomDetail('Chat_Referrer__c', referrer, true)
.saveToTranscript('Chat_Referrer__c');
liveagent.init(k.endpointURL, k.orgID, k.deploymentID);
if (!window._laq) {
window._laq = [];
}
chatArray.forEach((item) => {
if (item) {
handleOpenChat(item);
}
})
};
f(k.deploymentURL);
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
window.REBELMOUSE_STDLIB.loadExternalScript("https://rm.gopenske.com/ptr/assets/maint/maintenance.js", function() {
});
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
window.getCookie = function getCookie(name) {
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
var isMaintenance = window.getCookie('isMaintenance');
if('Y' == isMaintenance){
document.querySelectorAll(".booking-container").forEach(function (item) {
item.remove();
document.querySelector("body").classList.add("maintenance-y");
});
}
function closeWidgetError(el) {
el.classList.add("hidden");
if (document.querySelector(".widget-overlay-error")) {
document.querySelector(".widget-overlay-error").classList.add("hidden");
}
}
//Close Widget Errors
REBELMOUSE_STDLIB.createElementChangeListener(".widget-error", function(el){
let close_btn = el.querySelector(".error-close");
let blue_btn = el.querySelector(".blue-full-btn");
if (close_btn) {
close_btn.addEventListener("click", ()=>{
closeWidgetError(el);
})
}
if (blue_btn) {
blue_btn.addEventListener("click", ()=>{
closeWidgetError(el);
})
}
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
// Function to get URL parameters
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}
// Function to hide content based on the "userway" parameter
function hideContentBasedOnUserway() {
var userwayParam = getUrlParameter('userway');
if (userwayParam === 'off') {
// Hide the content you want to hide
document.getElementById('userway-override').style.display = 'none';
}
}
// Call the function when the page loads
hideContentBasedOnUserway();
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
document.querySelector(".widget-overlay-error").addEventListener("click", (event) => {
if(event.target.classList.contains("widget-overlay-error")) {
document.querySelectorAll(".widget-error").forEach((widget) => {
if (!widget.classList.contains("hidden")) {
widget.classList.add("hidden");
}
})
// Add "hidden" class to the clicked element
document.querySelector(".widget-overlay-error").classList.add("hidden");
}
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
document.addEventListener('contextmenu', function(event) {
if (event.target.matches('img, .display-block.image-element, .section-header-full-img, .header-image, svg, .hero-home-texts, .truck-category-headline, .truck-promo, .truck-promo .promo-card-left-container, .truck-category-header')) {
event.preventDefault();
}
});
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
function getUrlParameter(name) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(name);
}
function setCookie(name, value, days, path) {
const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toUTCString();
//document.cookie = `${name}=${value}; expires=${expires}; path=${path}; domain=pensketruckrental.com`;
document.cookie = `${name}=${value}; expires=${expires}; path=${path}`;
}
function deleteCookie(name) {
document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
}
(function() {
const clickref = getUrlParameter('clickref');
const partnercode = getUrlParameter('partnercode');
if(clickref && clickref != null) {
setCookie('it_ptr_click_ref_id', clickref, 7, '/');
if(partnercode && partnercode != null) {
setCookie('it_ptr_partner_code', partnercode, 7, '/');
}
deleteCookie('penskelinkid');
deleteCookie('urlRef');
}
})();
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
(function(d){var s = d.createElement("script");s.setAttribute("data-account", "NRnEL6ljSb");s.setAttribute("src", "https://cdn.userway.org/widget.js");(d.body || d.head).appendChild(s);})(document)
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
if (!document.querySelector(".sidebar-post .custom-field-callout-title")) {
document.querySelector(".sidebar-post").style.display = 'none';
}
REBELMOUSE_STDLIB.createElementChangeListener(".sidebar-post .widget", function(el){
let link = el.querySelector('.snark-line .go-to').getAttribute('href');
let title = el.querySelector('.custom-field-callout-title');
let img = el.querySelector('.widget__head a');
let title_text = title.textContent;
img.href = `${link}`;
title.innerHTML = `${title_text}`
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
//Marketo Form Add Placeholders to inputs
function updateMktoLabel(el,label) {
let text = el.getAttribute('name');
let separatedText = text.replace(/([a-z])([A-Z])/g, '$1 $2');
let required = el.getAttribute('aria-required')
if (required) {
label.innerHTML = `${separatedText}*`;
} else {
label.innerHTML = `${separatedText}`;
}
}
function focusEvent(el, label) {
el.addEventListener("focusin", () => {
label.classList.remove("label-invalid-input");
label.classList.add("position-label-top");
label.classList.add("label-focus");
});
el.addEventListener("focusout", () => {
label.classList.remove("label-focus");
let inputValue = el.value;
console.log(inputValue);
if (inputValue === '' || parseInt(inputValue) === 0) {
label.classList.add("label-invalid-input");
} else {
label.classList.remove("label-invalid-input");
}
})
}
function handleInputChange(previous, inputElement, label) {
let previousValue = previous;
inputElement.addEventListener('change', function() {
const currentValue = inputElement.value;
if (currentValue !== previousValue) {
console.log('Input value changed:', currentValue);
previous = currentValue;
label.classList.add("position-label-top");
}
});
}
REBELMOUSE_STDLIB.createElementChangeListener(".mktoForm input[type='text']", function (el) {
let label = el.previousSibling.previousSibling;
let previousValue = el.value;
updateMktoLabel(el, label);
focusEvent(el, label);
handleInputChange(previousValue, el, label);
})
REBELMOUSE_STDLIB.createElementChangeListener(".mktoForm input[type='email']", function (el) {
let label = el.previousSibling.previousSibling;
let previousValue = el.value;
updateMktoLabel(el, label);
focusEvent(el, label);
handleInputChange(previousValue, el, label);
})
REBELMOUSE_STDLIB.createElementChangeListener(".mktoForm input[type='tel']", function (el) {
let label = el.previousSibling.previousSibling;
let previousValue = el.value;
updateMktoLabel(el, label);
focusEvent(el, label);
handleInputChange(previousValue, el, label);
})
REBELMOUSE_STDLIB.createElementChangeListener(".mktoForm textarea", function (el) {
let label = el.previousSibling.previousSibling;
let previousValue = el.value;
updateMktoLabel(el, label);
focusEvent(el, label);
handleInputChange(previousValue, el, label);
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
REBELMOUSE_STDLIB.createElementChangeListener(".accordion", function(el){
el.addEventListener("click", function() {
el.classList.toggle('open');
this.classList.toggle("active");
var panel = this.nextElementSibling;
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}
});
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
REBELMOUSE_STDLIB.createElementChangeListener(".rebellt-item", function(el){
let headline = el.querySelector('h3[data-role="headline"]');
if (headline) {
headline.addEventListener("click", function(item){
el.classList.toggle("show-description");
})
}
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
REBELMOUSE_STDLIB.createElementChangeListener(".rebellt-question h3", function(el){
let split = el.innerText.split(" ");
let first = split.shift();
el.innerHTML = `${first} ${split.join(" ")}`;
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
// Vince's Sparefoot rework to open in new window
document.querySelector("#sparefootSubmit").addEventListener("click", function(event){
event.preventDefault(); // Prevents the default form submission behavior
var url = "https://www.sparefoot.com/search?location=" + document.querySelector("#sparefoot-zip").value + "&stid=279";
window.open(url, '_blank'); // Opens the URL in a new window
});
//don't display callouts container when there is 0
REBELMOUSE_STDLIB.createElementChangeListener(".home-posts__container", function(el){
let posts = el.querySelectorAll(".home-posts");
let value = []
posts.forEach((item) => {
if(item.hasChildNodes()){
value.push(true);
} else {
value.push(false);
}
})
if (!value.includes(true)) {
document.querySelector(".home-posts__container").classList.add("hidden");
document.querySelector(".footer").classList.add("add-margin-top");
}
})
});
window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){
window.onclick = function(e){
let element = document.querySelector('.language-selector');
if (element) {
let elemChild = element.querySelector('span');
if(e.target != element && e.target != elemChild) {
element.classList.remove('show-dropdown');
}
}
}
REBELMOUSE_STDLIB.createElementChangeListener(".tabs.dropdown", function(el){
el.addEventListener("click", function(){
el.classList.toggle('show-dropdown')
})
})
});
});
window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){
REBELMOUSE_STDLIB.createElementChangeListener(".post-header .current-post .widget__head", function(el){
// Get the picture element
let pictureElement = el.querySelector("picture");
if (pictureElement) {
let imgElement = pictureElement.querySelector("img");
let sourceElement = el.querySelector("picture source").getAttribute('srcset').split(" ");
// Create a new img element
var newImgElement = document.createElement("img");
newImgElement.src = `${sourceElement[0]}`;
newImgElement.alt = `${imgElement.getAttribute('alt')}`;
newImgElement.style.objectFit = "cover";
newImgElement.className = "rm-lazyloadable-image rm-hero-media";
newImgElement.width = 3600;
newImgElement.height = 600;
// Remove the img element
el.removeChild(pictureElement);
// Append the new img element to the picture element
el.appendChild(newImgElement);
}
})
});
window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){
REBELMOUSE_STDLIB.createElementChangeListener(".callouts-wrapper .widget", function(el){
let link = el.querySelector('.snark-line .cross-btn').getAttribute('href');
let title = el.querySelector('.custom-field-callout-title');
let img = el.querySelector('.widget__head a');
let title_text = title.textContent;
img.href = `${link}`;
title.innerHTML = `${title_text}`
})
});