Sindbad~EG File Manager

Current Path : /home/infinitibizsol/ridecashout.com/wp-content/themes/cardealer/js/frontend/
Upload File :
Current File : /home/infinitibizsol/ridecashout.com/wp-content/themes/cardealer/js/frontend/vehicle-detail.js

/*================================================
[  Table of contents  ]
================================================
:: Document ready functions
	:: Vehicle Detail Page Print Button
	:: Vehicle Detail Page - Nav Button Event
	:: Make An Offer Form [ CarDetail Page ]
	:: Schedule Test Drive Form [ CarDetail Page ]
	:: Car EMAIL TO A FRIEND Form [ CarDetail Page ]
	:: Car Inquiry Form [ CarDetail Page ]
	:: Financial Form [ CarDetail Page ]
	:: Slick slider
	:: Photoswipe popup
======================================
[ End table content ]
======================================*/
( function( $ ) {
	"use strict";

	// Check element exists.
	$.fn.exists = function () {
		return this.length > 0;
	};

	jQuery(document).ready(function($) {

		/***************************************
		:: Vehicle Buttons
		***************************************/

		$( document ).on( 'cardealer-vehicle-button-print', function( event, el ) {
			window.print();
		});

		/***************************************
		:: Vehicle Detail Page - Nav Button Event
		***************************************/
		$(".dealer-form-btn").on('click',function(){
			$(".reset_css input").css({"border":"none"});
			$(".reset_css textarea").css({"border":"none"});
		});

		/*******************************************
		:: Make An Offer Form [ CarDetail Page ]
		*******************************************/
		jQuery('#make_an_offer_test_request').click(function(e){
			e.preventDefault();
			var current_form = jQuery(this).parents('form'),
				formId       = current_form.attr('id'),
				textArray = [];

			jQuery('form#'+formId).find('input.cdhl_validate').each( function(i){
				textArray[i] = jQuery(this).attr('name');
			});

			var sts = do_validate_field(textArray,formId);

			if(!sts){
				var submit_btn_ID = jQuery(this).attr('id');
				jQuery.ajax({
					url: vehicle_detail_js.ajaxurl,
					method: "POST",
					data: jQuery('form#make_an_offer_test_form').serialize(),
					dataType:'json',
					beforeSend: function() {
						jQuery('.make_an_offer_test_spinimg').html('<span class="cd-loader"></span>');
						jQuery('#'+submit_btn_ID).prop("disabled", "disabled");
					},
					success: function(responseObj){
						jQuery('form#make_an_offer_test_form .make_an_offer_test_msg').show();
						jQuery('form#make_an_offer_test_form .make_an_offer_test_msg').html(responseObj.msg).delay(5000).fadeOut('slow');
						if ( responseObj && responseObj.success ) {
							current_form[0].reset();
						}
						jQuery('.check').attr('checked',true);
						if (typeof grecaptcha !== "undefined" && typeof recaptcha2 !== "undefined" ){
							grecaptcha.reset(recaptcha2);
						}
						jQuery('#'+submit_btn_ID).removeAttr("disabled");
						jQuery('.make_an_offer_test_spinimg').html('');
					}
				});
			}
		});

		/**********************************************
		:: Schedule Test Drive Form [ CarDetail Page ]
		***********************************************/
		if ( $( '.pgs-input-field-type-date' ).exists() ) {
			$('.pgs-input-field-type-date').each(function (i, el) {
				var datepicker_settings = {
					dateFormat: 'mm-dd-yy',
				};
				if ( el.dataset.show_datepicker && 'yes' === el.dataset.show_datepicker ) {
					if ( el.dataset.date_format ) {
						datepicker_settings.dateFormat = el.dataset.date_format;
					}
					$( el ).datepicker( datepicker_settings );
				}
			});
		}
		$( ".date-time" ).keydown(function(event) {
			event.preventDefault();
		});

		// SHOW DATE AND TIME FIELD ONLY IF TEST DRIVE IS CHECKED
		jQuery('#schedule_test_form input[name=test_drive]').click( function(){
			if(jQuery(this).val() == 'no')
				jQuery('.show_test_drive').css('display', 'none');
			else
				jQuery('.show_test_drive').css('display', 'block');
		});

		// TIME PICKER FOR SCHEDULE TIME FIELD
		jQuery('.time').timepicker({ 'timeFormat': 'H:i:s'});
		jQuery('#schedule_test_request').click(function(e){
			e.preventDefault();
			var current_form = jQuery(this).parents('form'),
				formId       = current_form.attr('id'),
				textArray    = [];

				jQuery('form#'+formId).find('input').css({"border":"none"});

			jQuery('form#'+formId).find('input.cdhl_validate').each( function(i){
				textArray[i] = jQuery(this).attr('name');
			});

			if(jQuery('input[name=test_drive]:checked').val()=="no"){
				textArray.splice(jQuery.inArray("date", textArray),1);
				textArray.splice(jQuery.inArray("time", textArray),1);
			}

			var sts = do_validate_field(textArray,formId);

			if(!sts){
				var submit_btn_ID = jQuery(this).attr('id');
				jQuery.ajax({
					url: vehicle_detail_js.ajaxurl,
					method: "POST",
					data: jQuery('form#schedule_test_form').serialize(),
					dataType:'json',
					beforeSend: function() {
						jQuery('.schedule_test_spinimg').html('<span class="cd-loader"></span>');
						jQuery('#'+submit_btn_ID).prop("disabled", "disabled");
					},
					success: function(responseObj){
						jQuery('form#schedule_test_form .schedule_test_msg').show();
						jQuery('form#schedule_test_form .schedule_test_msg').html(responseObj.msg).delay(5000).fadeOut('slow');
						if ( responseObj && responseObj.success ) {
							current_form[0].reset();
							jQuery('.check').attr('checked',true);
						}
						if (typeof grecaptcha !== "undefined" && typeof recaptcha3 !== "undefined" ){
							grecaptcha.reset(recaptcha3);
						}
						jQuery('#'+submit_btn_ID).removeAttr("disabled");
						jQuery('.schedule_test_spinimg').html('');
					}
				});
			}
		});

		/************************************************
		:: Car EMAIL TO A FRIEND Form [ CarDetail Page ]
		*************************************************/
		jQuery(document).on('click','#submit_friend_frm',function(e){
			e.preventDefault();
			var current_form = jQuery(this).parents('form'),
				formId       = current_form.attr('id'),
				textArray    = [];

			jQuery('form#'+formId).find('input.cdhl_validate').each( function(i){
				textArray[i] = jQuery(this).attr('name');
			});

			var sts = do_validate_field(textArray,formId);
			if(!sts){
				var submit_btn_ID = jQuery(this).attr('id');
				jQuery.ajax({
					url: vehicle_detail_js.ajaxurl,
					method: "POST",
					data: jQuery('form#'+formId).serialize(),
					dataType:'json',
					beforeSend: function() {
						jQuery('.spinimg').html('<span class="cd-loader"></span>');
						jQuery('#'+submit_btn_ID).prop("disabled", "disabled");
					},
					success: function(responseObj){
						jQuery('.spinimg').html('');
						jQuery('#'+submit_btn_ID).removeAttr("disabled");
						jQuery('form#'+formId+' .friend-frm-msg').show();
						jQuery('form#'+formId+' .friend-frm-msg').html(responseObj.msg).delay(5000).fadeOut('slow');
						if ( responseObj && responseObj.success ) {
							current_form[0].reset();
						}
						jQuery('.check').attr('checked',true);
						if (typeof grecaptcha !== "undefined" && typeof recaptcha4 !== "undefined" ){
							grecaptcha.reset(recaptcha4);
						}
					}
				});
			}
		});

		/*********************************************
		:: Car Inquiry Form [ CarDetail Page ]
		**********************************************/

		jQuery(document).on('click','#submit_request, #submit-inquiry',function(e){
			e.preventDefault();
			var current_form = jQuery(this).parents('form'),
				formId       = current_form.attr('id'),
				textArray = [];

			jQuery('form#'+formId).find('input').css({"border":"none"});
			jQuery('form#'+formId).find('input.cdhl_validate').each( function(i){
				textArray[i] = jQuery(this).attr('name');
			});

			// ENABLE / DISABLE REQUIRED ON PHONE / EMAIL BASED ON PREFERED CONTACT SELECTED
			var sts = do_validate_field(textArray,formId);
			if(!sts){
				var submit_btn_ID = jQuery(this).attr('id');
				jQuery.ajax({
					url: vehicle_detail_js.ajaxurl,
					method: "POST",
					dataType:'json',
					data: jQuery('form#'+formId).serialize(),
					beforeSend: function() {
						jQuery('.spinimg').html('<span class="cd-loader"></span>');
						jQuery('#'+submit_btn_ID).prop("disabled", "disabled");
					},
					success: function(responseObj){
						jQuery('form#'+formId+' .inquiry-msg').show();
						jQuery('#'+submit_btn_ID).removeAttr("disabled");
						jQuery('.spinimg').html('');
						jQuery('form#'+formId+' .inquiry-msg').html(responseObj.msg).delay(5000).fadeOut('slow');
						if ( responseObj && responseObj.success ) {
							current_form[0].reset();
						}
						jQuery('.check').attr('checked',true);
						if (typeof grecaptcha !== "undefined" && typeof recaptcha1 !== "undefined" && typeof recaptcha6 !== "undefined" ){
							grecaptcha.reset(recaptcha1);
							grecaptcha.reset(recaptcha6);
						}
					}
				});
			}
		});

		/**************************************
		:: Financial Form [ CarDetail Page ]
		***************************************/
		jQuery("#personal_application").css("display","none");
		if( $('#joint_application').is(':checked') ) {
			$('#personal_application').show();
		}

		jQuery('#joint_application').change(function() {
			if( jQuery(this).is(':checked')) {
				jQuery("#personal_application").show();
			} else {
				jQuery("#personal_application").hide();
			}
		});
		jQuery('#financial_form_request').click(function(e){
			e.preventDefault();
			var current_form = jQuery(this).parents('form'),
				formId       = current_form.attr('id'),
				financial = [];

			jQuery('form#'+formId).find('input.cdhl_validate').each( function(i){
				financial[i] = jQuery(this).attr('name');
			});

			var Selectfinancial = [];
			jQuery('form#'+formId).find('select.cdhl_sel_validate').each( function(i){
				Selectfinancial[i] = jQuery(this).attr('name');
			});

			var joint = [];
			jQuery('form#'+formId).find('input.cdhl_validate_joint').each( function(i){
				joint[i] = jQuery(this).attr('name');
			});

			var joint;
			jQuery('form#'+formId).find('input.cdhl_validate_joint').each( function(i){
				joint[i] = jQuery(this).attr('name');
			});

			var selectjoint = [];
			jQuery('form#'+formId).find('select.cdhl_sel_validate_joint').each( function(i){
				selectjoint[i] = jQuery(this).attr('name');
			});

			var SelectArray=[];
			var textArray = [];


			if(jQuery("#joint_application").is(':checked'))
				textArray = financial.concat(joint);
			else
				textArray=financial;

			if(jQuery("#joint_application").is(':checked'))
				SelectArray = Selectfinancial.concat(selectjoint);
			else
				SelectArray=Selectfinancial;

			var sts = do_validate_field(textArray,formId,SelectArray);
			if(!sts){
				var submit_btn_ID = jQuery(this).attr('id');
				jQuery.ajax({
					url: vehicle_detail_js.ajaxurl,
					method: "POST",
					dataType:'json',
					data: jQuery('form#financial_form').serialize(),
					beforeSend: function() {
						jQuery('.financial_form_spining').html('<span class="cd-loader"></span>');
						jQuery('#'+submit_btn_ID).prop("disabled", "disabled");
					},
					success: function(responseObj){
						jQuery('.financial_form_spining').html('');
						jQuery('#'+submit_btn_ID).removeAttr("disabled");
						jQuery('form#financial_form .financial_form_msg').show();
						jQuery('form#financial_form .financial_form_msg').html(responseObj.msg).delay(5000).fadeOut('slow');
						if ( responseObj && responseObj.success ) {
							current_form[0].reset();
							jQuery('.check').attr('checked',true);
							jQuery('select').prop('selectedIndex',0);
							jQuery('select').select2();
						}
						if (typeof grecaptcha !== "undefined" && typeof recaptcha5 !== "undefined" ){
							grecaptcha.reset(recaptcha5);
						}
					}
				});
			}
		});

		/*********************
		:: Slick slider
		*********************/

		cars_image_gallery();
		$( document.body ).on( 'cdhl_vehicle_gallery_event', function() {
			cars_image_gallery();
		});

		/*************************************************
		:: Photoswipe popup gallery for car detail page
		**************************************************/
		jQuery( document ).on("click", ".ps-car-listing", function() {
			var pswpElement = document.querySelectorAll('.pswp')[0];
			var items = [];
			var newitems = [];
			var psitems = [];
			var curid = this.id;

			jQuery( "figure" ).each(function() {
				if(!jQuery(this).closest('.slick-cloned').length){
					var url        = jQuery(this).find('.ps-car-listing').attr('src'),
						img_src    = jQuery(this).find('.ps-car-listing').attr('data-src'),
						img_width  = jQuery(this).find('.ps-car-listing').attr('data-width'),
						img_height = jQuery(this).find('.ps-car-listing').attr('data-height');

					// Imagify plugin support when picture tag added
					if ( ! url ) {
						url = jQuery( this ).find( 'img' ).attr( 'src' );
					}

					if ( ! img_src ) {
						img_src = jQuery( this ).find( 'img' ).attr( 'data-src' );
					}

					if ( ! img_width ) {
						img_width = jQuery( this ).find('img').attr( 'data-width' );
					}

					if ( ! img_height ) {
						img_height = jQuery( this ).find( 'img' ).attr( 'data-height' );
					}

					var id = jQuery(this).find('.ps-car-listing').attr('id');
					var item = {
						src : (typeof img_src !== 'undefined' && img_src!="") ? img_src : url,
						id  : id,
						w: (typeof img_width !== 'undefined' && img_width!='')? img_width : 1051,
						h: (typeof img_height !== 'undefined' && img_height!='')? img_height : 662
					};
					items.push(item);
				}
			});
			items.forEach(function(element, i) {
				if(curid == element.id){
					newitems = items.concat(items.splice(0,i));
				}
			});
			items.forEach( function (i) {
				if(newitems.indexOf(i) < 0) {
					newitems.push(i);
				}
			});
			var options = {
				history: false,
				focus: false,
				showAnimationDuration: 0,
				hideAnimationDuration: 0
			};
			var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, newitems, options);
			gallery.init();
		});

	});

	function do_validate_field(textArray,formId, SelectArray){
		var validationStr = false;

		// code for privacy and terms
		if(jQuery('.validation_error').length){
			jQuery('.validation_error').css("border", "none");
		}
		if( jQuery('form#'+formId).find('input:checkbox[name=cdhl_terms_privacy]').length > 0 ){
			var checkbox_field = jQuery('form#'+formId).find('input:checkbox[name=cdhl_terms_privacy]:checked').val();
			if (checkbox_field == null || checkbox_field == "" ) {
				validationStr = true;
				jQuery('form#'+formId).find('input:checkbox[name=cdhl_terms_privacy]').parent().parent('div').addClass('validation_error').css({"border-style":"solid","border-width":"1px 1px 1px 1px","border-color":"red"});
			}
		}

		for (var n = 0; n < textArray.length; n++) {
			var str = textArray[n];
			jQuery('form#'+formId).find('input[name='+str+']').css({"border":"none"});
			var field_val = jQuery('form#'+formId).find('input[name='+str+']').val();
			if (field_val == "") {
				validationStr = true;
				jQuery('form#'+formId).find('input[name='+str+']').css({"border-style":"solid","border-width":"1px 1px 1px 1px","border-color":"red"});
			}

			if( jQuery("input[name="+str+"]").hasClass('cardealer_mail') ) {
				var varTestMailExp=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
				var varEmail = field_val;
				if (varEmail && varEmail.search(varTestMailExp) == -1) {
					validationStr = true;
					jQuery('form#'+formId).find('input[name='+str+']').css({"border-style":"solid","border-width":"1px 1px 1px 1px","border-color":"red"});
				}
			}
		}
		if (typeof SelectArray != 'undefined' ) {
			if(SelectArray)
			{
				for (var n = 0; n < SelectArray.length; n++) {
					str = SelectArray[n];
					jQuery('form#'+formId).find('select[name='+str+']').next('.select2').css({"border-color":"#e3e3e3"});

					var field_val = jQuery('form#'+formId).find('select[name='+str+']').val();
					if (field_val == "") {
						validationStr = true;
						jQuery('form#'+formId).find('select[name='+str+']').next('.select2').css({"border-style":"solid","border-width":"1px 1px 1px 1px","border-color":"red"});
					}
				}
			}
		}
		return validationStr;
	}

	var updateSliderCounter = function( slick ) {
		let currentSlide = slick.slickCurrentSlide() + 1;
		let slidesCount  = slick.slideCount;

		$( slick )[0].$slider.parents( '.cars-image-gallery' ).find( '.slider-count' ).text( currentSlide + '/' + slidesCount );
	};

	function cars_image_gallery() {

		var gallery_image_loop = false;
		if ( '1' === vehicle_detail_js.gallery_image_loop ) {
			gallery_image_loop = true;
		}

		$( '.cars-image-gallery' ).each( function( index ) {
			if ( $(this).find( '.slider-for' ).length > 0 ) {
				if ( $( '.cars-image-gallery .slider-count' ).length > 0 ) {
					$(this).find( '.slider-for' ).on( 'afterChange', function( event, slick, currentSlide ) {
						updateSliderCounter( slick );
					});

					$(this).find( '.slider-for' ).on('init', function(event, slick) {
						updateSliderCounter( slick );
					});
				}

				$(this).find( '.slider-for' ).slick({
					slidesToShow: 1,
					slidesToScroll: 1,
					infinite: gallery_image_loop,
					arrows: true,
					adaptiveHeight: true,
					asNavFor: $(this).next( '.slider-nav' )
				});
			}
			if ( $(this).parents( '.slider-slick' ).find( '.slider-nav' ).length > 0 ) {
				$(this).parents( '.slider-slick' ).find( '.slider-nav' ).slick({
					slidesToShow: 5,
					infinite: gallery_image_loop,
					slidesToScroll: 1,
					asNavFor: $(this).find( '.slider-for' ),
					dots: false,
					focusOnSelect: true,
					responsive: [
						{
						  breakpoint: 1024,
						  settings: {
							slidesToShow: 4,
							slidesToScroll: 1
						  }
						},
						{
						  breakpoint: 600,
						  settings: {
							slidesToShow: 3,
							slidesToScroll: 1
						  }
						},
						{
						  breakpoint: 480,
						  settings: {
							slidesToShow: 3,
							slidesToScroll: 1
						  }
						}
					  ]
				});
			}
		
			if ( $(this).find( '.slider-for-full' ).length > 0 ) {
				if ( $( '.cars-image-gallery .slider-count' ).length > 0 ) {
					$(this).find( '.slider-for-full' ).on( 'afterChange', function( event, slick, currentSlide ) {
						updateSliderCounter( slick );
					});

					$(this).find( '.slider-for-full' ).on('init', function(event, slick) {
						updateSliderCounter( slick );
					});
				}

				$(this).find( '.slider-for-full' ).slick({
					slidesToShow: 3,
					slidesToScroll: 1,
					arrows: true,
					infinite: gallery_image_loop,
					infinite: gallery_image_loop,
					infinite: gallery_image_loop,
					infinite: gallery_image_loop,
					infinite: gallery_image_loop,
					adaptiveHeight: true,
					responsive: [
						{
							breakpoint: 993,
							settings: {
								slidesToShow: 2
							}
						},
						{
							breakpoint: 576,
							settings: {
								slidesToShow: 1
							}
						}
					 ]
				});
			}
		});
	}

}( jQuery ) );

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists