Formidable Forms – Form Builder for WordPress - Version 1.03.03

Version Description

  • Added options to allow users other than admins to access Formidable
  • Added uninstall button
  • Fixed multiple submissions for pages with multiple forms
  • PRO: Added [frm-graph] shortcode for front-end graphical reports! Default values: [frm-graph id=x include_js=1 colors="#EF8C08,#21759B,#1C9E05" bg_color="#FFFFFF" height=400 width=400]. Show multiple fields with [frm-graph id="x,y,z"]
  • PRO: Added "value" parameter to the frm-stats shortcode for counting number of entries with specified value [frm-stats id=8 value="Hello" type=count]
  • PRO: Added a field drop-down for searching specific fields on the entries page
  • PRO: Added option to allow users to edit any entry instead of only their own and other user-role options
  • PRO: Added calendar format option on the Formidable Settings page
  • PRO: Changed "entry_id" in the "display-frm-data" to accept multiple entry IDs. ex: [display-frm-data id=x entry_id="34,35,36"]
  • PRO: Added "equals" option to if statements. ex: [if 283 equals=hello]show this if the field with id 283 equals hello[/if 283]
Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 1.03.03
Comparing to
See all releases

Code changes from version 1.02.01 to 1.03.03

Files changed (60) hide show
  1. classes/controllers/FrmAppController.php +75 -137
  2. classes/controllers/FrmEntriesController.php +24 -19
  3. classes/controllers/FrmFieldsController.php +42 -16
  4. classes/controllers/FrmFormsController.php +58 -34
  5. classes/controllers/FrmSettingsController.php +11 -16
  6. classes/controllers/FrmStatisticsController.php +2 -2
  7. classes/helpers/FrmAppHelper.php +90 -19
  8. classes/helpers/FrmEntriesHelper.php +15 -10
  9. classes/helpers/FrmFieldsHelper.php +22 -15
  10. classes/helpers/FrmFormsHelper.php +43 -14
  11. classes/models/FrmDb.php +202 -0
  12. classes/models/FrmEntry.php +39 -49
  13. classes/models/FrmEntryMeta.php +36 -39
  14. classes/models/FrmField.php +20 -21
  15. classes/models/FrmForm.php +30 -29
  16. classes/models/FrmNotification.php +19 -38
  17. classes/models/FrmSettings.php +63 -4
  18. classes/models/FrmUpdate.php +24 -9
  19. classes/views/frm-entries/direct.php +1 -7
  20. classes/views/frm-entries/form.php +6 -4
  21. classes/views/frm-entries/frm-entry.php +11 -3
  22. classes/views/frm-entries/list.php +3 -2
  23. classes/views/frm-entries/new.php +2 -5
  24. classes/views/frm-fields/input.php +7 -7
  25. classes/views/frm-fields/radio.php +1 -1
  26. classes/views/frm-fields/single-option.php +2 -2
  27. classes/views/frm-forms/add_field.php +55 -47
  28. classes/views/frm-forms/add_field_links.php +21 -21
  29. classes/views/frm-forms/default-templates.php +16 -15
  30. classes/views/frm-forms/edit.php +2 -2
  31. classes/views/frm-forms/footer.php +34 -56
  32. classes/views/frm-forms/form.php +77 -39
  33. classes/views/frm-forms/list.php +66 -43
  34. classes/views/frm-forms/new-field-js.php +1 -1
  35. classes/views/frm-forms/new-selection.php +1 -1
  36. classes/views/frm-forms/new.php +2 -2
  37. classes/views/frm-settings/form.php +58 -10
  38. classes/views/frm-statistics/list.php +1 -1
  39. classes/views/shared/item-table-nav.php +4 -4
  40. classes/views/shared/nav.php +14 -4
  41. classes/views/shared/pagination.php +12 -6
  42. css/frm_admin.css +122 -172
  43. formidable.php +31 -6
  44. images/add.png +0 -0
  45. images/black_arrow.png +0 -0
  46. images/black_arrow_big.png +0 -0
  47. images/readonly.png +0 -0
  48. images/required.png +0 -0
  49. images/tooltip.png +0 -0
  50. js/formidable.js +163 -25
  51. js/jquery/jquery-1.3.2.min.js +0 -19
  52. js/jquery/jquery-ui-1.7.2.min.js +0 -10
  53. js/jquery/jquery-ui-datepicker.js +0 -12
  54. js/jquery/jquery-ui-themepicker.js +1 -4
  55. js/jquery/jquery.editinplace.js +10 -9
  56. js/jquery/jquery.editinplace.packed.js +7 -7
  57. js/jquery/jquery.elastic.js +1 -0
  58. js/jquery/jquery.tools.min.js +20 -0
  59. readme.txt +84 -24
  60. screenshot-1.png +0 -0
classes/controllers/FrmAppController.php CHANGED
@@ -2,33 +2,60 @@
2
 
3
  class FrmAppController{
4
  function FrmAppController(){
5
- add_action('admin_menu', array( $this, 'menu' ));
6
- add_filter( 'plugin_action_links_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( $this, 'settings_link'), 10, 2 );
7
- add_action('after_plugin_row_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( $this,'frmpro_action_needed'));
8
- add_action('admin_notices', array( $this,'frmpro_get_started_headline'));
9
- add_filter('the_content', array( $this, 'page_route' ), 1);
10
- add_action('init', array($this, 'front_head'));
11
- add_action('admin_init', array( $this, 'admin_js'));
12
- register_activation_hook(FRM_PATH."/formidable.php", array( $this, 'install' ));
 
 
13
 
14
  // Used to process standalone requests
15
- add_action('init', array($this,'parse_standalone_request'));
16
 
17
  //Shortcodes
18
- add_shortcode('formidable', array($this,'get_form_shortcode'));
19
- add_filter( 'widget_text', array($this,'widget_text_filter'), 9 );
20
  }
21
 
22
  function menu(){
23
- global $frm_forms_controller;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
- add_menu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE, 8, FRM_PLUGIN_NAME, array($frm_forms_controller,'route'), FRM_URL . '/images/icon_16.png');
 
 
26
  }
27
 
28
  // Adds a settings link to the plugins page
29
  function settings_link($links, $file){
30
  $settings = '<a href="'.admin_url('admin.php?page='.FRM_PLUGIN_NAME).'">' . __('Settings', FRM_PLUGIN_NAME) . '</a>';
31
  array_unshift($links, $settings);
 
32
  return $links;
33
  }
34
 
@@ -65,140 +92,51 @@ class FrmAppController{
65
  }
66
  }
67
 
68
- function head(){
69
- $css_file = FRM_URL. '/css/frm_admin.css';
70
- $js_file = FRM_URL . '/js/formidable.js';
71
- require(FRM_VIEWS_PATH . '/shared/head.php');
72
- }
73
-
74
  function admin_js(){
75
- wp_enqueue_script('jQuery');
76
- wp_enqueue_script('jQuery-ui', FRM_URL.'/js/jquery/jquery-ui-1.7.2.min.js', '', '1.7.2');
77
- add_thickbox();
 
 
 
 
 
 
 
 
 
 
78
  }
79
 
80
  function front_head(){
 
 
81
  if (IS_WPMU){
82
- $db_version = 1.01; // this is the version of the database we're moving to
83
  $old_db_version = get_option('frm_db_version');
84
  if ($db_version != $old_db_version)
85
  $this->install();
86
  }
87
- //if (!is_admin()){
88
- $css = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
89
- wp_enqueue_style('frm-forms', $css);
90
- //}
 
91
  }
92
 
93
  function install(){
94
- global $wpdb, $frm_form, $frm_field, $frm_app_helper;
95
- $db_version = 1.01; // this is the version of the database we're moving to
96
- $old_db_version = get_option('frm_db_version');
97
-
98
- if ($db_version != $old_db_version){
99
- $fields_table = $wpdb->prefix . "frm_fields";
100
- $forms_table = $wpdb->prefix . "frm_forms";
101
- $items_table = $wpdb->prefix . "frm_items";
102
- $item_metas_table = $wpdb->prefix . "frm_item_metas";
103
-
104
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
105
-
106
- $charset_collate = '';
107
- if( $wpdb->has_cap( 'collation' ) ){
108
- if( !empty($wpdb->charset) )
109
- $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
110
- if( !empty($wpdb->collate) )
111
- $charset_collate .= " COLLATE $wpdb->collate";
112
- }
113
-
114
- /* Create/Upgrade Fields Table */
115
- $sql = "CREATE TABLE {$fields_table} (
116
- id int(11) NOT NULL auto_increment,
117
- field_key varchar(255) default NULL,
118
- name varchar(255) default NULL,
119
- description text default NULL,
120
- type text default NULL,
121
- default_value longtext default NULL,
122
- options longtext default NULL,
123
- field_order int(11) default 0,
124
- required int(1) default NULL,
125
- field_options longtext default NULL,
126
- form_id int(11) default NULL,
127
- created_at datetime NOT NULL,
128
- PRIMARY KEY (id),
129
- KEY form_id (form_id)
130
- ) {$charset_collate};";
131
-
132
- dbDelta($sql);
133
-
134
- /* Create/Upgrade Forms Table */
135
- $sql = "CREATE TABLE {$forms_table} (
136
- id int(11) NOT NULL auto_increment,
137
- form_key varchar(255) default NULL,
138
- name varchar(255) default NULL,
139
- description text default NULL,
140
- logged_in boolean default NULL,
141
- editable boolean default NULL,
142
- is_template boolean default 0,
143
- default_template boolean default 0,
144
- status varchar(255) default NULL,
145
- prli_link_id int(11) default NULL,
146
- options longtext default NULL,
147
- created_at datetime NOT NULL,
148
- PRIMARY KEY (id)
149
- ) {$charset_collate};";
150
-
151
- dbDelta($sql);
152
-
153
- /* Create/Upgrade Items Table */
154
- $sql = "CREATE TABLE {$items_table} (
155
- id int(11) NOT NULL auto_increment,
156
- item_key varchar(255) default NULL,
157
- name varchar(255) default NULL,
158
- description text default NULL,
159
- form_id int(11) default NULL,
160
- created_at datetime NOT NULL,
161
- PRIMARY KEY (id),
162
- KEY form_id (form_id)
163
- ) {$charset_collate};";
164
-
165
- dbDelta($sql);
166
-
167
- /* Create/Upgrade Meta Table */
168
- $sql = "CREATE TABLE {$item_metas_table} (
169
- id int(11) NOT NULL auto_increment,
170
- meta_key varchar(255) default NULL,
171
- meta_value longtext default NULL,
172
- field_id int(11) NOT NULL,
173
- item_id int(11) NOT NULL,
174
- created_at datetime NOT NULL,
175
- PRIMARY KEY (id),
176
- KEY field_id (field_id),
177
- KEY item_id (item_id)
178
- ) {$charset_collate};";
179
-
180
- dbDelta($sql);
181
-
182
- /**** ADD DEFAULT TEMPLATES ****/
183
- $templates = glob(FRM_TEMPLATES_PATH."/*.php");
184
-
185
- for($i = count($templates) - 1; $i >= 0; $i--){
186
- $filename = preg_replace("#".FRM_TEMPLATES_PATH."/#","",$templates[$i]);
187
- $filename = str_replace('.php','', $filename);
188
- $form = $frm_form->getAll("form_key='{$filename}' and is_template='1' and default_template='1'", '', ' LIMIT 1');
189
- $values = FrmFormsHelper::setup_new_vars();
190
- $values['form_key'] = $filename;
191
- $values['is_template'] = $values['default_template'] = 1;
192
- require_once($templates[$i]);
193
- }
194
-
195
- /***** SAVE DB VERSION *****/
196
- update_option('frm_db_version',$db_version);
197
- }
198
-
199
- do_action('frm_after_install');
200
  }
201
 
 
 
 
 
 
 
 
 
202
 
203
  // Routes for wordpress pages -- we're just replacing content here folks.
204
  function page_route($content){
@@ -229,10 +167,9 @@ class FrmAppController{
229
  function standalone_route($controller, $action=''){
230
  global $frm_forms_controller;
231
 
232
- if($controller=='forms'){
233
- //if($action=='preview')
234
  $frm_forms_controller->preview($this->get_param('form'));
235
- }else
236
  do_action('frm_standalone_route', $controller, $action);
237
  }
238
 
@@ -244,7 +181,8 @@ class FrmAppController{
244
 
245
  function get_form_shortcode($atts){
246
  global $frm_entries_controller;
247
- extract(shortcode_atts(array('id' => '', 'key' => '', 'title' => false, 'description' => false), $atts));
 
248
  return $frm_entries_controller->show_form($id, $key, $title, $description);
249
  }
250
 
2
 
3
  class FrmAppController{
4
  function FrmAppController(){
5
+ add_action('admin_menu', array( &$this, 'menu' ), 1);
6
+ add_filter('frm_nav_array', array( &$this, 'frm_nav'), 1);
7
+ add_filter('plugin_action_links_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( &$this, 'settings_link'), 10, 2 );
8
+ add_action('after_plugin_row_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( &$this,'frmpro_action_needed'));
9
+ add_action('admin_notices', array( &$this,'frmpro_get_started_headline'));
10
+ add_filter('the_content', array( &$this, 'page_route' ), 1);
11
+ add_action('init', array(&$this, 'front_head'));
12
+ add_action('admin_init', array( &$this, 'admin_js'));
13
+ register_activation_hook(FRM_PATH."/formidable.php", array( &$this, 'install' ));
14
+ add_action('wp_ajax_frm_uninstall', array(&$this, 'uninstall') );
15
 
16
  // Used to process standalone requests
17
+ add_action('init', array(&$this,'parse_standalone_request'));
18
 
19
  //Shortcodes
20
+ add_shortcode('formidable', array(&$this,'get_form_shortcode'));
21
+ add_filter( 'widget_text', array(&$this,'widget_text_filter'), 9 );
22
  }
23
 
24
  function menu(){
25
+ if(current_user_can('administrator') and !current_user_can('frm_view_forms')){
26
+ global $wp_roles;
27
+ $frm_roles = FrmAppHelper::frm_capabilities();
28
+ foreach($frm_roles as $frm_role => $frm_role_description)
29
+ $wp_roles->add_cap( 'administrator', $frm_role );
30
+ }
31
+ global $frmpro_is_installed;
32
+ if(current_user_can('frm_view_forms')){
33
+ global $frm_forms_controller;
34
+ add_menu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE, 'frm_view_forms', FRM_PLUGIN_NAME, array($frm_forms_controller,'route'), FRM_URL . '/images/icon_16.png');
35
+ }elseif(current_user_can('frm_view_entries') and $frmpro_is_installed){
36
+ global $frmpro_entries_controller;
37
+ add_menu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE, 'frm_view_entries', FRM_PLUGIN_NAME, array($frmpro_entries_controller,'route'), FRM_URL . '/images/icon_16.png');
38
+ }
39
+ }
40
+
41
+ function frm_nav(){
42
+ $nav = array();
43
+ if(current_user_can('frm_view_forms'))
44
+ $nav[FRM_PLUGIN_NAME] = __('Forms', FRM_PLUGIN_NAME);
45
+
46
+ if(current_user_can('frm_edit_forms'))
47
+ $nav[FRM_PLUGIN_NAME . '-new'] = __('Create a Form', FRM_PLUGIN_NAME);
48
 
49
+ if(current_user_can('frm_view_forms'))
50
+ $nav[FRM_PLUGIN_NAME . '-templates'] = __('Templates', FRM_PLUGIN_NAME);
51
+ return $nav;
52
  }
53
 
54
  // Adds a settings link to the plugins page
55
  function settings_link($links, $file){
56
  $settings = '<a href="'.admin_url('admin.php?page='.FRM_PLUGIN_NAME).'">' . __('Settings', FRM_PLUGIN_NAME) . '</a>';
57
  array_unshift($links, $settings);
58
+
59
  return $links;
60
  }
61
 
92
  }
93
  }
94
 
 
 
 
 
 
 
95
  function admin_js(){
96
+ global $frm_version;
97
+ wp_enqueue_script('jquery');
98
+ wp_enqueue_script('jquery-ui-core');
99
+ if(!(isset($_GET) and isset($_GET['page'])) or (isset($_GET['page']) and preg_match('/formidable*/', $_GET['page'])))
100
+ wp_enqueue_script('jquery-tools', FRM_URL.'/js/jquery/jquery.tools.min.js', array('jquery'), '1.1.2');
101
+ if(isset($_GET) and isset($_GET['page']) and preg_match('/formidable*/', $_GET['page'])){
102
+ wp_enqueue_script('jquery-ui-sortable');
103
+ wp_enqueue_script('jquery-ui-draggable');
104
+ wp_enqueue_script('formidable', FRM_URL . '/js/formidable.js', array('jquery'), $frm_version);
105
+ wp_enqueue_style('formidable-admin', FRM_URL. '/css/frm_admin.css', $frm_version);
106
+ wp_enqueue_script('jquery-elastic', FRM_URL.'/js/jquery/jquery.elastic.js', array('jquery'));
107
+ add_thickbox();
108
+ }
109
  }
110
 
111
  function front_head(){
112
+ global $frm_settings, $frm_version;
113
+
114
  if (IS_WPMU){
115
+ $db_version = 1.03; // this is the version of the database we're moving to
116
  $old_db_version = get_option('frm_db_version');
117
  if ($db_version != $old_db_version)
118
  $this->install();
119
  }
120
+
121
+ if(!is_admin() and !$frm_settings->custom_stylesheet){
122
+ $css = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
123
+ wp_enqueue_style('frm-forms', $css, array(), $frm_version);
124
+ }
125
  }
126
 
127
  function install(){
128
+ global $frmdb;
129
+ $frmdb->upgrade();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  }
131
 
132
+ function uninstall(){
133
+ if(current_user_can('administrator')){
134
+ global $frmdb;
135
+ $frmdb->uninstall();
136
+ wp_die(__('Formidable was successfully uninstalled.', 'formidable'));
137
+ }else
138
+ wp_die(__('You don\'t have permission to do that!', 'formidable'));
139
+ }
140
 
141
  // Routes for wordpress pages -- we're just replacing content here folks.
142
  function page_route($content){
167
  function standalone_route($controller, $action=''){
168
  global $frm_forms_controller;
169
 
170
+ if($controller=='forms' and $action != 'export' and $action != 'import')
 
171
  $frm_forms_controller->preview($this->get_param('form'));
172
+ else
173
  do_action('frm_standalone_route', $controller, $action);
174
  }
175
 
181
 
182
  function get_form_shortcode($atts){
183
  global $frm_entries_controller;
184
+ extract(shortcode_atts(array('id' => '', 'key' => '', 'title' => false, 'description' => false, 'readonly' => false, 'entry_id' => false, 'fields' => array()), $atts));
185
+ do_action('formidable_shortcode_atts', compact('id', 'key', 'title', 'description', 'readonly', 'entry_id', 'fields'));
186
  return $frm_entries_controller->show_form($id, $key, $title, $description);
187
  }
188
 
classes/controllers/FrmEntriesController.php CHANGED
@@ -4,22 +4,17 @@ class FrmEntriesController{
4
  var $views;
5
 
6
  function FrmEntriesController(){
7
- add_action('admin_menu', array( $this, 'menu' ), 20);
8
  }
9
 
10
  function menu(){
11
  global $frmpro_is_installed;
12
  if(!$frmpro_is_installed){
13
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' |'. __('Pro Entries', FRM_PLUGIN_NAME), __('Pro Entries', FRM_PLUGIN_NAME), 8, FRM_PLUGIN_NAME.'-entries',array($this,'list_entries'));
14
- add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-entries', array($this,'head'));
15
  }
16
  }
17
 
18
- function head(){
19
- $css_file = FRM_URL. '/css/frm_admin.css';
20
- include(FRM_VIEWS_PATH . '/shared/head.php');
21
- }
22
-
23
  function list_entries(){
24
  require_once(FRM_VIEWS_PATH.'/frm-entries/list.php');
25
  }
@@ -28,11 +23,21 @@ class FrmEntriesController{
28
  global $frm_form, $user_ID;
29
  if ($id) $form = $frm_form->getOne($id);
30
  else if ($key) $form = $frm_form->getOne($key);
 
 
31
  if (!$form or $form->is_template or $form->status == 'draft')
32
  return __('Please select a valid form', FRM_PLUGIN_NAME);
33
- else if ($form->logged_in and !$user_ID)
34
- return __('You must log in', FRM_PLUGIN_NAME);
35
- else
 
 
 
 
 
 
 
 
36
  return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
37
  }
38
 
@@ -48,21 +53,21 @@ class FrmEntriesController{
48
  }
49
 
50
  function get_params($form=null){
51
- global $frm_app_controller, $frm_form;
52
 
53
  if(!$form)
54
  $form = $frm_form->getAll('',' ORDER BY name',' LIMIT 1');
55
 
56
- $action = apply_filters('frm_show_new_entry_page','new',$form);
57
  $default_values = array('id' => '', 'form_name' => '', 'paged' => 1, 'form' => $form->id, 'form_id' => $form->id, 'field_id' => '', 'search' => '', 'sort' => '', 'sdir' => '', 'action' => $action);
58
 
59
- $posted_form_id = $frm_app_controller->get_param('form_id');
60
- if ($posted_form_id == '')
61
- $posted_form_id = $frm_app_controller->get_param('form');
62
-
63
- if ($form->id == $posted_form_id){
64
  foreach ($default_values as $var => $default)
65
- $values[$var] = $frm_app_controller->get_param($var, $default);
66
  }else{
67
  foreach ($default_values as $var => $default)
68
  $values[$var] = $default;
4
  var $views;
5
 
6
  function FrmEntriesController(){
7
+ add_action('admin_menu', array( &$this, 'menu' ), 20);
8
  }
9
 
10
  function menu(){
11
  global $frmpro_is_installed;
12
  if(!$frmpro_is_installed){
13
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' |'. __('Pro Entries', FRM_PLUGIN_NAME), __('Pro Entries', FRM_PLUGIN_NAME), 'administrator', FRM_PLUGIN_NAME.'-entries',array($this,'list_entries'));
14
+ //add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-entries', array($this,'head'));
15
  }
16
  }
17
 
 
 
 
 
 
18
  function list_entries(){
19
  require_once(FRM_VIEWS_PATH.'/frm-entries/list.php');
20
  }
23
  global $frm_form, $user_ID;
24
  if ($id) $form = $frm_form->getOne($id);
25
  else if ($key) $form = $frm_form->getOne($key);
26
+
27
+ $form_options = stripslashes_deep(maybe_unserialize($form->options));
28
  if (!$form or $form->is_template or $form->status == 'draft')
29
  return __('Please select a valid form', FRM_PLUGIN_NAME);
30
+ else if ($form->logged_in and !$user_ID){
31
+ global $frm_settings;
32
+ return $frm_settings->login_msg;
33
+ }else if($form->logged_in and $user_ID and isset($form_options['logged_in_role']) and $form_options['logged_in_role'] != ''){
34
+ if(FrmAppHelper::user_has_permission($form_options['logged_in_role']))
35
+ return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
36
+ else{
37
+ global $frm_settings;
38
+ return $frm_settings->login_msg;
39
+ }
40
+ }else
41
  return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
42
  }
43
 
53
  }
54
 
55
  function get_params($form=null){
56
+ global $frm_form;
57
 
58
  if(!$form)
59
  $form = $frm_form->getAll('',' ORDER BY name',' LIMIT 1');
60
 
61
+ $action = apply_filters('frm_show_new_entry_page', FrmAppHelper::get_param('action', 'new'), $form);
62
  $default_values = array('id' => '', 'form_name' => '', 'paged' => 1, 'form' => $form->id, 'form_id' => $form->id, 'field_id' => '', 'search' => '', 'sort' => '', 'sdir' => '', 'action' => $action);
63
 
64
+ $values['posted_form_id'] = FrmAppHelper::get_param('form_id');
65
+ if (!is_numeric($values['posted_form_id']))
66
+ $values['posted_form_id'] = FrmAppHelper::get_param('form');
67
+
68
+ if ($form->id == $values['posted_form_id']){ //if there are two forms on the same page, make sure not to submit both
69
  foreach ($default_values as $var => $default)
70
+ $values[$var] = FrmAppHelper::get_param($var, $default);
71
  }else{
72
  foreach ($default_values as $var => $default)
73
  $values[$var] = $default;
classes/controllers/FrmFieldsController.php CHANGED
@@ -2,23 +2,24 @@
2
 
3
  class FrmFieldsController{
4
  function FrmFieldsController(){
5
- add_action('wp_ajax_frm_insert_field', array($this, 'create') );
6
- add_action('wp_ajax_frm_field_name_in_place_edit', array($this, 'edit_name') );
7
- add_action('wp_ajax_frm_field_desc_in_place_edit', array($this, 'edit_description') );
8
- add_action('wp_ajax_frm_mark_required', array($this, 'mark_required') );
9
- add_action('wp_ajax_frm_clear_on_focus', array($this, 'clear_on_focus') );
10
- add_action('wp_ajax_frm_default_blank', array($this, 'default_blank') );
11
- add_action('wp_ajax_frm_delete_field', array($this, 'destroy') );
12
- add_action('wp_ajax_frm_add_field_option',array($this, 'add_option'));
13
- add_action('wp_ajax_frm_field_option_ipe', array($this, 'edit_option') );
14
- add_action('wp_ajax_frm_delete_field_option',array($this, 'delete_option'));
15
- add_action('wp_ajax_frm_update_field_order', array($this, 'update_order') );
16
- add_filter('frm_field_type',array( $this, 'change_type'));
17
- add_filter('frm_display_field_options', array($this, 'display_field_options'));
 
18
  }
19
 
20
  function create(){
21
- global $frm_field;
22
  $field_data = $_POST['field'];
23
  $form_id = $_POST['form_id'];
24
 
@@ -39,7 +40,7 @@ class FrmFieldsController{
39
  function edit_name(){
40
  global $frm_field;
41
  $id = str_replace('field_', '', $_POST['element_id']);
42
- $values = array('name' => $_POST['update_value']);
43
  if ($_POST['original_html'] == 'Untitled')
44
  $values['field_key'] = $_POST['update_value'];
45
  $form = $frm_field->update($id, $values);
@@ -88,7 +89,7 @@ class FrmFieldsController{
88
 
89
  /* Field Options */
90
  function add_option(){
91
- global $frm_field;
92
 
93
  $id = $_POST['field_id'];
94
  $field = $frm_field->getOne($id);
@@ -169,5 +170,30 @@ class FrmFieldsController{
169
 
170
  return $display;
171
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  }
173
  ?>
2
 
3
  class FrmFieldsController{
4
  function FrmFieldsController(){
5
+ add_action('wp_ajax_frm_insert_field', array(&$this, 'create') );
6
+ add_action('wp_ajax_frm_field_name_in_place_edit', array(&$this, 'edit_name') );
7
+ add_action('wp_ajax_frm_field_desc_in_place_edit', array(&$this, 'edit_description') );
8
+ add_action('wp_ajax_frm_mark_required', array(&$this, 'mark_required') );
9
+ add_action('wp_ajax_frm_clear_on_focus', array(&$this, 'clear_on_focus') );
10
+ add_action('wp_ajax_frm_default_blank', array(&$this, 'default_blank') );
11
+ add_action('wp_ajax_frm_delete_field', array(&$this, 'destroy') );
12
+ add_action('wp_ajax_frm_add_field_option',array(&$this, 'add_option'));
13
+ add_action('wp_ajax_frm_field_option_ipe', array(&$this, 'edit_option') );
14
+ add_action('wp_ajax_frm_delete_field_option',array(&$this, 'delete_option'));
15
+ add_action('wp_ajax_frm_update_field_order', array(&$this, 'update_order') );
16
+ add_filter('frm_field_type',array( &$this, 'change_type'));
17
+ add_filter('frm_display_field_options', array(&$this, 'display_field_options'));
18
+ add_action('frm_field_input_html', array(&$this,'input_html'));
19
  }
20
 
21
  function create(){
22
+ global $frm_field, $frm_ajax_url;
23
  $field_data = $_POST['field'];
24
  $form_id = $_POST['form_id'];
25
 
40
  function edit_name(){
41
  global $frm_field;
42
  $id = str_replace('field_', '', $_POST['element_id']);
43
+ $values = array('name' => trim($_POST['update_value']));
44
  if ($_POST['original_html'] == 'Untitled')
45
  $values['field_key'] = $_POST['update_value'];
46
  $form = $frm_field->update($id, $values);
89
 
90
  /* Field Options */
91
  function add_option(){
92
+ global $frm_field, $frm_ajax_url;
93
 
94
  $id = $_POST['field_id'];
95
  $field = $frm_field->getOne($id);
170
 
171
  return $display;
172
  }
173
+
174
+ function input_html($field){
175
+ $class = $field['type'];
176
+ if($field['type'] == 'date')
177
+ $class .= " frm_date";
178
+
179
+ $action = FrmAppHelper::get_param('action');
180
+ if(isset($field['required']) and $field['required']){
181
+ if($field['type'] == 'file' and $action == 'edit'){
182
+ //don't add the required class if this is a file upload when editing
183
+ }else
184
+ $class .= " required";
185
+ }
186
+
187
+ if(isset($field['size']) and $field['size'] > 0){
188
+ if($field['type'] != 'textarea')
189
+ echo ' size="'. $field['size'] .'"';
190
+ $class .= " auto_width";
191
+ }
192
+ if(isset($field['max']) and !in_array($field['type'], array('textarea','rte')))
193
+ echo ' maxlength="'. $field['max'] .'"';
194
+ if(isset($field['clear_on_focus']) and $field['clear_on_focus'])
195
+ echo ' onfocus="frmClearDefault(\''.$field['default_value'].'\', this)" onblur="frmReplaceDefault(\''.$field['default_value'].'\', this)"';
196
+ echo ' class="'.$class.'"';
197
+ }
198
  }
199
  ?>
classes/controllers/FrmFormsController.php CHANGED
@@ -2,24 +2,26 @@
2
 
3
  class FrmFormsController{
4
  function FrmFormsController(){
5
- add_action('admin_menu', array( $this, 'menu' ));
6
- add_action('admin_head-toplevel_page_'.FRM_PLUGIN_NAME, array($this,'head'));
7
- add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-new', array($this,'head'));
8
- add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-templates', array($this,'head'));
9
- add_action('wp_ajax_frm_form_name_in_place_edit', array($this, 'edit_name') );
10
- add_action('wp_ajax_frm_form_desc_in_place_edit', array($this, 'edit_description') );
11
- add_action('wp_ajax_frm_delete_form_wo_fields',array($this, 'destroy_wo_fields'));
12
  }
13
 
14
  function menu(){
15
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Forms', FRM_PLUGIN_NAME), __('Forms', FRM_PLUGIN_NAME), 8, FRM_PLUGIN_NAME, array($this,'route'));
16
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Create a Form', FRM_PLUGIN_NAME), __('Create a Form', FRM_PLUGIN_NAME), 8, FRM_PLUGIN_NAME.'-new', array($this,'new_form'));
17
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Templates', FRM_PLUGIN_NAME), __('Templates', FRM_PLUGIN_NAME), 8, FRM_PLUGIN_NAME.'-templates', array($this, 'template_list'));
18
  }
19
 
20
  function head(){
21
- $css_file = array(FRM_URL.'/css/ui-lightness/jquery-ui-1.7.2.custom.css', FRM_URL. '/css/frm_admin.css');
22
- $js_file = array(FRM_URL . '/js/formidable.js', FRM_URL . '/js/jquery/jquery-ui-themepicker.js', FRM_URL.'/js/jquery/jquery.editinplace.packed.js');
 
 
23
  require(FRM_VIEWS_PATH . '/shared/head.php');
24
  }
25
 
@@ -35,9 +37,9 @@ class FrmFormsController{
35
  }
36
 
37
  function new_form(){
38
- global $frm_app_controller, $frm_form, $frmpro_is_installed;
39
 
40
- $action = $frm_app_controller->get_param('action');
41
  if ($action == 'create')
42
  return $this->create();
43
  else if ($action == 'new'){
@@ -52,9 +54,9 @@ class FrmFormsController{
52
  }
53
 
54
  function create(){
55
- global $frm_app_controller, $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed;
56
  $errors = $frm_form->validate($_POST);
57
- $id = $frm_app_controller->get_param('id');
58
 
59
  if( count($errors) > 0 ){
60
  $frm_field_selection = FrmFieldsHelper::field_selection();
@@ -73,14 +75,13 @@ class FrmFormsController{
73
  }
74
 
75
  function edit(){
76
- global $frm_app_controller;
77
- $id = $frm_app_controller->get_param('id');
78
  return $this->get_edit_vars($id);
79
  }
80
 
81
  function edit_name(){
82
  global $frm_form;
83
- $values = array('name' => $_POST['update_value']);
84
  $form = $frm_form->update($_POST['form_id'], $values);
85
  echo stripslashes($_POST['update_value']);
86
  die();
@@ -94,9 +95,9 @@ class FrmFormsController{
94
  }
95
 
96
  function update(){
97
- global $frm_form, $frm_app_controller;
98
  $errors = $frm_form->validate($_POST);
99
- $id = $frm_app_controller->get_param('id');
100
  if( count($errors) > 0 ){
101
  return $this->get_edit_vars($id, $errors);
102
  }else{
@@ -138,8 +139,8 @@ class FrmFormsController{
138
 
139
  header("Content-Type: text/html; charset=utf-8");
140
 
141
- $plugin = FrmAppController::get_param('plugin');
142
- $controller = FrmAppController::get_param('controller');
143
  $key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
144
  $form = $frm_form->getAll("form_key='$key'",'',' LIMIT 1');
145
  if (!$form) $form = $frm_form->getAll('','',' LIMIT 1');
@@ -151,6 +152,9 @@ class FrmFormsController{
151
  }
152
 
153
  function destroy(){
 
 
 
154
  global $frm_form;
155
  $params = $this->get_params();
156
  $message = '';
@@ -160,15 +164,15 @@ class FrmFormsController{
160
  }
161
 
162
  function destroy_wo_fields(){
163
- global $frm_field, $frm_form, $frm_app_helper;
164
  $id = $_POST['form_id'];
165
- if ($frm_app_helper->getRecordCount('form_id='.$id, $frm_field->table_name) <= 0)
166
  $frm_form->destroy($id);
167
  die();
168
  }
169
 
170
  function display_forms_list($params=false, $message='', $page_params_ov = false, $current_page_ov = false, $errors = array()){
171
- global $wpdb, $frm_app_helper, $frm_form, $frm_entry, $frm_page_size, $frmpro_is_installed;
172
 
173
  if(!$params)
174
  $params = $this->get_params();
@@ -201,9 +205,9 @@ class FrmFormsController{
201
  $sdir_str = $form_vars['sdir_str'];
202
  $search_str = $form_vars['search_str'];
203
 
204
- $record_count = $frm_app_helper->getRecordCount($form_vars['where_clause'], $frm_form->table_name);
205
- $page_count = $frm_app_helper->getPageCount($frm_page_size,$form_vars['where_clause'], $frm_form->table_name);
206
- $forms = $frm_app_helper->getPage($current_page, $frm_page_size, $form_vars['where_clause'], $form_vars['order_by'], $frm_form->table_name);
207
  $page_last_record = $frm_app_helper->getLastRecordNum($record_count,$current_page,$frm_page_size);
208
  $page_first_record = $frm_app_helper->getFirstRecordNum($record_count,$current_page,$frm_page_size);
209
  require_once(FRM_VIEWS_PATH.'/frm-forms/list.php');
@@ -269,7 +273,7 @@ class FrmFormsController{
269
  }
270
 
271
  function get_edit_vars($id, $errors = '', $message='', $create_link=false){
272
- global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed;
273
  $record = $frm_form->getOne( $id );
274
  $items = $frm_entry->getAll('',' ORDER BY it.name');
275
  $frm_field_selection = FrmFieldsHelper::field_selection();
@@ -284,17 +288,37 @@ class FrmFormsController{
284
  }
285
 
286
  function get_params(){
287
- global $frm_app_controller;
288
  $values = array();
289
  foreach (array('template' => 0,'id' => '','paged' => 1,'form' => '','search' => '','sort' => '','sdir' => '') as $var => $default)
290
- $values[$var] = $frm_app_controller->get_param($var, $default);
291
 
292
  return $values;
293
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
 
295
  function route(){
296
- $action = FrmAppController::get_param('action');
297
- if($action=='new')
298
  return $this->new_form();
299
  else if($action=='create')
300
  return $this->create();
2
 
3
  class FrmFormsController{
4
  function FrmFormsController(){
5
+ add_action('admin_menu', array( &$this, 'menu' ));
6
+ add_action('admin_head-toplevel_page_'.FRM_PLUGIN_NAME, array(&$this,'head'));
7
+ add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-new', array(&$this,'head'));
8
+ add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-templates', array(&$this,'head'));
9
+ add_action('wp_ajax_frm_form_name_in_place_edit', array(&$this, 'edit_name') );
10
+ add_action('wp_ajax_frm_form_desc_in_place_edit', array(&$this, 'edit_description') );
11
+ add_action('wp_ajax_frm_delete_form_wo_fields',array(&$this, 'destroy_wo_fields'));
12
  }
13
 
14
  function menu(){
15
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Forms', FRM_PLUGIN_NAME), __('Forms', FRM_PLUGIN_NAME), 'frm_view_forms', FRM_PLUGIN_NAME, array(&$this,'route'));
16
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Create a Form', FRM_PLUGIN_NAME), __('Create a Form', FRM_PLUGIN_NAME), 'frm_edit_forms', FRM_PLUGIN_NAME.'-new', array(&$this,'new_form'));
17
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Templates', FRM_PLUGIN_NAME), __('Templates', FRM_PLUGIN_NAME), 'frm_view_forms', FRM_PLUGIN_NAME.'-templates', array(&$this, 'template_list'));
18
  }
19
 
20
  function head(){
21
+ global $frm_settings;
22
+ if(!$frm_settings->custom_stylesheet)
23
+ $css_file = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
24
+ $js_file = array(FRM_URL . '/js/jquery/jquery-ui-themepicker.js', FRM_URL.'/js/jquery/jquery.editinplace.packed.js');
25
  require(FRM_VIEWS_PATH . '/shared/head.php');
26
  }
27
 
37
  }
38
 
39
  function new_form(){
40
+ global $frm_form, $frmpro_is_installed, $frm_ajax_url;
41
 
42
+ $action = FrmAppHelper::get_param('action');
43
  if ($action == 'create')
44
  return $this->create();
45
  else if ($action == 'new'){
54
  }
55
 
56
  function create(){
57
+ global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed;
58
  $errors = $frm_form->validate($_POST);
59
+ $id = FrmAppHelper::get_param('id');
60
 
61
  if( count($errors) > 0 ){
62
  $frm_field_selection = FrmFieldsHelper::field_selection();
75
  }
76
 
77
  function edit(){
78
+ $id = FrmAppHelper::get_param('id');
 
79
  return $this->get_edit_vars($id);
80
  }
81
 
82
  function edit_name(){
83
  global $frm_form;
84
+ $values = array('name' => trim($_POST['update_value']));
85
  $form = $frm_form->update($_POST['form_id'], $values);
86
  echo stripslashes($_POST['update_value']);
87
  die();
95
  }
96
 
97
  function update(){
98
+ global $frm_form;
99
  $errors = $frm_form->validate($_POST);
100
+ $id = FrmAppHelper::get_param('id');
101
  if( count($errors) > 0 ){
102
  return $this->get_edit_vars($id, $errors);
103
  }else{
139
 
140
  header("Content-Type: text/html; charset=utf-8");
141
 
142
+ $plugin = FrmAppHelper::get_param('plugin');
143
+ $controller = FrmAppHelper::get_param('controller');
144
  $key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
145
  $form = $frm_form->getAll("form_key='$key'",'',' LIMIT 1');
146
  if (!$form) $form = $frm_form->getAll('','',' LIMIT 1');
152
  }
153
 
154
  function destroy(){
155
+ if(!current_user_can('frm_delete_forms'))
156
+ wp_die(__('You don\'t have permission to delete forms', 'formidable'));
157
+
158
  global $frm_form;
159
  $params = $this->get_params();
160
  $message = '';
164
  }
165
 
166
  function destroy_wo_fields(){
167
+ global $frm_field, $frm_form, $frmdb;
168
  $id = $_POST['form_id'];
169
+ if ($frmdb->get_count($frmdb->fields, array('form_id' => $id)) <= 0)
170
  $frm_form->destroy($id);
171
  die();
172
  }
173
 
174
  function display_forms_list($params=false, $message='', $page_params_ov = false, $current_page_ov = false, $errors = array()){
175
+ global $wpdb, $frmdb, $frm_app_helper, $frm_form, $frm_entry, $frm_page_size, $frmpro_is_installed;
176
 
177
  if(!$params)
178
  $params = $this->get_params();
205
  $sdir_str = $form_vars['sdir_str'];
206
  $search_str = $form_vars['search_str'];
207
 
208
+ $record_count = $frm_app_helper->getRecordCount($form_vars['where_clause'], $frmdb->forms);
209
+ $page_count = $frm_app_helper->getPageCount($frm_page_size,$form_vars['where_clause'], $frmdb->forms);
210
+ $forms = $frm_app_helper->getPage($current_page, $frm_page_size, $form_vars['where_clause'], $form_vars['order_by'], $frmdb->forms);
211
  $page_last_record = $frm_app_helper->getLastRecordNum($record_count,$current_page,$frm_page_size);
212
  $page_first_record = $frm_app_helper->getFirstRecordNum($record_count,$current_page,$frm_page_size);
213
  require_once(FRM_VIEWS_PATH.'/frm-forms/list.php');
273
  }
274
 
275
  function get_edit_vars($id, $errors = '', $message='', $create_link=false){
276
+ global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed, $frm_ajax_url;
277
  $record = $frm_form->getOne( $id );
278
  $items = $frm_entry->getAll('',' ORDER BY it.name');
279
  $frm_field_selection = FrmFieldsHelper::field_selection();
288
  }
289
 
290
  function get_params(){
 
291
  $values = array();
292
  foreach (array('template' => 0,'id' => '','paged' => 1,'form' => '','search' => '','sort' => '','sdir' => '') as $var => $default)
293
+ $values[$var] = FrmAppHelper::get_param($var, $default);
294
 
295
  return $values;
296
  }
297
+
298
+ function add_default_templates($path, $default=true){
299
+ global $frm_form, $frm_field;
300
+ $templates = glob($path."/*.php");
301
+
302
+ for($i = count($templates) - 1; $i >= 0; $i--){
303
+ $filename = str_replace($path."/","",$templates[$i]);
304
+ $filename = str_replace('.php','', $filename);
305
+ $template_query = "form_key='{$filename}' and is_template='1'";
306
+ if($default) $template_query .= " and default_template='1'";
307
+ $form = $frm_form->getAll($template_query, '', ' LIMIT 1');
308
+
309
+ $values = FrmFormsHelper::setup_new_vars();
310
+ $values['form_key'] = $filename;
311
+ $values['is_template'] = 1;
312
+ $values['status'] = 'published';
313
+ if($default) $values['default_template'] = 1;
314
+
315
+ require_once($templates[$i]);
316
+ }
317
+ }
318
 
319
  function route(){
320
+ $action = FrmAppHelper::get_param('action');
321
+ if($action == 'new')
322
  return $this->new_form();
323
  else if($action=='create')
324
  return $this->create();
classes/controllers/FrmSettingsController.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  class FrmSettingsController{
4
  function FrmSettingsController(){
5
- add_action('admin_menu', array( $this, 'menu' ), 25);
6
- add_action('admin_menu', array( $this, 'pro_menu' ), 19);
7
- add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-settings', array($this,'head'));
8
  }
9
 
10
  function menu(){
11
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Settings', FRM_PLUGIN_NAME), __('Settings', FRM_PLUGIN_NAME), 8, FRM_PLUGIN_NAME.'-settings', array($this,'route'));
12
  }
13
 
14
  function pro_menu(){
@@ -16,21 +16,17 @@ class FrmSettingsController{
16
  if (IS_WPMU and !is_site_admin() and get_site_option($frm_update->pro_wpmu_store))
17
  return;
18
 
19
- add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. FRM_PLUGIN_TITLE . ' Pro', FRM_PLUGIN_TITLE . ' Pro', 8, FRM_PLUGIN_NAME.'-pro-settings', array($frm_update,'pro_cred_form'));
20
- }
21
-
22
- function head(){
23
- $css_file = array('frm_admin' => FRM_URL. '/css/frm_admin.css');
24
- require(FRM_VIEWS_PATH . '/shared/head.php');
25
  }
26
 
27
  function display_form(){
28
- global $frm_settings;
 
29
  require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
30
  }
31
 
32
  function process_form(){
33
- global $frm_settings;
34
 
35
  //$errors = $frm_settings->validate($_POST,array());
36
  $errors = array();
@@ -40,14 +36,13 @@ class FrmSettingsController{
40
  $frm_settings->store();
41
  $message = __('Settings Saved', FRM_PLUGIN_NAME);
42
  }
43
-
44
  require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
45
  }
46
 
47
  function route(){
48
- global $frm_app_controller;
49
- $action = $frm_app_controller->get_param('action');
50
- if($action=='process-form')
51
  return $this->process_form();
52
  else
53
  return $this->display_form();
2
 
3
  class FrmSettingsController{
4
  function FrmSettingsController(){
5
+ add_action('admin_menu', array( &$this, 'menu' ), 25);
6
+ add_action('admin_menu', array( &$this, 'pro_menu' ), 19);
7
+ //add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-settings', array($this,'head'));
8
  }
9
 
10
  function menu(){
11
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Settings', FRM_PLUGIN_NAME), __('Settings', FRM_PLUGIN_NAME), 'frm_change_settings', FRM_PLUGIN_NAME.'-settings', array($this,'route'));
12
  }
13
 
14
  function pro_menu(){
16
  if (IS_WPMU and !is_site_admin() and get_site_option($frm_update->pro_wpmu_store))
17
  return;
18
 
19
+ add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. FRM_PLUGIN_TITLE . ' Pro', FRM_PLUGIN_TITLE . ' Pro', 'administrator', FRM_PLUGIN_NAME.'-pro-settings', array($frm_update,'pro_cred_form'));
 
 
 
 
 
20
  }
21
 
22
  function display_form(){
23
+ global $frm_settings, $frm_ajax_url;
24
+ $frm_roles = FrmAppHelper::frm_capabilities();
25
  require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
26
  }
27
 
28
  function process_form(){
29
+ global $frm_settings, $frm_ajax_url;
30
 
31
  //$errors = $frm_settings->validate($_POST,array());
32
  $errors = array();
36
  $frm_settings->store();
37
  $message = __('Settings Saved', FRM_PLUGIN_NAME);
38
  }
39
+ $frm_roles = FrmAppHelper::frm_capabilities();
40
  require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
41
  }
42
 
43
  function route(){
44
+ $action = FrmAppHelper::get_param('action');
45
+ if($action == 'process-form')
 
46
  return $this->process_form();
47
  else
48
  return $this->display_form();
classes/controllers/FrmStatisticsController.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  class FrmStatisticsController{
4
  function FrmStatisticsController(){
5
- add_action('admin_menu', array( $this, 'menu' ), 30);
6
  }
7
 
8
  function menu(){
9
  global $frmpro_is_installed;
10
  if(!$frmpro_is_installed)
11
- add_submenu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE .' | Statistics', 'Statistics', 8, FRM_PLUGIN_TITLE.'-statistics',array($this,''));
12
  }
13
 
14
  function list_entries(){
2
 
3
  class FrmStatisticsController{
4
  function FrmStatisticsController(){
5
+ add_action('admin_menu', array( &$this, 'menu' ), 30);
6
  }
7
 
8
  function menu(){
9
  global $frmpro_is_installed;
10
  if(!$frmpro_is_installed)
11
+ add_submenu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE .' | Statistics', 'Statistics', 'administrator', FRM_PLUGIN_TITLE.'-statistics',array($this,''));
12
  }
13
 
14
  function list_entries(){
classes/helpers/FrmAppHelper.php CHANGED
@@ -3,15 +3,17 @@
3
  class FrmAppHelper{
4
  function FrmAppHelper(){}
5
 
 
 
 
 
6
  function get_pages(){
7
- return get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, 'order_by' => 'post_title', 'order' => 'ASC'));
8
  }
9
 
10
  function wp_pages_dropdown($field_name, $page_id){
11
- global $frm_app_controller;
12
-
13
- $field_value = $frm_app_controller->get_param($field_name);
14
- $pages = get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, 'order_by' => 'post_title', 'order' => 'ASC'));
15
  ?>
16
  <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
17
  <option value=""></option>
@@ -21,28 +23,85 @@ class FrmAppHelper{
21
  </select>
22
  <?php
23
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
  function value_is_checked_with_array($field_name, $index, $field_value){
26
  if( ( $_POST['action'] == 'process_form' and isset( $_POST[ $field_name ][ $index ] ) ) or ( $_POST['action'] != 'process_form' and isset($field_value) ) )
27
  echo ' checked="checked"';
28
  }
29
 
 
 
 
 
 
 
 
 
 
 
 
30
  function get_unique_key($name='', $table_name, $column, $id = 0,$num_chars = 6){
31
  global $wpdb;
32
-
33
  if ($name == ''){
34
  $max_slug_value = pow(36,$num_chars);
35
  $min_slug_value = 37; // we want to have at least 2 characters in the slug
36
  $key = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
37
  }else
38
  $key = sanitize_title_with_dashes($name);
39
-
40
- if (is_numeric($key))
41
  $key = $key .'a';
42
 
43
  $query = "SELECT $column FROM $table_name WHERE $column = %s AND ID != %d LIMIT 1";
44
  $key_check = $wpdb->get_var($wpdb->prepare($query, $key, $id));
45
- if ($key_check || is_numeric($key_check)){
 
46
  $suffix = 2;
47
  do {
48
  $alt_post_name = substr($key, 0, 200-(strlen($suffix)+1)). "$suffix";
@@ -57,16 +116,16 @@ class FrmAppHelper{
57
  //Editing a Form or Entry
58
  function setup_edit_vars($record, $table, $fields='', $default=false){
59
  if(!$record) return false;
60
- global $frm_entry_meta, $frm_form, $frm_app_controller, $frm_settings;
61
  $values = array();
62
 
63
  $values['id'] = $record->id;
64
 
65
  foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default_val)
66
- $values[$var] = stripslashes($frm_app_controller->get_param($var, $default_val));
67
  $values['description'] = wpautop($values['description']);
68
  $values['fields'] = array();
69
- if ($fields){
70
  foreach($fields as $field){
71
 
72
  if ($default)
@@ -78,7 +137,7 @@ class FrmAppHelper{
78
  $field_type = isset($_POST['field_options']['type_'.$field->id]) ? $_POST['field_options']['type_'.$field->id] : $field->type;
79
  $new_value = (isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $meta_value;
80
  $new_value = stripslashes_deep(maybe_unserialize($new_value));
81
-
82
  $field_array = array('id' => $field->id,
83
  'value' => str_replace('"', '&quot;', $new_value),
84
  'default_value' => str_replace('"', '&quot;', stripslashes($field->default_value)),
@@ -90,13 +149,18 @@ class FrmAppHelper{
90
  'field_key' => $field->field_key,
91
  'field_order' => $field->field_order,
92
  'form_id' => $field->form_id);
93
-
94
- foreach (array('size' => '', 'max' => '', 'label' => 'top', 'invalid' => '', 'required_indicator' => '*', 'blank' => '', 'clear_on_focus' => 0, 'custom_html' => '', 'default_blank' => 0) as $opt => $default_opt)
95
- $field_array[$opt] = ($_POST and isset($_POST['field_options'][$opt.'_'.$field->id]) ) ? $_POST['field_options'][$opt.'_'.$field->id] : (isset($field_options[$opt]) ? $field_options[$opt] : $default_opt);
96
 
 
 
 
 
 
 
 
 
97
  if ($field_array['custom_html'] == '')
98
  $field_array['custom_html'] = FrmFieldsHelper::get_default_html($field_type);
99
-
100
  $values['fields'][] = apply_filters('frm_setup_edit_fields_vars', stripslashes_deep($field_array), $field, $values['id']);
101
  }
102
  }
@@ -111,16 +175,23 @@ class FrmAppHelper{
111
  $options = stripslashes_deep(unserialize($form->options));
112
  if (is_array($options)){
113
  foreach ($options as $opt => $value)
114
- $values[$opt] = $frm_app_controller->get_param($opt, $value);
115
  }
116
  }
117
 
118
  $email = get_option('admin_email');
119
- foreach (array('custom_style' => $frm_settings->custom_style, 'email_to' => $email, 'submit_value' => $frm_settings->submit_value, 'success_msg' => $frm_settings->success_msg) as $opt => $default){
120
  if (!isset($values[$opt]))
121
  $values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
122
  }
123
 
 
 
 
 
 
 
 
124
  if (!isset($values['custom_style']))
125
  $values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
126
 
3
  class FrmAppHelper{
4
  function FrmAppHelper(){}
5
 
6
+ function get_param($param, $default=''){
7
+ return (isset($_POST[$param])?$_POST[$param]:(isset($_GET[$param])?$_GET[$param]:$default));
8
+ }
9
+
10
  function get_pages(){
11
+ return get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, 'orderby' => 'title', 'order' => 'ASC'));
12
  }
13
 
14
  function wp_pages_dropdown($field_name, $page_id){
15
+ $field_value = FrmAppHelper::get_param($field_name);
16
+ $pages = FrmAppHelper::get_pages();
 
 
17
  ?>
18
  <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
19
  <option value=""></option>
23
  </select>
24
  <?php
25
  }
26
+
27
+ function wp_roles_dropdown($field_name, $capability){
28
+ $field_value = FrmAppHelper::get_param($field_name);
29
+ $editable_roles = get_editable_roles();
30
+
31
+ ?>
32
+ <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
33
+ <?php foreach($editable_roles as $role => $details){
34
+ $name = translate_user_role($details['name'] ); ?>
35
+ <option value="<?php echo esc_attr($role) ?>" <?php echo (((isset($_POST[$field_name]) and $_POST[$field_name] == $role) or (!isset($_POST[$field_name]) and $capability == $role))?' selected="selected"':''); ?>><?php echo $name ?> </option>
36
+ <?php } ?>
37
+ </select>
38
+ <?php
39
+ }
40
+
41
+ function frm_capabilities(){
42
+ global $frmpro_is_installed;
43
+ $cap = array(
44
+ 'frm_view_forms' => __('View Forms and Templates', 'formidable'),
45
+ 'frm_edit_forms' => __('Create/Edit Forms and Templates', 'formidable'),
46
+ 'frm_delete_forms' => __('Delete Forms and Templates', 'formidable'),
47
+ 'frm_change_settings' => __('Access this Settings Page', 'formidable')
48
+ );
49
+ if($frmpro_is_installed){
50
+ $cap['frm_view_entries'] = __('View Entries from Admin Area', 'formidable');
51
+ $cap['frm_create_entries'] = __('Create Entries from Admin Area', 'formidable');
52
+ $cap['frm_edit_entries'] = __('Edit Entries from Admin Area', 'formidable');
53
+ $cap['frm_delete_entries'] = __('Delete Entries from Admin Area', 'formidable');
54
+ $cap['frm_view_reports'] = __('View Reports', 'formidable');
55
+ $cap['frm_edit_displays'] = __('Create/Edit Custom Displays', 'formidable');
56
+ }
57
+ return $cap;
58
+ }
59
+
60
+ function user_has_permission($needed_role){
61
+ if ($needed_role == '' or
62
+ ($needed_role == 'administrator' and current_user_can('administrator')) or
63
+ ($needed_role == 'subscriber' and current_user_can('level_0')) or
64
+ ($needed_role == 'contributer' and current_user_can('level_1')) or
65
+ ($needed_role == 'author' and (current_user_can('author') or current_user_can('editor') or current_user_can('administrator'))) or
66
+ ($needed_role == 'editor' and (current_user_can('editor') or current_user_can('administrator'))) )
67
+ return true;
68
+ else
69
+ return false;
70
+ }
71
 
72
  function value_is_checked_with_array($field_name, $index, $field_value){
73
  if( ( $_POST['action'] == 'process_form' and isset( $_POST[ $field_name ][ $index ] ) ) or ( $_POST['action'] != 'process_form' and isset($field_value) ) )
74
  echo ' checked="checked"';
75
  }
76
 
77
+ function get_file_contents($filename){
78
+ if (is_file($filename)){
79
+ ob_start();
80
+ include $filename;
81
+ $contents = ob_get_contents();
82
+ ob_end_clean();
83
+ return $contents;
84
+ }
85
+ return false;
86
+ }
87
+
88
  function get_unique_key($name='', $table_name, $column, $id = 0,$num_chars = 6){
89
  global $wpdb;
90
+
91
  if ($name == ''){
92
  $max_slug_value = pow(36,$num_chars);
93
  $min_slug_value = 37; // we want to have at least 2 characters in the slug
94
  $key = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
95
  }else
96
  $key = sanitize_title_with_dashes($name);
97
+
98
+ if (is_numeric($key) or in_array($key, array('id','key','created-at', 'detaillink', 'editlink', 'siteurl', 'evenodd')))
99
  $key = $key .'a';
100
 
101
  $query = "SELECT $column FROM $table_name WHERE $column = %s AND ID != %d LIMIT 1";
102
  $key_check = $wpdb->get_var($wpdb->prepare($query, $key, $id));
103
+
104
+ if ($key_check or is_numeric($key_check)){
105
  $suffix = 2;
106
  do {
107
  $alt_post_name = substr($key, 0, 200-(strlen($suffix)+1)). "$suffix";
116
  //Editing a Form or Entry
117
  function setup_edit_vars($record, $table, $fields='', $default=false){
118
  if(!$record) return false;
119
+ global $frm_entry_meta, $frm_form, $frm_settings;
120
  $values = array();
121
 
122
  $values['id'] = $record->id;
123
 
124
  foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default_val)
125
+ $values[$var] = stripslashes(FrmAppHelper::get_param($var, $default_val));
126
  $values['description'] = wpautop($values['description']);
127
  $values['fields'] = array();
128
+ if ($fields){
129
  foreach($fields as $field){
130
 
131
  if ($default)
137
  $field_type = isset($_POST['field_options']['type_'.$field->id]) ? $_POST['field_options']['type_'.$field->id] : $field->type;
138
  $new_value = (isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $meta_value;
139
  $new_value = stripslashes_deep(maybe_unserialize($new_value));
140
+
141
  $field_array = array('id' => $field->id,
142
  'value' => str_replace('"', '&quot;', $new_value),
143
  'default_value' => str_replace('"', '&quot;', stripslashes($field->default_value)),
149
  'field_key' => $field->field_key,
150
  'field_order' => $field->field_order,
151
  'form_id' => $field->form_id);
 
 
 
152
 
153
+ foreach (array('size' => '', 'max' => '', 'label' => 'top', 'invalid' => '', 'required_indicator' => '*', 'blank' => '', 'clear_on_focus' => 0, 'custom_html' => '', 'default_blank' => 0) as $opt => $default_opt){
154
+ $field_array[$opt] = ($_POST and isset($_POST['field_options'][$opt.'_'.$field->id]) ) ? $_POST['field_options'][$opt.'_'.$field->id] : (isset($field_options[$opt]) ? $field_options[$opt] : $default_opt);
155
+ if($opt == 'blank' and $field_array[$opt] == '')
156
+ $field_array[$opt] = $field_array['name'] . ' ' . __('can\'t be blank', FRM_PLUGIN_NAME);
157
+ else if($opt == 'invalid' and $field_array[$opt] == '')
158
+ $field_array[$opt] = $field_array['name'] . ' ' . __('is an invalid format', FRM_PLUGIN_NAME);
159
+ }
160
+
161
  if ($field_array['custom_html'] == '')
162
  $field_array['custom_html'] = FrmFieldsHelper::get_default_html($field_type);
163
+
164
  $values['fields'][] = apply_filters('frm_setup_edit_fields_vars', stripslashes_deep($field_array), $field, $values['id']);
165
  }
166
  }
175
  $options = stripslashes_deep(unserialize($form->options));
176
  if (is_array($options)){
177
  foreach ($options as $opt => $value)
178
+ $values[$opt] = FrmAppHelper::get_param($opt, $value);
179
  }
180
  }
181
 
182
  $email = get_option('admin_email');
183
+ foreach (array('custom_style' => $frm_settings->custom_style, 'email_to' => $email) as $opt => $default){
184
  if (!isset($values[$opt]))
185
  $values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
186
  }
187
 
188
+ foreach (array('submit_value' => $frm_settings->submit_value, 'success_action' => 'message', 'success_msg' => $frm_settings->success_msg, 'show_form' => 1) as $opt => $default){
189
+ if (!isset($values[$opt]) or $values[$opt] == '')
190
+ $values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
191
+ }
192
+ if (!isset($values['show_form']))
193
+ $values['show_form'] = ($_POST and isset($_POST['options']['show_form'])) ? 1 : 0;
194
+
195
  if (!isset($values['custom_style']))
196
  $values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
197
 
classes/helpers/FrmEntriesHelper.php CHANGED
@@ -3,10 +3,10 @@
3
  class FrmEntriesHelper{
4
 
5
  function setup_new_vars($fields, $form='', $reset=false){
6
- global $frm_app_controller, $frm_form, $frm_settings;
7
  $values = array();
8
  foreach (array('name' => '', 'description' => '', 'item_key' => '') as $var => $default)
9
- $values[$var] = stripslashes($frm_app_controller->get_param($var, $default));
10
 
11
  $values['fields'] = array();
12
  if ($fields){
@@ -19,10 +19,11 @@ class FrmEntriesHelper{
19
  else
20
  $new_value = ($_POST and isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $default;
21
 
22
- if ($field->type != 'checkbox')
23
- $new_value = apply_filters('frm_get_default_value', stripslashes_deep($new_value));
 
24
 
25
- $new_value = str_replace('"', '&quot;', stripslashes_deep(maybe_unserialize($new_value)));
26
 
27
  $field_array = array('id' => $field->id,
28
  'value' => $new_value,
@@ -52,7 +53,7 @@ class FrmEntriesHelper{
52
 
53
  if (is_array($options)){
54
  foreach ($options as $opt => $value)
55
- $values[$opt] = $frm_app_controller->get_param($opt, $value);
56
  }
57
 
58
  if (!isset($values['custom_style']))
@@ -85,13 +86,13 @@ class FrmEntriesHelper{
85
  $values['form_id'] = $record->form_id;
86
  return apply_filters('frm_setup_edit_entry_vars', $values);
87
  }
88
-
89
- function entries_dropdown( $form_id, $field_name, $field_value='', $blank=true, $blank_label='' ){
90
- global $frm_app_controller, $frm_entry;
91
 
92
  $entries = $frm_entry->getAll("it.form_id=".$form_id,' ORDER BY name');
93
  ?>
94
- <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown">
95
  <?php if ($blank){ ?>
96
  <option value=""><?php echo $blank_label; ?></option>
97
  <?php } ?>
@@ -101,6 +102,10 @@ class FrmEntriesHelper{
101
  </select>
102
  <?php
103
  }
 
 
 
 
104
  }
105
 
106
  ?>
3
  class FrmEntriesHelper{
4
 
5
  function setup_new_vars($fields, $form='', $reset=false){
6
+ global $frm_form, $frm_settings;
7
  $values = array();
8
  foreach (array('name' => '', 'description' => '', 'item_key' => '') as $var => $default)
9
+ $values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
10
 
11
  $values['fields'] = array();
12
  if ($fields){
19
  else
20
  $new_value = ($_POST and isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $default;
21
 
22
+ $new_value = stripslashes_deep(maybe_unserialize($new_value));
23
+ if (!is_array($new_value))
24
+ $new_value = apply_filters('frm_get_default_value', $new_value, $field);
25
 
26
+ $new_value = str_replace('"', '&quot;', $new_value);
27
 
28
  $field_array = array('id' => $field->id,
29
  'value' => $new_value,
53
 
54
  if (is_array($options)){
55
  foreach ($options as $opt => $value)
56
+ $values[$opt] = FrmAppHelper::get_param($opt, $value);
57
  }
58
 
59
  if (!isset($values['custom_style']))
86
  $values['form_id'] = $record->form_id;
87
  return apply_filters('frm_setup_edit_entry_vars', $values);
88
  }
89
+
90
+ function entries_dropdown( $form_id, $field_name, $field_value='', $blank=true, $blank_label='', $onchange=false ){
91
+ global $frm_entry;
92
 
93
  $entries = $frm_entry->getAll("it.form_id=".$form_id,' ORDER BY name');
94
  ?>
95
+ <select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown" <?php if ($onchange) echo 'onchange="'.$onchange.'"'; ?>>
96
  <?php if ($blank){ ?>
97
  <option value=""><?php echo $blank_label; ?></option>
98
  <?php } ?>
102
  </select>
103
  <?php
104
  }
105
+
106
+ function enqueue_scripts($params){
107
+ do_action('frm_enqueue_form_scripts', $params);
108
+ }
109
  }
110
 
111
  ?>
classes/helpers/FrmFieldsHelper.php CHANGED
@@ -18,20 +18,23 @@ class FrmFieldsHelper{
18
 
19
  function pro_field_selection(){
20
  return apply_filters('frm_pro_available_fields', array(
21
- 'divider' => __('Section Divider/Heading', FRM_PLUGIN_NAME),
22
  'break' => __('Page Break', FRM_PLUGIN_NAME),
23
  'file' => __('File Upload', FRM_PLUGIN_NAME),
24
  'rte' => __('Rich Text Editor', FRM_PLUGIN_NAME),
25
- 'phone' => __('Phone', FRM_PLUGIN_NAME),
26
- 'email' => __('Email', FRM_PLUGIN_NAME),
 
27
  'date' => __('Date', FRM_PLUGIN_NAME),
28
  //'time' => 'Time',
29
- 'hidden' => __('Hidden Field', FRM_PLUGIN_NAME),
30
- 'user_id' => __('Hidden User Id', FRM_PLUGIN_NAME),
31
  'website' => __('Website/URL', FRM_PLUGIN_NAME),
32
  'image' => __('Image URL', FRM_PLUGIN_NAME),
33
  '10radio' => __('Scale', FRM_PLUGIN_NAME),
34
- 'data' => __('Data from Entries', FRM_PLUGIN_NAME)
 
 
 
 
35
  //'multiple' => 'Multiple Select Box', //http://code.google.com/p/jquery-asmselect/
36
  //'address' => 'Address' //Address line 1, Address line 2, City, State/Providence, Postal Code, Select Country
37
  //'city_selector' => 'US State/County/City selector',
@@ -42,10 +45,10 @@ class FrmFieldsHelper{
42
  }
43
 
44
  function setup_new_vars($type='',$form_id=''){
45
- global $frm_field, $frm_app_helper;
46
 
47
- $field_count = $frm_app_helper->getRecordCount("form_id=$form_id", $frm_field->table_name);
48
- $key = FrmAppHelper::get_unique_key('', $frm_field->table_name, 'field_key');
49
 
50
  $values = array();
51
  foreach (array('name' => __('Untitled', FRM_PLUGIN_NAME), 'description' => '', 'field_key' => $key, 'type' => $type, 'options'=>'', 'default_value'=>'', 'field_order' => $field_count+1, 'required' => false, 'blank' => __('Untitled can\'t be blank', FRM_PLUGIN_NAME), 'invalid' => __('Untitled is an invalid format', FRM_PLUGIN_NAME), 'form_id' => $form_id) as $var => $default)
@@ -56,9 +59,9 @@ class FrmFieldsHelper{
56
  $values['field_options'][$var] = $default;
57
 
58
  if ($type == 'radio' || ($type == 'checkbox'))
59
- $values['options'] = serialize(array(1 => 'Option 1', 2 => 'Option 2'));
60
  else if ( $type == 'select')
61
- $values['options'] = serialize(array(1 => '', 2 => 'Option 1'));
62
  else if ($type == 'textarea')
63
  $values['field_options']['max'] = '5';
64
 
@@ -66,18 +69,18 @@ class FrmFieldsHelper{
66
  }
67
 
68
  function setup_edit_vars($record){
69
- global $frm_entry_meta, $frm_form, $frm_app_controller;
70
 
71
  $values = array();
72
  $values['id'] = $record->id;
73
  $values['form_id'] = $record->form_id;
74
  foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default)
75
- $values[$var] = htmlspecialchars(stripslashes($frm_app_controller->get_param($var, $default)));
76
 
77
  $values['form_name'] = ($record->form_id)?($frm_form->getName( $record->form_id )):('');
78
 
79
  foreach (array('field_key' => $record->field_key, 'type' => $record->type, 'default_value'=> $record->default_value, 'field_order' => $record->field_order, 'required' => $record->required) as $var => $default)
80
- $values[$var] = $frm_app_controller->get_param($var, $default);
81
 
82
  $values['options'] = unserialize($record->options);
83
  $field_options = unserialize($record->field_options);
@@ -92,7 +95,7 @@ class FrmFieldsHelper{
92
  $values['default_blank'] = (isset($field_options['default_blank']))?($field_options['default_blank']):(0);
93
  $values['custom_html'] = (isset($field_options['custom_html']))? stripslashes($field_options['custom_html']): FrmFieldsHelper::get_default_html($record->type);
94
 
95
- return $values;
96
  }
97
 
98
  function get_form_fields($form_id, $error=false){
@@ -151,6 +154,10 @@ DEFAULT_HTML;
151
  $error_class = in_array('field'.$field['id'], $error_keys) ? ' frm_blank_field':'';
152
  $html = str_replace('[error_class]', $error_class, $html);
153
 
 
 
 
 
154
  //replace [input]
155
  ob_start();
156
  include(FRM_VIEWS_PATH.'/frm-fields/input.php');
18
 
19
  function pro_field_selection(){
20
  return apply_filters('frm_pro_available_fields', array(
21
+ 'divider' => __('Section Heading', FRM_PLUGIN_NAME),
22
  'break' => __('Page Break', FRM_PLUGIN_NAME),
23
  'file' => __('File Upload', FRM_PLUGIN_NAME),
24
  'rte' => __('Rich Text Editor', FRM_PLUGIN_NAME),
25
+ 'number' => __('Number', FRM_PLUGIN_NAME),
26
+ 'phone' => __('Phone Number', FRM_PLUGIN_NAME),
27
+ 'email' => __('Email Address', FRM_PLUGIN_NAME),
28
  'date' => __('Date', FRM_PLUGIN_NAME),
29
  //'time' => 'Time',
 
 
30
  'website' => __('Website/URL', FRM_PLUGIN_NAME),
31
  'image' => __('Image URL', FRM_PLUGIN_NAME),
32
  '10radio' => __('Scale', FRM_PLUGIN_NAME),
33
+ //'grid' => __('Grid', FRM_PLUGIN_NAME),
34
+ 'data' => __('Data from Entries', FRM_PLUGIN_NAME),
35
+ 'hidden' => __('Hidden Field', FRM_PLUGIN_NAME),
36
+ 'user_id' => __('Hidden User Id', FRM_PLUGIN_NAME),
37
+ 'tag' => __('Tags', FRM_PLUGIN_NAME)
38
  //'multiple' => 'Multiple Select Box', //http://code.google.com/p/jquery-asmselect/
39
  //'address' => 'Address' //Address line 1, Address line 2, City, State/Providence, Postal Code, Select Country
40
  //'city_selector' => 'US State/County/City selector',
45
  }
46
 
47
  function setup_new_vars($type='',$form_id=''){
48
+ global $frmdb, $frm_app_helper;
49
 
50
+ $field_count = $frm_app_helper->getRecordCount("form_id=$form_id", $frmdb->fields);
51
+ $key = FrmAppHelper::get_unique_key('', $frmdb->fields, 'field_key');
52
 
53
  $values = array();
54
  foreach (array('name' => __('Untitled', FRM_PLUGIN_NAME), 'description' => '', 'field_key' => $key, 'type' => $type, 'options'=>'', 'default_value'=>'', 'field_order' => $field_count+1, 'required' => false, 'blank' => __('Untitled can\'t be blank', FRM_PLUGIN_NAME), 'invalid' => __('Untitled is an invalid format', FRM_PLUGIN_NAME), 'form_id' => $form_id) as $var => $default)
59
  $values['field_options'][$var] = $default;
60
 
61
  if ($type == 'radio' || ($type == 'checkbox'))
62
+ $values['options'] = serialize(array('Option 1', 'Option 2'));
63
  else if ( $type == 'select')
64
+ $values['options'] = serialize(array('','Option 1'));
65
  else if ($type == 'textarea')
66
  $values['field_options']['max'] = '5';
67
 
69
  }
70
 
71
  function setup_edit_vars($record){
72
+ global $frm_entry_meta, $frm_form;
73
 
74
  $values = array();
75
  $values['id'] = $record->id;
76
  $values['form_id'] = $record->form_id;
77
  foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default)
78
+ $values[$var] = htmlspecialchars(stripslashes(FrmAppHelper::get_param($var, $default)));
79
 
80
  $values['form_name'] = ($record->form_id)?($frm_form->getName( $record->form_id )):('');
81
 
82
  foreach (array('field_key' => $record->field_key, 'type' => $record->type, 'default_value'=> $record->default_value, 'field_order' => $record->field_order, 'required' => $record->required) as $var => $default)
83
+ $values[$var] = FrmAppHelper::get_param($var, $default);
84
 
85
  $values['options'] = unserialize($record->options);
86
  $field_options = unserialize($record->field_options);
95
  $values['default_blank'] = (isset($field_options['default_blank']))?($field_options['default_blank']):(0);
96
  $values['custom_html'] = (isset($field_options['custom_html']))? stripslashes($field_options['custom_html']): FrmFieldsHelper::get_default_html($record->type);
97
 
98
+ return apply_filters('frm_setup_edit_field_vars',$values);
99
  }
100
 
101
  function get_form_fields($form_id, $error=false){
154
  $error_class = in_array('field'.$field['id'], $error_keys) ? ' frm_blank_field':'';
155
  $html = str_replace('[error_class]', $error_class, $html);
156
 
157
+ //replace [entry_key]
158
+ $entry_key = (isset($_GET) and isset($_GET['entry'])) ? $_GET['entry'] : '';
159
+ $html = str_replace('[entry_key]', $entry_key, $html);
160
+
161
  //replace [input]
162
  ob_start();
163
  include(FRM_VIEWS_PATH.'/frm-fields/input.php');
classes/helpers/FrmFormsHelper.php CHANGED
@@ -24,40 +24,42 @@ class FrmFormsHelper{
24
  <?php
25
  }
26
 
27
- function forms_dropdown( $field_name, $field_value='', $blank=true, $field_id=false ){
28
- global $frm_app_controller, $frm_form;
29
  if (!$field_id)
30
  $field_id = $field_name;
31
 
32
  $forms = $frm_form->getAll("is_template=0 AND (status is NULL OR status = '' OR status = 'published')",' ORDER BY name');
33
  ?>
34
- <select name="<?php echo $field_name; ?>" id="<?php echo $field_id ?>" class="frm-dropdown">
35
  <?php if ($blank){ ?>
36
  <option value=""></option>
37
  <?php } ?>
38
  <?php foreach($forms as $form){ ?>
39
- <option value="<?php echo $form->id; ?>" <?php selected($field_value, $form->id); ?>><?php echo $form->name; ?></option>
40
  <?php } ?>
41
  </select>
42
  <?php
43
  }
44
 
45
  function setup_new_vars(){
46
- global $frm_app_controller, $frm_form, $frm_settings;
47
  $values = array();
48
  foreach (array('name' => __('Untitled Form', FRM_PLUGIN_NAME), 'description' => '') as $var => $default)
49
- $values[$var] = stripslashes($frm_app_controller->get_param($var, $default));
50
 
51
  $values['description'] = wpautop($values['description']);
52
 
53
  foreach (array('form_id' => '', 'logged_in' => '', 'editable' => '', 'default_template' => 0, 'is_template' => 0) as $var => $default)
54
- $values[$var] = stripslashes($frm_app_controller->get_param($var, $default));
55
 
56
- $values['form_key'] = ($_POST and isset($_POST['form_key']))?$_POST['form_key']:(FrmAppHelper::get_unique_key('', $frm_form->table_name, 'form_key'));
57
  $values['email_to'] = ($_POST and isset($_POST['options']['email_to'])) ? $_POST['options']['email_to'] : $frm_settings->email_to;
58
  $values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
59
  $values['submit_value'] = ($_POST and isset($_POST['options']['submit_value'])) ? $_POST['options']['submit_value'] : $frm_settings->submit_value;
 
60
  $values['success_msg'] = ($_POST and isset($_POST['options']['success_msg'])) ? $_POST['options']['success_msg'] : $frm_settings->success_msg;
 
61
  $values['akismet'] = ($_POST and isset($_POST['options']['akismet'])) ? 1 : 0;
62
  $values['before_html'] = FrmFormsHelper::get_default_html('before');
63
  $values['after_html'] = FrmFormsHelper::get_default_html('after');
@@ -66,11 +68,11 @@ class FrmFormsHelper{
66
  }
67
 
68
  function setup_edit_vars($values, $record){
69
- global $frm_form, $frm_app_controller;
70
 
71
- $values['form_key'] = $frm_app_controller->get_param('form_key', $record->form_key);
72
- $values['default_template'] = $frm_app_controller->get_param('default_template', $record->default_template);
73
- $values['is_template'] = $frm_app_controller->get_param('is_template', $record->is_template);
74
 
75
  return apply_filters('frm_setup_edit_form_vars', $values);
76
  }
@@ -88,11 +90,13 @@ BEFORE_HTML;
88
  }
89
 
90
  function replace_shortcodes($html, $form, $title=false, $description=false){
91
- foreach (array('form_name' => $title,'form_description' => $description) as $code => $show){
92
  if ($code == 'form_name')
93
  $replace_with = stripslashes($form->name);
94
  else if ($code == 'form_description')
95
  $replace_with = wpautop(stripslashes($form->description));
 
 
96
 
97
  if (($show == true || $show == 'true') && $replace_with != '' ){
98
  $html = str_replace('[if '.$code.']','',$html);
@@ -103,7 +107,32 @@ BEFORE_HTML;
103
  $html = str_replace('['.$code.']', $replace_with, $html);
104
  }
105
 
106
- return $html;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
 
109
  }
24
  <?php
25
  }
26
 
27
+ function forms_dropdown( $field_name, $field_value='', $blank=true, $field_id=false, $onchange=false ){
28
+ global $frm_form;
29
  if (!$field_id)
30
  $field_id = $field_name;
31
 
32
  $forms = $frm_form->getAll("is_template=0 AND (status is NULL OR status = '' OR status = 'published')",' ORDER BY name');
33
  ?>
34
+ <select name="<?php echo $field_name; ?>" id="<?php echo $field_id ?>" class="frm-dropdown" <?php if ($onchange) echo 'onchange="'.$onchange.'"'; ?>>
35
  <?php if ($blank){ ?>
36
  <option value=""></option>
37
  <?php } ?>
38
  <?php foreach($forms as $form){ ?>
39
+ <option value="<?php echo $form->id; ?>" <?php selected($field_value, $form->id); ?>><?php echo stripslashes($form->name); ?></option>
40
  <?php } ?>
41
  </select>
42
  <?php
43
  }
44
 
45
  function setup_new_vars(){
46
+ global $frmdb, $frm_settings;
47
  $values = array();
48
  foreach (array('name' => __('Untitled Form', FRM_PLUGIN_NAME), 'description' => '') as $var => $default)
49
+ $values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
50
 
51
  $values['description'] = wpautop($values['description']);
52
 
53
  foreach (array('form_id' => '', 'logged_in' => '', 'editable' => '', 'default_template' => 0, 'is_template' => 0) as $var => $default)
54
+ $values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
55
 
56
+ $values['form_key'] = ($_POST and isset($_POST['form_key']))?$_POST['form_key']:(FrmAppHelper::get_unique_key('', $frmdb->forms, 'form_key'));
57
  $values['email_to'] = ($_POST and isset($_POST['options']['email_to'])) ? $_POST['options']['email_to'] : $frm_settings->email_to;
58
  $values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
59
  $values['submit_value'] = ($_POST and isset($_POST['options']['submit_value'])) ? $_POST['options']['submit_value'] : $frm_settings->submit_value;
60
+ $values['success_action'] = ($_POST and isset($_POST['options']['success_action'])) ? $_POST['options']['success_action'] : 'message';
61
  $values['success_msg'] = ($_POST and isset($_POST['options']['success_msg'])) ? $_POST['options']['success_msg'] : $frm_settings->success_msg;
62
+ $values['show_form'] = ($_POST and isset($_POST['options']['show_form'])) ? 1 : 0;
63
  $values['akismet'] = ($_POST and isset($_POST['options']['akismet'])) ? 1 : 0;
64
  $values['before_html'] = FrmFormsHelper::get_default_html('before');
65
  $values['after_html'] = FrmFormsHelper::get_default_html('after');
68
  }
69
 
70
  function setup_edit_vars($values, $record){
71
+ global $frm_form;
72
 
73
+ $values['form_key'] = FrmAppHelper::get_param('form_key', $record->form_key);
74
+ $values['default_template'] = FrmAppHelper::get_param('default_template', $record->default_template);
75
+ $values['is_template'] = FrmAppHelper::get_param('is_template', $record->is_template);
76
 
77
  return apply_filters('frm_setup_edit_form_vars', $values);
78
  }
90
  }
91
 
92
  function replace_shortcodes($html, $form, $title=false, $description=false){
93
+ foreach (array('form_name' => $title,'form_description' => $description, 'entry_key' => true) as $code => $show){
94
  if ($code == 'form_name')
95
  $replace_with = stripslashes($form->name);
96
  else if ($code == 'form_description')
97
  $replace_with = wpautop(stripslashes($form->description));
98
+ else if($code == 'entry_key' and isset($_GET) and isset($_GET['entry']))
99
+ $replace_with = $_GET['entry'];
100
 
101
  if (($show == true || $show == 'true') && $replace_with != '' ){
102
  $html = str_replace('[if '.$code.']','',$html);
107
  $html = str_replace('['.$code.']', $replace_with, $html);
108
  }
109
 
110
+ return apply_filters('frm_form_replace_shortcodes', $html, $form);
111
+ }
112
+
113
+ function get_default_email(){
114
+ $email = <<<DEFAULT_EMAIL
115
+ <table style="border-bottom: 1px solid rgb(238, 238, 238); width: 100%; font-size: 12px; line-height: 135%; font-family: Lucida Grande,Tahoma,Arial,sans-serif;" cellspacing="0">
116
+ <tbody><tr style="background-color: rgb(245, 245, 245);">
117
+ <th style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px; vertical-align: top; color: rgb(34, 34, 34); text-align: left;">
118
+ Number
119
+ </th>
120
+ <td style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px 7px 0pt; vertical-align: top; color: rgb(51, 51, 51); width: 60%;">
121
+ <div>89</div>
122
+
123
+ </td>
124
+ </tr>
125
+ <tr style="background-color: rgb(255, 255, 255);">
126
+ <th style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px; vertical-align: top; color: rgb(34, 34, 34); text-align: left;">
127
+ Email
128
+ </th>
129
+ <td style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px 7px 0pt; vertical-align: top; color: rgb(51, 51, 51); width: 60%;">
130
+ <a href="mailto:stephywells@gmail.com" target="_blank">stephywells@gmail.com</a>
131
+ </td>
132
+ </tr>
133
+ </tbody></table>
134
+ DEFAULT_EMAIL;
135
+ return $email;
136
  }
137
 
138
  }
classes/models/FrmDb.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class FrmDb{
3
+ var $fields;
4
+ var $forms;
5
+ var $entries;
6
+ var $entry_metas;
7
+
8
+ function FrmDb(){
9
+ global $wpdb;
10
+ $this->fields = $wpdb->prefix . "frm_fields";
11
+ $this->forms = $wpdb->prefix . "frm_forms";
12
+ $this->entries = $wpdb->prefix . "frm_items";
13
+ $this->entry_metas = $wpdb->prefix . "frm_item_metas";
14
+ }
15
+
16
+ function upgrade(){
17
+ global $wpdb, $frm_form, $frm_field;
18
+ $db_version = 1.03; // this is the version of the database we're moving to
19
+ $old_db_version = get_option('frm_db_version');
20
+
21
+ if ($db_version != $old_db_version){
22
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
23
+
24
+ $charset_collate = '';
25
+ if( $wpdb->has_cap( 'collation' ) ){
26
+ if( !empty($wpdb->charset) )
27
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
28
+ if( !empty($wpdb->collate) )
29
+ $charset_collate .= " COLLATE $wpdb->collate";
30
+ }
31
+
32
+ /* Create/Upgrade Fields Table */
33
+ $sql = "CREATE TABLE {$this->fields} (
34
+ id int(11) NOT NULL auto_increment,
35
+ field_key varchar(255) default NULL,
36
+ name varchar(255) default NULL,
37
+ description text default NULL,
38
+ type text default NULL,
39
+ default_value longtext default NULL,
40
+ options longtext default NULL,
41
+ field_order int(11) default 0,
42
+ required int(1) default NULL,
43
+ field_options longtext default NULL,
44
+ form_id int(11) default NULL,
45
+ created_at datetime NOT NULL,
46
+ PRIMARY KEY (id),
47
+ KEY form_id (form_id)
48
+ ) {$charset_collate};";
49
+
50
+ dbDelta($sql);
51
+
52
+ /* Create/Upgrade Forms Table */
53
+ $sql = "CREATE TABLE {$this->forms} (
54
+ id int(11) NOT NULL auto_increment,
55
+ form_key varchar(255) default NULL,
56
+ name varchar(255) default NULL,
57
+ description text default NULL,
58
+ logged_in boolean default NULL,
59
+ editable boolean default NULL,
60
+ is_template boolean default 0,
61
+ default_template boolean default 0,
62
+ status varchar(255) default NULL,
63
+ prli_link_id int(11) default NULL,
64
+ options longtext default NULL,
65
+ notifications longtext default NULL,
66
+ created_at datetime NOT NULL,
67
+ PRIMARY KEY (id)
68
+ ) {$charset_collate};";
69
+
70
+ dbDelta($sql);
71
+
72
+ /* Create/Upgrade Items Table */
73
+ $sql = "CREATE TABLE {$this->entries} (
74
+ id int(11) NOT NULL auto_increment,
75
+ item_key varchar(255) default NULL,
76
+ name varchar(255) default NULL,
77
+ description text default NULL,
78
+ ip text default NULL,
79
+ form_id int(11) default NULL,
80
+ created_at datetime NOT NULL,
81
+ PRIMARY KEY (id),
82
+ KEY form_id (form_id)
83
+ ) {$charset_collate};";
84
+
85
+ dbDelta($sql);
86
+
87
+ /* Create/Upgrade Meta Table */
88
+ $sql = "CREATE TABLE {$this->entry_metas} (
89
+ id int(11) NOT NULL auto_increment,
90
+ meta_key varchar(255) default NULL,
91
+ meta_value longtext default NULL,
92
+ field_id int(11) NOT NULL,
93
+ item_id int(11) NOT NULL,
94
+ created_at datetime NOT NULL,
95
+ PRIMARY KEY (id),
96
+ KEY field_id (field_id),
97
+ KEY item_id (item_id)
98
+ ) {$charset_collate};";
99
+
100
+ dbDelta($sql);
101
+
102
+ /**** MIGRATE DATA ****/
103
+ if ($db_version == 1.03){
104
+ global $frm_entry;
105
+ $all_entries = $frm_entry->getAll();
106
+ foreach($all_entries as $ent){
107
+ $opts = maybe_unserialize($ent->description);
108
+ if(is_array($opts))
109
+ $wpdb->update( $this->entries, array('ip' => $opts['ip']), array( 'id' => $ent->id ) );
110
+ }
111
+ }
112
+
113
+ /**** ADD DEFAULT TEMPLATES ****/
114
+ FrmFormsController::add_default_templates(FRM_TEMPLATES_PATH);
115
+
116
+
117
+ /***** SAVE DB VERSION *****/
118
+ update_option('frm_db_version',$db_version);
119
+ }
120
+
121
+ do_action('frm_after_install');
122
+ }
123
+
124
+ function get_count($table, $args=array()){
125
+ global $wpdb;
126
+ extract(FrmDb::get_where_clause_and_values( $args ));
127
+
128
+ $query = "SELECT COUNT(*) FROM {$table}{$where}";
129
+ $query = $wpdb->prepare($query, $values);
130
+ return $wpdb->get_var($query);
131
+ }
132
+
133
+ function get_where_clause_and_values( $args ){
134
+ $where = '';
135
+ $values = array();
136
+ if(is_array($args)){
137
+ foreach($args as $key => $value){
138
+ if(!empty($where))
139
+ $where .= ' AND';
140
+ else
141
+ $where .= ' WHERE';
142
+
143
+ $where .= " {$key}=";
144
+
145
+ if(is_numeric($value))
146
+ $where .= "%d";
147
+ else
148
+ $where .= "%s";
149
+
150
+ $values[] = $value;
151
+ }
152
+ }
153
+
154
+ return compact('where','values');
155
+ }
156
+
157
+ function get_one_record($table, $args=array()){
158
+ global $wpdb;
159
+
160
+ extract(FrmDb::get_where_clause_and_values( $args ));
161
+
162
+ $query = "SELECT * FROM {$table}{$where} LIMIT 1";
163
+ $query = $wpdb->prepare($query, $values);
164
+ return $wpdb->get_row($query);
165
+ }
166
+
167
+ function get_records($table, $args=array(), $order_by='', $limit=''){
168
+ global $wpdb;
169
+
170
+ extract(FrmDb::get_where_clause_and_values( $args ));
171
+
172
+ if(!empty($order_by))
173
+ $order_by = " ORDER BY {$order_by}";
174
+
175
+ if(!empty($limit))
176
+ $limit = " LIMIT {$limit}";
177
+
178
+ $query = "SELECT * FROM {$table}{$where}{$order_by}{$limit}";
179
+ $query = $wpdb->prepare($query, $values);
180
+ return $wpdb->get_results($query);
181
+ }
182
+
183
+ function uninstall(){
184
+ if(!current_user_can('administrator'))
185
+ wp_die(__('You don\'t have permission to do that!', 'formidable'));
186
+
187
+ global $frm_update, $wpdb;
188
+ $wpdb->query('DROP TABLE IF EXISTS '. $this->fields);
189
+ $wpdb->query('DROP TABLE IF EXISTS '. $this->forms);
190
+ $wpdb->query('DROP TABLE IF EXISTS '. $this->entries);
191
+ $wpdb->query('DROP TABLE IF EXISTS '. $this->entry_metas);
192
+
193
+ delete_option('frm_options');
194
+ delete_option('frm_db_version');
195
+ delete_option($frm_update->pro_last_checked_store);
196
+ delete_option($frm_update->pro_auth_store);
197
+ delete_option($frm_update->pro_cred_store);
198
+
199
+ do_action('frm_after_uninstall');
200
+ }
201
+ }
202
+ ?>
classes/models/FrmEntry.php CHANGED
@@ -3,23 +3,21 @@ class FrmEntry{
3
  var $table_name;
4
 
5
  function FrmEntry(){
6
- global $wpdb;
7
- $this->table_name = "{$wpdb->prefix}frm_items";
8
  }
9
 
10
  function create( $values ){
11
- global $wpdb, $frm_entry_meta;
12
 
13
  $new_values = array();
14
- $new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $this->table_name, 'item_key');
15
  $new_values['name'] = isset($values['name']) ? $values['name'] : $values['item_key'];
16
- $new_values['description'] = serialize(array('ip' => $_SERVER['REMOTE_ADDR'],
17
- 'browser' => $_SERVER['HTTP_USER_AGENT'],
18
  'referrer' => $_SERVER['HTTP_REFERER']));
19
  $new_values['form_id'] = isset($values['form_id']) ? (int)$values['form_id']: null;
20
  $new_values['created_at'] = current_time('mysql', 1);
21
 
22
- $query_results = $wpdb->insert( $this->table_name, $new_values );
23
 
24
  if($query_results){
25
  $entry_id = $wpdb->insert_id;
@@ -32,37 +30,38 @@ class FrmEntry{
32
  }
33
 
34
  function duplicate( $id ){
35
- global $wpdb, $frm_entry, $frm_entry_meta;
36
 
37
  $values = $frm_entry->getOne( $id );
38
 
39
  $new_values = array();
40
- $new_values['item_key'] = FrmAppHelper::get_unique_key('', $this->table_name, 'item_key');
41
  $new_values['name'] = $values->name;
42
  $new_values['form_id'] = ($values->form_id)?(int)$values->form_id: null;
43
  $new_values['created_at'] = current_time('mysql', 1);
44
 
45
- $query_results = $wpdb->insert( $this->table_name, $new_values );
46
-
47
  if($query_results){
 
48
  $frm_entry_meta->duplicate_entry_metas($id);
49
- return $wpdb->insert_id;
50
  }else
51
  return false;
52
  }
53
 
54
  function update( $id, $values ){
55
- global $wpdb, $frm_entry_meta, $frm_field;
56
 
57
  $new_values = array();
 
58
  if (isset($values['item_key']))
59
- $new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $this->table_name, 'item_key', $id);
60
-
61
  $new_values['name'] = isset($values['name'])?$values['name']:'';
62
  $new_values['form_id'] = isset($values['form_id'])?(int)$values['form_id']: null;
63
  //$new_values['parent_item_id'] = isset($values['parent_item_id'])?(int)$values['parent_item_id']: null;
64
 
65
- $query_results = $wpdb->update( $this->table_name, $new_values, array( 'id' => $id ) );
66
 
67
  if (isset($values['item_meta']))
68
  $frm_entry_meta->update_entry_metas($id, $values['item_meta']);
@@ -71,31 +70,28 @@ class FrmEntry{
71
  }
72
 
73
  function destroy( $id ){
74
- global $wpdb, $frm_entry_meta;
75
 
76
  // Disconnect the child items from this parent item
77
- //$query_results = $wpdb->update( $this->table_name, array('parent_item_id' => null), array( 'parent_item_id' => $id ) );
78
 
79
- $reset = 'DELETE FROM ' . $frm_entry_meta->table_name . ' WHERE item_id=' . $id;
80
- $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;
81
 
82
  $wpdb->query($reset);
83
  return $wpdb->query($destroy);
84
  }
85
 
86
  function update_form( $id, $value, $form_id ){
87
- global $wpdb;
88
  $form_id = isset($value) ? $form_id : NULL;
89
- return $wpdb->update( $this->table_name, array('form_id' => $form_id), array( 'id' => $id ) );
90
  }
91
 
92
  function getOne( $id ){
93
- global $wpdb, $frm_form;
94
- $query = 'SELECT it.*, ' .
95
- 'fr.name as form_name, ' .
96
- 'fr.form_key as form_key ' .
97
- 'FROM '. $this->table_name . ' it ' .
98
- 'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id';
99
  if(is_numeric($id))
100
  $query .= ' WHERE it.id=' . $id;
101
  else
@@ -104,8 +100,8 @@ class FrmEntry{
104
  }
105
 
106
  function exists( $id ){
107
- global $wpdb, $frm_form;
108
- $query = 'SELECT id FROM '. $this->table_name;
109
  if(is_numeric($id))
110
  $query .= ' WHERE id=' . $id;
111
  else
@@ -118,21 +114,17 @@ class FrmEntry{
118
  }
119
 
120
  function getAll($where = '', $order_by = '', $limit = ''){
121
- global $wpdb, $frm_form, $frm_app_helper;
122
- $query = 'SELECT it.*, ' .
123
- 'fr.name as form_name, ' .
124
- 'fr.form_key as form_key ' .
125
- 'FROM '. $this->table_name . ' it ' .
126
- 'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id' .
127
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
128
  return $wpdb->get_results($query);
129
  }
130
 
131
  // Pagination Methods
132
  function getRecordCount($where=""){
133
- global $wpdb, $frm_app_helper, $frm_form;
134
- $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' it ' .
135
- 'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id' .
136
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
137
  return $wpdb->get_var($query);
138
  }
@@ -142,26 +134,24 @@ class FrmEntry{
142
  }
143
 
144
  function getPage($current_p,$p_size, $where = "", $order_by = ''){
145
- global $wpdb, $frm_app_helper, $frm_form;
146
  $end_index = $current_p * $p_size;
147
  $start_index = $end_index - $p_size;
148
- $query = 'SELECT it.*, ' .
149
- 'fr.name as form_name ' .
150
- 'FROM ' . $this->table_name . ' it ' .
151
- 'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id' .
152
- $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . ' ' .
153
- 'LIMIT ' . $start_index . ',' . $p_size . ';';
154
  $results = $wpdb->get_results($query);
155
  return $results;
156
  }
157
 
158
  function validate( $values ){
159
- global $wpdb, $frm_field, $frm_entry_meta;
160
 
161
  $errors = array();
162
 
163
  if( !isset($values['item_key']) or $values['item_key'] == '' )
164
- $_POST['item_key'] = $values['item_key'] = FrmAppHelper::get_unique_key('', $this->table_name, 'item_key');
165
 
166
  $where = apply_filters('frm_posted_field_ids', 'fi.form_id='.$values['form_id']);
167
  $posted_fields = $frm_field->getAll($where, ' ORDER BY fi.field_order');
@@ -173,7 +163,7 @@ class FrmEntry{
173
  $value = $values['item_meta'][$posted_field->id];
174
 
175
  if (isset($field_options['default_blank']) and $field_options['default_blank'] and $value == $posted_field->default_value)
176
- $value = '';
177
 
178
  if ($posted_field->required == '1' and $value == ''){
179
  $errors['field'.$posted_field->id] = (!isset($field_options['blank']) or $field_options['blank'] == __('Untitled cannot be blank', FRM_PLUGIN_NAME) or $field_options['blank'] == '') ? ($posted_field->name . ' '. __('can\'t be blank', FRM_PLUGIN_NAME)) : $field_options['blank'];
3
  var $table_name;
4
 
5
  function FrmEntry(){
 
 
6
  }
7
 
8
  function create( $values ){
9
+ global $wpdb, $frmdb, $frm_entry_meta;
10
 
11
  $new_values = array();
12
+ $new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $frmdb->entries, 'item_key');
13
  $new_values['name'] = isset($values['name']) ? $values['name'] : $values['item_key'];
14
+ $new_values['ip'] = $_SERVER['REMOTE_ADDR'];
15
+ $new_values['description'] = serialize(array('browser' => $_SERVER['HTTP_USER_AGENT'],
16
  'referrer' => $_SERVER['HTTP_REFERER']));
17
  $new_values['form_id'] = isset($values['form_id']) ? (int)$values['form_id']: null;
18
  $new_values['created_at'] = current_time('mysql', 1);
19
 
20
+ $query_results = $wpdb->insert( $frmdb->entries, $new_values );
21
 
22
  if($query_results){
23
  $entry_id = $wpdb->insert_id;
30
  }
31
 
32
  function duplicate( $id ){
33
+ global $wpdb, $frmdb, $frm_entry, $frm_entry_meta;
34
 
35
  $values = $frm_entry->getOne( $id );
36
 
37
  $new_values = array();
38
+ $new_values['item_key'] = FrmAppHelper::get_unique_key('', $frmdb->entries, 'item_key');
39
  $new_values['name'] = $values->name;
40
  $new_values['form_id'] = ($values->form_id)?(int)$values->form_id: null;
41
  $new_values['created_at'] = current_time('mysql', 1);
42
 
43
+ $query_results = $wpdb->insert( $frmdb->entries, $new_values );
 
44
  if($query_results){
45
+ $entry_id = $wpdb->insert_id;
46
  $frm_entry_meta->duplicate_entry_metas($id);
47
+ return $entry_id;
48
  }else
49
  return false;
50
  }
51
 
52
  function update( $id, $values ){
53
+ global $wpdb, $frmdb, $frm_entry_meta, $frm_field;
54
 
55
  $new_values = array();
56
+
57
  if (isset($values['item_key']))
58
+ $new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $frmdb->entries, 'item_key', $id);
59
+
60
  $new_values['name'] = isset($values['name'])?$values['name']:'';
61
  $new_values['form_id'] = isset($values['form_id'])?(int)$values['form_id']: null;
62
  //$new_values['parent_item_id'] = isset($values['parent_item_id'])?(int)$values['parent_item_id']: null;
63
 
64
+ $query_results = $wpdb->update( $frmdb->entries, $new_values, array( 'id' => $id ) );
65
 
66
  if (isset($values['item_meta']))
67
  $frm_entry_meta->update_entry_metas($id, $values['item_meta']);
70
  }
71
 
72
  function destroy( $id ){
73
+ global $wpdb, $frmdb;
74
 
75
  // Disconnect the child items from this parent item
76
+ //$query_results = $wpdb->update( $frmdb->entries, array('parent_item_id' => null), array( 'parent_item_id' => $id ) );
77
 
78
+ $reset = 'DELETE FROM ' . $frmdb->entry_metas . ' WHERE item_id=' . $id;
79
+ $destroy = 'DELETE FROM ' . $frmdb->entries . ' WHERE id=' . $id;
80
 
81
  $wpdb->query($reset);
82
  return $wpdb->query($destroy);
83
  }
84
 
85
  function update_form( $id, $value, $form_id ){
86
+ global $wpdb, $frmdb;
87
  $form_id = isset($value) ? $form_id : NULL;
88
+ return $wpdb->update( $frmdb->entries, array('form_id' => $form_id), array( 'id' => $id ) );
89
  }
90
 
91
  function getOne( $id ){
92
+ global $wpdb, $frmdb;
93
+ $query = "SELECT it.*, fr.name as form_name, fr.form_key as form_key FROM $frmdb->entries it
94
+ LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id";
 
 
 
95
  if(is_numeric($id))
96
  $query .= ' WHERE it.id=' . $id;
97
  else
100
  }
101
 
102
  function exists( $id ){
103
+ global $wpdb, $frmdb;
104
+ $query = "SELECT id FROM $frmdb->entries";
105
  if(is_numeric($id))
106
  $query .= ' WHERE id=' . $id;
107
  else
114
  }
115
 
116
  function getAll($where = '', $order_by = '', $limit = ''){
117
+ global $wpdb, $frmdb, $frm_app_helper;
118
+ $query = "SELECT it.*, fr.name as form_name,fr.form_key as form_key
119
+ FROM $frmdb->entries it LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
 
 
 
120
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
121
  return $wpdb->get_results($query);
122
  }
123
 
124
  // Pagination Methods
125
  function getRecordCount($where=""){
126
+ global $wpdb, $frmdb, $frm_app_helper;
127
+ $query = "SELECT COUNT(*) FROM $frmdb->entries it LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
 
128
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
129
  return $wpdb->get_var($query);
130
  }
134
  }
135
 
136
  function getPage($current_p,$p_size, $where = "", $order_by = ''){
137
+ global $wpdb, $frmdb, $frm_app_helper;
138
  $end_index = $current_p * $p_size;
139
  $start_index = $end_index - $p_size;
140
+ $query = "SELECT it.*, fr.name as form_name FROM $frmdb->entries it
141
+ LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
142
+ $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by .
143
+ " LIMIT $start_index,$p_size;";
 
 
144
  $results = $wpdb->get_results($query);
145
  return $results;
146
  }
147
 
148
  function validate( $values ){
149
+ global $wpdb, $frmdb, $frm_field, $frm_entry_meta;
150
 
151
  $errors = array();
152
 
153
  if( !isset($values['item_key']) or $values['item_key'] == '' )
154
+ $_POST['item_key'] = $values['item_key'] = FrmAppHelper::get_unique_key('', $frmdb->entries, 'item_key');
155
 
156
  $where = apply_filters('frm_posted_field_ids', 'fi.form_id='.$values['form_id']);
157
  $posted_fields = $frm_field->getAll($where, ' ORDER BY fi.field_order');
163
  $value = $values['item_meta'][$posted_field->id];
164
 
165
  if (isset($field_options['default_blank']) and $field_options['default_blank'] and $value == $posted_field->default_value)
166
+ $_POST['item_meta'][$posted_field->id] = $value = '';
167
 
168
  if ($posted_field->required == '1' and $value == ''){
169
  $errors['field'.$posted_field->id] = (!isset($field_options['blank']) or $field_options['blank'] == __('Untitled cannot be blank', FRM_PLUGIN_NAME) or $field_options['blank'] == '') ? ($posted_field->name . ' '. __('can\'t be blank', FRM_PLUGIN_NAME)) : $field_options['blank'];
classes/models/FrmEntryMeta.php CHANGED
@@ -3,12 +3,10 @@ class FrmEntryMeta{
3
  var $table_name;
4
 
5
  function FrmEntryMeta(){
6
- global $wpdb;
7
- $this->table_name = "{$wpdb->prefix}frm_item_metas";
8
  }
9
 
10
  function add_entry_meta($item_id, $field_id, $meta_key, $meta_value){
11
- global $wpdb;
12
 
13
  $new_values = array();
14
  $new_values['meta_key'] = $meta_key;
@@ -18,7 +16,7 @@ class FrmEntryMeta{
18
  $new_values['created_at'] = current_time('mysql', 1);
19
  $new_values = apply_filters('frm_add_entry_meta', $new_values);
20
 
21
- return $wpdb->insert( $this->table_name, $new_values );
22
  }
23
 
24
  function update_entry_meta($item_id, $field_id, $meta_key, $meta_value){
@@ -45,21 +43,21 @@ class FrmEntryMeta{
45
  }
46
 
47
  function delete_entry_meta($item_id, $field_id){
48
- global $wpdb;
49
- return $wpdb->query("DELETE FROM {$this->table_name} WHERE field_id={$field_id} AND item_id={$item_id}");
50
  }
51
 
52
  function delete_entry_metas($item_id){
53
- global $wpdb;
54
- return $wpdb->query("DELETE FROM {$this->table_name} WHERE item_id={$item_id}");
55
  }
56
 
57
  function get_entry_meta_by_field($item_id, $field_id, $return_var=false){
58
- global $wpdb;
59
  if (is_numeric($field_id))
60
- $query = "SELECT meta_value FROM {$this->table_name} WHERE field_id='{$field_id}' and item_id='{$item_id}'";
61
  else
62
- $query = "SELECT meta_value FROM {$this->table_name} it LEFT OUTER JOIN $frm_field->table_name fi ON it.field_id=fi.id WHERE fi.field_key='{$field_id}' and item_id='{$item_id}'";
63
  if($return_var)
64
  return $wpdb->get_var("{$query} LIMIT 1");
65
  else
@@ -67,8 +65,8 @@ class FrmEntryMeta{
67
  }
68
 
69
  function get_entry_meta($item_id,$meta_key,$return_var=true){
70
- global $wpdb;
71
- $query_str = "SELECT meta_value FROM {$this->table_name} WHERE meta_key=%s and item_id=%d";
72
  $query = $wpdb->prepare($query_str,$meta_key,$item_id);
73
 
74
  if($return_var)
@@ -78,39 +76,38 @@ class FrmEntryMeta{
78
  }
79
 
80
  function get_entry_metas($item_id){
81
- global $wpdb;
82
- return $wpdb->get_col("SELECT meta_value FROM {$this->table_name} WHERE item_id={$item_id}");
83
  }
84
 
85
- function get_entry_metas_for_field($field_id){
86
- global $wpdb;
87
- return $wpdb->get_col("SELECT meta_value FROM {$this->table_name} WHERE field_id={$field_id}");
 
 
 
 
 
88
  }
89
 
90
  function get_entry_meta_info($item_id){
91
- global $wpdb;
92
- return $wpdb->get_results("SELECT * FROM {$this->table_name} WHERE item_id={$item_id}");
93
  }
94
 
95
  function get_entry_meta_info_by_key($item_id, $meta_key){
96
- global $wpdb;
97
- $query_str = "SELECT * FROM {$this->table_name} WHERE meta_key=%s and item_id=%d";
98
  $query = $wpdb->prepare($query_str,$meta_key,$item_id);
99
 
100
  return $wpdb->get_results($query, 0);
101
  }
102
 
103
  function getAll($where = '', $order_by = '', $limit = ''){
104
- global $wpdb, $frm_field, $frm_app_helper;
105
- $query = 'SELECT it.*, ' .
106
- 'fi.type as field_type, ' .
107
- 'fi.field_key as field_key, ' .
108
- 'fi.required as required, ' .
109
- 'fi.form_id as field_form_id, ' .
110
- 'fi.name as field_name, ' .
111
- 'fi.options as fi_options '.
112
- 'FROM '. $this->table_name . ' it ' .
113
- 'LEFT OUTER JOIN ' . $frm_field->table_name . ' fi ON it.field_id=fi.id' .
114
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
115
 
116
  if ($limit == ' LIMIT 1')
@@ -121,8 +118,8 @@ class FrmEntryMeta{
121
  }
122
 
123
  function getEntryIds($where = '', $order_by = '', $limit = ''){
124
- global $wpdb, $frm_field, $frm_app_helper;
125
- $query = "SELECT DISTINCT it.item_id FROM $this->table_name it LEFT OUTER JOIN $frm_field->table_name fi ON it.field_id=fi.id". $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
126
  if ($limit == ' LIMIT 1')
127
  $results = $wpdb->get_var($query);
128
  else
@@ -132,14 +129,14 @@ class FrmEntryMeta{
132
  }
133
 
134
  function getRecordCount($where=""){
135
- global $wpdb, $frm_app_helper, $frm_field;
136
- $query = "SELECT COUNT(*) FROM {$this->table_name} it LEFT OUTER JOIN {$frm_field->table_name} fi ON it.field_id=fi.id" .
137
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
138
  return $wpdb->get_var($query);
139
  }
140
 
141
  function search_entry_metas($search, $meta_key='', $operator){
142
- global $wpdb, $frm_app_helper;
143
  if (is_array($search)){
144
  $where = '';
145
  foreach ($search as $field => $value){
@@ -151,11 +148,11 @@ class FrmEntryMeta{
151
  $where .= " meta_value {$operator} '%/{$value}/%' and";
152
  }
153
  $where .= " meta_key='{$meta_key}'";
154
- $query = "SELECT DISTINCT item_id FROM {$this->table_name}". $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
155
  }else{
156
  if ($operator == 'LIKE')
157
  $search = "%{$search}%";
158
- $query = $wpdb->prepare("SELECT DISTINCT item_id FROM {$this->table_name} WHERE meta_value {$operator} '{$search}' and meta_key='{$meta_key}'");
159
  }
160
  return $wpdb->get_col($query, 0);
161
  }
3
  var $table_name;
4
 
5
  function FrmEntryMeta(){
 
 
6
  }
7
 
8
  function add_entry_meta($item_id, $field_id, $meta_key, $meta_value){
9
+ global $wpdb, $frmdb;
10
 
11
  $new_values = array();
12
  $new_values['meta_key'] = $meta_key;
16
  $new_values['created_at'] = current_time('mysql', 1);
17
  $new_values = apply_filters('frm_add_entry_meta', $new_values);
18
 
19
+ return $wpdb->insert( $frmdb->entry_metas, $new_values );
20
  }
21
 
22
  function update_entry_meta($item_id, $field_id, $meta_key, $meta_value){
43
  }
44
 
45
  function delete_entry_meta($item_id, $field_id){
46
+ global $wpdb, $frmdb;
47
+ return $wpdb->query("DELETE FROM $frmdb->entry_metas WHERE field_id={$field_id} AND item_id={$item_id}");
48
  }
49
 
50
  function delete_entry_metas($item_id){
51
+ global $wpdb, $frmdb;
52
+ return $wpdb->query("DELETE FROM $frmdb->entry_metas WHERE item_id={$item_id}");
53
  }
54
 
55
  function get_entry_meta_by_field($item_id, $field_id, $return_var=false){
56
+ global $wpdb, $frmdb;
57
  if (is_numeric($field_id))
58
+ $query = "SELECT meta_value FROM $frmdb->entry_metas WHERE field_id='{$field_id}' and item_id='{$item_id}'";
59
  else
60
+ $query = "SELECT meta_value FROM $frmdb->entry_metas it LEFT OUTER JOIN $frmdb->fields fi ON it.field_id=fi.id WHERE fi.field_key='{$field_id}' and item_id='{$item_id}'";
61
  if($return_var)
62
  return $wpdb->get_var("{$query} LIMIT 1");
63
  else
65
  }
66
 
67
  function get_entry_meta($item_id,$meta_key,$return_var=true){
68
+ global $wpdb, $frmdb;
69
+ $query_str = "SELECT meta_value FROM $frmdb->entry_metas WHERE meta_key=%s and item_id=%d";
70
  $query = $wpdb->prepare($query_str,$meta_key,$item_id);
71
 
72
  if($return_var)
76
  }
77
 
78
  function get_entry_metas($item_id){
79
+ global $wpdb, $frmdb;
80
+ return $wpdb->get_col("SELECT meta_value FROM $frmdb->entry_metas WHERE item_id={$item_id}");
81
  }
82
 
83
+ function get_entry_metas_for_field($field_id, $order='', $limit='', $value=false){
84
+ global $wpdb, $frmdb;
85
+ $query = "SELECT em.meta_value FROM $frmdb->entry_metas em ";
86
+ $query .= (is_numeric($field_id)) ? "WHERE em.field_id='{$field_id}'" : "LEFT JOIN $frmdb->fields fi ON (em.field_id = fi.id) WHERE fi.field_key='{$field_id}'";
87
+ if($value)
88
+ $query .= " AND meta_value='$value'";
89
+ $query .= "{$order}{$limit}";
90
+ return $wpdb->get_col($query);
91
  }
92
 
93
  function get_entry_meta_info($item_id){
94
+ global $wpdb, $frmdb;
95
+ return $wpdb->get_results("SELECT * FROM $frmdb->entry_metas WHERE item_id={$item_id}");
96
  }
97
 
98
  function get_entry_meta_info_by_key($item_id, $meta_key){
99
+ global $wpdb, $frmdb;
100
+ $query_str = "SELECT * FROM $frmdb->entry_metas WHERE meta_key=%s and item_id=%d";
101
  $query = $wpdb->prepare($query_str,$meta_key,$item_id);
102
 
103
  return $wpdb->get_results($query, 0);
104
  }
105
 
106
  function getAll($where = '', $order_by = '', $limit = ''){
107
+ global $wpdb, $frmdb, $frm_field, $frm_app_helper;
108
+ $query = "SELECT it.*, fi.type as field_type, fi.field_key as field_key,
109
+ fi.required as required, fi.form_id as field_form_id, fi.name as field_name, fi.options as fi_options
110
+ FROM $frmdb->entry_metas it LEFT OUTER JOIN $frmdb->fields fi ON it.field_id=fi.id" .
 
 
 
 
 
 
111
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
112
 
113
  if ($limit == ' LIMIT 1')
118
  }
119
 
120
  function getEntryIds($where = '', $order_by = '', $limit = ''){
121
+ global $wpdb, $frmdb, $frm_app_helper;
122
+ $query = "SELECT DISTINCT it.item_id FROM $frmdb->entry_metas it LEFT OUTER JOIN $frmdb->fields fi ON it.field_id=fi.id". $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
123
  if ($limit == ' LIMIT 1')
124
  $results = $wpdb->get_var($query);
125
  else
129
  }
130
 
131
  function getRecordCount($where=""){
132
+ global $wpdb, $frmdb, $frm_app_helper;
133
+ $query = "SELECT COUNT(*) FROM $frmdb->entry_metas it LEFT OUTER JOIN $frmdb->fields fi ON it.field_id=fi.id" .
134
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
135
  return $wpdb->get_var($query);
136
  }
137
 
138
  function search_entry_metas($search, $meta_key='', $operator){
139
+ global $wpdb, $frmdb, $frm_app_helper;
140
  if (is_array($search)){
141
  $where = '';
142
  foreach ($search as $field => $value){
148
  $where .= " meta_value {$operator} '%/{$value}/%' and";
149
  }
150
  $where .= " meta_key='{$meta_key}'";
151
+ $query = "SELECT DISTINCT item_id FROM $frmdb->entry_metas". $frm_app_helper->prepend_and_or_where(' WHERE ', $where);
152
  }else{
153
  if ($operator == 'LIKE')
154
  $search = "%{$search}%";
155
+ $query = $wpdb->prepare("SELECT DISTINCT item_id FROM $frmdb->entry_metas WHERE meta_value {$operator} '{$search}' and meta_key='{$meta_key}'");
156
  }
157
  return $wpdb->get_col($query, 0);
158
  }
classes/models/FrmField.php CHANGED
@@ -3,16 +3,14 @@ class FrmField{
3
  var $table_name;
4
 
5
  function FrmField(){
6
- global $wpdb;
7
- $this->table_name = "{$wpdb->prefix}frm_fields";
8
  }
9
 
10
  function create( $values, $return=true ){
11
- global $wpdb;
12
 
13
  $new_values = array();
14
  $key = isset($values['field_key']) ? $values['field_key'] : $values['name'];
15
- $new_values['field_key'] = FrmAppHelper::get_unique_key($key, $this->table_name, 'field_key');
16
 
17
  foreach (array('name','description','type','default_value','options') as $col)
18
  $new_values[$col] = stripslashes($values[$col]);
@@ -23,7 +21,7 @@ class FrmField{
23
  $new_values['field_options'] = serialize($values['field_options']);
24
  $new_values['created_at'] = current_time('mysql', 1);
25
 
26
- $query_results = $wpdb->insert( $this->table_name, $new_values );
27
  if($return){
28
  if($query_results)
29
  return $wpdb->insert_id;
@@ -33,10 +31,11 @@ class FrmField{
33
  }
34
 
35
  function duplicate($old_form_id, $form_id, $copy_keys=false, $blog_id=false){
 
36
  foreach ($this->getAll("fi.form_id = $old_form_id",'','',$blog_id) as $field){
37
  $values = array();
38
  $new_key = ($copy_keys) ? $field->field_key : '';
39
- $values['field_key'] = FrmAppHelper::get_unique_key($new_key, $this->table_name, 'field_key');
40
  $values['field_options'] = unserialize($field->field_options);
41
  $values['form_id'] = $form_id;
42
  foreach (array('name','description','type','default_value','options','field_order','required') as $col)
@@ -46,47 +45,47 @@ class FrmField{
46
  }
47
 
48
  function update( $id, $values ){
49
- global $wpdb;
50
 
51
  if (isset($values['field_key']))
52
- $values['field_key'] = FrmAppHelper::get_unique_key($values['field_key'], $this->table_name, 'field_key', $id);
53
 
54
  if (isset($values['field_options']))
55
  $values['field_options'] = serialize($values['field_options']);
56
 
57
- $query_results = $wpdb->update( $this->table_name, $values, array( 'id' => $id ) );
58
 
59
  return $query_results;
60
  }
61
 
62
  function destroy( $id ){
63
- global $wpdb, $frm_entry_meta;
64
 
65
- $reset = 'DELETE FROM ' . $frm_entry_meta->table_name . ' WHERE field_id=' . $id;
66
- $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;
67
 
68
  $wpdb->query($reset);
69
  return $wpdb->query($destroy);
70
  }
71
 
72
  function getOne( $id ){
73
- global $wpdb;
74
  if (is_numeric($id))
75
- $query = "SELECT * FROM {$this->table_name} WHERE id=" . $id;
76
  else
77
- $query = "SELECT * FROM {$this->table_name} WHERE field_key='" . $id . "'";
78
  return $wpdb->get_row($query);
79
  }
80
 
81
  function getAll($where = '', $order_by = '', $limit = '', $blog_id=false){
82
- global $wpdb, $frm_form, $frm_app_helper;
83
  if ($blog_id and IS_WPMU){
84
  global $wpmuBaseTablePrefix;
85
  $table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_fields";
86
  $form_table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_forms";
87
  }else{
88
- $table_name = $this->table_name;
89
- $form_table_name = $frm_form->table_name;
90
  }
91
  $query = 'SELECT fi.*, ' .
92
  'fr.name as form_name ' .
@@ -101,9 +100,9 @@ class FrmField{
101
  }
102
 
103
  function getIds($where = '', $order_by = '', $limit = ''){
104
- global $wpdb, $frm_form, $frm_app_helper;
105
- $query = "SELECT fi.id FROM $this->table_name fi " .
106
- 'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON fi.form_id=fr.id' .
107
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
108
  if ($limit == ' LIMIT 1')
109
  $results = $wpdb->get_row($query);
3
  var $table_name;
4
 
5
  function FrmField(){
 
 
6
  }
7
 
8
  function create( $values, $return=true ){
9
+ global $wpdb, $frmdb;
10
 
11
  $new_values = array();
12
  $key = isset($values['field_key']) ? $values['field_key'] : $values['name'];
13
+ $new_values['field_key'] = FrmAppHelper::get_unique_key($key, $frmdb->fields, 'field_key');
14
 
15
  foreach (array('name','description','type','default_value','options') as $col)
16
  $new_values[$col] = stripslashes($values[$col]);
21
  $new_values['field_options'] = serialize($values['field_options']);
22
  $new_values['created_at'] = current_time('mysql', 1);
23
 
24
+ $query_results = $wpdb->insert( $frmdb->fields, $new_values );
25
  if($return){
26
  if($query_results)
27
  return $wpdb->insert_id;
31
  }
32
 
33
  function duplicate($old_form_id, $form_id, $copy_keys=false, $blog_id=false){
34
+ global $frmdb;
35
  foreach ($this->getAll("fi.form_id = $old_form_id",'','',$blog_id) as $field){
36
  $values = array();
37
  $new_key = ($copy_keys) ? $field->field_key : '';
38
+ $values['field_key'] = FrmAppHelper::get_unique_key($new_key, $frmdb->fields, 'field_key');
39
  $values['field_options'] = unserialize($field->field_options);
40
  $values['form_id'] = $form_id;
41
  foreach (array('name','description','type','default_value','options','field_order','required') as $col)
45
  }
46
 
47
  function update( $id, $values ){
48
+ global $wpdb, $frmdb;
49
 
50
  if (isset($values['field_key']))
51
+ $values['field_key'] = FrmAppHelper::get_unique_key($values['field_key'], $frmdb->fields, 'field_key', $id);
52
 
53
  if (isset($values['field_options']))
54
  $values['field_options'] = serialize($values['field_options']);
55
 
56
+ $query_results = $wpdb->update( $frmdb->fields, $values, array( 'id' => $id ) );
57
 
58
  return $query_results;
59
  }
60
 
61
  function destroy( $id ){
62
+ global $wpdb, $frmdb;
63
 
64
+ $reset = "DELETE FROM $frmdb->entry_metas WHERE field_id=$id";
65
+ $destroy = "DELETE FROM $frmdb->fields WHERE id=$id";
66
 
67
  $wpdb->query($reset);
68
  return $wpdb->query($destroy);
69
  }
70
 
71
  function getOne( $id ){
72
+ global $wpdb, $frmdb;
73
  if (is_numeric($id))
74
+ $query = "SELECT * FROM $frmdb->fields WHERE id=$id";
75
  else
76
+ $query = "SELECT * FROM $frmdb->fields WHERE field_key='$id'";
77
  return $wpdb->get_row($query);
78
  }
79
 
80
  function getAll($where = '', $order_by = '', $limit = '', $blog_id=false){
81
+ global $wpdb, $frmdb, $frm_app_helper;
82
  if ($blog_id and IS_WPMU){
83
  global $wpmuBaseTablePrefix;
84
  $table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_fields";
85
  $form_table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_forms";
86
  }else{
87
+ $table_name = $frmdb->fields;
88
+ $form_table_name = $frmdb->forms;
89
  }
90
  $query = 'SELECT fi.*, ' .
91
  'fr.name as form_name ' .
100
  }
101
 
102
  function getIds($where = '', $order_by = '', $limit = ''){
103
+ global $wpdb, $frmdb, $frm_app_helper;
104
+ $query = "SELECT fi.id FROM $frmdb->fields fi " .
105
+ "LEFT OUTER JOIN $frmdb->forms fr ON fi.form_id=fr.id" .
106
  $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
107
  if ($limit == ' LIMIT 1')
108
  $results = $wpdb->get_row($query);
classes/models/FrmForm.php CHANGED
@@ -3,15 +3,13 @@ class FrmForm{
3
  var $table_name;
4
 
5
  function FrmForm(){
6
- global $wpdb;
7
- $this->table_name = "{$wpdb->prefix}frm_forms";
8
  }
9
 
10
  function create( $values ){
11
- global $wpdb, $frm_settings;
12
 
13
  $new_values = array();
14
- $new_values['form_key'] = FrmAppHelper::get_unique_key($values['form_key'], $this->table_name, 'form_key');
15
  $new_values['name'] = $values['name'];
16
  $new_values['description'] = $values['description'];
17
  $new_values['status'] = isset($values['status'])?$values['status']:'draft';
@@ -22,25 +20,26 @@ class FrmForm{
22
  $options['email_to'] = isset($values['options']['email_to']) ? $values['options']['email_to'] : '';
23
  $options['submit_value'] = isset($values['options']['submit_value']) ? $values['options']['submit_value'] : $frm_settings->submit_value;
24
  $options['success_msg'] = isset($values['options']['success_msg']) ? $values['options']['success_msg'] : $frm_settings->success_msg;
 
25
  $options['akismet'] = isset($values['options']['akismet']) ? 1 : 0;
26
  $options['before_html'] = isset($values['options']['before_html']) ? $values['options']['before_html'] : FrmFormsHelper::get_default_html('before');
27
  $options['after_html'] = isset($values['options']['after_html']) ? $values['options']['after_html'] : FrmFormsHelper::get_default_html('after');
28
  $new_values['options'] = serialize($options);
29
  $new_values['created_at'] = current_time('mysql', 1);
30
 
31
- $query_results = $wpdb->insert( $this->table_name, $new_values );
32
 
33
  return $wpdb->insert_id;
34
  }
35
 
36
  function duplicate( $id, $template=false, $copy_keys=false, $blog_id=false ){
37
- global $wpdb, $frm_form, $frm_field;
38
 
39
  $values = $frm_form->getOne( $id, $blog_id );
40
 
41
  $new_values = array();
42
  $new_key = ($copy_keys) ? $values->form_key : '';
43
- $new_values['form_key'] = FrmAppHelper::get_unique_key($new_key, $this->table_name, 'form_key');
44
  $new_values['name'] = $values->name;
45
  $new_values['description'] = $values->description;
46
  $new_values['status'] = (!$template)?'draft':'';
@@ -58,7 +57,7 @@ class FrmForm{
58
  $new_values['created_at'] = current_time('mysql', 1);
59
  $new_values['is_template'] = ($template) ? 1 : 0;
60
 
61
- $query_results = $wpdb->insert( $this->table_name, $new_values );
62
 
63
  if($query_results){
64
  $form_id = $wpdb->insert_id;
@@ -70,13 +69,13 @@ class FrmForm{
70
  }
71
 
72
  function update( $id, $values, $create_link = false ){
73
- global $wpdb, $frm_field, $frm_settings;
74
 
75
  if ($create_link)
76
  $values['status'] = 'published';
77
 
78
  if (isset($values['form_key']))
79
- $values['form_key'] = FrmAppHelper::get_unique_key($values['form_key'], $this->table_name, 'form_key', $id);
80
 
81
  $form_fields = array('form_key','name','description','status','prli_link_id');
82
 
@@ -87,6 +86,7 @@ class FrmForm{
87
  $options['email_to'] = isset($values['options']['email_to']) ? $values['options']['email_to'] : '';
88
  $options['submit_value'] = isset($values['options']['submit_value']) ? $values['options']['submit_value'] : $frm_settings->submit_value;
89
  $options['success_msg'] = isset($values['options']['success_msg']) ? $values['options']['success_msg'] : $frm_settings->success_msg;
 
90
  $options['akismet'] = isset($values['options']['akismet']) ? 1 : 0;
91
  $options['custom_style'] = isset($values['options']['custom_style']) ? 1 : 0;
92
  $options['before_html'] = isset($values['options']['before_html']) ? $values['options']['before_html'] : FrmFormsHelper::get_default_html('before');
@@ -100,10 +100,12 @@ class FrmForm{
100
  $new_values[$value_key] = $value;
101
  }
102
 
103
- $query_results = $wpdb->update( $this->table_name, $new_values, array( 'id' => $id ) );
104
 
105
  $all_fields = $frm_field->getAll("fi.form_id=$id");
106
- if ($all_fields && isset($values['item_meta'])){
 
 
107
  $existing_keys = array_keys($values['item_meta']);
108
  foreach ($all_fields as $fid){
109
  if (!in_array($fid->id, $existing_keys))
@@ -143,7 +145,7 @@ class FrmForm{
143
  $prli_link->update($form->prli_link_id, $prli); //update target url
144
  }else if($create_link && $form->is_template != 1){
145
  $link_id = prli_create_pretty_link(FrmFormsHelper::get_direct_link($values['form_key']), $values['form_key'], $form->name, $form->description, $group_id = '' );
146
- $wpdb->update( $this->table_name, array('prli_link_id' => $link_id), array( 'id' => $id ) );
147
  }
148
  }
149
  do_action('frm_update_form', $id, $values);
@@ -152,7 +154,7 @@ class FrmForm{
152
  }
153
 
154
  function destroy( $id ){
155
- global $wpdb, $frm_entry, $frm_field, $wp_rewrite;
156
 
157
  $form = $this->getOne($id);
158
  if (!$form or $form->default_template)
@@ -163,10 +165,10 @@ class FrmForm{
163
  $frm_entry->destroy($item->id);
164
 
165
  // Disconnect the fields from this form
166
- $query = 'DELETE FROM ' . $frm_field->table_name . ' WHERE form_id='.$id;
167
  $query_results = $wpdb->query($query);
168
 
169
- $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;
170
  $query_results = $wpdb->query($destroy);
171
  if ($query_results)
172
  do_action('frm_destroy_form', $id);
@@ -174,45 +176,45 @@ class FrmForm{
174
  }
175
 
176
  function getName( $id ){
177
- global $wpdb;
178
  if (is_numeric($id))
179
- $query = 'SELECT name FROM ' . $this->table_name . ' WHERE id=' . $id;
180
  else
181
- $query = "SELECT name FROM {$this->table_name} WHERE form_key='{$id}'";
182
 
183
  return $wpdb->get_var($query);
184
  }
185
 
186
  function getIdByName( $name ){
187
- global $wpdb;
188
- $query = 'SELECT id FROM ' . $this->table_name . ' WHERE name="' . $name . '";';
189
  return $wpdb->get_var($query);
190
  }
191
 
192
  function getIdByKey( $key ){
193
- global $wpdb;
194
- $query = "SELECT id FROM $this->table_name WHERE form_key='$key' LIMIT 1";
195
  return $wpdb->get_var($query);
196
  }
197
 
198
  function getOne( $id, $blog_id=false ){
199
- global $wpdb;
200
 
201
  if (is_numeric($id)){
202
  if ($blog_id and IS_WPMU){
203
  global $wpmuBaseTablePrefix;
204
  $table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_forms";
205
  }else
206
- $table_name = $this->table_name;
207
  $query = "SELECT * FROM $table_name WHERE id='$id'";
208
  }else
209
- $query = 'SELECT * FROM ' . $this->table_name . ' WHERE form_key="' . $id . '";';
210
  return $wpdb->get_row($query);
211
  }
212
 
213
  function getAll( $where = '', $order_by = '', $limit = '' ){
214
- global $wpdb, $frm_app_helper;
215
- $query = 'SELECT * FROM ' . $this->table_name . $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
216
  if ($limit == ' LIMIT 1')
217
  $results = $wpdb->get_row($query);
218
  else
@@ -221,7 +223,6 @@ class FrmForm{
221
  }
222
 
223
  function validate( $values ){
224
- global $wpcom_api_key;
225
  $errors = array();
226
 
227
  /*if( $values['form_key'] == null or $values['form_key'] == '' ){
3
  var $table_name;
4
 
5
  function FrmForm(){
 
 
6
  }
7
 
8
  function create( $values ){
9
+ global $wpdb, $frmdb, $frm_settings;
10
 
11
  $new_values = array();
12
+ $new_values['form_key'] = FrmAppHelper::get_unique_key($values['form_key'], $frmdb->forms, 'form_key');
13
  $new_values['name'] = $values['name'];
14
  $new_values['description'] = $values['description'];
15
  $new_values['status'] = isset($values['status'])?$values['status']:'draft';
20
  $options['email_to'] = isset($values['options']['email_to']) ? $values['options']['email_to'] : '';
21
  $options['submit_value'] = isset($values['options']['submit_value']) ? $values['options']['submit_value'] : $frm_settings->submit_value;
22
  $options['success_msg'] = isset($values['options']['success_msg']) ? $values['options']['success_msg'] : $frm_settings->success_msg;
23
+ $options['show_form'] = isset($values['options']['show_form']) ? 1 : 0;
24
  $options['akismet'] = isset($values['options']['akismet']) ? 1 : 0;
25
  $options['before_html'] = isset($values['options']['before_html']) ? $values['options']['before_html'] : FrmFormsHelper::get_default_html('before');
26
  $options['after_html'] = isset($values['options']['after_html']) ? $values['options']['after_html'] : FrmFormsHelper::get_default_html('after');
27
  $new_values['options'] = serialize($options);
28
  $new_values['created_at'] = current_time('mysql', 1);
29
 
30
+ $query_results = $wpdb->insert( $frmdb->forms, $new_values );
31
 
32
  return $wpdb->insert_id;
33
  }
34
 
35
  function duplicate( $id, $template=false, $copy_keys=false, $blog_id=false ){
36
+ global $wpdb, $frmdb, $frm_form, $frm_field;
37
 
38
  $values = $frm_form->getOne( $id, $blog_id );
39
 
40
  $new_values = array();
41
  $new_key = ($copy_keys) ? $values->form_key : '';
42
+ $new_values['form_key'] = FrmAppHelper::get_unique_key($new_key, $frmdb->forms, 'form_key');
43
  $new_values['name'] = $values->name;
44
  $new_values['description'] = $values->description;
45
  $new_values['status'] = (!$template)?'draft':'';
57
  $new_values['created_at'] = current_time('mysql', 1);
58
  $new_values['is_template'] = ($template) ? 1 : 0;
59
 
60
+ $query_results = $wpdb->insert( $frmdb->forms, $new_values );
61
 
62
  if($query_results){
63
  $form_id = $wpdb->insert_id;
69
  }
70
 
71
  function update( $id, $values, $create_link = false ){
72
+ global $wpdb, $frmdb, $frm_field, $frm_settings;
73
 
74
  if ($create_link)
75
  $values['status'] = 'published';
76
 
77
  if (isset($values['form_key']))
78
+ $values['form_key'] = FrmAppHelper::get_unique_key($values['form_key'], $frmdb->forms, 'form_key', $id);
79
 
80
  $form_fields = array('form_key','name','description','status','prli_link_id');
81
 
86
  $options['email_to'] = isset($values['options']['email_to']) ? $values['options']['email_to'] : '';
87
  $options['submit_value'] = isset($values['options']['submit_value']) ? $values['options']['submit_value'] : $frm_settings->submit_value;
88
  $options['success_msg'] = isset($values['options']['success_msg']) ? $values['options']['success_msg'] : $frm_settings->success_msg;
89
+ $options['show_form'] = isset($values['options']['show_form']) ? 1 : 0;
90
  $options['akismet'] = isset($values['options']['akismet']) ? 1 : 0;
91
  $options['custom_style'] = isset($values['options']['custom_style']) ? 1 : 0;
92
  $options['before_html'] = isset($values['options']['before_html']) ? $values['options']['before_html'] : FrmFormsHelper::get_default_html('before');
100
  $new_values[$value_key] = $value;
101
  }
102
 
103
+ $query_results = $wpdb->update( $frmdb->forms, $new_values, array( 'id' => $id ) );
104
 
105
  $all_fields = $frm_field->getAll("fi.form_id=$id");
106
+ if ($all_fields and isset($values['options'])){
107
+ if(!isset($values['item_meta']))
108
+ $values['item_meta'] = array();
109
  $existing_keys = array_keys($values['item_meta']);
110
  foreach ($all_fields as $fid){
111
  if (!in_array($fid->id, $existing_keys))
145
  $prli_link->update($form->prli_link_id, $prli); //update target url
146
  }else if($create_link && $form->is_template != 1){
147
  $link_id = prli_create_pretty_link(FrmFormsHelper::get_direct_link($values['form_key']), $values['form_key'], $form->name, $form->description, $group_id = '' );
148
+ $wpdb->update( $frmdb->forms, array('prli_link_id' => $link_id), array( 'id' => $id ) );
149
  }
150
  }
151
  do_action('frm_update_form', $id, $values);
154
  }
155
 
156
  function destroy( $id ){
157
+ global $wpdb, $frmdb, $frm_entry;
158
 
159
  $form = $this->getOne($id);
160
  if (!$form or $form->default_template)
165
  $frm_entry->destroy($item->id);
166
 
167
  // Disconnect the fields from this form
168
+ $query = "DELETE FROM $frmdb->fields WHERE form_id=$id";
169
  $query_results = $wpdb->query($query);
170
 
171
+ $destroy = "DELETE FROM $frmdb->forms WHERE id=$id";
172
  $query_results = $wpdb->query($destroy);
173
  if ($query_results)
174
  do_action('frm_destroy_form', $id);
176
  }
177
 
178
  function getName( $id ){
179
+ global $wpdb, $frmdb;
180
  if (is_numeric($id))
181
+ $query = "SELECT name FROM $frmdb->forms WHERE id=$id";
182
  else
183
+ $query = "SELECT name FROM $frmdb->forms WHERE form_key='{$id}'";
184
 
185
  return $wpdb->get_var($query);
186
  }
187
 
188
  function getIdByName( $name ){
189
+ global $wpdb, $frmdb;
190
+ $query = "SELECT id FROM $frmdb->forms WHERE name='$name';";
191
  return $wpdb->get_var($query);
192
  }
193
 
194
  function getIdByKey( $key ){
195
+ global $wpdb, $frmdb;
196
+ $query = "SELECT id FROM $frmdb->forms WHERE form_key='$key' LIMIT 1";
197
  return $wpdb->get_var($query);
198
  }
199
 
200
  function getOne( $id, $blog_id=false ){
201
+ global $wpdb, $frmdb;
202
 
203
  if (is_numeric($id)){
204
  if ($blog_id and IS_WPMU){
205
  global $wpmuBaseTablePrefix;
206
  $table_name = "{$wpmuBaseTablePrefix}{$blog_id}_frm_forms";
207
  }else
208
+ $table_name = $frmdb->forms;
209
  $query = "SELECT * FROM $table_name WHERE id='$id'";
210
  }else
211
+ $query = "SELECT * FROM $frmdb->forms WHERE form_key='$id'";
212
  return $wpdb->get_row($query);
213
  }
214
 
215
  function getAll( $where = '', $order_by = '', $limit = '' ){
216
+ global $wpdb, $frmdb, $frm_app_helper;
217
+ $query = 'SELECT * FROM ' . $frmdb->forms . $frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
218
  if ($limit == ' LIMIT 1')
219
  $results = $wpdb->get_row($query);
220
  else
223
  }
224
 
225
  function validate( $values ){
 
226
  $errors = array();
227
 
228
  /*if( $values['form_key'] == null or $values['form_key'] == '' ){
classes/models/FrmNotification.php CHANGED
@@ -5,6 +5,7 @@ class FrmNotification{
5
  }
6
 
7
  function entry_created($entry_id){
 
8
  global $frm_blogurl, $frm_form, $frm_entry, $frm_entry_meta;
9
 
10
  $frm_blogname = get_option('blogname');
@@ -18,7 +19,7 @@ class FrmNotification{
18
  return;
19
  $to_emails = explode(',', $to_email);
20
 
21
- $from_email = '';
22
 
23
  $opener = sprintf(__('%1$s form has been submitted on %2$s.', FRM_PLUGIN_NAME), $form->name, $frm_blogname) ."\r\n\r\n";
24
 
@@ -29,13 +30,13 @@ class FrmNotification{
29
  $val = implode(', ', $val);
30
 
31
  $entry_data .= $value->field_name . ': ' . $val . "\r\n\r\n";
32
- if ($from_email == '' and is_email($val))
33
- $from_email = $val;
34
  }
35
 
36
  $data = unserialize($entry->description);
37
  $user_data = __('User Information', FRM_PLUGIN_NAME) ."\r\n";
38
- $user_data .= __('IP Address', FRM_PLUGIN_NAME) . ": ". $data['ip'] ."\r\n";
39
  $user_data .= __('User-Agent (Browser/OS)', FRM_PLUGIN_NAME) . ": ". $data['browser']."\r\n";
40
  $user_data .= __('Referrer', FRM_PLUGIN_NAME) . ": ". $data['referrer']."\r\n";
41
 
@@ -44,47 +45,27 @@ class FrmNotification{
44
 
45
  if(is_array($to_emails)){
46
  foreach($to_emails as $to_email)
47
- $this->send_notification_email(trim($to_email), $subject, $mail_body, $from_email);
48
  }else
49
- $this->send_notification_email($to_email, $subject, $mail_body, $from_email);
50
  }
51
 
52
- function send_notification_email($to_email, $subject, $message, $from_email=''){
53
- $from_name = get_option('blogname'); //senders name
54
- $from_email = ($from_email == '') ? get_option('admin_email') : $from_email; //senders e-mail address
55
- $recipient = $to_email; //recipient
56
- $header = "From: {$from_email}\r\n"; //optional headerfields
57
- $subject = html_entity_decode(strip_tags(stripslashes($subject)));
58
- $message = html_entity_decode(strip_tags(stripslashes($message)));
59
- $signature = '';//$this->get_mail_signature();
 
 
60
 
61
- //$to_email = $user->email;
62
- //$to_name = $user->full_name;
63
- //$full_to_email = "{$to_name} <{$to_email}>";
64
-
65
- if (!wp_mail($recipient, $subject, $message.$signature, $header)){
66
- $header .= "Reply-To: {$from_email}\r\n Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\r\n";
67
  mail($recipient, $subject, $message, $header);
68
- }
69
 
70
- do_action('frm_notification', $recipient, $subject, $message.$signature);
71
  }
72
-
73
- function get_mail_signature(){
74
- $thanks = __('Thanks!', FRM_PLUGIN_NAME);
75
- $team = sprintf(__('%s Team', FRM_PLUGIN_NAME), get_option('blogname'));
76
- //$manage_subscription = sprintf(__('If you want to stop future emails like this from coming to you, please modify your form settings.', FRM_PLUGIN_NAME));
77
-
78
- $signature =<<<MAIL_SIGNATURE
79
-
80
 
81
- {$thanks}
82
-
83
- {$team}
84
-
85
- MAIL_SIGNATURE;
86
-
87
- return $signature;
88
- }
89
  }
90
  ?>
5
  }
6
 
7
  function entry_created($entry_id){
8
+ if (apply_filters('frm_stop_standard_email', false, $entry_id)) return;
9
  global $frm_blogurl, $frm_form, $frm_entry, $frm_entry_meta;
10
 
11
  $frm_blogname = get_option('blogname');
19
  return;
20
  $to_emails = explode(',', $to_email);
21
 
22
+ $reply_to = '';
23
 
24
  $opener = sprintf(__('%1$s form has been submitted on %2$s.', FRM_PLUGIN_NAME), $form->name, $frm_blogname) ."\r\n\r\n";
25
 
30
  $val = implode(', ', $val);
31
 
32
  $entry_data .= $value->field_name . ': ' . $val . "\r\n\r\n";
33
+ if ($reply_to == '' and is_email($val))
34
+ $reply_to = $val;
35
  }
36
 
37
  $data = unserialize($entry->description);
38
  $user_data = __('User Information', FRM_PLUGIN_NAME) ."\r\n";
39
+ $user_data .= __('IP Address', FRM_PLUGIN_NAME) . ": ". $entry->ip ."\r\n";
40
  $user_data .= __('User-Agent (Browser/OS)', FRM_PLUGIN_NAME) . ": ". $data['browser']."\r\n";
41
  $user_data .= __('Referrer', FRM_PLUGIN_NAME) . ": ". $data['referrer']."\r\n";
42
 
45
 
46
  if(is_array($to_emails)){
47
  foreach($to_emails as $to_email)
48
+ $this->send_notification_email(trim($to_email), $subject, $mail_body, $reply_to);
49
  }else
50
+ $this->send_notification_email($to_email, $subject, $mail_body, $reply_to);
51
  }
52
 
53
+ function send_notification_email($to_email, $subject, $message, $reply_to='', $reply_to_name='', $plain_text=true){
54
+ $content_type = ($plain_text) ? 'text/plain' : 'text/html';
55
+ $reply_to_name = ($reply_to_name == '') ? get_option('blogname') : $reply_to_name; //senders name
56
+ $reply_to = ($reply_to == '') ? get_option('admin_email') : $reply_to; //senders e-mail address
57
+ $recipient = $to_email; //recipient
58
+ $header = "From: {$reply_to_name} <{$reply_to}>\r\n Reply-To: {$reply_to_name} <{$reply_to}>\r\n Content-Type: {$content_type}; charset=\"" . get_option('blog_charset') . "\"\r\n"; //optional headerfields
59
+ $subject = html_entity_decode(strip_tags(stripslashes($subject)));
60
+ $message = stripslashes($message);
61
+ if($plain_text)
62
+ $message = html_entity_decode(strip_tags($message));
63
 
64
+ if (!wp_mail($recipient, $subject, $message, $header))
 
 
 
 
 
65
  mail($recipient, $subject, $message, $header);
 
66
 
67
+ do_action('frm_notification', $recipient, $subject, $message);
68
  }
 
 
 
 
 
 
 
 
69
 
 
 
 
 
 
 
 
 
70
  }
71
  ?>
classes/models/FrmSettings.php CHANGED
@@ -6,12 +6,27 @@ class FrmSettings{
6
  var $lock_keys;
7
 
8
  var $custom_style;
 
 
9
 
10
  var $success_msg;
11
  var $failed_msg;
12
  var $submit_value;
 
13
 
14
  var $email_to;
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
  function FrmSettings(){
17
  $this->set_default_options();
@@ -28,12 +43,33 @@ class FrmSettings{
28
 
29
  if(!isset($this->custom_style))
30
  $this->custom_style = true;
 
 
 
 
31
 
32
- $this->success_msg = __('Your responses were successfully submitted. Thank you!', FRM_PLUGIN_NAME);
33
- $this->failed_msg = __('We\'re sorry. There was an error processing your responses.', FRM_PLUGIN_NAME);
34
- $this->submit_value = __('Submit', FRM_PLUGIN_NAME);
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  $this->email_to = get_option('admin_email');
 
 
 
 
 
 
37
  }
38
 
39
  function validate($params,$errors){
@@ -44,9 +80,32 @@ class FrmSettings{
44
  }
45
 
46
  function update($params){
 
47
  $this->preview_page_id = (int)$params[ $this->preview_page_id_str ];
48
  $this->lock_keys = isset($params['frm_lock_keys']) ? 1 : 0;
 
49
  $this->custom_style = isset($params['frm_custom_style']) ? 1 : 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
  do_action( 'frm_update_settings', $params );
52
  }
@@ -59,4 +118,4 @@ class FrmSettings{
59
  }
60
 
61
  }
62
- ?>
6
  var $lock_keys;
7
 
8
  var $custom_style;
9
+ var $custom_stylesheet;
10
+ var $accordion_js;
11
 
12
  var $success_msg;
13
  var $failed_msg;
14
  var $submit_value;
15
+ var $login_msg;
16
 
17
  var $email_to;
18
+
19
+ var $frm_view_forms;
20
+ var $frm_edit_forms;
21
+ var $frm_delete_forms;
22
+ var $frm_change_settings;
23
+ var $frm_view_entries;
24
+ var $frm_create_entries;
25
+ var $frm_edit_entries;
26
+ var $frm_delete_entries;
27
+ var $frm_view_reports;
28
+ var $frm_edit_displays;
29
+
30
 
31
  function FrmSettings(){
32
  $this->set_default_options();
43
 
44
  if(!isset($this->custom_style))
45
  $this->custom_style = true;
46
+ if(!isset($this->custom_stylesheet))
47
+ $this->custom_stylesheet = false;
48
+ if(!isset($this->accordion_js))
49
+ $this->accordion_js = false;
50
 
51
+ if(!isset($this->success_msg))
52
+ $this->success_msg = __('Your responses were successfully submitted. Thank you!', FRM_PLUGIN_NAME);
53
+ $this->success_msg = stripslashes($this->success_msg);
54
+
55
+ if(!isset($this->failed_msg))
56
+ $this->failed_msg = __('We\'re sorry. There was an error processing your responses.', FRM_PLUGIN_NAME);
57
+ $this->failed_msg = stripslashes($this->failed_msg);
58
+
59
+ if(!isset($this->submit_value))
60
+ $this->submit_value = __('Submit', FRM_PLUGIN_NAME);
61
+
62
+ if(!isset($this->login_msg))
63
+ $this->login_msg = __('You do not have permission to view this form.', FRM_PLUGIN_NAME);
64
+ $this->login_msg = stripslashes($this->login_msg);
65
 
66
  $this->email_to = get_option('admin_email');
67
+
68
+ $frm_roles = FrmAppHelper::frm_capabilities();
69
+ foreach($frm_roles as $frm_role => $frm_role_description){
70
+ if(!isset($this->$frm_role))
71
+ $this->$frm_role = 'administrator';
72
+ }
73
  }
74
 
75
  function validate($params,$errors){
80
  }
81
 
82
  function update($params){
83
+ global $wp_roles;
84
  $this->preview_page_id = (int)$params[ $this->preview_page_id_str ];
85
  $this->lock_keys = isset($params['frm_lock_keys']) ? 1 : 0;
86
+
87
  $this->custom_style = isset($params['frm_custom_style']) ? 1 : 0;
88
+ $this->custom_stylesheet = isset($params['frm_custom_stylesheet']) ? 1 : 0;
89
+ $this->accordion_js = isset($params['frm_accordion_js']) ? 1 : 0;
90
+
91
+ $this->success_msg = isset($params['frm_success_msg']) ? $params['frm_success_msg'] : __('Your responses were successfully submitted. Thank you!', 'formidable');
92
+ $this->failed_msg = isset($params['frm_failed_msg']) ? $params['frm_failed_msg'] : __('We\'re sorry. There was an error processing your responses.', 'formidable');
93
+ $this->submit_value = isset($params['frm_submit_value']) ? $params['frm_submit_value'] : __('Submit', 'formidable');
94
+ $this->login_msg = isset($params['frm_login_msg']) ? $params['frm_login_msg'] : __('You must log in', 'formidable');
95
+
96
+ //update roles
97
+ $frm_roles = FrmAppHelper::frm_capabilities();
98
+ $roles = get_editable_roles();
99
+ foreach($frm_roles as $frm_role => $frm_role_description){
100
+ $this->$frm_role = isset($params[$frm_role]) ? $params[$frm_role] : 'administrator';
101
+
102
+ foreach ($roles as $role => $details){
103
+ if($this->$frm_role == $role or ($this->$frm_role == 'editor' and $role == 'administrator') or ($this->$frm_role == 'author' and in_array($role, array('administrator','editor'))) or ($this->$frm_role == 'contributor' and in_array($role, array('administrator','editor','author'))) or $this->$frm_role == 'subscriber')
104
+ $wp_roles->add_cap( $role, $frm_role );
105
+ else
106
+ $wp_roles->remove_cap( $role, $frm_role );
107
+ }
108
+ }
109
 
110
  do_action( 'frm_update_settings', $params );
111
  }
118
  }
119
 
120
  }
121
+ ?>
classes/models/FrmUpdate.php CHANGED
@@ -123,9 +123,10 @@ class FrmUpdate{
123
  return $client->getResponse();
124
  }
125
 
126
- function pro_cred_form(){ ?>
 
127
  <div class="wrap">
128
- <div id="icon-options-general" class="icon32"><br></div>
129
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Account Information', FRM_PLUGIN_NAME)?></h2>
130
  <?php
131
  if(isset($_POST) and isset($_POST['process_cred_form']) and $_POST['process_cred_form'] == 'Y'){
@@ -150,11 +151,23 @@ class FrmUpdate{
150
  }
151
  }
152
 
153
- $this->display_pro_cred_form(); ?>
154
 
 
 
 
 
 
 
 
 
 
 
 
155
  <p><?php _e('Ready to take your forms to the next level?<br/>Formidable Pro will help you style forms, manage data, and get reports.', FRM_PLUGIN_NAME) ?></p>
156
 
157
  <a href="http://formidablepro.com"><?php _e('Learn More', FRM_PLUGIN_NAME) ?> &raquo;</a>
 
158
  </div>
159
  <?php
160
  }
@@ -269,7 +282,9 @@ class FrmUpdate{
269
  if(!$this->pro_is_installed())
270
  $force=true;
271
 
272
- $plugin_updates = ((function_exists('get_transient'))?get_transient("update_plugins"):get_option("update_plugins"));
 
 
273
 
274
  $curr_version = $this->get_current_version();
275
  $installed_version = $plugin_updates->checked[$this->plugin_name];
@@ -293,18 +308,18 @@ class FrmUpdate{
293
  unset($plugin_updates->response[$this->plugin_name]);
294
  }
295
 
296
- if ( function_exists('set_transient') and !$already_set_transient ){
297
  $already_set_transient = true;
298
- set_transient("update_plugins", $plugin_updates); // for WordPress 2.8+
299
  }
300
 
301
- if( !$already_set_option ){
302
  $already_set_option = true;
303
- update_option("update_plugins", $plugin_updates); // for WordPress 2.7
304
  }
305
  }
306
  }
307
-
308
  function check_for_update_now(){
309
  $this->queue_update();
310
  }
123
  return $client->getResponse();
124
  }
125
 
126
+ function pro_cred_form(){
127
+ global $frmpro_is_installed; ?>
128
  <div class="wrap">
129
+ <div id="icon-options-general" class="icon32"><br/></div>
130
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Account Information', FRM_PLUGIN_NAME)?></h2>
131
  <?php
132
  if(isset($_POST) and isset($_POST['process_cred_form']) and $_POST['process_cred_form'] == 'Y'){
151
  }
152
  }
153
 
154
+ $this->display_pro_cred_form();
155
 
156
+ if($frmpro_is_installed){ ?>
157
+
158
+ <div>
159
+ <p><strong>Formidable Pro is Installed</strong></p>
160
+ <p><strong>Edit/Update Your Profile:</strong><br/><span class="howto">Use your account username and password to log in to your Account and Affiliate Control Panel</span></p>
161
+ <p><a href="http://formidablepro.com/payments/member.php">Account</a> |
162
+ <a href="http://formidablepro.com/payments/aff_member.php">Affiliate Control Panel</a>
163
+ </p>
164
+ </div>
165
+
166
+ <?php }else{ ?>
167
  <p><?php _e('Ready to take your forms to the next level?<br/>Formidable Pro will help you style forms, manage data, and get reports.', FRM_PLUGIN_NAME) ?></p>
168
 
169
  <a href="http://formidablepro.com"><?php _e('Learn More', FRM_PLUGIN_NAME) ?> &raquo;</a>
170
+ <?php } ?>
171
  </div>
172
  <?php
173
  }
282
  if(!$this->pro_is_installed())
283
  $force=true;
284
 
285
+ $plugin_updates = (function_exists('get_site_transient'))?get_site_transient("update_plugins"):get_transient("update_plugins");
286
+ if(!$plugin_updates and function_exists('get_transient'))
287
+ $plugin_updates = get_transient("update_plugins");
288
 
289
  $curr_version = $this->get_current_version();
290
  $installed_version = $plugin_updates->checked[$this->plugin_name];
308
  unset($plugin_updates->response[$this->plugin_name]);
309
  }
310
 
311
+ if ( function_exists('set_site_transient') and !$already_set_transient ){
312
  $already_set_transient = true;
313
+ set_site_transient("update_plugins", $plugin_updates); // for WordPress 2.9+
314
  }
315
 
316
+ if( function_exists('set_transient') and !$already_set_option ){
317
  $already_set_option = true;
318
+ set_transient("update_plugins", $plugin_updates); // for WordPress 2.8
319
  }
320
  }
321
  }
322
+
323
  function check_for_update_now(){
324
  $this->queue_update();
325
  }
classes/views/frm-entries/direct.php CHANGED
@@ -4,13 +4,7 @@
4
  <head profile="http://gmpg.org/xfn/11">
5
  <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
6
  <title><?php bloginfo('name'); ?></title>
7
- <?php global $frm_blogurl; ?>
8
- <?php if ($custom_style){
9
- $css = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
10
- ?>
11
- <link type="text/css" href="<?php echo $css; ?>" rel="Stylesheet" />
12
- <?php } ?>
13
- <?php do_action('frm_direct_link_head'); ?>
14
  </head>
15
  <body>
16
  <?php require_once('frm-entry.php'); ?>
4
  <head profile="http://gmpg.org/xfn/11">
5
  <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
6
  <title><?php bloginfo('name'); ?></title>
7
+ <?php wp_head() ?>
 
 
 
 
 
 
8
  </head>
9
  <body>
10
  <?php require_once('frm-entry.php'); ?>
classes/views/frm-entries/form.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php echo FrmFormsHelper::replace_shortcodes($values['before_html'], $form, $title, $description); ?>
2
-
3
  <div id="frm_form_fields">
4
  <fieldset>
5
  <div>
@@ -18,6 +17,7 @@
18
  $error_keys = array_keys($errors);
19
  $error_keys = (isset($error_keys)) ? $error_keys : array();
20
 
 
21
  foreach($values['fields'] as $field){
22
  $field_name = "item_meta[". $field['id'] ."]";
23
  if (apply_filters('frm_show_normal_field_type', true, $field['type']))
@@ -27,6 +27,7 @@
27
 
28
  do_action('frm_get_field_scripts', $field);
29
  }
 
30
 
31
  global $frm_settings;
32
  ?>
@@ -35,15 +36,16 @@
35
  <label><?php _e('Entry Key', FRM_PLUGIN_NAME) ?></label>
36
  <input type="text" id="item_key" name="item_key" value="<?php echo $values['item_key'] ?>" />
37
  </div>
 
 
38
  <?php } ?>
 
39
  </div>
40
  </fieldset>
41
  </div>
42
-
43
  <?php echo FrmFormsHelper::replace_shortcodes($values['after_html'], $form); ?>
44
-
45
  <script type="text/javascript">
46
- <?php do_action('frm_entries_footer_scripts',$values['fields']); ?>
47
  function frmClearDefault(default_value,thefield){if(thefield.value==default_value)thefield.value='';}
48
  function frmReplaceDefault(default_value,thefield){if(thefield.value=='')thefield.value=default_value;}
49
  </script>
1
  <?php echo FrmFormsHelper::replace_shortcodes($values['before_html'], $form, $title, $description); ?>
 
2
  <div id="frm_form_fields">
3
  <fieldset>
4
  <div>
17
  $error_keys = array_keys($errors);
18
  $error_keys = (isset($error_keys)) ? $error_keys : array();
19
 
20
+ if($values['fields']){
21
  foreach($values['fields'] as $field){
22
  $field_name = "item_meta[". $field['id'] ."]";
23
  if (apply_filters('frm_show_normal_field_type', true, $field['type']))
27
 
28
  do_action('frm_get_field_scripts', $field);
29
  }
30
+ }
31
 
32
  global $frm_settings;
33
  ?>
36
  <label><?php _e('Entry Key', FRM_PLUGIN_NAME) ?></label>
37
  <input type="text" id="item_key" name="item_key" value="<?php echo $values['item_key'] ?>" />
38
  </div>
39
+ <?php }else{ ?>
40
+ <input type="hidden" id="item_key" name="item_key" value="<?php echo $values['item_key'] ?>" />
41
  <?php } ?>
42
+ <?php do_action('frm_entry_form', $form) ?>
43
  </div>
44
  </fieldset>
45
  </div>
 
46
  <?php echo FrmFormsHelper::replace_shortcodes($values['after_html'], $form); ?>
 
47
  <script type="text/javascript">
48
+ <?php do_action('frm_entries_footer_scripts',$values['fields'], $form); ?>
49
  function frmClearDefault(default_value,thefield){if(thefield.value==default_value)thefield.value='';}
50
  function frmReplaceDefault(default_value,thefield){if(thefield.value=='')thefield.value=default_value;}
51
  </script>
classes/views/frm-entries/frm-entry.php CHANGED
@@ -10,7 +10,9 @@ $params = FrmEntriesController::get_params($form);
10
  $message = '';
11
  $errors = '';
12
 
13
- if($params['action'] == 'create' && $params['form_id'] == $form->id){
 
 
14
  $errors = $frm_entry->validate($_POST);
15
 
16
  if( !empty($errors) ){
@@ -22,8 +24,14 @@ if($params['action'] == 'create' && $params['form_id'] == $form->id){
22
  do_action('frm_validate_form_creation', $params, $fields, $form, $title, $description);
23
  if (apply_filters('frm_continue_to_create', true, $form->id)){
24
  $values = FrmEntriesHelper::setup_new_vars($fields, $form, true);
25
- $message = ($frm_entry->create( $_POST )) ? $saved_message : $frm_settings->failed_msg;
26
- require('new.php');
 
 
 
 
 
 
27
  }
28
  }
29
  }else{
10
  $message = '';
11
  $errors = '';
12
 
13
+ FrmEntriesHelper::enqueue_scripts($params);
14
+
15
+ if($params['action'] == 'create' && $params['posted_form_id'] == $form->id){
16
  $errors = $frm_entry->validate($_POST);
17
 
18
  if( !empty($errors) ){
24
  do_action('frm_validate_form_creation', $params, $fields, $form, $title, $description);
25
  if (apply_filters('frm_continue_to_create', true, $form->id)){
26
  $values = FrmEntriesHelper::setup_new_vars($fields, $form, true);
27
+ $created = $frm_entry->create( $_POST );
28
+ $conf_method = apply_filters('frm_success_filter', 'message', $form, $form_options);
29
+ if (!$created or !is_numeric($created) or $conf_method == 'message'){
30
+ echo '<div class="frm_message" id="message">'.(($created and is_numeric($created)) ? $saved_message : $frm_settings->failed_msg).'</div>';
31
+ if (!isset($form_options['show_form']) or $form_options['show_form'])
32
+ require('new.php');
33
+ }else
34
+ do_action('frm_success_action', $conf_method, $form, $form_options);
35
  }
36
  }
37
  }else{
classes/views/frm-entries/list.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Entries', FRM_PLUGIN_NAME) ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
@@ -8,4 +8,5 @@
8
 
9
  <p><?php printf(__('Upgrade to %1$sFormidable Pro%2$s to view, search, export, and bulk delete your saved entries.', FRM_PLUGIN_NAME), '<a href="http://formidablepro.com">', '</a>'); ?></p>
10
 
11
- </div>
 
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Entries', FRM_PLUGIN_NAME) ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
8
 
9
  <p><?php printf(__('Upgrade to %1$sFormidable Pro%2$s to view, search, export, and bulk delete your saved entries.', FRM_PLUGIN_NAME), '<a href="http://formidablepro.com">', '</a>'); ?></p>
10
 
11
+ </div>
12
+
classes/views/frm-entries/new.php CHANGED
@@ -1,17 +1,14 @@
1
  <div class="frm_forms<?php echo ($values['custom_style']) ? ' with_frm_style' : ''; ?>" id="frm_form_<?php echo $form->id ?>_container">
2
-
3
  <form action="" enctype="multipart/form-data" method="post" class="frm-show-form" id="form_<?php echo $form->form_key ?>">
4
  <?php include(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
5
  <?php $form_action = 'create'; ?>
6
-
7
  <?php require(FRM_VIEWS_PATH.'/frm-entries/form.php'); ?>
8
 
9
  <?php if (!$form->is_template){ ?>
10
  <p class="submit">
11
- <?php if (!isset($submit)) $submit = $frm_settings->submit_value;?>
12
- <input type="submit" name="<?php echo $submit ?>" value="<?php echo $submit ?>" />
13
  </p>
14
  <?php } ?>
15
-
16
  </form>
17
  </div>
1
  <div class="frm_forms<?php echo ($values['custom_style']) ? ' with_frm_style' : ''; ?>" id="frm_form_<?php echo $form->id ?>_container">
 
2
  <form action="" enctype="multipart/form-data" method="post" class="frm-show-form" id="form_<?php echo $form->form_key ?>">
3
  <?php include(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
4
  <?php $form_action = 'create'; ?>
 
5
  <?php require(FRM_VIEWS_PATH.'/frm-entries/form.php'); ?>
6
 
7
  <?php if (!$form->is_template){ ?>
8
  <p class="submit">
9
+ <?php if (!isset($submit)) $submit = $frm_settings->submit_value; ?>
10
+ <input type="submit" name="<?php echo $submit ?>" value="<?php echo $submit ?>" <?php do_action('frm_submit_button', $form, $form_action); ?>/>
11
  </p>
12
  <?php } ?>
 
13
  </form>
14
  </div>
classes/views/frm-fields/input.php CHANGED
@@ -1,17 +1,17 @@
1
- <?php $auto_width = (isset($field['size']) && $field['size'] > 0) ? 'class="auto_width"' : ''; ?>
2
  <?php if ($field['type'] == 'text'){ ?>
3
- <input type="text" id="field_<?php echo $field['field_key'] ?>" name="<?php echo $field_name ?>" value="<?php echo $field['value'] ?>" size="<?php echo $field['size'] ?>" maxlength="<?php echo $field['max'] ?>" <?php echo ($field['clear_on_focus']) ? 'onfocus="frmClearDefault(\''.$field['default_value'].'\', this)" onblur="frmReplaceDefault(\''.$field['default_value'].'\', this)"':''; ?> <?php echo $auto_width ?>/>
4
 
5
  <?php }else if ($field['type'] == 'textarea'){ ?>
6
- <textarea name="<?php echo $field_name ?>" cols="<?php echo $field['size'] ?>" rows="<?php echo $field['max'] ?>" <?php echo ($field['clear_on_focus']) ? 'onfocus="frmClearDefault(\''.$field['default_value'].'\', this)" onblur="frmReplaceDefault(\''.$field['default_value'].'\', this)"':''; ?> <?php echo $auto_width ?>><?php echo $field['value'] ?></textarea>
7
 
8
  <?php }else if ($field['type'] == 'radio'){
9
  if (is_array($field['options'])){
10
  foreach($field['options'] as $opt){ ?>
11
- <div class="frm_radio"><input type="radio" name="<?php echo $field_name ?>" value="<?php echo $opt ?>" <?php if ($field['value'] == $opt) echo 'checked="checked"'; ?> /><span><?php echo $opt ?></span></div>
12
  <?php }
13
  } ?>
14
- <?php }else if ($field['type'] == 'select'){?>
 
15
  <select name="<?php echo $field_name ?>" id="item_meta<?php echo $field['id'] ?>" <?php echo $auto_width ?>>
16
  <?php foreach ($field['options'] as $opt){ ?>
17
  <option value="<?php echo $opt ?>" <?php if ($field['value'] == $opt) echo 'selected="selected"'; ?>><?php echo $opt ?></option>
@@ -23,8 +23,8 @@
23
  }else if ($field['type'] == 'checkbox'){
24
  $checked_values = $field['value'];
25
  foreach ($field['options'] as $opt){
26
- $checked = ((!is_array($checked_values) && $checked_values == $opt ) || (is_array($checked_values) && in_array($opt, $checked_values)))?' checked="true"':''; ?>
27
- <div class="frm_checkbox"><input type="checkbox" name="<?php echo $field_name ?>[]" value="<?php echo $opt ?>" <?php echo $checked ?> /><span><?php echo $opt ?></span></div>
28
  <?php
29
  }
30
  }else do_action('frm_form_fields',$field, $field_name);
 
1
  <?php if ($field['type'] == 'text'){ ?>
2
+ <input type="text" id="field_<?php echo $field['field_key'] ?>" name="<?php echo $field_name ?>" value="<?php echo $field['value'] ?>" <?php do_action('frm_field_input_html', $field) ?>/>
3
 
4
  <?php }else if ($field['type'] == 'textarea'){ ?>
5
+ <textarea name="<?php echo $field_name ?>" id="field_<?php echo $field['field_key'] ?>" cols="<?php echo $field['size'] ?>" rows="<?php echo $field['max'] ?>" <?php do_action('frm_field_input_html', $field) ?>><?php echo $field['value'] ?></textarea>
6
 
7
  <?php }else if ($field['type'] == 'radio'){
8
  if (is_array($field['options'])){
9
  foreach($field['options'] as $opt){ ?>
10
+ <div class="frm_radio"><input type="radio" name="<?php echo $field_name ?>" id="item_meta_val<?php echo sanitize_title_with_dashes($opt) ?>" value="<?php echo $opt ?>" <?php if ($field['value'] == $opt) echo 'checked="checked"'; ?> /><label for="item_meta_val<?php echo sanitize_title_with_dashes($opt) ?>"><?php echo $opt ?></label></div>
11
  <?php }
12
  } ?>
13
+ <?php }else if ($field['type'] == 'select'){ ?>
14
+ <?php $auto_width = (isset($field['size']) && $field['size'] > 0) ? 'class="auto_width"' : ''; ?>
15
  <select name="<?php echo $field_name ?>" id="item_meta<?php echo $field['id'] ?>" <?php echo $auto_width ?>>
16
  <?php foreach ($field['options'] as $opt){ ?>
17
  <option value="<?php echo $opt ?>" <?php if ($field['value'] == $opt) echo 'selected="selected"'; ?>><?php echo $opt ?></option>
23
  }else if ($field['type'] == 'checkbox'){
24
  $checked_values = $field['value'];
25
  foreach ($field['options'] as $opt){
26
+ $checked = ((!is_array($checked_values) && $checked_values == $opt ) || (is_array($checked_values) && in_array($opt, $checked_values)))?' checked="checked"':''; ?>
27
+ <div class="frm_checkbox"><input type="checkbox" name="<?php echo $field_name ?>[]" id="item_meta_val<?php echo sanitize_title_with_dashes($opt) ?>" value="<?php echo $opt ?>" <?php echo $checked ?> /><label for="item_meta_val<?php echo sanitize_title_with_dashes($opt) ?>"><?php echo $opt ?></label></div>
28
  <?php
29
  }
30
  }else do_action('frm_form_fields',$field, $field_name);
classes/views/frm-fields/radio.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  if (is_array($field['options'])){
3
  foreach($field['options'] as $opt_key => $opt){
4
- $checked = ((!is_array($field['value']) && $field['value'] == $opt ) || (is_array($field['value']) && in_array($opt, $field['value'])))?' checked="true"':'';
5
  require('single-option.php');
6
  }
7
  }
1
  <?php
2
  if (is_array($field['options'])){
3
  foreach($field['options'] as $opt_key => $opt){
4
+ $checked = (isset($field['value']) and ((!is_array($field['value']) && $field['value'] == $opt ) || (is_array($field['value']) && in_array($opt, $field['value'])))) ? ' checked="true"':'';
5
  require('single-option.php');
6
  }
7
  }
classes/views/frm-fields/single-option.php CHANGED
@@ -1,9 +1,9 @@
1
  <span id="frm_delete_field_<?php echo $field['id']; ?>-<?php echo $opt_key ?>_container" class="frm_single_option">
2
  <span class="frm_spacer"></span>
3
- <a href="javascript:frm_delete_field_option(<?php echo $field['id']?>, <?php echo $opt_key ?>);" class="frm_single_show_hover alignleft" ><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></a>
4
  <?php if ($field['type'] != 'select'){ ?>
5
  <input type="<?php echo $field['type'] ?>" name="<?php echo $field_name ?><?php echo ($field['type'] == 'checkbox')?'[]':''; ?>" value="<?php echo str_replace('"', '&quot;', $opt) ?>"<?php echo isset($checked)? $checked : ''; ?>/>
6
  <?php } ?>
7
- <span class="frm_ipe_field_option" id="field_<?php echo $field['id']?>-<?php echo $opt_key ?>"><?php echo $opt ?></span>
8
  </span>
9
  <div class="clear"></div>
1
  <span id="frm_delete_field_<?php echo $field['id']; ?>-<?php echo $opt_key ?>_container" class="frm_single_option">
2
  <span class="frm_spacer"></span>
3
+ <a href="javascript:frm_delete_field_option(<?php echo $field['id']?>, <?php echo $opt_key ?>, '<?php echo $frm_ajax_url ?>');" class="frm_single_show_hover alignleft" ><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></a>
4
  <?php if ($field['type'] != 'select'){ ?>
5
  <input type="<?php echo $field['type'] ?>" name="<?php echo $field_name ?><?php echo ($field['type'] == 'checkbox')?'[]':''; ?>" value="<?php echo str_replace('"', '&quot;', $opt) ?>"<?php echo isset($checked)? $checked : ''; ?>/>
6
  <?php } ?>
7
+ <label class="frm_ipe_field_option" id="field_<?php echo $field['id']?>-<?php echo $opt_key ?>"><?php echo $opt ?></label>
8
  </span>
9
  <div class="clear"></div>
classes/views/frm-forms/add_field.php CHANGED
@@ -1,28 +1,28 @@
1
  <?php $display = apply_filters('frm_display_field_options', array('type' => $field['type'], 'field_data' => $field, 'required' => true, 'description' => true, 'options' => true, 'label_position' => true, 'invalid' => false, 'size' => false, 'clear_on_focus' => false, 'default_blank' => true)); ?>
2
 
3
- <li id="frm_field_id_<?php echo $field['id']; ?>" class="edit_form_item frm_field_box ui-state-default frm_hide_options<?php echo $display['options'] ?> edit_field_type_<?php echo $display['type'] ?>" onmouseover="frm_field_hover(1,<?php echo $field['id']; ?>)" onmouseout="frm_field_hover(0,<?php echo $field['id']; ?>)">
4
  <a href="javascript:void(0);" class="alignright frm-show-hover frm-move" title="Move Field"><img src="<?php echo FRM_IMAGES_URL ?>/move.png" alt="Move"></a>
5
  <a href="javascript:frm_delete_field(<?php echo $field['id']; ?>)" class="alignright frm-show-hover" id="frm_delete_field<?php echo $field['id']; ?>" title="Delete Field"><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></a>
6
  <?php do_action('frm_extra_field_actions', $field['id']); ?>
7
 
8
  <?php if ($display['required']){ ?>
9
  <span id="require_field_<?php echo $field['id']; ?>">
10
- <a href="javascript:frm_mark_required( <?php echo $field['id']; ?>, <?php echo $field_required = ($field['required'] == '0')?('0'):('1'); ?>)" class="ui-icon ui-icon-star alignleft frm_required<?php echo $field_required ?>" id="req_field_<?php echo $field['id']; ?>" title="Mark as <?php echo ($field['required'] == '0')?'':'not '; ?>Required"></a>
11
  </span>
12
  <?php } ?>
13
- <div class="frm_ipe_field_label frm_pos_<?php echo $field['label']; ?>" id="field_<?php echo $field['id']; ?>"><?php echo $field['name'] ?></div>
14
 
15
  <?php if ($display['type'] == 'text'){ ?>
16
  <input type="text" name="<?php echo $field_name ?>" value="<?php echo $field['default_value']; ?>" size="<?php echo $field['size']; ?>"/>
17
  <?php }else if ($field['type'] == 'textarea'){ ?>
18
  <textarea name="<?php echo $field_name ?>"<?php if ($field['size']) echo ' cols="'.$field['size'].'"' ?> rows="<?php echo $field['max']; ?>"><?php echo $field['default_value']; ?></textarea>
19
 
20
- <?php }else if ($field['type'] == 'radio' || $field['type'] == 'checkbox'){
21
- $field['value'] = maybe_unserialize($field['default_value']); ?>
22
  <?php require(FRM_VIEWS_PATH.'/frm-fields/radio.php'); ?>
23
 
24
  <div id="frm_add_field_<?php echo $field['id']; ?>" class="frm-show-click">
25
- <a href="javascript:frm_add_field_option(<?php echo $field['id']; ?>)"><span class="ui-icon ui-icon-plusthick alignleft"></span> <?php _e('Add an Option', FRM_PLUGIN_NAME) ?></a>
26
  </div>
27
 
28
  <?php }else if ($field['type'] == 'select'){ ?>
@@ -37,8 +37,7 @@
37
  <div class="frm-show-click">
38
  <?php foreach ($field['options'] as $opt_key => $opt) require(FRM_VIEWS_PATH.'/frm-fields/single-option.php'); ?>
39
  <div id="frm_add_field_<?php echo $field['id']; ?>">
40
- <a href="javascript:frm_add_field_option(<?php echo $field['id']; ?>)"><span class="ui-icon ui-icon-plusthick alignleft"></span>
41
- <?php _e('Add an Option', FRM_PLUGIN_NAME) ?></a>
42
  <?php do_action('frm_add_multiple_opts', $field); ?>
43
  </div>
44
  </div>
@@ -59,6 +58,8 @@ if ($display['clear_on_focus']){
59
 
60
  if ($display['default_blank'])
61
  FrmFieldsHelper::show_default_blank_js($field['id'], $field['default_blank']);
 
 
62
  }
63
 
64
  if ($display['description']){ ?>
@@ -66,45 +67,52 @@ if ($display['description']){ ?>
66
  <?php
67
  }
68
 
69
- if ($display['options']){ ?>
70
- <h3 class="ui-accordion-header ui-state-default">
71
- <span class="ui-icon ui-icon-triangle-1-e"></span>
72
- <a href="#"><?php _e('Field Options', FRM_PLUGIN_NAME) ?></a>
73
- </h3>
74
- <div class="ui-widget-content ui-corner-bottom">
75
- <?php if ($display['size']){ ?>
76
- <p><label><?php echo ($field['type'] == 'textarea' || $field['type'] == 'rte')? __('Columns', FRM_PLUGIN_NAME) : __('Field Size', FRM_PLUGIN_NAME) ?>:</label>
77
- <input type="text" name="field_options[size_<?php echo $field['id'] ?>]" value="<?php echo $field['size']; ?>" size="5">
78
-
79
- <label class="nofloat"><?php echo ($field['type'] == 'textarea' || $field['type'] == 'rte')? __('Rows', FRM_PLUGIN_NAME) : __('Max length of input', FRM_PLUGIN_NAME) ?>:</label>
80
- <input type="text" name="field_options[max_<?php echo $field['id'] ?>]" value="<?php echo $field['max']; ?>" size="5">
81
- </p>
82
- <?php } ?>
83
- <?php if ($display['label_position']){ ?>
84
- <p><label><?php _e('Label Position', FRM_PLUGIN_NAME) ?>:</label>
85
- <select name="field_options[label_<?php echo $field['id'] ?>]">
86
- <option value="top"<?php echo ($field['label'] == 'top')?(' selected="true"'):(''); ?>><?php _e('Top', FRM_PLUGIN_NAME) ?></option>
87
- <option value="left"<?php echo ($field['label'] == 'left')?(' selected="true"'):(''); ?>><?php _e('Left', FRM_PLUGIN_NAME) ?></option>
88
- <option value="right"<?php echo ($field['label'] == 'right')?(' selected="true"'):(''); ?>><?php _e('Right', FRM_PLUGIN_NAME) ?></option>
89
- <option value="none"<?php echo ($field['label'] == 'none')?(' selected="true"'):(''); ?>><?php _e('Hidden', FRM_PLUGIN_NAME) ?></option>
90
- </select>
91
- </p>
92
- <?php } ?>
93
- <?php if ($display['required']){ ?>
94
- <p><label><?php _e('Indicate required field with', FRM_PLUGIN_NAME) ?>:</label>
95
- <input type="text" name="field_options[required_indicator_<?php echo $field['id'] ?>]" value="<?php echo $field['required_indicator']; ?>">
96
- </p>
97
- <p><label><?php _e('Error message if required field is left blank', FRM_PLUGIN_NAME) ?>:</label>
98
- <input type="text" name="field_options[blank_<?php echo $field['id'] ?>]" value="<?php echo $field['blank']; ?>" size="50">
99
- </p>
100
- <?php } ?>
101
- <?php if ($display['invalid']){ ?>
102
- <p><label><?php _e('Error message if entry is an invalid format', FRM_PLUGIN_NAME) ?>:</label>
103
- <input type="text" name="field_options[invalid_<?php echo $field['id'] ?>]" value="<?php echo $field['invalid']; ?>" size="50">
104
- </p>
105
- <?php } ?>
106
- <?php do_action('frm_field_options_form', $field, $display); ?>
107
 
108
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  <?php } ?>
110
  </li>
1
  <?php $display = apply_filters('frm_display_field_options', array('type' => $field['type'], 'field_data' => $field, 'required' => true, 'description' => true, 'options' => true, 'label_position' => true, 'invalid' => false, 'size' => false, 'clear_on_focus' => false, 'default_blank' => true)); ?>
2
 
3
+ <li id="frm_field_id_<?php echo $field['id']; ?>" class="form-field edit_form_item frm_field_box ui-state-default frm_hide_options<?php echo $display['options'] ?> edit_field_type_<?php echo $display['type'] ?>" onmouseover="frm_field_hover(1,<?php echo $field['id']; ?>)" onmouseout="frm_field_hover(0,<?php echo $field['id']; ?>)">
4
  <a href="javascript:void(0);" class="alignright frm-show-hover frm-move" title="Move Field"><img src="<?php echo FRM_IMAGES_URL ?>/move.png" alt="Move"></a>
5
  <a href="javascript:frm_delete_field(<?php echo $field['id']; ?>)" class="alignright frm-show-hover" id="frm_delete_field<?php echo $field['id']; ?>" title="Delete Field"><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></a>
6
  <?php do_action('frm_extra_field_actions', $field['id']); ?>
7
 
8
  <?php if ($display['required']){ ?>
9
  <span id="require_field_<?php echo $field['id']; ?>">
10
+ <a href="javascript:frm_mark_required( <?php echo $field['id']; ?>, <?php echo $field_required = ($field['required'] == '0')?('0'):('1'); ?>)" class="alignleft frm_required<?php echo $field_required ?>" id="req_field_<?php echo $field['id']; ?>" title="Click to Mark as <?php echo ($field['required'] == '0')?'':'not '; ?>Required"><img src="<?php echo FRM_IMAGES_URL?>/required.png" alt="required"></a>
11
  </span>
12
  <?php } ?>
13
+ <label class="frm_ipe_field_label frm_pos_<?php echo $field['label']; ?>" id="field_<?php echo $field['id']; ?>"><?php echo $field['name'] ?></label>
14
 
15
  <?php if ($display['type'] == 'text'){ ?>
16
  <input type="text" name="<?php echo $field_name ?>" value="<?php echo $field['default_value']; ?>" size="<?php echo $field['size']; ?>"/>
17
  <?php }else if ($field['type'] == 'textarea'){ ?>
18
  <textarea name="<?php echo $field_name ?>"<?php if ($field['size']) echo ' cols="'.$field['size'].'"' ?> rows="<?php echo $field['max']; ?>"><?php echo $field['default_value']; ?></textarea>
19
 
20
+ <?php }else if ($field['type'] == 'radio' or $field['type'] == 'checkbox'){
21
+ $field['default_value'] = maybe_unserialize($field['default_value']); ?>
22
  <?php require(FRM_VIEWS_PATH.'/frm-fields/radio.php'); ?>
23
 
24
  <div id="frm_add_field_<?php echo $field['id']; ?>" class="frm-show-click">
25
+ <a href="javascript:frm_add_field_option(<?php echo $field['id']; ?>,'<?php echo $frm_ajax_url ?>')" class="frm_orange">+ <?php _e('Add an Option', FRM_PLUGIN_NAME) ?></a>
26
  </div>
27
 
28
  <?php }else if ($field['type'] == 'select'){ ?>
37
  <div class="frm-show-click">
38
  <?php foreach ($field['options'] as $opt_key => $opt) require(FRM_VIEWS_PATH.'/frm-fields/single-option.php'); ?>
39
  <div id="frm_add_field_<?php echo $field['id']; ?>">
40
+ <a href="javascript:frm_add_field_option(<?php echo $field['id']; ?>, '<?php echo $frm_ajax_url ?>')" class="frm_orange">+ <?php _e('Add an Option', FRM_PLUGIN_NAME) ?></a>
 
41
  <?php do_action('frm_add_multiple_opts', $field); ?>
42
  </div>
43
  </div>
58
 
59
  if ($display['default_blank'])
60
  FrmFieldsHelper::show_default_blank_js($field['id'], $field['default_blank']);
61
+
62
+ do_action('frm_extra_field_display_options', $field);
63
  }
64
 
65
  if ($display['description']){ ?>
67
  <?php
68
  }
69
 
70
+ if ($display['options']){ ?>
71
+ <div class="clearfix themeRoller">
72
+ <div class="theme-group clearfix">
73
+ <div class="theme-group-header state-default">
74
+ <span class="icon icon-triangle-1-e"><?php _e('Collapse', FRM_PLUGIN_NAME) ?></span>
75
+ <a href="#"><?php _e('Field Options', 'formidable') ?> (ID <?php echo $field['id'] ?>)</a>
76
+ </div><!-- /theme group Error -->
77
+ <div class="theme-group-content corner-bottom clearfix">
78
+ <div class="clearfix">
79
+ <table class="form-table">
80
+ <?php if ($display['size']){ ?>
81
+ <tr><td width="150px"><label><?php _e('Field Size', FRM_PLUGIN_NAME) ?>:</label></td>
82
+ <td><input type="text" name="field_options[size_<?php echo $field['id'] ?>]" value="<?php echo $field['size']; ?>" size="5"> <span class="howto"><?php echo ($field['type'] == 'textarea' || $field['type'] == 'rte')? __('columns wide', FRM_PLUGIN_NAME) : __('characters wide', FRM_PLUGIN_NAME) ?></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
+ <input type="text" name="field_options[max_<?php echo $field['id'] ?>]" value="<?php echo $field['max']; ?>" size="5"> <span class="howto"><?php echo ($field['type'] == 'textarea' || $field['type'] == 'rte')? __('rows high', FRM_PLUGIN_NAME) : __('characters maximum', FRM_PLUGIN_NAME) ?></span></td>
85
+ </tr>
86
+ <?php } ?>
87
+ <?php if ($display['label_position']){ ?>
88
+ <tr><td><label><?php _e('Label Position', FRM_PLUGIN_NAME) ?>:</label></td>
89
+ <td><select name="field_options[label_<?php echo $field['id'] ?>]">
90
+ <option value="top"<?php echo ($field['label'] == 'top')?(' selected="true"'):(''); ?>><?php _e('Top', FRM_PLUGIN_NAME) ?></option>
91
+ <option value="left"<?php echo ($field['label'] == 'left')?(' selected="true"'):(''); ?>><?php _e('Left', FRM_PLUGIN_NAME) ?></option>
92
+ <option value="right"<?php echo ($field['label'] == 'right')?(' selected="true"'):(''); ?>><?php _e('Right', FRM_PLUGIN_NAME) ?></option>
93
+ <option value="none"<?php echo ($field['label'] == 'none')?(' selected="true"'):(''); ?>><?php _e('Hidden', FRM_PLUGIN_NAME) ?></option>
94
+ </select>
95
+ </td>
96
+ </tr>
97
+ <?php } ?>
98
+ <?php if ($display['required']){ ?>
99
+ <tr><td><label><?php _e('Indicate required field with', FRM_PLUGIN_NAME) ?>:</label></td>
100
+ <td><input type="text" name="field_options[required_indicator_<?php echo $field['id'] ?>]" value="<?php echo $field['required_indicator']; ?>"></td>
101
+ </tr>
102
+ <tr><td><label><?php _e('Error message if required field is left blank', FRM_PLUGIN_NAME) ?>:</label></td>
103
+ <td><input type="text" name="field_options[blank_<?php echo $field['id'] ?>]" value="<?php echo $field['blank']; ?>" size="50"></td>
104
+ </tr>
105
+ <?php } ?>
106
+ <?php if ($display['invalid']){ ?>
107
+ <tr><td><label><?php _e('Error message if entry is an invalid format', FRM_PLUGIN_NAME) ?>:</label></td>
108
+ <td><input type="text" name="field_options[invalid_<?php echo $field['id'] ?>]" value="<?php echo $field['invalid']; ?>" size="50"></td>
109
+ </tr>
110
+ <?php } ?>
111
+ <?php do_action('frm_field_options_form', $field, $display); ?>
112
+ </table>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
  <?php } ?>
118
  </li>
classes/views/frm-forms/add_field_links.php CHANGED
@@ -4,15 +4,14 @@
4
  <input type='text' style="text-align:center; font-weight:bold; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='[formidable id=<?php echo $id; ?>]' /></p>
5
  <?php } ?>
6
 
7
- <ul class="frmbutton nodrag">
8
- <li class="ui-widget-header"><a href="<?php echo FrmFormsHelper::get_direct_link($values['form_key']); ?>" target="blank" ><?php _e('Preview Form', FRM_PLUGIN_NAME) ?></a></li>
9
  <?php global $frm_settings; if ($frm_settings->preview_page_id > 0){ ?>
10
- <li class="ui-widget-header"><a href="<?php echo add_query_arg('form', $values['form_key'], get_permalink($frm_settings->preview_page_id)) ?>" target="blank" class="frmbutton"><?php _e('Preview Form in Current Theme', FRM_PLUGIN_NAME) ?></a></li>
11
  <?php } ?>
12
- </ul>
13
 
14
  <p class="howto"><?php _e('Click on or drag a field into your form', FRM_PLUGIN_NAME) ?></p>
15
- <div id="themeRoller" class="clearfix">
16
  <div id="rollerTabs">
17
 
18
  <fieldset class="clearfix">
@@ -25,8 +24,9 @@
25
  <div class="clearfix">
26
  <ul class="field_type_list">
27
  <?php foreach ($frm_field_selection as $field_key => $field_type){ ?>
28
- <li class="frmbutton button" id="<?php echo $field_key ?>"><a href="javascript:add_frm_field_link(<?php echo $id ?>, '<?php echo $field_key ?>');"><?php echo $field_type ?></a></li>
29
  <?php } ?>
 
30
  <?php if (!array_key_exists('captcha', $frm_field_selection) && !function_exists( 'akismet_http_post' )){
31
  global $frm_siteurl; ?>
32
  <p class="howto"><?php printf(__('Hint: Download and activate %1$sWP-reCAPTCHA%2$s to add a captcha to your form. Alternatively activate Akismet for captcha-free spam screening.', FRM_PLUGIN_NAME), '<a href="'.$frm_siteurl.'/wp-admin/plugin-install.php?tab=plugin-information&amp;plugin=wp-recaptcha&amp;TB_iframe=true&amp;width=640&amp;height=593" class="thickbox onclick" title="WP-reCAPTCHA">', '</a>'); ?></p>
@@ -43,16 +43,11 @@
43
  </div><!-- /theme group Error -->
44
  <div class="theme-group-content corner-bottom clearfix">
45
  <div class="clearfix">
46
- <ul class="field_type_list">
47
- <?php
48
- if($frmpro_is_installed){
49
- foreach (FrmFieldsHelper::pro_field_selection() as $field_key => $field_type){ ?>
50
- <li class="frmbutton button" id="<?php echo $field_key ?>"><a href="javascript:add_frm_field_link(<?php echo $id ?>, '<?php echo $field_key ?>');"><?php echo $field_type ?></a></li>
51
- <?php }
52
- }else
53
- foreach (FrmFieldsHelper::pro_field_selection() as $field_key => $field_type)
54
- echo '<li class="frmbutton">'.$field_type.'</li>';
55
- ?>
56
  </ul>
57
  </div>
58
  </div><!-- /theme group content -->
@@ -67,9 +62,10 @@
67
  <div class="theme-group-content corner-bottom clearfix">
68
 
69
  <div class="clearfix">
70
- <ul class="ui-state-default">
71
- <li><span class="ui-icon ui-icon-star alignleft"></span> = <?php _e('required field', FRM_PLUGIN_NAME) ?></li>
72
- <li><span class="frm_inactive_icon ui-icon ui-icon-star alignleft"></span>
 
73
  = <?php _e('not required', FRM_PLUGIN_NAME) ?></li>
74
  <li><span><img src="<?php echo FRM_IMAGES_URL?>/reload.png"></span>
75
  = <?php _e('clear default text on click', FRM_PLUGIN_NAME) ?></li>
@@ -77,8 +73,12 @@
77
  = <?php _e('do not clear default text on click', FRM_PLUGIN_NAME) ?></li>
78
  <li><span><img src="<?php echo FRM_IMAGES_URL?>/error.png"></span>
79
  = <?php _e('default value will NOT pass validation', FRM_PLUGIN_NAME) ?></li>
80
- <li><span class="frm_inactive_icon"><img src="<?php echo FRM_IMAGES_URL?>/error.png"></span>
81
- = <?php _e('default value will pass validation', FRM_PLUGIN_NAME) ?></li>
 
 
 
 
82
  <li><span><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></span>
83
  = <?php _e('delete field and all inputed data', FRM_PLUGIN_NAME) ?></li>
84
  <li><span><img src="<?php echo FRM_IMAGES_URL ?>/duplicate.png" alt="Move"></span>
4
  <input type='text' style="text-align:center; font-weight:bold; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='[formidable id=<?php echo $id; ?>]' /></p>
5
  <?php } ?>
6
 
7
+ <p class="frm_orange"><a href="<?php echo FrmFormsHelper::get_direct_link($values['form_key']); ?>" target="_blank"><?php _e('Preview Form', FRM_PLUGIN_NAME) ?></a>
 
8
  <?php global $frm_settings; if ($frm_settings->preview_page_id > 0){ ?>
9
+ or <a href="<?php echo add_query_arg('form', $values['form_key'], get_permalink($frm_settings->preview_page_id)) ?>" target="_blank"><?php _e('Preview in Current Theme', FRM_PLUGIN_NAME) ?></a>
10
  <?php } ?>
11
+ </p>
12
 
13
  <p class="howto"><?php _e('Click on or drag a field into your form', FRM_PLUGIN_NAME) ?></p>
14
+ <div class="themeRoller clearfix">
15
  <div id="rollerTabs">
16
 
17
  <fieldset class="clearfix">
24
  <div class="clearfix">
25
  <ul class="field_type_list">
26
  <?php foreach ($frm_field_selection as $field_key => $field_type){ ?>
27
+ <li class="frmbutton button" id="<?php echo $field_key ?>"><a href="javascript:add_frm_field_link(<?php echo $id ?>, '<?php echo $field_key ?>', '<?php echo $frm_ajax_url ?>');"><?php echo $field_type ?></a></li>
28
  <?php } ?>
29
+ <div class="clear"></div>
30
  <?php if (!array_key_exists('captcha', $frm_field_selection) && !function_exists( 'akismet_http_post' )){
31
  global $frm_siteurl; ?>
32
  <p class="howto"><?php printf(__('Hint: Download and activate %1$sWP-reCAPTCHA%2$s to add a captcha to your form. Alternatively activate Akismet for captcha-free spam screening.', FRM_PLUGIN_NAME), '<a href="'.$frm_siteurl.'/wp-admin/plugin-install.php?tab=plugin-information&amp;plugin=wp-recaptcha&amp;TB_iframe=true&amp;width=640&amp;height=593" class="thickbox onclick" title="WP-reCAPTCHA">', '</a>'); ?></p>
43
  </div><!-- /theme group Error -->
44
  <div class="theme-group-content corner-bottom clearfix">
45
  <div class="clearfix">
46
+ <ul<?php echo apply_filters('frm_drag_field_class','') ?>>
47
+ <?php foreach (FrmFieldsHelper::pro_field_selection() as $field_key => $field_type){ ?>
48
+ <li class="frmbutton button" id="<?php echo $field_key ?>"><?php echo apply_filters('frmpro_field_links',$field_type, $id, $field_key) ?></li>
49
+ <?php } ?>
50
+ <div class="clear"></div>
 
 
 
 
 
51
  </ul>
52
  </div>
53
  </div><!-- /theme group content -->
62
  <div class="theme-group-content corner-bottom clearfix">
63
 
64
  <div class="clearfix">
65
+ <ul class="frm_key_icons">
66
+ <li><span><img src="<?php echo FRM_IMAGES_URL?>/required.png" alt="required"></span>
67
+ = <?php _e('required field', FRM_PLUGIN_NAME) ?></li>
68
+ <li><span class="frm_inactive_icon"><img src="<?php echo FRM_IMAGES_URL?>/required.png" alt="required"></span>
69
  = <?php _e('not required', FRM_PLUGIN_NAME) ?></li>
70
  <li><span><img src="<?php echo FRM_IMAGES_URL?>/reload.png"></span>
71
  = <?php _e('clear default text on click', FRM_PLUGIN_NAME) ?></li>
73
  = <?php _e('do not clear default text on click', FRM_PLUGIN_NAME) ?></li>
74
  <li><span><img src="<?php echo FRM_IMAGES_URL?>/error.png"></span>
75
  = <?php _e('default value will NOT pass validation', FRM_PLUGIN_NAME) ?></li>
76
+ <li><span class="frm_inactive_icon"><img src="<?php echo FRM_IMAGES_URL?>/error.png"></span>
77
+ = <?php _e('default value will pass validation', FRM_PLUGIN_NAME) ?></li>
78
+ <li><span><img src="<?php echo FRM_IMAGES_URL?>/readonly.png" alt="read-only"></span>
79
+ = <?php _e('read-only field', FRM_PLUGIN_NAME) ?></li>
80
+ <li><span class="frm_inactive_icon"><img src="<?php echo FRM_IMAGES_URL?>/readonly.png" alt="read-only"></span>
81
+ = <?php _e('not a read-only field', FRM_PLUGIN_NAME) ?></li>
82
  <li><span><img src="<?php echo FRM_IMAGES_URL ?>/trash.png" alt="Delete"></span>
83
  = <?php _e('delete field and all inputed data', FRM_PLUGIN_NAME) ?></li>
84
  <li><span><img src="<?php echo FRM_IMAGES_URL ?>/duplicate.png" alt="Move"></span>
classes/views/frm-forms/default-templates.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php FrmFormsHelper::get_template_dropdown($all_templates); ?>
2
 
3
  <h3><?php _e('Default Templates', 'formidable') ?></h3>
4
- <table class="widefat post fixed" cellspacing="0">
5
  <thead>
6
  <tr>
7
  <th class="manage-column" width="30%"><?php _e('Name', 'formidable') ?></th>
@@ -14,21 +14,22 @@
14
  }else{
15
  foreach($default_templates as $form){
16
  ?>
17
- <tr style="min-height: 60px; height: 60px;">
18
- <td class="edit_item">
19
- <a class="item_name" href="<?php echo $url = FrmFormsHelper::get_direct_link($form->form_key); ?>" title="<?php _e('Preview', 'formidable')?> <?php echo stripslashes($form->name); ?>" target="blank"><?php echo stripslashes($form->name); ?></a>
20
- <br/>
21
- <div class="item_actions">
22
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=duplicate&id=<?php echo $form->id; ?>" title="<?php _e('Copy', 'formidable') ?> <?php echo $form->name; ?>"><?php _e('Create Form from Template', 'formidable') ?></a> |
23
- <?php global $frm_settings;
24
- if ($frm_settings->preview_page_id > 0)
 
25
  $url = add_query_arg('form', $form->form_key, get_permalink($frm_settings->preview_page_id));
26
- ?>
27
- <a href="<?php echo $url ?>" title="View <?php echo stripslashes($form->name); ?>" target="blank"><?php _e('View', 'formidable') ?></a>
28
- </div>
29
- </td>
30
- <td><?php echo $form->description ?></td>
31
- </tr>
32
  <?php
33
  }
34
  }
1
  <?php FrmFormsHelper::get_template_dropdown($all_templates); ?>
2
 
3
  <h3><?php _e('Default Templates', 'formidable') ?></h3>
4
+ <table class="widefat post fixed" id="posts-filter" cellspacing="0">
5
  <thead>
6
  <tr>
7
  <th class="manage-column" width="30%"><?php _e('Name', 'formidable') ?></th>
14
  }else{
15
  foreach($default_templates as $form){
16
  ?>
17
+ <tr style="min-height: 60px; height: 60px;">
18
+ <td class="post-title">
19
+ <a class="row-title" href="<?php echo $url = FrmFormsHelper::get_direct_link($form->form_key); ?>" title="<?php _e('Preview', 'formidable')?> <?php echo stripslashes($form->name); ?>" target="blank"><?php echo stripslashes($form->name); ?></a><br/>
20
+ <div class="row-actions">
21
+ <?php if(current_user_can('frm_edit_forms')){ ?>
22
+ <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=duplicate&id=<?php echo $form->id; ?>" title="<?php _e('Copy', 'formidable') ?> <?php echo $form->name; ?>"><?php _e('Create Form from Template', 'formidable') ?></a></span> |
23
+ <?php } ?>
24
+ <?php global $frm_settings;
25
+ if ($frm_settings->preview_page_id > 0)
26
  $url = add_query_arg('form', $form->form_key, get_permalink($frm_settings->preview_page_id));
27
+ ?>
28
+ <span><a href="<?php echo $url ?>" title="View <?php echo stripslashes($form->name); ?>" target="blank"><?php _e('View', 'formidable') ?></a></span>
29
+ </div>
30
+ </td>
31
+ <td><?php echo $form->description ?></td>
32
+ </tr>
33
  <?php
34
  }
35
  }
classes/views/frm-forms/edit.php CHANGED
@@ -1,12 +1,12 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Edit Form', 'formidable') ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
6
 
7
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
8
 
9
- <div class="frm_form_builder alignleft" id="poststuff">
10
  <form name="form1" method="post" action="">
11
  <p class="submit">
12
  <input type="submit" name="Submit" value="<?php _e('Update', 'formidable') ?>" class="button-primary" /> <?php _e('or', 'formidable') ?>
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Edit Form', 'formidable') ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
6
 
7
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
8
 
9
+ <div class="frm_form_builder alignleft<?php echo ($values['custom_style']) ? ' with_frm_style' : ''; ?>" id="poststuff">
10
  <form name="form1" method="post" action="">
11
  <p class="submit">
12
  <input type="submit" name="Submit" value="<?php _e('Update', 'formidable') ?>" class="button-primary" /> <?php _e('or', 'formidable') ?>
classes/views/frm-forms/footer.php CHANGED
@@ -1,5 +1,18 @@
1
  <script type="text/javascript">
2
  jQuery(document).ready(function($){
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  $(".frm_ipe_field_option").editInPlace({
4
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
5
  params:"action=frm_field_option_ipe",
@@ -12,20 +25,7 @@ $(".frm_ipe_field_option_select").editInPlace({
12
  default_text:'(Blank)'
13
  });
14
 
15
- $(".frm_ipe_form_name").editInPlace({
16
- url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
17
- params:"action=frm_form_name_in_place_edit&form_id=<?php echo $id; ?>",
18
- value_required:"true", bg_out:'#fff'
19
- });
20
 
21
- $(".frm_ipe_form_desc").editInPlace({
22
- url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
23
- params:"action=frm_form_desc_in_place_edit&form_id=<?php echo $id; ?>",
24
- field_type:"textarea",
25
- textarea_rows:3,
26
- textarea_cols:60,
27
- default_text:"(Click here to add form description or instructions)"
28
- });
29
  $(".frm_ipe_field_label").editInPlace({
30
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
31
  params:"action=frm_field_name_in_place_edit",
@@ -39,7 +39,7 @@ $(".frm_ipe_field_desc").editInPlace({
39
  field_type:'textarea',
40
  textarea_rows:1
41
  });
42
-
43
  $("#new_fields").sortable({
44
  cursor:'move',
45
  accepts:'field_type_list',
@@ -70,34 +70,23 @@ $("#new_fields").sortable({
70
  });
71
  }
72
  });
73
-
74
  });
75
- jQuery('.field_type_list > li').draggable({connectToSortable:'#new_fields',cursor:'move',helper:'clone',revert:'invalid',delay:10});
76
- jQuery("ul.field_type_list, .field_type_list li").disableSelection();
77
-
78
- //window.onunload = function(){jQuery.ajax({type:"POST",url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",data:"action=frm_delete_form_wo_fields&form_id=<?php echo $id; ?>"});return false;};
79
-
80
- function add_frm_field_link(form_id, field_type){
81
- jQuery.ajax({
82
- type:"POST",
83
- url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
84
- data:"action=frm_insert_field&form_id="+form_id+"&field="+field_type,
85
- success:function(msg){jQuery('#new_fields').append(msg);}
86
- });
87
- };
88
 
89
  function frm_mark_required(field_id, required){
90
  var thisid= 'req_field_' + field_id;
91
- if (required == '0')
92
  var switch_to = '1';
93
- else
 
94
  var switch_to = '0';
 
 
95
  jQuery('#'+thisid).replaceWith('<img id="' + thisid + '" class="ui-icon alignleft" src="<?php echo FRM_IMAGES_URL; ?>/required_loader.gif" alt="<?php _e('Loading...', FRM_PLUGIN_NAME); ?>" />');
96
  jQuery.ajax({
97
  type:"POST",
98
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
99
  data:"action=frm_mark_required&field="+field_id+"&required="+switch_to,
100
- success:function(msg){ jQuery('#'+thisid).replaceWith('<a href="javascript:frm_mark_required( '+field_id+', '+switch_to+')" class="ui-icon ui-icon-star alignleft frm_required'+switch_to+'" id="'+thisid+'"></a>');}
101
  });
102
  };
103
 
@@ -137,12 +126,20 @@ function frm_default_blank(field_id, active){
137
  });
138
  };
139
 
140
- function frm_duplicate_field(field_id){
 
 
 
 
 
 
 
 
 
141
  jQuery.ajax({
142
- type:"POST",
143
- url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
144
- data:"action=frm_duplicate_field&field_id="+field_id,
145
- success:function(msg){jQuery('#new_fields').append(msg);}
146
  });
147
  };
148
 
@@ -152,28 +149,9 @@ function frm_delete_field(field_id){
152
  type:"POST",
153
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
154
  data:"action=frm_delete_field&field_id="+field_id,
155
- success:function(msg){
156
- jQuery('#new_fields').append(msg);
157
- jQuery("#frm_field_id_"+field_id).hide('highlight',{},500, setTimeout(function(){ jQuery("#frm_delete_field"+field_id+":hidden").removeAttr('style').hide().fadeIn(); }, 1000));
158
- }
159
  });
160
  }
161
  };
162
 
163
- function frm_add_field_option(field_id){
164
- jQuery.ajax({
165
- type:"POST",
166
- url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
167
- data:"action=frm_add_field_option&field_id="+field_id,
168
- success:function(msg){jQuery('#frm_add_field_'+field_id).before(msg);}
169
- });
170
- };
171
-
172
- function frm_delete_field_option(field_id, opt_key){
173
- jQuery.ajax({
174
- type:"POST",url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
175
- data:"action=frm_delete_field_option&field_id="+field_id+"&opt_key="+opt_key,
176
- success:function(msg){ jQuery('#frm_delete_field_'+field_id+'-'+opt_key+'_container').hide('highlight');}
177
- });
178
- };
179
  </script>
1
  <script type="text/javascript">
2
  jQuery(document).ready(function($){
3
+ $(".frm_ipe_form_name").editInPlace({
4
+ url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
5
+ params:"action=frm_form_name_in_place_edit&form_id=<?php echo $id; ?>",
6
+ value_required:"true", bg_out:'#fff'
7
+ });
8
+
9
+ $(".frm_ipe_form_desc").editInPlace({
10
+ url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
11
+ params:"action=frm_form_desc_in_place_edit&form_id=<?php echo $id; ?>",
12
+ field_type:"textarea",textarea_rows:3,textarea_cols:60,
13
+ default_text:"<?php _e('(Click here to add form description or instructions)', 'formidable') ?>"
14
+ });
15
+
16
  $(".frm_ipe_field_option").editInPlace({
17
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
18
  params:"action=frm_field_option_ipe",
25
  default_text:'(Blank)'
26
  });
27
 
 
 
 
 
 
28
 
 
 
 
 
 
 
 
 
29
  $(".frm_ipe_field_label").editInPlace({
30
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
31
  params:"action=frm_field_name_in_place_edit",
39
  field_type:'textarea',
40
  textarea_rows:1
41
  });
42
+
43
  $("#new_fields").sortable({
44
  cursor:'move',
45
  accepts:'field_type_list',
70
  });
71
  }
72
  });
 
73
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
  function frm_mark_required(field_id, required){
76
  var thisid= 'req_field_' + field_id;
77
+ if (required == '0'){
78
  var switch_to = '1';
79
+ var atitle = 'Click to Mark as Not Required';
80
+ }else{
81
  var switch_to = '0';
82
+ var atitle = 'Click to Mark as Required';
83
+ }
84
  jQuery('#'+thisid).replaceWith('<img id="' + thisid + '" class="ui-icon alignleft" src="<?php echo FRM_IMAGES_URL; ?>/required_loader.gif" alt="<?php _e('Loading...', FRM_PLUGIN_NAME); ?>" />');
85
  jQuery.ajax({
86
  type:"POST",
87
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
88
  data:"action=frm_mark_required&field="+field_id+"&required="+switch_to,
89
+ success:function(msg){ jQuery('#'+thisid).replaceWith('<a href="javascript:frm_mark_required('+field_id+','+switch_to+')" class="alignleft frm_required'+switch_to+'" id="'+thisid+'" title="'+atitle+'"><img src="<?php echo FRM_IMAGES_URL?>/required.png" alt="required"></a>');}
90
  });
91
  };
92
 
126
  });
127
  };
128
 
129
+ function frm_read_only(field_id, active){
130
+ var thisid= 'read_only_' + field_id;
131
+ if (active == '1'){
132
+ var switch_to = '0';
133
+ var new_class = 'frm_inactive_icon';
134
+ }else{
135
+ var switch_to = '1';
136
+ var new_class = '';
137
+ }
138
+ jQuery('#'+thisid).replaceWith('<img id="'+thisid+'" src="<?php echo FRM_IMAGES_URL; ?>/wpspin_light.gif" alt="<?php _e('Loading...', FRM_PLUGIN_NAME); ?>" />');
139
  jQuery.ajax({
140
+ type:"POST",url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
141
+ data:"action=frm_read_only&field="+field_id+"&active="+switch_to,
142
+ success:function(msg){ jQuery('#'+thisid).replaceWith('<a href="javascript:frm_read_only('+field_id+', '+switch_to+')" class="'+new_class+' frm-show-hover" id="'+thisid+'"><img src="<?php echo FRM_IMAGES_URL?>/readonly.png"></a>');}
 
143
  });
144
  };
145
 
149
  type:"POST",
150
  url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
151
  data:"action=frm_delete_field&field_id="+field_id,
152
+ success:function(msg){jQuery("#frm_field_id_"+field_id).fadeOut("slow");}
 
 
 
153
  });
154
  }
155
  };
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  </script>
classes/views/frm-forms/form.php CHANGED
@@ -15,43 +15,82 @@ if (isset($values['fields']) && !empty($values['fields'])){
15
  </ul>
16
 
17
  <?php if (!$values['is_template']){ ?>
18
- <h3 class="ui-accordion-header ui-state-default">
19
- <span class="ui-icon ui-icon-triangle-1-e"></span>
20
- <a href="#"><?php _e('Advanced Form Options', 'formidable') ?></a>
21
- </h3>
22
- <div class="ui-widget-content ui-corner-bottom">
23
- <span class="alignright"><a title="<?php _e('Edit HTML', 'formidable') ?>" href="#TB_inline?height=500&width=700&inlineId=frm_editable_html" class="thickbox button"><?php _e('Edit HTML', 'formidable') ?></a></span>
24
-
25
- <p style="clear:both;"><label><?php _e('Form ShortCodes') ?>:</label>
26
- [formidable id=<?php echo $id; ?> title=true description=true] [formidable key=<?php echo $values['form_key']; ?>]
27
- </p>
28
-
29
- <p><label><?php _e('Form Key') ?></label>
30
- <input type="text" name="form_key" value="<?php echo $values['form_key']; ?>" />
31
- </p>
32
-
33
- <p><label><?php _e('Styling', 'formidable') ?></label><input type="checkbox" name="options[custom_style]" <?php echo ($values['custom_style']) ? (' checked="checked"') : (''); ?> />
34
- <?php _e('Use Formidable styling for this form', 'formidable') ?>
35
- </p>
36
-
37
- <p><label><?php _e('Email Form Responses to', 'formidable') ?></label>
38
- <input type="text" name="options[email_to]" size="55" value="<?php echo $values['email_to']; ?>" />
39
- </p>
40
-
41
- <p><label><?php _e('New Entry Submit Button Label', 'formidable') ?></label>
42
- <input type="text" name="options[submit_value]" value="<?php echo $values['submit_value']; ?>" />
43
- </p>
44
-
45
- <p><label><?php _e('New Entry Success Message', 'formidable') ?></label>
46
- <input type="text" name="options[success_msg]" size="55" value="<?php echo $values['success_msg']; ?>" />
47
- </p>
48
-
49
- <?php do_action('frm_additional_form_options', $values); ?>
50
-
51
- <?php if (function_exists( 'akismet_http_post' )){ ?>
52
- <p><input type="checkbox" name="options[akismet]" id="akismet" value="1" <?php checked($values['akismet'], 1); ?> /> <?php _e('Use Akismet to check entries for spam', 'formidable') ?></p>
53
- <?php } ?>
54
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  </div>
56
  <div id="frm_editable_html" style="display:none;">
57
  <div class="alignleft" style="width:500px">
@@ -91,7 +130,6 @@ if (isset($values['fields']) && !empty($values['fields'])){
91
  <li><b><?php _e('Add class name if field is required', 'formidable') ?>:</b> [required_class]</li>
92
  <li><b><?php _e('Add class name if field has an error on form submit', 'formidable') ?>:</b> [error_class]</li>
93
  </ul>
94
- </div>
95
-
96
  <?php } ?>
97
  </div>
15
  </ul>
16
 
17
  <?php if (!$values['is_template']){ ?>
18
+ <div class="themeRoller clearfix">
19
+ <div class="theme-group clearfix">
20
+ <div class="theme-group-header state-default">
21
+ <span class="icon icon-triangle-1-e"><?php _e('Collapse', FRM_PLUGIN_NAME) ?></span>
22
+ <a href="#"><?php _e('Advanced Form Options', 'formidable') ?></a>
23
+ </div><!-- /theme group Error -->
24
+ <div class="theme-group-content corner-bottom clearfix">
25
+ <div class="clearfix">
26
+ <span class="alignright"><a title="<?php _e('Edit HTML', 'formidable') ?>" href="#TB_inline?height=500&width=700&inlineId=frm_editable_html" class="thickbox button"><?php _e('Edit HTML', 'formidable') ?></a></span>
27
+ <table class="form-table">
28
+ <tr>
29
+ <td width="200px"><label><?php _e('Form ShortCodes') ?>:</label> <a href="http://formidablepro.com/user-manual/insert-a-form/" target="_blank"><img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('Key and id are generally synonymous. For more information on using this shortcode, click now.', FRM_PLUGIN_NAME) ?>" /></a></td>
30
+ <td>[formidable id=<?php echo $id; ?> title=true description=true] or [formidable key=<?php echo $values['form_key']; ?>]</td>
31
+ </tr>
32
+
33
+ <tr>
34
+ <td><label><?php _e('Form Key', FRM_PLUGIN_NAME) ?>:</label></td>
35
+ <td><input type="text" name="form_key" value="<?php echo $values['form_key']; ?>" /></td>
36
+ </tr>
37
+
38
+ <tr><td><label><?php _e('Styling', FRM_PLUGIN_NAME) ?>:</label></td>
39
+ <td><input type="checkbox" name="options[custom_style]" id="custom_style" <?php echo ($values['custom_style']) ? (' checked="checked"') : (''); ?> />
40
+ <label for="custom_style"><?php _e('Use Formidable styling for this form', 'formidable') ?></label></td>
41
+ </tr>
42
+
43
+ <tr><td><label><?php _e('Submit Button Text', FRM_PLUGIN_NAME) ?>:</label></td>
44
+ <td><input type="text" name="options[submit_value]" value="<?php echo $values['submit_value']; ?>" /></td>
45
+ </tr>
46
+
47
+ <tr><td valign="top"><label><?php _e('Action After Form Submission', FRM_PLUGIN_NAME) ?>:</label>
48
+ <?php if(!$frmpro_is_installed){ ?>
49
+ <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('To use the second two options, you must upgrade to Formidable Pro.', FRM_PLUGIN_NAME) ?>" />
50
+ <?php } ?>
51
+ </td>
52
+ <td>
53
+ <input type="radio" name="options[success_action]" id="success_action_message" value="message" <?php checked($values['success_action'], 'message') ?>/> <label for="success_action_message"><?php _e('Display a Message', FRM_PLUGIN_NAME) ?></label>
54
+ <input type="radio" name="options[success_action]" id="success_action_page" value="page" <?php checked($values['success_action'], 'page') ?> <?php if(!$frmpro_is_installed) echo 'disabled="disabled" '; ?>/> <label for="success_action_page"><?php _e('Display content from another page', FRM_PLUGIN_NAME) ?></label>
55
+ <input type="radio" name="options[success_action]" id="success_action_redirect" value="redirect" <?php checked($values['success_action'], 'redirect') ?> <?php if(!$frmpro_is_installed) echo 'disabled="disabled" '; ?>/> <label for="success_action_redirect"><?php _e('Redirect', FRM_PLUGIN_NAME) ?></label>
56
+ </td>
57
+ </tr>
58
+
59
+ <tr class="success_action_message_box success_action_box"><td valign="top"><label><?php _e('Confirmation Message', FRM_PLUGIN_NAME) ?>:</label></td>
60
+ <td><textarea name="options[success_msg]" cols="50" class="frm_elastic_text"><?php echo $values['success_msg']; ?></textarea> <br/>
61
+ <input type="checkbox" name="options[show_form]" id="show_form" value="1" <?php checked($values['show_form'], 1) ?>> <label for="show_form"><?php _e('Show the form with the success message.', 'formidable')?></label>
62
+ <td>
63
+ </tr>
64
+
65
+ <?php do_action('frm_additional_form_options', $values); ?>
66
+
67
+ <?php if (function_exists( 'akismet_http_post' )){ ?>
68
+ <tr><td colspan="2"><input type="checkbox" name="options[akismet]" id="akismet" value="1" <?php checked($values['akismet'], 1); ?> /> <?php _e('Use Akismet to check entries for spam', 'formidable') ?></td></tr>
69
+ <?php } ?>
70
+ </table>
71
+ </div>
72
+ </div><!-- /theme group content -->
73
+ </div><!-- /theme group -->
74
+
75
+ <div class="theme-group clearfix">
76
+ <div class="theme-group-header state-default">
77
+ <span class="icon icon-triangle-1-e"><?php _e('Collapse', FRM_PLUGIN_NAME) ?></span>
78
+ <a href="#"><?php _e('Form Notification Options', 'formidable') ?></a>
79
+ </div><!-- /theme group Error -->
80
+ <div class="theme-group-content corner-bottom clearfix">
81
+ <div class="clearfix">
82
+ <table class="form-table">
83
+ <tr>
84
+ <td width="200px"><label><?php _e('Email Form Responses to', 'formidable') ?>:</label> <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('To send to multiple addresses, separate each address with a comma', FRM_PLUGIN_NAME) ?>" /></td>
85
+ <td><input type="text" name="options[email_to]" size="55" value="<?php echo $values['email_to']; ?>" /></td>
86
+ </tr>
87
+ <?php do_action('frm_additional_form_notification_options', $values); ?>
88
+ </table>
89
+ </div>
90
+ </div><!-- /theme group content -->
91
+ </div><!-- /theme group -->
92
+ </div>
93
+
94
  </div>
95
  <div id="frm_editable_html" style="display:none;">
96
  <div class="alignleft" style="width:500px">
130
  <li><b><?php _e('Add class name if field is required', 'formidable') ?>:</b> [required_class]</li>
131
  <li><b><?php _e('Add class name if field has an error on form submit', 'formidable') ?>:</b> [error_class]</li>
132
  </ul>
133
+ </div>
 
134
  <?php } ?>
135
  </div>
classes/views/frm-forms/list.php CHANGED
@@ -1,23 +1,23 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php echo ($params['template'])? __('Templates', FRM_PLUGIN_NAME) : __('Forms', FRM_PLUGIN_NAME); ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
6
 
7
- <?php do_action('frm_before_item_nav',$sort_str, $sdir_str, $search_str); ?>
8
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
9
 
10
  <?php if ($params['template']) require('default-templates.php'); ?>
11
 
12
- <form class="form-fields item-list-form" name="item_list_form" method="post" action="">
13
- <input type="hidden" name="action" value="list-form"/>
14
  <input type="hidden" name="template" value="<?php echo $params['template'] ?>" />
15
  <?php $footer = false; require(FRM_VIEWS_PATH.'/shared/item-table-nav.php'); ?>
16
  <table class="widefat post fixed" cellspacing="0">
17
  <thead>
18
  <tr>
19
  <?php if ($params['template']){ ?>
20
- <th class="manage-column" width="30%">
21
  <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-templates&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Name', FRM_PLUGIN_NAME) ?><?php echo (($sort_str == 'name')?' &nbsp; <img src="'.FRM_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
22
  </th>
23
  <th class="manage-column">
@@ -37,7 +37,7 @@
37
  <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&sort=form_key<?php echo (($sort_str == 'form_key' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Key', FRM_PLUGIN_NAME) ?><?php echo (($sort_str == 'form_key')?' &nbsp; <img src="'.FRM_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
38
  </th>
39
  <th class="manage-column" width="60px"><?php _e('Entries', FRM_PLUGIN_NAME) ?></th>
40
- <th class="manage-column"><?php _e('Direct Link', FRM_PLUGIN_NAME) ?></th>
41
  <th class="manage-column" width="115px"><?php _e('ShortCode', FRM_PLUGIN_NAME) ?></th>
42
  <?php } ?>
43
  </tr>
@@ -50,44 +50,67 @@
50
  }else{
51
  foreach($forms as $form){
52
  ?>
53
- <tr style="min-height: 75px; height: 75px;">
54
- <?php if ($params['template']){ ?>
55
- <td class="edit_item">
56
- <a class="item_name" href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=edit&id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo stripslashes($form->name); ?>"><?php echo stripslashes($form->name); ?></a>
57
- <br/>
58
- <div class="item_actions">
59
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=duplicate&id=<?php echo $form->id; ?>" title="<?php _e('Copy', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Create Form from Template', FRM_PLUGIN_NAME) ?></a>
60
- | <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=edit&id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Edit', FRM_PLUGIN_NAME) ?></a>
61
- | <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=destroy&id=<?php echo $form->id; ?>" onclick="return confirm(<?php printf(__('Are you sure you want to delete your %1$s Form?'), $form->name) ?>);" title="<?php _e('Delete', FRM_PLUGIN_NAME) ?> <?php echo $form->form_key; ?>"><?php _e('Delete', FRM_PLUGIN_NAME) ?></a>
62
- </div>
63
- </td>
64
- <td><?php echo $form->description ?></td>
65
- <?php }else{ ?>
66
- <td><?php do_action('frm_first_col', $form->id); ?> <?php echo $form->id ?></td>
67
- <td class="edit_item">
68
- <a class="item_name" href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=edit&id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo stripslashes($form->name); ?>"><?php echo stripslashes($form->name); ?></a>
69
- <br/>
70
- <div class="item_actions">
71
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=edit&id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Edit', FRM_PLUGIN_NAME) ?></a> |
72
- <?php if($frmpro_is_installed){ ?>
73
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-entries&action=new&form=<?php echo $form->id; ?>" title="<?php _e('New', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?> <?php _e('Entry', FRM_PLUGIN_NAME) ?>"><?php _e('New Entry', FRM_PLUGIN_NAME) ?></a> |
74
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-entries&form=<?php echo $form->id; ?>" title="<?php echo $form->name; ?> Entries"><?php _e('Entries', FRM_PLUGIN_NAME) ?></a> |
75
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-reports&form=<?php echo $form->id; ?>" title="<?php echo $form->name; ?> Reports"><?php _e('Reports', FRM_PLUGIN_NAME) ?></a> |
76
- <?php } ?>
77
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=duplicate&id=<?php echo $form->id; ?>" title="<?php _e('Copy', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Duplicate', FRM_PLUGIN_NAME) ?></a> |
78
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=duplicate&id=<?php echo $form->id; ?>&template=1" title="<?php _e('Create', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?> <?php _e('Template', FRM_PLUGIN_NAME) ?>"><?php _e('Create Template', FRM_PLUGIN_NAME) ?></a> |
79
- <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&action=destroy&id=<?php echo $form->id; ?>" onclick="return confirm(<?php printf(__('Are you sure you want to delete your %1$s Form?'), $form->name) ?>);" title="<?php _e('Delete', FRM_PLUGIN_NAME) ?> <?php echo $form->form_key; ?>"><?php _e('Delete', FRM_PLUGIN_NAME) ?></a>
80
- </div>
81
- </td>
82
- <td><?php echo stripslashes($form->description) ?></td>
83
- <td><?php echo $form->form_key ?></td>
84
- <td><?php echo apply_filters('frm_view_entries_link', $frm_entry->getRecordCount("it.form_id=$form->id") . ' '. __('Entries', FRM_PLUGIN_NAME), $form->id); ?></td>
85
- <td>
86
- <input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $target_url = FrmFormsHelper::get_direct_link($form->form_key, $form->prli_link_id); ?>' /><br/><a href="<?php echo $target_url; ?>" target="blank"><?php _e('View Form', FRM_PLUGIN_NAME) ?></a>
87
- </td>
88
- <td><input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='[formidable id=<?php echo $form->id; ?>]' /></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  <?php } ?>
90
- </tr>
91
  <?php
92
  }
93
  }
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php echo ($params['template'])? __('Templates', FRM_PLUGIN_NAME) : __('Forms', FRM_PLUGIN_NAME); ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
6
 
7
+ <?php do_action('frm_before_item_nav',$sort_str, $sdir_str, $search_str, false); ?>
8
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
9
 
10
  <?php if ($params['template']) require('default-templates.php'); ?>
11
 
12
+ <form class="form-fields item-list-form" name="item_list_form" id="posts-filter" method="post" action="">
13
+ <input type="hidden" name="action" value="list-form"/>
14
  <input type="hidden" name="template" value="<?php echo $params['template'] ?>" />
15
  <?php $footer = false; require(FRM_VIEWS_PATH.'/shared/item-table-nav.php'); ?>
16
  <table class="widefat post fixed" cellspacing="0">
17
  <thead>
18
  <tr>
19
  <?php if ($params['template']){ ?>
20
+ <th class="manage-column" width="">
21
  <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-templates&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Name', FRM_PLUGIN_NAME) ?><?php echo (($sort_str == 'name')?' &nbsp; <img src="'.FRM_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
22
  </th>
23
  <th class="manage-column">
37
  <a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&sort=form_key<?php echo (($sort_str == 'form_key' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Key', FRM_PLUGIN_NAME) ?><?php echo (($sort_str == 'form_key')?' &nbsp; <img src="'.FRM_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
38
  </th>
39
  <th class="manage-column" width="60px"><?php _e('Entries', FRM_PLUGIN_NAME) ?></th>
40
+ <th class="manage-column" width="115px"><?php _e('Direct Link', FRM_PLUGIN_NAME) ?></th>
41
  <th class="manage-column" width="115px"><?php _e('ShortCode', FRM_PLUGIN_NAME) ?></th>
42
  <?php } ?>
43
  </tr>
50
  }else{
51
  foreach($forms as $form){
52
  ?>
53
+ <tr style="min-height: 75px; height: 75px;" class="iedit">
54
+ <?php if ($params['template']){ ?>
55
+ <td class="post-title">
56
+ <?php if(current_user_can('frm_edit_forms')){ ?>
57
+ <a class="row-title" href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=edit&amp;id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo stripslashes($form->name); ?>"><?php echo stripslashes($form->name); ?></a>
58
+ <?php }else{ ?>
59
+ <?php echo stripslashes($form->name); ?>
60
+ <?php }?>
61
+ <br/>
62
+ <div class="row-actions">
63
+ <?php if(current_user_can('frm_edit_forms')){ ?>
64
+ <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=duplicate&amp;id=<?php echo $form->id; ?>" title="<?php _e('Copy', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Create Form from Template', FRM_PLUGIN_NAME) ?></a></span>
65
+ | <span class="edit"><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=edit&amp;id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Edit', FRM_PLUGIN_NAME) ?></a></span>
66
+ <?php } ?>
67
+ <?php do_action('frm_template_action_links', $form); ?>
68
+ <?php if(current_user_can('frm_delete_forms')){ ?>
69
+ | <span class="trash"><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=destroy&amp;id=<?php echo $form->id; ?>" onclick="return confirm('<?php printf(__('Are you sure you want to delete your %1$s Form?'), stripslashes($form->name)) ?>');" title="<?php _e('Delete', FRM_PLUGIN_NAME) ?> <?php echo $form->form_key; ?>"><?php _e('Delete', FRM_PLUGIN_NAME) ?></a></span>
70
+ <?php } ?>
71
+ </div>
72
+ </td>
73
+ <td><?php echo $form->description ?></td>
74
+ <?php }else{ ?>
75
+ <td><?php do_action('frm_first_col', $form->id); ?> <?php echo $form->id ?></td>
76
+ <td class="post-title">
77
+ <?php if(current_user_can('frm_edit_forms')){ ?>
78
+ <a class="row-title" href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=edit&amp;id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo stripslashes($form->name); ?>"><?php echo stripslashes($form->name); ?></a>
79
+ <?php }else{ ?>
80
+ <?php echo stripslashes($form->name); ?>
81
+ <?php }?>
82
+ <br/>
83
+ <div class="row-actions">
84
+ <?php if(current_user_can('frm_edit_forms')){ ?>
85
+ <span class="edit"><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=edit&amp;id=<?php echo $form->id; ?>" title="<?php _e('Edit', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Edit', FRM_PLUGIN_NAME) ?></a></span>
86
+ <?php } ?>
87
+ <?php if($frmpro_is_installed){ ?>
88
+ <?php if(current_user_can('frm_create_entries')){ ?>
89
+ | <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-entries&amp;action=new&amp;form=<?php echo $form->id; ?>" title="<?php _e('New', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?> <?php _e('Entry', FRM_PLUGIN_NAME) ?>"><?php _e('New Entry', FRM_PLUGIN_NAME) ?></a></span>
90
+ <?php } ?>
91
+ <?php if(current_user_can('frm_view_entries')){ ?>
92
+ | <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-entries&amp;form=<?php echo $form->id; ?>" title="<?php echo $form->name; ?> Entries"><?php _e('Entries', FRM_PLUGIN_NAME) ?></a></span>
93
+ <?php } ?>
94
+ | <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-reports&amp;form=<?php echo $form->id; ?>" title="<?php echo $form->name; ?> Reports"><?php _e('Reports', FRM_PLUGIN_NAME) ?></a></span>
95
+ <?php } ?>
96
+ <?php if(current_user_can('frm_edit_forms')){ ?>
97
+ | <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=duplicate&amp;id=<?php echo $form->id; ?>" title="<?php _e('Copy', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?>"><?php _e('Duplicate', FRM_PLUGIN_NAME) ?></a></span>
98
+ | <span><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=duplicate&amp;id=<?php echo $form->id; ?>&amp;template=1" title="<?php _e('Create', FRM_PLUGIN_NAME) ?> <?php echo $form->name; ?> <?php _e('Template', FRM_PLUGIN_NAME) ?>"><?php _e('Create Template', FRM_PLUGIN_NAME) ?></a></span>
99
+ <?php } ?>
100
+ <?php if(current_user_can('frm_delete_forms')){ ?>
101
+ | <span class="trash"><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>&amp;action=destroy&amp;id=<?php echo $form->id; ?>" onclick="return confirm('<?php printf(__('Are you sure you want to delete your %1$s Form?'), stripslashes($form->name)) ?>');" title="<?php _e('Delete', FRM_PLUGIN_NAME) ?> <?php echo $form->form_key; ?>"><?php _e('Delete', FRM_PLUGIN_NAME) ?></a></span>
102
+ <?php } ?>
103
+ </div>
104
+ </td>
105
+ <td><?php echo stripslashes($form->description) ?></td>
106
+ <td><?php echo $form->form_key ?></td>
107
+ <td><?php echo apply_filters('frm_view_entries_link', $frm_entry->getRecordCount("it.form_id=$form->id") . ' '. __('Entries', FRM_PLUGIN_NAME), $form->id); ?></td>
108
+ <td>
109
+ <input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $target_url = FrmFormsHelper::get_direct_link($form->form_key, $form->prli_link_id); ?>' /><br/><a href="<?php echo $target_url; ?>" target="blank"><?php _e('View Form', FRM_PLUGIN_NAME) ?></a>
110
+ </td>
111
+ <td><input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='[formidable id=<?php echo $form->id; ?>]' /></td>
112
  <?php } ?>
113
+ </tr>
114
  <?php
115
  }
116
  }
classes/views/frm-forms/new-field-js.php CHANGED
@@ -6,7 +6,7 @@ jQuery(document).ready(function($){
6
  $('li.ui-state-default.selected').removeClass('selected'); $(this).addClass('selected');
7
  });
8
 
9
- $('#frm_form_editor_container #frm_field_id_<?php echo $field['id']; ?> .ui-accordion-header').addClass('ui-corner-all').spinDown();
10
 
11
  jQuery('#frm_field_id_<?php echo $field['id']; ?> .frm_single_option').hover(
12
  function(){jQuery(this).children(".frm_single_show_hover").show(); jQuery(this).children(".frm_spacer").hide();},
6
  $('li.ui-state-default.selected').removeClass('selected'); $(this).addClass('selected');
7
  });
8
 
9
+ $('#frm_form_editor_container #frm_field_id_<?php echo $field['id']; ?> .theme-group-header').addClass('corner-all').spinDown();
10
 
11
  jQuery('#frm_field_id_<?php echo $field['id']; ?> .frm_single_option').hover(
12
  function(){jQuery(this).children(".frm_single_show_hover").show(); jQuery(this).children(".frm_spacer").hide();},
classes/views/frm-forms/new-selection.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
 
4
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Create Form', FRM_PLUGIN_NAME) ?></h2>
5
 
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
 
4
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Create Form', FRM_PLUGIN_NAME) ?></h2>
5
 
classes/views/frm-forms/new.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
 
4
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Create Form', FRM_PLUGIN_NAME) ?></h2>
5
 
@@ -7,7 +7,7 @@
7
 
8
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
9
 
10
- <div class="frm_form_builder alignleft" id="poststuff">
11
  <form name="form1" method="post" action="">
12
  <input type="hidden" name="action" value="create">
13
  <input type="hidden" name="id" value="<?php echo $id; ?>">
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
 
4
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Create Form', FRM_PLUGIN_NAME) ?></h2>
5
 
7
 
8
  <?php require(FRM_VIEWS_PATH.'/shared/nav.php'); ?>
9
 
10
+ <div class="frm_form_builder alignleft<?php echo ($values['custom_style']) ? ' with_frm_style' : ''; ?>" id="poststuff">
11
  <form name="form1" method="post" action="">
12
  <input type="hidden" name="action" value="create">
13
  <input type="hidden" name="id" value="<?php echo $id; ?>">
classes/views/frm-settings/form.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <div id="icon-options-general" class="icon32"><br></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Settings', FRM_PLUGIN_NAME); ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
@@ -9,30 +9,78 @@
9
  <form name="frm_settings_form" method="post" action="">
10
  <input type="hidden" name="action" value="process-form">
11
  <?php wp_nonce_field('update-options'); ?>
12
-
 
 
13
  <table class="form-table">
14
  <tr class="form-field">
15
  <td valign="top" width="200px"><?php _e('Preview Page', FRM_PLUGIN_NAME); ?>: </td>
16
  <td>
17
- <?php FrmAppHelper::wp_pages_dropdown( $frm_settings->preview_page_id_str, $frm_settings->preview_page_id )?>
18
  </td>
19
  </tr>
20
 
21
  <tr class="form-field">
22
- <td><?php _e('Styling', FRM_PLUGIN_NAME); ?>: </td>
23
  <td>
24
- <input type="checkbox" value="1" id="frm_custom_style" name="frm_custom_style" <?php checked($frm_settings->custom_style, 1) ?>>
25
- <?php _e('Use Formidable styling settings for my forms', FRM_PLUGIN_NAME); ?>
26
- <p class="description"><?php _e('You can override this setting on individual forms.', FRM_PLUGIN_NAME); ?></p>
 
 
 
27
  </td>
28
- </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  <?php do_action('frm_settings_form', $frm_settings); ?>
31
 
32
  </table>
33
-
 
34
  <p class="submit">
35
- <input type="submit" name="Submit" value="<?php _e('Update Options', FRM_PLUGIN_NAME) ?>" />
36
  </p>
37
 
38
  </form>
1
  <div class="wrap">
2
+ <div id="icon-options-general" class="icon32"><br/></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Settings', FRM_PLUGIN_NAME); ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
9
  <form name="frm_settings_form" method="post" action="">
10
  <input type="hidden" name="action" value="process-form">
11
  <?php wp_nonce_field('update-options'); ?>
12
+ <p class="submit" style="padding-bottom:0;">
13
+ <input class="button-primary" type="submit" name="Submit" value="<?php _e('Update Options', FRM_PLUGIN_NAME) ?>" />
14
+ </p>
15
  <table class="form-table">
16
  <tr class="form-field">
17
  <td valign="top" width="200px"><?php _e('Preview Page', FRM_PLUGIN_NAME); ?>: </td>
18
  <td>
19
+ <?php FrmAppHelper::wp_pages_dropdown( $frm_settings->preview_page_id_str, $frm_settings->preview_page_id ) ?>
20
  </td>
21
  </tr>
22
 
23
  <tr class="form-field">
24
+ <td valign="top"><?php _e('Stylesheet', FRM_PLUGIN_NAME); ?>: </td>
25
  <td>
26
+ <p><input type="checkbox" value="1" id="frm_custom_style" name="frm_custom_style" <?php checked($frm_settings->custom_style, 1) ?>>
27
+ <?php _e('Use Formidable styling settings for my forms', FRM_PLUGIN_NAME); ?> <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('You can override this setting on individual forms.', FRM_PLUGIN_NAME) ?>" />
28
+ </p>
29
+
30
+ <p><input type="checkbox" value="1" id="frm_custom_stylesheet" name="frm_custom_stylesheet" <?php checked($frm_settings->custom_stylesheet, 1) ?>>
31
+ <?php _e('Exclude the Formidable stylesheet from ALL forms', FRM_PLUGIN_NAME); ?> <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help" title="<?php _e('You cannot override this setting on individual forms, so only check this box if you will not be using the stylesheet on any forms.', FRM_PLUGIN_NAME) ?>" /></p>
32
  </td>
33
+ </tr>
34
+
35
+ <tr class="form-field">
36
+ <td valign="top"><?php _e('User Permissions', FRM_PLUGIN_NAME); ?>: <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help" title="<?php _e('Select users that are allowed access to Formidable. Without access to View Forms, users will be unable to see the Formidable menu.', FRM_PLUGIN_NAME) ?>" /></td>
37
+ <td>
38
+ <?php foreach($frm_roles as $frm_role => $frm_role_description){ ?>
39
+ <label style="width:200px;float:left;text-align:right;padding-right:10px;"><?php echo $frm_role_description ?>:</label> <?php FrmAppHelper::wp_roles_dropdown( $frm_role, $frm_settings->$frm_role ) ?><br/>
40
+ <?php } ?>
41
+
42
+ </td>
43
+ </tr>
44
+
45
+ <tr class="form-field">
46
+ <td valign="top"><?php _e('Default Messages', FRM_PLUGIN_NAME); ?>: <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('You can override the success message and submit button settings on individual forms.', FRM_PLUGIN_NAME) ?>" /></td>
47
+ <td>
48
+ <?php _e('Success Message', FRM_PLUGIN_NAME); ?>: <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('The default message seen after a form is submitted.', FRM_PLUGIN_NAME) ?>" /><br/>
49
+ <textarea id="frm_success_msg" name="frm_success_msg" class="frm_elastic_text"><?php echo stripslashes($frm_settings->success_msg) ?></textarea>
50
+ </td>
51
+ </tr>
52
+
53
+ <tr class="form-field">
54
+ <td></td>
55
+ <td>
56
+ <?php _e('Failed Message', FRM_PLUGIN_NAME); ?>: <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help" title="<?php _e('The message seen when a form is submitted and passes validation, but something goes wrong. You will likely never see this error.', FRM_PLUGIN_NAME) ?>" /><br/>
57
+ <textarea id="frm_failed_msg" name="frm_failed_msg" class="frm_elastic_text"><?php echo stripslashes($frm_settings->failed_msg) ?></textarea>
58
+ </td>
59
+ </tr>
60
+
61
+ <tr class="form-field">
62
+ <td></td>
63
+ <td>
64
+ <?php _e('Login Message', FRM_PLUGIN_NAME); ?>: <img src="<?php echo FRM_IMAGES_URL ?>/tooltip.png" alt="?" class="frm_help_text" title="<?php _e('The message seen when a user who is not logged-in views a form only logged-in users can submit.', FRM_PLUGIN_NAME) ?>" /><br/>
65
+ <textarea id="frm_login_msg" name="frm_login_msg" class="frm_elastic_text"><?php echo stripslashes($frm_settings->login_msg) ?></textarea>
66
+ </td>
67
+ </tr>
68
+
69
+ <tr class="form-field">
70
+ <td></td>
71
+ <td>
72
+ <?php _e('Submit Button', FRM_PLUGIN_NAME); ?>:<br/>
73
+ <input type="text" value="<?php echo $frm_settings->submit_value ?>" id="frm_submit_value" name="frm_submit_value">
74
+ </td>
75
+ </tr>
76
 
77
  <?php do_action('frm_settings_form', $frm_settings); ?>
78
 
79
  </table>
80
+
81
+ <p class="alignright frm_uninstall"><a href="<?php echo $frm_ajax_url ?>?action=frm_uninstall" onClick="confirm('<?php _e('Are you sure you want to do this? Clicking OK will delete all forms, form data, and all other Formidable data. There is no Undo.', 'formidable') ?>')"><?php _e('Uninstall Formidable', 'formidable') ?></a></p>
82
  <p class="submit">
83
+ <input class="button-primary" type="submit" name="Submit" value="<?php _e('Update Options', FRM_PLUGIN_NAME) ?>" />
84
  </p>
85
 
86
  </form>
classes/views/frm-statistics/list.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <div class="frmicon"><br></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Statistics', FRM_PLUGIN_NAME) ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
1
  <div class="wrap">
2
+ <div class="frmicon icon32"><br/></div>
3
  <h2><?php echo FRM_PLUGIN_TITLE ?>: <?php _e('Pro Statistics', FRM_PLUGIN_NAME) ?></h2>
4
 
5
  <?php require(FRM_VIEWS_PATH.'/shared/errors.php'); ?>
classes/views/shared/item-table-nav.php CHANGED
@@ -1,15 +1,15 @@
1
  <div class="tablenav">
 
 
 
2
  <?php
3
  // Only show the pager bar if there is more than 1 page
4
  if($page_count > 1){ ?>
5
- <?php do_action('frm-item-list-actions', $footer); ?>
6
  <div class='tablenav-pages'><span class="displaying-num"><?php printf(__('Displaying %1$s&#8211;%2$s of %3$s', FRM_PLUGIN_NAME), $page_first_record, $page_last_record, $record_count); ?></span>
7
 
8
  <?php $page_param = 'paged'; require('pagination.php'); ?>
9
  </div>
10
- <?php }
11
-
12
- do_action('frm_before_table', $footer, $params['form']); ?>
13
 
14
  </div>
15
  <div style="clear:both;"></div>
1
  <div class="tablenav">
2
+ <div class="alignleft actions">
3
+ <?php do_action('frm_before_table', $footer, $params['form']); ?>
4
+ </div>
5
  <?php
6
  // Only show the pager bar if there is more than 1 page
7
  if($page_count > 1){ ?>
 
8
  <div class='tablenav-pages'><span class="displaying-num"><?php printf(__('Displaying %1$s&#8211;%2$s of %3$s', FRM_PLUGIN_NAME), $page_first_record, $page_last_record, $record_count); ?></span>
9
 
10
  <?php $page_param = 'paged'; require('pagination.php'); ?>
11
  </div>
12
+ <?php } ?>
 
 
13
 
14
  </div>
15
  <div style="clear:both;"></div>
classes/views/shared/nav.php CHANGED
@@ -1,9 +1,19 @@
1
  <div id="button_bar">
2
  <ul class="subsubsub">
3
- <li><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>"><?php _e('Forms', FRM_PLUGIN_NAME) ?></a> | </li>
4
- <li><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-new"><?php _e('Create a Form', FRM_PLUGIN_NAME) ?></a> | </li>
5
- <li><a href="?page=<?php echo FRM_PLUGIN_NAME; ?>-templates"><?php _e('Templates', FRM_PLUGIN_NAME) ?></a></li>
 
 
 
 
 
 
6
  <?php do_action('frm_nav_items'); ?>
7
  </ul>
8
  </div>
9
- <div style="clear:both;"></div>
 
 
 
 
1
  <div id="button_bar">
2
  <ul class="subsubsub">
3
+ <?php $current_page = (isset($_GET['page'])) ? $_GET['page'] : 'None'; ?>
4
+ <?php $nav_items = apply_filters('frm_nav_array', array());
5
+ $nav_count = count($nav_items);
6
+ $i = 1;
7
+ ?>
8
+ <?php foreach ($nav_items as $nav_link => $nav_label){ ?>
9
+ <li><a href="?page=<?php echo $nav_link ?>"<?php if($current_page == $nav_link) echo ' class="current"'; ?>><?php echo $nav_label ?></a> <?php if($i != $nav_count) echo '|'; ?> </li>
10
+ <?php $i++; ?>
11
+ <?php } ?>
12
  <?php do_action('frm_nav_items'); ?>
13
  </ul>
14
  </div>
15
+
16
+ <div style="clear:both;"></div>
17
+ <div id="frm_tooltip" class="frm_tooltip">&nbsp;</div>
18
+ <div id="frm_tooltip_text" class="frm_tooltip_text">&nbsp;</div>
19
+ <div id="frm_tooltip_big" class="frm_tooltip_big">&nbsp;</div>
classes/views/shared/pagination.php CHANGED
@@ -1,12 +1,18 @@
1
- <?php if($current_page > 1){ // Only show the prev page button if the current page is not the first page ?>
2
- <a class='prev page-numbers' href="<?php echo add_query_arg(array($page_param => $current_page - 1)); ?>">&laquo;</a> <?php
 
 
 
 
 
 
3
  }
4
 
5
  // First page is always displayed
6
  if($current_page==1){ ?>
7
  <span class='page-numbers current'>1</span><?php
8
  }else{ ?>
9
- <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => 1)); ?>">1</a> <?php
10
  }
11
 
12
  // If the current page is more than 2 spaces away from the first page then we put some dots in here
@@ -21,7 +27,7 @@ for($i = $low_page; $i <= $high_page; $i++){
21
  if($current_page==$i){ ?>
22
  <span class='page-numbers current'><?php print $i; ?></span> <?php
23
  }else{ ?>
24
- <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => $i)); ?>"><?php print $i; ?></a> <?php
25
  }
26
  }
27
 
@@ -34,10 +40,10 @@ if($current_page < ($page_count - 3)){ ?>
34
  if($current_page == $page_count){ ?>
35
  <span class='page-numbers current'><?php print $page_count; ?></span><?php
36
  }else{ ?>
37
- <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => $page_count)); ?>"><?php print $page_count; ?></a><?php
38
  }
39
 
40
  // Display the next page icon if there is a next page
41
  if($current_page < $page_count){ ?>
42
- <a class='next page-numbers' href="<?php echo add_query_arg(array($page_param => $current_page + 1)); ?>">&raquo;</a><?php
43
  } ?>
1
+ <?php
2
+ if(!is_numeric($current_page))
3
+ $current_page = FrmAppHelper::get_param($page_param, '1');
4
+
5
+ $page_params = (isset($page_params)) ? $page_params : '';
6
+
7
+ if($current_page > 1){ // Only show the prev page button if the current page is not the first page ?>
8
+ <a class='prev page-numbers' href="<?php echo add_query_arg(array($page_param => $current_page - 1)); echo $page_params; ?>">&laquo;</a> <?php
9
  }
10
 
11
  // First page is always displayed
12
  if($current_page==1){ ?>
13
  <span class='page-numbers current'>1</span><?php
14
  }else{ ?>
15
+ <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => 1)); echo $page_params; ?>">1</a> <?php
16
  }
17
 
18
  // If the current page is more than 2 spaces away from the first page then we put some dots in here
27
  if($current_page==$i){ ?>
28
  <span class='page-numbers current'><?php print $i; ?></span> <?php
29
  }else{ ?>
30
+ <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => $i)); echo $page_params; ?>"><?php print $i; ?></a> <?php
31
  }
32
  }
33
 
40
  if($current_page == $page_count){ ?>
41
  <span class='page-numbers current'><?php print $page_count; ?></span><?php
42
  }else{ ?>
43
+ <a class='page-numbers' href="<?php echo add_query_arg(array($page_param => $page_count)); echo $page_params; ?>"><?php print $page_count; ?></a><?php
44
  }
45
 
46
  // Display the next page icon if there is a next page
47
  if($current_page < $page_count){ ?>
48
+ <a class='next page-numbers' href="<?php echo add_query_arg(array($page_param => $current_page + 1)); echo $page_params; ?>">&raquo;</a><?php
49
  } ?>
css/frm_admin.css CHANGED
@@ -1,34 +1,35 @@
1
- .options-table {width: 67%; margin-top: 10px;}
2
- .options-table td {padding: 10px; background-color: #f4f0db;}
3
- .options-table h3 {padding: 0px; margin: 0px; padding-left: 10px;}
4
-
5
- .pane {background-color: #f4f0db; padding-left: 10px;}
6
- ul.pane li {padding: 0px; margin: 0px;}
7
-
8
- .edit_item {height: 50px;}
9
-
10
- .item_name {font-size: 12px; font-weight: bold;}
11
- .item_actions {padding-top: 5px; display:none;}
12
- .form_item_actions{display:none;}
13
-
14
- .frmcenter{text-align:center;}
15
- .frmicon {
16
- float: left;
17
- height: 36px;
18
- margin: 14px 6px 0 0;
19
- width: 36px;
20
- background: url(../images/icon_32.png) no-repeat top center;
 
21
  }
 
 
22
 
23
- .frm_form_builder{width:60%;}
24
  .frm_form_builder a:hover{text-decoration:underline;}
25
 
26
- #frm_form_options{width:250px;}
27
- #frm_form_options .nodrag .ui-widget-header{margin-bottom:20px;}
28
- #frm_form_options .nodrag .ui-widget-header a{cursor:pointer;}
29
- #frm_form_options .ui-widget-header, #frm_form_options .button{text-align:center;}
30
- #frm_form_options .button a{display:block;}
31
- #frm_form_options .ui-widget-header a, #frm_form_options .button a{font-weight:normal; text-decoration:none;}
32
 
33
  #poststuff h2.frm_ipe_form_name{
34
  border:1px solid #dfdfdf; background-color:#fff; display:block; padding:0 5px; margin-top:0;
@@ -43,9 +44,11 @@ ul.pane li {padding: 0px; margin: 0px;}
43
  .form-field input{width:auto;}
44
  textarea.inplace_field{width:100%;}
45
  .inplace_field{width:80%;}
46
- .frm_rte{background:url(../images/rte.gif) no-repeat; border-bottom:1px solid #dfdfdf;}
47
  .frm_rte .howto{margin:10px 0 45px 0;}
48
- .frm_rte textarea{width:650px; border:none; background:#fff; margin:1px; }
 
 
49
  .with_frm_style .frm_full_rte textarea{width:100%; padding:0;}
50
  .frm_field_box{padding:5px;}
51
 
@@ -59,92 +62,100 @@ textarea.inplace_field{width:100%;}
59
  li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-show-hover{display:inline;}
60
  #new_fields span.ui-icon{width:16px;}
61
 
62
- .frm_inactive_icon, .frm_required0{
63
- opacity:.2;
64
- filter:alpha(opacity=20);
 
65
  }
66
  .frm-move{cursor:move;}
67
  .howto{font-weight:normal;}
 
 
 
 
 
 
 
68
 
69
  .frm_10radio{margin-right:10px; text-align:center; float:left;}
70
 
71
  #frm_form_editor_container .ui-widget-content{display:none; padding:15px;}
72
  #frm_form_editor_container .ui-widget-content label{float:left; width:170px; text-align:right; padding-right:5px; clear:both;}
73
  #frm_form_editor_container .ui-widget-content label.nofloat{clear:none; float:none; margin-left:10px;}
 
 
74
 
75
-
76
- #frm_form_editor_container .ui-accordion-header{cursor:pointer;}
77
- #new_fields .ui-accordion-header{cursor:pointer; display:none;}
78
- #frm_form_editor_container .ui-accordion-header .ui-icon{float:left;}
79
- #frm_form_editor_container .ui-accordion-header a{padding:0 0.2em; font-weight:normal; display:inline; font-size:1em;}
80
- #frm_form_editor_container .ui-accordion-header a:hover{text-decoration:none;}
81
- #frm_form_editor_container .ui-accordion-header.ui-state-default{}
82
- #frm_form_editor_container .ui-accordion-header.ui-state-active{display:block; border-bottom:none;}
83
- #new_fields li.ui-state-default.selected .ui-accordion-header{display:block;}
84
  #new_fields{min-height:200px;}
85
- #frm_form_options .ui-state-default,
86
- #new_fields li.ui-state-default{
87
- border:none;
88
- font-weight:normal;
89
- background-color:transparent; background-image:none;
90
- padding:6px; margin:20px 0;
91
- }
92
- #new_fields li.ui-state-default.edit_field_type_break{border-top:1px dashed; padding-top:5px;}
93
- #new_fields .edit_field_type_divider .frm_ipe_field_label,
94
- #new_fields .edit_field_type_break .frm_ipe_field_label{
95
- font-size:116%;
96
  }
 
 
 
 
97
  #frm_form_options .ui-state-default{color:#000;}
98
  #new_fields li.ui-state-default:hover, #new_fields li.ui-state-default.selected{
99
- border:1px solid #fbcb09; padding:5px; background:#ffe;
100
  }
101
- #new_fields li.ui-state-default.selected{background:#fdf5ce;}
102
 
 
103
 
 
 
 
104
 
105
- /*hide elements if js is avail*/
106
- .js .theme-group-content, .js #submitBtn, .js select.texture, .js #themeGallery, .js #help {
107
- display: none;
 
108
  }
109
 
110
- #themeRoller {
 
 
 
 
 
 
 
 
111
  font-family: Verdana, Arial, sans-serif;
112
  font-size:100%;
113
- background: #000;
114
- width: 214px;
115
- padding: 0 4px 4px 4px;
116
  color: #fff;
117
- border: 1px solid #222;
118
  position: relative;
119
  }
120
- #frm_form_options #themeRoller{
121
- background:transparent;
122
- width:240px;
123
  position:fixed;
124
  z-index:5;
 
125
  }
126
 
127
- .form-table td #themeRoller{
 
 
128
  line-height:12px;
129
  }
130
 
131
- #themeRoller a:focus, div.content * {
132
  outline: 0 !important;
133
  }
134
 
135
  /*corner radius in TR app elements*/
136
- #themeRoller, #themeRoller .corner-all, #themeRoller input, #themeRoller select, #themeGallery a.download, #themeGallery a.edit, .texturePicker, .farbtastic, #getBookmarklet {-moz-border-radius: 4px !important; -webkit-border-radius: 4px !important; border-radius: 4px !important; }
137
- #themeRoller .corner-bottom {-moz-border-radius-bottomleft: 4px !important; -webkit-border-bottom-left-radius: 4px !important; border-bottom-left-radius: 4px !important; -moz-border-radius-bottomright: 4px !important; -webkit-border-bottom-right-radius: 4px !important; border-bottom-right-radius: 4px !important; }
138
- #themeRoller .corner-top {-moz-border-radius-topleft: 4px !important; -webkit-border-top-left-radius: 4px !important; border-top-left-radius: 4px !important; -moz-border-radius-topright: 4px !important; -webkit-border-top-right-radius: 4px !important; border-top-right-radius: 4px !important; }
139
 
140
- #themeRoller fieldset {
141
  border: 0;
142
  padding: 0;
143
  margin: 0;
144
  clear: both;
145
  display: block;
146
  }
147
- #themeRoller .icon{ width: 16px; height: 16px; display: block; text-indent: -999999px; overflow: hidden; }
148
 
149
 
150
  /*TR Tabs structure*/
@@ -152,38 +163,38 @@ li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-
152
 
153
 
154
  /*THEME GROUP SPINDOWNS*/
155
- #themeRoller .theme-group {
156
  margin: 1px 0;
157
- width: 210px;
158
- }
159
- #frm_form_options #themeRoller .theme-group{
160
- width:100%;
161
  }
162
- #themeRoller .theme-group-header {
 
163
  cursor: pointer;
164
  padding: .4em 0;
165
-
166
  }
167
  /*header states*/
168
- #frm_form_options #themeRoller .theme-group .theme-group-content{background:transparent; color:#666;}
169
- #themeRoller .theme-group .theme-group-header.state-default { border: 1px solid #222/*borderColorDefault*/; font-weight: normal; color: #aaaaaa/*fcDefault*/ !important; background: #111 url(http://static.jquery.com/ui/themeroller/images/app/bg_tr_group_headers.png) 0 50% repeat-x;}
170
- #themeRoller .theme-group .theme-group-header.state-default a { color: #aaaaaa/*fcDefault*/; text-decoration: none; }
171
- #themeRoller .theme-group .theme-group-header.state-active { border: 1px solid #444/*borderColorActive*/; border-bottom: 0 !important; background: #333 url(http://static.jquery.com/ui/themeroller/images/app/bg_tr_group_headers_active.png) 0 50% repeat-x; font-weight: normal/*fwDefault*/; color: #ffffff/*fcActive*/ !important; outline: none; }
172
- #themeRoller .theme-group .theme-group-header.state-active a { color: #ffffff/*fcActive*/; outline: none; text-decoration: none; }
173
- #themeRoller .theme-group .theme-group-content { border: 1px solid #444/*borderColorContent*/; background: #333 url(http://static.jquery.com/ui/themeroller/images/app/bg_tr_group_headers_content.png) 0 0 repeat-x/*bgContentRepeat*/; color: #ffffff/*fcContent*/; }
174
- #themeRoller .theme-group .theme-group-header.state-hover { border: 1px solid #444/*borderColorHover*/; background: #1a1a1a url(http://static.jquery.com/ui/themeroller/images/app/bg_tr_group_headers_hover.png) 0 50% repeat-x; font-weight: normal/*fwDefault*/; color: #cccccc/*fcHover*/ !important; }
175
- #themeRoller .theme-group .theme-group-header.state-hover a { color: #cccccc/*fcHover*/; text-decoration: none; }
176
- #themeRoller .theme-group .theme-group-header span.icon {
 
 
 
 
177
  float: left;
178
  margin: -2px 3px 0 0;
179
  background-image: url(http://static.jquery.com/ui/themeroller/images/app/tr_icons_white.png);
180
  }
181
- #themeRoller .state-active span.icon {
182
  margin: -1px 2px 0 1px !important;
183
  }
184
- #themeRoller .theme-group .theme-group-header span.icon-triangle-1-e { background-position: -32px -16px; }
185
- #themeRoller .theme-group .theme-group-header span.icon-triangle-1-s { background-position: -64px -16px; }
186
- #themeRoller .theme-group .theme-group-header div.state-preview {
187
  float: right;
188
  padding: 1px 2px 2px;
189
  font-size: 9px !important;
@@ -194,48 +205,48 @@ li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-
194
 
195
 
196
  /*THEME GROUP CONTENT*/
197
- #themeRoller .theme-group-content {
198
  padding: 10px 5px 10px 13px;
199
  border-top: 0 !important;
200
  }
201
- #themeRoller .theme-group-collapsed .theme-group-content {
202
  display: none;
203
  }
204
- #themeRoller .theme-group h3 {
205
  font-size: .8em;
206
  font-weight: bold;
207
  text-transform: uppercase;
208
  }
209
 
210
  /*form field groups*/
211
- #themeRoller .field-group {
212
  float: left;
213
  width: 53px;
214
  margin: 10px 4px 0 0;
215
  }
216
  #global-font .field-group,
217
  #global-corners .field-group,
218
- #themeRoller .field-group-background,
219
- #themeRoller .field-group-opacity,
220
  #Shadow .field-group {
221
  margin: 4px 0 0;
222
  clear: both;
223
  float: none;
224
  width: auto;
225
  }
226
- #themeRoller .field-group-border, #themeRoller .field-group-opacity, #themeRoller .field-group-corners {
227
  clear: left;
228
  }
229
 
230
  /*form labels*/
231
- #themeRoller .field-group label {
232
  font-size: 1em;
233
  margin: 6px 0 5px;
234
  display: block;
235
  }
236
  #global-font .field-group label,
237
  #global-corners .field-group label,
238
- #themeRoller .field-group-opacity label{
239
  float: left;
240
  width: 60px;
241
  margin: 0 4px 0 0;
@@ -245,7 +256,7 @@ li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-
245
  width: 45px;
246
  }
247
 
248
- #themeRoller .field-group-opacity label {
249
  width: auto;
250
  text-align: left;
251
  }
@@ -258,30 +269,24 @@ li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-
258
 
259
 
260
  /*form inputs/selects */
261
- #themeRoller input, #themeRoller select {
262
- border: 1px solid #666;
263
- background: #333;
264
- color: #fff;
265
- font-size: 1em;
266
  padding: 2px;
267
  }
268
- #themeRoller select {
269
  padding: 1px;
270
  }
271
  input.opacity, input.offset {
272
  width: 20px;
273
  float: left;
274
  }
275
- span.opacity-per {
276
- float: left;
277
- padding: 0 .2em;
278
- }
279
- #themeRoller input.hex {
280
  width: 45px;
281
  outline: 0;
282
  }
283
  .form-field .frm_full_width {
284
- width: 120px;
285
  }
286
 
287
  input.cornerRadius {
@@ -290,15 +295,14 @@ input.cornerRadius {
290
 
291
 
292
  /*Custom form elements */
293
- #themeRoller div.hasPicker {
294
  position: static;
295
  width: 48px;
296
  padding: 1px;
297
  margin: -2px 0 0 -2px;
298
- border: 1px solid #333;
299
  float: left;
300
  }
301
- #themeRoller div.picker-on {
302
  background: #666;
303
  border-color: #aaa;
304
  border-bottom: #666;
@@ -358,12 +362,9 @@ input.cornerRadius {
358
  }
359
 
360
 
361
-
362
-
363
  /*rounded corner warnings*/
364
  a.cornerWarning { color: red !important; text-decoration: none; }
365
- #cornerWarning {font-size: .9em; margin: 5px 0;}
366
-
367
 
368
 
369
  /*Farbtastic styles*/
@@ -405,57 +406,6 @@ a.cornerWarning { color: red !important; text-decoration: none; }
405
  background: url(http://static.jquery.com/ui/themeroller/images/app/marker.png) no-repeat;
406
  }
407
 
408
- /*COMPONENTS COLUMN*/
409
- #components {
410
- background: #fff;
411
- padding: 15px;
412
- float: right;
413
- width: 680px;
414
- }
415
-
416
- #versionNotice {
417
- margin: 20px 0;
418
- border: 1px solid #333;
419
- padding: 20px;
420
- font-size: 1.2em;
421
- background: #eee;
422
- }
423
- #compGroupA {
424
- float: left;
425
- width: 58%;
426
- }
427
-
428
- #compGroupB {
429
- float: right;
430
- width: 38%;
431
- }
432
- .demoHeaders {
433
- font-size: 1.3em;
434
- font-weight: normal;
435
- margin: 2em 0 1em;
436
- clear: both;
437
- }
438
- .demoHeaders span {
439
- font-size: .8em;
440
- }
441
-
442
-
443
- #components #dialog_link {
444
- padding: .4em 1em .4em 20px;
445
- text-decoration: none;
446
- position: relative;
447
- }
448
- #components #dialog_link span.ui-icon {
449
- margin: 0 5px 0 0;
450
- position: absolute;
451
- left: .2em;
452
- top: 50%;
453
- margin-top: -8px;
454
- zoom: 1;
455
- }
456
-
457
-
458
-
459
 
460
  ul#icons {margin: 0; padding: 0;}
461
  ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;}
1
+ .frm_tooltip, .frm_tooltip_big, .frm_tooltip_text {
2
+ display:none;background:transparent url(../images/black_arrow.png);
3
+ font-size:12px;height:90px;width:180px;padding:15px;color:#fff;z-index:100;
4
+ }
5
+ .frm_help, .frm_help_big, .frm_help_text{width:13px;}
6
+ .frm_tooltip{font-size:10px;}
7
+ .frm_tooltip_big {
8
+ background:transparent url(../images/black_arrow_big.png);
9
+ height:155px; width:310px; padding:30px;
10
+ }
11
+
12
+ #editorcontainer #dyncontent{
13
+ margin:0; width:100%;
14
+ padding: 6px;
15
+ line-height: 150%;
16
+ border: 0 none;
17
+ outline: none;
18
+ -moz-box-sizing: border-box;
19
+ -webkit-box-sizing: border-box;
20
+ -khtml-box-sizing: border-box;
21
+ box-sizing: border-box;
22
  }
23
+ .frmcenter{text-align:center;}
24
+ #wpbody-content .frmicon.icon32{background: url(../images/icon_32.png) no-repeat top center !important;}
25
 
26
+ .frm_form_builder{width:60%;min-width:600px;}
27
  .frm_form_builder a:hover{text-decoration:underline;}
28
 
29
+ #frm_form_options{width:270px;}
30
+ #frm_form_options .nodrag a{cursor:pointer;}
31
+ #frm_form_options .button{text-align:center;width:100px;float:left;}
32
+ #frm_form_options .button a{font-weight:normal;text-decoration:none;}
 
 
33
 
34
  #poststuff h2.frm_ipe_form_name{
35
  border:1px solid #dfdfdf; background-color:#fff; display:block; padding:0 5px; margin-top:0;
44
  .form-field input{width:auto;}
45
  textarea.inplace_field{width:100%;}
46
  .inplace_field{width:80%;}
47
+ .frm_rte{background:url(../images/rte.gif) no-repeat; }
48
  .frm_rte .howto{margin:10px 0 45px 0;}
49
+ .frm_rte textarea{width:653px;background:#fff; margin:1px 0; border:1px solid #dfdfdf; border-top:none;
50
+ -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;
51
+ }
52
  .with_frm_style .frm_full_rte textarea{width:100%; padding:0;}
53
  .frm_field_box{padding:5px;}
54
 
62
  li.ui-state-default.selected .frm-show-click, li.ui-state-default.selected .frm-show-hover{display:inline;}
63
  #new_fields span.ui-icon{width:16px;}
64
 
65
+ .frm_key_icons img, .frm_required0, .frm_required1{width:16px;}
66
+ .frm_inactive_icon, .frm_required0{opacity:.2; filter:alpha(opacity=20);}
67
+ .frm_inactive_icon, .frm_inactive_icon img, .frm_required0{
68
+ opacity:.2; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; filter: alpha(opacity=20);
69
  }
70
  .frm-move{cursor:move;}
71
  .howto{font-weight:normal;}
72
+ #frm_form_editor_container .themeRoller span.howto{display:inline;}
73
+
74
+ .with_frm_style .form-field .themeRoller input[type="text"],
75
+ .with_frm_style .form-field .themeRoller select,
76
+ .with_frm_style .form-field .themeRoller textarea{
77
+ width:auto;
78
+ }
79
 
80
  .frm_10radio{margin-right:10px; text-align:center; float:left;}
81
 
82
  #frm_form_editor_container .ui-widget-content{display:none; padding:15px;}
83
  #frm_form_editor_container .ui-widget-content label{float:left; width:170px; text-align:right; padding-right:5px; clear:both;}
84
  #frm_form_editor_container .ui-widget-content label.nofloat{clear:none; float:none; margin-left:10px;}
85
+ #frm_form_editor_container .ui-state-default{color:#333;}
86
+ #frm_form_editor_container .ui-state-default a.frm_orange, #frm_form_options a.frm_orange{color:#D54E21;}
87
 
88
+ #new_fields li.ui-state-default.selected .themeRoller{display:block;}
 
 
 
 
 
 
 
 
89
  #new_fields{min-height:200px;}
90
+ #frm_form_options .ui-state-default, #new_fields li.ui-state-default{
91
+ border:none;font-weight:normal;background-color:transparent; background-image:none;padding:6px; margin:20px 0;
 
 
 
 
 
 
 
 
 
92
  }
93
+ #frm_form_options .ui-state-default{padding:0;margin:0;}
94
+ #new_fields li.ui-state-default.edit_field_type_break{border-top:1px dashed #ccc; padding-top:5px;}
95
+ #new_fields .edit_field_type_divider .frm_ipe_field_label,
96
+ #new_fields .edit_field_type_break .frm_ipe_field_label{font-size:116%;}
97
  #frm_form_options .ui-state-default{color:#000;}
98
  #new_fields li.ui-state-default:hover, #new_fields li.ui-state-default.selected{
99
+ border:1px solid #BBD8E7; padding:5px; background:#EAF3FA;
100
  }
101
+ #new_fields li.ui-state-default.selected{background:#cfddec; border:1px dotted #9ebad8;}
102
 
103
+ .success_action_box{display:none;}
104
 
105
+ .frm_shortcode_select optgroup option{margin-left:1em;}
106
+ .frm_shortcode_select optgroup{padding-top:5px;}
107
+ .frm_shortcode_select .frm_subopt{margin-left:2em;}
108
 
109
+ .frm-table{
110
+ border-collapse:collapse;
111
+ border:1px solid black;
112
+ margin-right:10px;
113
  }
114
 
115
+ .frm-table td, .frm-table th{padding:5px; border:1px solid black;}
116
+
117
+ .frm_uninstall{padding:1.5em;}
118
+ .frm_uninstall a{border:1px solid red; background:#D54E21; padding:.5em; text-decoration:none;color:#fff;font-weight:bold;}
119
+ .frm_uninstall a:hover{background:#264761;color:#fff;}
120
+ /*hide elements if js is avail*/
121
+ .js .theme-group-content, .js #submitBtn, .js select.texture, .js #themeGallery, .js #help{display: none;}
122
+
123
+ .themeRoller{
124
  font-family: Verdana, Arial, sans-serif;
125
  font-size:100%;
 
 
 
126
  color: #fff;
 
127
  position: relative;
128
  }
129
+ #frm_form_options .themeRoller{
130
+ margin-right:10px;
 
131
  position:fixed;
132
  z-index:5;
133
+ width:270px;
134
  }
135
 
136
+ #new_fields .form-field .themeRoller{ display:none;}
137
+
138
+ .form-table td .themeRoller{
139
  line-height:12px;
140
  }
141
 
142
+ .themeRoller a:focus, div.content * {
143
  outline: 0 !important;
144
  }
145
 
146
  /*corner radius in TR app elements*/
147
+ .themeRoller, .themeRoller .corner-all, .themeRoller input, .themeRoller select, #themeGallery a.download, #themeGallery a.edit, .texturePicker, .farbtastic, #getBookmarklet {-moz-border-radius: 4px !important; -webkit-border-radius: 4px !important; border-radius: 4px !important; }
148
+ .themeRoller .corner-bottom {-moz-border-radius-bottomleft: 4px !important; -webkit-border-bottom-left-radius: 4px !important; border-bottom-left-radius: 4px !important; -moz-border-radius-bottomright: 4px !important; -webkit-border-bottom-right-radius: 4px !important; border-bottom-right-radius: 4px !important; }
149
+ .themeRoller .corner-top {-moz-border-radius-topleft: 4px !important; -webkit-border-top-left-radius: 4px !important; border-top-left-radius: 4px !important; -moz-border-radius-topright: 4px !important; -webkit-border-top-right-radius: 4px !important; border-top-right-radius: 4px !important; }
150
 
151
+ .themeRoller fieldset {
152
  border: 0;
153
  padding: 0;
154
  margin: 0;
155
  clear: both;
156
  display: block;
157
  }
158
+ .themeRoller .icon{ width: 16px; height: 16px; display: block; text-indent: -999999px; overflow: hidden; }
159
 
160
 
161
  /*TR Tabs structure*/
163
 
164
 
165
  /*THEME GROUP SPINDOWNS*/
166
+ .themeRoller .theme-group {
167
  margin: 1px 0;
 
 
 
 
168
  }
169
+ #frm_form_options .themeRoller .theme-group, #frm_form_editor_container .themeRoller .theme-group{width:auto;}
170
+ .themeRoller .theme-group-header {
171
  cursor: pointer;
172
  padding: .4em 0;
 
173
  }
174
  /*header states*/
175
+ .themeRoller .theme-group .theme-group-header.state-default {
176
+ background:#3C6B95 url("../../../../wp-admin/images/menu-bits-vs.gif") repeat-x scroll left top;
177
+ border:1px solid #1D507D;
178
+ color:#FFFFFF;
179
+ text-shadow:0 -1px 0 rgba(0, 0, 0, 0.4);
180
+ }
181
+ .themeRoller .theme-group .theme-group-header.state-default a { color: #fff; text-decoration: none; }
182
+ .themeRoller .theme-group .theme-group-header.state-active { border: 1px solid #444/*borderColorActive*/; border-bottom: 0 !important; color: #ffffff; outline: none; font-weight:normal;}
183
+ .themeRoller .theme-group .theme-group-header.state-active a { color: #ffffff/*fcActive*/; outline: none; text-decoration: none; }
184
+ .themeRoller .theme-group .theme-group-content { border: 1px solid #aaa; background:#fff; color:#333;}
185
+ .themeRoller .theme-group .theme-group-header.state-hover { border-color:#1d579f;}
186
+ .themeRoller .theme-group .theme-group-header.state-hover a{text-decoration: none;}
187
+ .themeRoller .theme-group .theme-group-header span.icon {
188
  float: left;
189
  margin: -2px 3px 0 0;
190
  background-image: url(http://static.jquery.com/ui/themeroller/images/app/tr_icons_white.png);
191
  }
192
+ .themeRoller .state-active span.icon {
193
  margin: -1px 2px 0 1px !important;
194
  }
195
+ .themeRoller .theme-group .theme-group-header span.icon-triangle-1-e { background-position: -32px -16px; }
196
+ .themeRoller .theme-group .theme-group-header span.icon-triangle-1-s { background-position: -64px -16px; }
197
+ .themeRoller .theme-group .theme-group-header div.state-preview {
198
  float: right;
199
  padding: 1px 2px 2px;
200
  font-size: 9px !important;
205
 
206
 
207
  /*THEME GROUP CONTENT*/
208
+ .themeRoller .theme-group-content {
209
  padding: 10px 5px 10px 13px;
210
  border-top: 0 !important;
211
  }
212
+ .themeRoller .theme-group-collapsed .theme-group-content {
213
  display: none;
214
  }
215
+ .themeRoller .theme-group h3 {
216
  font-size: .8em;
217
  font-weight: bold;
218
  text-transform: uppercase;
219
  }
220
 
221
  /*form field groups*/
222
+ .themeRoller .field-group {
223
  float: left;
224
  width: 53px;
225
  margin: 10px 4px 0 0;
226
  }
227
  #global-font .field-group,
228
  #global-corners .field-group,
229
+ .themeRoller .field-group-background,
230
+ .themeRoller .field-group-opacity,
231
  #Shadow .field-group {
232
  margin: 4px 0 0;
233
  clear: both;
234
  float: none;
235
  width: auto;
236
  }
237
+ .themeRoller .field-group-border, .themeRoller .field-group-opacity, .themeRoller .field-group-corners {
238
  clear: left;
239
  }
240
 
241
  /*form labels*/
242
+ .themeRoller .field-group label {
243
  font-size: 1em;
244
  margin: 6px 0 5px;
245
  display: block;
246
  }
247
  #global-font .field-group label,
248
  #global-corners .field-group label,
249
+ .themeRoller .field-group-opacity label{
250
  float: left;
251
  width: 60px;
252
  margin: 0 4px 0 0;
256
  width: 45px;
257
  }
258
 
259
+ .themeRoller .field-group-opacity label {
260
  width: auto;
261
  text-align: left;
262
  }
269
 
270
 
271
  /*form inputs/selects */
272
+ .themeRoller input, .themeRoller select, .themeRoller textarea {
273
+ font-size: 10px;
 
 
 
274
  padding: 2px;
275
  }
276
+ .themeRoller select {
277
  padding: 1px;
278
  }
279
  input.opacity, input.offset {
280
  width: 20px;
281
  float: left;
282
  }
283
+
284
+ .themeRoller input.hex {
 
 
 
285
  width: 45px;
286
  outline: 0;
287
  }
288
  .form-field .frm_full_width {
289
+ width: 165px;
290
  }
291
 
292
  input.cornerRadius {
295
 
296
 
297
  /*Custom form elements */
298
+ .themeRoller div.hasPicker {
299
  position: static;
300
  width: 48px;
301
  padding: 1px;
302
  margin: -2px 0 0 -2px;
 
303
  float: left;
304
  }
305
+ .themeRoller div.picker-on {
306
  background: #666;
307
  border-color: #aaa;
308
  border-bottom: #666;
362
  }
363
 
364
 
 
 
365
  /*rounded corner warnings*/
366
  a.cornerWarning { color: red !important; text-decoration: none; }
367
+ p.cornerWarning {font-size: .9em; margin: 5px 0;}
 
368
 
369
 
370
  /*Farbtastic styles*/
406
  background: url(http://static.jquery.com/ui/themeroller/images/app/marker.png) no-repeat;
407
  }
408
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
 
410
  ul#icons {margin: 0; padding: 0;}
411
  ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;}
formidable.php CHANGED
@@ -2,12 +2,28 @@
2
  /*
3
  Plugin Name: Formidable
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 1.02.01
6
  Plugin URI: http://blog.strategy11.com/formidable-wordpress-plugin
7
  Author URI: http://blog.strategy11.com
8
  Author: Stephanie Wells
9
  */
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  define('FRM_PLUGIN_TITLE','Formidable');
12
  define('FRM_PLUGIN_NAME','formidable');
13
  define('FRM_PATH',WP_PLUGIN_DIR.'/'.FRM_PLUGIN_NAME);
@@ -28,11 +44,20 @@ if (!defined ('IS_WPMU')){
28
  define('IS_WPMU', ($wpmu_version) ? 1 : 0);
29
  }
30
 
 
 
 
31
  global $frm_blogurl;
32
  global $frm_siteurl;
 
33
 
34
  $frm_blogurl = ((get_option('home'))?get_option('home'):get_option('siteurl'));
35
  $frm_siteurl = get_option('siteurl');
 
 
 
 
 
36
 
37
  /***** SETUP SETTINGS OBJECT *****/
38
  global $frm_settings;
@@ -42,10 +67,11 @@ $frm_settings = get_option('frm_options');
42
  // If unserializing didn't work
43
  if(!$frm_settings){
44
  $frm_settings = new FrmSettings();
45
- update_option('frm_settings',$frm_settings);
46
  }else
47
  $frm_settings->set_default_options(); // Sets defaults for unset options
48
-
 
49
  require_once(FRM_MODELS_PATH.'/FrmField.php');
50
  require_once(FRM_MODELS_PATH.'/FrmForm.php');
51
  require_once(FRM_MODELS_PATH.'/FrmEntry.php');
@@ -53,6 +79,7 @@ require_once(FRM_MODELS_PATH.'/FrmEntryMeta.php');
53
  require_once(FRM_MODELS_PATH.'/FrmNotification.php');
54
  require_once(FRM_MODELS_PATH.'/FrmUpdate.php');
55
 
 
56
  global $frm_field;
57
  global $frm_form;
58
  global $frm_entry;
@@ -60,6 +87,7 @@ global $frm_entry_meta;
60
  global $frm_notification;
61
  global $frm_update;
62
 
 
63
  $frm_field = new FrmField();
64
  $frm_form = new FrmForm();
65
  $frm_entry = new FrmEntry();
@@ -92,17 +120,14 @@ $frm_forms_controller = new FrmFormsController();
92
  $frm_settings_controller = new FrmSettingsController();
93
 
94
  // Instansiate Helpers
95
- require_once(FRM_HELPERS_PATH. "/FrmAppHelper.php");
96
  require_once(FRM_HELPERS_PATH. "/FrmEntriesHelper.php");
97
  require_once(FRM_HELPERS_PATH. "/FrmFieldsHelper.php");
98
  require_once(FRM_HELPERS_PATH. "/FrmFormsHelper.php");
99
  require_once(FRM_HELPERS_PATH. "/FrmSettingsHelper.php");
100
 
101
- global $frm_app_helper;
102
  global $frm_fields_helper;
103
  global $frm_settings_helper;
104
 
105
- $frm_app_helper = new FrmAppHelper();
106
  $frm_fields_helper = new FrmFieldsHelper();
107
  $frm_settings_helper = new FrmSettingsHelper();
108
 
2
  /*
3
  Plugin Name: Formidable
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 1.03.03
6
  Plugin URI: http://blog.strategy11.com/formidable-wordpress-plugin
7
  Author URI: http://blog.strategy11.com
8
  Author: Stephanie Wells
9
  */
10
 
11
+ /* Copyright 2010 Stephanie Wells (email : steph@strategy11.com)
12
+
13
+ This program is free software; you can redistribute it and/or modify
14
+ it under the terms of the GNU General Public License, version 2, as
15
+ published by the Free Software Foundation.
16
+
17
+ This program is distributed in the hope that it will be useful,
18
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ GNU General Public License for more details.
21
+
22
+ You should have received a copy of the GNU General Public License
23
+ along with this program; if not, write to the Free Software
24
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25
+ */
26
+
27
  define('FRM_PLUGIN_TITLE','Formidable');
28
  define('FRM_PLUGIN_NAME','formidable');
29
  define('FRM_PATH',WP_PLUGIN_DIR.'/'.FRM_PLUGIN_NAME);
44
  define('IS_WPMU', ($wpmu_version) ? 1 : 0);
45
  }
46
 
47
+ global $frm_version;
48
+ $frm_version = '1.03.03';
49
+
50
  global $frm_blogurl;
51
  global $frm_siteurl;
52
+ global $frm_ajax_url;
53
 
54
  $frm_blogurl = ((get_option('home'))?get_option('home'):get_option('siteurl'));
55
  $frm_siteurl = get_option('siteurl');
56
+ $frm_ajax_url = $frm_siteurl .'/wp-admin/admin-ajax.php';
57
+
58
+ require_once(FRM_HELPERS_PATH. "/FrmAppHelper.php");
59
+ global $frm_app_helper;
60
+ $frm_app_helper = new FrmAppHelper();
61
 
62
  /***** SETUP SETTINGS OBJECT *****/
63
  global $frm_settings;
67
  // If unserializing didn't work
68
  if(!$frm_settings){
69
  $frm_settings = new FrmSettings();
70
+ update_option('frm_options',$frm_settings);
71
  }else
72
  $frm_settings->set_default_options(); // Sets defaults for unset options
73
+
74
+ require_once(FRM_MODELS_PATH.'/FrmDb.php');
75
  require_once(FRM_MODELS_PATH.'/FrmField.php');
76
  require_once(FRM_MODELS_PATH.'/FrmForm.php');
77
  require_once(FRM_MODELS_PATH.'/FrmEntry.php');
79
  require_once(FRM_MODELS_PATH.'/FrmNotification.php');
80
  require_once(FRM_MODELS_PATH.'/FrmUpdate.php');
81
 
82
+ global $frmdb;
83
  global $frm_field;
84
  global $frm_form;
85
  global $frm_entry;
87
  global $frm_notification;
88
  global $frm_update;
89
 
90
+ $frmdb = new FrmDb();
91
  $frm_field = new FrmField();
92
  $frm_form = new FrmForm();
93
  $frm_entry = new FrmEntry();
120
  $frm_settings_controller = new FrmSettingsController();
121
 
122
  // Instansiate Helpers
 
123
  require_once(FRM_HELPERS_PATH. "/FrmEntriesHelper.php");
124
  require_once(FRM_HELPERS_PATH. "/FrmFieldsHelper.php");
125
  require_once(FRM_HELPERS_PATH. "/FrmFormsHelper.php");
126
  require_once(FRM_HELPERS_PATH. "/FrmSettingsHelper.php");
127
 
 
128
  global $frm_fields_helper;
129
  global $frm_settings_helper;
130
 
 
131
  $frm_fields_helper = new FrmFieldsHelper();
132
  $frm_settings_helper = new FrmSettingsHelper();
133
 
images/add.png ADDED
Binary file
images/black_arrow.png ADDED
Binary file
images/black_arrow_big.png ADDED
Binary file
images/readonly.png ADDED
Binary file
images/required.png ADDED
Binary file
images/tooltip.png ADDED
Binary file
js/formidable.js CHANGED
@@ -1,38 +1,45 @@
1
  jQuery(document).ready(function($){
 
 
2
  window.onscroll = document.documentElement.onscroll = frmSetMenuOffset;
3
  frmSetMenuOffset();
4
-
5
- jQuery('.edit_form_item').hover(
6
- function(){jQuery(this).children(".form_item_actions").show();},
7
- function(){jQuery(this).children(".form_item_actions").hide();}
8
- );
9
 
10
- jQuery('.edit_item').hover(
11
- function(){jQuery(this).children(".item_actions").show();},
12
- function(){jQuery(this).children(".item_actions").hide();}
13
- );
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  jQuery('.select-all-item-action-checkboxes').change(function(){
16
- if (jQuery(this).attr("checked")){
17
- jQuery(".item-action-checkbox").attr("checked","checked");
18
- jQuery(".select-all-item-action-checkboxes").attr("checked","checked");
19
- }else{
20
- jQuery(".item-action-checkbox").removeAttr("checked");
21
- jQuery(".select-all-item-action-checkboxes").removeAttr("checked");
22
- }
23
  });
24
 
25
- jQuery('.item-action-checkbox').change(function(){
26
- if(!jQuery(this).attr("checked")){jQuery(".select-all-item-action-checkboxes").removeAttr("checked");}
27
- });
28
 
29
  jQuery('.item-list-form').submit(function(){
30
- if(jQuery('#bulkaction').val() == 'delete'){return confirm('Are you sure you want to delete each of the selected items below?');}
31
  });
32
 
33
  jQuery('.frm_single_option').hover(
34
- function(){jQuery(this).children(".frm_single_show_hover").show(); jQuery(this).children(".frm_spacer").hide();},
35
- function(){jQuery(this).children(".frm_single_show_hover").hide(); jQuery(this).children(".frm_spacer").show();}
36
  );
37
 
38
  jQuery('li.ui-state-default').click(function(evt){
@@ -40,10 +47,44 @@ jQuery('li.ui-state-default').click(function(evt){
40
  $('.frm-show-hover').hide(); $(this).children(".frm-show-hover").show();
41
  $('.frm-show-click').hide(); $(this).children(".frm-show-click").show();
42
  $('li.ui-state-default.selected').removeClass('selected'); $(this).addClass('selected');
43
- if(!$(target).is('.inplace_field') && !$(target).is('.frm_ipe_field_label') && !$(target).is('.frm_ipe_field_desc') && !$(target).is('.frm_ipe_field_option')){ $('.inplace_field').blur();}
44
  });
 
 
 
 
 
 
45
  });
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  function frm_field_hover(show, field_id){
48
  var html_id = '#frm_field_id_'+field_id;
49
  if(show){jQuery(html_id).children(".frm-show-hover").show();}
@@ -51,11 +92,108 @@ function frm_field_hover(show, field_id){
51
  }
52
 
53
  function frmSetMenuOffset() {
54
- var fields = jQuery('#frm_form_options #themeRoller');
55
  if (!fields) return;
56
  var currentOffset = document.documentElement.scrollTop || document.body.scrollTop; // body for Safari
57
- var desiredOffset = 340 - currentOffset;
58
  if (desiredOffset < 10) desiredOffset = 10;
59
  //if (desiredOffset != parseInt(header.style.top))
60
  fields.attr('style', 'top:'+desiredOffset + 'px;');
61
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  jQuery(document).ready(function($){
2
+ $(".frm_elastic_text").elastic();
3
+
4
  window.onscroll = document.documentElement.onscroll = frmSetMenuOffset;
5
  frmSetMenuOffset();
 
 
 
 
 
6
 
7
+ if ($("input[name='options[success_action]']:checked").val() == 'redirect')
8
+ $('.success_action_redirect_box.success_action_box').show();
9
+ else if ($("input[name='options[success_action]']:checked").val() == 'page')
10
+ $('.success_action_page_box.success_action_box').show();
11
+ else
12
+ $('.success_action_message_box.success_action_box').show();
13
+
14
+ $("input[name='options[success_action]']").change(function(){
15
+ $('.success_action_box').hide();
16
+ if ($(this).val() == 'redirect')
17
+ $('.success_action_redirect_box.success_action_box').show();
18
+ else if ($(this).val() == 'page')
19
+ $('.success_action_page_box.success_action_box').show();
20
+ else
21
+ $('.success_action_message_box.success_action_box').show();
22
+ });
23
 
24
  jQuery('.select-all-item-action-checkboxes').change(function(){
25
+ if (jQuery(this).attr("checked")){
26
+ jQuery(".item-action-checkbox").attr("checked","checked");
27
+ jQuery(".select-all-item-action-checkboxes").attr("checked","checked");
28
+ }else{
29
+ jQuery(".item-action-checkbox").removeAttr("checked");
30
+ jQuery(".select-all-item-action-checkboxes").removeAttr("checked");
31
+ }
32
  });
33
 
34
+ $('.item-action-checkbox').change(function(){ if(!$(this).attr("checked")){ $(".select-all-item-action-checkboxes").removeAttr("checked");}});
 
 
35
 
36
  jQuery('.item-list-form').submit(function(){
37
+ if(jQuery('#bulkaction').val() == 'delete'){return confirm('Are you sure you want to delete each of the selected items below?');}
38
  });
39
 
40
  jQuery('.frm_single_option').hover(
41
+ function(){jQuery(this).children(".frm_single_show_hover").show(); jQuery(this).children(".frm_spacer").hide();},
42
+ function(){jQuery(this).children(".frm_single_show_hover").hide(); jQuery(this).children(".frm_spacer").show();}
43
  );
44
 
45
  jQuery('li.ui-state-default').click(function(evt){
47
  $('.frm-show-hover').hide(); $(this).children(".frm-show-hover").show();
48
  $('.frm-show-click').hide(); $(this).children(".frm-show-click").show();
49
  $('li.ui-state-default.selected').removeClass('selected'); $(this).addClass('selected');
50
+ if(!$(target).is('.inplace_field') && !$(target).is('.frm_ipe_field_label') && !$(target).is('.frm_ipe_field_desc') && !$(target).is('.frm_ipe_field_desc').children() && !$(target).is('.frm_ipe_field_option')){ $('.inplace_field').blur();}
51
  });
52
+ $("img.frm_help[title]").tooltip({tip:'#frm_tooltip',lazy:true});
53
+ $("img.frm_help_text[title]").tooltip({tip:'#frm_tooltip_text',lazy:true});
54
+ $("img.frm_help_big[title]").tooltip({tip:'#frm_tooltip_big',lazy:true});
55
+
56
+ jQuery('.field_type_list > li').draggable({connectToSortable:'#new_fields',cursor:'move',helper:'clone',revert:'invalid',delay:10});
57
+ jQuery("ul.field_type_list, .field_type_list li").disableSelection();
58
  });
59
 
60
+ function add_frm_field_link(form_id, field_type, ajax_url){
61
+ jQuery.ajax({type:"POST",url:ajax_url,
62
+ data:"action=frm_insert_field&form_id="+form_id+"&field="+field_type,
63
+ success:function(msg){jQuery('#new_fields').append(msg);}
64
+ });
65
+ };
66
+
67
+ function frm_duplicate_field(field_id, ajax_url){
68
+ jQuery.ajax({type:"POST",url:ajax_url,
69
+ data:"action=frm_duplicate_field&field_id="+field_id,
70
+ success:function(msg){jQuery('#new_fields').append(msg);}
71
+ });
72
+ };
73
+
74
+ function frm_add_field_option(field_id, ajax_url){
75
+ jQuery.ajax({type:"POST",url:ajax_url,
76
+ data:"action=frm_add_field_option&field_id="+field_id,
77
+ success:function(msg){jQuery('#frm_add_field_'+field_id).before(msg);}
78
+ });
79
+ };
80
+
81
+ function frm_delete_field_option(field_id, opt_key, ajax_url){
82
+ jQuery.ajax({type:"POST",url:ajax_url,
83
+ data:"action=frm_delete_field_option&field_id="+field_id+"&opt_key="+opt_key,
84
+ success:function(msg){ jQuery('#frm_delete_field_'+field_id+'-'+opt_key+'_container').fadeOut("slow");}
85
+ });
86
+ };
87
+
88
  function frm_field_hover(show, field_id){
89
  var html_id = '#frm_field_id_'+field_id;
90
  if(show){jQuery(html_id).children(".frm-show-hover").show();}
92
  }
93
 
94
  function frmSetMenuOffset() {
95
+ var fields = jQuery('#frm_form_options .themeRoller');
96
  if (!fields) return;
97
  var currentOffset = document.documentElement.scrollTop || document.body.scrollTop; // body for Safari
98
+ var desiredOffset = 315 - currentOffset;
99
  if (desiredOffset < 10) desiredOffset = 10;
100
  //if (desiredOffset != parseInt(header.style.top))
101
  fields.attr('style', 'top:'+desiredOffset + 'px;');
102
  }
103
+
104
+ function frmDisplayFormSelected(form_id, ajax_url){
105
+ if (form_id == '') return;
106
+ jQuery.ajax({type:"POST",url:ajax_url,
107
+ data:"action=frm_get_field_tags&form_id="+form_id,
108
+ success:function(html){ jQuery('#content_fields').html(html);}
109
+ });
110
+ jQuery.ajax({type:"POST",url:ajax_url,
111
+ data:"action=frm_get_field_tags&target_id=dyncontent&form_id="+form_id,
112
+ success:function(html){ jQuery('#dyncontent_fields').html(html);}
113
+ });
114
+ jQuery.ajax({type:"POST",url:ajax_url,
115
+ data:"action=frm_get_entry_select&form_id="+form_id,
116
+ success:function(html){ jQuery('#entry_select_container').html(html);}
117
+ });
118
+ };
119
+
120
+ function frmInsertFieldCode(element_id, variable){
121
+ var content_box=jQuery("#"+element_id);
122
+ if(document.selection){content_box[0].focus();document.selection.createRange().text=variable;}
123
+ else if(content_box[0].selectionStart){obj = content_box[0];obj.value=obj.value.substr(0,obj.selectionStart)+variable+obj.value.substr(obj.selectionEnd,obj.value.length);}
124
+ else{content_box.val(variable+content_box.val());}
125
+ }
126
+ /*
127
+ delete_row = function(field_id,row){
128
+ jQuery(function(){
129
+ if (jQuery('#frm-table-' + field_id + ' tr').length == 2){ // header row and only one data row
130
+ alert('Sorry, you must leave at least one row in this table.');
131
+ }
132
+ else{
133
+ var data_exists = false;
134
+ jQuery('#frm-table-' + field_id + ' tr.row-' + row).find('input').each(function(){
135
+ if (jQuery(this).val() != "") data_exists = true;
136
+ })
137
+ if (!data_exists || confirm('Are you sure you wish to permanently delete this row? This cannot be undone.')){
138
+ jQuery('#frm-table-' + field_id + ' tr.row-' + row).remove();
139
+ adjust_row_numbers(field_id);
140
+ post_delete_row(field_id);
141
+ }
142
+ }
143
+ });
144
+ }
145
+
146
+ adjust_row_numbers = function(field_id){
147
+ var row_num;
148
+ jQuery('#frm-table-' + field_id + ' tr').each(function(){
149
+ if (row_num == null){
150
+ // skip the first row (column headers)
151
+ row_num = 0;
152
+ }else{
153
+ // This searches for inputs and readjusts their name to match the new row numbering scenario
154
+ jQuery(this).find('input').each(function(){ //input[name^=item_meta]
155
+ var name = jQuery(this).attr('name');
156
+ name = name.replace(/\[[0-9]+\]\[\]/,'[' + row_num + '][]');
157
+ jQuery(this).attr('name',name);
158
+
159
+ var id = jQuery(this).attr('id');
160
+ id = id.replace(/_[0-9]+(_[0-9]+)$/,'_' + row_num + '$1');
161
+ jQuery(this).attr('id',id);
162
+ });
163
+
164
+ // Now replace the javascript (for delete_row)
165
+ jQuery(this).find('a').each(function(){
166
+ var href = jQuery(this).attr('href');
167
+ href = href.replace(/(delete_row\([0-9]+,)[0-9]+/,'$1'+row_num);
168
+ jQuery(this).attr('href',href);
169
+ });
170
+
171
+ // Finally, need to reset the class for the row
172
+ jQuery(this).get(0).className = jQuery(this).get(0).className.replace(/\brow-.*?\b/g, '');
173
+ jQuery(this).addClass("row-" + row_num);
174
+
175
+ row_num++;
176
+ }
177
+ });
178
+ }
179
+
180
+ var active_requests = 0; // = false;
181
+ add_row = function(field_id){
182
+ jQuery.ajax({
183
+ type:"POST",
184
+ url:"<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php",
185
+ data:"action=frm_add_table_row&field_id="+field_id+"&row_num="+(jQuery('#frm-table-' + field_id + ' tr').length-1+active_requests++),
186
+ success:function(msg){
187
+ active_requests--;
188
+ jQuery('#frm-table-' + field_id + ' tr:last').after(msg);
189
+ post_add_row(field_id,jQuery('#frm-table-' + field_id + ' tr:last'));
190
+ }
191
+ });
192
+ }
193
+
194
+ post_add_row = function(field_id,new_row){
195
+ // Just a stub that can be overridden by another script
196
+ }
197
+ post_delete_row = function(field_id){
198
+ // Just a stub that can be overridden by another script
199
+ } */
js/jquery/jquery-1.3.2.min.js DELETED
@@ -1,19 +0,0 @@
1
- /*
2
- * jQuery JavaScript Library v1.3.2
3
- * http://jquery.com/
4
- *
5
- * Copyright (c) 2009 John Resig
6
- * Dual licensed under the MIT and GPL licenses.
7
- * http://docs.jquery.com/License
8
- *
9
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
10
- * Revision: 6246
11
- */
12
- (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
13
- /*
14
- * Sizzle CSS Selector Engine - v0.9.3
15
- * Copyright 2009, The Dojo Foundation
16
- * Released under the MIT, BSD, and GPL Licenses.
17
- * More information: http://sizzlejs.com/
18
- */
19
- (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/jquery/jquery-ui-1.7.2.min.js DELETED
@@ -1,10 +0,0 @@
1
- /*
2
- * jQuery UI 1.7.2
3
- *
4
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT (MIT-LICENSE.txt)
6
- * and GPL (GPL-LICENSE.txt) licenses.
7
- *
8
- * http://docs.jquery.com/UI
9
- */
10
- jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.2",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);(function(a){a.widget("ui.droppable",{_init:function(){var c=this.options,b=c.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&a.isFunction(this.options.accept)?this.options.accept:function(e){return e.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[this.options.scope]=a.ui.ddmanager.droppables[this.options.scope]||[];a.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.addClasses&&this.element.addClass("ui-droppable"))},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++){if(b[c]==this){b.splice(c,1)}}this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable")},_setData:function(b,c){if(b=="accept"){this.options.accept=c&&a.isFunction(c)?c:function(e){return e.is(c)}}else{a.widget.prototype._setData.apply(this,arguments)}},_activate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.addClass(this.options.activeClass)}(b&&this._trigger("activate",c,this.ui(b)))},_deactivate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}(b&&this._trigger("deactivate",c,this.ui(b)))},_over:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.addClass(this.options.hoverClass)}this._trigger("over",c,this.ui(b))}},_out:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("out",c,this.ui(b))}},_drop:function(c,d){var b=d||a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return false}var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f=a.data(this,"droppable");if(f.options.greedy&&a.ui.intersect(b,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e){return false}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("drop",c,this.ui(b));return this.element}return false},ui:function(b){return{draggable:(b.currentItem||b.element),helper:b.helper,position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs}}});a.extend(a.ui.droppable,{version:"1.7.2",eventPrefix:"drop",defaults:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"}});a.ui.intersect=function(q,j,o){if(!j.offset){return false}var e=(q.positionAbs||q.position.absolute).left,d=e+q.helperProportions.width,n=(q.positionAbs||q.position.absolute).top,m=n+q.helperProportions.height;var g=j.offset.left,c=g+j.proportions.width,p=j.offset.top,k=p+j.proportions.height;switch(o){case"fit":return(g<e&&d<c&&p<n&&m<k);break;case"intersect":return(g<e+(q.helperProportions.width/2)&&d-(q.helperProportions.width/2)<c&&p<n+(q.helperProportions.height/2)&&m-(q.helperProportions.height/2)<k);break;case"pointer":var h=((q.positionAbs||q.position.absolute).left+(q.clickOffset||q.offset.click).left),i=((q.positionAbs||q.position.absolute).top+(q.clickOffset||q.offset.click).top),f=a.ui.isOver(i,h,p,g,j.proportions.height,j.proportions.width);return f;break;case"touch":return((n>=p&&n<=k)||(m>=p&&m<=k)||(n<p&&m>k))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(e<g&&d>c));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d<b.length;d++){if(b[d].options.disabled||(e&&!b[d].options.accept.call(b[d].element[0],(e.currentItem||e.element)))){continue}for(var c=0;c<h.length;c++){if(h[c]==b[d].element[0]){b[d].proportions.height=0;continue droppablesLoop}}b[d].visible=b[d].element.css("display")!="none";if(!b[d].visible){continue}b[d].offset=b[d].element.offset();b[d].proportions={width:b[d].element[0].offsetWidth,height:b[d].element[0].offsetHeight};if(f=="mousedown"){b[d]._activate.call(b[d],g)}}},drop:function(b,c){var d=false;a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(!this.options){return}if(!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)){d=this._drop.call(this,c)}if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element[0],(b.currentItem||b.element))){this.isout=1;this.isover=0;this._deactivate.call(this,c)}});return d},drag:function(b,c){if(b.options.refreshPositions){a.ui.ddmanager.prepareOffsets(b,c)}a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible){return}var e=a.ui.intersect(b,this,this.options.tolerance);var g=!e&&this.isover==1?"isout":(e&&this.isover==0?"isover":null);if(!g){return}var f;if(this.options.greedy){var d=this.element.parents(":data(droppable):eq(0)");if(d.length){f=a.data(d[0],"droppable");f.greedyChild=(g=="isover"?1:0)}}if(f&&g=="isover"){f.isover=0;f.isout=1;f._out.call(f,c)}this[g]=1;this[g=="isout"?"isover":"isout"]=0;this[g=="isover"?"_over":"_out"].call(this,c);if(f&&g=="isout"){f.isout=0;f.isover=1;f._over.call(f,c)}})}}})(jQuery);(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,u){var s=(q[u]||0)+(j[u]||0);if(s&&s>=0){o[u]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.right<d||j.top>g||j.bottom<h))}else{if(e.tolerance=="fit"){k=(j.left>d&&j.right<b&&j.top>h&&j.bottom<g)}}if(k){if(j.selected){j.$element.removeClass("ui-selected");j.selected=false}if(j.unselecting){j.$element.removeClass("ui-unselecting");j.unselecting=false}if(!j.selecting){j.$element.addClass("ui-selecting");j.selecting=true;c._trigger("selecting",i,{selecting:j.element})}}else{if(j.selecting){if(i.metaKey&&j.startselected){j.$element.removeClass("ui-selecting");j.selecting=false;j.$element.addClass("ui-selected");j.selected=true}else{j.$element.removeClass("ui-selecting");j.selecting=false;if(j.startselected){j.$element.addClass("ui-unselecting");j.unselecting=true}c._trigger("unselecting",i,{unselecting:j.element})}}if(j.selected){if(!i.metaKey&&!j.startselected){j.$element.removeClass("ui-selected");j.selected=false;j.$element.addClass("ui-unselecting");j.unselecting=true;c._trigger("unselecting",i,{unselecting:j.element})}}}});return false},_mouseStop:function(d){var b=this;this.dragged=false;var c=this.options;a(".ui-unselecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-unselecting");e.unselecting=false;e.startselected=false;b._trigger("unselected",d,{unselected:e.element})});a(".ui-selecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-selecting").addClass("ui-selected");e.selecting=false;e.selected=true;e.startselected=true;b._trigger("selected",d,{selected:e.element})});this._trigger("stop",d);this.helper.remove();return false}}));a.extend(a.ui.selectable,{version:"1.7.2",defaults:{appendTo:"body",autoRefresh:true,cancel:":input,option",delay:0,distance:0,filter:"*",tolerance:"touch"}})})(jQuery);(function(a){a.widget("ui.sortable",a.extend({},a.ui.mouse,{_init:function(){var b=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop+g.scrollSpeed}else{if(f.pageY-this.overflowOffset.top<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop-g.scrollSpeed}}if((this.overflowOffset.left+this.scrollParent[0].offsetWidth)-f.pageX<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft+g.scrollSpeed}else{if(f.pageX-this.overflowOffset.left<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft-g.scrollSpeed}}}else{if(f.pageY-a(document).scrollTop()<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-g.scrollSpeed)}else{if(a(window).height()-(f.pageY-a(document).scrollTop())<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+g.scrollSpeed)}}if(f.pageX-a(document).scrollLeft()<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-g.scrollSpeed)}else{if(a(window).width()-(f.pageX-a(document).scrollLeft())<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+g.scrollSpeed)}}}if(b!==false&&a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,f)}}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)<i&&(e+h)>f&&(e+h)<c;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>m[this.floating?"width":"height"])){return g}else{return(f<e+(this.helperProportions.width/2)&&d-(this.helperProportions.width/2)<c&&n<k+(this.helperProportions.height/2)&&j-(this.helperProportions.height/2)<i)}},_intersectsWithPointer:function(d){var e=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,d.top,d.height),c=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,d.left,d.width),g=e&&c,b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(!g){return false}return this.floating?(((f&&f=="right")||b=="down")?2:1):(b&&(b=="down"?2:1))},_intersectsWithSides:function(e){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+(e.height/2),e.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+(e.width/2),e.width),b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(this.floating&&f){return((f=="right"&&d)||(f=="left"&&!d))}else{return b&&((b=="down"&&c)||(b=="up"&&!c))}},_getDragVerticalDirection:function(){var b=this.positionAbs.top-this.lastPositionAbs.top;return b!=0&&(b>0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c<this.items.length;c++){for(var b=0;b<d.length;b++){if(d[b]==this.items[c].item[0]){this.items.splice(c,1)}}}},_refreshItems:function(b){this.items=[];this.containers=[this];var h=this.items;var p=this;var f=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]];var l=this._connectWith();if(l){for(var e=l.length-1;e>=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d<n;d++){var o=a(c[d]);o.data("sortable-item",k);h.push({item:o,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)<h){h=Math.abs(f-e);g=this.items[b]}}if(!g&&!this.options.dropOnEmpty){continue}this.currentContainer=this.containers[c];g?this._rearrange(d,g,null,true):this._rearrange(d,null,this.containers[c].element,true);this._trigger("change",d,this._uiHash());this.containers[c]._trigger("change",d,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[c]._trigger("over",d,this._uiHash(this));this.containers[c].containerCache.over=1}}else{if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",d,this._uiHash(this));this.containers[c].containerCache.over=0}}}},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c,this.currentItem])):(d.helper=="clone"?this.currentItem.clone():this.currentItem);if(!b.parents("body").length){a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(b[0])}if(b[0]==this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(b[0].style.width==""||d.forceHelperSize){b.width(this.currentItem.width())}if(b[0].style.height==""||d.forceHelperSize){b.height(this.currentItem.height())}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.currentItem.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)){var c=a(e.containment)[0];var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_rearrange:function(g,f,c,e){c?c[0].appendChild(this.placeholder[0]):f.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?f.item[0]:f.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var d=this,b=this.counter;window.setTimeout(function(){if(b==d.counter){d.refreshPositions(!e)}},0)},_clear:function(d,e){this.reverting=false;var f=[],b=this;if(!this._noFinalSort&&this.currentItem[0].parentNode){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var c in this._storedCSS){if(this._storedCSS[c]=="auto"||this._storedCSS[c]=="static"){this._storedCSS[c]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.fromOutside&&!e){f.push(function(g){this._trigger("receive",g,this._uiHash(this.fromOutside))})}if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!e){f.push(function(g){this._trigger("update",g,this._uiHash())})}if(!a.ui.contains(this.element[0],this.currentItem[0])){if(!e){f.push(function(g){this._trigger("remove",g,this._uiHash())})}for(var c=this.containers.length-1;c>=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}return false}if(!e){this._trigger("beforeStop",d,this._uiHash())}this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.helper[0]!=this.currentItem[0]){this.helper.remove()}this.helper=null;if(!e){for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){if(a.widget.prototype._trigger.apply(this,arguments)===false){this.cancel()}},_uiHash:function(c){var b=c||this;return{helper:b.helper,placeholder:b.placeholder||a([]),position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs,item:b.currentItem,sender:c?c.element:null}}}));a.extend(a.ui.sortable,{getter:"serialize toArray",version:"1.7.2",eventPrefix:"sort",defaults:{appendTo:"parent",axis:false,cancel:":input,option",connectWith:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.data("ec.storage."+h[f],g[0].style[h[f]])}}},restore:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.css(h[f],g.data("ec.storage."+h[f]))}}},setMode:function(f,g){if(g=="toggle"){g=f.is(":hidden")?"show":"hide"}return g},getBaseline:function(g,h){var i,f;switch(g[0]){case"top":i=0;break;case"middle":i=0.5;break;case"bottom":i=1;break;default:i=g[0]/h.height}switch(g[1]){case"left":f=0;break;case"center":f=0.5;break;case"right":f=1;break;default:f=g[1]/h.width}return{x:f,y:i}},createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return -(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f},easeOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return h*Math.pow(2,-10*i)*Math.sin((i*l-j)*(2*Math.PI)/k)+m+f},easeInOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l/2)==2){return f+m}if(!k){k=l*(0.3*1.5)}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}if(i<1){return -0.5*(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f}return h*Math.pow(2,-10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k)*0.5+m+f},easeInBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*(h/=j)*h*((i+1)*h-i)+f},easeOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*((h=h/j-1)*h*((i+1)*h+i)+1)+f},easeInOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}if((h/=j/2)<1){return k/2*(h*h*(((i*=(1.525))+1)*h-i))+f}return k/2*((h-=2)*h*(((i*=(1.525))+1)*h+i)+2)+f},easeInBounce:function(g,h,f,j,i){return j-d.easing.easeOutBounce(g,i-h,0,j,i)+f},easeOutBounce:function(g,h,f,j,i){if((h/=i)<(1/2.75)){return j*(7.5625*h*h)+f}else{if(h<(2/2.75)){return j*(7.5625*(h-=(1.5/2.75))*h+0.75)+f}else{if(h<(2.5/2.75)){return j*(7.5625*(h-=(2.25/2.75))*h+0.9375)+f}else{return j*(7.5625*(h-=(2.625/2.75))*h+0.984375)+f}}}},easeInOutBounce:function(g,h,f,j,i){if(h<i/2){return d.easing.easeInBounce(g,h*2,0,j,i)*0.5+f}return d.easing.easeOutBounce(g,h*2-i,0,j,i)*0.5+j*0.5+f}})})(jQuery);(function(a){a.effects.blind=function(b){return this.queue(function(){var d=a(this),c=["position","top","left"];var h=a.effects.setMode(d,b.options.mode||"hide");var g=b.options.direction||"vertical";a.effects.save(d,c);d.show();var j=a.effects.createWrapper(d).css({overflow:"hidden"});var e=(g=="vertical")?"height":"width";var i=(g=="vertical")?j.height():j.width();if(h=="show"){j.css(e,0)}var f={};f[e]=h=="show"?i:0;j.animate(f,b.duration,b.options.easing,function(){if(h=="hide"){d.hide()}a.effects.restore(d,c);a.effects.removeWrapper(d);if(b.callback){b.callback.apply(d[0],arguments)}d.dequeue()})})}})(jQuery);(function(a){a.effects.bounce=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"up";var c=b.options.distance||20;var d=b.options.times||5;var g=b.duration||250;if(/show|hide/.test(k)){l.push("opacity")}a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var c=b.options.distance||(f=="top"?e.outerHeight({margin:true})/3:e.outerWidth({margin:true})/3);if(k=="show"){e.css("opacity",0).css(f,p=="pos"?-c:c)}if(k=="hide"){c=c/(d*2)}if(k!="hide"){d--}if(k=="show"){var h={opacity:1};h[f]=(p=="pos"?"+=":"-=")+c;e.animate(h,g/2,b.options.easing);c=c/2;d--}for(var j=0;j<d;j++){var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing);c=(k=="hide")?c*2:c/2}if(k=="hide"){var h={opacity:0};h[f]=(p=="pos"?"-=":"+=")+c;e.animate(h,g/2,b.options.easing,function(){e.hide();a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}else{var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);(function(a){a.effects.clip=function(b){return this.queue(function(){var f=a(this),j=["position","top","left","height","width"];var i=a.effects.setMode(f,b.options.mode||"hide");var k=b.options.direction||"vertical";a.effects.save(f,j);f.show();var c=a.effects.createWrapper(f).css({overflow:"hidden"});var e=f[0].tagName=="IMG"?c:f;var g={size:(k=="vertical")?"height":"width",position:(k=="vertical")?"top":"left"};var d=(k=="vertical")?e.height():e.width();if(i=="show"){e.css(g.size,0);e.css(g.position,d/2)}var h={};h[g.size]=i=="show"?d:0;h[g.position]=i=="show"?0:d/2;e.animate(h,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){f.hide()}a.effects.restore(f,j);a.effects.removeWrapper(f);if(b.callback){b.callback.apply(f[0],arguments)}f.dequeue()}})})}})(jQuery);(function(a){a.effects.drop=function(b){return this.queue(function(){var e=a(this),d=["position","top","left","opacity"];var i=a.effects.setMode(e,b.options.mode||"hide");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e);var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true})/2:e.outerWidth({margin:true})/2);if(i=="show"){e.css("opacity",0).css(f,c=="pos"?-j:j)}var g={opacity:i=="show"?1:0};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);(function(a){a.effects.explode=function(b){return this.queue(function(){var k=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;var e=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?(a(this).is(":visible")?"hide":"show"):b.options.mode;var h=a(this).show().css("visibility","hidden");var l=h.offset();l.top-=parseInt(h.css("marginTop"),10)||0;l.left-=parseInt(h.css("marginLeft"),10)||0;var g=h.outerWidth(true);var c=h.outerHeight(true);for(var f=0;f<k;f++){for(var d=0;d<e;d++){h.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c<f;c++){d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing)}if(g=="hide"){d.animate({opacity:0},e,b.options.easing,function(){d.hide();if(b.callback){b.callback.apply(this,arguments)}})}else{d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing,function(){if(b.callback){b.callback.apply(this,arguments)}})}d.queue("fx",function(){d.dequeue()});d.dequeue()})}})(jQuery);(function(a){a.effects.puff=function(b){return this.queue(function(){var f=a(this);var c=a.extend(true,{},b.options);var h=a.effects.setMode(f,b.options.mode||"hide");var g=parseInt(b.options.percent,10)||150;c.fade=true;var e={height:f.height(),width:f.width()};var d=g/100;f.from=(h=="hide")?e:{height:e.height*d,width:e.width*d};c.from=f.from;c.percent=(h=="hide")?g:100;c.mode=h;f.effect("scale",c,b.duration,b.callback);f.dequeue()})};a.effects.scale=function(b){return this.queue(function(){var g=a(this);var d=a.extend(true,{},b.options);var j=a.effects.setMode(g,b.options.mode||"effect");var h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:(j=="hide"?0:100));var i=b.options.direction||"both";var c=b.options.origin;if(j!="effect"){d.origin=c||["middle","center"];d.restore=true}var f={height:g.height(),width:g.width()};g.from=b.options.from||(j=="show"?{height:0,width:0}:f);var e={y:i!="horizontal"?(h/100):1,x:i!="vertical"?(h/100):1};g.to={height:f.height*e.y,width:f.width*e.x};if(b.options.fade){if(j=="show"){g.from.opacity=0;g.to.opacity=1}if(j=="hide"){g.from.opacity=1;g.to.opacity=0}}d.from=g.from;d.to=g.to;d.mode=j;g.effect("size",d,b.duration,b.callback);g.dequeue()})};a.effects.size=function(b){return this.queue(function(){var c=a(this),n=["position","top","left","width","height","overflow","opacity"];var m=["position","top","left","overflow","opacity"];var j=["width","height","overflow"];var p=["fontSize"];var k=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var g=a.effects.setMode(c,b.options.mode||"effect");var i=b.options.restore||false;var e=b.options.scale||"both";var o=b.options.origin;var d={height:c.height(),width:c.width()};c.from=b.options.from||d;c.to=b.options.to||d;if(o){var h=a.effects.getBaseline(o,d);c.from.top=(d.height-c.from.height)*h.y;c.from.left=(d.width-c.from.width)*h.x;c.to.top=(d.height-c.to.height)*h.y;c.to.left=(d.width-c.to.width)*h.x}var l={from:{y:c.from.height/d.height,x:c.from.width/d.width},to:{y:c.to.height/d.height,x:c.to.width/d.width}};if(e=="box"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(k);c.from=a.effects.setTransition(c,k,l.from.y,c.from);c.to=a.effects.setTransition(c,k,l.to.y,c.to)}if(l.from.x!=l.to.x){n=n.concat(f);c.from=a.effects.setTransition(c,f,l.from.x,c.from);c.to=a.effects.setTransition(c,f,l.to.x,c.to)}}if(e=="content"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(p);c.from=a.effects.setTransition(c,p,l.from.y,c.from);c.to=a.effects.setTransition(c,p,l.to.y,c.to)}}a.effects.save(c,i?n:m);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(e=="content"||e=="both"){k=k.concat(["marginTop","marginBottom"]).concat(p);f=f.concat(["marginLeft","marginRight"]);j=n.concat(k).concat(f);c.find("*[width]").each(function(){child=a(this);if(i){a.effects.save(child,j)}var q={height:child.height(),width:child.width()};child.from={height:q.height*l.from.y,width:q.width*l.from.x};child.to={height:q.height*l.to.y,width:q.width*l.to.x};if(l.from.y!=l.to.y){child.from=a.effects.setTransition(child,k,l.from.y,child.from);child.to=a.effects.setTransition(child,k,l.to.y,child.to)}if(l.from.x!=l.to.x){child.from=a.effects.setTransition(child,f,l.from.x,child.from);child.to=a.effects.setTransition(child,f,l.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){if(i){a.effects.restore(child,j)}})})}c.animate(c.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(g=="hide"){c.hide()}a.effects.restore(c,i?n:m);a.effects.removeWrapper(c);if(b.callback){b.callback.apply(this,arguments)}c.dequeue()}})})}})(jQuery);(function(a){a.effects.shake=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"left";var c=b.options.distance||20;var d=b.options.times||3;var g=b.duration||b.options.duration||140;a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var h={},o={},m={};h[f]=(p=="pos"?"-=":"+=")+c;o[f]=(p=="pos"?"+=":"-=")+c*2;m[f]=(p=="pos"?"-=":"+=")+c*2;e.animate(h,g,b.options.easing);for(var j=1;j<d;j++){e.animate(o,g,b.options.easing).animate(m,g,b.options.easing)}e.animate(o,g,b.options.easing).animate(h,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}});e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);(function(a){a.effects.slide=function(b){return this.queue(function(){var e=a(this),d=["position","top","left"];var i=a.effects.setMode(e,b.options.mode||"show");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e).css({overflow:"hidden"});var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true}):e.outerWidth({margin:true}));if(i=="show"){e.css(f,c=="pos"?-j:j)}var g={};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);(function(a){a.effects.transfer=function(b){return this.queue(function(){var f=a(this),h=a(b.options.to),e=h.offset(),g={top:e.top,left:e.left,height:h.innerHeight(),width:h.innerWidth()},d=f.offset(),c=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("<span/>").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);(function($){$.extend($.ui,{datepicker:{version:"1.7.2"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))}var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}if(inst){if(this._curInst==inst){this._hideDatepicker(null)}var date=this._getDateDatepicker(target);extendRemove(inst.settings,settings);this._setDateDatepicker(target,date);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||"&nbsp;",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("<div/>")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("<span/>")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("<span/>").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||"&nbsp;");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e<d){return c(window).height()+"px"}else{return e+"px"}}else{return c(document).height()+"px"}},width:function(){if(c.browser.msie&&c.browser.version<7){var d=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var e=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(d<e){return c(window).width()+"px"}else{return d+"px"}}else{return c(document).width()+"px"}},resize:function(){var d=c([]);c.each(c.ui.dialog.overlay.instances,function(){d=d.add(this)});d.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i<b.anchors.length?i:0)},d);if(h){h.stopPropagation()}});var e=b._unrotate||(b._unrotate=!f?function(h){if(h.clientX){b.rotate(null)}}:function(h){t=g.selected;c()});if(d){this.element.bind("tabsshow",c);this.anchors.bind(g.event+".tabs",e);c()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",c);this.anchors.unbind(g.event+".tabs",e);delete this._rotate;delete this._unrotate}}})})(jQuery);
 
 
 
 
 
 
 
 
 
 
js/jquery/jquery-ui-datepicker.js DELETED
@@ -1,12 +0,0 @@
1
- * jQuery UI Datepicker 1.7.1
2
- *
3
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
- * Dual licensed under the MIT (MIT-LICENSE.txt)
5
- * and GPL (GPL-LICENSE.txt) licenses.
6
- *
7
- * http://docs.jquery.com/UI/Datepicker
8
- *
9
- * Depends:
10
- * ui.core.js
11
- */
12
- (function($){$.extend($.ui,{datepicker:{version:"1.7.1"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.trigger.remove();$target.siblings("."+this._appendClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}var inst=this._getInst(target);if(inst){if(this._curInst==inst){this._hideDatepicker(null)}extendRemove(inst.settings,settings);var date=new Date();extendRemove(inst,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:date.getDate(),selectedMonth:date.getMonth(),selectedYear:date.getFullYear(),currentDay:date.getDate(),currentMonth:date.getMonth(),currentYear:date.getFullYear(),drawMonth:date.getMonth(),drawYear:date.getFullYear()});this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.1";window.DP_jQuery=$})(jQuery);;/*
 
 
 
 
 
 
 
 
 
 
 
 
js/jquery/jquery-ui-themepicker.js CHANGED
@@ -95,7 +95,7 @@ jQuery.fn.themeswitcher = function(settings){
95
 
96
  //markup
97
  var button = jQuery('<a href="#" class="jquery-ui-themeswitcher-trigger"><span class="jquery-ui-themeswitcher-icon"></span><span class="jquery-ui-themeswitcher-title">'+ options.initialText +'</span></a>');
98
- var switcherpane = jQuery('<div class="jquery-ui-themeswitcher"><div id="themeGallery"> <ul> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_light.png" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_dark.png" alt="UI Darkness" title="UI Darkness" /> <span class="themeName">UI darkness</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_smoothness.png" alt="Smoothness" title="Smoothness" /> <span class="themeName">Smoothness</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/start/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_start_menu.png" alt="Start" title="Start" /> <span class="themeName">Start</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_windoze.png" alt="Redmond" title="Redmond" /> <span class="themeName">Redmond</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/sunny/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_sunny.png" alt="Sunny" title="Sunny" /> <span class="themeName">Sunny</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/overcast/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_overcast.png" alt="Overcast" title="Overcast" /> <span class="themeName">Overcast</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/le-frog/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_le_frog.png" alt="Le Frog" title="Le Frog" /> <span class="themeName">Le Frog</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/flick/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_flick.png" alt="Flick" title="Flick" /> <span class="themeName">Flick</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/pepper-grinder/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_pepper_grinder.png" alt="Pepper Grinder" title="Pepper Grinder" /> <span class="themeName">Pepper Grinder</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/eggplant/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_eggplant.png" alt="Eggplant" title="Eggplant" /> <span class="themeName">Eggplant</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dark-hive/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_dark_hive.png" alt="Dark Hive" title="Dark Hive" /> <span class="themeName">Dark Hive</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/cupertino/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_cupertino.png" alt="Cupertino" title="Cupertino" /> <span class="themeName">Cupertino</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/south-street/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_south_street.png" alt="South St" title="South St" /> <span class="themeName">South Street</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/blitzer/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_blitzer.png" alt="Blitzer" title="Blitzer" /> <span class="themeName">Blitzer</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/humanity/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_humanity.png" alt="Humanity" title="Humanity" /> <span class="themeName">Humanity</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/hot-sneaks/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_hot_sneaks.png" alt="Hot Sneaks" title="Hot Sneaks" /> <span class="themeName">Hot sneaks</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/excite-bike/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_excite_bike.png" alt="Excite Bike" title="Excite Bike" /> <span class="themeName">Excite Bike</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/vader/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_matte.png" alt="Vader" title="Vader" /> <span class="themeName">Vader</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dot-luv/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_dot_luv.png" alt="Dot Luv" title="Dot Luv" /> <span class="themeName">Dot Luv</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/mint-choc/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_mint_choco.png" alt="Mint Choc" title="Mint Choc" /> <span class="themeName">Mint Choc</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/black-tie/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_tie.png" alt="Black Tie" title="Black Tie" /> <span class="themeName">Black Tie</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/trontastic/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_trontastic.png" alt="Trontastic" title="Trontastic" /> <span class="themeName">Trontastic</span> </a></li> <li><a href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/swanky-purse/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_swanky_purse.png" alt="Swanky Purse" title="Swanky Purse" /> <span class="themeName">Swanky Purse</span> </a></li> </ul></div></div>').find('div').removeAttr('id');
99
 
100
  //button events
101
  button.click(
@@ -311,11 +311,8 @@ jQuery(document).ready(function($){
311
  function(){ jQuery(this).addClass('state-hover'); },
312
  function(){ jQuery(this).removeClass('state-hover'); }
313
  );
314
-
315
- $("#datepicker_sample").datepicker();
316
 
317
  $('div.theme-group .theme-group-header').addClass('corner-all').spinDown();
318
- $('#frm_form_editor_container .ui-accordion-header').addClass('ui-corner-all').spinDown();
319
 
320
  // focus and blur classes in form
321
  $('input, select').focus(function(){
95
 
96
  //markup
97
  var button = jQuery('<a href="#" class="jquery-ui-themeswitcher-trigger"><span class="jquery-ui-themeswitcher-icon"></span><span class="jquery-ui-themeswitcher-title">'+ options.initialText +'</span></a>');
98
+ var switcherpane = jQuery('<div class="jquery-ui-themeswitcher"><div id="themeGallery"> <ul> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_light.png" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_ui_dark.png" alt="UI Darkness" title="UI Darkness" /> <span class="themeName">UI darkness</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_smoothness.png" alt="Smoothness" title="Smoothness" /> <span class="themeName">Smoothness</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/start/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_start_menu.png" alt="Start" title="Start" /> <span class="themeName">Start</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_windoze.png" alt="Redmond" title="Redmond" /> <span class="themeName">Redmond</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/sunny/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_sunny.png" alt="Sunny" title="Sunny" /> <span class="themeName">Sunny</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/overcast/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_overcast.png" alt="Overcast" title="Overcast" /> <span class="themeName">Overcast</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/le-frog/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_le_frog.png" alt="Le Frog" title="Le Frog" /> <span class="themeName">Le Frog</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/flick/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_flick.png" alt="Flick" title="Flick" /> <span class="themeName">Flick</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/pepper-grinder/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_pepper_grinder.png" alt="Pepper Grinder" title="Pepper Grinder" /> <span class="themeName">Pepper Grinder</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/eggplant/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_eggplant.png" alt="Eggplant" title="Eggplant" /> <span class="themeName">Eggplant</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dark-hive/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_dark_hive.png" alt="Dark Hive" title="Dark Hive" /> <span class="themeName">Dark Hive</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/cupertino/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_cupertino.png" alt="Cupertino" title="Cupertino" /> <span class="themeName">Cupertino</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/south-street/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_south_street.png" alt="South St" title="South St" /> <span class="themeName">South Street</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/blitzer/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_blitzer.png" alt="Blitzer" title="Blitzer" /> <span class="themeName">Blitzer</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/humanity/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_humanity.png" alt="Humanity" title="Humanity" /> <span class="themeName">Humanity</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/hot-sneaks/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_hot_sneaks.png" alt="Hot Sneaks" title="Hot Sneaks" /> <span class="themeName">Hot sneaks</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/excite-bike/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_excite_bike.png" alt="Excite Bike" title="Excite Bike" /> <span class="themeName">Excite Bike</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/vader/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_matte.png" alt="Vader" title="Vader" /> <span class="themeName">Vader</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dot-luv/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_dot_luv.png" alt="Dot Luv" title="Dot Luv" /> <span class="themeName">Dot Luv</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/mint-choc/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_mint_choco.png" alt="Mint Choc" title="Mint Choc" /> <span class="themeName">Mint Choc</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/black-tie/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_black_tie.png" alt="Black Tie" title="Black Tie" /> <span class="themeName">Black Tie</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/trontastic/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_trontastic.png" alt="Trontastic" title="Trontastic" /> <span class="themeName">Trontastic</span> </a></li> <li><a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/swanky-purse/jquery-ui.css"> <img src="http://static.jquery.com/ui/themeroller/images/themeGallery/theme_30_swanky_purse.png" alt="Swanky Purse" title="Swanky Purse" /> <span class="themeName">Swanky Purse</span> </a></li> </ul></div></div>').find('div').removeAttr('id');
99
 
100
  //button events
101
  button.click(
311
  function(){ jQuery(this).addClass('state-hover'); },
312
  function(){ jQuery(this).removeClass('state-hover'); }
313
  );
 
 
314
 
315
  $('div.theme-group .theme-group-header').addClass('corner-all').spinDown();
 
316
 
317
  // focus and blur classes in form
318
  $('input, select').focus(function(){
js/jquery/jquery.editinplace.js CHANGED
@@ -54,7 +54,7 @@ jQuery.fn.editInPlace = function(options) {
54
  select_options: "",
55
  textarea_cols: "25",
56
  textarea_rows: "10",
57
- bg_over: "#ffc",
58
  bg_out: "transparent",
59
  saving_text: "Saving...",
60
  saving_image: "",
@@ -127,6 +127,7 @@ jQuery.fn.editInPlace = function(options) {
127
  if(!editing)
128
  {
129
  jQuery('.inplace_field').blur();
 
130
 
131
  editing = true;
132
 
@@ -160,7 +161,7 @@ jQuery.fn.editInPlace = function(options) {
160
  }
161
 
162
  /* insert the new in place form after the element they click, then empty out the original element */
163
- jQuery(this).html('<form class="inplace_form" style="display: inline; margin: 0; padding: 0;">' + use_field_type + ' ' + buttons_code + '</form>');
164
 
165
  }/* END- if(!editing) -END */
166
 
@@ -181,7 +182,7 @@ jQuery.fn.editInPlace = function(options) {
181
  }
182
 
183
  function saveAction()
184
- {
185
  /* put the original background color in */
186
  original_element.css("background", settings.bg_out);
187
 
@@ -250,22 +251,22 @@ jQuery.fn.editInPlace = function(options) {
250
  }
251
 
252
  /* set the focus to the new input element */
253
- original_element.children("form").children(".inplace_field").focus().select();
254
 
255
  /* CLICK CANCEL BUTTON functionality */
256
- original_element.children("form").children(".inplace_cancel").click(cancelAction);
257
 
258
  /* CLICK SAVE BUTTON functionality */
259
- original_element.children("form").children(".inplace_save").click(saveAction);
260
 
261
  /* if cancel/save buttons should be shown, cancel blur functionality */
262
  if(!settings.show_buttons){
263
  /* if on_blur is set to save, set the save funcion */
264
  if(settings.on_blur == "save")
265
- original_element.children("form").children(".inplace_field").blur(saveAction);
266
  /* if on_blur is set to cancel, set the cancel funcion */
267
  else
268
- original_element.children("form").children(".inplace_field").blur(cancelAction);
269
  }
270
 
271
  /* hit esc key */
@@ -275,7 +276,7 @@ jQuery.fn.editInPlace = function(options) {
275
  }
276
  });
277
 
278
- original_element.children("form").submit(saveAction);
279
 
280
  }/* END- if(click_count == 1) -END */
281
  });
54
  select_options: "",
55
  textarea_cols: "25",
56
  textarea_rows: "10",
57
+ bg_over: "#ffffde",
58
  bg_out: "transparent",
59
  saving_text: "Saving...",
60
  saving_image: "",
127
  if(!editing)
128
  {
129
  jQuery('.inplace_field').blur();
130
+ jQuery(this).focus();
131
 
132
  editing = true;
133
 
161
  }
162
 
163
  /* insert the new in place form after the element they click, then empty out the original element */
164
+ jQuery(this).html(use_field_type + ' ' + buttons_code);
165
 
166
  }/* END- if(!editing) -END */
167
 
182
  }
183
 
184
  function saveAction()
185
+ {
186
  /* put the original background color in */
187
  original_element.css("background", settings.bg_out);
188
 
251
  }
252
 
253
  /* set the focus to the new input element */
254
+ original_element.children(".inplace_field").focus().select();
255
 
256
  /* CLICK CANCEL BUTTON functionality */
257
+ original_element.children(".inplace_cancel").click(cancelAction);
258
 
259
  /* CLICK SAVE BUTTON functionality */
260
+ original_element.children(".inplace_save").click(saveAction);
261
 
262
  /* if cancel/save buttons should be shown, cancel blur functionality */
263
  if(!settings.show_buttons){
264
  /* if on_blur is set to save, set the save funcion */
265
  if(settings.on_blur == "save")
266
+ original_element.children(".inplace_field").blur(saveAction);
267
  /* if on_blur is set to cancel, set the cancel funcion */
268
  else
269
+ original_element.children(".inplace_field").blur(cancelAction);
270
  }
271
 
272
  /* hit esc key */
276
  }
277
  });
278
 
279
+ original_element.submit(saveAction);
280
 
281
  }/* END- if(click_count == 1) -END */
282
  });
js/jquery/jquery.editinplace.packed.js CHANGED
@@ -1,7 +1,7 @@
1
- jQuery.fn.editInPlace=function(options){var settings={url:"",params:"",field_type:"text",select_options:"",textarea_cols:"25",textarea_rows:"10",bg_over:"#ff9",bg_out:"transparent",saving_text:"Saving...",saving_image:"",default_text:"(Click here to add text)",select_text:"Choose new value",value_required:null,element_id:"element_id",update_value:"update_value",original_html:"original_html",save_button:'<button class="inplace_save">Save</button>',cancel_button:'<button class="inplace_cancel">Cancel</button>',show_buttons:false,on_blur:"save",callback:null,success:null,error:function(request){alert("Failed to save value: "+request.responseText||'Unspecified Error');}};if(options){jQuery.extend(settings,options);}
2
  if(settings.saving_image!=""){var loading_image=new Image();loading_image.src=settings.saving_image;}
3
  String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');};String.prototype.escape_html=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");};return this.each(function(){if(jQuery(this).html()=="")jQuery(this).html(settings.default_text);var editing=false;var original_element=jQuery(this);var click_count=0;jQuery(this).mouseover(function(){jQuery(this).css("background",settings.bg_over);}).mouseout(function(){jQuery(this).css("background",settings.bg_out);}).click(function(){click_count++;if(!editing)
4
- {jQuery('.inplace_field').blur();editing=true;var original_html=jQuery(this).html();var buttons_code=(settings.show_buttons)?settings.save_button+' '+settings.cancel_button:'';if(original_html==settings.default_text)jQuery(this).html('');if(settings.field_type=="textarea")
5
  {var use_field_type='<textarea name="inplace_value" class="inplace_field" rows="'+settings.textarea_rows+'" cols="'+settings.textarea_cols+'">'+jQuery(this).html().trim().escape_html()+'</textarea>';}
6
  else if(settings.field_type=="text")
7
  {var use_field_type='<input type="text" name="inplace_value" class="inplace_field" value="'+
@@ -9,7 +9,7 @@ jQuery(this).html().trim().escape_html()+'" />';}
9
  else if(settings.field_type=="select")
10
  {var optionsArray=settings.select_options.split(',');var use_field_type='<select name="inplace_value" class="inplace_field"><option value="">'+settings.select_text+'</option>';for(var i=0;i<optionsArray.length;i++){var optionsValuesArray=optionsArray[i].split(':');var use_value=optionsValuesArray[1]||optionsValuesArray[0];var selected=use_value==original_html?'selected="selected" ':'';use_field_type+='<option '+selected+'value="'+use_value.trim().escape_html()+'">'+optionsValuesArray[0].trim().escape_html()+'</option>';}
11
  use_field_type+='</select>';}
12
- jQuery(this).html('<form class="inplace_form" style="display: inline; margin: 0; padding: 0;">'+use_field_type+' '+buttons_code+'</form>');}
13
  if(click_count==1)
14
  {function cancelAction()
15
  {editing=false;click_count=0;original_element.css("background",settings.bg_out);original_element.html(original_html);return false;}
@@ -18,7 +18,7 @@ function saveAction()
18
  original_element.html(saving_message);if(settings.params!=""){settings.params="&"+settings.params;}
19
  if(settings.callback){html=settings.callback(original_element.attr("id"),new_html,original_html,settings.params);editing=false;click_count=0;if(html){original_element.html(html||new_html);}else{alert("Failed to save value: "+new_html);original_element.html(original_html);}}else if(settings.value_required&&(new_html==""||new_html==undefined)){editing=false;click_count=0;original_element.html(original_html);alert("Error: You must enter a value to save this field");}else{jQuery.ajax({url:settings.url,type:"POST",data:settings.update_value+'='+new_html+'&'+settings.element_id+'='+original_element.attr("id")+settings.params+'&'+settings.original_html+'='+original_html,dataType:"html",complete:function(request){editing=false;click_count=0;},success:function(html){var new_text=html||settings.default_text;original_element.html(new_text);if(settings.success)settings.success(html,original_element);},error:function(request){original_element.html(original_html);if(settings.error)settings.error(request,original_element);}});}
20
  return false;}
21
- original_element.children("form").children(".inplace_field").focus().select();original_element.children("form").children(".inplace_cancel").click(cancelAction);original_element.children("form").children(".inplace_save").click(saveAction);if(!settings.show_buttons){if(settings.on_blur=="save")
22
- original_element.children("form").children(".inplace_field").blur(saveAction);else
23
- original_element.children("form").children(".inplace_field").blur(cancelAction);}
24
- jQuery(document).keyup(function(event){if(event.keyCode==27){cancelAction();}});original_element.children("form").submit(saveAction);}});});};
1
+ jQuery.fn.editInPlace=function(options){var settings={url:"",params:"",field_type:"text",select_options:"",textarea_cols:"25",textarea_rows:"10",bg_over:"#ffffde",bg_out:"transparent",saving_text:"Saving...",saving_image:"",default_text:"(Click here to add text)",select_text:"Choose new value",value_required:null,element_id:"element_id",update_value:"update_value",original_html:"original_html",save_button:'<button class="inplace_save">Save</button>',cancel_button:'<button class="inplace_cancel">Cancel</button>',show_buttons:false,on_blur:"save",callback:null,success:null,error:function(request){alert("Failed to save value: "+request.responseText||'Unspecified Error');}};if(options){jQuery.extend(settings,options);}
2
  if(settings.saving_image!=""){var loading_image=new Image();loading_image.src=settings.saving_image;}
3
  String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');};String.prototype.escape_html=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");};return this.each(function(){if(jQuery(this).html()=="")jQuery(this).html(settings.default_text);var editing=false;var original_element=jQuery(this);var click_count=0;jQuery(this).mouseover(function(){jQuery(this).css("background",settings.bg_over);}).mouseout(function(){jQuery(this).css("background",settings.bg_out);}).click(function(){click_count++;if(!editing)
4
+ {jQuery('.inplace_field').blur();jQuery(this).children('.inplace_field').focus();editing=true;var original_html=jQuery(this).html();var buttons_code=(settings.show_buttons)?settings.save_button+' '+settings.cancel_button:'';if(original_html==settings.default_text)jQuery(this).html('');if(settings.field_type=="textarea")
5
  {var use_field_type='<textarea name="inplace_value" class="inplace_field" rows="'+settings.textarea_rows+'" cols="'+settings.textarea_cols+'">'+jQuery(this).html().trim().escape_html()+'</textarea>';}
6
  else if(settings.field_type=="text")
7
  {var use_field_type='<input type="text" name="inplace_value" class="inplace_field" value="'+
9
  else if(settings.field_type=="select")
10
  {var optionsArray=settings.select_options.split(',');var use_field_type='<select name="inplace_value" class="inplace_field"><option value="">'+settings.select_text+'</option>';for(var i=0;i<optionsArray.length;i++){var optionsValuesArray=optionsArray[i].split(':');var use_value=optionsValuesArray[1]||optionsValuesArray[0];var selected=use_value==original_html?'selected="selected" ':'';use_field_type+='<option '+selected+'value="'+use_value.trim().escape_html()+'">'+optionsValuesArray[0].trim().escape_html()+'</option>';}
11
  use_field_type+='</select>';}
12
+ jQuery(this).html(use_field_type+' '+buttons_code);}
13
  if(click_count==1)
14
  {function cancelAction()
15
  {editing=false;click_count=0;original_element.css("background",settings.bg_out);original_element.html(original_html);return false;}
18
  original_element.html(saving_message);if(settings.params!=""){settings.params="&"+settings.params;}
19
  if(settings.callback){html=settings.callback(original_element.attr("id"),new_html,original_html,settings.params);editing=false;click_count=0;if(html){original_element.html(html||new_html);}else{alert("Failed to save value: "+new_html);original_element.html(original_html);}}else if(settings.value_required&&(new_html==""||new_html==undefined)){editing=false;click_count=0;original_element.html(original_html);alert("Error: You must enter a value to save this field");}else{jQuery.ajax({url:settings.url,type:"POST",data:settings.update_value+'='+new_html+'&'+settings.element_id+'='+original_element.attr("id")+settings.params+'&'+settings.original_html+'='+original_html,dataType:"html",complete:function(request){editing=false;click_count=0;},success:function(html){var new_text=html||settings.default_text;original_element.html(new_text);if(settings.success)settings.success(html,original_element);},error:function(request){original_element.html(original_html);if(settings.error)settings.error(request,original_element);}});}
20
  return false;}
21
+ original_element.children(".inplace_field").focus().select();original_element.children(".inplace_cancel").click(cancelAction);original_element.children(".inplace_save").click(saveAction);if(!settings.show_buttons){if(settings.on_blur=="save")
22
+ original_element.children(".inplace_field").blur(saveAction);else
23
+ original_element.children(".inplace_field").blur(cancelAction);}
24
+ jQuery(document).keyup(function(event){if(event.keyCode==27){cancelAction();}});original_element.submit(saveAction);}});});};
js/jquery/jquery.elastic.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(jQuery){jQuery.fn.extend({elastic:function(){var mimics=['paddingTop','paddingRight','paddingBottom','paddingLeft','fontSize','lineHeight','fontFamily','width','fontWeight'];return this.each(function(){if(this.type!='textarea'){return false}var $textarea=jQuery(this),$twin=jQuery('<div />').css({'position':'absolute','display':'none','word-wrap':'break-word'}),lineHeight=parseInt($textarea.css('line-height'),10)||parseInt($textarea.css('font-size'),'10'),minheight=parseInt($textarea.css('height'),10)||lineHeight*3,maxheight=parseInt($textarea.css('max-height'),10)||Number.MAX_VALUE,goalheight=0,i=0;if(maxheight<0){maxheight=Number.MAX_VALUE}$twin.appendTo($textarea.parent());var i=mimics.length;while(i--){$twin.css(mimics[i].toString(),$textarea.css(mimics[i].toString()))}function setHeightAndOverflow(height,overflow){curratedHeight=Math.floor(parseInt(height,10));if($textarea.height()!=curratedHeight){$textarea.css({'height':curratedHeight+'px','overflow':overflow})}}function update(){var textareaContent=$textarea.val().replace(/&/g,'&amp;').replace(/ /g,'&nbsp;').replace(/<|>/g,'&gt;').replace(/\n/g,'<br />');var twinContent=$twin.html();if(textareaContent+'&nbsp;'!=twinContent){$twin.html(textareaContent+'&nbsp;');if(Math.abs($twin.height()+lineHeight-$textarea.height())>3){var goalheight=$twin.height()+lineHeight;if(goalheight>=maxheight){setHeightAndOverflow(maxheight,'auto')}else if(goalheight<=minheight){setHeightAndOverflow(minheight,'hidden')}else{setHeightAndOverflow(goalheight,'hidden')}}}}$textarea.css({'overflow':'hidden'});$textarea.keyup(function(){update()});$textarea.live('input paste',function(e){setTimeout(update,250)});update()})}})})(jQuery);
js/jquery/jquery.tools.min.js ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jquery.tools 1.1.2 - The missing UI library for the Web
3
+ *
4
+ * [tools.tabs-1.0.4, tools.tooltip-1.1.3, tools.scrollable-1.1.2, tools.overlay-1.1.2, tools.expose-1.0.5]
5
+ *
6
+ * Copyright (c) 2009 Tero Piirainen
7
+ * http://flowplayer.org/tools/
8
+ *
9
+ * Dual licensed under MIT and GPL 2+ licenses
10
+ * http://www.opensource.org/licenses
11
+ *
12
+ * -----
13
+ *
14
+ * File generated: Thu Mar 11 19:31:47 GMT 2010
15
+ */
16
+ (function(d){d.tools=d.tools||{};d.tools.tabs={version:"1.0.4",conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",api:false,rotate:false},addEffect:function(e,f){c[e]=f}};var c={"default":function(f,e){this.getPanes().hide().eq(f).show();e.call()},fade:function(g,e){var f=this.getConf(),j=f.fadeOutSpeed,h=this.getPanes();if(j){h.fadeOut(j)}else{h.hide()}h.eq(g).fadeIn(f.fadeInSpeed,e)},slide:function(f,e){this.getPanes().slideUp(200);this.getPanes().eq(f).slideDown(400,e)},ajax:function(f,e){this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"),e)}};var b;d.tools.tabs.addEffect("horizontal",function(f,e){if(!b){b=this.getPanes().eq(0).width()}this.getCurrentPane().animate({width:0},function(){d(this).hide()});this.getPanes().eq(f).animate({width:b},function(){d(this).show();e.call()})});function a(g,h,f){var e=this,j=d(this),i;d.each(f,function(k,l){if(d.isFunction(l)){j.bind(k,l)}});d.extend(this,{click:function(k,n){var o=e.getCurrentPane();var l=g.eq(k);if(typeof k=="string"&&k.replace("#","")){l=g.filter("[href*="+k.replace("#","")+"]");k=Math.max(g.index(l),0)}if(f.rotate){var m=g.length-1;if(k<0){return e.click(m,n)}if(k>m){return e.click(0,n)}}if(!l.length){if(i>=0){return e}k=f.initialIndex;l=g.eq(k)}if(k===i){return e}n=n||d.Event();n.type="onBeforeClick";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}c[f.effect].call(e,k,function(){n.type="onClick";j.trigger(n,[k])});n.type="onStart";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}i=k;g.removeClass(f.current);l.addClass(f.current);return e},getConf:function(){return f},getTabs:function(){return g},getPanes:function(){return h},getCurrentPane:function(){return h.eq(i)},getCurrentTab:function(){return g.eq(i)},getIndex:function(){return i},next:function(){return e.click(i+1)},prev:function(){return e.click(i-1)},bind:function(k,l){j.bind(k,l);return e},onBeforeClick:function(k){return this.bind("onBeforeClick",k)},onClick:function(k){return this.bind("onClick",k)},unbind:function(k){j.unbind(k);return e}});g.each(function(k){d(this).bind(f.event,function(l){e.click(k,l);return false})});if(location.hash){e.click(location.hash)}else{if(f.initialIndex===0||f.initialIndex>0){e.click(f.initialIndex)}}h.find("a[href^=#]").click(function(k){e.click(d(this).attr("href"),k)})}d.fn.tabs=function(i,f){var g=this.eq(typeof f=="number"?f:0).data("tabs");if(g){return g}if(d.isFunction(f)){f={onBeforeClick:f}}var h=d.extend({},d.tools.tabs.conf),e=this.length;f=d.extend(h,f);this.each(function(l){var j=d(this);var k=j.find(f.tabs);if(!k.length){k=j.children()}var m=i.jquery?i:j.children(i);if(!m.length){m=e==1?d(i):j.parent().find(i)}g=new a(k,m,f);j.data("tabs",g)});return f.api?g:this}})(jQuery);
17
+ (function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery);
18
+ (function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);
19
+ (function(c){c.tools=c.tools||{};c.tools.overlay={version:"1.1.2",addEffect:function(e,f,g){b[e]=[f,g]},conf:{top:"10%",left:"center",absolute:false,speed:"normal",closeSpeed:"fast",effect:"default",close:null,oneInstance:true,closeOnClick:true,closeOnEsc:true,api:false,expose:null,target:null}};var b={};c.tools.overlay.addEffect("default",function(e){this.getOverlay().fadeIn(this.getConf().speed,e)},function(e){this.getOverlay().fadeOut(this.getConf().closeSpeed,e)});var d=[];function a(g,k){var o=this,m=c(this),n=c(window),j,i,h,e=k.expose&&c.tools.expose.version;var f=k.target||g.attr("rel");i=f?c(f):null||g;if(!i.length){throw"Could not find Overlay: "+f}if(g&&g.index(i)==-1){g.click(function(p){o.load(p);return p.preventDefault()})}c.each(k,function(p,q){if(c.isFunction(q)){m.bind(p,q)}});c.extend(o,{load:function(u){if(o.isOpened()){return o}var r=b[k.effect];if(!r){throw'Overlay: cannot find effect : "'+k.effect+'"'}if(k.oneInstance){c.each(d,function(){this.close(u)})}u=u||c.Event();u.type="onBeforeLoad";m.trigger(u);if(u.isDefaultPrevented()){return o}h=true;if(e){i.expose().load(u)}var t=k.top;var s=k.left;var p=i.outerWidth({margin:true});var q=i.outerHeight({margin:true});if(typeof t=="string"){t=t=="center"?Math.max((n.height()-q)/2,0):parseInt(t,10)/100*n.height()}if(s=="center"){s=Math.max((n.width()-p)/2,0)}if(!k.absolute){t+=n.scrollTop();s+=n.scrollLeft()}i.css({top:t,left:s,position:"absolute"});u.type="onStart";m.trigger(u);r[0].call(o,function(){if(h){u.type="onLoad";m.trigger(u)}});if(k.closeOnClick){c(document).bind("click.overlay",function(w){if(!o.isOpened()){return}var v=c(w.target);if(v.parents(i).length>1){return}c.each(d,function(){this.close(w)})})}if(k.closeOnEsc){c(document).unbind("keydown.overlay").bind("keydown.overlay",function(v){if(v.keyCode==27){c.each(d,function(){this.close(v)})}})}return o},close:function(q){if(!o.isOpened()){return o}q=q||c.Event();q.type="onBeforeClose";m.trigger(q);if(q.isDefaultPrevented()){return}h=false;b[k.effect][1].call(o,function(){q.type="onClose";m.trigger(q)});var p=true;c.each(d,function(){if(this.isOpened()){p=false}});if(p){c(document).unbind("click.overlay").unbind("keydown.overlay")}return o},getContent:function(){return i},getOverlay:function(){return i},getTrigger:function(){return g},getClosers:function(){return j},isOpened:function(){return h},getConf:function(){return k},bind:function(p,q){m.bind(p,q);return o},unbind:function(p){m.unbind(p);return o}});c.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(p,q){o[q]=function(r){return o.bind(q,r)}});if(e){if(typeof k.expose=="string"){k.expose={color:k.expose}}c.extend(k.expose,{api:true,closeOnClick:k.closeOnClick,closeOnEsc:false});var l=i.expose(k.expose);l.onBeforeClose(function(p){o.close(p)});o.onClose(function(p){l.close(p)})}j=i.find(k.close||".close");if(!j.length&&!k.close){j=c('<div class="close"></div>');i.prepend(j)}j.click(function(p){o.close(p)})}c.fn.overlay=function(e){var f=this.eq(typeof e=="number"?e:0).data("overlay");if(f){return f}if(c.isFunction(e)){e={onBeforeLoad:e}}var g=c.extend({},c.tools.overlay.conf);e=c.extend(true,g,e);this.each(function(){f=new a(c(this),e);d.push(f);c(this).data("overlay",f)});return e.api?f:this}})(jQuery);
20
+ (function(b){b.tools=b.tools||{};b.tools.expose={version:"1.0.5",conf:{maskId:null,loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,color:"#456",api:false}};function a(){if(b.browser.msie){var f=b(document).height(),e=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,f-e<20?e:f]}return[b(window).width(),b(document).height()]}function c(h,g){var e=this,j=b(this),d=null,f=false,i=0;b.each(g,function(k,l){if(b.isFunction(l)){j.bind(k,l)}});b(window).resize(function(){e.fit()});b.extend(this,{getMask:function(){return d},getExposed:function(){return h},getConf:function(){return g},isLoaded:function(){return f},load:function(n){if(f){return e}i=h.eq(0).css("zIndex");if(g.maskId){d=b("#"+g.maskId)}if(!d||!d.length){var l=a();d=b("<div/>").css({position:"absolute",top:0,left:0,width:l[0],height:l[1],display:"none",opacity:0,zIndex:g.zIndex});if(g.maskId){d.attr("id",g.maskId)}b("body").append(d);var k=d.css("backgroundColor");if(!k||k=="transparent"||k=="rgba(0, 0, 0, 0)"){d.css("backgroundColor",g.color)}if(g.closeOnEsc){b(document).bind("keydown.unexpose",function(o){if(o.keyCode==27){e.close()}})}if(g.closeOnClick){d.bind("click.unexpose",function(o){e.close(o)})}}n=n||b.Event();n.type="onBeforeLoad";j.trigger(n);if(n.isDefaultPrevented()){return e}b.each(h,function(){var o=b(this);if(!/relative|absolute|fixed/i.test(o.css("position"))){o.css("position","relative")}});h.css({zIndex:Math.max(g.zIndex+1,i=="auto"?0:i)});var m=d.height();if(!this.isLoaded()){d.css({opacity:0,display:"block"}).fadeTo(g.loadSpeed,g.opacity,function(){if(d.height()!=m){d.css("height",m)}n.type="onLoad";j.trigger(n)})}f=true;return e},close:function(k){if(!f){return e}k=k||b.Event();k.type="onBeforeClose";j.trigger(k);if(k.isDefaultPrevented()){return e}d.fadeOut(g.closeSpeed,function(){k.type="onClose";j.trigger(k);h.css({zIndex:b.browser.msie?i:null})});f=false;return e},fit:function(){if(d){var k=a();d.css({width:k[0],height:k[1]})}},bind:function(k,l){j.bind(k,l);return e},unbind:function(k){j.unbind(k);return e}});b.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","),function(k,l){e[l]=function(m){return e.bind(l,m)}})}b.fn.expose=function(d){var e=this.eq(typeof d=="number"?d:0).data("expose");if(e){return e}if(typeof d=="string"){d={color:d}}var f=b.extend({},b.tools.expose.conf);d=b.extend(f,d);this.each(function(){e=new c(b(this),d);b(this).data("expose",e)});return d.api?e:this}})(jQuery);
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Formidable Forms ===
2
  Contributors: sswells
3
  Donate link: http://blog.strategy11.com/donate
4
- Tags: WPMU, form, builder, drag, drop, widget, sidebar, Post, posts, page, wordpress, plugin, template, contact, contact form, forms, captcha, email, database, save, admin, akismet, AJAX, links, javascript, jquery, theme, spam, content, image, images, poll, survey, feedback, anti-spam
5
  Requires at least: 2.8
6
- Tested up to: 2.9.2
7
- Stable tag: 1.02.01
8
 
9
  Quickly and easily build forms with a simple drag-and-drop interface and in-place editing.
10
 
@@ -12,34 +12,18 @@ Quickly and easily build forms with a simple drag-and-drop interface and in-plac
12
  Quickly and easily build forms with a simple drag-and-drop interface and in-place editing.
13
  There are dozens of form-building plugins out there to create forms, but most are confusing and overly complicated. With Formidable, it is easy to create forms within a simple drag-and-drop interface. You can construct custom forms or generate them from a template. Shortcodes can be used as well as spam catching services.
14
 
15
- = Upgrade to Formidable Pro =
16
-
17
- Formidable Pro is an upgrade to Formidable with more form fields, flexibility, and power. Learn more at:
18
-
19
- http://formidablepro.com
20
-
21
  = Features =
 
22
  * Integrates with WP reCAPTCHA and Akismet for Spam control
23
  * Shortcode [formidable id=x] for use in pages, posts, or text widgets for WordPress version 2.8 and above.
24
  * Alternatively use `<?php echo FrmEntriesController::show_form(2, $key = '', $title=true, $description=true); ?>` in your template
25
  * Customize most HTML when editing the form (code for editing HTML when creating the form is soon to follow... and documentation too)
26
  * Create forms from existing templates or add your own. A contact form template is included.
27
  * Direct links available for previews and emailing surveys with and without integration with your current theme. Make these links pretty with [Pretty Link](http://blog.strategy11.com/prettylink "Pretty Link") integration
28
- * Select an email address to send form responses under "Advanced Form Options"
29
  * Input default values into form fields with the option to clear when clicked
30
- * Saves responses to the database for future retrieval, reports, and display in [Formidable Pro](http://formidablepro.com/ "Formidable Pro")
31
  * PHP ninjas can display data in templates using functions in FrmApiController. However, there is currently no documentation for these functions.
32
 
33
- = PRO Features =
34
- * Visual form styling editor. Want to [check it out](http://formidablepro.com/customer-service?test=1 "check it out")?
35
- * Additional fields which include page breaks for multiple paged forms, file uploads, section headers, rich text editor, date with calendar, email, phone, website, and a dynamic field populated with data from other entries.
36
- * View graphical reports for the form results (replace Google docs surveys)
37
- * Add, edit, search, and CSV export entries from the WordPress admin
38
- * Make your default values dynamic
39
- * Conditionally hide and show fields
40
- * Display your gathered data in a page, post, or widget
41
-
42
-
43
  == Installation ==
44
  1. Upload `formidable` folder to the `/wp-content/plugins/` directory
45
  2. Activate the plugin through the 'Plugins' menu
@@ -48,14 +32,90 @@ http://formidablepro.com
48
  5. Use shortcode [formidable id=x] in pages, posts, or text widgets. (Requires WordPress version 2.8 or higher)
49
 
50
  == Screenshots ==
51
- [Formidable Screenshots](http://blog.strategy11.com/formidable-wordpress-plugin/ "Formidable Screenshots")
52
 
53
- [Formidable Pro Screenshots](http://blog.strategy11.com/formidablepro/ "Formidable Pro Screenshots")
54
 
55
  == Frequently Asked Questions ==
56
- [Formidable FAQs](http://blog.strategy11.com/formidable-faqs/ "Formidable FAQs")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  = 1.02.01 =
60
  * Emailer now works for everyone! (hopefully)
61
  * Optionally Reset HTML. Just clear out the box for the HTML for that field and hit update.
1
  === Formidable Forms ===
2
  Contributors: sswells
3
  Donate link: http://blog.strategy11.com/donate
4
+ Tags: WPMU, widget, Post, plugin, template, contact, contact form, form, forms, captcha, spam, email, database, admin, AJAX, javascript, jquery, poll, survey, feedback
5
  Requires at least: 2.8
6
+ Tested up to: 3.0
7
+ Stable tag: 1.03.03
8
 
9
  Quickly and easily build forms with a simple drag-and-drop interface and in-place editing.
10
 
12
  Quickly and easily build forms with a simple drag-and-drop interface and in-place editing.
13
  There are dozens of form-building plugins out there to create forms, but most are confusing and overly complicated. With Formidable, it is easy to create forms within a simple drag-and-drop interface. You can construct custom forms or generate them from a template. Shortcodes can be used as well as spam catching services.
14
 
 
 
 
 
 
 
15
  = Features =
16
+ * Saves all responses to the database for future retrieval, reports, and display in [Formidable Pro](http://formidablepro.com/ "Formidable Pro") Learn more at: http://formidablepro.com
17
  * Integrates with WP reCAPTCHA and Akismet for Spam control
18
  * Shortcode [formidable id=x] for use in pages, posts, or text widgets for WordPress version 2.8 and above.
19
  * Alternatively use `<?php echo FrmEntriesController::show_form(2, $key = '', $title=true, $description=true); ?>` in your template
20
  * Customize most HTML when editing the form (code for editing HTML when creating the form is soon to follow... and documentation too)
21
  * Create forms from existing templates or add your own. A contact form template is included.
22
  * Direct links available for previews and emailing surveys with and without integration with your current theme. Make these links pretty with [Pretty Link](http://blog.strategy11.com/prettylink "Pretty Link") integration
23
+ * Select an email address to send form responses under "Form Notification Options"
24
  * Input default values into form fields with the option to clear when clicked
 
25
  * PHP ninjas can display data in templates using functions in FrmApiController. However, there is currently no documentation for these functions.
26
 
 
 
 
 
 
 
 
 
 
 
27
  == Installation ==
28
  1. Upload `formidable` folder to the `/wp-content/plugins/` directory
29
  2. Activate the plugin through the 'Plugins' menu
32
  5. Use shortcode [formidable id=x] in pages, posts, or text widgets. (Requires WordPress version 2.8 or higher)
33
 
34
  == Screenshots ==
35
+ 1. Form creation page
36
 
 
37
 
38
  == Frequently Asked Questions ==
39
+ = Q. Why aren’t I getting any emails? =
40
+
41
+ A. Try the following steps:
42
+
43
+ 1. Double check to make sure your email address is present and correct under “Advanced Form Options” at the bottom of your form editor page
44
+ 2. Check your SPAM box
45
+ 3. Try a different email address.
46
+ 4. Install WP Mail SMPT or another similar plugin
47
+ 5. If none of these steps fix the problem, let me know and I’ll try to help you find the bottleneck.
48
+
49
+ = Q. How do I make a field required? =
50
+
51
+ A. I have tried to keep the Formidable user interface as quick and simple as possible. Just click on the star next to the field you would like to be required.
52
+
53
+ = Q. How do I edit the field name? =
54
+
55
+ A. The field and form names and descriptions are all changed with in-place edit. Just click on the text you would like to change, and it will turn into a text field. Don’t forget to hit save!
56
+
57
+ = Q. Why isn’t the form builder page working after I updated? =
58
+
59
+ A. Try clearing your browser cache. As I make plugin modifications, I frequently change javascript and stylesheets. However, the previous versions may be cached so you aren’t using the modified files. After clearing your cache and you’re still having issues, please let me know.
60
 
61
  == Changelog ==
62
+ = 1.03.03 =
63
+ * Added options to allow users other than admins to access Formidable
64
+ * Added uninstall button
65
+ * Fixed multiple submissions for pages with multiple forms
66
+ * PRO: Added [frm-graph] shortcode for front-end graphical reports! Default values: `[frm-graph id=x include_js=1 colors="#EF8C08,#21759B,#1C9E05" bg_color="#FFFFFF" height=400 width=400]`. Show multiple fields with `[frm-graph id="x,y,z"]`
67
+ * PRO: Added "value" parameter to the frm-stats shortcode for counting number of entries with specified value `[frm-stats id=8 value="Hello" type=count]`
68
+ * PRO: Added a field drop-down for searching specific fields on the entries page
69
+ * PRO: Added option to allow users to edit any entry instead of only their own and other user-role options
70
+ * PRO: Added calendar format option on the Formidable Settings page
71
+ * PRO: Changed "entry_id" in the "display-frm-data" to accept multiple entry IDs. ex: `[display-frm-data id=x entry_id="34,35,36"]`
72
+ * PRO: Added "equals" option to if statements. ex: `[if 283 equals=hello]show this if the field with id 283 equals hello[/if 283]`
73
+
74
+ = 1.03.02 =
75
+ * Fixed admin pagination to navigate correctly with the arrow
76
+ * Fixed most Internet Explorer admin issues
77
+ * PRO: Added option to only show certain fields in a shortcode `[formidable id=x fields="field1,field2,field3"]`
78
+ * PRO: Added a user_id parameter to the frm-stats shortcode to get only the averages and totals for that user `[frm-stats id=8 user_id=19]`
79
+ * PRO: Fixed custom display to correctly show a single entry for all users.
80
+ * PRO: Fixed bug that prevented some of the dynamic default values from getting replaced if the was no value to replace it with
81
+ * PRO: Fixed bug causing "Array" to be shown in the email notification if more than one check box was selected
82
+ * PRO: Fixed "Data from Entries" check box javascript and display on entries page
83
+ * PRO: Fixed new fields to default to position set on the Formidable settings
84
+ * PRO: Updated country field in the User Information template
85
+ * PRO: Fixed hidden field to not lose its value if updated from the admin
86
+ * PRO: If using `[frm-entry-links]` with type=collapse, the first year and month now default to open and fixed div uneveness
87
+ * PRO: Corrected values when using a "Data from Entries" drop down from an image url field to show the url
88
+ * PRO: Editable 'You have already submitted that form' message
89
+ * Other fixes
90
+
91
+ = 1.03.01 =
92
+ * PRO: Fixed auto-update for WP 2.9
93
+
94
+ = 1.03.0 =
95
+ * Added the option of showing the form with the success message or not
96
+ * Added settings options for default messages and option to exclude the stylesheet from your header
97
+ * PRO: Added auto responder and made the notification email customizable
98
+ * PRO: Added options to redirect or render content from another page
99
+ * PRO: Added option to only allow only submission per user, IP, or cookie
100
+ * PRO: Added option to export a custom template as a PHP file so it can be used on other sites
101
+ * PRO: Added option to specify alternate folder from which to import templates
102
+ * PRO: Added number field
103
+ * PRO: Added auto increment default value `[auto_id start=1]`
104
+ * PRO: Added a field width option to the sidebar widget
105
+ * PRO: Added a rich text editor to the custom display page
106
+ * PRO: Added an edit link shortcode for use in custom displays `[editlink]`
107
+ * PRO: Added a drop-down select to insert the field shortcodes for custom displays
108
+ * PRO: Added year range option to date fields
109
+ * PRO: Fixed bug causing collapsed section to open and immediately close if there are multiple forms on the same page
110
+ * PRO: Fixed bug preventing styling options from saving for some users
111
+ * PRO: Added styling options: disable submit button styling, field border style and thickness, form border color and thickness, submit button border and background image
112
+ * PRO: Added read-only fields with option to enable all fields in the shortcode [formidable id=x readonly=disabled]
113
+ * PRO: Added entry_id option to form shortcode `[formidable id=x entry_id=x]`. The entry_id can either be the number of the entry id or use "last" to get the last entry.
114
+ * PRO: Added taxonomy support with a tags field
115
+ * PRO: Added "where" options to custom displays so only specified entries will be shown.
116
+ * PRO: Fixed bug preventing file upload fields from accurately requiring a file
117
+ * PRO: Added type=collapsible to the frm-entry-links shortcode for a collapsible archive list
118
+
119
  = 1.02.01 =
120
  * Emailer now works for everyone! (hopefully)
121
  * Optionally Reset HTML. Just clear out the box for the HTML for that field and hit update.
screenshot-1.png ADDED
Binary file