// Meta Box drag and drop jQuery(document).ready(function ($) { var initialize = function (id) { var el = $("#" + id); function update(base) { var value_set = base.find("#values"); var val = ''; base.find('.right-list .list-items span').each(function () { val += ''; }); value_set.html(val); el.find('.right-list .action').show(); el.find('.left-list .action').hide(); /* To hide subsections when element is removed from active list */ var hidden = base.find("input[class='section-order-tracker']"); var val = []; base.find('.right-list .list-items span').each(function () { val.push($(this).data('key')); }) hidden.val(val.join(",")).change(); $('.right-list .action').show(); $('.left-list .action').hide(); } el.find(".left-list .list-items").delegate(".action", "click", function () { var item = $(this).closest('.list-item'); $(this).closest('.section-order').children('.right-list').children('.list-items').append(item); update($(this).closest(".section-order")); }); el.find(".right-list .list-items").delegate(".action", "click", function () { var item = $(this).closest('.list-item'); $(this).val('Add'); $(this).closest('.section-order').children('.left-list').children('.list-items').append(item); $(this).hide(); update($(this).closest(".section-order")); }); el.find(".right-list .list-items").sortable({ update: function () { update($(this).closest(".section-order")); }, connectWith: '#' + id + ' .left-list .list-items', placeholder: 'sortable-placeholder' }); el.find(".left-list .list-items").sortable({ connectWith: '#' + id + ' .right-list .list-items', placeholder: 'sortable-placeholder' }); update(el); } $('.section-order').each(function () { initialize($(this).attr('id')); }); /* ****************** validation of portfolio-lite custom-link starts ***************/ jQuery("#publish").click(function () { return ( validate_portfolio_link_one() && validate_portfolio_link_two() && validate_portfolio_link_three() && validate_portfolio_link_four() ); }); jQuery("#cyberchimps_portfolio_link_url_one").blur(function () { return validate_portfolio_link_one(); }); jQuery("#cyberchimps_portfolio_link_url_two").blur(function () { return validate_portfolio_link_two(); }); jQuery("#cyberchimps_portfolio_link_url_three").blur(function () { return validate_portfolio_link_three(); }); jQuery("#cyberchimps_portfolio_link_url_four").blur(function () { return validate_portfolio_link_four(); }); function validate_portfolio_link_one() { // For portfolio one if (jQuery('#checkbox-cyberchimps_portfolio_link_toggle_one').is(":checked")) { jQuery("tr.cyberchimps_portfolio_link_url_one td").append(""); var reg_url = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; var custom_url = jQuery("#cyberchimps_portfolio_link_url_one").val(); if ((custom_url.search(reg_url)) == -1 || custom_url == "") { jQuery("#url_validation_msg1").html("Please enter a valid URL"); alert("Please enter a valid URL for Portfolio Lite Options") return false; } else { jQuery("#url_validation_msg1").html(""); } } return true; } // For portfolio two function validate_portfolio_link_two() { if (jQuery('#checkbox-cyberchimps_portfolio_link_toggle_two').is(":checked")) { jQuery("tr.cyberchimps_portfolio_link_url_two td").append(""); var reg_url = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; var custom_url = jQuery("#cyberchimps_portfolio_link_url_two").val(); if ((custom_url.search(reg_url)) == -1 || custom_url == "") { jQuery("#url_validation_msg2").html("Please enter a valid URL"); alert("Please enter a valid URL for Portfolio Lite Options") return false; } else { jQuery("#url_validation_msg2").html(""); } } return true; } // For portfolio three function validate_portfolio_link_three() { if (jQuery('#checkbox-cyberchimps_portfolio_link_toggle_three').is(":checked")) { jQuery("tr.cyberchimps_portfolio_link_url_three td").append(""); var reg_url = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; var custom_url = jQuery("#cyberchimps_portfolio_link_url_three").val(); if ((custom_url.search(reg_url)) == -1 || custom_url == "") { jQuery("#url_validation_msg3").html("Please enter a valid URL"); alert("Please enter a valid URL for Portfolio Lite Options") return false; } else { jQuery("#url_validation_msg3").html(""); } } return true; } // For portfolio four function validate_portfolio_link_four() { if (jQuery('#checkbox-cyberchimps_portfolio_link_toggle_four').is(":checked")) { jQuery("tr.cyberchimps_portfolio_link_url_four td").append(""); var reg_url = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; var custom_url = jQuery("#cyberchimps_portfolio_link_url_four").val(); if ((custom_url.search(reg_url)) == -1 || custom_url == "") { jQuery("#url_validation_msg4").html("Please enter a valid URL"); alert("Please enter a valid URL for Portfolio Lite Options") return false; } else { jQuery("#url_validation_msg4").html(""); } } return true; } }); /* ****************** validation of portfolio-lite custom-link ends ***************/ jQuery(document).ready(function ($) { /** * Show or hide element option boxes depending on what is displayed on the right selection * of the drag and drop * */ // Create an array of all the drag and drop options var page_subsection_map = Array; $('#cyberchimps_page_section_order .list-item span').each(function (i) { page_subsection_map[i] = $(this).data('key'); }); // Compare which items are selected and display them and hide all other drag and drop options on change $(".section-order-tracker").change(function () { var array = $(this).val().split(","); $.each(page_subsection_map, function (key, value) { if ($.inArray(value, array) != -1) { // Makes sure the element box is displayed after the page options container $('#' + value + '_options').insertAfter('#cyberchimps_page_options'); $('#' + value + '_options').show(function () { $(this).addClass('closed'); }); } else { $("#" + value + '_options').hide(); } }); }).change(); // image_select $(".image-select").each(function () { $(this).find("img").click(function () { if ($(this).hasClass('selected')) return; $(this).siblings("img").removeClass('selected'); $(this).addClass('selected'); $(this).siblings("input").val($(this).data("key")); }); if ($(this).find("img.selected").length) { $(this).find("input").val($(this).find("img.selected").data("key")); } }); /* Add toggle switch after each checkbox. If checked, then toggle the switch. */ $('.checkbox, .checkbox-toggle').after(function () { if ($(this).is(":checked")) { return ""; } else { return ""; } }); /* When the toggle switch is clicked, check off / de-select the associated checkbox */ $('.toggle').click(function (e) { var checkboxID = $(this).attr("ref"); var checkbox = $('#' + checkboxID); if (checkbox.is(":checked")) { checkbox.removeAttr("checked").change(); } else { checkbox.attr("checked", "checked").change(); } $(this).toggleClass("checked"); e.preventDefault(); }); }); /** * function to allow a toggle button to hide options. * * Give the button a class of .checkbox-toggle. * Give the items you want hidden a class of the toggle button's id suffixed with -toggle * * e.g. a toggle button with the id of #i_am_toggle any field with a class of .i_am_toggle-toggle * will get shown or hidden by that toggle switch * */ (function ($) { var toggle_hide = function (event) { var id = event.data.id; var checked = $('#' + id).is(':checked'); $('.' + id + '-toggle-container').each(function () { if ($('#' + id).is(':checked')) { $('.' + id + '-toggle-container').show(); } else { $('.' + id + '-toggle-container').hide(); } }); }; $('.at-field .checkbox-toggle').each(function () { $(this).on('change', {id: $(this).attr('id')}, toggle_hide); }).change(); })(jQuery); /** * function to allow select/dropdown inputs to hide and show conditional form elements * * Give the select a class of .select-hide * Give the sections you want hidden the class of the key/index of the option suffixed with -select * * e.g. a select input with the options (opt1 => 'Option 1', opt2 => 'Option 2') any field with the class of * opt1-select will get shown when opt1 is selected and hidden when opt2 is selected. */ (function ($) { var select_hide = function (option, selected) { $.each(option, function (index, value) { $('.' + value + '-select-container').hide(); }); $('.' + selected + '-select-container').show(); }; $('.at-field .select-hide').each(function () { $(this).on('change',function () { var option = Array; var selected = ''; $(this).children('option').each(function (i) { if ($(this).is(':selected')) { selected += $(this).val(); } else { option[i] = $(this).val(); } }) select_hide(option, selected); }).change(); }); })(jQuery);