// jQuery for Theme Options page jQuery(document).ready(function($) { // Wrap each panel into a proper class for tabs var wrapped = $(".settings-sections-inner h2,.settings-sections-inner h3").wrap("
"); wrapped.each(function() { $(this).parent().append($(this).parent().nextUntil("div.ui-tabs-panel")); }); // Add id's to tabs and classes for hidden tabs $(".ui-tabs-panel").each(function(index) { var str = $(this).children("h3,h2").text().replace(/\s/g, "_"); $(this).attr("id", str.toLowerCase()); if (index > 0) { $(this).addClass("ui-tabs-hide"); } }); // Initialize the tabs $(".ui-tabs").tabs({ activate: function (event, ui) { var scrollPos = $(window).scrollTop(); window.location.hash = ui.newPanel.selector; $(window).scrollTop(scrollPos); } }); // Submit the form with ajax $('#theme-options-form').ajaxForm({ success: function() { var successMessage = $('
All changes have been saved
').hide().fadeIn(500).delay(1200).fadeOut(500, function() { $(this).remove(); }); $("#wpcontent").append(successMessage); $(".form-submit-shadow, .form-submit-message").click(function() { $(".form-submit-shadow, .form-submit-message").fadeOut(500, function() { $(this).remove(); }); }); }, error: function() { var errorMessage = $('
An error has occured; new settings have not been saved. Please try again.
').hide().fadeIn(500).delay(1200).fadeOut(500, function() { $(this).remove(); }); $("#wpcontent").append(errorMessage); $(".form-submit-shadow, .form-submit-message").click(function() { $(".form-submit-shadow, .form-submit-message").fadeOut(500, function() { $(this).remove(); }); }); } }); // Add placeholders to text and textarea fields $("input[type=text], textarea").each(function() { if ($(this).val() === $(this).attr("placeholder")) { $(this).css("color", "#999"); } }); $("input[type=text], textarea").focus(function() { if ($(this).val() === $(this).attr("placeholder")) { $(this).val(""); $(this).css("color", "#000"); } }).blur(function() { if ($(this).val() === "" || $(this).val() === $(this).attr("placeholder")) { $(this).val($(this).attr("placeholder")); $(this).css("color", "#999"); } }); // Firefox fix for placeholders if ($.browser.mozilla) { $("form").attr("autocomplete", "off"); } // Show content after it's been loaded var $spinner = $(".spinner-loading").hide(300); var $content = $(".wrap h3, .wrap h2, .wrap table, .wrap .submit").show(300); $spinner.$content; // Add Color Picker to all inputs with specific class $(function() { $('.color-field').wpColorPicker(); }); // Upload field var _custom_media = true, _orig_send_attachment = wp.media.editor.send.attachment; $('.upload-button').click(function(e) { var send_attachment_bkp = wp.media.editor.send.attachment; var button = $(this); var id = button.attr('id').replace('_button', ''); _custom_media = true; wp.media.editor.send.attachment = function(props, attachment) { if ( _custom_media ) { $("#"+id).val(attachment.url); } else { return _orig_send_attachment.apply( this, [props, attachment] ); }; } wp.media.editor.open(button); return false; }); // Field logic function revealFields() { $('.parent').each(function() { $parentEl = $(this); var parentValue = $parentEl.find(':selected').attr('value'); var classText = $parentEl.attr('class'); var classes = classText.split(" "); cleanClasses = $.grep(classes, function(value) { return ( value != 'parent' && value != 'hidden' ); }); var activeClass = cleanClasses[parentValue]; if ( activeClass != 'noaction' ) { if ( ! $parentEl.hasClass('hidden') ) { $('.'+activeClass).parents('tr').removeClass('hidden', 3000); } } else { var hideClasses = $.grep(cleanClasses, function(value) { return ( value != 'noaction' ); }); $.each( hideClasses, function( index, value ) { $('.'+value).parents('tr').addClass('hidden', 3000); }); } }); } revealFields(); $('.parent select').change( function() { revealFields(); }); });