privilegedemarque/themes/_site/js/tools/statesManagement.js

162 lines
5.2 KiB
JavaScript
Raw Normal View History

2016-04-14 16:14:31 +02:00
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
//global variables
var countriesNeedIDNumber = [];
var countriesNeedZipCode = [];
$(document).ready(function(){
setCountries();
bindStateInputAndUpdate();
bindUniform();
bindPostcode();
bindCheckbox();
$(document).on('click', '#invoice_address', function(e){
bindCheckbox();
});
});
function setCountries()
{
if (typeof countries !== 'undefined' && countries)
{
var countriesPS = [];
for (var i in countries)
{
var id_country = countries[i]['id_country'];
if (typeof countries[i]['states'] !== 'undefined' && countries[i]['states'] && countries[i]['contains_states'])
{
countriesPS[id_country] = [];
for (var j in countries[i]['states'])
countriesPS[parseInt(id_country)].push({'id' : parseInt(countries[i]['states'][j]['id_state']), 'name' : countries[i]['states'][j]['name']});
}
if (typeof countries[i]['need_identification_number'] !== 'undefined' && parseInt(countries[i]['need_identification_number']) > 0)
countriesNeedIDNumber.push(parseInt(countries[i]['id_country']));
if (typeof countries[i]['need_zip_code'] !== 'undefined' && parseInt(countries[i]['need_zip_code']) > 0)
countriesNeedZipCode[parseInt(countries[i]['id_country'])] = countries[i]['zip_code_format'];
}
}
countries = countriesPS;
}
function bindCheckbox()
{
if ($('#invoice_address:checked').length > 0)
{
$('#opc_invoice_address').slideDown('slow');
if ($('#company_invoice').val() == '')
$('#vat_number_block_invoice').hide();
bindUniform();
}
else
$('#opc_invoice_address').slideUp('slow');
}
function bindUniform()
{
$("select.form-control,input[type='radio'],input[type='checkbox']").uniform();
}
function bindPostcode()
{
$(document).on('keyup', 'input[name=postcode]', function(e)
{
$(this).val($(this).val().toUpperCase());
});
}
function bindStateInputAndUpdate()
{
$('.id_state, .dni, .postcode').css({'display':'none'});
updateState();
updateNeedIDNumber();
updateZipCode();
$(document).on('change', '#id_country', function(e)
{
updateState();
updateNeedIDNumber();
updateZipCode();
});
if ($('#id_country_invoice').length !== 0)
{
$(document).on('change', '#id_country_invoice', function(e)
{
updateState('invoice');
updateNeedIDNumber('invoice');
updateZipCode('invoice');
});
updateState('invoice');
updateNeedIDNumber('invoice');
updateZipCode('invoice');
}
if (typeof idSelectedState !== 'undefined' && idSelectedState)
$('.id_state option[value=' + idSelectedState + ']').prop('selected', true);
if (typeof idSelectedStateInvoice !== 'undefined' && idSelectedStateInvoice)
$('.id_state_invoice option[value=' + idSelectedStateInvoice + ']').prop('selected', true);
}
function updateState(suffix)
{
$('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')+' option:not(:first-child)').remove();
if (typeof countries !== 'undefined')
var states = countries[parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val())];
if (typeof states !== 'undefined')
{
$(states).each(function(key, item){
$('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).append('<option value="' + parseInt(item.id) + '">' + item.name + '</option>');
});
$('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow');
$('#id_state, #id_state_invoice').uniform();
}
else
$('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');
}
function updateNeedIDNumber(suffix)
{
var idCountry = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val());
if (typeof countriesNeedIDNumber !== 'undefined' && in_array(idCountry, countriesNeedIDNumber))
{
$('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow');
$('#dni').uniform();
}
else
$('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');
}
function updateZipCode(suffix)
{
var idCountry = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val());
if (typeof countriesNeedZipCode !== 'undefined' && typeof countriesNeedZipCode[idCountry] !== 'undefined')
{
$('.postcode' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow');
$('#postcode').uniform();
}
else
$('.postcode'+(typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');
}