jQuery.noConflict();
jQuery(document).ready( function( $ ) {
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();
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() {
var mode = 'show';
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('.yearSelect');
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 showSelect = function( select ) {
jQuery(select)
.show()
.attr('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 'year';
}
var getUrl = function( level ) {
var value = jQuery('.' + level + 'Select').val();
var product = jQuery('#vafProduct').val();
var url = 'http://justsuspension.com/vaf/ajax/process?';
url = url + '&product=' + product;
url = url + '&front=1';
url = url + '&' + level + '=' + value;
return url;
}
var loadModels = function() {
var callbackFunc = function(){
showSelect(this);
loadNextSelectIfOneOption( 'model', 'year' );
decorateUnavailableSelections();
jQuery(this).trigger('vafLevelLoaded');
};
decorateUnavailableSelections();
var url = getUrl( 'make' );
var loadingText = '';
jQuery(this).nextAll('.modelSelect').html( loadingText );
jQuery(this).nextAll('.modelSelect').load( url, {}, function() {
callbackFunc.apply( this );
});
jQuery('.yearSelect').html('');
}
var loadYears = function() {
var callbackFunc = function(){
showSelect(this);
decorateUnavailableSelections();
jQuery(this).trigger('vafLevelLoaded');
};
decorateUnavailableSelections();
var url = getUrl( 'model' );
var loadingText = '';
jQuery(this).nextAll('.yearSelect').html( loadingText );
jQuery(this).nextAll('.yearSelect').load( url, {}, function() {
callbackFunc.apply( this );
});
}
jQuery('#vafForm').bind("vafSubmit", function() {
document.vafForm.submit();
});
submitVafForm = function()
{
if( jQuery('#categorySelect').val() != '?' )
{
jQuery('#vafForm').attr( 'action', jQuery('#categorySelect').val() );
}
var chooser = jQuery('#categorySelect');
if( !chooser.is('input') ) {
chooser.html('');
}
jQuery('#vafForm').trigger("vafSubmit");
return true;
}
clearVafForm = function()
{
window.location = '?make=0&model=0&year=0';
}
jQuery('#vafSubmit').click( submitVafForm );
jQuery('#vafClear').click( clearVafForm );
jQuery( '.vafCheckAll' ).click( function() {
jQuery( '.vafcheck' ).attr( 'checked', jQuery(this).attr( 'checked' ) );
})
var callback = loadModels;
jQuery('.makeSelect').change( callback );
var callback = loadYears;
jQuery('.modelSelect').change( callback );
}
jQuery.fn.chained = function() {
this.each( function() {
var mychained = new chained( this );
});
};
jQuery('#vafForm').chained();
jQuery('#vafChooserForm').chained();});