wp/wp-content/themes/IN-MOTION-package-u1/option-tree/assets/js/ot-admin.js
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 0 d970ebf37754
permissions -rwxr-xr-x
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * Option Tree UI
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * Dependencies: jQuery, jQuery UI, ColorPicker
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * @author Derek Herman (derek@valendesigns.com)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
;(function($) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
  OT_UI = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    processing: false,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    init: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
      this.init_hide_body();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
      this.init_sortable();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
      this.init_add();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
      this.init_edit();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
      this.init_remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
      this.init_edit_title()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
      this.init_edit_id();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
      this.init_activate_layout();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
      this.init_upload();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
      this.init_upload_remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
      this.init_tabs();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
      this.init_radio_image_select();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
      this.init_select_wrapper();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
      this.fix_upload_parent();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
      this.fix_colorpicker();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
      this.fix_textarea();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
      this.replicate_ajax();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
      this.reset_settings();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    init_hide_body: function(elm,type) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
      var css = '.option-tree-setting-body';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
      if ( type == 'parent' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        $(css).not( elm.parent().parent().children(css) ).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
      } else if ( type == 'child' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        elm.closest('ul').find(css).not( elm.parent().parent().children(css) ).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      } else if ( type == 'child-add' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        elm.children().find(css).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
      } else if ( type == 'toggle' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        elm.parent().parent().children(css).toggle();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
      } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        $(css).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    init_remove_active: function(elm,type) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
      var css = '.option-tree-setting-edit';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
      if ( type == 'parent' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        $(css).not(elm).removeClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
      } else if ( type == 'child' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        elm.closest('ul').find(css).not(elm).removeClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
      } else if ( type == 'child-add' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        elm.children().find(css).removeClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
      } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        $(css).removeClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    init_sortable: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
      $('.option-tree-sortable').each( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
        if ( $(this).children('li').length ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
          var elm = $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
          elm.show();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
          elm.sortable({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            items: 'li:not(.ui-state-disabled)',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            handle: 'div.open',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            placeholder: 'ui-state-highlight',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            start: function (event, ui) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
              ui.placeholder.height(ui.item.height()-2);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            stop: function(evt, ui) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
              setTimeout(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
                  OT_UI.update_ids(elm);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
                },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
                200
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
              )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
          });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    init_add: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
      $('.option-tree-section-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
        OT_UI.add(this,'section');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
      $('.option-tree-setting-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
        OT_UI.add(this,'setting');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
      $('.option-tree-help-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        OT_UI.add(this,'contextual_help');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
      $('.option-tree-choice-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
        OT_UI.add(this,'choice');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
      $('.option-tree-list-item-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        OT_UI.add(this,'list_item');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
      $('.option-tree-list-item-setting-add').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
        if ( $(this).parents('ul').parents('ul').hasClass('ui-sortable') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
          alert(option_tree.setting_limit);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
        OT_UI.add(this,'list_item_setting');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
    init_edit: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
      $('.option-tree-setting-edit').live('click', function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
        e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
        if ( $(this).parents().hasClass('option-tree-setting-body') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
          OT_UI.init_remove_active($(this),'child');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
          OT_UI.init_hide_body($(this),'child');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
          OT_UI.init_remove_active($(this),'parent');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
          OT_UI.init_hide_body($(this), 'parent');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
        $(this).toggleClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
        OT_UI.init_hide_body($(this), 'toggle');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
    init_remove: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
      $('.option-tree-setting-remove').live('click', function(event) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
        event.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        if ( $(this).parents('li').hasClass('ui-state-disabled') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
          alert(option_tree.remove_no);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
        var agree = confirm(option_tree.remove_agree);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
        if (agree) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
          var list = $(this).parents('ul');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
          OT_UI.remove(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
          setTimeout( function() { 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            OT_UI.update_ids(list); 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
          }, 200 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
    init_edit_title: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
      $('.option-tree-setting-title').live('keyup', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        OT_UI.edit_title(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
    init_edit_id: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
      $('.section-id').live('keyup', function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        OT_UI.update_id(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
    init_activate_layout: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
      $('.option-tree-layout-activate').live('click', function() { 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
        var active = $(this).parents('.option-tree-setting').find('.open').text();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
        $('.option-tree-layout-activate').removeClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
        $(this).toggleClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
        $('.active-layout-input').attr({'value':active});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
      $('#option-tree-options-layouts-form select').live('change', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
        var agree = confirm(option_tree.activate_layout_agree);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
        if (agree) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
          $('#option-tree-options-layouts-form').submit();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
          var active = $('#the_current_layout').attr('value');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
          $('#option-tree-options-layouts-form select option[value="' + active + '"]').attr({'selected':'selected'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
          $('#option-tree-options-layouts-form select').prev('span').replaceWith('<span>' + active + '</span>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
    add: function(elm,type) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
      var self = this, 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
          list = '', 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
          list_class = '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
          name = '', 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
          post_id = 0, 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
          get_option = '', 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
          settings = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
      if ( type == 'contextual_help' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
        list = $(elm).parent().find('ul:last');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
        list_class = 'list-contextual-help';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
      } else if ( type == 'choice' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
        list = $(elm).parent().children('ul');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        list_class = 'list-choice';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
      } else if ( type == 'list_item' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
        list = $(elm).parent().children('ul');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        list_class = 'list-sub-setting';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
      } else if ( type == 'list_item_setting' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
        list = $(elm).parent().children('ul');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        list_class = 'list-sub-setting';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
      } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
        list = $(elm).parent().find('ul:first');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
        list_class = ( type == 'section' ) ? 'list-section' : 'list-setting';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
      name = list.data('name');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
      post_id = list.data('id');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
      get_option = list.data('getOption');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
      settings = $('#'+name+'_settings_array').val();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
      if ( this.processing === false ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
        this.processing = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
        var count = parseInt(list.children('li').length);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
        if ( type == 'list_item' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
          list.find('li input.option-tree-setting-title').each(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
            var settingidnumber = $(this).attr('name').replace(/[^0-9]/g, '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
            settingidnumber = parseInt(settingidnumber);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
            settingidnumber++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
            if ((settingidnumber) > count) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
              count = settingidnumber;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
          });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
        $.ajax({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
          url: option_tree.ajax,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
          type: 'post',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
          data: {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
            action: 'add_' + type,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
            count: count,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
            name: name,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
            post_id: post_id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
            get_option: get_option,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
            settings: settings,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
            type: type
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
          },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
          complete: function( data ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
            if ( type == 'choice' || type == 'list_item_setting' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
              OT_UI.init_remove_active(list,'child-add');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
              OT_UI.init_hide_body(list,'child-add');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
            } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
              OT_UI.init_remove_active();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
              OT_UI.init_hide_body();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
            list.append('<li class="ui-state-default ' + list_class + '">' + data.responseText + '</li>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
            list.children().last().find('.option-tree-setting-edit').toggleClass('active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
            list.children().last().find('.option-tree-setting-body').toggle();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
            list.children().last().find('.option-tree-setting-title').focus();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
            if ( type != 'contextual_help' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
              OT_UI.update_ids(list);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
            setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
              OT_UI.init_sortable();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
              OT_UI.init_select_wrapper();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
            }, 500);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
            self.processing = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
    remove: function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
      $(e).parent().parent().parent('li').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
    edit_title: function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
      if ( this.timer ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
        clearTimeout(e.timer);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
      this.timer = setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
        $(e).parent().parent().parent().parent().parent().children('.open').text(e.value);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
      }, 100);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
      return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
    update_id: function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
      if ( this.timer ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
        clearTimeout(e.timer);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
      this.timer = setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
        OT_UI.update_ids($(e).parents('ul'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
      }, 100);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
      return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
    update_ids: function(list) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
      var last_section, section, list_items = list.children('li');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
      list_items.each(function(index) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
        if ( $(this).hasClass('list-section') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
          section = $(this).find('.section-id').val().trim().toLowerCase().replace(/[^a-z0-9]/gi,'_');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
          if (!section) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
            section = $(this).find('.section-title').val().trim().toLowerCase().replace(/[^a-z0-9]/gi,'_');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
          if (!section) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
            section = last_section;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
        if ($(this).hasClass('list-setting') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
          $(this).find('.hidden-section').attr({'value':section});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
        last_section = section;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
    init_upload: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
      $('.ot_upload_media').live('click', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
        var field_id    = $(this).parent('.option-tree-ui-upload-parent').find('input').attr('id'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
            post_id     = $(this).attr('rel'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
            backup      = window.send_to_editor,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
            btnContent  = '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
            intval      = window.setInterval(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
                            if ( $('#TB_iframeContent').attr('src').indexOf( "&field_id=" ) !== -1 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
                              $('#TB_iframeContent').contents().find('#tab-type_url').hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
                            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
                            $('#TB_iframeContent').contents().find('.savesend .button').val(option_tree.upload_text); 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
                          }, 50);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
        tb_show('', 'media-upload.php?post_id='+post_id+'&field_id='+field_id+'&type=image&TB_iframe=1');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
        window.send_to_editor = function(html) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
          var href = $(html).find('img').attr('src');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
          if ( typeof href == 'undefined') {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
            href = $(html).attr('href');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
          if (OT_UI.url_exists(href)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
            var image = /\.(?:jpe?g|png|gif|ico)$/i;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
            if (href.match(image)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
              btnContent += '<div class="option-tree-ui-image-wrap"><img src="'+href+'" alt="" /></div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
            btnContent += '<a href="javascript:(void);" class="option-tree-ui-remove-media option-tree-ui-button" title="'+option_tree.remove_media_text+'"><span class="icon trash-can">'+option_tree.remove_media_text+'</span></a>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
          $('#'+field_id).val(href);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
          $('#'+field_id+'_media').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
          $('#'+field_id).parent().parent('div').append('<div class="option-tree-ui-media-wrap" id="'+field_id+'_media" />');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
          $('#'+field_id+'_media').append(btnContent).slideDown();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
          OT_UI.fix_upload_parent();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
          tb_remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
          window.clearInterval(intval);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
          window.send_to_editor = backup;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
  	    };
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
    init_upload_remove: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
      $('.option-tree-ui-remove-media').live('click', function(event) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
        event.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
        var agree = confirm(option_tree.remove_agree);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
        if (agree) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
          OT_UI.remove_image(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
    init_upload_fix: function(elm) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
      var id  = $(elm).attr('id'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
          val = $(elm).val(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
          img = $(elm).parent().next('option-tree-ui-media-wrap').find('img'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
          src = img.attr('src'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
          btnContent = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
      if ( val != src ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
        img.attr('src', val);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
      if ( val !== '' && ( typeof src == 'undefined' || src == false ) && OT_UI.url_exists(val) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
        var image = /\.(?:jpe?g|png|gif|ico)$/i;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
        if (val.match(image)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
          btnContent += '<div class="option-tree-ui-image-wrap"><img src="'+val+'" alt="" /></div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
        btnContent += '<a href="javascript:(void);" class="option-tree-ui-remove-media option-tree-ui-button" title="'+option_tree.remove_media_text+'"><span class="icon trash-can">'+option_tree.remove_media_text+'</span></a>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
        $('#'+id).val(val);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
        $('#'+id+'_media').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
        $('#'+id).parent().parent('div').append('<div class="option-tree-ui-media-wrap" id="'+id+'_media" />');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
        $('#'+id+'_media').append(btnContent).slideDown();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
      } else if ( val == '' || ! OT_UI.url_exists(val) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
        $(elm).parent().next('.option-tree-ui-media-wrap').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
    init_tabs: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
      $(".wrap.settings-wrap .ui-tabs").tabs({ 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
        fx: { 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
          opacity: "toggle", 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
          duration: "fast" 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
      }).bind("tabsselect", function(event, ui) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
        $("input[name=\'_wp_http_referer\']").val(ui.tab);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
    init_radio_image_select: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
      $('.option-tree-ui-radio-image').live('click', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
        $(this).closest('.type-radio-image').find('.option-tree-ui-radio-image').removeClass('option-tree-ui-radio-image-selected');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
        $(this).toggleClass('option-tree-ui-radio-image-selected');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
        $(this).parent().find('.option-tree-ui-radio').attr('checked', true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
    init_select_wrapper: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
      $('.option-tree-ui-select').each(function () {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
        if ( ! $(this).parent().hasClass('select-wrapper') ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
          $(this).wrap('<div class="select-wrapper" />');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
          $(this).parent('.select-wrapper').prepend('<span>' + $(this).find('option:selected').text() + '</span>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
      $('.option-tree-ui-select').live('change', function () {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
        $(this).prev('span').replaceWith('<span>' + $(this).find('option:selected').text() + '</span>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
      $('.option-tree-ui-select').bind($.browser.msie ? 'click' : 'change', function(event) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
        $(this).prev('span').replaceWith('<span>' + $(this).find('option:selected').text() + '</span>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
    bind_colorpicker: function(field_id) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
      $('#'+field_id).ColorPicker({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
        onSubmit: function(hsb, hex, rgb) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
          $('#'+field_id).val('#'+hex);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
        onBeforeShow: function () {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
          $(this).ColorPickerSetColor(this.value);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
        },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
        onChange: function (hsb, hex, rgb) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
          var bc = $.inArray(hex, [ 'FFFFFF', 'FFF', 'ffffff', 'fff' ]) != -1 ? 'ccc' : hex;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
          $('#cp_'+field_id).css({'backgroundColor':'#'+hex,'borderColor':'#'+bc});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
          $('#cp_'+field_id).prev('input').attr('value', '#'+hex);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
      })	
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
      .bind('keyup', function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
        $(this).ColorPickerSetColor(this.value);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
    fix_upload_parent: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
      $('.option-tree-ui-upload-input').live('focus blur', function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
        $(this).parent('.option-tree-ui-upload-parent').toggleClass('focus');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
        OT_UI.init_upload_fix(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
    remove_image: function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
      $(e).parent().parent().find('.option-tree-ui-upload-input').attr('value','');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
      $(e).parent('.option-tree-ui-media-wrap').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
    fix_colorpicker: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
      $('.cp_input').live('blur', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
        $('.cp_input').each( function(index, el) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
          var val = $(el).val();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
          var reg = /^[A-Fa-f0-9]{6}$/;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
          if( reg.test(val) && val != '' ) { 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
            $(el).attr('value', '#'+val)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
          } else if ( val == '' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
            $(this).next('.cp_box').css({'background':'#f1f1f1','border-color':'#ccc'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
    fix_textarea: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
      $('.wp-editor-area').focus( function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
        $(this).parent('div').css({borderColor:'#bbb'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
      }).blur( function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
        $(this).parent('div').css({borderColor:'#ccc'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
    replicate_ajax: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
      if (location.href.indexOf("#") != -1) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
        var url = $("input[name=\'_wp_http_referer\']").val(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
            hash = location.href.substr(location.href.indexOf("#"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
        $("input[name=\'_wp_http_referer\']").val( url + hash );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
        this.scroll_to_top();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
      setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
        $(".wrap.settings-wrap .fade").fadeOut("fast");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
      }, 3000 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
    reset_settings: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
      $(".reset-settings").live("click", function(event){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
        var agree = confirm(option_tree.reset_agree);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
        if (agree) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
          return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
        event.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
    url_exists: function(url) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
      var http = new XMLHttpRequest();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
      http.open('HEAD', url, false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
      http.send();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
      return http.status!=404;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
    },
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
    scroll_to_top: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
      setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
        $(this).scrollTop(0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
      }, 50 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
  };
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
  $(document).ready( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
    OT_UI.init();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
  });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
})(jQuery);