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 | 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
- classes/controllers/FrmAppController.php +75 -137
- classes/controllers/FrmEntriesController.php +24 -19
- classes/controllers/FrmFieldsController.php +42 -16
- classes/controllers/FrmFormsController.php +58 -34
- classes/controllers/FrmSettingsController.php +11 -16
- classes/controllers/FrmStatisticsController.php +2 -2
- classes/helpers/FrmAppHelper.php +90 -19
- classes/helpers/FrmEntriesHelper.php +15 -10
- classes/helpers/FrmFieldsHelper.php +22 -15
- classes/helpers/FrmFormsHelper.php +43 -14
- classes/models/FrmDb.php +202 -0
- classes/models/FrmEntry.php +39 -49
- classes/models/FrmEntryMeta.php +36 -39
- classes/models/FrmField.php +20 -21
- classes/models/FrmForm.php +30 -29
- classes/models/FrmNotification.php +19 -38
- classes/models/FrmSettings.php +63 -4
- classes/models/FrmUpdate.php +24 -9
- classes/views/frm-entries/direct.php +1 -7
- classes/views/frm-entries/form.php +6 -4
- classes/views/frm-entries/frm-entry.php +11 -3
- classes/views/frm-entries/list.php +3 -2
- classes/views/frm-entries/new.php +2 -5
- classes/views/frm-fields/input.php +7 -7
- classes/views/frm-fields/radio.php +1 -1
- classes/views/frm-fields/single-option.php +2 -2
- classes/views/frm-forms/add_field.php +55 -47
- classes/views/frm-forms/add_field_links.php +21 -21
- classes/views/frm-forms/default-templates.php +16 -15
- classes/views/frm-forms/edit.php +2 -2
- classes/views/frm-forms/footer.php +34 -56
- classes/views/frm-forms/form.php +77 -39
- classes/views/frm-forms/list.php +66 -43
- classes/views/frm-forms/new-field-js.php +1 -1
- classes/views/frm-forms/new-selection.php +1 -1
- classes/views/frm-forms/new.php +2 -2
- classes/views/frm-settings/form.php +58 -10
- classes/views/frm-statistics/list.php +1 -1
- classes/views/shared/item-table-nav.php +4 -4
- classes/views/shared/nav.php +14 -4
- classes/views/shared/pagination.php +12 -6
- css/frm_admin.css +122 -172
- formidable.php +31 -6
- images/add.png +0 -0
- images/black_arrow.png +0 -0
- images/black_arrow_big.png +0 -0
- images/readonly.png +0 -0
- images/required.png +0 -0
- images/tooltip.png +0 -0
- js/formidable.js +163 -25
- js/jquery/jquery-1.3.2.min.js +0 -19
- js/jquery/jquery-ui-1.7.2.min.js +0 -10
- js/jquery/jquery-ui-datepicker.js +0 -12
- js/jquery/jquery-ui-themepicker.js +1 -4
- js/jquery/jquery.editinplace.js +10 -9
- js/jquery/jquery.editinplace.packed.js +7 -7
- js/jquery/jquery.elastic.js +1 -0
- js/jquery/jquery.tools.min.js +20 -0
- readme.txt +84 -24
- 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(
|
6 |
-
add_filter(
|
7 |
-
|
8 |
-
add_action('
|
9 |
-
|
10 |
-
|
11 |
-
add_action('
|
12 |
-
|
|
|
|
|
13 |
|
14 |
// Used to process standalone requests
|
15 |
-
add_action('init', array(
|
16 |
|
17 |
//Shortcodes
|
18 |
-
add_shortcode('formidable', array(
|
19 |
-
add_filter( 'widget_text', array(
|
20 |
}
|
21 |
|
22 |
function menu(){
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
|
|
|
|
|
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 |
-
|
76 |
-
wp_enqueue_script('
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
function front_head(){
|
|
|
|
|
81 |
if (IS_WPMU){
|
82 |
-
$db_version = 1.
|
83 |
$old_db_version = get_option('frm_db_version');
|
84 |
if ($db_version != $old_db_version)
|
85 |
$this->install();
|
86 |
}
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
91 |
}
|
92 |
|
93 |
function install(){
|
94 |
-
|
95 |
-
|
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 |
-
|
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(
|
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),
|
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 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 $
|
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'
|
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 =
|
60 |
-
if ($posted_form_id
|
61 |
-
$posted_form_id =
|
62 |
-
|
63 |
-
if ($form->id == $posted_form_id){
|
64 |
foreach ($default_values as $var => $default)
|
65 |
-
$values[$var] =
|
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(
|
6 |
-
add_action('wp_ajax_frm_field_name_in_place_edit', array(
|
7 |
-
add_action('wp_ajax_frm_field_desc_in_place_edit', array(
|
8 |
-
add_action('wp_ajax_frm_mark_required', array(
|
9 |
-
add_action('wp_ajax_frm_clear_on_focus', array(
|
10 |
-
add_action('wp_ajax_frm_default_blank', array(
|
11 |
-
add_action('wp_ajax_frm_delete_field', array(
|
12 |
-
add_action('wp_ajax_frm_add_field_option',array(
|
13 |
-
add_action('wp_ajax_frm_field_option_ipe', array(
|
14 |
-
add_action('wp_ajax_frm_delete_field_option',array(
|
15 |
-
add_action('wp_ajax_frm_update_field_order', array(
|
16 |
-
add_filter('frm_field_type',array(
|
17 |
-
add_filter('frm_display_field_options', array(
|
|
|
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(
|
6 |
-
add_action('admin_head-toplevel_page_'.FRM_PLUGIN_NAME, array(
|
7 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-new', array(
|
8 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-templates', array(
|
9 |
-
add_action('wp_ajax_frm_form_name_in_place_edit', array(
|
10 |
-
add_action('wp_ajax_frm_form_desc_in_place_edit', array(
|
11 |
-
add_action('wp_ajax_frm_delete_form_wo_fields',array(
|
12 |
}
|
13 |
|
14 |
function menu(){
|
15 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Forms', FRM_PLUGIN_NAME), __('Forms', FRM_PLUGIN_NAME),
|
16 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Create a Form', FRM_PLUGIN_NAME), __('Create a Form', FRM_PLUGIN_NAME),
|
17 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Templates', FRM_PLUGIN_NAME), __('Templates', FRM_PLUGIN_NAME),
|
18 |
}
|
19 |
|
20 |
function head(){
|
21 |
-
$
|
22 |
-
|
|
|
|
|
23 |
require(FRM_VIEWS_PATH . '/shared/head.php');
|
24 |
}
|
25 |
|
@@ -35,9 +37,9 @@ class FrmFormsController{
|
|
35 |
}
|
36 |
|
37 |
function new_form(){
|
38 |
-
global $
|
39 |
|
40 |
-
$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 $
|
56 |
$errors = $frm_form->validate($_POST);
|
57 |
-
$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 |
-
|
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
|
98 |
$errors = $frm_form->validate($_POST);
|
99 |
-
$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 =
|
142 |
-
$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, $
|
164 |
$id = $_POST['form_id'];
|
165 |
-
if ($
|
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'], $
|
205 |
-
$page_count = $frm_app_helper->getPageCount($frm_page_size,$form_vars['where_clause'], $
|
206 |
-
$forms = $frm_app_helper->getPage($current_page, $frm_page_size, $form_vars['where_clause'], $form_vars['order_by'], $
|
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] =
|
291 |
|
292 |
return $values;
|
293 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
295 |
function route(){
|
296 |
-
$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(
|
6 |
-
add_action('admin_menu', array(
|
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),
|
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',
|
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 |
-
|
49 |
-
$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(
|
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',
|
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, '
|
8 |
}
|
9 |
|
10 |
function wp_pages_dropdown($field_name, $page_id){
|
11 |
-
|
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 |
-
|
|
|
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, $
|
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(
|
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('"', '"', $new_value),
|
84 |
'default_value' => str_replace('"', '"', 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] =
|
115 |
}
|
116 |
}
|
117 |
|
118 |
$email = get_option('admin_email');
|
119 |
-
foreach (array('custom_style' => $frm_settings->custom_style, 'email_to' => $email
|
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('"', '"', $new_value),
|
143 |
'default_value' => str_replace('"', '"', 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 $
|
7 |
$values = array();
|
8 |
foreach (array('name' => '', 'description' => '', 'item_key' => '') as $var => $default)
|
9 |
-
$values[$var] = stripslashes(
|
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 |
-
|
23 |
-
|
|
|
24 |
|
25 |
-
$new_value = str_replace('"', '"',
|
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] =
|
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 $
|
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('"', '"', $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
|
22 |
'break' => __('Page Break', FRM_PLUGIN_NAME),
|
23 |
'file' => __('File Upload', FRM_PLUGIN_NAME),
|
24 |
'rte' => __('Rich Text Editor', FRM_PLUGIN_NAME),
|
25 |
-
'
|
26 |
-
'
|
|
|
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 |
-
'
|
|
|
|
|
|
|
|
|
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 $
|
46 |
|
47 |
-
$field_count = $frm_app_helper->getRecordCount("form_id=$form_id", $
|
48 |
-
$key = FrmAppHelper::get_unique_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(
|
60 |
else if ( $type == 'select')
|
61 |
-
$values['options'] = serialize(array(
|
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
|
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(
|
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] =
|
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
|
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 $
|
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 $
|
47 |
$values = array();
|
48 |
foreach (array('name' => __('Untitled Form', FRM_PLUGIN_NAME), 'description' => '') as $var => $default)
|
49 |
-
$values[$var] = stripslashes(
|
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(
|
55 |
|
56 |
-
$values['form_key'] = ($_POST and isset($_POST['form_key']))?$_POST['form_key']:(FrmAppHelper::get_unique_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
|
70 |
|
71 |
-
$values['form_key'] =
|
72 |
-
$values['default_template'] =
|
73 |
-
$values['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'], $
|
15 |
$new_values['name'] = isset($values['name']) ? $values['name'] : $values['item_key'];
|
16 |
-
$new_values['
|
17 |
-
|
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( $
|
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('', $
|
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( $
|
46 |
-
|
47 |
if($query_results){
|
|
|
48 |
$frm_entry_meta->duplicate_entry_metas($id);
|
49 |
-
return $
|
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'], $
|
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( $
|
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, $
|
75 |
|
76 |
// Disconnect the child items from this parent item
|
77 |
-
//$query_results = $wpdb->update( $
|
78 |
|
79 |
-
$reset = 'DELETE FROM ' . $
|
80 |
-
$destroy = 'DELETE FROM ' . $
|
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( $
|
90 |
}
|
91 |
|
92 |
function getOne( $id ){
|
93 |
-
global $wpdb, $
|
94 |
-
$query =
|
95 |
-
|
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, $
|
108 |
-
$query =
|
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, $
|
122 |
-
$query =
|
123 |
-
|
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, $
|
134 |
-
$query =
|
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, $
|
146 |
$end_index = $current_p * $p_size;
|
147 |
$start_index = $end_index - $p_size;
|
148 |
-
$query =
|
149 |
-
|
150 |
-
'
|
151 |
-
|
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('', $
|
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( $
|
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
|
50 |
}
|
51 |
|
52 |
function delete_entry_metas($item_id){
|
53 |
-
global $wpdb;
|
54 |
-
return $wpdb->query("DELETE FROM
|
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
|
61 |
else
|
62 |
-
$query = "SELECT meta_value FROM
|
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
|
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
|
83 |
}
|
84 |
|
85 |
-
function get_entry_metas_for_field($field_id){
|
86 |
-
global $wpdb;
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
function get_entry_meta_info($item_id){
|
91 |
-
global $wpdb;
|
92 |
-
return $wpdb->get_results("SELECT * FROM
|
93 |
}
|
94 |
|
95 |
function get_entry_meta_info_by_key($item_id, $meta_key){
|
96 |
-
global $wpdb;
|
97 |
-
$query_str = "SELECT * FROM
|
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 =
|
106 |
-
|
107 |
-
|
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, $
|
125 |
-
$query = "SELECT DISTINCT it.item_id FROM $
|
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, $
|
136 |
-
$query = "SELECT COUNT(*) FROM
|
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
|
155 |
}else{
|
156 |
if ($operator == 'LIKE')
|
157 |
$search = "%{$search}%";
|
158 |
-
$query = $wpdb->prepare("SELECT DISTINCT item_id FROM
|
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, $
|
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( $
|
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, $
|
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'], $
|
53 |
|
54 |
if (isset($values['field_options']))
|
55 |
$values['field_options'] = serialize($values['field_options']);
|
56 |
|
57 |
-
$query_results = $wpdb->update( $
|
58 |
|
59 |
return $query_results;
|
60 |
}
|
61 |
|
62 |
function destroy( $id ){
|
63 |
-
global $wpdb, $
|
64 |
|
65 |
-
$reset =
|
66 |
-
$destroy =
|
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
|
76 |
else
|
77 |
-
$query = "SELECT * FROM
|
78 |
return $wpdb->get_row($query);
|
79 |
}
|
80 |
|
81 |
function getAll($where = '', $order_by = '', $limit = '', $blog_id=false){
|
82 |
-
global $wpdb, $
|
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 = $
|
89 |
-
$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, $
|
105 |
-
$query = "SELECT fi.id FROM $
|
106 |
-
|
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'], $
|
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( $
|
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, $
|
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( $
|
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'], $
|
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( $
|
104 |
|
105 |
$all_fields = $frm_field->getAll("fi.form_id=$id");
|
106 |
-
if ($all_fields
|
|
|
|
|
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( $
|
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, $
|
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 =
|
167 |
$query_results = $wpdb->query($query);
|
168 |
|
169 |
-
$destroy =
|
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 =
|
180 |
else
|
181 |
-
$query = "SELECT name FROM
|
182 |
|
183 |
return $wpdb->get_var($query);
|
184 |
}
|
185 |
|
186 |
function getIdByName( $name ){
|
187 |
-
global $wpdb;
|
188 |
-
$query =
|
189 |
return $wpdb->get_var($query);
|
190 |
}
|
191 |
|
192 |
function getIdByKey( $key ){
|
193 |
-
global $wpdb;
|
194 |
-
$query = "SELECT id FROM $
|
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 = $
|
207 |
$query = "SELECT * FROM $table_name WHERE id='$id'";
|
208 |
}else
|
209 |
-
$query =
|
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 ' . $
|
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 |
-
$
|
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 ($
|
33 |
-
$
|
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) . ": ". $
|
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, $
|
48 |
}else
|
49 |
-
$this->send_notification_email($to_email, $subject, $mail_body, $
|
50 |
}
|
51 |
|
52 |
-
function send_notification_email($to_email, $subject, $message, $
|
53 |
-
$
|
54 |
-
$
|
55 |
-
$
|
56 |
-
$
|
57 |
-
$
|
58 |
-
$
|
59 |
-
$
|
|
|
|
|
60 |
|
61 |
-
|
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
|
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
|
33 |
-
|
34 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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) ?> »</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 = (
|
|
|
|
|
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('
|
297 |
$already_set_transient = true;
|
298 |
-
|
299 |
}
|
300 |
|
301 |
-
if( !$already_set_option ){
|
302 |
$already_set_option = true;
|
303 |
-
|
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) ?> »</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
|
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 |
-
|
|
|
|
|
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 |
-
$
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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'] ?>"
|
4 |
|
5 |
<?php }else if ($field['type'] == 'textarea'){ ?>
|
6 |
-
<textarea name="<?php echo $field_name ?>"
|
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"'; ?> /><
|
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="
|
27 |
-
<div class="frm_checkbox"><input type="checkbox" name="<?php echo $field_name ?>[]" value="<?php echo $opt ?>" <?php echo $checked ?> /><
|
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('"', '"', $opt) ?>"<?php echo isset($checked)? $checked : ''; ?>/>
|
6 |
<?php } ?>
|
7 |
-
<
|
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('"', '"', $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="
|
11 |
</span>
|
12 |
<?php } ?>
|
13 |
-
<
|
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'
|
21 |
-
$field['
|
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']; ?>)"
|
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']; ?>)"
|
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 |
-
<
|
71 |
-
<
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
<
|
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 |
-
<
|
11 |
<?php } ?>
|
12 |
-
</
|
13 |
|
14 |
<p class="howto"><?php _e('Click on or drag a field into your form', FRM_PLUGIN_NAME) ?></p>
|
15 |
-
<div
|
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&plugin=wp-recaptcha&TB_iframe=true&width=640&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
|
47 |
-
<?php
|
48 |
-
|
49 |
-
|
50 |
-
|
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="
|
71 |
-
<li><span
|
72 |
-
|
|
|
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 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
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&plugin=wp-recaptcha&TB_iframe=true&width=640&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 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
|
|
25 |
$url = add_query_arg('form', $form->form_key, get_permalink($frm_settings->preview_page_id));
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
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
|
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 |
-
|
|
|
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(
|
101 |
});
|
102 |
};
|
103 |
|
@@ -137,12 +126,20 @@ function frm_default_blank(field_id, active){
|
|
137 |
});
|
138 |
};
|
139 |
|
140 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
jQuery.ajax({
|
142 |
-
|
143 |
-
|
144 |
-
|
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 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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="
|
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')?' <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')?' <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 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
<
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
<?php } ?>
|
90 |
-
|
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')?' <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')?' <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; ?>&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>
|
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; ?>&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></span>
|
65 |
+
| <span class="edit"><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></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; ?>&action=destroy&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; ?>&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>
|
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; ?>&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></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&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></span>
|
90 |
+
<?php } ?>
|
91 |
+
<?php if(current_user_can('frm_view_entries')){ ?>
|
92 |
+
| <span><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></span>
|
93 |
+
<?php } ?>
|
94 |
+
| <span><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></span>
|
95 |
+
<?php } ?>
|
96 |
+
<?php if(current_user_can('frm_edit_forms')){ ?>
|
97 |
+
| <span><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></span>
|
98 |
+
| <span><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></span>
|
99 |
+
<?php } ?>
|
100 |
+
<?php if(current_user_can('frm_delete_forms')){ ?>
|
101 |
+
| <span class="trash"><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?'), 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']; ?> .
|
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
|
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
|
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
|
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('
|
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 |
-
|
|
|
|
|
|
|
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
|
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–%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–%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 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
<?php do_action('frm_nav_items'); ?>
|
7 |
</ul>
|
8 |
</div>
|
9 |
-
|
|
|
|
|
|
|
|
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"> </div>
|
18 |
+
<div id="frm_tooltip_text" class="frm_tooltip_text"> </div>
|
19 |
+
<div id="frm_tooltip_big" class="frm_tooltip_big"> </div>
|
classes/views/shared/pagination.php
CHANGED
@@ -1,12 +1,18 @@
|
|
1 |
-
<?php
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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)); ?>">»</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; ?>">«</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; ?>">»</a><?php
|
49 |
} ?>
|
css/frm_admin.css
CHANGED
@@ -1,34 +1,35 @@
|
|
1 |
-
.
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
.
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
|
|
21 |
}
|
|
|
|
|
22 |
|
23 |
-
.frm_form_builder{width:60%;}
|
24 |
.frm_form_builder a:hover{text-decoration:underline;}
|
25 |
|
26 |
-
#frm_form_options{width:
|
27 |
-
#frm_form_options .nodrag
|
28 |
-
#frm_form_options .
|
29 |
-
#frm_form_options .
|
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;
|
47 |
.frm_rte .howto{margin:10px 0 45px 0;}
|
48 |
-
.frm_rte textarea{width:
|
|
|
|
|
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 |
-
.
|
63 |
-
|
64 |
-
|
|
|
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 |
-
|
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 #
|
100 |
}
|
101 |
-
#new_fields li.ui-state-default.selected{background:#
|
102 |
|
|
|
103 |
|
|
|
|
|
|
|
104 |
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
108 |
}
|
109 |
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
121 |
-
|
122 |
-
width:240px;
|
123 |
position:fixed;
|
124 |
z-index:5;
|
|
|
125 |
}
|
126 |
|
127 |
-
.form-
|
|
|
|
|
128 |
line-height:12px;
|
129 |
}
|
130 |
|
131 |
-
|
132 |
outline: 0 !important;
|
133 |
}
|
134 |
|
135 |
/*corner radius in TR app elements*/
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
|
140 |
-
|
141 |
border: 0;
|
142 |
padding: 0;
|
143 |
margin: 0;
|
144 |
clear: both;
|
145 |
display: block;
|
146 |
}
|
147 |
-
|
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 |
-
|
156 |
margin: 1px 0;
|
157 |
-
width: 210px;
|
158 |
-
}
|
159 |
-
#frm_form_options #themeRoller .theme-group{
|
160 |
-
width:100%;
|
161 |
}
|
162 |
-
#themeRoller .theme-group-
|
|
|
163 |
cursor: pointer;
|
164 |
padding: .4em 0;
|
165 |
-
|
166 |
}
|
167 |
/*header states*/
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
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 |
-
|
182 |
margin: -1px 2px 0 1px !important;
|
183 |
}
|
184 |
-
|
185 |
-
|
186 |
-
|
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 |
-
|
198 |
padding: 10px 5px 10px 13px;
|
199 |
border-top: 0 !important;
|
200 |
}
|
201 |
-
|
202 |
display: none;
|
203 |
}
|
204 |
-
|
205 |
font-size: .8em;
|
206 |
font-weight: bold;
|
207 |
text-transform: uppercase;
|
208 |
}
|
209 |
|
210 |
/*form field groups*/
|
211 |
-
|
212 |
float: left;
|
213 |
width: 53px;
|
214 |
margin: 10px 4px 0 0;
|
215 |
}
|
216 |
#global-font .field-group,
|
217 |
#global-corners .field-group,
|
218 |
-
|
219 |
-
|
220 |
#Shadow .field-group {
|
221 |
margin: 4px 0 0;
|
222 |
clear: both;
|
223 |
float: none;
|
224 |
width: auto;
|
225 |
}
|
226 |
-
|
227 |
clear: left;
|
228 |
}
|
229 |
|
230 |
/*form labels*/
|
231 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
262 |
-
|
263 |
-
background: #333;
|
264 |
-
color: #fff;
|
265 |
-
font-size: 1em;
|
266 |
padding: 2px;
|
267 |
}
|
268 |
-
|
269 |
padding: 1px;
|
270 |
}
|
271 |
input.opacity, input.offset {
|
272 |
width: 20px;
|
273 |
float: left;
|
274 |
}
|
275 |
-
|
276 |
-
|
277 |
-
padding: 0 .2em;
|
278 |
-
}
|
279 |
-
#themeRoller input.hex {
|
280 |
width: 45px;
|
281 |
outline: 0;
|
282 |
}
|
283 |
.form-field .frm_full_width {
|
284 |
-
width:
|
285 |
}
|
286 |
|
287 |
input.cornerRadius {
|
@@ -290,15 +295,14 @@ input.cornerRadius {
|
|
290 |
|
291 |
|
292 |
/*Custom form elements */
|
293 |
-
|
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 |
-
|
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 |
-
|
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.
|
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('
|
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 |
-
|
11 |
-
|
12 |
-
|
13 |
-
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
jQuery('.select-all-item-action-checkboxes').change(function(){
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
});
|
24 |
|
25 |
-
|
26 |
-
if(!jQuery(this).attr("checked")){jQuery(".select-all-item-action-checkboxes").removeAttr("checked");}
|
27 |
-
});
|
28 |
|
29 |
jQuery('.item-list-form').submit(function(){
|
30 |
-
|
31 |
});
|
32 |
|
33 |
jQuery('.frm_single_option').hover(
|
34 |
-
|
35 |
-
|
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
|
55 |
if (!fields) return;
|
56 |
var currentOffset = document.documentElement.scrollTop || document.body.scrollTop; // body for Safari
|
57 |
-
var desiredOffset =
|
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():" "):(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))?" ":"")}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?" ":"")+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||" ",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||" ");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…</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():" "):(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))?" ":"")}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?" ":"")+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="
|
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: "#
|
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(
|
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("
|
254 |
|
255 |
/* CLICK CANCEL BUTTON functionality */
|
256 |
-
original_element.children("
|
257 |
|
258 |
/* CLICK SAVE BUTTON functionality */
|
259 |
-
original_element.children("
|
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("
|
266 |
/* if on_blur is set to cancel, set the cancel funcion */
|
267 |
else
|
268 |
-
original_element.children("
|
269 |
}
|
270 |
|
271 |
/* hit esc key */
|
@@ -275,7 +276,7 @@ jQuery.fn.editInPlace = function(options) {
|
|
275 |
}
|
276 |
});
|
277 |
|
278 |
-
original_element.
|
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:"#
|
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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");};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(
|
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("
|
22 |
-
original_element.children("
|
23 |
-
original_element.children("
|
24 |
-
jQuery(document).keyup(function(event){if(event.keyCode==27){cancelAction();}});original_element.
|
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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");};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,'&').replace(/ /g,' ').replace(/<|>/g,'>').replace(/\n/g,'<br />');var twinContent=$twin.html();if(textareaContent+' '!=twinContent){$twin.html(textareaContent+' ');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,
|
5 |
Requires at least: 2.8
|
6 |
-
Tested up to:
|
7 |
-
Stable tag: 1.
|
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 "
|
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 |
-
|
52 |
|
53 |
-
[Formidable Pro Screenshots](http://blog.strategy11.com/formidablepro/ "Formidable Pro Screenshots")
|
54 |
|
55 |
== Frequently Asked Questions ==
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|