jQuery.noConflict();jQuery(document).ready( function( $ ) { function selectHasValue( select ) { var hasValue = false; select.find('option').each( function() { if( '' != jQuery(this).val() && 0 != jQuery(this).val() ) { hasValue = true; } }); return hasValue; } var decorateUnavailableSelections = function() { if( 1 != 1) { return; } var mode = ''; var select = jQuery('.makeSelect'); if( !selectHasValue( select ) ) { switch( mode ) { case 'hide': select.hide(); select.prev('label').hide(); break; case 'disable': select.attr('disabled','disabled'); break; } } var select = jQuery('.modelSelect'); if( !selectHasValue( select ) ) { switch( mode ) { case 'hide': select.hide(); select.prev('label').hide(); break; case 'disable': select.attr('disabled','disabled'); break; } } var select = jQuery('.engineSelect'); if( !selectHasValue( select ) ) { switch( mode ) { case 'hide': select.hide(); select.prev('label').hide(); break; case 'disable': select.attr('disabled','disabled'); break; } } var select = jQuery('.literSelect'); if( !selectHasValue( select ) ) { switch( mode ) { case 'hide': select.hide(); select.prev('label').hide(); break; case 'disable': select.attr('disabled','disabled'); break; } } var select = jQuery('.fuelSelect'); if( !selectHasValue( select ) ) { switch( mode ) { case 'hide': select.hide(); select.prev('label').hide(); break; case 'disable': select.attr('disabled','disabled'); break; } } } // @author Kevin van Zonneveld (http://kevin.vanzonneveld.net), Onno Marsman, Brett Zamir (http://brett-zamir.me) function ucfirst (str) { str += ''; var f = str.charAt(0).toUpperCase(); return f + str.substr(1); } decorateUnavailableSelections(); var chained = function() { var myGarageActive = jQuery( '.vafMyGarageActive' ); if( 0 < myGarageActive.length ) { jQuery('#vafForm').hide(); } jQuery('.vafMyGarageChange').click( function() { jQuery('#vafForm').toggle(); }); var showSelect = function( select ) { jQuery(select) .show() .removeAttr('disabled') .prev('label').show(); } var loadNextSelectIfOneOption = function( loadedSelect, selectAfterLoaded ) { if( jQuery('.' + loadedSelect + 'Select option' ).length == 1 ) { var myFuncName = 'load' + ucfirst(selectAfterLoaded) + 's'; jQuery('.' + loadedSelect + 'Select option' ).change(); } } function lastLevel() { return 'fuel'; } var getUrl = function( form, requestLevel ) { var requestLevel = requestLevel.replace(' ','_'); if( form.find('.' + requestLevel + 'Select').size() ) { var select = form.find('.' + requestLevel + 'Select'); } else { var select = form.find('.' + requestLevel + '_startSelect'); } var value = select.val(); var product = jQuery('#vafProduct').val(); var url = '/vaf/ajax/process?'; var levels = select.metadata().prevLevelsIncluding.split(','); url = url + '&product=' + product; url = url + '&front=1'; url = url + '&requestLevel=' + requestLevel; $.each(levels, function(index,level){ var level = level.replace(' ','_'); if(level==requestLevel) { return; } url = url + '&' + level + '=' + form.find('.' + level + 'Select').val(); }); return url; } jQuery('select').each(function(){ jQuery(this).change(function(){ /*if(jQuery(this).val() == "0") {*/ jQuery(this).next('select').nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); //} }); }); jQuery('.yearSelect').attr('data-'+'level',0);jQuery('.makeSelect').attr('data-'+'level',1);jQuery('.modelSelect').attr('data-'+'level',2);jQuery('.engineSelect').attr('data-'+'level',3);jQuery('.literSelect').attr('data-'+'level',4); var loadMakes = function() { var callbackFunc = function(){ showSelect(this); loadNextSelectIfOneOption( 'make', 'model' ); decorateUnavailableSelections(); jQuery(this).trigger('vafLevelLoaded'); }; decorateUnavailableSelections(); var loadingText = ''; if(jQuery('.make_startSelect').size()) { var url = getUrl( jQuery(this).parent('form'), 'make' ); alert(jQuery('.make_startSelect').val()); jQuery(this).nextAll('.make_startSelect').html( loadingText ); jQuery(this).nextAll('.make_endSelect').html( loadingText ); jQuery(this).nextAll('.make_startSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); jQuery(this).nextAll('.make_endSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { if(jQuery('.yearSelect').val() != "0") { var url = getUrl( jQuery(this).parent('form'), 'make' ); jQuery(this).nextAll('.makeSelect').html( loadingText ); jQuery(this).nextAll('.makeSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { //jQuery(this).nextAll('.makeSelect').html('').attr('disabled','disabled'); //jQuery(this).nextAll('.makeSelect').prop('disabled', true); jQuery(this).nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); } } jQuery('.makeSelect').html(''); //jQuery('.makeSelect').attr('data-'+'level',1); jQuery('.modelSelect').html(''); //jQuery('.modelSelect').attr('data-'+'level',2); jQuery('.engineSelect').html(''); //jQuery('.engineSelect').attr('data-'+'level',3); jQuery('.literSelect').html(''); //jQuery('.literSelect').attr('data-'+'level',4); jQuery('.fuelSelect').html(''); //jQuery('.fuelSelect').attr('data-'+'level',5); jQuery('.Select').html(''); //jQuery('.Select').attr('data-'+'level',6); } var loadModels = function() { var callbackFunc = function(){ showSelect(this); loadNextSelectIfOneOption( 'model', 'engine' ); decorateUnavailableSelections(); jQuery(this).trigger('vafLevelLoaded'); }; decorateUnavailableSelections(); var loadingText = ''; if(jQuery('.model_startSelect').size()) { var url = getUrl( jQuery(this).parent('form'), 'model' ); alert(jQuery('.model_startSelect').val()); jQuery(this).nextAll('.model_startSelect').html( loadingText ); jQuery(this).nextAll('.model_endSelect').html( loadingText ); jQuery(this).nextAll('.model_startSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); jQuery(this).nextAll('.model_endSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { if(jQuery('.makeSelect').val() != "0") { var url = getUrl( jQuery(this).parent('form'), 'model' ); jQuery(this).nextAll('.modelSelect').html( loadingText ); jQuery(this).nextAll('.modelSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { //jQuery(this).nextAll('.modelSelect').html('').attr('disabled','disabled'); //jQuery(this).nextAll('.modelSelect').prop('disabled', true); jQuery(this).nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); } } jQuery('.modelSelect').html(''); //jQuery('.modelSelect').attr('data-'+'level',2); jQuery('.engineSelect').html(''); //jQuery('.engineSelect').attr('data-'+'level',3); jQuery('.literSelect').html(''); //jQuery('.literSelect').attr('data-'+'level',4); jQuery('.fuelSelect').html(''); //jQuery('.fuelSelect').attr('data-'+'level',5); jQuery('.Select').html(''); //jQuery('.Select').attr('data-'+'level',6); } var loadEngines = function() { var callbackFunc = function(){ showSelect(this); loadNextSelectIfOneOption( 'engine', 'liter' ); decorateUnavailableSelections(); jQuery(this).trigger('vafLevelLoaded'); }; decorateUnavailableSelections(); var loadingText = ''; if(jQuery('.engine_startSelect').size()) { var url = getUrl( jQuery(this).parent('form'), 'engine' ); alert(jQuery('.engine_startSelect').val()); jQuery(this).nextAll('.engine_startSelect').html( loadingText ); jQuery(this).nextAll('.engine_endSelect').html( loadingText ); jQuery(this).nextAll('.engine_startSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); jQuery(this).nextAll('.engine_endSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { if(jQuery('.modelSelect').val() != "0") { var url = getUrl( jQuery(this).parent('form'), 'engine' ); jQuery(this).nextAll('.engineSelect').html( loadingText ); jQuery(this).nextAll('.engineSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { //jQuery(this).nextAll('.engineSelect').html('').attr('disabled','disabled'); //jQuery(this).nextAll('.engineSelect').prop('disabled', true); jQuery(this).nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); } } jQuery('.engineSelect').html(''); //jQuery('.engineSelect').attr('data-'+'level',3); jQuery('.literSelect').html(''); //jQuery('.literSelect').attr('data-'+'level',4); jQuery('.fuelSelect').html(''); //jQuery('.fuelSelect').attr('data-'+'level',5); jQuery('.Select').html(''); //jQuery('.Select').attr('data-'+'level',6); } var loadLiters = function() { var callbackFunc = function(){ showSelect(this); loadNextSelectIfOneOption( 'liter', 'fuel' ); decorateUnavailableSelections(); jQuery(this).trigger('vafLevelLoaded'); }; decorateUnavailableSelections(); var loadingText = ''; if(jQuery('.liter_startSelect').size()) { var url = getUrl( jQuery(this).parent('form'), 'liter' ); alert(jQuery('.liter_startSelect').val()); jQuery(this).nextAll('.liter_startSelect').html( loadingText ); jQuery(this).nextAll('.liter_endSelect').html( loadingText ); jQuery(this).nextAll('.liter_startSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); jQuery(this).nextAll('.liter_endSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { if(jQuery('.engineSelect').val() != "0") { var url = getUrl( jQuery(this).parent('form'), 'liter' ); jQuery(this).nextAll('.literSelect').html( loadingText ); jQuery(this).nextAll('.literSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { //jQuery(this).nextAll('.literSelect').html('').attr('disabled','disabled'); //jQuery(this).nextAll('.literSelect').prop('disabled', true); jQuery(this).nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); } } jQuery('.literSelect').html(''); //jQuery('.literSelect').attr('data-'+'level',4); jQuery('.fuelSelect').html(''); //jQuery('.fuelSelect').attr('data-'+'level',5); jQuery('.Select').html(''); //jQuery('.Select').attr('data-'+'level',6); } var loadFuels = function() { var callbackFunc = function(){ showSelect(this); decorateUnavailableSelections(); jQuery(this).trigger('vafLevelLoaded'); }; decorateUnavailableSelections(); var loadingText = ''; if(jQuery('.fuel_startSelect').size()) { var url = getUrl( jQuery(this).parent('form'), 'fuel' ); alert(jQuery('.fuel_startSelect').val()); jQuery(this).nextAll('.fuel_startSelect').html( loadingText ); jQuery(this).nextAll('.fuel_endSelect').html( loadingText ); jQuery(this).nextAll('.fuel_startSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); jQuery(this).nextAll('.fuel_endSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { if(jQuery('.literSelect').val() != "0") { var url = getUrl( jQuery(this).parent('form'), 'fuel' ); jQuery(this).nextAll('.fuelSelect').html( loadingText ); jQuery(this).nextAll('.fuelSelect').load( url, {}, function(responseText) { jQuery(this).html(responseText); callbackFunc.apply( this ); }); } else { //jQuery(this).nextAll('.fuelSelect').html('').attr('disabled','disabled'); //jQuery(this).nextAll('.fuelSelect').prop('disabled', true); jQuery(this).nextAll('select').each(function() { //jQuery(this).html('').prop('disabled',true); jQuery(this).prop('disabled',true); }); } } jQuery('.fuelSelect').html(''); //jQuery('.fuelSelect').attr('data-'+'level',5); jQuery('.Select').html(''); //jQuery('.Select').attr('data-'+'level',6); } jQuery('#vafForm').bind("vafSubmit", function() { jQuery('#vafForm').submit(); }); jQuery('#vafChooserForm').bind("vafChooserSubmit", function() { jQuery('#vafChooserForm').submit(); }); submitVafForm = function() { if( jQuery('#categorySelect').val() != '?' ) { jQuery('#vafForm').attr( 'action', jQuery('#categorySelect').val() ); } var chooser = jQuery('#categorySelect'); if( !chooser.is('input') && !chooser.is('select')) { chooser.html(''); } jQuery('#vafForm').trigger("vafSubmit"); return true; } submitVafChooserForm = function() { jQuery('#vafChooserForm').trigger("vafChooserSubmit"); return true; } clearVafForm = function() { window.location = '?year=0&make=0&model=0&engine=0&liter=0&fuel=0'; } jQuery('#vafForm .vafSubmit').click(submitVafForm); jQuery('#vafChooserForm .vafSubmit').click(submitVafChooserForm); jQuery('#vafClear').click( clearVafForm ); jQuery('.vafClear').click( clearVafForm ); jQuery( '.vafCheckAll' ).click( function() { jQuery( '.vafcheck' ).attr( 'checked', jQuery(this).attr( 'checked' ) ); }) jQuery( '.vaf-cat-toggler' ).click( function() { var icon = jQuery(this).children( 'div.vaf-toggle-icon ' ); icon.toggleClass( 'vaf-toggle-icon-minus' ); var toggleDiv = jQuery(this).nextAll( 'div.vaf-toggle' ); toggleDiv.toggle(); }); jQuery( 'div.vaf-toggle' ).hide(); var callback = loadMakes; jQuery('.yearSelect').change( callback ); var callback = loadModels; jQuery('.makeSelect').change( callback ); var callback = loadEngines; jQuery('.modelSelect').change( callback ); var callback = loadLiters; jQuery('.engineSelect').change( callback ); var callback = loadFuels; jQuery('.literSelect').change( callback ); } jQuery.fn.chained = function() { this.each( function() { var mychained = new chained( this ); }); }; jQuery('#vafForm').chained(); jQuery('#vafChooserForm').chained();});