$(document).ready(function() { bindStateInputAndUpdate(); }); function bindStateInputAndUpdate() { $('.id_state, .dni, .postcode').css({'display':'none'}); updateState(); updateNeedIDNumber(); updateZipCode(); $('select#id_country').change(function(){ updateState(); updateNeedIDNumber(); updateZipCode(); }); if ($('select#id_country_invoice').length !== 0) { $('select#id_country_invoice').change(function(){ updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); }); updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); } } function updateState(suffix) { $('select#id_state'+(suffix !== undefined ? '_'+suffix : '')+' option:not(:first-child)').remove(); var states = countries[$('select#id_country'+(suffix !== undefined ? '_'+suffix : '')).val()]; if(typeof(states) !== 'undefined') { $(states).each(function (key, item){ $('select#id_state'+(suffix !== undefined ? '_'+suffix : '')).append(''); }); $('.id_state'+(suffix !== undefined ? '_'+suffix : '')+':hidden').fadeIn('slow');; } else $('.id_state'+(suffix !== undefined ? '_'+suffix : '')).fadeOut('fast'); } function updateNeedIDNumber(suffix) { var idCountry = parseInt($('select#id_country'+(suffix !== undefined ? '_'+suffix : '')).val()); if ($.inArray(idCountry, countriesNeedIDNumber) >= 0) $('.dni'+(suffix !== undefined ? '_'+suffix : '')+':hidden').fadeIn('slow'); else $('.dni'+(suffix !== undefined ? '_'+suffix : '')).fadeOut('fast'); } function updateZipCode(suffix) { var idCountry = parseInt($('select#id_country'+(suffix !== undefined ? '_'+suffix : '')).val()); if (countriesNeedZipCode[idCountry] !== 0) $('.postcode'+(suffix !== undefined ? '_'+suffix : '')+':hidden').fadeIn('slow'); else $('.postcode'+(suffix !== undefined ? '_'+suffix : '')).fadeOut('fast'); }