'use strict'; (function($) { var woosc_timer = 0; // ready $(function() { woosc_load_color(); woosc_change_count('first'); woosc_check_buttons(); woosc_hide_empty(); woosc_hide_similarities(); woosc_highlight_differences(); if (woosc_vars.open_bar === 'yes') { woosc_load_data('bar'); woosc_open_bar(); } $('.woosc-settings-fields').sortable({ handle: '.move', update: function(event, ui) { woosc_save_settings(); }, }); if (woosc_vars.button_action === 'show_message') { $.notiny.addTheme('woosc', { notification_class: 'notiny-theme-woosc', }); } woosc_quick_table(); }); // resize $(window).on('resize', function() { woosc_quick_table(); }); // quick view $(document). on('click touch', '.woosc_table .woosq-btn, .woosc_table .woosq-link', function(e) { e.preventDefault(); woosc_close(); }); $(document). on('click touch', '.woosc-sidebar .woosq-btn, .woosc-sidebar .woosq-link', function(e) { e.preventDefault(); woosc_close_sidebar(); }); // settings $(document).on('click touch', '.woosc-table-settings', function(e) { e.preventDefault(); $('.woosc-settings').toggleClass('open'); }); $(document).on('click touch', '.woosc-bar-print', function(e) { e.preventDefault(); $.print('#woosc-area'); }); $(document).on('keydown', function(e) { if ((e.ctrlKey == true || e.metaKey == true) && (e.which == '80')) { //ctrl+p or command+p if ($('.woosc-area').hasClass('woosc-area-open-table')) { e.preventDefault(); $.print('#woosc-area'); } } }); $(document).on('click touch', '.woosc-bar-share', function(e) { e.preventDefault(); $('.woosc-share').toggleClass('open'); $('.woosc-share-content').addClass('woosc-loading'); var data = { action: 'woosc_share', }; jQuery.post(woosc_vars.ajax_url, data, function(response) { $('.woosc-share-content').html(response).removeClass('woosc-loading'); }); }); // copy link $(document). on('click touch', '#woosc_copy_url, #woosc_copy_btn', function(e) { e.preventDefault(); woosc_copy_to_clipboard('#woosc_copy_url'); }); // search $(document).on('click touch', '.woosc-bar-search', function(e) { e.preventDefault(); $('.woosc-search').toggleClass('open'); if ($('.woosc-search-result').text() === '') { if (woosc_timer != null) { clearTimeout(woosc_timer); } woosc_timer = setTimeout(woosc_search, 300); return false; } }); // popup $(document).on('click touch', '.woosc-popup', function(e) { if ($(e.target).closest('.woosc-popup-content').length === 0) { $(this).toggleClass('open'); } }); $(document).on('keyup', '#woosc_search_input', function() { if ($('#woosc_search_input').val() !== '') { if (woosc_timer != null) { clearTimeout(woosc_timer); } woosc_timer = setTimeout(woosc_search, 300); return false; } }); $(document).on('click touch', '.woosc-item-add', function(e) { e.preventDefault(); var product_id = $(this).attr('data-id'); $('.woosc-search').toggleClass('open'); woosc_add_product(product_id); woosc_load_data('table'); woosc_open_table(); }); $(document).on('click touch', '.woosc-popup-close', function(e) { e.preventDefault(); $(this).closest('.woosc-popup').toggleClass('open'); }); // woovr $(document).on('woovr_selected', function(e, selected) { var id = selected.attr('data-id'); var pid = selected.attr('data-pid'); if (id > 0) { $('.woosc-btn-' + pid). removeClass('woosc-btn-added woosc-added'). attr('data-id', id); } else { $('.woosc-btn-' + pid). removeClass('woosc-btn-added woosc-added'). attr('data-id', pid); } }); // found variation $(document).on('found_variation', function(e, t) { var product_id = $(e['target']).attr('data-product_id'); $('.woosc-btn-' + product_id). removeClass('woosc-btn-added woosc-added'). attr('data-id', t.variation_id); $('.woosc-btn-' + product_id + ':not(.woosc-btn-has-icon)'). html(woosc_vars.button_text); $('.woosc-btn-has-icon.woosc-btn-' + product_id). find('.woosc-btn-icon'). removeClass(woosc_vars.button_added_icon). addClass(woosc_vars.button_normal_icon); $('.woosc-btn-has-icon.woosc-btn-' + product_id). find('.woosc-btn-text'). html(woosc_vars.button_text); }); // reset data $(document).on('reset_data', function(e) { var product_id = $(e['target']).attr('data-product_id'); $('.woosc-btn-' + product_id). removeClass('woosc-btn-added woosc-added'). attr('data-id', product_id); $('.woosc-btn-' + product_id + ':not(.woosc-btn-has-icon)'). html(woosc_vars.button_text); $('.woosc-btn-has-icon.woosc-btn-' + product_id). find('.woosc-btn-icon'). removeClass(woosc_vars.button_added_icon). addClass(woosc_vars.button_normal_icon); $('.woosc-btn-has-icon.woosc-btn-' + product_id). find('.woosc-btn-text'). html(woosc_vars.button_text); }); // remove all $(document).on('click touch', '.woosc-bar-remove', function(e) { e.preventDefault(); var r = confirm(woosc_vars.remove_all); if (r == true) { woosc_remove_product('all'); woosc_load_data('table'); } }); // add $(document).on('click touch', '.woosc-btn', function(e) { e.preventDefault(); var $this = $(this); var id = $this.attr('data-id'); var pid = $this.attr('data-pid'); var product_id = $this.attr('data-product_id'); var product_name = $this.attr('data-product_name'); var product_image = $this.attr('data-product_image'); if (typeof pid !== typeof undefined && pid !== false) { id = pid; } if (typeof product_id !== typeof undefined && product_id !== false) { id = product_id; } $this.addClass(''); if ($this.hasClass('woosc-btn-added woosc-added')) { if (woosc_vars.click_again === 'yes') { // remove woosc_remove_product(id); if (woosc_vars.button_action === 'show_message') { $.notiny({ theme: 'woosc', position: woosc_vars.message_position, image: product_image, text: woosc_vars.message_removed.replace('{name}', '' + product_name + ''), }); } } else { if (woosc_vars.button_action === 'show_message') { $.notiny({ theme: 'woosc', position: woosc_vars.message_position, image: product_image, text: woosc_vars.message_exists.replace('{name}', '' + product_name + ''), }); } } } else { $this.addClass('woosc-btn-adding woosc-adding'); woosc_add_product(id); if (woosc_vars.button_action === 'show_message') { $.notiny({ theme: 'woosc', position: woosc_vars.message_position, image: product_image, text: woosc_vars.message_added.replace('{name}', '' + product_name + ''), }); } } if (woosc_vars.button_action === 'show_bar') { // show bar only woosc_load_data('bar'); woosc_open_bar(); } if (woosc_vars.button_action === 'show_table') { // show bar & table woosc_load_data('table'); woosc_open_bar(); woosc_open_table(); } if ((woosc_vars.button_action === 'show_message') || (woosc_vars.button_action === 'none')) { // load bar again if ($('.woosc-bar').hasClass('woosc-bar-open')) { woosc_load_data('bar'); } } if (woosc_vars.button_action === 'show_sidebar') { woosc_load_data('sidebar'); woosc_open_sidebar(); } }); // remove on popup $(document). on('click touch', '#woosc-area .woosc-bar-item-remove, #woosc-area .woosc-remove', function(e) { e.preventDefault(); var product_id = $(this).attr('data-id'); $(this).parent().addClass('removing'); woosc_remove_product(product_id); woosc_load_data('table'); woosc_check_buttons(); }); // remove on page $(document). on('click touch', '.woosc-page .woosc-remove', function(e) { e.preventDefault(); var product_id = $(this).attr('data-id'); woosc_remove_product(product_id); location.reload(); }); // remove on sidebar $(document).on('click touch', '.woosc-sidebar-item-remove', function(e) { e.preventDefault(); var product_id = $(this).closest('.woosc-sidebar-item').attr('data-id'); woosc_remove_product(product_id); $(this).closest('.woosc-sidebar-item').slideUp(); woosc_check_buttons(); }); // bar button $(document).on('click touch', '.woosc-bar-btn', function(e) { e.preventDefault(); if (!$('.woosc-table-items').hasClass('woosc-table-items-loaded')) { woosc_load_data('table'); } woosc_toggle_table(); }); // close $(document).on('click touch', function(e) { if (( (woosc_vars.click_outside === 'yes') || ((woosc_vars.click_outside === 'yes_empty') && (parseInt($('.woosc-bar').attr('data-count')) === 0)) ) && ( $(e.target).closest('.wpc_compare_count').length === 0 ) && ( $(e.target).closest('.woosc-popup').length === 0 ) && ( $(e.target).closest('.woosc-btn').length === 0 ) && ( $(e.target).closest('.woosc-table').length === 0 ) && ( $(e.target).closest('.woosc-bar').length === 0 ) && ( $(e.target).closest('.woosc-menu-item a').length === 0 ) && ( $(e.target).closest('.woosc-menu a').length === 0 ) && ( $(e.target).closest('.woosc-sidebar-btn').length === 0 ) && ( ( woosc_vars.open_button === '' ) || ( $(e.target).closest(woosc_vars.open_button).length === 0 ) )) { woosc_close(); } }); // close sidebar $(document).on('click touch', '.woosc-area-open-sidebar', function(e) { if (($(e.target).closest('.woosc-sidebar').length === 0)) { woosc_close_sidebar(); } }); $(document). on('click touch', '.woosc-sidebar-close, .woosc-sidebar-continue', function(e) { woosc_close_sidebar(); }); // let compare $(document).on('click touch', '.woosc-sidebar-btn', function(e) { e.preventDefault(); woosc_close_sidebar(); woosc_toggle(); }); // close $(document).on('click touch', '#woosc-table-close', function(e) { e.preventDefault(); woosc_close_table(); }); // change settings $(document). on('change', '.woosc-settings-field, .woosc-settings-tool', function() { woosc_save_settings(); }); // open button if (woosc_vars.open_button !== '') { $(document).on('click touch', woosc_vars.open_button, function(e) { e.preventDefault(); if (woosc_vars.open_button_action === 'open_page') { // open page if ((woosc_vars.page_url !== '') && (woosc_vars.page_url !== '#')) { window.location.href = woosc_vars.page_url; } } else { if (woosc_vars.open_button_action === 'open_popup') { // open compare popup if (!$('.woosc-table-items').hasClass('woosc-table-items-loaded')) { woosc_load_data('table'); } woosc_open_bar(); woosc_open_table(); } if (woosc_vars.open_button_action === 'open_sidebar') { // open sidebar if (!$('.woosc-sidebar-items'). hasClass('woosc-sidebar-items-loaded')) { woosc_load_data('sidebar'); } woosc_open_sidebar(); } } }); } // menu item $(document). on('click touch', '.woosc-menu-item a, .woosc-menu a', function(e) { if (woosc_vars.menu_action === 'open_popup') { e.preventDefault(); // open compare popup if (!$('.woosc-table-items').hasClass('woosc-table-items-loaded')) { woosc_load_data('table'); } woosc_open_bar(); woosc_open_table(); } if (woosc_vars.menu_action === 'open_sidebar') { e.preventDefault(); // open sidebar if (!$('.woosc-sidebar-items'). hasClass('woosc-sidebar-items-loaded')) { woosc_load_data('sidebar'); } woosc_open_sidebar(); } }); function woosc_search() { $('.woosc-search-result').html('').addClass('woosc-loading'); // ajax search product woosc_timer = null; var data = { action: 'woosc_search', keyword: $('#woosc_search_input').val(), }; $.post(woosc_vars.ajax_url, data, function(response) { $('.woosc-search-result'). html(response). removeClass('woosc-loading'); }); } function woosc_set_cookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + ( exdays * 24 * 60 * 60 * 1000 )); var expires = 'expires=' + d.toUTCString(); document.cookie = cname + '=' + cvalue + '; ' + expires + '; path=/'; } function woosc_get_cookie(cname) { var name = cname + '='; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return decodeURIComponent(c.substring(name.length, c.length)); } } return ''; } function woosc_get_products() { var cookie_products = woosc_get_cookie_products(); if (woosc_get_cookie(cookie_products) != '') { return woosc_get_cookie(cookie_products); } else { return ''; } } function woosc_save_products() { var cookie_products = woosc_get_cookie_products(); var products = []; $('.woosc-bar-item').each(function() { var pid = $(this).attr('data-id'); if (pid !== '') { products.push(pid); } }); var products_str = products.join(); woosc_set_cookie(cookie_products, products_str, 7); woosc_load_data('table'); } function woosc_save_settings() { var fields = []; var settings = []; var cookie_fields = 'woosc_fields_' + woosc_vars.hash; var cookie_settings = 'woosc_settings_' + woosc_vars.hash; if (woosc_vars.user_id !== '') { cookie_fields += '_' + woosc_vars.user_id; cookie_settings += '_' + woosc_vars.user_id; } // fields $('.woosc-settings-field').each(function() { var _val = $(this).val(); if ($(this).prop('checked')) { fields.push(_val); $('.woosc_table .tr-' + _val).removeClass('tr-hide'); } else { $('.woosc_table .tr-' + _val).addClass('tr-hide'); } }); // tools $('.woosc-settings-tool').each(function() { var _val = $(this).val(); if ($(this).prop('checked')) { settings.push(_val); } }); woosc_set_cookie(cookie_fields, fields.join(','), 7); woosc_set_cookie(cookie_settings, settings.join(','), 7); woosc_load_data('table'); } function woosc_add_product(product_id) { var count; var limit = false; var limit_notice = woosc_vars.limit_notice; var cookie_products = woosc_get_cookie_products(); if (woosc_get_cookie(cookie_products) !== '') { var products = woosc_get_cookie(cookie_products).split(','); if (products.length < woosc_vars.limit) { products = $.grep(products, function(value) { return value != product_id; }); if (woosc_vars.adding === 'append') { products.push(product_id); } else { products.unshift(product_id); } var products_str = products.join(); woosc_set_cookie(cookie_products, products_str, 7); } else { limit = true; limit_notice = limit_notice.replace('{limit}', woosc_vars.limit); } count = products.length; } else { woosc_set_cookie(cookie_products, product_id, 7); count = 1; } woosc_change_count(count); $(document.body).trigger('woosc_added', [count]); if (limit) { $('.woosc-btn[data-id="' + product_id + '"]'). removeClass('woosc-btn-adding woosc-adding'); alert(limit_notice); } else { $('.woosc-btn[data-id="' + product_id + '"]'). removeClass('woosc-btn-adding woosc-adding'). addClass('woosc-btn-added woosc-added'); $('.woosc-btn[data-id="' + product_id + '"]:not(.woosc-btn-has-icon)'). html(woosc_vars.button_text_added); $('.woosc-btn-has-icon[data-id="' + product_id + '"]'). find('.woosc-btn-icon'). removeClass(woosc_vars.button_normal_icon). addClass(woosc_vars.button_added_icon); $('.woosc-btn-has-icon[data-id="' + product_id + '"]'). find('.woosc-btn-text'). html(woosc_vars.button_text_added); } } function woosc_remove_product(product_id) { var count = 0; var cookie_products = woosc_get_cookie_products(); if (product_id !== 'all') { // remove one if (woosc_get_cookie(cookie_products) != '') { var products = woosc_get_cookie(cookie_products).split(','); products = $.grep(products, function(value) { return value != product_id; }); var products_str = products.join(); woosc_set_cookie(cookie_products, products_str, 7); count = products.length; } $('.woosc-btn[data-id="' + product_id + '"]'). removeClass('woosc-btn-added woosc-added'); $('.woosc-btn[data-id="' + product_id + '"]:not(.woosc-btn-has-icon)'). html(woosc_vars.button_text); $('.woosc-btn-has-icon[data-id="' + product_id + '"]'). find('.woosc-btn-icon'). removeClass(woosc_vars.button_added_icon). addClass(woosc_vars.button_normal_icon); $('.woosc-btn-has-icon[data-id="' + product_id + '"]'). find('.woosc-btn-text'). html(woosc_vars.button_text); } else { // remove all if (woosc_get_cookie(cookie_products) != '') { woosc_set_cookie(cookie_products, '', 7); count = 0; } $('.woosc-btn').removeClass('woosc-btn-added woosc-added'); $('.woosc-btn:not(.woosc-btn-has-icon)').html(woosc_vars.button_text); $('.woosc-btn-has-icon'). find('.woosc-btn-icon'). removeClass(woosc_vars.button_added_icon). addClass(woosc_vars.button_normal_icon); $('.woosc-btn-has-icon'). find('.woosc-btn-text'). html(woosc_vars.button_text); } woosc_change_count(count); $(document.body).trigger('woosc_removed', [count]); } function woosc_check_buttons() { var cookie_products = woosc_get_cookie_products(); if (woosc_get_cookie(cookie_products) != '') { var products = woosc_get_cookie(cookie_products).split(','); $('.woosc-btn').removeClass('woosc-btn-added woosc-added'); $('.woosc-btn:not(.woosc-btn-has-icon)').html(woosc_vars.button_text); $('.woosc-btn.woosc-btn-has-icon'). find('.woosc-btn-icon'). removeClass(woosc_vars.button_added_icon). addClass(woosc_vars.button_normal_icon); $('.woosc-btn.woosc-btn-has-icon'). find('.woosc-btn-text'). html(woosc_vars.button_text); products.forEach(function(entry) { $('.woosc-btn-' + entry).addClass('woosc-btn-added woosc-added'); $('.woosc-btn-' + entry + ':not(.woosc-btn-has-icon)'). html(woosc_vars.button_text_added); $('.woosc-btn-has-icon.woosc-btn-' + entry). find('.woosc-btn-icon'). removeClass(woosc_vars.button_normal_icon). addClass(woosc_vars.button_added_icon); $('.woosc-btn-has-icon.woosc-btn-' + entry). find('.woosc-btn-text'). html(woosc_vars.button_text_added); }); } } function woosc_load_data(get_data) { var data = { action: 'woosc_load_data', get_data: get_data, }; if (get_data === 'table') { $('.woosc-table-inner').addClass('woosc-loading'); } if (get_data === 'sidebar') { $('.woosc-sidebar').addClass('woosc-loading'); } $.post(woosc_vars.ajax_url, data, function(response) { if (get_data === 'bar' || get_data === 'table') { // load bar $('.woosc-bar-items'). html(response.bar). addClass('woosc-bar-items-loaded'); $(document.body).trigger('woosc_bar_loaded'); } if (get_data === 'table') { // load table $('.woosc-table-items'). html(response.table). addClass('woosc-table-items-loaded'); if ($(window).width() >= 768) { if ((woosc_vars.freeze_column === 'yes') && (woosc_vars.freeze_row === 'yes')) { // freeze row and column $('#woosc_table').tableHeadFixer({'head': true, left: 1}); } else if (woosc_vars.freeze_column === 'yes') { // freeze column $('#woosc_table').tableHeadFixer({'head': false, left: 1}); } else if (woosc_vars.freeze_row === 'yes') { // freeze row $('#woosc_table').tableHeadFixer({'head': true}); } } else { if (woosc_vars.freeze_row === 'yes') { // freeze row $('#woosc_table').tableHeadFixer({'head': true}); } } if (woosc_vars.scrollbar === 'yes') { $('.woosc-table-items').perfectScrollbar({theme: 'wpc'}); } $('.woosc-table-inner').removeClass('woosc-loading'); woosc_hide_empty(); woosc_hide_similarities(); woosc_highlight_differences(); $(document.body).trigger('woosc_table_loaded'); } if (get_data === 'sidebar') { // load sidebar $('.woosc-sidebar-items'). html(response.sidebar). addClass('woosc-sidebar-items-loaded'); $('.woosc-sidebar').removeClass('woosc-loading'); if (woosc_vars.scrollbar === 'yes') { $('.woosc-sidebar-items').perfectScrollbar({theme: 'wpc'}); } $(document.body).trigger('woosc_sidebar_loaded'); } }); } function woosc_quick_table() { let ww = $(window).width(); if (ww >= 1024) { $('.woosc-quick-table .woosc_table'). tableHeadFixer({'head': false, left: 2}); } if (ww >= 768 && ww < 1024) { $('.woosc-quick-table .woosc_table'). tableHeadFixer({'head': false, left: 1}); } if (ww < 768) { $('.woosc-quick-table .woosc_table'). tableHeadFixer({'head': false, left: 0}); } } function woosc_open_bar() { woosc_close_sidebar(); $('#woosc-area').addClass('woosc-area-open-bar'); $('.woosc-bar').addClass('woosc-bar-open'); $('.woosc-bar-items').sortable({ handle: 'img', update: function(event, ui) { woosc_save_products(); }, }); $(document.body).trigger('woosc_bar_open'); } function woosc_close_bar() { $('#woosc-area').removeClass('woosc-area-open-bar'); $('.woosc-bar').removeClass('woosc-bar-open'); $(document.body).trigger('woosc_bar_close'); } function woosc_open_sidebar() { woosc_close_bar(); woosc_close_table(); $('#woosc-area').addClass('woosc-area-open-sidebar'); $('.woosc-sidebar').addClass('woosc-sidebar-open'); $(document.body).trigger('woosc_sidebar_open'); } function woosc_close_sidebar() { $('#woosc-area').removeClass('woosc-area-open-sidebar'); $('.woosc-sidebar').removeClass('woosc-sidebar-open'); $(document.body).trigger('woosc_sidebar_close'); } function woosc_open_table() { woosc_close_sidebar(); $('#woosc-area').addClass('woosc-area-open-table'); $('.woosc-table').addClass('woosc-table-open'); $('.woosc-bar-btn').addClass('woosc-bar-btn-open'); if (woosc_vars.bar_bubble === 'yes') { $('.woosc-bar').removeClass('woosc-bar-bubble'); } $(document.body).trigger('woosc_table_open'); } function woosc_close_table() { $('#woosc-area').removeClass('woosc-area-open woosc-area-open-table'); $('.woosc-table').removeClass('woosc-table-open'); $('.woosc-bar-btn').removeClass('woosc-bar-btn-open'); if (woosc_vars.bar_bubble === 'yes') { $('.woosc-bar').addClass('woosc-bar-bubble'); } $(document.body).trigger('woosc_table_close'); } function woosc_toggle_table() { if ($('.woosc-table').hasClass('woosc-table-open')) { woosc_close_table(); } else { woosc_open_table(); } } function woosc_open() { $('#woosc-area').addClass('woosc-area-open'); woosc_load_data('table'); woosc_open_bar(); woosc_open_table(); $(document.body).trigger('woosc_open'); } function woosc_close() { $('#woosc-area').removeClass('woosc-area-open'); woosc_close_bar(); woosc_close_table(); $(document.body).trigger('woosc_close'); } function woosc_toggle() { if ($('#woosc-area').hasClass('woosc-area-open')) { woosc_close(); } else { woosc_open(); } $(document.body).trigger('woosc_toggle'); } function woosc_load_color() { var bg_color = $('#woosc-area').attr('data-bg-color'); var btn_color = $('#woosc-area').attr('data-btn-color'); $('.woosc-table').css('background-color', bg_color); $('.woosc-bar').css('background-color', bg_color); $('.woosc-bar-btn').css('background-color', btn_color); $('.woosc-sidebar-btn').css('background-color', btn_color); } function woosc_change_count(count) { if (count === 'first') { var products = woosc_get_products(); if (products != '') { var products_arr = products.split(','); count = products_arr.length; } else { count = 0; } } $('.woosc-menu-item').each(function() { if ($(this).hasClass('menu-item-type-woosc')) { $(this).find('.woosc-menu-item-inner').attr('data-count', count); } else { $(this). addClass('menu-item-type-woosc'). find('a'). wrapInner( ''); } }); $('#woosc-area').attr('data-count', count); $('.woosc-bar').attr('data-count', count); $('.woosc-sidebar-count').html(' (' + count + ')'); $('.woosc-bar-items').removeClass('woosc-bar-items-loaded'); $('.woosc-sidebar-items').removeClass('woosc-sidebar-items-loaded'); $('.woosc-table-items').removeClass('woosc-table-items-loaded'); $(document.body).trigger('woosc_change_count', [count]); } function woosc_hide_empty() { $('.woosc_table > tbody > tr').each(function() { var $tr = $(this); var _td = 0; var _empty = true; $tr.children('td').each(function() { if ((_td > 0) && ($(this).html().length > 0)) { _empty = false; return false; } _td++; }); if (_empty) { $tr.addClass('tr-empty').remove(); } }); } function woosc_highlight_differences() { if ($('#woosc_highlight_differences').prop('checked')) { $('.woosc_table > tbody > tr').each(function() { var $tr = $(this); var _td = 0; var _val = $(this).children('td').eq(1).html(); var _differences = false; $tr.children('td:not(.td-placeholder)').each(function() { if ((_td > 1) && ($(this).html() !== _val)) { _differences = true; return false; } _td++; }); if (_differences) { $tr.addClass('tr-highlight'); } }); } else { $('.woosc_table tr').removeClass('tr-highlight'); } } function woosc_hide_similarities() { if ($('#woosc_hide_similarities').prop('checked')) { $('.woosc_table > tbody > tr').each(function() { var $tr = $(this); var _td = 0; var _val = $(this).children('td').eq(1).html(); var _similarities = true; $tr.children('td:not(.td-placeholder)').each(function() { if ((_td > 1) && ($(this).html() !== _val)) { _similarities = false; return false; } _td++; }); if (_similarities) { $tr.addClass('tr-similar'); } }); } else { $('.woosc_table tr').removeClass('tr-similar'); } } function woosc_copy_to_clipboard(el) { // resolve the element el = (typeof el === 'string') ? document.querySelector(el) : el; // handle iOS as a special case if (navigator.userAgent.match(/ipad|ipod|iphone/i)) { // save current contentEditable/readOnly status var editable = el.contentEditable; var readOnly = el.readOnly; // convert to editable with readonly to stop iOS keyboard opening el.contentEditable = true; el.readOnly = true; // create a selectable range var range = document.createRange(); range.selectNodeContents(el); // select the range var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); el.setSelectionRange(0, 999999); // restore contentEditable/readOnly to original state el.contentEditable = editable; el.readOnly = readOnly; } else { el.select(); } // execute copy command document.execCommand('copy'); // alert alert(woosc_vars.copied_text.replace('%s', el.value)); } function woosc_get_cookie_products() { return woosc_vars.user_id !== '' ? 'woosc_products_' + woosc_vars.user_id : 'woosc_products'; } })(jQuery);