123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- /**
- * @version 7.10 [rev.7.10.03]
- */
- (function ($) {
- // postage calculator jquery plugin
- $.fn.calculatePostage = function (data) {
- // the data that will be used by the function to output the postage options
- var settings = $.extend({
- selector: null,
- btn: null,
- postUrl: null,
- ids: null,
- quantity: null,
- locationId: null,
- postCode: null,
- postageId: null,
- enableSelection: null
- }, data);
- if (settings.btn !== null) {
- settings.btn.button('loading');
- }
- // shortcut method
- if (settings.selector !== null) {
- // no overrides for the settings
- if (settings.ids === null) {
- settings.ids = $(settings.selector).find('.ids').map(function () {
- return $(this).val();
- }).get();
- }
- if (settings.quantity === null) {
- settings.quantity = $(settings.selector).find('.qty').map(function () {
- return $(this).val();
- }).get();
- }
- if (settings.locationId === null) {
- settings.locationId = $(settings.selector).find('select[name="locationId"]').val();
- }
- if (settings.postCode === null) {
- settings.postCode = $(settings.selector).find('input[name="postCode"]').val();
- }
- if (settings.enableSelection === null) {
- settings.enableSelection = $(settings.selector).find('input[name="enableSelection"]').val();
- }
- if (settings.postageId === null) {
- settings.postageId = $(settings.selector).find('input[name="postage_id"]').val();
- }
- }
- var selector = this;
- $.post(
- settings.postUrl,
- {
- ids: settings.ids,
- quantity: settings.quantity,
- locationId: settings.locationId,
- postCode: settings.postCode,
- enableSelection: settings.enableSelection,
- postageId: settings.postageId
- },
- function (data) {
- if (settings.btn !== null) {
- setTimeout(function () {
- settings.btn.button('reset')
- }, 500);
- }
- return selector.each(function () {
- selector.html(data);
- });
- }
- );
- }
- })(jQuery);
- jQuery(document).ready(function ($) {
- $('.alert-box').on('blur', function (e) {
- e.preventDefault();
- var message = $(this).attr('data-message');
- bootbox.alert(message);
- });
- $('.dialog-box').on('click', function (e) {
- e.preventDefault();
- var href = $(this).attr('href');
- var title = $(this).attr('title');
- $.get(href, function (data) {
- bootbox.dialog({
- title: title,
- message: data,
- buttons: {
- main: {
- label: msgs.close,
- className: "btn-default"
- }
- }
- });
- });
- });
- $('.confirm-box').on('click', function (e) {
- e.preventDefault();
- var href = $(this).attr('href');
- var message = msgs.confirmThisAction;
- if ($(this).attr('data-message')) {
- message = $(this).attr('data-message');
- }
- bootbox.confirm({
- buttons: {
- confirm: {
- label: msgs.ok,
- className: "btn-primary"
- },
- cancel: {
- label: msgs.cancel,
- className: "btn-default"
- }
- },
- message: message,
- callback: function (result) {
- if (result) {
- window.location.replace(href);
- }
- }
- // title: "You can also add a title"
- });
- });
- $('.confirm-form').on('click', function (e) {
- e.preventDefault();
- var message = msgs.confirmThisAction;
- if ($(this).attr('data-message')) {
- message = $(this).attr('data-message');
- }
- var option = $(this).val();
- var form = $(this).closest('form');
- bootbox.confirm({
- buttons: {
- confirm: {
- label: msgs.ok,
- className: "btn-primary"
- },
- cancel: {
- label: msgs.cancel,
- className: "btn-default"
- }
- },
- message: message,
- callback: function (result) {
- if (result) {
- form.find('[name="option"]').val(option);
- form.submit();
- }
- }
- // title: "You can also add a title"
- });
- });
- // checkboxes - select all/none
- $('[name="selectAll"]').click(function () {
- var checked = $(this).prop('checked');
- $('.select-all').prop('checked', checked);
- });
- // postage calculator from listing details page
- $('#calculate-postage').click(function () {
- $('#postage-calculator').find('.result').calculatePostage({
- selector: '#postage-calculator',
- postUrl: paths.calculatePostage,
- btn: $(this)
- });
- });
- $('.masonry').masonry({
- itemSelector: '.item'
- });
- // list grid cookie
- var cc = $.cookie('list_grid');
- if (cc === 'g') {
- $('#browse').find('.listings').find('.list').removeClass('list').addClass('grid col-sm-3 col-xs-6');
- } else {
- $('#browse').find('.listings').find('.grid').removeClass('grid col-sm-3 col-xs-6').addClass('list');
- }
- // list grid toggle
- $('#grid').click(function () {
- $('#browse').find('.listings').fadeOut(400, function () {
- $(this).find('.list').removeClass('list').addClass('grid col-sm-3 col-xs-6');
- $(this).fadeIn(400);
- $.cookie('list_grid', 'g', {path: baseUrl, expires: 30});
- });
- return false;
- });
- $('#list').click(function () {
- $('#browse').find('.listings').fadeOut(400, function () {
- $(this).find('.grid').removeClass('grid col-sm-3 col-xs-6').addClass('list');
- $(this).fadeIn(400);
- $.cookie('list_grid', null, {path: baseUrl});
- });
- return false;
- });
- /* sidebar nav offcanvas toggle */
- $('[data-toggle=offcanvas]').click(function () {
- $('.row-offcanvas').toggleClass('active', 400);
- $('footer').toggle(); // workaround for footer overlapping
- });
- /* attach loading modal behavior to button */
- $('.btn-loading-modal').on('click', function () {
- $('body').addClass('loading');
- });
- if (!modRewrite) {
- // workaround for posting get forms when mod rewrite is not available
- $('form').submit(function (e) {
- if ($(this).attr('method').toLowerCase() === 'get') {
- e.preventDefault();
- $(this).attr('method', 'post');
- $(this).submit();
- }
- });
- }
- $('pre').each(function () {
- $(this).text($(this).html()); //makes the html into plaintext
- });
- /* jquery table rows filter */
- $('.table-filter').keyup(function () {
- var rex = new RegExp($(this).val(), 'i');
- var table = $(this).closest('table');
- table.find('.searchable tr').hide();
- table.find('.searchable tr').filter(function () {
- return rex.test($(this).text());
- }).show();
- });
- // @version 7.6
- // open form in a bootbox modal
- $('.jq-popup-form').on('click', function (e) {
- e.preventDefault();
- $('body').addClass('loading');
- var title = $(this).attr('title');
- var onCloseRedirect = $(this).attr('data-close-redirect');
- var url = null;
- var method = 'GET';
- var data = null;
- if ($(this).is(':submit')) {
- var form = $(this).closest('form');
- var formMethod = form.attr('method');
- if (formMethod !== '' && $.type(formMethod) !== 'undefined') {
- method = formMethod;
- }
- url = $(this).attr('formaction');
- if (url === '' || $.type(url) === 'undefined') {
- url = form.attr('action');
- }
- data = form.serialize();
- }
- else {
- url = $(this).attr('href');
- }
- $.ajax({
- url: url,
- data: data,
- method: method,
- success: function (data) {
- bootbox.dialog({
- title: title,
- message: data,
- closeButton: false,
- buttons: {
- main: {
- label: msgs.close,
- className: "btn-default",
- callback: function () {
- if (onCloseRedirect !== '' && $.type(onCloseRedirect) !== 'undefined') {
- $('body').addClass('loading');
- window.location.reload(onCloseRedirect);
- }
- }
- }
- }
- });
- $('body').removeClass('loading');
- }
- });
- });
- // full size images gallery
- $('.jq-gallery').magnificPopup({
- type: 'image',
- gallery: {
- enabled: true
- }
- });
- // ajax load pages in popup - use href as ajax load destination
- $('.ajax-popup').magnificPopup({
- type: 'ajax'
- });
- // workaround so that slides do not display unless the slick slider library has been loaded
- $('.jq-loading-slider')
- .on('init', function (slick) {
- $(this).find('.jq-slide').removeClass('hidden');
- });
- // slick carousel implementation for the listing details page main image and thumbnails
- $('#jq-mainImage')
- .slick({
- slidesToShow: 1,
- slidesToScroll: 1,
- arrows: false,
- asNavFor: '#jq-thumbnails'
- })
- .find('img')
- .on('click', function () {
- var thumbId = $(this).attr('data-gallery-id');
- $('.jq-gallery').eq(thumbId).trigger('click');
- });
- $('#jq-thumbnails')
- .slick({
- slidesToShow: 4,
- slidesToScroll: 4,
- asNavFor: '#jq-mainImage',
- dots: true,
- arrows: false,
- focusOnSelect: true
- });
- // slick carousel implementation for home page slider
- $('.jq-slider')
- .slick({
- dots: true,
- arrows: false,
- autoplay: true
- });
- // left side search checkboxes - submit on click
- $('#left-side-search').find('input[type="checkbox"]').on('click', function () {
- $(this).closest('form').trigger('submit');
- });
- // left side and mobile search boxes
- $('.btn-icon-search').on('click', function () {
- $(this).closest('form').trigger('submit');
- });
- // if submitting the header search form with only a category selected and no keywords, change the submission url
- // to the category's url
- $('#form-header-search').on('submit', function (e) {
- var srcForm = $(this).closest('form');
- var keywords = srcForm.find('input[name="keywords"]').val();
- if (keywords === '') {
- var parentId = srcForm.find('input[name="parent_id"]').val();
- if (parentId !== '') {
- var category = srcForm.find('[data-id=' + parentId + ']');
- if (category !== undefined) {
- var href = category.attr('href');
- if (href !== '' && href !== undefined) {
- e.preventDefault();
- window.location.replace(href);
- }
- }
- }
- }
- })
- });
|