| 1 | {* |
| 2 | +--------------------------------------------------------------------+ |
| 3 | | CiviCRM version 4.5 | |
| 4 | +--------------------------------------------------------------------+ |
| 5 | | Copyright CiviCRM LLC (c) 2004-2014 | |
| 6 | +--------------------------------------------------------------------+ |
| 7 | | This file is a part of CiviCRM. | |
| 8 | | | |
| 9 | | CiviCRM is free software; you can copy, modify, and distribute it | |
| 10 | | under the terms of the GNU Affero General Public License | |
| 11 | | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. | |
| 12 | | | |
| 13 | | CiviCRM is distributed in the hope that it will be useful, but | |
| 14 | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| 16 | | See the GNU Affero General Public License for more details. | |
| 17 | | | |
| 18 | | You should have received a copy of the GNU Affero General Public | |
| 19 | | License and the CiviCRM Licensing Exception along | |
| 20 | | with this program; if not, contact CiviCRM LLC | |
| 21 | | at info[AT]civicrm[DOT]org. If you have questions about the | |
| 22 | | GNU Affero General Public License or the licensing of CiviCRM, | |
| 23 | | see the CiviCRM license FAQ at http://civicrm.org/licensing | |
| 24 | +--------------------------------------------------------------------+ |
| 25 | *} |
| 26 | {if $config->stateCountryMap} |
| 27 | <script type="text/javascript"> |
| 28 | {literal} |
| 29 | CRM.$(function($) { |
| 30 | function chainSelect(e) { |
| 31 | var info = $(this).data('chainSelect'); |
| 32 | var val = info.target.val(); |
| 33 | var multiple = info.target.attr('multiple'); |
| 34 | var placeholder = $(this).val() ? "{/literal}{ts escape='js'}Loading{/ts}{literal}..." : info.placeholder; |
| 35 | !multiple && info.target.html('<option value="">' + placeholder + '</option>'); |
| 36 | if ($(this).val()) { |
| 37 | $.getJSON(info.callback, {_value: $(this).val()}, function(data) { |
| 38 | var options = ''; |
| 39 | $.each(data, function() { |
| 40 | if (!multiple || this.value) { |
| 41 | options += '<option value="' + this.value + '">' + this.name + '</option>'; |
| 42 | } |
| 43 | }); |
| 44 | info.target.html(options).val(val).trigger('change'); |
| 45 | }); |
| 46 | } else { |
| 47 | info.target.trigger('change'); |
| 48 | } |
| 49 | } |
| 50 | {/literal} |
| 51 | {foreach from=$config->stateCountryMap item=stateCountryMap} |
| 52 | {if $stateCountryMap.country && $stateCountryMap.state_province} |
| 53 | $('select[name="{$stateCountryMap.country}"], #{$stateCountryMap.country}').data('chainSelect', {ldelim} |
| 54 | callback: CRM.url('civicrm/ajax/jqState'), |
| 55 | target: $('select[name="{$stateCountryMap.state_province}"], #{$stateCountryMap.state_province}'), |
| 56 | placeholder: "{ts escape='js'}(choose country first){/ts}" |
| 57 | {rdelim}).on('change', chainSelect); |
| 58 | {/if} |
| 59 | {if $stateCountryMap.state_province && $stateCountryMap.county} |
| 60 | $('select[name="{$stateCountryMap.state_province}"], #{$stateCountryMap.state_province}').data('chainSelect', {ldelim} |
| 61 | callback: CRM.url('civicrm/ajax/jqCounty'), |
| 62 | target: $('select[name="{$stateCountryMap.county}"], #{$stateCountryMap.county}'), |
| 63 | placeholder: "{ts escape='js'}(choose state first){/ts}" |
| 64 | {rdelim}).on('change', chainSelect); |
| 65 | {/if} |
| 66 | {/foreach} |
| 67 | {literal} |
| 68 | }); |
| 69 | {/literal} |
| 70 | </script> |
| 71 | {/if} |