/* Minification failed. Returning unminified contents.
(474,25-33): run-time error JS1006: Expected ')': function
(474,36): run-time error JS1004: Expected ';'
(476,7): run-time error JS1004: Expected ';'
(480,29): run-time error JS1004: Expected ';'
(491,7): run-time error JS1004: Expected ';'
(495,27): run-time error JS1004: Expected ';'
(575,28): run-time error JS1004: Expected ';'
(585,2-3): run-time error JS1195: Expected expression: )
 */
$(document).ready(function () {
	desktopMenuAds();
	mobileMenu();
	familyBar();
	sideBar();
	checkSize();
	$(window).resize(checkSize);
});

/*-- submenu ads --*/
function desktopMenuAds() {
	$('.main-nav__sub-items a').on('mouseover', function () {
		var text = $(this).attr('title');
		$('.main-nav__sub-items--nav-ads').append('<span id="NavAds--text">' + text + '</span>');
	});

	$('.main-nav__sub-items a').on('mouseout', function () {
		$('.main-nav__sub-items--nav-ads > span').remove();
	});
}

/*-- mobile nav --*/
function mobileMenu() {
	$('.main-nav-btn').on('click', function () {
		$(this).toggleClass('active');
		$('#mainNav').css('display', '');
		$('#mainNav, #screenCover').toggleClass('active');
		if ($(this).hasClass('active')) {
			$('body').addClass('no-scroll');
			$('.header-top__nav').show();
		} else {
			$('body').removeClass('no-scroll');
			$('.header-top__nav').css('display', '');
		}
	});

	// Toggle sub-menu items.
	$('.main-nav__sub-items-toggle').on('click', function () {
		$(this).toggleClass('active');
		$(this).siblings('.main-nav__sub-items').toggleClass('open').slideToggle('slow');
	});
}

/*-- User login toggle classes is clickable --*/
function familyBar() {
	$('.user-login').on('click', function () {
		if ($('.user-login__btn.btn-clickable')[0]) {
			$(this).toggleClass('active');
			$('.family-sites__btn.btn-clickable').removeClass('active');
			$('.user-login-container').fadeIn('500');
			// No vertical scrolling when active
			if ($(this).hasClass('active')) {
				$('body').addClass('no-scroll');
			} else {
				$('body').removeClass('no-scroll');
			}
		}
	});

	/*-- User Login keep login form open on mobile when clicking inputs --*/
	$('.user-login input, .user-login label').on('click', function (e) {
		e.stopPropagation();
	})

	/*-- Family Bar toggle classes is clickable --*/
	$('.family-sites__btn').on('click', function () {
		if ($('.family-sites__btn.btn-clickable')[0]) {
			$('.family-sites__btn.btn-clickable.active').not(this).removeClass('active');
			$('.family-sites__nav').fadeIn('500');
			$('.user-login').removeClass('active');
			$(this).toggleClass('active');
			// No vertical scrolling when active
			if ($(this).hasClass('active')) {
				$('body').addClass('no-scroll');
			} else {
				$('body').removeClass('no-scroll');
			}
		}
	});

}

/*-- Remove and add IDs and classes on window resize based on CSS properties --*/
function checkSize() {
	if ($('.main-nav-btn').css('display') == 'none') {
		$('#mainNav, .main-nav-btn, #screenCover').removeClass('active');
		$('#mainNav, .main-nav-btn, #screenCover').removeClass('active');
		$('.header-top__nav').css('display', '');
		$('#mainNav').css('transition', 'none');
		$('.header-top__nav').insertAfter('.header-top__logo'); // Move for mobile/desktop!
	} else {
		$('#mainNav').removeAttr('style');
		$('.header-top__nav').appendTo('#mainNav'); // Move for mobile/desktop!
	};
	if ($('.user-login__btn').css('position') == 'static') {
		$('.user-login__btn, .family-sites__btn').addClass('btn-clickable');
	} else {
		$('.user-login__btn, .family-sites__btn').removeClass('btn-clickable');
		$('.user-login, .family-sites__btn').removeClass('active');
		$('body').removeClass('no-scroll');
	};
};
$(document).ready(function () {

	$('.login-button').on('click', function () {
		$('.login-validation-error').hide();
		$('input[name="Password"], input[name="Username"]').removeClass('input-validation-error');
		var $form = $(this).closest('form');
		if ($form.valid()) {
			$.ajax({
				type: $form.attr("method"),
				url: $form.attr("action"),
				data: $form.serializeArray(),
				success: login_Success,
				error: login_Failure
			});
		}
	});

	function login_Success(data) {
		if (data.Success || data.Status == 'AccountExpired') {
			window.location.href = data.ReturnUrl;
		}
		else {
			$('input[name="Password"]').val('');
			$('.login-validation-error').show();
			$('input[name="Password"], input[name="Username"]').addClass('input-validation-error');
		}
	}

	function login_Failure(data) {
		$('input[name="Password"]').val('');
		$('.login-validation-error').show();
		$('input[name="Password"], input[name="Username"]').addClass('input-validation-error');
	}
});


;
$(document).ready(function () {
	sideBar();
	initShipTraceForm();
	fetchAQData();
	setServiceDelay();
});

/*-- side bar --*/
function sideBar() {
	$('#widgetLoginClick').on('click', function () {
		$(this).addClass('active');
		$(this).siblings().addClass('active');
		$(this).children().addClass('active');
		$('#widgetTraceClick').siblings().removeClass('active');
		$('#widgetTraceClick').children().removeClass('active');
		$('#widgetTraceClick').removeClass('active');
	});
	$('#widgetTraceClick').on('click', function () {
		$(this).addClass('active');
		$(this).siblings().addClass('active');
		$(this).children().addClass('active');
		$('#widgetLoginClick').siblings().removeClass('active');
		$('#widgetLoginClick').children().removeClass('active');
		$('#widgetLoginClick').removeClass('active');
	});
}

function initShipTraceForm() {
	$('#widgetTrace').on('click', function (event) {
		event.preventDefault();
		var $form = $(this).parents('form:first');
		if ($form.valid()) {
			let type = $("#widgetShipTrace #Type").val();
			let numbers = $("#widgetShipTrace #TrackingNumbers").val();
			let urlPros = numbers.replace(/\n/g, ',').replace(/\r/g, '');
			$form.attr('action', `/freight/shipping/shipment-tracing?pro=${urlPros}&docType=${type}&source=web`);
			$form.submit();
		}
	});
}

function initAqEvents() {

	$('.aq-error').click(function (e) {
		e.preventDefault();
		e.stopPropagation();
		alert("An Error has occured during the processing of this request. Please contact the Help Desk.");
	});

	$('.aq-processing').click(function (e) {
		e.preventDefault();
		e.stopPropagation();
		alert("Request is still being processed. If you feel this request is taking longer than expected, please call the Help Desk at 800-543-5589.");
	});
}

function fetchAQData() {
	$.ajax({
		type: "Get",
		url: "/activity-queue/short-list",
		success: function (data) {
			$(".widget__web-activity").append(data);

			$('.aq-processing').each(function () {
				setTimeout("checkAQStatus('" + $(this).attr('data-activityid') + "')", 5000);
			});

			initAqEvents();
		},
		error: function () {
		}
	});
}

function checkAQStatus(activityId) {
	$.ajax({
		type: "Get",
		url: "/activity-queue/check-status",
		data: { activityId: activityId },
		success: function (data) {
			switch (data) {
				case "Error":
					var errElement = $('.web-activity-list').find('a[data-activityid"' + activityId + '"]');
					errElement.removeClass('aq-processing').addClass('aq-error');
					errElement.find('.web-activity-tool--status-processing').removeClass('web-activity-tool--status-processing').addClass('web-activity-tool--status-error');
					break;
				case "Processing":
					setTimeout("checkAQStatus('" + activityId + "')", 5000);
					break;
				case "Completed":
					var compltElement = $('.web-activity-list').find('[data-activityid"' + activityId + '"]');
					compltElement.removeClass('aq-processing').addClass('aq-completed');
					compltElement.find('.web-activity-tool--status-processing').removeClass('web-activity-tool--status-processing').addClass('web-activity-tool--status-completed');

					Notify("Your {0} request has completed.".format(compltElement.attr('data-toolname')), compltElement.attr('href'), '.notifications');

					break;
			}
		},
		error: function () {
		}
	});
}

function setServiceDelay() {
	$(document).ready(function () {
		$.ajax({
			type: "Get",
			url: "/freight/service-delay/is-active",
			success: function (data) {
				if (data == true) {
					$("#service_delay_div").addClass("widget__tool--alert");
				}
			},
			error: function () {
			}
		});
	});
}

function triggerSTClick(event) {
	let toolName = event.currentTarget.attributes["data-toolname"].value;
	let stPro = event.currentTarget.attributes["data-ref"].value;

	if (toolName === "Shipment Tracing") {
		event.preventDefault();
		redirectToPostAction(stPro);
	}
}

function redirectToPostAction(pro) {
	const form = document.createElement('form');
	form.method = 'post';
	form.action = '/freight/shipping/shipment-tracing';


	const typeInput = document.createElement('input');
	typeInput.type = 'hidden';
	typeInput.name = 'Type';
	typeInput.value = 'PRO';

	const trackingInput = document.createElement('input');
	trackingInput.type = 'hidden';
	trackingInput.name = 'TrackingNumbers';
	trackingInput.value = pro

	form.appendChild(typeInput);
	form.appendChild(trackingInput);

	// Append form to document and submit 
	document.body.appendChild(form);
	form.submit();
}
;
$(document).ready(function () {	

	$('#SignUpSubmit').on('click', function () {

		var $form = $(this).parents('form:first');

		if ($form.valid()) {
			$.ajax({
				url: $form.attr("action"),
				type: $form.attr("method"),
				data: $form.serialize(),
				success: emailSignUp_Success,
				error: emailSignUp_Failure
			});
		}
	});

	function emailSignUp_Success(data) {
		alert("Thanks for your interest - you're on our list!");
	}

	function emailSignUp_Failure(data) {
		alert("An error occurred while attempting to join email list.");
	}
});;

// Message/Error dialog
// Parameters:
//	header: Header to show in title bar of message box.
//	message: Message to show in message box.
//	isError: true if message is error
function rlcModalMessage(header, message, isError) {
	$("#rlcMessage .rlc-modal--hd").html(header);
	$("#rlcMessage .rlc-modal--p").html(message);
	$("#rlcMessage .rlc-modal--hd").removeClass('rlc-modal--hd-error');
	$("#rlcMessage .btn--modal-close").removeClass('btn--error btn--primary');
	if (isError) {
		$("#rlcMessage .rlc-modal--hd").addClass('rlc-modal--hd-error');
		$("#rlcMessage .btn--modal-close").addClass('btn--error');
	} else {
		$("#rlcMessage .btn--modal-close").addClass('btn--primary');
	}
	$('#rlcMessage, #rlcModalScreenCover').addClass("active");
	$('body').addClass('no-scroll');
	return new Promise(resolve => {
		$('.rlc-modal__close, .btn--modal-close').on("click", () => resolve(message));
	});
}

// Shortcut for message dialog
function rlcMessage(header, message) {
	return rlcModalMessage(header, message);
}

// Shortcut for error dialog
function rlcError(header, message) {
	return rlcModalMessage(header, message, true);
}

// Confirm dialog
// Parameters:
//	header: Header to show in title bar of message box.
//	message: Message to show in message box.
//	btnTrueText: Text to display on the positive response button.
//	btnFalseText: Text to display on the negative response button.
// Example:
//	$deleteForm.on("submit", (e) => {
//		e.preventDefault();
//		rlcModalConfirm("Delete File", "Are you sure?", "Confirm", "Cancel")
//			.then(result => !result || $deleteForm.off("submit").trigger("submit"));
//	});
function rlcModalConfirm(header, message, btnTrueText, btnFalseText) {
	let $btnTrue = $("#rlcConfirm input.btn--modal-confirm").first(),
		$btnFalse = $("#rlcConfirm input.btn--modal-confirm").last();
	$("#rlcConfirm .rlc-modal--hd").html(header);
	$("#rlcConfirm .rlc-modal--p").html(message);
	$btnTrue.val(btnTrueText);
	$btnFalse.val(btnFalseText);
	$('#rlcConfirm, #rlcModalScreenCover').addClass("active");
	$('body').addClass('no-scroll');
	return new Promise(resolve => {
		$btnTrue.off("click").on("click", () => {
			$("#rlcConfirm .rlc-modal__close").trigger("click");
			resolve(true);
		});
		$btnFalse.off("click").on("click", () => {
			$("#rlcConfirm .rlc-modal__close").trigger("click");
			resolve(false)
		});
	});
}

// Shortcut for confirm dialog with Yes/No buttons
function rlcYesNo(header, message) {
	return rlcModalConfirm(header, message, "Yes", "No");
}

// Shortcut for confirm dialog with Confirm/Cancel buttons
function rlcConfirmCancel(header, message) {
	return rlcModalConfirm(header, message, "Confirm", "Cancel");
}

// Print window
function rlcPrint() { window.print(); }

// Pop-up: Open
// Parameters:
//	modalId: The id of the modal to open.
// Example: $('#emailBtn').on('click', () => rlcModalOpen("#emailResultsDialog"));
function rlcModalOpen(modalId) {
	$(`${modalId}, #rlcModalScreenCover`).addClass('active');
	$('body').addClass('no-scroll');
}

$(document).ready(function () {

	// Pop-up: Form Submit
	// Eample usage:
	//$("#emailResultsDialog .form-submit-button").on("click", function () {
	//	$(this).closest("form").trigger("submit", {
	//		Header: "Transit Times Results",
	//		SuccessMessage: "Transit Times results have successfully been emailed.",
	//		ErrorMessage: "An error was encountered while attempting to send email. Please try again.",
	//		ExtData: [
	//			{
	//				name: "color",
	//				value: "Blue"
	//			},
	//			{
	//				name: "someModel.Prop1",
	//				value: "value"
	//			},
	//			{
	//				name: "someModel.Prop2",
	//				value: "value"
	//			}
	//		]
	//	})
	//});
	// ExtData is optional. Other options are required.
	// ExtData will be sent as additional parameters to the action method one per name value pair.
	// ExtData can be bundled in models by prefixing the name with the action method parameter name.
	$(".rlc-modal--form form").on("submit", function (e, d) {
		let $form = $(this),
			data = $form.serializeArray();
		if ($form.valid()) {
			e.preventDefault();
			if (d != null && Array.isArray(d.ExtData)) {
				$.each(d.ExtData, (index, nvpair) => data.push(nvpair));
			}
			$.ajax({
				beforeSend: function () {
					loadingStart()
				},
				url: $form.attr("action"),
				method: $form.attr("method"),
				data: data,
				success: () => {
					$form.closest(".rlc-modal--form").find(".btn--modal-close").trigger("click");
					rlcMessage(d.Header, d.SuccessMessage);
				},
				complete: function () {
					loadingEnd()
				},
				error: () => rlcError(d.Header, d.ErrorMessage)
			});
		}
	});

	// Pop-up: Close
	$('.rlc-modal__close, .btn--modal-close').on('click', function () {
		$(this).closest('.rlc-modal').removeClass('active');
		$('#rlcModalScreenCover').removeClass('active');
		$('body').removeClass('no-scroll');
	});

});
;
"use strict";

$(document).ready(async function () {

	async function checkAccountExpiration() {
		let acctExpired = false;
		const myrlcid = $('#my-rlc-id').val();
		if (myrlcid != '') {
			var accountExpire = await new Promise(resolve => $.ajax({ url: "/acount/get-account-expire-date", success: result => resolve(result) }));
			if (accountExpire != null) {
				const expireDate = new Date(accountExpire);
				if (expireDate.getTime() < Date.now()) {
					acctExpired = true;
				}
			}
		}
		return acctExpired;
	}

	async function checkPwdExpiration() {
		const myrlcid = $('#my-rlc-id').val();
		if (myrlcid != '') {
			const $expiryDate = $('#expiry-date');
			const pwdExpire = await new Promise(resolve => $.ajax({ url: "/acount/get-password-expire-date", success: result => resolve(result) }));
			if (pwdExpire != null) {
				const expiryDate = new Date(pwdExpire);
				const oneDay = 24 * 3600 * 1000;
				const daysRemaining = Math.round((expiryDate.getTime() - Date.now()) / oneDay);
				$expiryDate.val(pwdExpire);
				if (expiryDate.getTime() < Date.now()) {
					if (window.location.pathname != '/company/myrlc/profile-update' && window.location.pathname != '/acount/forgot-password') {
						window.location = '/company/myrlc/profile-update?status=password-expired';
					}
				} else {
					const passwordResetDays = $('password-reset-days').val() || 10;
					const noticeDays = passwordResetDays * oneDay;
					if (expiryDate.getTime() - Date.now() < noticeDays) {
						const $expiryNoticeShown = $('#expiry-notice-shown');
						const expiryNoticeShown = $expiryNoticeShown.val() ? new Date($expiryNoticeShown.val()) : null;
						if (expiryNoticeShown == null || Date.now() - expiryNoticeShown.getTime() > oneDay) {
							const message = daysRemaining > 0
								? `Your password will expire in ${daysRemaining} day(s). Would you like to reset it now?`
								: `Your password expires today. Please reset it.`;
							const $dialog = $('#error-message-dialog');
							if ($dialog.length) {
								const buttons = daysRemaining > 0 ? {
									"No": function () {
										$(this).dialog("close");
										isOpen = false;
										if (currentControl)
											$(currentControl).focus();
									},
									"Yes": function () {
										$(this).dialog("close");
										isOpen = false;
										window.location = '/company/myrlc/profile-update'
									}
								} : {
									"OK": function () {
										$(this).dialog("close");
										isOpen = false;
										window.location = '/company/myrlc/profile-update'
									}
								};
								$dialog.dialog({
									autoOpen: false, bgiframe: true, position: ['center', 100], modal: true, zIndex: '6000', title: 'R+L Carriers Message', width: 475, height: 250,
									buttons: buttons,
									open: function () {
										$(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
									},
									close: function () {
										$(this).dialog("destroy");
										isOpen = false;
										if (currentControl) {
											$(currentControl).focus();
										}
										if (daysRemaining < 1) {
											window.location = '/company/myrlc/profile-update';
										}
									}
								});
								$('#spMessage').html(message);
								$dialog.dialog('open');
							} else if (daysRemaining < 1) {
								rlcMessage("Password Expires Soon", message)
									.then(() => window.location = '/company/myrlc/profile-update');
							} else {
								rlcYesNo("Password Expires Soon", message)
									.then(response => {
										if (response) {
											window.location = '/company/myrlc/profile-update';
										}
									});
							}
							$.ajax({ url: "/acount/expiry-notice-shown" });
						}
					}
				}
			}
		}
	}

	if ($('#my-rlc-id').val()) {
		const acctExpired = await checkAccountExpiration();
		if (acctExpired) {
			if (window.location.pathname != '/acount/forgot-password') {
				window.location = '/acount/forgot-password?status=account-expired';
			}
		} else if ($('#enforce-password-expiration').val() === 'true') {
			checkPwdExpiration();
		}
	}

});;
