Form Maker by WD – user-friendly drag & drop Form Builder plugin - Version 1.10.4

Version Description

Fixed: Conflict with Yoast SEO plugin
Fixed: Line breaks in textarea after incorrect captcha

Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 Form Maker by WD – user-friendly drag & drop Form Builder plugin
Version 1.10.4
Comparing to
See all releases

Code changes from version 1.10.3 to 1.10.4

Files changed (106) hide show
  1. admin/controllers/FMControllerBlocked_ips_fm.php +147 -147
  2. admin/controllers/FMControllerFormMakerEditCSS.php +97 -97
  3. admin/controllers/FMControllerFormMakerPreview.php +42 -42
  4. admin/controllers/FMControllerFormMakerSQLMapping.php +111 -111
  5. admin/controllers/FMControllerFormMakerSubmits.php +42 -42
  6. admin/controllers/FMControllerFormmakerwdcaptcha.php +42 -42
  7. admin/controllers/FMControllerFormmakerwdmathcaptcha.php +42 -42
  8. admin/controllers/FMControllerFormmakerwindow.php +42 -42
  9. admin/controllers/FMControllerFromeditcountryinpopup.php +42 -42
  10. admin/controllers/FMControllerFromipinfoinpopup.php +42 -42
  11. admin/controllers/FMControllerFrommapeditinpopup.php +42 -42
  12. admin/controllers/FMControllerGenerete_csv.php +42 -42
  13. admin/controllers/FMControllerGenerete_xml.php +42 -42
  14. admin/controllers/FMControllerSelect_data_from_db.php +69 -69
  15. admin/controllers/FMControllerShow_matrix.php +42 -42
  16. admin/controllers/FMControllerThemes_fm.php +188 -188
  17. admin/controllers/FMControllerUninstall_fm.php +57 -57
  18. admin/controllers/FMControllerWidget.php +60 -60
  19. admin/models/FMModelBlocked_ips_fm.php +74 -74
  20. admin/models/FMModelFormMakerEditCSS.php +41 -41
  21. admin/models/FMModelFormMakerPreview.php +41 -41
  22. admin/models/FMModelFormMakerSQLMapping.php +120 -120
  23. admin/models/FMModelFormMakerSubmits.php +42 -42
  24. admin/models/FMModelFormmakerwdcaptcha.php +30 -30
  25. admin/models/FMModelFormmakerwdmathcaptcha.php +30 -30
  26. admin/models/FMModelFromeditcountryinpopup.php +30 -30
  27. admin/models/FMModelFromipinfoinpopup.php +30 -30
  28. admin/models/FMModelFrommapeditinpopup.php +30 -30
  29. admin/models/FMModelGoptions_fm.php +29 -29
  30. admin/models/FMModelSelect_data_from_db.php +110 -110
  31. admin/models/FMModelShow_matrix.php +30 -30
  32. admin/models/FMModelThemes_fm.php +90 -90
  33. admin/models/FMModelWidget.php +37 -37
  34. admin/views/FMViewFormMakerEditCSS.php +134 -134
  35. admin/views/FMViewFormMakerSQLMapping.php +1466 -1466
  36. admin/views/FMViewFormMakerSubmits.php +118 -118
  37. admin/views/FMViewFormmakerwdcaptcha.php +93 -93
  38. admin/views/FMViewFormmakerwdmathcaptcha.php +122 -122
  39. admin/views/FMViewFromeditcountryinpopup.php +184 -184
  40. admin/views/FMViewFromipinfoinpopup.php +100 -100
  41. admin/views/FMViewFrommapeditinpopup.php +65 -65
  42. admin/views/FMViewGenerete_csv.php +94 -94
  43. admin/views/FMViewGenerete_xml.php +85 -85
  44. admin/views/FMViewShow_matrix.php +126 -126
  45. admin/views/FMViewWidget.php +82 -82
  46. css/calendar-jos.css +208 -208
  47. css/codemirror.css +168 -168
  48. css/form_maker_first.css +173 -173
  49. css/form_maker_layout.css +36 -36
  50. css/jquery-ui-1.10.3.custom.css +1177 -1177
  51. css/jquery-ui-spinner.css +1178 -1178
  52. featured/admin.css +736 -736
  53. featured/featured_themes.css +177 -177
  54. featured/featured_themes.php +104 -104
  55. form-maker.php +2 -4
  56. form_maker_notices_class.php +246 -246
  57. frontend/controllers/FMControllerForm_maker.php +45 -45
  58. frontend/controllers/FMControllerForm_submissions.php +123 -123
  59. frontend/controllers/FMControllerVerify_email.php +53 -53
  60. frontend/models/FMModelForm_submissions.php +295 -295
  61. frontend/models/FMModelVerify_email.php +114 -114
  62. frontend/views/FMViewForm_maker.php +2 -2
  63. frontend/views/FMViewVerify_email.php +36 -36
  64. images/01/01/index.html +1 -1
  65. images/01/02/index.html +1 -1
  66. images/01/03/index.html +1 -1
  67. images/01/index.html +1 -1
  68. images/02/01/index.html +1 -1
  69. images/02/02/index.html +1 -1
  70. images/02/03/index.html +1 -1
  71. images/02/index.html +1 -1
  72. images/03/01/index.html +1 -1
  73. images/03/02/index.html +1 -1
  74. images/03/03/index.html +1 -1
  75. images/03/index.html +1 -1
  76. images/04/01/index.html +1 -1
  77. images/04/02/index.html +1 -1
  78. images/04/03/index.html +1 -1
  79. images/04/index.html +1 -1
  80. images/05/01/index.html +1 -1
  81. images/05/02/index.html +1 -1
  82. images/05/03/index.html +1 -1
  83. images/05/index.html +1 -1
  84. images/06/01/index.html +1 -1
  85. images/06/index.html +1 -1
  86. images/07/index.html +1 -1
  87. images/08/index.html +1 -1
  88. images/09/01/index.html +1 -1
  89. images/09/02/index.html +1 -1
  90. images/09/03/index.html +1 -1
  91. images/09/index.html +1 -1
  92. images/10/01/index.html +1 -1
  93. images/10/02/index.html +1 -1
  94. images/10/index.html +1 -1
  95. images/flags/index.html +1 -1
  96. js/calendar/calendar.js +35 -35
  97. js/fancybox/jquery.fancybox.css +273 -273
  98. js/fancybox/jquery.fancybox.pack.js +45 -45
  99. js/file-upload.js +0 -79
  100. js/form_maker_editor_button.js +21 -21
  101. js/form_maker_submissions.js +94 -94
  102. js/if_gmap_back_end.js +226 -226
  103. js/if_gmap_front_end.js +177 -177
  104. js/jelly.min.js +0 -44
  105. js/layout/clike.js +271 -271
  106. js/layout/codemirror.js +0 -1503
admin/controllers/FMControllerBlocked_ips_fm.php CHANGED
@@ -1,148 +1,148 @@
1
- <?php
2
-
3
- class FMControllerBlocked_ips_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = WDW_FM_Library::get('task');
23
- $id = (int)WDW_FM_Library::get('current_id', 0);
24
- $message = WDW_FM_Library::get('message');
25
- echo WDW_FM_Library::message_id($message);
26
- if (method_exists($this, $task)) {
27
- check_admin_referer('nonce_fm', 'nonce_fm');
28
- $this->$task($id);
29
- }
30
- else {
31
- $this->display();
32
- }
33
- }
34
-
35
- public function display() {
36
- require_once WD_FM_DIR . "/admin/models/FMModelBlocked_ips_fm.php";
37
- $model = new FMModelBlocked_ips_fm();
38
-
39
- require_once WD_FM_DIR . "/admin/views/FMViewBlocked_ips_fm.php";
40
- $view = new FMViewBlocked_ips_fm($model);
41
- $view->display();
42
- }
43
-
44
- public function save() {
45
- $message = $this->save_db();
46
- // $this->display();
47
- $page = WDW_FM_Library::get('page');
48
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
49
- }
50
-
51
- public function save_db() {
52
- global $wpdb;
53
- $id = (isset($_POST['current_id']) ? (int) $_POST['current_id'] : 0);
54
- $ip = (isset($_POST['ip']) ? esc_html(stripslashes($_POST['ip'])) : '');
55
- if ($id != 0) {
56
- $save = $wpdb->update($wpdb->prefix . 'formmaker_blocked', array(
57
- 'ip' => $ip,
58
- ), array('id' => $id));
59
- }
60
- else {
61
- $save = $wpdb->insert($wpdb->prefix . 'formmaker_blocked', array(
62
- 'ip' => $ip,
63
- ), array(
64
- '%s',
65
- ));
66
- }
67
- if ($save !== FALSE) {
68
- $message = 1;
69
- }
70
- else {
71
- $message = 2;
72
- }
73
- }
74
-
75
- public function save_all() {
76
- global $wpdb;
77
- $flag = FALSE;
78
- $ips_id_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_blocked');
79
- foreach ($ips_id_col as $ip_id) {
80
- if (isset($_POST['ip' . $ip_id])) {
81
- $ip = esc_html(stripslashes($_POST['ip' . $ip_id]));
82
- if ($ip == '') {
83
- $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $ip_id));
84
- }
85
- else {
86
- $flag = TRUE;
87
- $wpdb->update($wpdb->prefix . 'formmaker_blocked', array(
88
- 'ip' => $ip,
89
- ), array('id' => $ip_id));
90
- }
91
- }
92
- }
93
- if ($flag) {
94
- $message = 1;
95
- }
96
- else {
97
- $message = 0;
98
- }
99
- // $this->display();
100
- $page = WDW_FM_Library::get('page');
101
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
102
- }
103
-
104
- public function delete($id) {
105
- global $wpdb;
106
- $query = $wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $id);
107
- if ($wpdb->query($query)) {
108
- $message = 3;
109
- }
110
- else {
111
- $message = 2;
112
- }
113
- // $this->display();
114
- $page = WDW_FM_Library::get('page');
115
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
116
- }
117
-
118
- public function delete_all() {
119
- global $wpdb;
120
- $flag = FALSE;
121
- $ips_id_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_blocked');
122
- foreach ($ips_id_col as $ip_id) {
123
- if (isset($_POST['check_' . $ip_id])) {
124
- $flag = TRUE;
125
- $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $ip_id));
126
- }
127
- }
128
- if ($flag) {
129
- $message = 5;
130
- }
131
- else {
132
- $message = 2;
133
- }
134
- // $this->display();
135
- $page = WDW_FM_Library::get('page');
136
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
137
- }
138
-
139
- ////////////////////////////////////////////////////////////////////////////////////////
140
- // Getters & Setters //
141
- ////////////////////////////////////////////////////////////////////////////////////////
142
- ////////////////////////////////////////////////////////////////////////////////////////
143
- // Private Methods //
144
- ////////////////////////////////////////////////////////////////////////////////////////
145
- ////////////////////////////////////////////////////////////////////////////////////////
146
- // Listeners //
147
- ////////////////////////////////////////////////////////////////////////////////////////
148
  }
1
+ <?php
2
+
3
+ class FMControllerBlocked_ips_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = WDW_FM_Library::get('task');
23
+ $id = (int)WDW_FM_Library::get('current_id', 0);
24
+ $message = WDW_FM_Library::get('message');
25
+ echo WDW_FM_Library::message_id($message);
26
+ if (method_exists($this, $task)) {
27
+ check_admin_referer('nonce_fm', 'nonce_fm');
28
+ $this->$task($id);
29
+ }
30
+ else {
31
+ $this->display();
32
+ }
33
+ }
34
+
35
+ public function display() {
36
+ require_once WD_FM_DIR . "/admin/models/FMModelBlocked_ips_fm.php";
37
+ $model = new FMModelBlocked_ips_fm();
38
+
39
+ require_once WD_FM_DIR . "/admin/views/FMViewBlocked_ips_fm.php";
40
+ $view = new FMViewBlocked_ips_fm($model);
41
+ $view->display();
42
+ }
43
+
44
+ public function save() {
45
+ $message = $this->save_db();
46
+ // $this->display();
47
+ $page = WDW_FM_Library::get('page');
48
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
49
+ }
50
+
51
+ public function save_db() {
52
+ global $wpdb;
53
+ $id = (isset($_POST['current_id']) ? (int) $_POST['current_id'] : 0);
54
+ $ip = (isset($_POST['ip']) ? esc_html(stripslashes($_POST['ip'])) : '');
55
+ if ($id != 0) {
56
+ $save = $wpdb->update($wpdb->prefix . 'formmaker_blocked', array(
57
+ 'ip' => $ip,
58
+ ), array('id' => $id));
59
+ }
60
+ else {
61
+ $save = $wpdb->insert($wpdb->prefix . 'formmaker_blocked', array(
62
+ 'ip' => $ip,
63
+ ), array(
64
+ '%s',
65
+ ));
66
+ }
67
+ if ($save !== FALSE) {
68
+ $message = 1;
69
+ }
70
+ else {
71
+ $message = 2;
72
+ }
73
+ }
74
+
75
+ public function save_all() {
76
+ global $wpdb;
77
+ $flag = FALSE;
78
+ $ips_id_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_blocked');
79
+ foreach ($ips_id_col as $ip_id) {
80
+ if (isset($_POST['ip' . $ip_id])) {
81
+ $ip = esc_html(stripslashes($_POST['ip' . $ip_id]));
82
+ if ($ip == '') {
83
+ $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $ip_id));
84
+ }
85
+ else {
86
+ $flag = TRUE;
87
+ $wpdb->update($wpdb->prefix . 'formmaker_blocked', array(
88
+ 'ip' => $ip,
89
+ ), array('id' => $ip_id));
90
+ }
91
+ }
92
+ }
93
+ if ($flag) {
94
+ $message = 1;
95
+ }
96
+ else {
97
+ $message = 0;
98
+ }
99
+ // $this->display();
100
+ $page = WDW_FM_Library::get('page');
101
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
102
+ }
103
+
104
+ public function delete($id) {
105
+ global $wpdb;
106
+ $query = $wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $id);
107
+ if ($wpdb->query($query)) {
108
+ $message = 3;
109
+ }
110
+ else {
111
+ $message = 2;
112
+ }
113
+ // $this->display();
114
+ $page = WDW_FM_Library::get('page');
115
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
116
+ }
117
+
118
+ public function delete_all() {
119
+ global $wpdb;
120
+ $flag = FALSE;
121
+ $ips_id_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_blocked');
122
+ foreach ($ips_id_col as $ip_id) {
123
+ if (isset($_POST['check_' . $ip_id])) {
124
+ $flag = TRUE;
125
+ $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $ip_id));
126
+ }
127
+ }
128
+ if ($flag) {
129
+ $message = 5;
130
+ }
131
+ else {
132
+ $message = 2;
133
+ }
134
+ // $this->display();
135
+ $page = WDW_FM_Library::get('page');
136
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
137
+ }
138
+
139
+ ////////////////////////////////////////////////////////////////////////////////////////
140
+ // Getters & Setters //
141
+ ////////////////////////////////////////////////////////////////////////////////////////
142
+ ////////////////////////////////////////////////////////////////////////////////////////
143
+ // Private Methods //
144
+ ////////////////////////////////////////////////////////////////////////////////////////
145
+ ////////////////////////////////////////////////////////////////////////////////////////
146
+ // Listeners //
147
+ ////////////////////////////////////////////////////////////////////////////////////////
148
  }
admin/controllers/FMControllerFormMakerEditCSS.php CHANGED
@@ -1,98 +1,98 @@
1
- <?php
2
-
3
- class FMControllerFormMakerEditCSS {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = ((isset($_POST['task'])) ? esc_html($_POST['task']) : '');
23
- $id = ((isset($_POST['current_id'])) ? (int)esc_html($_POST['current_id']) : 0);
24
- if (method_exists($this, $task)) {
25
- $this->$task($id);
26
- }
27
- else {
28
- $this->display();
29
- }
30
- }
31
-
32
- public function display() {
33
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerEditCSS.php";
34
- $model = new FMModelFormMakerEditCSS();
35
-
36
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerEditCSS.php";
37
- $view = new FMViewFormMakerEditCSS($model);
38
- $view->display();
39
- }
40
-
41
- public function save() {
42
- $this->update_db();
43
- }
44
-
45
- public function apply() {
46
- $this->update_db();
47
- $this->display();
48
- }
49
-
50
- public function save_as_new() {
51
- $this->insert_db();
52
- }
53
-
54
- public function insert_db() {
55
- global $wpdb;
56
- $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
57
- $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
58
- $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
59
- $save = $wpdb->insert($wpdb->prefix . 'formmaker_themes', array(
60
- 'title' => $title,
61
- 'css' => $css,
62
- 'default' => $default,
63
- ), array(
64
- '%s',
65
- '%s',
66
- '%d',
67
- ));
68
- }
69
-
70
- public function update_db() {
71
- global $wpdb;
72
- $id = (isset($_POST['current_id']) ? (int) esc_html(stripslashes( $_POST['current_id'])) : 0);
73
- $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
74
- $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
75
- $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
76
- $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array(
77
- 'title' => $title,
78
- 'css' => $css,
79
- 'default' => $default,
80
- ), array('id' => $id));
81
- if ($save !== FALSE) {
82
- echo WDW_FM_Library::message('Item Succesfully Saved.', 'updated');
83
- }
84
- else {
85
- echo WDW_FM_Library::message('Error. Please install plugin again.', 'error');
86
- }
87
- }
88
-
89
- ////////////////////////////////////////////////////////////////////////////////////////
90
- // Getters & Setters //
91
- ////////////////////////////////////////////////////////////////////////////////////////
92
- ////////////////////////////////////////////////////////////////////////////////////////
93
- // Private Methods //
94
- ////////////////////////////////////////////////////////////////////////////////////////
95
- ////////////////////////////////////////////////////////////////////////////////////////
96
- // Listeners //
97
- ////////////////////////////////////////////////////////////////////////////////////////
98
  }
1
+ <?php
2
+
3
+ class FMControllerFormMakerEditCSS {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = ((isset($_POST['task'])) ? esc_html($_POST['task']) : '');
23
+ $id = ((isset($_POST['current_id'])) ? (int)esc_html($_POST['current_id']) : 0);
24
+ if (method_exists($this, $task)) {
25
+ $this->$task($id);
26
+ }
27
+ else {
28
+ $this->display();
29
+ }
30
+ }
31
+
32
+ public function display() {
33
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerEditCSS.php";
34
+ $model = new FMModelFormMakerEditCSS();
35
+
36
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerEditCSS.php";
37
+ $view = new FMViewFormMakerEditCSS($model);
38
+ $view->display();
39
+ }
40
+
41
+ public function save() {
42
+ $this->update_db();
43
+ }
44
+
45
+ public function apply() {
46
+ $this->update_db();
47
+ $this->display();
48
+ }
49
+
50
+ public function save_as_new() {
51
+ $this->insert_db();
52
+ }
53
+
54
+ public function insert_db() {
55
+ global $wpdb;
56
+ $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
57
+ $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
58
+ $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
59
+ $save = $wpdb->insert($wpdb->prefix . 'formmaker_themes', array(
60
+ 'title' => $title,
61
+ 'css' => $css,
62
+ 'default' => $default,
63
+ ), array(
64
+ '%s',
65
+ '%s',
66
+ '%d',
67
+ ));
68
+ }
69
+
70
+ public function update_db() {
71
+ global $wpdb;
72
+ $id = (isset($_POST['current_id']) ? (int) esc_html(stripslashes( $_POST['current_id'])) : 0);
73
+ $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
74
+ $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
75
+ $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
76
+ $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array(
77
+ 'title' => $title,
78
+ 'css' => $css,
79
+ 'default' => $default,
80
+ ), array('id' => $id));
81
+ if ($save !== FALSE) {
82
+ echo WDW_FM_Library::message('Item Succesfully Saved.', 'updated');
83
+ }
84
+ else {
85
+ echo WDW_FM_Library::message('Error. Please install plugin again.', 'error');
86
+ }
87
+ }
88
+
89
+ ////////////////////////////////////////////////////////////////////////////////////////
90
+ // Getters & Setters //
91
+ ////////////////////////////////////////////////////////////////////////////////////////
92
+ ////////////////////////////////////////////////////////////////////////////////////////
93
+ // Private Methods //
94
+ ////////////////////////////////////////////////////////////////////////////////////////
95
+ ////////////////////////////////////////////////////////////////////////////////////////
96
+ // Listeners //
97
+ ////////////////////////////////////////////////////////////////////////////////////////
98
  }
admin/controllers/FMControllerFormMakerPreview.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFormMakerPreview {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerPreview.php";
27
- $model = new FMModelFormMakerPreview();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerPreview.php";
30
- $view = new FMViewFormMakerPreview($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFormMakerPreview {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerPreview.php";
27
+ $model = new FMModelFormMakerPreview();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerPreview.php";
30
+ $view = new FMViewFormMakerPreview($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFormMakerSQLMapping.php CHANGED
@@ -1,112 +1,112 @@
1
- <?php
2
-
3
- class FMControllerFormMakerSQLMapping {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = ((isset($_GET['task'])) ? esc_html($_GET['task']) : 0);
23
- $id = ((isset($_GET['id'])) ? (int) $_GET['id'] : 0);
24
- $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
25
- if ($task && method_exists($this, $task)) {
26
- $this->$task($form_id);
27
- }
28
- else {
29
- if ($id) {
30
- $this->edit_query($id, $form_id);
31
- }
32
- else {
33
- $this->add_query($form_id);
34
- }
35
- }
36
- }
37
-
38
- public function add_query($form_id) {
39
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
40
- $model = new FMModelFormMakerSQLMapping();
41
-
42
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
43
- $view = new FMViewFormMakerSQLMapping($model);
44
- $view->add_query($form_id);
45
- }
46
-
47
- public function edit_query($id, $form_id) {
48
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
49
- $model = new FMModelFormMakerSQLMapping();
50
-
51
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
52
- $view = new FMViewFormMakerSQLMapping($model);
53
- $view->edit_query($id, $form_id);
54
- }
55
-
56
- public function db_tables($form_id) {
57
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
58
- $model = new FMModelFormMakerSQLMapping();
59
-
60
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
61
- $view = new FMViewFormMakerSQLMapping($model);
62
- $view->db_tables($form_id);
63
- }
64
-
65
- public function db_table_struct($form_id) {
66
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
67
- $model = new FMModelFormMakerSQLMapping();
68
-
69
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
70
- $view = new FMViewFormMakerSQLMapping($model);
71
- $view->db_table_struct($form_id);
72
- }
73
-
74
- public function save_query() {
75
- global $wpdb;
76
- $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
77
- $query = ((isset($_POST['query'])) ? stripslashes(wp_specialchars_decode($_POST['query'])) : "");
78
- $details = ((isset($_POST['details'])) ? esc_html($_POST['details']) : "");
79
- $save = $wpdb->insert($wpdb->prefix . 'formmaker_query', array(
80
- 'form_id' => $form_id,
81
- 'query' => $query,
82
- 'details' => $details,
83
- ), array(
84
- '%d',
85
- '%s',
86
- '%s',
87
- ));
88
- }
89
-
90
- public function update_query() {
91
- global $wpdb;
92
- $id = ((isset($_GET['id'])) ? (int) $_GET['id'] : 0);
93
- $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
94
- $query = ((isset($_POST['query'])) ? stripslashes(wp_specialchars_decode($_POST['query'])) : "");
95
- $details = ((isset($_POST['details'])) ? esc_html($_POST['details']) : "");
96
- $save = $wpdb->update($wpdb->prefix . 'formmaker_query', array(
97
- 'form_id' => $form_id,
98
- 'query' => $query,
99
- 'details' => $details,
100
- ), array('id' => $id));
101
- }
102
-
103
- ////////////////////////////////////////////////////////////////////////////////////////
104
- // Getters & Setters //
105
- ////////////////////////////////////////////////////////////////////////////////////////
106
- ////////////////////////////////////////////////////////////////////////////////////////
107
- // Private Methods //
108
- ////////////////////////////////////////////////////////////////////////////////////////
109
- ////////////////////////////////////////////////////////////////////////////////////////
110
- // Listeners //
111
- ////////////////////////////////////////////////////////////////////////////////////////
112
  }
1
+ <?php
2
+
3
+ class FMControllerFormMakerSQLMapping {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = ((isset($_GET['task'])) ? esc_html($_GET['task']) : 0);
23
+ $id = ((isset($_GET['id'])) ? (int) $_GET['id'] : 0);
24
+ $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
25
+ if ($task && method_exists($this, $task)) {
26
+ $this->$task($form_id);
27
+ }
28
+ else {
29
+ if ($id) {
30
+ $this->edit_query($id, $form_id);
31
+ }
32
+ else {
33
+ $this->add_query($form_id);
34
+ }
35
+ }
36
+ }
37
+
38
+ public function add_query($form_id) {
39
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
40
+ $model = new FMModelFormMakerSQLMapping();
41
+
42
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
43
+ $view = new FMViewFormMakerSQLMapping($model);
44
+ $view->add_query($form_id);
45
+ }
46
+
47
+ public function edit_query($id, $form_id) {
48
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
49
+ $model = new FMModelFormMakerSQLMapping();
50
+
51
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
52
+ $view = new FMViewFormMakerSQLMapping($model);
53
+ $view->edit_query($id, $form_id);
54
+ }
55
+
56
+ public function db_tables($form_id) {
57
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
58
+ $model = new FMModelFormMakerSQLMapping();
59
+
60
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
61
+ $view = new FMViewFormMakerSQLMapping($model);
62
+ $view->db_tables($form_id);
63
+ }
64
+
65
+ public function db_table_struct($form_id) {
66
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSQLMapping.php";
67
+ $model = new FMModelFormMakerSQLMapping();
68
+
69
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSQLMapping.php";
70
+ $view = new FMViewFormMakerSQLMapping($model);
71
+ $view->db_table_struct($form_id);
72
+ }
73
+
74
+ public function save_query() {
75
+ global $wpdb;
76
+ $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
77
+ $query = ((isset($_POST['query'])) ? stripslashes(wp_specialchars_decode($_POST['query'])) : "");
78
+ $details = ((isset($_POST['details'])) ? esc_html($_POST['details']) : "");
79
+ $save = $wpdb->insert($wpdb->prefix . 'formmaker_query', array(
80
+ 'form_id' => $form_id,
81
+ 'query' => $query,
82
+ 'details' => $details,
83
+ ), array(
84
+ '%d',
85
+ '%s',
86
+ '%s',
87
+ ));
88
+ }
89
+
90
+ public function update_query() {
91
+ global $wpdb;
92
+ $id = ((isset($_GET['id'])) ? (int) $_GET['id'] : 0);
93
+ $form_id = ((isset($_GET['form_id'])) ? (int) $_GET['form_id'] : 0);
94
+ $query = ((isset($_POST['query'])) ? stripslashes(wp_specialchars_decode($_POST['query'])) : "");
95
+ $details = ((isset($_POST['details'])) ? esc_html($_POST['details']) : "");
96
+ $save = $wpdb->update($wpdb->prefix . 'formmaker_query', array(
97
+ 'form_id' => $form_id,
98
+ 'query' => $query,
99
+ 'details' => $details,
100
+ ), array('id' => $id));
101
+ }
102
+
103
+ ////////////////////////////////////////////////////////////////////////////////////////
104
+ // Getters & Setters //
105
+ ////////////////////////////////////////////////////////////////////////////////////////
106
+ ////////////////////////////////////////////////////////////////////////////////////////
107
+ // Private Methods //
108
+ ////////////////////////////////////////////////////////////////////////////////////////
109
+ ////////////////////////////////////////////////////////////////////////////////////////
110
+ // Listeners //
111
+ ////////////////////////////////////////////////////////////////////////////////////////
112
  }
admin/controllers/FMControllerFormMakerSubmits.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFormMakerSubmits {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSubmits.php";
27
- $model = new FMModelFormMakerSubmits();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSubmits.php";
30
- $view = new FMViewFormMakerSubmits($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFormMakerSubmits {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFormMakerSubmits.php";
27
+ $model = new FMModelFormMakerSubmits();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFormMakerSubmits.php";
30
+ $view = new FMViewFormMakerSubmits($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFormmakerwdcaptcha.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFormmakerwdcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwdcaptcha.php";
27
- $model = new FMModelFormmakerwdcaptcha();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwdcaptcha.php";
30
- $view = new FMViewFormmakerwdcaptcha($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFormmakerwdcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwdcaptcha.php";
27
+ $model = new FMModelFormmakerwdcaptcha();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwdcaptcha.php";
30
+ $view = new FMViewFormmakerwdcaptcha($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFormmakerwdmathcaptcha.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFormmakerwdmathcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwdmathcaptcha.php";
27
- $model = new FMModelFormmakerwdmathcaptcha();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwdmathcaptcha.php";
30
- $view = new FMViewFormmakerwdmathcaptcha($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFormmakerwdmathcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwdmathcaptcha.php";
27
+ $model = new FMModelFormmakerwdmathcaptcha();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwdmathcaptcha.php";
30
+ $view = new FMViewFormmakerwdmathcaptcha($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFormmakerwindow.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFormmakerwindow {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwindow.php";
27
- $model = new FMModelFormmakerwindow();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwindow.php";
30
- $view = new FMViewFormmakerwindow($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFormmakerwindow {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFormmakerwindow.php";
27
+ $model = new FMModelFormmakerwindow();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFormmakerwindow.php";
30
+ $view = new FMViewFormmakerwindow($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFromeditcountryinpopup.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFromeditcountryinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFromeditcountryinpopup.php";
27
- $model = new FMModelFromeditcountryinpopup();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFromeditcountryinpopup.php";
30
- $view = new FMViewFromeditcountryinpopup($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFromeditcountryinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFromeditcountryinpopup.php";
27
+ $model = new FMModelFromeditcountryinpopup();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFromeditcountryinpopup.php";
30
+ $view = new FMViewFromeditcountryinpopup($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFromipinfoinpopup.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFromipinfoinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFromipinfoinpopup.php";
27
- $model = new FMModelFromipinfoinpopup();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFromipinfoinpopup.php";
30
- $view = new FMViewFromipinfoinpopup($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFromipinfoinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFromipinfoinpopup.php";
27
+ $model = new FMModelFromipinfoinpopup();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFromipinfoinpopup.php";
30
+ $view = new FMViewFromipinfoinpopup($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerFrommapeditinpopup.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerFrommapeditinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelFrommapeditinpopup.php";
27
- $model = new FMModelFrommapeditinpopup();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewFrommapeditinpopup.php";
30
- $view = new FMViewFrommapeditinpopup($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerFrommapeditinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelFrommapeditinpopup.php";
27
+ $model = new FMModelFrommapeditinpopup();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewFrommapeditinpopup.php";
30
+ $view = new FMViewFrommapeditinpopup($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerGenerete_csv.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerGenerete_csv {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelGenerete_csv.php";
27
- $model = new FMModelGenerete_csv();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewGenerete_csv.php";
30
- $view = new FMViewGenerete_csv($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerGenerete_csv {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelGenerete_csv.php";
27
+ $model = new FMModelGenerete_csv();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewGenerete_csv.php";
30
+ $view = new FMViewGenerete_csv($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerGenerete_xml.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerGenerete_xml {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelGenerete_xml.php";
27
- $model = new FMModelGenerete_xml();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewGenerete_xml.php";
30
- $view = new FMViewGenerete_xml($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerGenerete_xml {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelGenerete_xml.php";
27
+ $model = new FMModelGenerete_xml();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewGenerete_xml.php";
30
+ $view = new FMViewGenerete_xml($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerSelect_data_from_db.php CHANGED
@@ -1,70 +1,70 @@
1
- <?php
2
-
3
- class FMControllerSelect_data_from_db {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = ((isset($_GET['task'])) ? esc_html($_GET['task']) : 0);
23
- $id = ((isset($_GET['id'])) ? (int)esc_html($_GET['id']) : 0);
24
- $form_id = ((isset($_GET['form_id'])) ? (int)esc_html($_GET['form_id']) : 0);
25
- $field_id = ((isset($_GET['field_id'])) ? esc_html($_GET['field_id']) : 0);
26
- $field_type = ((isset($_GET['field_type'])) ? esc_html($_GET['field_type']) : 0);
27
- $value_disabled = ((isset($_GET['value_disabled'])) ? esc_html($_GET['value_disabled']) : 0);
28
- if ($task && method_exists($this, $task)) {
29
- $this->$task($form_id,$field_type="");
30
- }
31
- else
32
- $this->display($id, $field_id, $field_type, $value_disabled,$form_id);
33
- }
34
-
35
- public function display($id, $field_id, $field_type, $value_disabled,$form_id) {
36
- require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
37
- $model = new FMModelSelect_data_from_db();
38
-
39
- require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
40
- $view = new FMViewSelect_data_from_db($model);
41
- $view->display($id, $field_id, $field_type, $value_disabled,$form_id);
42
- }
43
-
44
- public function db_tables($form_id,$field_type) {
45
- require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
46
- $model = new FMModelSelect_data_from_db();
47
-
48
- require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
49
- $view = new FMViewSelect_data_from_db($model);
50
- $view->db_tables((int)$form_id, $field_type);
51
- }
52
- public function db_table_struct_select($form_id,$field_type) {
53
- require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
54
- $model = new FMModelSelect_data_from_db();
55
-
56
- require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
57
- $view = new FMViewSelect_data_from_db($model);
58
- $view->db_table_struct_select((int)$form_id,$field_type);
59
- }
60
-
61
- ////////////////////////////////////////////////////////////////////////////////////////
62
- // Getters & Setters //
63
- ////////////////////////////////////////////////////////////////////////////////////////
64
- ////////////////////////////////////////////////////////////////////////////////////////
65
- // Private Methods //
66
- ////////////////////////////////////////////////////////////////////////////////////////
67
- ////////////////////////////////////////////////////////////////////////////////////////
68
- // Listeners //
69
- ////////////////////////////////////////////////////////////////////////////////////////
70
  }
1
+ <?php
2
+
3
+ class FMControllerSelect_data_from_db {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = ((isset($_GET['task'])) ? esc_html($_GET['task']) : 0);
23
+ $id = ((isset($_GET['id'])) ? (int)esc_html($_GET['id']) : 0);
24
+ $form_id = ((isset($_GET['form_id'])) ? (int)esc_html($_GET['form_id']) : 0);
25
+ $field_id = ((isset($_GET['field_id'])) ? esc_html($_GET['field_id']) : 0);
26
+ $field_type = ((isset($_GET['field_type'])) ? esc_html($_GET['field_type']) : 0);
27
+ $value_disabled = ((isset($_GET['value_disabled'])) ? esc_html($_GET['value_disabled']) : 0);
28
+ if ($task && method_exists($this, $task)) {
29
+ $this->$task($form_id,$field_type="");
30
+ }
31
+ else
32
+ $this->display($id, $field_id, $field_type, $value_disabled,$form_id);
33
+ }
34
+
35
+ public function display($id, $field_id, $field_type, $value_disabled,$form_id) {
36
+ require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
37
+ $model = new FMModelSelect_data_from_db();
38
+
39
+ require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
40
+ $view = new FMViewSelect_data_from_db($model);
41
+ $view->display($id, $field_id, $field_type, $value_disabled,$form_id);
42
+ }
43
+
44
+ public function db_tables($form_id,$field_type) {
45
+ require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
46
+ $model = new FMModelSelect_data_from_db();
47
+
48
+ require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
49
+ $view = new FMViewSelect_data_from_db($model);
50
+ $view->db_tables((int)$form_id, $field_type);
51
+ }
52
+ public function db_table_struct_select($form_id,$field_type) {
53
+ require_once WD_FM_DIR . "/admin/models/FMModelSelect_data_from_db.php";
54
+ $model = new FMModelSelect_data_from_db();
55
+
56
+ require_once WD_FM_DIR . "/admin/views/FMViewSelect_data_from_db.php";
57
+ $view = new FMViewSelect_data_from_db($model);
58
+ $view->db_table_struct_select((int)$form_id,$field_type);
59
+ }
60
+
61
+ ////////////////////////////////////////////////////////////////////////////////////////
62
+ // Getters & Setters //
63
+ ////////////////////////////////////////////////////////////////////////////////////////
64
+ ////////////////////////////////////////////////////////////////////////////////////////
65
+ // Private Methods //
66
+ ////////////////////////////////////////////////////////////////////////////////////////
67
+ ////////////////////////////////////////////////////////////////////////////////////////
68
+ // Listeners //
69
+ ////////////////////////////////////////////////////////////////////////////////////////
70
  }
admin/controllers/FMControllerShow_matrix.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMControllerShow_matrix {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $this->display();
23
- }
24
-
25
- public function display() {
26
- require_once WD_FM_DIR . "/admin/models/FMModelShow_matrix.php";
27
- $model = new FMModelShow_matrix();
28
-
29
- require_once WD_FM_DIR . "/admin/views/FMViewShow_matrix.php";
30
- $view = new FMViewShow_matrix($model);
31
- $view->display();
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMControllerShow_matrix {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ require_once WD_FM_DIR . "/admin/models/FMModelShow_matrix.php";
27
+ $model = new FMModelShow_matrix();
28
+
29
+ require_once WD_FM_DIR . "/admin/views/FMViewShow_matrix.php";
30
+ $view = new FMViewShow_matrix($model);
31
+ $view->display();
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/controllers/FMControllerThemes_fm.php CHANGED
@@ -1,189 +1,189 @@
1
- <?php
2
-
3
- class FMControllerThemes_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = WDW_FM_Library::get('task');
23
- $id = (int)WDW_FM_Library::get('current_id', 0);
24
- $message = WDW_FM_Library::get('message');
25
- echo WDW_FM_Library::message_id($message);
26
- if (method_exists($this, $task)) {
27
- check_admin_referer('nonce_fm', 'nonce_fm');
28
- $this->$task($id);
29
- }
30
- else {
31
- $this->display();
32
- }
33
- }
34
-
35
- public function display() {
36
- require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
37
- $model = new FMModelThemes_fm();
38
-
39
- require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
40
- $view = new FMViewThemes_fm($model);
41
- $view->display();
42
- }
43
-
44
- public function add() {
45
- require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
46
- $model = new FMModelThemes_fm();
47
-
48
- require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
49
- $view = new FMViewThemes_fm($model);
50
- $view->edit(0, FALSE);
51
- }
52
-
53
- public function edit() {
54
- require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
55
- $model = new FMModelThemes_fm();
56
-
57
- require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
58
- $view = new FMViewThemes_fm($model);
59
- // $id = ((isset($_POST['current_id']) && esc_html($_POST['current_id']) != '') ? esc_html($_POST['current_id']) : 0);
60
- $id = (int)WDW_FM_Library::get('current_id', 0);
61
- $view->edit($id, FALSE);
62
- }
63
-
64
- public function save() {
65
- $message = $this->save_db();
66
- // $this->display();
67
- $page = WDW_FM_Library::get('page');
68
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
69
- }
70
-
71
- public function apply() {
72
- $message = $this->save_db();
73
- global $wpdb;
74
- // if (!isset($_POST['current_id']) || (esc_html($_POST['current_id']) == 0) || (esc_html($_POST['current_id']) == '')) {
75
-
76
- // }
77
- $id = (int) $wpdb->get_var('SELECT MAX(`id`) FROM ' . $wpdb->prefix . 'formmaker_themes');
78
- $current_id = (int)WDW_FM_Library::get('current_id', $id);
79
- $page = WDW_FM_Library::get('page');
80
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'edit', 'current_id' => $current_id, 'message' => $message), admin_url('admin.php')));
81
- // $this->edit();
82
- }
83
-
84
- public function save_db() {
85
- global $wpdb;
86
- // $id = (isset($_POST['current_id']) ? (int) esc_html(stripslashes( $_POST['current_id'])) : 0);
87
- $id = (int) WDW_FM_Library::get('current_id', 0);
88
- $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
89
- $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
90
- $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
91
- if ($id != 0) {
92
- $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array(
93
- 'title' => $title,
94
- 'css' => $css,
95
- 'default' => $default,
96
- ), array('id' => $id));
97
- }
98
- else {
99
- $save = $wpdb->insert($wpdb->prefix . 'formmaker_themes', array(
100
- 'title' => $title,
101
- 'css' => $css,
102
- 'default' => $default,
103
- ), array(
104
- '%s',
105
- '%s',
106
- '%d',
107
- ));
108
- }
109
- if ($save !== FALSE) {
110
- return 1;
111
- }
112
- else {
113
- return 2;
114
- }
115
- }
116
-
117
- public function delete($id) {
118
- global $wpdb;
119
- $isDefault = $wpdb->get_var($wpdb->prepare('SELECT `default` FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
120
- if ($isDefault) {
121
- $message = 4;
122
- }
123
- else {
124
- $query = $wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id);
125
- if ($wpdb->query($query)) {
126
- $message = 3;
127
- }
128
- else {
129
- $message = 2;
130
- }
131
- }
132
- // $this->display();
133
- $page = WDW_FM_Library::get('page');
134
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
135
- }
136
-
137
- public function delete_all() {
138
- global $wpdb;
139
- $flag = FALSE;
140
- $isDefault = FALSE;
141
- $theme_ids_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_themes');
142
- foreach ($theme_ids_col as $theme_id) {
143
- if (isset($_POST['check_' . $theme_id])) {
144
- $isDefault = $wpdb->get_var($wpdb->prepare('SELECT `default` FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $theme_id));
145
- if ($isDefault) {
146
- $message = 4;
147
- }
148
- else {
149
- $flag = TRUE;
150
- $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $theme_id));
151
- }
152
- }
153
- }
154
- if ($flag) {
155
- $message = 5;
156
- }
157
- else {
158
- $message = 6;
159
- }
160
- // $this->display();
161
- $page = WDW_FM_Library::get('page');
162
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
163
- }
164
-
165
- public function setdefault($id) {
166
- global $wpdb;
167
- $wpdb->update($wpdb->prefix . 'formmaker_themes', array('default' => 0), array('default' => 1));
168
- $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array('default' => 1), array('id' => $id));
169
- if ($save !== FALSE) {
170
- $message = 7;
171
- }
172
- else {
173
- $message = 2;
174
- }
175
- // $this->display();
176
- $page = WDW_FM_Library::get('page');
177
- WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
178
- }
179
-
180
- ////////////////////////////////////////////////////////////////////////////////////////
181
- // Getters & Setters //
182
- ////////////////////////////////////////////////////////////////////////////////////////
183
- ////////////////////////////////////////////////////////////////////////////////////////
184
- // Private Methods //
185
- ////////////////////////////////////////////////////////////////////////////////////////
186
- ////////////////////////////////////////////////////////////////////////////////////////
187
- // Listeners //
188
- ////////////////////////////////////////////////////////////////////////////////////////
189
  }
1
+ <?php
2
+
3
+ class FMControllerThemes_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = WDW_FM_Library::get('task');
23
+ $id = (int)WDW_FM_Library::get('current_id', 0);
24
+ $message = WDW_FM_Library::get('message');
25
+ echo WDW_FM_Library::message_id($message);
26
+ if (method_exists($this, $task)) {
27
+ check_admin_referer('nonce_fm', 'nonce_fm');
28
+ $this->$task($id);
29
+ }
30
+ else {
31
+ $this->display();
32
+ }
33
+ }
34
+
35
+ public function display() {
36
+ require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
37
+ $model = new FMModelThemes_fm();
38
+
39
+ require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
40
+ $view = new FMViewThemes_fm($model);
41
+ $view->display();
42
+ }
43
+
44
+ public function add() {
45
+ require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
46
+ $model = new FMModelThemes_fm();
47
+
48
+ require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
49
+ $view = new FMViewThemes_fm($model);
50
+ $view->edit(0, FALSE);
51
+ }
52
+
53
+ public function edit() {
54
+ require_once WD_FM_DIR . "/admin/models/FMModelThemes_fm.php";
55
+ $model = new FMModelThemes_fm();
56
+
57
+ require_once WD_FM_DIR . "/admin/views/FMViewThemes_fm.php";
58
+ $view = new FMViewThemes_fm($model);
59
+ // $id = ((isset($_POST['current_id']) && esc_html($_POST['current_id']) != '') ? esc_html($_POST['current_id']) : 0);
60
+ $id = (int)WDW_FM_Library::get('current_id', 0);
61
+ $view->edit($id, FALSE);
62
+ }
63
+
64
+ public function save() {
65
+ $message = $this->save_db();
66
+ // $this->display();
67
+ $page = WDW_FM_Library::get('page');
68
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
69
+ }
70
+
71
+ public function apply() {
72
+ $message = $this->save_db();
73
+ global $wpdb;
74
+ // if (!isset($_POST['current_id']) || (esc_html($_POST['current_id']) == 0) || (esc_html($_POST['current_id']) == '')) {
75
+
76
+ // }
77
+ $id = (int) $wpdb->get_var('SELECT MAX(`id`) FROM ' . $wpdb->prefix . 'formmaker_themes');
78
+ $current_id = (int)WDW_FM_Library::get('current_id', $id);
79
+ $page = WDW_FM_Library::get('page');
80
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'edit', 'current_id' => $current_id, 'message' => $message), admin_url('admin.php')));
81
+ // $this->edit();
82
+ }
83
+
84
+ public function save_db() {
85
+ global $wpdb;
86
+ // $id = (isset($_POST['current_id']) ? (int) esc_html(stripslashes( $_POST['current_id'])) : 0);
87
+ $id = (int) WDW_FM_Library::get('current_id', 0);
88
+ $title = (isset($_POST['title']) ? esc_html(stripslashes( $_POST['title'])) : '');
89
+ $css = (isset($_POST['css']) ? stripslashes(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $_POST['css'])) : '');
90
+ $default = (isset($_POST['default']) ? esc_html(stripslashes( $_POST['default'])) : 0);
91
+ if ($id != 0) {
92
+ $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array(
93
+ 'title' => $title,
94
+ 'css' => $css,
95
+ 'default' => $default,
96
+ ), array('id' => $id));
97
+ }
98
+ else {
99
+ $save = $wpdb->insert($wpdb->prefix . 'formmaker_themes', array(
100
+ 'title' => $title,
101
+ 'css' => $css,
102
+ 'default' => $default,
103
+ ), array(
104
+ '%s',
105
+ '%s',
106
+ '%d',
107
+ ));
108
+ }
109
+ if ($save !== FALSE) {
110
+ return 1;
111
+ }
112
+ else {
113
+ return 2;
114
+ }
115
+ }
116
+
117
+ public function delete($id) {
118
+ global $wpdb;
119
+ $isDefault = $wpdb->get_var($wpdb->prepare('SELECT `default` FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
120
+ if ($isDefault) {
121
+ $message = 4;
122
+ }
123
+ else {
124
+ $query = $wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id);
125
+ if ($wpdb->query($query)) {
126
+ $message = 3;
127
+ }
128
+ else {
129
+ $message = 2;
130
+ }
131
+ }
132
+ // $this->display();
133
+ $page = WDW_FM_Library::get('page');
134
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
135
+ }
136
+
137
+ public function delete_all() {
138
+ global $wpdb;
139
+ $flag = FALSE;
140
+ $isDefault = FALSE;
141
+ $theme_ids_col = $wpdb->get_col('SELECT id FROM ' . $wpdb->prefix . 'formmaker_themes');
142
+ foreach ($theme_ids_col as $theme_id) {
143
+ if (isset($_POST['check_' . $theme_id])) {
144
+ $isDefault = $wpdb->get_var($wpdb->prepare('SELECT `default` FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $theme_id));
145
+ if ($isDefault) {
146
+ $message = 4;
147
+ }
148
+ else {
149
+ $flag = TRUE;
150
+ $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $theme_id));
151
+ }
152
+ }
153
+ }
154
+ if ($flag) {
155
+ $message = 5;
156
+ }
157
+ else {
158
+ $message = 6;
159
+ }
160
+ // $this->display();
161
+ $page = WDW_FM_Library::get('page');
162
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
163
+ }
164
+
165
+ public function setdefault($id) {
166
+ global $wpdb;
167
+ $wpdb->update($wpdb->prefix . 'formmaker_themes', array('default' => 0), array('default' => 1));
168
+ $save = $wpdb->update($wpdb->prefix . 'formmaker_themes', array('default' => 1), array('id' => $id));
169
+ if ($save !== FALSE) {
170
+ $message = 7;
171
+ }
172
+ else {
173
+ $message = 2;
174
+ }
175
+ // $this->display();
176
+ $page = WDW_FM_Library::get('page');
177
+ WDW_FM_Library::fm_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
178
+ }
179
+
180
+ ////////////////////////////////////////////////////////////////////////////////////////
181
+ // Getters & Setters //
182
+ ////////////////////////////////////////////////////////////////////////////////////////
183
+ ////////////////////////////////////////////////////////////////////////////////////////
184
+ // Private Methods //
185
+ ////////////////////////////////////////////////////////////////////////////////////////
186
+ ////////////////////////////////////////////////////////////////////////////////////////
187
+ // Listeners //
188
+ ////////////////////////////////////////////////////////////////////////////////////////
189
  }
admin/controllers/FMControllerUninstall_fm.php CHANGED
@@ -1,58 +1,58 @@
1
- <?php
2
-
3
- class FMControllerUninstall_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- $task = ((isset($_POST['task'])) ? esc_html(stripslashes($_POST['task'])) : '');
23
- if (method_exists($this, $task)) {
24
- check_admin_referer('nonce_fm', 'nonce_fm');
25
- $this->$task();
26
- }
27
- else {
28
- $this->display();
29
- }
30
- }
31
-
32
- public function display() {
33
- require_once WD_FM_DIR . "/admin/models/FMModelUninstall_fm.php";
34
- $model = new FMModelUninstall_fm();
35
-
36
- require_once WD_FM_DIR . "/admin/views/FMViewUninstall_fm.php";
37
- $view = new FMViewUninstall_fm($model);
38
- $view->display();
39
- }
40
-
41
- public function uninstall() {
42
- require_once WD_FM_DIR . "/admin/models/FMModelUninstall_fm.php";
43
- $model = new FMModelUninstall_fm();
44
-
45
- require_once WD_FM_DIR . "/admin/views/FMViewUninstall_fm.php";
46
- $view = new FMViewUninstall_fm($model);
47
- $view->uninstall();
48
- }
49
- ////////////////////////////////////////////////////////////////////////////////////////
50
- // Getters & Setters //
51
- ////////////////////////////////////////////////////////////////////////////////////////
52
- ////////////////////////////////////////////////////////////////////////////////////////
53
- // Private Methods //
54
- ////////////////////////////////////////////////////////////////////////////////////////
55
- ////////////////////////////////////////////////////////////////////////////////////////
56
- // Listeners //
57
- ////////////////////////////////////////////////////////////////////////////////////////
58
  }
1
+ <?php
2
+
3
+ class FMControllerUninstall_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ $task = ((isset($_POST['task'])) ? esc_html(stripslashes($_POST['task'])) : '');
23
+ if (method_exists($this, $task)) {
24
+ check_admin_referer('nonce_fm', 'nonce_fm');
25
+ $this->$task();
26
+ }
27
+ else {
28
+ $this->display();
29
+ }
30
+ }
31
+
32
+ public function display() {
33
+ require_once WD_FM_DIR . "/admin/models/FMModelUninstall_fm.php";
34
+ $model = new FMModelUninstall_fm();
35
+
36
+ require_once WD_FM_DIR . "/admin/views/FMViewUninstall_fm.php";
37
+ $view = new FMViewUninstall_fm($model);
38
+ $view->display();
39
+ }
40
+
41
+ public function uninstall() {
42
+ require_once WD_FM_DIR . "/admin/models/FMModelUninstall_fm.php";
43
+ $model = new FMModelUninstall_fm();
44
+
45
+ require_once WD_FM_DIR . "/admin/views/FMViewUninstall_fm.php";
46
+ $view = new FMViewUninstall_fm($model);
47
+ $view->uninstall();
48
+ }
49
+ ////////////////////////////////////////////////////////////////////////////////////////
50
+ // Getters & Setters //
51
+ ////////////////////////////////////////////////////////////////////////////////////////
52
+ ////////////////////////////////////////////////////////////////////////////////////////
53
+ // Private Methods //
54
+ ////////////////////////////////////////////////////////////////////////////////////////
55
+ ////////////////////////////////////////////////////////////////////////////////////////
56
+ // Listeners //
57
+ ////////////////////////////////////////////////////////////////////////////////////////
58
  }
admin/controllers/FMControllerWidget.php CHANGED
@@ -1,61 +1,61 @@
1
- <?php
2
-
3
- class FMControllerWidget extends WP_Widget {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $view;
14
- private $model;
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- // Constructor & Destructor //
17
- ////////////////////////////////////////////////////////////////////////////////////////
18
- public function __construct() {
19
- $widget_ops = array(
20
- 'classname' => 'form_maker_widget',
21
- 'description' => 'Add Form Maker widget.'
22
- );
23
- // Widget Control Settings.
24
- $control_ops = array('id_base' => 'form_maker_widget');
25
- // Create the widget.
26
- parent::__construct('form_maker_widget', 'Form Maker', $widget_ops, $control_ops);
27
- require_once WD_FM_DIR . "/admin/models/FMModelWidget.php";
28
- $this->model = new FMModelWidget();
29
-
30
- require_once WD_FM_DIR . "/admin/views/FMViewWidget.php";
31
- $this->view = new FMViewWidget($this->model);
32
- }
33
- ////////////////////////////////////////////////////////////////////////////////////////
34
- // Public Methods //
35
- ////////////////////////////////////////////////////////////////////////////////////////
36
-
37
- public function widget($args, $instance) {
38
- $this->view->widget($args, $instance);
39
- }
40
-
41
- public function form( $instance ) {
42
- $this->view->form($instance, parent::get_field_id('title'), parent::get_field_name('title'), parent::get_field_id('form_id'), parent::get_field_name('form_id'));
43
- }
44
-
45
- // Update Settings.
46
- public function update($new_instance, $old_instance) {
47
- $instance['title'] = $new_instance['title'];
48
- $instance['form_id'] = $new_instance['form_id'];
49
- return $instance;
50
- }
51
-
52
- ////////////////////////////////////////////////////////////////////////////////////////
53
- // Getters & Setters //
54
- ////////////////////////////////////////////////////////////////////////////////////////
55
- ////////////////////////////////////////////////////////////////////////////////////////
56
- // Private Methods //
57
- ////////////////////////////////////////////////////////////////////////////////////////
58
- ////////////////////////////////////////////////////////////////////////////////////////
59
- // Listeners //
60
- ////////////////////////////////////////////////////////////////////////////////////////
61
  }
1
+ <?php
2
+
3
+ class FMControllerWidget extends WP_Widget {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $view;
14
+ private $model;
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct() {
19
+ $widget_ops = array(
20
+ 'classname' => 'form_maker_widget',
21
+ 'description' => 'Add Form Maker widget.'
22
+ );
23
+ // Widget Control Settings.
24
+ $control_ops = array('id_base' => 'form_maker_widget');
25
+ // Create the widget.
26
+ parent::__construct('form_maker_widget', 'Form Maker', $widget_ops, $control_ops);
27
+ require_once WD_FM_DIR . "/admin/models/FMModelWidget.php";
28
+ $this->model = new FMModelWidget();
29
+
30
+ require_once WD_FM_DIR . "/admin/views/FMViewWidget.php";
31
+ $this->view = new FMViewWidget($this->model);
32
+ }
33
+ ////////////////////////////////////////////////////////////////////////////////////////
34
+ // Public Methods //
35
+ ////////////////////////////////////////////////////////////////////////////////////////
36
+
37
+ public function widget($args, $instance) {
38
+ $this->view->widget($args, $instance);
39
+ }
40
+
41
+ public function form( $instance ) {
42
+ $this->view->form($instance, parent::get_field_id('title'), parent::get_field_name('title'), parent::get_field_id('form_id'), parent::get_field_name('form_id'));
43
+ }
44
+
45
+ // Update Settings.
46
+ public function update($new_instance, $old_instance) {
47
+ $instance['title'] = $new_instance['title'];
48
+ $instance['form_id'] = $new_instance['form_id'];
49
+ return $instance;
50
+ }
51
+
52
+ ////////////////////////////////////////////////////////////////////////////////////////
53
+ // Getters & Setters //
54
+ ////////////////////////////////////////////////////////////////////////////////////////
55
+ ////////////////////////////////////////////////////////////////////////////////////////
56
+ // Private Methods //
57
+ ////////////////////////////////////////////////////////////////////////////////////////
58
+ ////////////////////////////////////////////////////////////////////////////////////////
59
+ // Listeners //
60
+ ////////////////////////////////////////////////////////////////////////////////////////
61
  }
admin/models/FMModelBlocked_ips_fm.php CHANGED
@@ -1,75 +1,75 @@
1
- <?php
2
-
3
- class FMModelBlocked_ips_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function get_rows_data() {
22
- global $wpdb;
23
- $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE `ip` LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
24
- $asc_or_desc = ((isset($_POST['asc_or_desc']) && $_POST['asc_or_desc'] == 'desc') ? 'desc' : 'asc');
25
- $order_by_array = array('id', 'ip');
26
- $order_by = isset($_POST['order_by']) && in_array(esc_html(stripslashes($_POST['order_by'])), $order_by_array) ? esc_html(stripslashes($_POST['order_by'])) : 'id';
27
- $order_by = ' ORDER BY `' . $order_by . '` ' . $asc_or_desc;
28
- if (isset($_POST['page_number']) && $_POST['page_number']) {
29
- $limit = ((int) $_POST['page_number'] - 1) * 20;
30
- }
31
- else {
32
- $limit = 0;
33
- }
34
- $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_blocked " . $where . $order_by . " LIMIT " . $limit . ",20";
35
- $rows = $wpdb->get_results($query);
36
- return $rows;
37
- }
38
-
39
- public function get_row_data($id) {
40
- global $wpdb;
41
- if ($id != 0) {
42
- $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $id));
43
- }
44
- else {
45
- $row->id = 0;
46
- $row->ip = '';
47
- }
48
- return $row;
49
- }
50
-
51
- public function page_nav() {
52
- global $wpdb;
53
- $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE `ip` LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
54
- $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "formmaker_blocked " . $where;
55
- $total = $wpdb->get_var($query);
56
- $page_nav['total'] = $total;
57
- if (isset($_POST['page_number']) && $_POST['page_number']) {
58
- $limit = ((int) $_POST['page_number'] - 1) * 20;
59
- }
60
- else {
61
- $limit = 0;
62
- }
63
- $page_nav['limit'] = (int) ($limit / 20 + 1);
64
- return $page_nav;
65
- }
66
- ////////////////////////////////////////////////////////////////////////////////////////
67
- // Getters & Setters //
68
- ////////////////////////////////////////////////////////////////////////////////////////
69
- ////////////////////////////////////////////////////////////////////////////////////////
70
- // Private Methods //
71
- ////////////////////////////////////////////////////////////////////////////////////////
72
- ////////////////////////////////////////////////////////////////////////////////////////
73
- // Listeners //
74
- ////////////////////////////////////////////////////////////////////////////////////////
75
  }
1
+ <?php
2
+
3
+ class FMModelBlocked_ips_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function get_rows_data() {
22
+ global $wpdb;
23
+ $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE `ip` LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
24
+ $asc_or_desc = ((isset($_POST['asc_or_desc']) && $_POST['asc_or_desc'] == 'desc') ? 'desc' : 'asc');
25
+ $order_by_array = array('id', 'ip');
26
+ $order_by = isset($_POST['order_by']) && in_array(esc_html(stripslashes($_POST['order_by'])), $order_by_array) ? esc_html(stripslashes($_POST['order_by'])) : 'id';
27
+ $order_by = ' ORDER BY `' . $order_by . '` ' . $asc_or_desc;
28
+ if (isset($_POST['page_number']) && $_POST['page_number']) {
29
+ $limit = ((int) $_POST['page_number'] - 1) * 20;
30
+ }
31
+ else {
32
+ $limit = 0;
33
+ }
34
+ $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_blocked " . $where . $order_by . " LIMIT " . $limit . ",20";
35
+ $rows = $wpdb->get_results($query);
36
+ return $rows;
37
+ }
38
+
39
+ public function get_row_data($id) {
40
+ global $wpdb;
41
+ if ($id != 0) {
42
+ $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_blocked WHERE id="%d"', $id));
43
+ }
44
+ else {
45
+ $row->id = 0;
46
+ $row->ip = '';
47
+ }
48
+ return $row;
49
+ }
50
+
51
+ public function page_nav() {
52
+ global $wpdb;
53
+ $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE `ip` LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
54
+ $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "formmaker_blocked " . $where;
55
+ $total = $wpdb->get_var($query);
56
+ $page_nav['total'] = $total;
57
+ if (isset($_POST['page_number']) && $_POST['page_number']) {
58
+ $limit = ((int) $_POST['page_number'] - 1) * 20;
59
+ }
60
+ else {
61
+ $limit = 0;
62
+ }
63
+ $page_nav['limit'] = (int) ($limit / 20 + 1);
64
+ return $page_nav;
65
+ }
66
+ ////////////////////////////////////////////////////////////////////////////////////////
67
+ // Getters & Setters //
68
+ ////////////////////////////////////////////////////////////////////////////////////////
69
+ ////////////////////////////////////////////////////////////////////////////////////////
70
+ // Private Methods //
71
+ ////////////////////////////////////////////////////////////////////////////////////////
72
+ ////////////////////////////////////////////////////////////////////////////////////////
73
+ // Listeners //
74
+ ////////////////////////////////////////////////////////////////////////////////////////
75
  }
admin/models/FMModelFormMakerEditCSS.php CHANGED
@@ -1,42 +1,42 @@
1
- <?php
2
-
3
- class FMModelFormMakerEditCSS {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- public function get_theme_row($id) {
23
- global $wpdb;
24
- $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
25
- return $row;
26
- }
27
-
28
- /*public function get_form($form_id) {
29
- global $wpdb;
30
- $form = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $form_id));
31
- return $form;
32
- }*/
33
- ////////////////////////////////////////////////////////////////////////////////////////
34
- // Getters & Setters //
35
- ////////////////////////////////////////////////////////////////////////////////////////
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- // Private Methods //
38
- ////////////////////////////////////////////////////////////////////////////////////////
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- // Listeners //
41
- ////////////////////////////////////////////////////////////////////////////////////////
42
  }
1
+ <?php
2
+
3
+ class FMModelFormMakerEditCSS {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ public function get_theme_row($id) {
23
+ global $wpdb;
24
+ $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
25
+ return $row;
26
+ }
27
+
28
+ /*public function get_form($form_id) {
29
+ global $wpdb;
30
+ $form = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $form_id));
31
+ return $form;
32
+ }*/
33
+ ////////////////////////////////////////////////////////////////////////////////////////
34
+ // Getters & Setters //
35
+ ////////////////////////////////////////////////////////////////////////////////////////
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ // Private Methods //
38
+ ////////////////////////////////////////////////////////////////////////////////////////
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ // Listeners //
41
+ ////////////////////////////////////////////////////////////////////////////////////////
42
  }
admin/models/FMModelFormMakerPreview.php CHANGED
@@ -1,42 +1,42 @@
1
- <?php
2
-
3
- class FMModelFormMakerPreview {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- public function get_theme_css($id) {
23
- global $wpdb;
24
- $css = $wpdb->get_var($wpdb->prepare('SELECT css FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
25
- return $css;
26
- }
27
-
28
- public function get_form($form_id) {
29
- global $wpdb;
30
- $form = $wpdb->get_var($wpdb->prepare('SELECT form_front FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $form_id));
31
- return $form;
32
- }
33
- ////////////////////////////////////////////////////////////////////////////////////////
34
- // Getters & Setters //
35
- ////////////////////////////////////////////////////////////////////////////////////////
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- // Private Methods //
38
- ////////////////////////////////////////////////////////////////////////////////////////
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- // Listeners //
41
- ////////////////////////////////////////////////////////////////////////////////////////
42
  }
1
+ <?php
2
+
3
+ class FMModelFormMakerPreview {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ public function get_theme_css($id) {
23
+ global $wpdb;
24
+ $css = $wpdb->get_var($wpdb->prepare('SELECT css FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
25
+ return $css;
26
+ }
27
+
28
+ public function get_form($form_id) {
29
+ global $wpdb;
30
+ $form = $wpdb->get_var($wpdb->prepare('SELECT form_front FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $form_id));
31
+ return $form;
32
+ }
33
+ ////////////////////////////////////////////////////////////////////////////////////////
34
+ // Getters & Setters //
35
+ ////////////////////////////////////////////////////////////////////////////////////////
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ // Private Methods //
38
+ ////////////////////////////////////////////////////////////////////////////////////////
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ // Listeners //
41
+ ////////////////////////////////////////////////////////////////////////////////////////
42
  }
admin/models/FMModelFormMakerSQLMapping.php CHANGED
@@ -1,121 +1,121 @@
1
- <?php
2
-
3
- class FMModelFormMakerSQLMapping {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- function get_query($id) {
23
- global $wpdb;
24
- $rows = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "formmaker_query where id=" . $id);
25
- return $rows;
26
- }
27
-
28
- function get_labels($form_id) {
29
- global $wpdb;
30
- // $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
31
- // wp_set_wpdb_vars();
32
- $rows = $wpdb->get_var("SELECT label_order_current FROM " . $wpdb->prefix . "formmaker where id=" . $form_id);
33
- return $rows;
34
- }
35
-
36
- function get_tables() {
37
- global $wpdb;
38
- $con_type = $_POST['con_type'];
39
-
40
- if($con_type == 'local') {
41
- $query = "SHOW TABLES";
42
- $tables = $wpdb->get_col($query);
43
- }
44
- else if($con_type == 'remote') {
45
- $username = isset($_POST['username']) ? $_POST['username'] : '';
46
- $password = isset($_POST['password']) ? $_POST['password'] : '';
47
- $database = isset($_POST['database']) ? $_POST['database'] : '';
48
- $host = isset($_POST['host']) ? $_POST['host'] : '';
49
- $wpdb_temp = new wpdb($username, $password, $database, $host);
50
- $query = "SHOW TABLES";
51
- $tables = $wpdb_temp->get_col($query);
52
- }
53
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
54
- return $tables;
55
- }
56
-
57
- function get_tables_saved($con_type, $username, $password, $database, $host) {
58
- global $wpdb;
59
-
60
- if($con_type == 'local') {
61
- $query = "SHOW TABLES";
62
- $tables = $wpdb->get_col($query);
63
- }
64
- else if($con_type == 'remote') {
65
- $wpdb_temp = new wpdb($username, $password, $database, $host);
66
- $query = "SHOW TABLES";
67
- $tables = $wpdb_temp->get_col($query);
68
- }
69
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
70
- return $tables;
71
- }
72
-
73
- function get_table_struct() {
74
- global $wpdb;
75
- $name = isset($_POST['name']) ? $_POST['name'] : NULL;
76
- if(!$name)
77
- return array();
78
- $con_method = $_POST['con_method'];
79
- $con_type = $_POST['con_type'];
80
- $query = "SHOW COLUMNS FROM " . $name;
81
- if($con_type == 'remote') {
82
- $username = isset($_POST['username']) ? $_POST['username'] : '';
83
- $password = isset($_POST['password']) ? $_POST['password'] : '';
84
- $database = isset($_POST['database']) ? $_POST['database'] : '';
85
- $host = isset($_POST['host']) ? $_POST['host'] : '';
86
- $wpdb_temp = new wpdb($username, $password, $database, $host);
87
- $table_struct = $wpdb_temp->get_results($query);
88
- }
89
- else {
90
- $table_struct = $wpdb->get_results($query);
91
- }
92
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
93
- return $table_struct;
94
- }
95
-
96
- function get_table_struct_saved($con_type, $username, $password, $database, $host, $name, $con_method) {
97
- global $wpdb;
98
- if(!$name)
99
- return array();
100
- $query = "SHOW COLUMNS FROM " . $name;
101
- if($con_type == 'remote') {
102
- $wpdb_temp = new wpdb($username, $password, $database, $host);
103
- $table_struct = $wpdb_temp->get_results($query);
104
- }
105
- else {
106
- $table_struct = $wpdb->get_results($query);
107
- }
108
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
109
- return $table_struct;
110
- }
111
-
112
- ////////////////////////////////////////////////////////////////////////////////////////
113
- // Getters & Setters //
114
- ////////////////////////////////////////////////////////////////////////////////////////
115
- ////////////////////////////////////////////////////////////////////////////////////////
116
- // Private Methods //
117
- ////////////////////////////////////////////////////////////////////////////////////////
118
- ////////////////////////////////////////////////////////////////////////////////////////
119
- // Listeners //
120
- ////////////////////////////////////////////////////////////////////////////////////////
121
  }
1
+ <?php
2
+
3
+ class FMModelFormMakerSQLMapping {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ function get_query($id) {
23
+ global $wpdb;
24
+ $rows = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "formmaker_query where id=" . $id);
25
+ return $rows;
26
+ }
27
+
28
+ function get_labels($form_id) {
29
+ global $wpdb;
30
+ // $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
31
+ // wp_set_wpdb_vars();
32
+ $rows = $wpdb->get_var("SELECT label_order_current FROM " . $wpdb->prefix . "formmaker where id=" . $form_id);
33
+ return $rows;
34
+ }
35
+
36
+ function get_tables() {
37
+ global $wpdb;
38
+ $con_type = $_POST['con_type'];
39
+
40
+ if($con_type == 'local') {
41
+ $query = "SHOW TABLES";
42
+ $tables = $wpdb->get_col($query);
43
+ }
44
+ else if($con_type == 'remote') {
45
+ $username = isset($_POST['username']) ? $_POST['username'] : '';
46
+ $password = isset($_POST['password']) ? $_POST['password'] : '';
47
+ $database = isset($_POST['database']) ? $_POST['database'] : '';
48
+ $host = isset($_POST['host']) ? $_POST['host'] : '';
49
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
50
+ $query = "SHOW TABLES";
51
+ $tables = $wpdb_temp->get_col($query);
52
+ }
53
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
54
+ return $tables;
55
+ }
56
+
57
+ function get_tables_saved($con_type, $username, $password, $database, $host) {
58
+ global $wpdb;
59
+
60
+ if($con_type == 'local') {
61
+ $query = "SHOW TABLES";
62
+ $tables = $wpdb->get_col($query);
63
+ }
64
+ else if($con_type == 'remote') {
65
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
66
+ $query = "SHOW TABLES";
67
+ $tables = $wpdb_temp->get_col($query);
68
+ }
69
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
70
+ return $tables;
71
+ }
72
+
73
+ function get_table_struct() {
74
+ global $wpdb;
75
+ $name = isset($_POST['name']) ? $_POST['name'] : NULL;
76
+ if(!$name)
77
+ return array();
78
+ $con_method = $_POST['con_method'];
79
+ $con_type = $_POST['con_type'];
80
+ $query = "SHOW COLUMNS FROM " . $name;
81
+ if($con_type == 'remote') {
82
+ $username = isset($_POST['username']) ? $_POST['username'] : '';
83
+ $password = isset($_POST['password']) ? $_POST['password'] : '';
84
+ $database = isset($_POST['database']) ? $_POST['database'] : '';
85
+ $host = isset($_POST['host']) ? $_POST['host'] : '';
86
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
87
+ $table_struct = $wpdb_temp->get_results($query);
88
+ }
89
+ else {
90
+ $table_struct = $wpdb->get_results($query);
91
+ }
92
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
93
+ return $table_struct;
94
+ }
95
+
96
+ function get_table_struct_saved($con_type, $username, $password, $database, $host, $name, $con_method) {
97
+ global $wpdb;
98
+ if(!$name)
99
+ return array();
100
+ $query = "SHOW COLUMNS FROM " . $name;
101
+ if($con_type == 'remote') {
102
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
103
+ $table_struct = $wpdb_temp->get_results($query);
104
+ }
105
+ else {
106
+ $table_struct = $wpdb->get_results($query);
107
+ }
108
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
109
+ return $table_struct;
110
+ }
111
+
112
+ ////////////////////////////////////////////////////////////////////////////////////////
113
+ // Getters & Setters //
114
+ ////////////////////////////////////////////////////////////////////////////////////////
115
+ ////////////////////////////////////////////////////////////////////////////////////////
116
+ // Private Methods //
117
+ ////////////////////////////////////////////////////////////////////////////////////////
118
+ ////////////////////////////////////////////////////////////////////////////////////////
119
+ // Listeners //
120
+ ////////////////////////////////////////////////////////////////////////////////////////
121
  }
admin/models/FMModelFormMakerSubmits.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
-
3
- class FMModelFormMakerSubmits {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- public function get_from_label_order($form_id) {
23
- global $wpdb;
24
- $label_order = $wpdb->get_var($wpdb->prepare('SELECT `label_order` FROM `' . $wpdb->prefix . 'formmaker` WHERE id="%d"', $form_id));
25
- return $label_order;
26
- }
27
-
28
- public function get_submissions($group_id) {
29
- global $wpdb;
30
- $row = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . $wpdb->prefix . 'formmaker_submits` WHERE group_id="%d"', $group_id));
31
- return $row;
32
- }
33
-
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Getters & Setters //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Private Methods //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Listeners //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
  }
1
+ <?php
2
+
3
+ class FMModelFormMakerSubmits {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ public function get_from_label_order($form_id) {
23
+ global $wpdb;
24
+ $label_order = $wpdb->get_var($wpdb->prepare('SELECT `label_order` FROM `' . $wpdb->prefix . 'formmaker` WHERE id="%d"', $form_id));
25
+ return $label_order;
26
+ }
27
+
28
+ public function get_submissions($group_id) {
29
+ global $wpdb;
30
+ $row = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . $wpdb->prefix . 'formmaker_submits` WHERE group_id="%d"', $group_id));
31
+ return $row;
32
+ }
33
+
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Getters & Setters //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Private Methods //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Listeners //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
  }
admin/models/FMModelFormmakerwdcaptcha.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelFormmakerwdcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelFormmakerwdcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelFormmakerwdmathcaptcha.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelFormmakerwdmathcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelFormmakerwdmathcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelFromeditcountryinpopup.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelFromeditcountryinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelFromeditcountryinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelFromipinfoinpopup.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelFromipinfoinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelFromipinfoinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelFrommapeditinpopup.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelFrommapeditinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelFrommapeditinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelGoptions_fm.php CHANGED
@@ -1,30 +1,30 @@
1
- <?php
2
-
3
- class FMModelGoptions_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- ////////////////////////////////////////////////////////////////////////////////////////
22
- // Getters & Setters //
23
- ////////////////////////////////////////////////////////////////////////////////////////
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- // Private Methods //
26
- ////////////////////////////////////////////////////////////////////////////////////////
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- // Listeners //
29
- ////////////////////////////////////////////////////////////////////////////////////////
30
  }
1
+ <?php
2
+
3
+ class FMModelGoptions_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ // Getters & Setters //
23
+ ////////////////////////////////////////////////////////////////////////////////////////
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ // Private Methods //
26
+ ////////////////////////////////////////////////////////////////////////////////////////
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ // Listeners //
29
+ ////////////////////////////////////////////////////////////////////////////////////////
30
  }
admin/models/FMModelSelect_data_from_db.php CHANGED
@@ -1,111 +1,111 @@
1
- <?php
2
-
3
- class FMModelSelect_data_from_db {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- function get_labels($form_id) {
23
- global $wpdb;
24
- $rows = $wpdb->get_var("SELECT label_order_current FROM " . $wpdb->prefix . "formmaker where id=" . $form_id);
25
- return $rows;
26
- }
27
- function get_tables() {
28
- global $wpdb;
29
- $con_type = $_POST['con_type'];
30
-
31
- if($con_type == 'local') {
32
- $query = "SHOW TABLES";
33
- $tables = $wpdb->get_col($query);
34
- }
35
- else if($con_type == 'remote') {
36
- $username = isset($_POST['username']) ? $_POST['username'] : '';
37
- $password = isset($_POST['password']) ? $_POST['password'] : '';
38
- $database = isset($_POST['database']) ? $_POST['database'] : '';
39
- $host = isset($_POST['host']) ? $_POST['host'] : '';
40
- $wpdb_temp = new wpdb($username, $password, $database, $host);
41
- $query = "SHOW TABLES";
42
- $tables = $wpdb_temp->get_col($query);
43
- }
44
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
45
- return $tables;
46
- }
47
-
48
- function get_tables_saved($con_type, $username, $password, $database, $host) {
49
- global $wpdb;
50
-
51
- if($con_type == 'local') {
52
- $query = "SHOW TABLES";
53
- $tables = $wpdb->get_col($query);
54
- }
55
- else if($con_type == 'remote') {
56
- $wpdb_temp = new wpdb($username, $password, $database, $host);
57
- $query = "SHOW TABLES";
58
- $tables = $wpdb_temp->get_col($query);
59
- }
60
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
61
- return $tables;
62
- }
63
-
64
- function get_table_struct() {
65
- global $wpdb;
66
- $name = isset($_POST['name']) ? $_POST['name'] : NULL;
67
- if(!$name)
68
- return array();
69
- $con_method = $_POST['con_method'];
70
- $con_type = $_POST['con_type'];
71
- $query = "SHOW COLUMNS FROM " . $name;
72
- if($con_type == 'remote') {
73
- $username = isset($_POST['username']) ? $_POST['username'] : '';
74
- $password = isset($_POST['password']) ? $_POST['password'] : '';
75
- $database = isset($_POST['database']) ? $_POST['database'] : '';
76
- $host = isset($_POST['host']) ? $_POST['host'] : '';
77
- $wpdb_temp = new wpdb($username, $password, $database, $host);
78
- $table_struct = $wpdb_temp->get_results($query);
79
- }
80
- else {
81
- $table_struct = $wpdb->get_results($query);
82
- }
83
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
84
- return $table_struct;
85
- }
86
-
87
- function get_table_struct_saved($con_type, $username, $password, $database, $host, $name, $con_method) {
88
- global $wpdb;
89
- if(!$name)
90
- return array();
91
- $query = "SHOW COLUMNS FROM " . $name;
92
- if($con_type == 'remote') {
93
- $wpdb_temp = new wpdb($username, $password, $database, $host);
94
- $table_struct = $wpdb_temp->get_results($query);
95
- }
96
- else {
97
- $table_struct = $wpdb->get_results($query);
98
- }
99
- //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
100
- return $table_struct;
101
- }
102
- ////////////////////////////////////////////////////////////////////////////////////////
103
- // Getters & Setters //
104
- ////////////////////////////////////////////////////////////////////////////////////////
105
- ////////////////////////////////////////////////////////////////////////////////////////
106
- // Private Methods //
107
- ////////////////////////////////////////////////////////////////////////////////////////
108
- ////////////////////////////////////////////////////////////////////////////////////////
109
- // Listeners //
110
- ////////////////////////////////////////////////////////////////////////////////////////
111
  }
1
+ <?php
2
+
3
+ class FMModelSelect_data_from_db {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ function get_labels($form_id) {
23
+ global $wpdb;
24
+ $rows = $wpdb->get_var("SELECT label_order_current FROM " . $wpdb->prefix . "formmaker where id=" . $form_id);
25
+ return $rows;
26
+ }
27
+ function get_tables() {
28
+ global $wpdb;
29
+ $con_type = $_POST['con_type'];
30
+
31
+ if($con_type == 'local') {
32
+ $query = "SHOW TABLES";
33
+ $tables = $wpdb->get_col($query);
34
+ }
35
+ else if($con_type == 'remote') {
36
+ $username = isset($_POST['username']) ? $_POST['username'] : '';
37
+ $password = isset($_POST['password']) ? $_POST['password'] : '';
38
+ $database = isset($_POST['database']) ? $_POST['database'] : '';
39
+ $host = isset($_POST['host']) ? $_POST['host'] : '';
40
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
41
+ $query = "SHOW TABLES";
42
+ $tables = $wpdb_temp->get_col($query);
43
+ }
44
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
45
+ return $tables;
46
+ }
47
+
48
+ function get_tables_saved($con_type, $username, $password, $database, $host) {
49
+ global $wpdb;
50
+
51
+ if($con_type == 'local') {
52
+ $query = "SHOW TABLES";
53
+ $tables = $wpdb->get_col($query);
54
+ }
55
+ else if($con_type == 'remote') {
56
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
57
+ $query = "SHOW TABLES";
58
+ $tables = $wpdb_temp->get_col($query);
59
+ }
60
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
61
+ return $tables;
62
+ }
63
+
64
+ function get_table_struct() {
65
+ global $wpdb;
66
+ $name = isset($_POST['name']) ? $_POST['name'] : NULL;
67
+ if(!$name)
68
+ return array();
69
+ $con_method = $_POST['con_method'];
70
+ $con_type = $_POST['con_type'];
71
+ $query = "SHOW COLUMNS FROM " . $name;
72
+ if($con_type == 'remote') {
73
+ $username = isset($_POST['username']) ? $_POST['username'] : '';
74
+ $password = isset($_POST['password']) ? $_POST['password'] : '';
75
+ $database = isset($_POST['database']) ? $_POST['database'] : '';
76
+ $host = isset($_POST['host']) ? $_POST['host'] : '';
77
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
78
+ $table_struct = $wpdb_temp->get_results($query);
79
+ }
80
+ else {
81
+ $table_struct = $wpdb->get_results($query);
82
+ }
83
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
84
+ return $table_struct;
85
+ }
86
+
87
+ function get_table_struct_saved($con_type, $username, $password, $database, $host, $name, $con_method) {
88
+ global $wpdb;
89
+ if(!$name)
90
+ return array();
91
+ $query = "SHOW COLUMNS FROM " . $name;
92
+ if($con_type == 'remote') {
93
+ $wpdb_temp = new wpdb($username, $password, $database, $host);
94
+ $table_struct = $wpdb_temp->get_results($query);
95
+ }
96
+ else {
97
+ $table_struct = $wpdb->get_results($query);
98
+ }
99
+ //$wpdb= new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
100
+ return $table_struct;
101
+ }
102
+ ////////////////////////////////////////////////////////////////////////////////////////
103
+ // Getters & Setters //
104
+ ////////////////////////////////////////////////////////////////////////////////////////
105
+ ////////////////////////////////////////////////////////////////////////////////////////
106
+ // Private Methods //
107
+ ////////////////////////////////////////////////////////////////////////////////////////
108
+ ////////////////////////////////////////////////////////////////////////////////////////
109
+ // Listeners //
110
+ ////////////////////////////////////////////////////////////////////////////////////////
111
  }
admin/models/FMModelShow_matrix.php CHANGED
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- class FMModelShow_matrix {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Getters & Setters //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- ////////////////////////////////////////////////////////////////////////////////////////
26
- // Private Methods //
27
- ////////////////////////////////////////////////////////////////////////////////////////
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Listeners //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
  }
1
+ <?php
2
+
3
+ class FMModelShow_matrix {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Getters & Setters //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ ////////////////////////////////////////////////////////////////////////////////////////
26
+ // Private Methods //
27
+ ////////////////////////////////////////////////////////////////////////////////////////
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Listeners //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
  }
admin/models/FMModelThemes_fm.php CHANGED
@@ -1,91 +1,91 @@
1
- <?php
2
-
3
- class FMModelThemes_fm {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function get_rows_data() {
22
- global $wpdb;
23
- $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE title LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
24
- $asc_or_desc = ((isset($_POST['asc_or_desc']) && $_POST['asc_or_desc'] == 'desc') ? 'desc' : 'asc');
25
- $order_by_array = array('id', 'title', 'default');
26
- $order_by = isset($_POST['order_by']) && in_array(esc_html(stripslashes($_POST['order_by'])), $order_by_array) ? esc_html(stripslashes($_POST['order_by'])) : 'id';
27
- $order_by = ' ORDER BY `' . $order_by . '` ' . $asc_or_desc;
28
- if (isset($_POST['page_number']) && $_POST['page_number']) {
29
- $limit = ((int) $_POST['page_number'] - 1) * 20;
30
- }
31
- else {
32
- $limit = 0;
33
- }
34
- $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_themes " . $where . $order_by . " LIMIT " . $limit . ",20";
35
- $rows = $wpdb->get_results($query);
36
- return $rows;
37
- }
38
-
39
- public function get_row_data($id, $reset) {
40
- global $wpdb;
41
- if ($id != 0) {
42
- $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
43
- if ($reset) {
44
- if (!$row->default) {
45
- $row_id = $row->id;
46
- $row_title = $row->title;
47
- $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE default="%d"', 1));
48
- $row->id = $row_id;
49
- $row->title = $row_title;
50
- $row->default = FALSE;
51
- }
52
- else {
53
- $row->css = '';
54
- }
55
- }
56
- }
57
- else {
58
- $row = new stdClass();
59
- $row->id = 0;
60
- $row->title = '';
61
- $row->css = '';
62
- $row->default = 0;
63
- }
64
- return $row;
65
- }
66
-
67
- public function page_nav() {
68
- global $wpdb;
69
- $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE title LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
70
- $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "formmaker_themes " . $where;
71
- $total = $wpdb->get_var($query);
72
- $page_nav['total'] = $total;
73
- if (isset($_POST['page_number']) && $_POST['page_number']) {
74
- $limit = ((int) $_POST['page_number'] - 1) * 20;
75
- }
76
- else {
77
- $limit = 0;
78
- }
79
- $page_nav['limit'] = (int) ($limit / 20 + 1);
80
- return $page_nav;
81
- }
82
- ////////////////////////////////////////////////////////////////////////////////////////
83
- // Getters & Setters //
84
- ////////////////////////////////////////////////////////////////////////////////////////
85
- ////////////////////////////////////////////////////////////////////////////////////////
86
- // Private Methods //
87
- ////////////////////////////////////////////////////////////////////////////////////////
88
- ////////////////////////////////////////////////////////////////////////////////////////
89
- // Listeners //
90
- ////////////////////////////////////////////////////////////////////////////////////////
91
  }
1
+ <?php
2
+
3
+ class FMModelThemes_fm {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function get_rows_data() {
22
+ global $wpdb;
23
+ $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE title LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
24
+ $asc_or_desc = ((isset($_POST['asc_or_desc']) && $_POST['asc_or_desc'] == 'desc') ? 'desc' : 'asc');
25
+ $order_by_array = array('id', 'title', 'default');
26
+ $order_by = isset($_POST['order_by']) && in_array(esc_html(stripslashes($_POST['order_by'])), $order_by_array) ? esc_html(stripslashes($_POST['order_by'])) : 'id';
27
+ $order_by = ' ORDER BY `' . $order_by . '` ' . $asc_or_desc;
28
+ if (isset($_POST['page_number']) && $_POST['page_number']) {
29
+ $limit = ((int) $_POST['page_number'] - 1) * 20;
30
+ }
31
+ else {
32
+ $limit = 0;
33
+ }
34
+ $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_themes " . $where . $order_by . " LIMIT " . $limit . ",20";
35
+ $rows = $wpdb->get_results($query);
36
+ return $rows;
37
+ }
38
+
39
+ public function get_row_data($id, $reset) {
40
+ global $wpdb;
41
+ if ($id != 0) {
42
+ $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE id="%d"', $id));
43
+ if ($reset) {
44
+ if (!$row->default) {
45
+ $row_id = $row->id;
46
+ $row_title = $row->title;
47
+ $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker_themes WHERE default="%d"', 1));
48
+ $row->id = $row_id;
49
+ $row->title = $row_title;
50
+ $row->default = FALSE;
51
+ }
52
+ else {
53
+ $row->css = '';
54
+ }
55
+ }
56
+ }
57
+ else {
58
+ $row = new stdClass();
59
+ $row->id = 0;
60
+ $row->title = '';
61
+ $row->css = '';
62
+ $row->default = 0;
63
+ }
64
+ return $row;
65
+ }
66
+
67
+ public function page_nav() {
68
+ global $wpdb;
69
+ $where = ((isset($_POST['search_value']) && (esc_html($_POST['search_value']) != '')) ? 'WHERE title LIKE "%' . esc_html($_POST['search_value']) . '%"' : '');
70
+ $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "formmaker_themes " . $where;
71
+ $total = $wpdb->get_var($query);
72
+ $page_nav['total'] = $total;
73
+ if (isset($_POST['page_number']) && $_POST['page_number']) {
74
+ $limit = ((int) $_POST['page_number'] - 1) * 20;
75
+ }
76
+ else {
77
+ $limit = 0;
78
+ }
79
+ $page_nav['limit'] = (int) ($limit / 20 + 1);
80
+ return $page_nav;
81
+ }
82
+ ////////////////////////////////////////////////////////////////////////////////////////
83
+ // Getters & Setters //
84
+ ////////////////////////////////////////////////////////////////////////////////////////
85
+ ////////////////////////////////////////////////////////////////////////////////////////
86
+ // Private Methods //
87
+ ////////////////////////////////////////////////////////////////////////////////////////
88
+ ////////////////////////////////////////////////////////////////////////////////////////
89
+ // Listeners //
90
+ ////////////////////////////////////////////////////////////////////////////////////////
91
  }
admin/models/FMModelWidget.php CHANGED
@@ -1,38 +1,38 @@
1
- <?php
2
-
3
- class FMModelWidget {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
-
22
- public function get_gallery_rows_data() {
23
- global $wpdb;
24
- $query = "SELECT * FROM " . $wpdb->prefix . "formmaker order by `title`";
25
- $rows = $wpdb->get_results($query);
26
- return $rows;
27
- }
28
-
29
- ////////////////////////////////////////////////////////////////////////////////////////
30
- // Getters & Setters //
31
- ////////////////////////////////////////////////////////////////////////////////////////
32
- ////////////////////////////////////////////////////////////////////////////////////////
33
- // Private Methods //
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- ////////////////////////////////////////////////////////////////////////////////////////
36
- // Listeners //
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
  }
1
+ <?php
2
+
3
+ class FMModelWidget {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+
22
+ public function get_gallery_rows_data() {
23
+ global $wpdb;
24
+ $query = "SELECT * FROM " . $wpdb->prefix . "formmaker order by `title`";
25
+ $rows = $wpdb->get_results($query);
26
+ return $rows;
27
+ }
28
+
29
+ ////////////////////////////////////////////////////////////////////////////////////////
30
+ // Getters & Setters //
31
+ ////////////////////////////////////////////////////////////////////////////////////////
32
+ ////////////////////////////////////////////////////////////////////////////////////////
33
+ // Private Methods //
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ ////////////////////////////////////////////////////////////////////////////////////////
36
+ // Listeners //
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
  }
admin/views/FMViewFormMakerEditCSS.php CHANGED
@@ -1,135 +1,135 @@
1
- <?php
2
-
3
- class FMViewFormMakerEditCSS {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $theme_id = ((isset($_GET['id'])) ? esc_html(stripslashes($_GET['id'])) : '');
27
- $form_id = ((isset($_GET['form_id'])) ? esc_html(stripslashes($_GET['form_id'])) : 0);
28
- $row = $this->model->get_theme_row($theme_id);
29
- wp_print_scripts('jquery');
30
-
31
- ?>
32
- <link media="all" type="text/css" href="<?php echo get_admin_url(); ?>load-styles.php?c=1&amp;dir=ltr&amp;load=admin-bar,dashicons,wp-admin,buttons,wp-auth-check" rel="stylesheet">
33
- <link media="all" type="text/css" href="<?php echo get_admin_url(); ?>css/colors<?php echo ((get_bloginfo('version') < '3.8') ? '-fresh' : ''); ?>.min.css" id="colors-css" rel="stylesheet">
34
- <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/form_maker_tables.css'; ?>" rel="stylesheet">
35
- <script src="<?php echo WD_FM_URL . '/js/form_maker_admin.js'; ?>" type="text/javascript"></script>
36
- <script src="<?php echo WD_FM_URL . '/js/layout/codemirror.js'; ?>" type="text/javascript"></script>
37
- <script src="<?php echo WD_FM_URL . '/js/layout/formatting.js'; ?>" type="text/javascript"></script>
38
- <script src="<?php echo WD_FM_URL . '/js/layout/css.js'; ?>" type="text/javascript"></script>
39
- <script src="<?php echo WD_FM_URL . '/js/layout/clike.js'; ?>" type="text/javascript"></script>
40
- <script src="<?php echo WD_FM_URL . '/js/layout/javascript.js'; ?>" type="text/javascript"></script>
41
- <script src="<?php echo WD_FM_URL . '/js/layout/htmlmixed.js'; ?>" type="text/javascript"></script>
42
- <script src="<?php echo WD_FM_URL . '/js/layout/xml.js'; ?>" type="text/javascript"></script>
43
- <script src="<?php echo WD_FM_URL . '/js/layout/php.js'; ?>" type="text/javascript"></script>
44
- <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/codemirror.css'; ?>" rel="stylesheet">
45
-
46
- <style>
47
- .CodeMirror {
48
- border: 1px solid #ccc;
49
- font-size: 12px;
50
- margin-bottom: 6px;
51
- background: white;
52
- }
53
- </style>
54
-
55
- <form id="fm_theme" class="wrap wp-core-ui" method="post" action="#" style="width: 99%; padding-left:3px;">
56
- <div class="fm-page-header">
57
- <div class="fm-page-actions">
58
- <button class="fm-button save-button small" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('save'); window.parent.jQuery('#theme option[value=<?php echo $theme_id; ?>]').html(jQuery('#title').val()); window.parent.tb_remove();">
59
- <span></span>
60
- Save
61
- </button>
62
- <button class="fm-button apply-button small" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('apply'); window.parent.jQuery('#theme option[value=<?php echo $theme_id; ?>]').html(jQuery('#title').val()); return false;">
63
- <span></span>
64
- Apply
65
- </button>
66
- <button class="fm-button save-as-copy-button medium" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('save_as_new'); window.parent.jQuery('#theme').append('<option value=0>' + jQuery('#title').val() + '</option>'); window.parent.tb_remove(); return false;">
67
- <span></span>
68
- Save as New
69
- </button>
70
- <button class="fm-button undo-button small" onclick="fm_reset_theme(); return false;">
71
- <span></span>
72
- Reset
73
- </button>
74
- <button class="fm-button cancel-button small" onclick="window.parent.tb_remove();">
75
- <span></span>
76
- Cancel
77
- </button>
78
- </div>
79
- <div class="fm-clear"></div>
80
- </div>
81
- <table style="clear: both;">
82
- <tbody>
83
- <tr>
84
- <td class="fm_label"><label for="title">Theme title: <span style="color:#FF0000;"> * </span> </label></td>
85
- <td><input type="text" id="title" name="title" value="<?php echo $row->title; ?>" class="fm_text_input" /></td>
86
- </tr>
87
- <tr>
88
- <td class="fm_label"><label for="css">Css: </label></td>
89
- <td style="width: 90%;"><textarea id="css" name="css" rows="25" style="width: 100%;"><?php echo htmlspecialchars($row->css); ?></textarea></td>
90
- </tr>
91
- </tbody>
92
- </table>
93
- <div style="display: none;" id="main_theme"><?php echo str_replace('"', '\"', $row->css); ?></div>
94
- <input type="hidden" id="task" name="task" value="" />
95
- <input type="hidden" id="current_id" name="current_id" value="<?php echo $row->id; ?>" />
96
- <input type="hidden" id="default" name="default" value="<?php echo $row->default; ?>" />
97
- <input type="hidden" name="form_id" id="form_id" value="<?php echo $form_id; ?>" />
98
- </form>
99
- <script>
100
- var editor = CodeMirror.fromTextArea(
101
- document.getElementById("css"), {
102
- lineNumbers: true,
103
- lineWrapping: true,
104
- mode: "css"
105
- });
106
-
107
- CodeMirror.commands["selectAll"](editor);
108
- editor.autoFormatRange(editor.getCursor(true), editor.getCursor(false));
109
- editor.scrollTo(0,0);
110
-
111
- function fm_save_theme(task) {
112
- fm_set_input_value('task', task);
113
- document.getElementById('fm_theme').submit();
114
- }
115
-
116
- function fm_reset_theme() {
117
- editor.setValue(jQuery('#main_theme').html())
118
- jQuery('#css').val(jQuery('#main_theme').html());
119
- }
120
-
121
- </script>
122
- <?php
123
- die();
124
- }
125
-
126
- ////////////////////////////////////////////////////////////////////////////////////////
127
- // Getters & Setters //
128
- ////////////////////////////////////////////////////////////////////////////////////////
129
- ////////////////////////////////////////////////////////////////////////////////////////
130
- // Private Methods //
131
- ////////////////////////////////////////////////////////////////////////////////////////
132
- ////////////////////////////////////////////////////////////////////////////////////////
133
- // Listeners //
134
- ////////////////////////////////////////////////////////////////////////////////////////
135
  }
1
+ <?php
2
+
3
+ class FMViewFormMakerEditCSS {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $theme_id = ((isset($_GET['id'])) ? esc_html(stripslashes($_GET['id'])) : '');
27
+ $form_id = ((isset($_GET['form_id'])) ? esc_html(stripslashes($_GET['form_id'])) : 0);
28
+ $row = $this->model->get_theme_row($theme_id);
29
+ wp_print_scripts('jquery');
30
+
31
+ ?>
32
+ <link media="all" type="text/css" href="<?php echo get_admin_url(); ?>load-styles.php?c=1&amp;dir=ltr&amp;load=admin-bar,dashicons,wp-admin,buttons,wp-auth-check" rel="stylesheet">
33
+ <link media="all" type="text/css" href="<?php echo get_admin_url(); ?>css/colors<?php echo ((get_bloginfo('version') < '3.8') ? '-fresh' : ''); ?>.min.css" id="colors-css" rel="stylesheet">
34
+ <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/form_maker_tables.css'; ?>" rel="stylesheet">
35
+ <script src="<?php echo WD_FM_URL . '/js/form_maker_admin.js'; ?>" type="text/javascript"></script>
36
+ <script src="<?php echo WD_FM_URL . '/js/layout/codemirror.js'; ?>" type="text/javascript"></script>
37
+ <script src="<?php echo WD_FM_URL . '/js/layout/formatting.js'; ?>" type="text/javascript"></script>
38
+ <script src="<?php echo WD_FM_URL . '/js/layout/css.js'; ?>" type="text/javascript"></script>
39
+ <script src="<?php echo WD_FM_URL . '/js/layout/clike.js'; ?>" type="text/javascript"></script>
40
+ <script src="<?php echo WD_FM_URL . '/js/layout/javascript.js'; ?>" type="text/javascript"></script>
41
+ <script src="<?php echo WD_FM_URL . '/js/layout/htmlmixed.js'; ?>" type="text/javascript"></script>
42
+ <script src="<?php echo WD_FM_URL . '/js/layout/xml.js'; ?>" type="text/javascript"></script>
43
+ <script src="<?php echo WD_FM_URL . '/js/layout/php.js'; ?>" type="text/javascript"></script>
44
+ <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/codemirror.css'; ?>" rel="stylesheet">
45
+
46
+ <style>
47
+ .CodeMirror {
48
+ border: 1px solid #ccc;
49
+ font-size: 12px;
50
+ margin-bottom: 6px;
51
+ background: white;
52
+ }
53
+ </style>
54
+
55
+ <form id="fm_theme" class="wrap wp-core-ui" method="post" action="#" style="width: 99%; padding-left:3px;">
56
+ <div class="fm-page-header">
57
+ <div class="fm-page-actions">
58
+ <button class="fm-button save-button small" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('save'); window.parent.jQuery('#theme option[value=<?php echo $theme_id; ?>]').html(jQuery('#title').val()); window.parent.tb_remove();">
59
+ <span></span>
60
+ Save
61
+ </button>
62
+ <button class="fm-button apply-button small" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('apply'); window.parent.jQuery('#theme option[value=<?php echo $theme_id; ?>]').html(jQuery('#title').val()); return false;">
63
+ <span></span>
64
+ Apply
65
+ </button>
66
+ <button class="fm-button save-as-copy-button medium" onclick="if (fm_check_required('title', 'Theme title')) {return false;}; fm_save_theme('save_as_new'); window.parent.jQuery('#theme').append('<option value=0>' + jQuery('#title').val() + '</option>'); window.parent.tb_remove(); return false;">
67
+ <span></span>
68
+ Save as New
69
+ </button>
70
+ <button class="fm-button undo-button small" onclick="fm_reset_theme(); return false;">
71
+ <span></span>
72
+ Reset
73
+ </button>
74
+ <button class="fm-button cancel-button small" onclick="window.parent.tb_remove();">
75
+ <span></span>
76
+ Cancel
77
+ </button>
78
+ </div>
79
+ <div class="fm-clear"></div>
80
+ </div>
81
+ <table style="clear: both;">
82
+ <tbody>
83
+ <tr>
84
+ <td class="fm_label"><label for="title">Theme title: <span style="color:#FF0000;"> * </span> </label></td>
85
+ <td><input type="text" id="title" name="title" value="<?php echo $row->title; ?>" class="fm_text_input" /></td>
86
+ </tr>
87
+ <tr>
88
+ <td class="fm_label"><label for="css">Css: </label></td>
89
+ <td style="width: 90%;"><textarea id="css" name="css" rows="25" style="width: 100%;"><?php echo htmlspecialchars($row->css); ?></textarea></td>
90
+ </tr>
91
+ </tbody>
92
+ </table>
93
+ <div style="display: none;" id="main_theme"><?php echo str_replace('"', '\"', $row->css); ?></div>
94
+ <input type="hidden" id="task" name="task" value="" />
95
+ <input type="hidden" id="current_id" name="current_id" value="<?php echo $row->id; ?>" />
96
+ <input type="hidden" id="default" name="default" value="<?php echo $row->default; ?>" />
97
+ <input type="hidden" name="form_id" id="form_id" value="<?php echo $form_id; ?>" />
98
+ </form>
99
+ <script>
100
+ var editor = CodeMirror.fromTextArea(
101
+ document.getElementById("css"), {
102
+ lineNumbers: true,
103
+ lineWrapping: true,
104
+ mode: "css"
105
+ });
106
+
107
+ CodeMirror.commands["selectAll"](editor);
108
+ editor.autoFormatRange(editor.getCursor(true), editor.getCursor(false));
109
+ editor.scrollTo(0,0);
110
+
111
+ function fm_save_theme(task) {
112
+ fm_set_input_value('task', task);
113
+ document.getElementById('fm_theme').submit();
114
+ }
115
+
116
+ function fm_reset_theme() {
117
+ editor.setValue(jQuery('#main_theme').html())
118
+ jQuery('#css').val(jQuery('#main_theme').html());
119
+ }
120
+
121
+ </script>
122
+ <?php
123
+ die();
124
+ }
125
+
126
+ ////////////////////////////////////////////////////////////////////////////////////////
127
+ // Getters & Setters //
128
+ ////////////////////////////////////////////////////////////////////////////////////////
129
+ ////////////////////////////////////////////////////////////////////////////////////////
130
+ // Private Methods //
131
+ ////////////////////////////////////////////////////////////////////////////////////////
132
+ ////////////////////////////////////////////////////////////////////////////////////////
133
+ // Listeners //
134
+ ////////////////////////////////////////////////////////////////////////////////////////
135
  }
admin/views/FMViewFormMakerSQLMapping.php CHANGED
@@ -1,1467 +1,1467 @@
1
- <?php
2
-
3
- class FMViewFormMakerSQLMapping {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
-
26
- public function edit_query($id, $form_id) {
27
- wp_print_scripts('jquery');
28
- wp_print_scripts('jquery-ui-tooltip');
29
- ?>
30
- <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/style.css'; ?>" rel="stylesheet">
31
- <link rel="stylesheet" href="<?php echo WD_FM_URL . '/css/jquery-ui-1.10.3.custom.css'; ?>">
32
- <?php
33
- $label = $this->model->get_labels($form_id);
34
- $query_obj = $this->model->get_query($id);
35
-
36
- $temp = explode('***wdfcon_typewdf***',$query_obj->details);
37
- $con_type = $temp[0];
38
- $temp = explode('***wdfcon_methodwdf***',$temp[1]);
39
- $con_method = $temp[0];
40
- $temp = explode('***wdftablewdf***',$temp[1]);
41
- $table_cur = $temp[0];
42
- $temp = explode('***wdfhostwdf***',$temp[1]);
43
- $host = $temp[0];
44
- $temp = explode('***wdfportwdf***',$temp[1]);
45
- $port = $temp[0];
46
- $temp = explode('***wdfusernamewdf***',$temp[1]);
47
- $username = $temp[0];
48
- $temp = explode('***wdfpasswordwdf***',$temp[1]);
49
- $password = $temp[0];
50
- $temp = explode('***wdfdatabasewdf***',$temp[1]);
51
- $database = $temp[0];
52
- $details = $temp[1];
53
-
54
- $tables = $this->model->get_tables_saved($con_type, $username, $password, $database, $host);
55
- $table_struct = $this->model->get_table_struct_saved($con_type, $username, $password, $database, $host, $table_cur, $con_method);
56
-
57
- $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
58
- $label_id= array();
59
- $label_order= array();
60
- $label_order_original= array();
61
- $label_type= array();
62
-
63
- $label_all = explode('#****#',$label);
64
- $label_all = array_slice($label_all,0, count($label_all)-1);
65
-
66
- foreach($label_all as $key => $label_each) {
67
- $label_id_each=explode('#**id**#',$label_each);
68
- $label_oder_each=explode('#**label**#', $label_id_each[1]);
69
-
70
- if(in_array($label_oder_each[1],$filter_types))
71
- continue;
72
-
73
- array_push($label_id, $label_id_each[0]);
74
- array_push($label_order_original, $label_oder_each[0]);
75
- $ptn = "/[^a-zA-Z0-9_]/";
76
- $rpltxt = "";
77
- $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
78
- array_push($label_order, $label_temp);
79
- array_push($label_type, $label_oder_each[1]);
80
- }
81
-
82
- $form_fields='';
83
- foreach($label_id as $key => $lid) {
84
- $form_fields.='<a onclick="insert_field('.$lid.'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$label_order_original[$key].'</a>';
85
- }
86
- $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
87
- foreach($user_fields as $user_key=>$user_field) {
88
- $form_fields.='<a onclick="insert_field(\''.$user_key.'\'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$user_field.'</a>';
89
- }
90
-
91
- $cond='<div id="condid"><select id="sel_condid" style="width: 160px">';
92
- foreach($table_struct as $col) {
93
- $cond.='<option>'.str_replace("'", "SingleQuot", $col->Field).'</option>';
94
- }
95
- $cond.='</select>';
96
- $cond.='<select id="op_condid"><option value="=" selected="selected">=</option><option value="!=">!=</option><option value=">">&gt;</option><option value="<">&lt;</option><option value=">=">&gt;=</option><option value="<=">&lt;=</option><option value="%..%">Like</option><option value="%..">Starts with</option><option value="..%">Ends with</option></select><input id="val_condid" style="width:170px" type="text" /><select id="andor_condid" style="visibility: hidden;"><option value="AND">AND</option><option value="OR">OR</option></select><img src="' . WD_FM_URL . '/images/delete.png?ver='. get_option("wd_form_maker_version").'" onclick="delete_cond(&quot;condid&quot;)" style="vertical-align: middle;"></div>';
97
- ?>
98
- <script>
99
- function connect() {
100
- jQuery("input[type='radio']").attr('disabled','');
101
- jQuery('#struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
102
- jQuery("#struct").load('index.php?option=com_formmaker&task=db_tables&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&format=row');
103
- }
104
- jQuery(document).ready(function() {
105
- jQuery("#tables").change(function (){
106
- jQuery("#struct").removeClass("fm_loading");
107
- jQuery("#table_struct").load('index.php?option=com_formmaker&task=db_table_struct&name='+jQuery(this).val()+'&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row&id='+jQuery("#form_id").val());
108
- });
109
- jQuery('html').click(function() {
110
- if(jQuery("#fieldlist").css('display')=="block") {
111
- jQuery("#fieldlist").hide();
112
- }
113
- });
114
- jQuery('.cols input[type="text"]').on('click', function(event) {
115
- event.stopPropagation();
116
- jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
117
- jQuery("#fieldlist").css("left",jQuery(this).offset().left);
118
- jQuery("#fieldlist").slideDown('fast');
119
- selected_field=this.id;
120
- });
121
- jQuery('#query_txt').click(function(event) {
122
- event.stopPropagation();
123
- jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
124
- jQuery("#fieldlist").css("left",jQuery(this).offset().left);
125
- jQuery("#fieldlist").slideDown('fast');
126
- selected_field=this.id;
127
- });
128
- jQuery('#fieldlist').click(function(event){
129
- event.stopPropagation();
130
- });
131
- jQuery('.add_cond').click( function() {
132
- jQuery('.cols').append(conds.replace(/condid/g, cond_id++).replace('SingleQuot', "'"));
133
- update_vis();
134
- });
135
- });
136
- var selected_field ='';
137
- var isvisible = 1;
138
- var cond_id = 1;
139
- conds='<?php echo $cond ?>';
140
- fields=new Array(<?php
141
- $fields = "";
142
- if($table_struct) {
143
- foreach($table_struct as $col) {
144
- $fields.=' "'.$col->Field.'",';
145
- }
146
- echo substr($fields, 0, -1);
147
- }
148
- ?>);
149
-
150
- function dis(id, x) {
151
- if(x)
152
- jQuery('#'+id).removeAttr('disabled');
153
- else
154
- jQuery('#'+id).attr('disabled','disabled');
155
- }
156
- function update_vis() {
157
- previous=0;
158
- for(i=1; i<cond_id; i++) {
159
- if(jQuery('#'+i).html()) {
160
- jQuery('#andor_'+i).css('visibility', 'hidden');
161
- if(previous)
162
- jQuery('#andor_'+previous).css('visibility', 'visible');
163
- previous=i;
164
- }
165
- }
166
- }
167
- function delete_cond(id) {
168
- jQuery('#'+id).remove();
169
- update_vis();
170
- }
171
- function save_query() {
172
- con_type =jQuery('input[name=con_type]:checked').val();
173
- con_method =jQuery('input[name=con_method]:checked').val();
174
- table =jQuery('#tables').val();
175
- host =jQuery('#host_rem').val();
176
- port =jQuery('#port_rem').val();
177
- username =jQuery('#username_rem').val();
178
- password =jQuery('#password_rem').val();
179
- database =jQuery('#database_rem').val();
180
-
181
- str=con_type+"***wdfcon_typewdf***"+con_method+"***wdfcon_methodwdf***"+table+"***wdftablewdf***"+host+"***wdfhostwdf***"+port+"***wdfportwdf***"+username+"***wdfusernamewdf***"+password+"***wdfpasswordwdf***"+database+"***wdfdatabasewdf***";
182
-
183
- if(fields.length) {
184
- for(i=0; i<fields.length; i++) {
185
- str+=fields[i]+'***wdfnamewdf***'+jQuery('#'+fields[i]).val()+'***wdfvaluewdf***'+jQuery('#ch_'+fields[i]+":checked" ).length+'***wdffieldwdf***';
186
- }
187
- }
188
-
189
- for(i=1; i<cond_id; i++) {
190
- if(jQuery('#'+i).html()) {
191
- str+=jQuery('#sel_'+i).val()+'***sel***'+jQuery('#op_'+i).val()+'***op***'+jQuery('#val_'+i).val()+'***val***'+jQuery('#andor_'+i).val()+'***where***';
192
- }
193
- }
194
- if(!jQuery('#query_txt').val()) {
195
- gen_query();
196
- }
197
- jQuery('#details').val(str);
198
- var datatxt = jQuery("#query_form").serialize()+'&form_id='+jQuery("#form_id").val();
199
-
200
- if(jQuery('#query_txt').val()) {
201
- jQuery('.c1').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
202
-
203
- jQuery.ajax({
204
- type: "POST",
205
- url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => $id, 'form_id' => $form_id, 'task' => 'update_query', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
206
- data: datatxt,
207
- success: function(data) {
208
- window.parent.wd_fm_apply_options('apply_options');
209
- window.parent.tb_remove();
210
- }
211
- });
212
- }
213
- else {
214
- alert('The query is empty.');
215
- }
216
- return false;
217
- }
218
-
219
- function gen_query() {
220
- if(jQuery('#query_txt').val())
221
- if(!confirm('Are you sure you want to replace the Query? All the modifications to the Query will be lost.'))
222
- return;
223
- query="";
224
- fields=new Array(<?php
225
- $fields = "";
226
- if($table_struct) {
227
- foreach($table_struct as $col) {
228
- $fields.=' "'.str_replace("'", "SingleQuot", $col->Field).'",';
229
- }
230
- echo substr($fields, 0, -1);
231
- }
232
- ?>);
233
-
234
- con_type =jQuery('input[name=con_type]:checked').val();
235
- con_method =jQuery('input[name=con_method]:checked').val();
236
- table =jQuery('#tables').val();
237
- fls='';
238
- vals='';
239
- valsA=new Array();
240
- flsA=new Array();
241
-
242
- if(fields.length) {
243
- for(i=0; i<fields.length; i++) {
244
- if(jQuery('#ch_'+fields[i]+":checked" ).length) {
245
- flsA.push(fields[i]);
246
- valsA.push(jQuery('#'+fields[i]).val());
247
- }
248
- }
249
- }
250
- if(con_method=="insert") {
251
- if(flsA.length) {
252
- for(i=0; i<flsA.length-1; i++) {
253
- fls+= '`'+flsA[i]+'`, ';
254
- vals+= '"'+valsA[i]+'", ';
255
- }
256
- fls+= '`'+flsA[i]+'`';
257
- vals+= '"'+valsA[i]+'"';
258
- }
259
- if(fls)
260
- query="INSERT INTO "+jQuery('#tables').val()+" (" +fls+") VALUES ("+vals+")";
261
- }
262
-
263
- if(con_method=="update") {
264
- if(flsA.length) {
265
- for(i=0; i<flsA.length-1; i++) {
266
- vals+= '`'+flsA[i]+'`="'+valsA[i]+'", ';
267
- }
268
- vals+= '`'+flsA[i]+'`="'+valsA[i]+'"';
269
- }
270
- where="";
271
- previous='';
272
-
273
- for(i=1; i<cond_id; i++) {
274
- if(jQuery('#'+i).html()) {
275
- if(jQuery('#op_'+i).val()=="%..%")
276
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
277
- else if(jQuery('#op_'+i).val()=="%..")
278
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
279
- else if(jQuery('#op_'+i).val()=="..%")
280
- op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
281
- else
282
- op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
283
- where+=previous+' `'+jQuery('#sel_'+i).val()+'`'+op_val;
284
- previous=' '+ jQuery('#andor_'+i).val();
285
- }
286
- }
287
- if(vals)
288
- query="UPDATE "+jQuery('#tables').val()+" SET " + vals+(where? ' WHERE'+where: '') ;
289
- }
290
- if(con_method=="delete") {
291
- where="";
292
- previous='';
293
- for(i=1; i<cond_id; i++) {
294
- if(jQuery('#'+i).html()) {
295
- if(jQuery('#op_'+i).val()=="%..%")
296
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
297
- else if(jQuery('#op_'+i).val()=="%..")
298
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
299
- else if(jQuery('#op_'+i).val()=="..%")
300
- op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
301
- else
302
- op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
303
- where+=previous+' '+jQuery('#sel_'+i).val()+op_val;
304
- previous=' '+ jQuery('#andor_'+i).val();
305
- }
306
- }
307
- if(where)
308
- query="DELETE FROM "+jQuery('#tables').val()+ ' WHERE'+where ;
309
- }
310
- jQuery('#query_txt').val(query.replace("SingleQuot", "'"));
311
- }
312
-
313
- jQuery(document).ready(function () {
314
- jQuery(".hasTip").tooltip({
315
- track: true,
316
- content: function () {
317
- return jQuery(this).prop('title');
318
- }
319
- });
320
- });
321
-
322
- function insert_field(myValue) {
323
- if(!selected_field)
324
- return;
325
- myField=document.getElementById(selected_field);
326
- if (document.selection) {
327
- myField.focus();
328
- sel = document.selection.createRange();
329
- sel.text = myValue;
330
- }
331
- else {
332
- if (myField.selectionStart || myField.selectionStart == '0') {
333
- var startPos = myField.selectionStart;
334
- var endPos = myField.selectionEnd;
335
- myField.value = myField.value.substring(0, startPos)
336
- + "{"+myValue+"}"
337
- + myField.value.substring(endPos, myField.value.length);
338
- }
339
- else {
340
- myField.value += "{"+myValue+"}";
341
- }
342
- }
343
- }
344
- </script>
345
- <style>
346
- .c1 {
347
- padding: 0 10px;
348
- }
349
-
350
- .main_func{
351
- font-family: Segoe UI;
352
- display: inline-block;
353
- width: 550px;
354
- }
355
-
356
- .main_func .admintable {
357
- width: 100%;
358
- padding: 10px 0;
359
- margin-bottom: 15px;
360
- }
361
-
362
- .main_func .admintable .key{
363
- width: 36%;
364
- }
365
-
366
- .main_func .admintable input[type='text'],
367
- .main_func .admintable input[type='password']{
368
- padding: 4px 6px;
369
- width:244px;
370
- }
371
-
372
- .btn.connect {
373
- background:#4EC0D9;
374
- width:78px;
375
- height:32px;
376
- border:1px solid #4EC0D9;
377
- border-radius:0px;
378
- color:#fff;
379
- cursor:pointer;
380
- }
381
-
382
- .desc {
383
- font-size: 13px;
384
- display: inline-block;
385
- width: 265px;
386
- position: fixed;
387
- margin: 15px;
388
- margin-left: 45px;
389
- }
390
-
391
- .desc > div {
392
- margin-top:3px;
393
- }
394
-
395
- .desc div span {
396
- width: 62px;
397
- display: inline-block;
398
- }
399
-
400
- .desc button {
401
- max-width: 190px;
402
- overflow: hidden;
403
- white-space: nowrap;
404
- text-overflow: ellipsis;
405
- padding: 4px;
406
- background: #eee;
407
- border: 1px solid #ccc;
408
- border-radius:0px;
409
- height:27px;
410
- }
411
-
412
- .key label {
413
- display:inline-block;
414
- width:150px;
415
- }
416
-
417
- .select-db-label {
418
- display: inline-block;
419
- font-size: 16px;
420
- width: 201px;
421
-
422
- }
423
-
424
- .select-db-select {
425
- width:325px;
426
- padding:6px;
427
- }
428
-
429
- .struct {
430
- border: 3px solid red;
431
- padding: 4px 6px;
432
- display: inline-block;
433
- margin-top:10px;
434
- }
435
-
436
- .cols div:nth-child(even) {background: #FFF}
437
- .cols div:nth-child(odd) {background: #F5F5F5}
438
- .cols div {
439
- height: 28px;
440
- padding: 5px
441
- }
442
-
443
- .cols label {
444
- display: inline-block;
445
- width: 175px;
446
- font-size: 15px;
447
- overflow: hidden;
448
- white-space: nowrap;
449
- text-overflow: ellipsis;
450
- vertical-align: middle;
451
- }
452
-
453
- .cols input[type="text"] {
454
- width: 295px;
455
- line-height: 18px;
456
- height: 28px;
457
- border: 1px solid #ccc;
458
- padding: 0 3px;
459
- margin-right: 2px;
460
- }
461
-
462
- .cols input[type="text"]:disabled {
463
- cursor: not-allowed;
464
- background-color: #eee;
465
- }
466
-
467
- .cols input[type="checkbox"] {
468
- width: 20px;
469
- line-height: 18px;
470
- height: 20px;
471
- vertical-align: middle;
472
- }
473
-
474
- .cols select {
475
- line-height: 18px;
476
- height: 28px;
477
- margin-right: 2px;
478
- }
479
-
480
- #fieldlist {
481
- position: absolute;
482
- width:225px;
483
- background: #fff;
484
- border: solid 1px #c7c7c7;
485
- top: 0;
486
- left: 0;
487
- z-index: 1000;
488
- }
489
-
490
- #fieldlist a {
491
- padding: 5px;
492
- cursor:pointer;
493
- overflow: hidden;
494
- white-space: nowrap;
495
- text-overflow: ellipsis;
496
- }
497
-
498
- #fieldlist a:hover {
499
- background: #ccc;
500
- }
501
-
502
- .gen_query, .gen_query:focus {
503
- width: 148px;
504
- height: 38px;
505
- background: #4EC0D9;
506
- color: white;
507
- cursor: pointer;
508
- border: 0px;
509
- font-size: 14px;
510
- font-weight: bold;
511
- margin: 20px 0;
512
- border-radius: 0px;
513
- }
514
-
515
- .gen_query:active {
516
- background: #ccc;
517
- }
518
-
519
- .fm-query-save {
520
- float: right;
521
- font-size: 13px;
522
- margin: 0 20px;
523
- background: #4EC0D9;
524
- width: 83px;
525
- height: 34px;
526
- border: 1px solid #4EC0D9;
527
- border-radius: 0px;
528
- color: #fff;
529
- cursor: pointer;
530
- }
531
-
532
- .select-db-op {
533
- display: inline-block;
534
- text-align: right;
535
- font-weight: bold;
536
- font-size: 18px;
537
- padding: 5px 0;
538
- margin: 5px 0;
539
- background:none !important;
540
- }
541
-
542
- .select-db-op.where{
543
- width: 272px;
544
- }
545
-
546
- .select-db-op img{
547
- float:left;
548
- }
549
-
550
- .select-db-label {
551
- display: inline-block;
552
- font-size: 16px;
553
- width: 201px;
554
-
555
- }
556
- .select-db-select {
557
- width:325px;
558
- padding:6px;
559
- }
560
-
561
- .fm-query-save {
562
- float: right;
563
- font-size: 13px;
564
- margin: 0 20px;
565
- background: #4EC0D9;
566
- width: 83px;
567
- height: 34px;
568
- border: 1px solid #4EC0D9;
569
- border-radius: 0px;
570
- color: #fff;
571
- cursor: pointer;
572
- }
573
- </style>
574
- <div class="c1">
575
- <div class="main_func">
576
- <table class="admintable">
577
- <tr valign="top">
578
- <td class="key">
579
- <label style="font-size:20px;">Connection type: </label>
580
- </td>
581
- <td>
582
- <input type="radio" name="con_type" id="local" value="local" <?php if($con_type=='local') echo 'checked="checked"'?> disabled>
583
- <label for="local">Local</label>
584
- <input type="radio" name="con_type" id="remote" value="remote" <?php if($con_type=='remote') echo 'checked="checked"'?> disabled>
585
- <label for="remote">Remote</label>
586
- </td>
587
- <td rowspan="2">
588
- <input type="button" value="Connect" onclick="connect()" class="btn connect" disabled>
589
- </td>
590
- </tr>
591
- <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
592
- <td class="key">Host</td>
593
- <td>
594
- <input type="text" name="host" id="host_rem" style="width:150px" value="<?php echo $host; ?>" disabled>
595
- Port : <input type="text" name="port" id="port_rem" value="<?php echo $port; ?>" style="width:48px" disabled>
596
- </td>
597
- </tr>
598
- <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
599
- <td class="key">Username</td>
600
- <td>
601
- <input type="text" name="username" id="username_rem" value="<?php echo $username; ?>" disabled>
602
- </td>
603
- </tr>
604
- <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
605
- <td class="key">Password</td>
606
- <td>
607
- <input type="password" name="password" id="password_rem" value="<?php echo $password; ?>" disabled>
608
- </td>
609
- </tr>
610
- <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
611
- <td class="key">Database</td>
612
- <td>
613
- <input type="text"name="database" id="database_rem" value="<?php echo $database; ?>" disabled>
614
- </td>
615
- </tr>
616
- <tr valign="top">
617
- <td class="key">
618
- <label style="font-size:20px;">Type: </label>
619
- </td>
620
- <td>
621
- <input type="radio" name="con_method" id="insert" value="insert" <?php if($con_method=='insert') echo 'checked="checked"'?> disabled>
622
- <label for="insert">Insert</label>
623
- <input type="radio" name="con_method" id="update" value="update" <?php if($con_method=='update') echo 'checked="checked"'?> disabled>
624
- <label for="update">Update</label>
625
- <input type="radio" name="con_method" id="delete" value="delete" <?php if($con_method=='delete') echo 'checked="checked"'?> disabled>
626
- <label for="delete">Delete</label>
627
- </td>
628
- </tr>
629
- </table>
630
- <div id="struct">
631
- <label for="tables" class="select-db-label">Select a table</label>
632
- <select name="tables" id="tables" class="select-db-select" disabled>
633
- <option value="" ></option>
634
- <?php
635
- foreach($tables as $table) {
636
- echo '<option value="'.$table.'" '.($table_cur==$table ? 'selected' : '').' >'.$table.'</option>';
637
- }
638
- ?>
639
- </select>
640
- <br/>
641
- <div id="table_struct">
642
- <?php
643
- if($table_struct) {
644
- ?>
645
- <div class="struct">
646
- <div class="cols">
647
- <?php
648
- $temps=explode('***wdffieldwdf***',$details);
649
- $wheres = $temps[count($temps)-1];
650
- $temps = array_slice($temps,0, count($temps)-1);
651
- $col_names= array();
652
- $col_vals= array();
653
- $col_checks= array();
654
-
655
- foreach($temps as $temp) {
656
- $temp=explode('***wdfnamewdf***',$temp);
657
- array_push($col_names, $temp[0]);
658
- $temp=explode('***wdfvaluewdf***',$temp[1]);
659
- array_push($col_vals, $temp[0]);
660
- array_push($col_checks, $temp[1]);
661
- }
662
- if($con_method=='insert' or $con_method=='update') {
663
- echo '<div style="background: none;text-align: center;font-size: 20px;color: #000;font-weight: bold;"> SET </div>';
664
-
665
- foreach($table_struct as $key =>$col) {
666
- $title=' '.$col->Field;
667
- $title.="<ul style='padding-left: 17px;'>";
668
- $title.="<li>Type - ".$col->Type."</li>";
669
- $title.="<li>Null - ".$col->Null."</li>";
670
- $title.="<li>Key - ".$col->Key."</li>";
671
- $title.="<li>Default - ".$col->Default."</li>";
672
- $title.="<li>Extra - ".$col->Extra."</li>";
673
- $title.="</ul>";
674
- ?>
675
- <div><label title="<?php echo $title; ?>" class="hasTip"><b><?php echo $col->Field; ?></b><img src="<?php echo WD_FM_URL . '/images/info.png?ver='. get_option("wd_form_maker_version").''; ?>" style="width:20px; vertical-align:middle;padding-left: 10px;" /></label><input type="text" id="<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" <?php if(!$col_checks[$key]) echo 'disabled="disabled"'?> value="<?php echo $col_vals[$key]; ?>" /><input id="ch_<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" type="checkbox" onClick="dis('<?php echo str_replace("'", "SingleQuot", $col->Field); ?>', this.checked)" <?php if($col_checks[$key]) echo 'checked="checked"'?> /></div>
676
- <?php
677
- }
678
- }
679
-
680
- if($con_method=='delete' or $con_method=='update') {
681
- echo '<div class="select-db-op where"><img src="'.WD_FM_URL . '/images/add_condition.png?ver='. get_option("wd_form_maker_version").'" title="ADD" class="add_cond"/>WHERE</div>';
682
- if($wheres) {
683
- echo '<script>';
684
-
685
- $wheres = explode('***where***',$wheres);
686
- $wheres = array_slice($wheres,0, count($wheres)-1);
687
- foreach($wheres as $where) {
688
- $temp=explode('***sel***',$where);
689
- $sel = $temp[0];
690
- $temp=explode('***op***',$temp[1]);
691
- $op = $temp[0];
692
- $temp=explode('***val***',$temp[1]);
693
- $val = $temp[0];
694
- $andor = $temp[1];
695
- echo 'jQuery(".cols").append(conds.replace(/condid/g, cond_id++).replace(\'SingleQuot\', "\'")); update_vis();
696
- jQuery("#sel_"+(cond_id-1)).val("'.html_entity_decode($sel, ENT_QUOTES).'");
697
- jQuery("#op_"+(cond_id-1)).val("'.$op.'");
698
- jQuery("#val_"+(cond_id-1)).val("'.$val.'");
699
- jQuery("#andor_"+(cond_id-1)).val("'.$andor.'");';
700
- }
701
- echo '</script>';
702
- }
703
- }
704
- ?>
705
- </div>
706
- <div style="color:red; background: none">The changes above will not affect the query until you click "Generate query".</div>
707
- </div>
708
- <br/>
709
- <input type="button" value="Generate Query" class="gen_query" onclick="gen_query()">
710
- <br/>
711
- <form name="query_form" id="query_form" >
712
- <label style="vertical-align: top; width: 102px; display: inline-block;" for="query_txt" > Query: </label><textarea id="query_txt" name="query" rows=5 style="width:428px" ><?php echo $query_obj->query; ?></textarea>
713
- <input type="hidden" name="details" id="details">
714
- <input type="hidden" name="id" value="<?php echo $query_obj->id; ?>">
715
- </form>
716
- <input type="button" value="Save" class="fm-query-save" onclick="save_query()">
717
- <div id="fieldlist" style="display: none;">
718
- <?php echo $form_fields; ?>
719
- </div>
720
- <?php
721
- }
722
- ?>
723
- </div>
724
- </div>
725
- <input type="hidden" value="<?php echo $form_id ?>" id="form_id">
726
- </div>
727
- <div class="desc">
728
- <?php
729
- foreach($label_id as $key => $lid) {
730
- echo '<div>{'.$lid.'} - <button onclick="insert_field('.$lid.');">'.$label_order_original[$key].'</button></div>';
731
- }
732
- $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
733
- foreach($user_fields as $user_key=>$user_field) {
734
- echo '<div>{'.$user_key.'} - <button onclick="insert_field(\''.$user_key.'\');">'.$user_field.'</button></div>';
735
- }
736
- ?>
737
- </div>
738
- </div>
739
- <?php
740
- die();
741
- }
742
-
743
- public function add_query($form_id){
744
- wp_print_scripts('jquery');
745
- wp_print_scripts('jquery-ui-tooltip');
746
- ?>
747
- <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/style.css'; ?>" rel="stylesheet">
748
- <link rel="stylesheet" href="<?php echo WD_FM_URL . '/css/jquery-ui-1.10.3.custom.css'; ?>">
749
- <?php
750
- $label = $this->model->get_labels($form_id);
751
-
752
- $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
753
- $label_id= array();
754
- $label_order= array();
755
- $label_order_original= array();
756
- $label_type= array();
757
-
758
- $label_all = explode('#****#',$label);
759
- $label_all = array_slice($label_all,0, count($label_all)-1);
760
- foreach($label_all as $key => $label_each) {
761
- $label_id_each=explode('#**id**#',$label_each);
762
- $label_oder_each=explode('#**label**#', $label_id_each[1]);
763
-
764
- if(in_array($label_oder_each[1],$filter_types))
765
- continue;
766
- array_push($label_id, $label_id_each[0]);
767
- array_push($label_order_original, $label_oder_each[0]);
768
- $ptn = "/[^a-zA-Z0-9_]/";
769
- $rpltxt = "";
770
- $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
771
- array_push($label_order, $label_temp);
772
- array_push($label_type, $label_oder_each[1]);
773
- }
774
- ?>
775
- <script>
776
- function insert_field(){}
777
-
778
- function connect() {
779
- jQuery("input[type='radio']").attr('disabled','');
780
- jQuery(".connect").attr('disabled','');
781
- jQuery('#struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
782
- jQuery.ajax({
783
- type: "POST",
784
- url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'db_tables', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
785
- data: 'con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row',
786
- success: function(data) {
787
- jQuery("#struct").removeClass("fm_loading");
788
- if(data==1) {
789
- jQuery("#struct").html('<div style="font-size: 22px; text-align: center; padding-top: 15px;">Could not connect to MySQL.</div>')
790
- jQuery(".connect").removeAttr('disabled');
791
- jQuery("input[type='radio']").removeAttr('disabled','');
792
- }
793
- else {
794
- jQuery("#struct").html(data);
795
- }
796
-
797
- }
798
- });
799
- }
800
-
801
- function shh(x) {
802
- if(x)
803
- jQuery(".remote_info").show();
804
- else
805
- jQuery(".remote_info").hide();
806
- }
807
- </script>
808
- <style>
809
- .c1 {
810
- padding: 0 10px;
811
- }
812
-
813
- .main_func{
814
- font-family: Segoe UI;
815
- display: inline-block;
816
- width: 550px;
817
- }
818
-
819
- .main_func .admintable {
820
- width: 100%;
821
- padding: 10px 0;
822
- margin-bottom: 15px;
823
- }
824
-
825
- .main_func .admintable .key{
826
- width: 36%;
827
- }
828
-
829
- .main_func .admintable input[type='text'],
830
- .main_func .admintable input[type='password']{
831
- padding: 4px 6px;
832
- width:244px;
833
- }
834
-
835
- .btn.connect {
836
- background:#4EC0D9;
837
- width:78px;
838
- height:32px;
839
- border:1px solid #4EC0D9;
840
- border-radius:0px;
841
- color:#fff;
842
- cursor:pointer;
843
- }
844
-
845
- .desc {
846
- font-size: 13px;
847
- display: inline-block;
848
- width: 265px;
849
- position: fixed;
850
- margin: 15px;
851
- margin-left: 45px;
852
- }
853
-
854
- .desc > div {
855
- margin-top:3px;
856
- }
857
-
858
- .desc div span {
859
- width: 62px;
860
- display: inline-block;
861
- }
862
-
863
- .desc button {
864
- max-width: 190px;
865
- overflow: hidden;
866
- white-space: nowrap;
867
- text-overflow: ellipsis;
868
- padding: 4px;
869
- background: #eee;
870
- border: 1px solid #ccc;
871
- border-radius:0px;
872
- height:27px;
873
- }
874
-
875
- .key label {
876
- display:inline-block;
877
- width:150px;
878
- }
879
-
880
- .select-db-label {
881
- display: inline-block;
882
- font-size: 16px;
883
- width: 201px;
884
-
885
- }
886
-
887
- .select-db-select {
888
- width:325px;
889
- padding:6px;
890
- }
891
- </style>
892
- <div class="c1">
893
- <div class="main_func">
894
- <table class="admintable">
895
- <tr valign="top">
896
- <td class="key">
897
- <label style="font-size:20px;">Connection type: </label>
898
- </td>
899
- <td>
900
- <input type="radio" name="con_type" id="local" value="local" checked="checked" onclick="shh(false)">
901
- <label for="local">Local</label>
902
- <input type="radio" name="con_type" id="remote" value="remote" onclick="shh(true)">
903
- <label for="remote">Remote</label>
904
- </td>
905
- <td rowspan="2">
906
- <input type="button" value="Connect" onclick="connect()" class="btn connect">
907
- </td>
908
- </tr>
909
- <tr class="remote_info" style="display:none">
910
- <td class="key">Host</td>
911
- <td>
912
- <input type="text" name="host" id="host_rem" style="width:150px">
913
- Port : <input type="text" name="port" id="port_rem" value="3306" style="width:48px">
914
- </td>
915
- </tr>
916
- <tr class="remote_info" style="display:none">
917
- <td class="key">Username</td>
918
- <td>
919
- <input type="text" name="username" id="username_rem">
920
- </td>
921
- </tr>
922
- <tr class="remote_info" style="display:none">
923
- <td class="key">Password</td>
924
- <td>
925
- <input type="password" name="password" id="password_rem">
926
- </td>
927
- </tr>
928
- <tr class="remote_info" style="display:none">
929
- <td class="key">Database</td>
930
- <td>
931
- <input type="text"name="database" id="database_rem">
932
- </td>
933
- </tr>
934
- <tr valign="top">
935
- <td class="key">
936
- <label style="font-size:20px;">Type: </label>
937
- </td>
938
- <td >
939
- <input type="radio" name="con_method" id="insert" value="insert" checked="checked">
940
- <label for="insert">Insert</label>
941
- <input type="radio" name="con_method" id="update" value="update">
942
- <label for="update">Update</label>
943
- <input type="radio" name="con_method" id="delete" value="delete">
944
- <label for="delete">Delete</label>
945
- </td>
946
- </tr>
947
- </table>
948
- <div id="struct">
949
- </div>
950
- <input type="hidden" value="<?php echo $form_id ?>" id="form_id">
951
- </div>
952
- <div class="desc">
953
- <?php
954
- foreach($label_id as $key => $lid) {
955
- echo '<div><span>{'.$lid.'}</span> - <button onclick="insert_field('.$lid.');">'.$label_order_original[$key].'</button></div>';
956
- }
957
-
958
- $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
959
- foreach($user_fields as $user_key=>$user_field) {
960
- echo '<div><span>{'.$user_key.'}</span> - <button onclick="insert_field(\''.$user_key.'\');">'.$user_field.'</button></div>';
961
- }
962
- ?>
963
- </div>
964
- </div>
965
- <?php
966
- die();
967
- }
968
-
969
- public function db_tables($form_id){
970
- $tables = $this->model->get_tables();
971
- ?>
972
- <label for="tables" class="select-db-label">Select a table</label>
973
- <select name="tables" id="tables" class="select-db-select">
974
- <option value="" ></option>
975
- <?php
976
- foreach($tables as $table) {
977
- echo '<option value="' . $table . '" >' . $table . '</option>';
978
- }
979
- ?>
980
- </select>
981
- <br/>
982
- <div id="table_struct">
983
- </div>
984
- <script>
985
- jQuery("#tables").change(function (){
986
- jQuery('#table_struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
987
- jQuery.ajax({
988
- type: "POST",
989
- url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'db_table_struct', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
990
- data: 'name='+jQuery(this).val()+'&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row',
991
- success: function(data) {
992
- jQuery("#table_struct").removeClass("fm_loading");
993
- jQuery("#table_struct").html(data);
994
- }
995
- });
996
- })
997
- </script>
998
- <?php
999
- die();
1000
- }
1001
-
1002
- public function db_table_struct ($form_id) {
1003
- $table_struct = $this->model->get_table_struct();
1004
- $label = $this->model->get_labels($form_id);
1005
- $con_method = isset($_POST['con_method']) ? $_POST['con_method'] : '';
1006
- $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
1007
- $label_id= array();
1008
- $label_order= array();
1009
- $label_order_original= array();
1010
- $label_type= array();
1011
-
1012
- ///stexic
1013
- $label_all = explode('#****#',$label);
1014
- $label_all = array_slice($label_all,0, count($label_all)-1);
1015
-
1016
- foreach($label_all as $key => $label_each) {
1017
- $label_id_each=explode('#**id**#',$label_each);
1018
- $label_oder_each=explode('#**label**#', $label_id_each[1]);
1019
-
1020
- if(in_array($label_oder_each[1],$filter_types)) {
1021
- continue;
1022
- }
1023
- array_push($label_id, $label_id_each[0]);
1024
- array_push($label_order_original, $label_oder_each[0]);
1025
- $ptn = "/[^a-zA-Z0-9_]/";
1026
- $rpltxt = "";
1027
- $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
1028
- array_push($label_order, $label_temp);
1029
- array_push($label_type, $label_oder_each[1]);
1030
- }
1031
- $form_fields='';
1032
- foreach($label_id as $key => $id) {
1033
- $form_fields.='<a onclick="insert_field('.$id.'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$label_order_original[$key].'</a>';
1034
- }
1035
- $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
1036
- foreach($user_fields as $user_key=>$user_field) {
1037
- $form_fields.='<a onclick="insert_field(\''.$user_key.'\'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$user_field.'</a>';
1038
- }
1039
- $cond='<div id="condid"><select id="sel_condid" style="width: 160px">';
1040
- foreach($table_struct as $col) {
1041
- $cond.='<option>'.str_replace("'", "SingleQuot", $col->Field).'</option>';
1042
- }
1043
- $cond.='</select>';
1044
-
1045
- $cond.='<select id="op_condid"><option value="=" selected="selected">=</option><option value="!=">!=</option><option value=">">&gt;</option><option value="<">&lt;</option><option value=">=">&gt;=</option><option value="<=">&lt;=</option><option value="%..%">Like</option><option value="%..">Starts with</option><option value="..%">Ends with</option></select><input id="val_condid" style="width:170px" type="text" /><select id="andor_condid" style="visibility: hidden;"><option value="AND">AND</option><option value="OR">OR</option></select><img src="' . WD_FM_URL . '/images/delete.png?ver='. get_option("wd_form_maker_version").'" onclick="delete_cond(&quot;condid&quot;)" style="vertical-align: middle;"></div>';
1046
- ?>
1047
- <script>
1048
- var selected_field ='';
1049
- var isvisible = 1;
1050
- var cond_id = 1;
1051
-
1052
- conds='<?php echo $cond ?>';
1053
- fields=new Array(<?php
1054
- $fields = "";
1055
- if($table_struct) {
1056
- foreach($table_struct as $col) {
1057
- $fields.=' "'.$col->Field.'",';
1058
- }
1059
- echo substr($fields, 0, -1);
1060
- }
1061
- ?>);
1062
- function dis(id, x) {
1063
- if(x)
1064
- jQuery('#'+id).removeAttr('disabled');
1065
- else
1066
- jQuery('#'+id).attr('disabled','disabled');
1067
- }
1068
-
1069
- function update_vis() {
1070
- previous=0;
1071
- for(i=1; i<cond_id; i++) {
1072
- if(jQuery('#'+i).html()) {
1073
- jQuery('#andor_'+i).css('visibility', 'hidden');
1074
- if(previous) {
1075
- jQuery('#andor_'+previous).css('visibility', 'visible');
1076
- }
1077
- previous=i;
1078
- }
1079
- }
1080
- }
1081
-
1082
- function delete_cond(id) {
1083
- jQuery('#'+id).remove();
1084
- update_vis();
1085
- }
1086
-
1087
- jQuery('.add_cond').click( function() {
1088
- jQuery('.cols').append(conds.replace(/condid/g, cond_id++).replace('SingleQuot', "'"));
1089
- update_vis();
1090
- });
1091
-
1092
- jQuery('html').click(function() {
1093
- if(jQuery("#fieldlist").css('display')=="block") {
1094
- jQuery("#fieldlist").hide();
1095
- }
1096
- });
1097
-
1098
- jQuery('.cols input[type="text"]').on('click', function(event) {
1099
- event.stopPropagation();
1100
- jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
1101
- jQuery("#fieldlist").css("left",jQuery(this).offset().left);
1102
- jQuery("#fieldlist").slideDown('fast');
1103
- selected_field=this.id;
1104
- });
1105
-
1106
- jQuery('#query_txt').click(function(event) {
1107
- event.stopPropagation();
1108
- jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
1109
- jQuery("#fieldlist").css("left",jQuery(this).offset().left);
1110
- jQuery("#fieldlist").slideDown('fast');
1111
- selected_field=this.id;
1112
- });
1113
-
1114
- jQuery('#fieldlist').click(function(event){
1115
- event.stopPropagation();
1116
- });
1117
-
1118
- function save_query() {
1119
- con_type =jQuery('input[name=con_type]:checked').val();
1120
- con_method =jQuery('input[name=con_method]:checked').val();
1121
- table =jQuery('#tables').val();
1122
- table =jQuery('#tables').val();
1123
- host =jQuery('#host_rem').val();
1124
- port =jQuery('#port_rem').val();
1125
- username =jQuery('#username_rem').val();
1126
- password =jQuery('#password_rem').val();
1127
- database =jQuery('#database_rem').val();
1128
-
1129
- str=con_type+"***wdfcon_typewdf***"+con_method+"***wdfcon_methodwdf***"+table+"***wdftablewdf***"+host+"***wdfhostwdf***"+port+"***wdfportwdf***"+username+"***wdfusernamewdf***"+password+"***wdfpasswordwdf***"+database+"***wdfdatabasewdf***";
1130
-
1131
- if(fields.length) {
1132
- for(i=0; i<fields.length; i++) {
1133
- str+=fields[i]+'***wdfnamewdf***'+jQuery('#'+fields[i]).val()+'***wdfvaluewdf***'+jQuery('#ch_'+fields[i]+":checked" ).length+'***wdffieldwdf***';
1134
- }
1135
- }
1136
-
1137
- for(i=1; i<cond_id; i++) {
1138
- if(jQuery('#'+i).html()) {
1139
- str+=jQuery('#sel_'+i).val()+'***sel***'+jQuery('#op_'+i).val()+'***op***'+jQuery('#val_'+i).val()+'***val***'+jQuery('#andor_'+i).val()+'***where***';
1140
- }
1141
- }
1142
-
1143
- if(!jQuery('#query_txt').val()) {
1144
- gen_query();
1145
- }
1146
-
1147
- jQuery('#details').val(str);
1148
-
1149
- var datatxt = jQuery("#query_form").serialize()+'&form_id='+jQuery("#form_id").val();
1150
- if(jQuery('#query_txt').val()) {
1151
- jQuery('.c1').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
1152
- jQuery.ajax({
1153
- type: "POST",
1154
- url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'save_query', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
1155
- data: datatxt,
1156
- success: function(data) {
1157
- window.parent.wd_fm_apply_options('apply_options');
1158
- window.parent.tb_remove();
1159
- }
1160
- });
1161
- }
1162
- else {
1163
- alert('The query is empty.');
1164
- }
1165
- return false;
1166
- }
1167
-
1168
- function gen_query() {
1169
- if(jQuery('#query_txt').val()) {
1170
- if(!confirm('Are you sure you want to replace the Query? All the modifications to the Query will be lost.')) {
1171
- return;
1172
- }
1173
- }
1174
- query="";
1175
- fields=new Array(<?php
1176
- $fields = "";
1177
- if($table_struct) {
1178
- foreach($table_struct as $col) {
1179
- $fields.=' "'.str_replace("'", "SingleQuot", $col->Field).'",';
1180
- }
1181
- echo substr($fields, 0, -1);
1182
- }
1183
- ?>);
1184
-
1185
- con_type =jQuery('input[name=con_type]:checked').val();
1186
- con_method =jQuery('input[name=con_method]:checked').val();
1187
- table =jQuery('#tables').val();
1188
- fls='';
1189
- vals='';
1190
- valsA=new Array();
1191
- flsA=new Array();
1192
-
1193
- if(fields.length) {
1194
- for(i=0; i<fields.length; i++) {
1195
- if(jQuery('#ch_'+fields[i]+":checked" ).length) {
1196
- flsA.push(fields[i]);
1197
- valsA.push(jQuery('#'+fields[i]).val());
1198
- }
1199
- }
1200
- }
1201
-
1202
- if(con_method=="insert") {
1203
- if(flsA.length) {
1204
- for(i=0; i<flsA.length-1; i++) {
1205
- fls+= '`'+flsA[i]+'`, ';
1206
- vals+= '"'+valsA[i]+'", ';
1207
- }
1208
- fls+= '`'+flsA[i]+'`';
1209
- vals+= '"'+valsA[i]+'"';
1210
- }
1211
- if(fls) {
1212
- query="INSERT INTO "+jQuery('#tables').val()+" (" +fls+") VALUES ("+vals+")";
1213
- }
1214
- }
1215
-
1216
- if(con_method=="update") {
1217
- if(flsA.length) {
1218
- for(i=0; i<flsA.length-1; i++) {
1219
- vals+= '`'+flsA[i]+'`="'+valsA[i]+'", ';
1220
- }
1221
- vals+= '`'+flsA[i]+'`="'+valsA[i]+'"';
1222
- }
1223
- where="";
1224
- previous='';
1225
- for(i=1; i<cond_id; i++) {
1226
- if(jQuery('#'+i).html()) {
1227
- if(jQuery('#op_'+i).val()=="%..%")
1228
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
1229
- else if(jQuery('#op_'+i).val()=="%..")
1230
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
1231
- else if(jQuery('#op_'+i).val()=="..%")
1232
- op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
1233
- else
1234
- op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
1235
- where+=previous+' `'+jQuery('#sel_'+i).val()+'`'+op_val;
1236
- previous=' '+ jQuery('#andor_'+i).val();
1237
- }
1238
- }
1239
- if(vals) {
1240
- query="UPDATE "+jQuery('#tables').val()+" SET " + vals+(where? ' WHERE'+where: '') ;
1241
- }
1242
- }
1243
-
1244
- if(con_method=="delete") {
1245
- where="";
1246
- previous='';
1247
- for(i=1; i<cond_id; i++) {
1248
- if(jQuery('#'+i).html()) {
1249
- if(jQuery('#op_'+i).val()=="%..%")
1250
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
1251
- else if(jQuery('#op_'+i).val()=="%..")
1252
- op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
1253
- else if(jQuery('#op_'+i).val()=="..%")
1254
- op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
1255
- else
1256
- op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
1257
- where+=previous+' '+jQuery('#sel_'+i).val()+op_val;
1258
- previous=' '+ jQuery('#andor_'+i).val();
1259
- }
1260
- }
1261
- if(where) {
1262
- query="DELETE FROM "+jQuery('#tables').val()+ ' WHERE'+where ;
1263
- }
1264
- }
1265
- jQuery('#query_txt').val(query.replace("SingleQuot", "'"));
1266
- }
1267
-
1268
- jQuery(document).ready(function () {
1269
- jQuery(".hasTip").tooltip({
1270
- track: true,
1271
- content: function () {
1272
- return jQuery(this).prop('title');
1273
- }
1274
- });
1275
- });
1276
-
1277
- function insert_field(myValue) {
1278
- if(!selected_field)
1279
- return;
1280
- myField=document.getElementById(selected_field);
1281
- if (document.selection) {
1282
- myField.focus();
1283
- sel = document.selection.createRange();
1284
- sel.text = myValue;
1285
- }
1286
- else {
1287
- if (myField.selectionStart || myField.selectionStart == '0') {
1288
- var startPos = myField.selectionStart;
1289
- var endPos = myField.selectionEnd;
1290
- myField.value = myField.value.substring(0, startPos)
1291
- + "{"+myValue+"}"
1292
- + myField.value.substring(endPos, myField.value.length);
1293
- }
1294
- else {
1295
- myField.value += "{"+myValue+"}";
1296
- }
1297
- }
1298
- }
1299
- </script>
1300
- <style>
1301
- .cols div:nth-child(even) {background: #FFF;}
1302
- .cols div:nth-child(odd) {background: #F5F5F5;}
1303
- .cols div {
1304
- height: 28px;
1305
- padding: 5px;
1306
- }
1307
-
1308
- .cols {
1309
- display: inline-block;
1310
- }
1311
-
1312
- .cols label {
1313
- display: inline-block;
1314
- width: 200px;
1315
- font-size: 15px;
1316
- overflow: hidden;
1317
- white-space: nowrap;
1318
- text-overflow: ellipsis;
1319
- vertical-align: middle;
1320
- }
1321
-
1322
- .cols input[type="text"] {
1323
- width: 295px;
1324
- line-height: 18px;
1325
- height: 28px;
1326
- border: 1px solid #ccc;
1327
- padding: 0 3px;
1328
- margin-right: 2px;
1329
- }
1330
-
1331
- .cols input[type="text"]:disabled {
1332
- cursor: not-allowed;
1333
- background-color: #eee;
1334
- }
1335
-
1336
- .cols input[type="checkbox"] {
1337
- width: 20px;
1338
- line-height: 18px;
1339
- height: 20px;
1340
- vertical-align: middle;
1341
- }
1342
-
1343
- .cols select {
1344
- line-height: 18px;
1345
- height: 28px;
1346
- margin-right: 2px;
1347
- }
1348
-
1349
- #fieldlist {
1350
- position: absolute;
1351
- width:225px;
1352
- background: #fff;
1353
- border: solid 1px #c7c7c7;
1354
- top: 0;
1355
- left: 0;
1356
- z-index: 1000;
1357
- }
1358
-
1359
- #fieldlist a {
1360
- padding: 5px;
1361
- cursor:pointer;
1362
- overflow: hidden;
1363
- white-space: nowrap;
1364
- text-overflow: ellipsis;
1365
- }
1366
-
1367
- #fieldlist a:hover {
1368
- background: #ccc;
1369
- }
1370
- .gen_query, .gen_query:focus {
1371
- width: 148px;
1372
- height: 38px;
1373
- background: #4EC0D9;
1374
- color: white;
1375
- cursor: pointer;
1376
- border: 0px;
1377
- font-size: 14px;
1378
- font-weight: bold;
1379
- margin: 20px 0;
1380
- border-radius: 0px;
1381
- }
1382
- .gen_query:active {
1383
- background: #ccc;
1384
- }
1385
-
1386
- .fm-query-save {
1387
- float: right;
1388
- font-size: 13px;
1389
- margin: 0 20px;
1390
- background: #4EC0D9;
1391
- width: 83px;
1392
- height: 34px;
1393
- border: 1px solid #4EC0D9;
1394
- border-radius: 0px;
1395
- color: #fff;
1396
- cursor: pointer;
1397
- }
1398
-
1399
- .select-db-op {
1400
- display: inline-block;
1401
- text-align: right;
1402
- font-weight: bold;
1403
- font-size: 18px;
1404
- padding: 5px 0;
1405
- margin: 5px 0;
1406
- background:none !important;
1407
- }
1408
-
1409
- .select-db-op.where{
1410
- width: 272px;
1411
- }
1412
-
1413
- .select-db-op img{
1414
- float:left;
1415
- }
1416
- </style>
1417
- <?php
1418
- if($table_struct) { ?>
1419
- <div class="cols">
1420
- <?php
1421
- if($con_method=='insert' or $con_method=='update') {
1422
- echo '<div style="background: none;text-align: center;font-size: 20px;color: #000;font-weight: bold;"> SET </div>';
1423
- foreach($table_struct as $col) {
1424
- $title=' '.$col->Field;
1425
- $title.="<ul style='padding-left: 17px;'>";
1426
- $title.="<li>Type - ".$col->Type."</li>";
1427
- $title.="<li>Null - ".$col->Null."</li>";
1428
- $title.="<li>Key - ".$col->Key."</li>";
1429
- $title.="<li>Default - ".$col->Default."</li>";
1430
- $title.="<li>Extra - ".$col->Extra."</li>";
1431
- $title.="</ul>";
1432
- ?>
1433
- <div><label title="<?php echo $title; ?>" class="hasTip"><b><?php echo $col->Field; ?></b><img src="<?php echo WD_FM_URL . '/images/info.png?ver='. get_option("wd_form_maker_version").''; ?>" style="width:20px; vertical-align:middle;padding-left: 10px;" /></label><input type="text" id="<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" disabled="disabled"/><input id="ch_<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" type="checkbox" onClick="dis('<?php echo str_replace("'", "SingleQuot", $col->Field); ?>', this.checked)"/></div>
1434
- <?php
1435
- }
1436
- }
1437
- if($con_method=='delete' or $con_method=='update') {
1438
- echo '<div class="select-db-op where"><img src="'.WD_FM_URL . '/images/add_condition.png?ver='. get_option("wd_form_maker_version").'" title="ADD" class="add_cond"/>WHERE</div>';
1439
- }
1440
- ?>
1441
- </div>
1442
- <br/>
1443
- <input type="button" value="Generate Query" class="gen_query" onclick="gen_query()">
1444
- <br/>
1445
- <form name="query_form" id="query_form" >
1446
- <label style="vertical-align: top; width: 102px; display: inline-block;" for="query_txt" > Query: </label><textarea id="query_txt" name="query" rows=5 style="width:428px"></textarea>
1447
- <input type="hidden" name="details" id="details">
1448
- </form>
1449
- <input type="button" value="Save" class="fm-query-save" onclick="save_query()">
1450
- <div id="fieldlist" style="display: none;">
1451
- <?php echo $form_fields ?>
1452
- </div>
1453
- <?php
1454
- }
1455
- die();
1456
- }
1457
-
1458
- ////////////////////////////////////////////////////////////////////////////////////////
1459
- // Getters & Setters //
1460
- ////////////////////////////////////////////////////////////////////////////////////////
1461
- ////////////////////////////////////////////////////////////////////////////////////////
1462
- // Private Methods //
1463
- ////////////////////////////////////////////////////////////////////////////////////////
1464
- ////////////////////////////////////////////////////////////////////////////////////////
1465
- // Listeners //
1466
- ////////////////////////////////////////////////////////////////////////////////////////
1467
  }
1
+ <?php
2
+
3
+ class FMViewFormMakerSQLMapping {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+
26
+ public function edit_query($id, $form_id) {
27
+ wp_print_scripts('jquery');
28
+ wp_print_scripts('jquery-ui-tooltip');
29
+ ?>
30
+ <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/style.css'; ?>" rel="stylesheet">
31
+ <link rel="stylesheet" href="<?php echo WD_FM_URL . '/css/jquery-ui-1.10.3.custom.css'; ?>">
32
+ <?php
33
+ $label = $this->model->get_labels($form_id);
34
+ $query_obj = $this->model->get_query($id);
35
+
36
+ $temp = explode('***wdfcon_typewdf***',$query_obj->details);
37
+ $con_type = $temp[0];
38
+ $temp = explode('***wdfcon_methodwdf***',$temp[1]);
39
+ $con_method = $temp[0];
40
+ $temp = explode('***wdftablewdf***',$temp[1]);
41
+ $table_cur = $temp[0];
42
+ $temp = explode('***wdfhostwdf***',$temp[1]);
43
+ $host = $temp[0];
44
+ $temp = explode('***wdfportwdf***',$temp[1]);
45
+ $port = $temp[0];
46
+ $temp = explode('***wdfusernamewdf***',$temp[1]);
47
+ $username = $temp[0];
48
+ $temp = explode('***wdfpasswordwdf***',$temp[1]);
49
+ $password = $temp[0];
50
+ $temp = explode('***wdfdatabasewdf***',$temp[1]);
51
+ $database = $temp[0];
52
+ $details = $temp[1];
53
+
54
+ $tables = $this->model->get_tables_saved($con_type, $username, $password, $database, $host);
55
+ $table_struct = $this->model->get_table_struct_saved($con_type, $username, $password, $database, $host, $table_cur, $con_method);
56
+
57
+ $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
58
+ $label_id= array();
59
+ $label_order= array();
60
+ $label_order_original= array();
61
+ $label_type= array();
62
+
63
+ $label_all = explode('#****#',$label);
64
+ $label_all = array_slice($label_all,0, count($label_all)-1);
65
+
66
+ foreach($label_all as $key => $label_each) {
67
+ $label_id_each=explode('#**id**#',$label_each);
68
+ $label_oder_each=explode('#**label**#', $label_id_each[1]);
69
+
70
+ if(in_array($label_oder_each[1],$filter_types))
71
+ continue;
72
+
73
+ array_push($label_id, $label_id_each[0]);
74
+ array_push($label_order_original, $label_oder_each[0]);
75
+ $ptn = "/[^a-zA-Z0-9_]/";
76
+ $rpltxt = "";
77
+ $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
78
+ array_push($label_order, $label_temp);
79
+ array_push($label_type, $label_oder_each[1]);
80
+ }
81
+
82
+ $form_fields='';
83
+ foreach($label_id as $key => $lid) {
84
+ $form_fields.='<a onclick="insert_field('.$lid.'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$label_order_original[$key].'</a>';
85
+ }
86
+ $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
87
+ foreach($user_fields as $user_key=>$user_field) {
88
+ $form_fields.='<a onclick="insert_field(\''.$user_key.'\'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$user_field.'</a>';
89
+ }
90
+
91
+ $cond='<div id="condid"><select id="sel_condid" style="width: 160px">';
92
+ foreach($table_struct as $col) {
93
+ $cond.='<option>'.str_replace("'", "SingleQuot", $col->Field).'</option>';
94
+ }
95
+ $cond.='</select>';
96
+ $cond.='<select id="op_condid"><option value="=" selected="selected">=</option><option value="!=">!=</option><option value=">">&gt;</option><option value="<">&lt;</option><option value=">=">&gt;=</option><option value="<=">&lt;=</option><option value="%..%">Like</option><option value="%..">Starts with</option><option value="..%">Ends with</option></select><input id="val_condid" style="width:170px" type="text" /><select id="andor_condid" style="visibility: hidden;"><option value="AND">AND</option><option value="OR">OR</option></select><img src="' . WD_FM_URL . '/images/delete.png?ver='. get_option("wd_form_maker_version").'" onclick="delete_cond(&quot;condid&quot;)" style="vertical-align: middle;"></div>';
97
+ ?>
98
+ <script>
99
+ function connect() {
100
+ jQuery("input[type='radio']").attr('disabled','');
101
+ jQuery('#struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
102
+ jQuery("#struct").load('index.php?option=com_formmaker&task=db_tables&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&format=row');
103
+ }
104
+ jQuery(document).ready(function() {
105
+ jQuery("#tables").change(function (){
106
+ jQuery("#struct").removeClass("fm_loading");
107
+ jQuery("#table_struct").load('index.php?option=com_formmaker&task=db_table_struct&name='+jQuery(this).val()+'&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row&id='+jQuery("#form_id").val());
108
+ });
109
+ jQuery('html').click(function() {
110
+ if(jQuery("#fieldlist").css('display')=="block") {
111
+ jQuery("#fieldlist").hide();
112
+ }
113
+ });
114
+ jQuery('.cols input[type="text"]').on('click', function(event) {
115
+ event.stopPropagation();
116
+ jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
117
+ jQuery("#fieldlist").css("left",jQuery(this).offset().left);
118
+ jQuery("#fieldlist").slideDown('fast');
119
+ selected_field=this.id;
120
+ });
121
+ jQuery('#query_txt').click(function(event) {
122
+ event.stopPropagation();
123
+ jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
124
+ jQuery("#fieldlist").css("left",jQuery(this).offset().left);
125
+ jQuery("#fieldlist").slideDown('fast');
126
+ selected_field=this.id;
127
+ });
128
+ jQuery('#fieldlist').click(function(event){
129
+ event.stopPropagation();
130
+ });
131
+ jQuery('.add_cond').click( function() {
132
+ jQuery('.cols').append(conds.replace(/condid/g, cond_id++).replace('SingleQuot', "'"));
133
+ update_vis();
134
+ });
135
+ });
136
+ var selected_field ='';
137
+ var isvisible = 1;
138
+ var cond_id = 1;
139
+ conds='<?php echo $cond ?>';
140
+ fields=new Array(<?php
141
+ $fields = "";
142
+ if($table_struct) {
143
+ foreach($table_struct as $col) {
144
+ $fields.=' "'.$col->Field.'",';
145
+ }
146
+ echo substr($fields, 0, -1);
147
+ }
148
+ ?>);
149
+
150
+ function dis(id, x) {
151
+ if(x)
152
+ jQuery('#'+id).removeAttr('disabled');
153
+ else
154
+ jQuery('#'+id).attr('disabled','disabled');
155
+ }
156
+ function update_vis() {
157
+ previous=0;
158
+ for(i=1; i<cond_id; i++) {
159
+ if(jQuery('#'+i).html()) {
160
+ jQuery('#andor_'+i).css('visibility', 'hidden');
161
+ if(previous)
162
+ jQuery('#andor_'+previous).css('visibility', 'visible');
163
+ previous=i;
164
+ }
165
+ }
166
+ }
167
+ function delete_cond(id) {
168
+ jQuery('#'+id).remove();
169
+ update_vis();
170
+ }
171
+ function save_query() {
172
+ con_type =jQuery('input[name=con_type]:checked').val();
173
+ con_method =jQuery('input[name=con_method]:checked').val();
174
+ table =jQuery('#tables').val();
175
+ host =jQuery('#host_rem').val();
176
+ port =jQuery('#port_rem').val();
177
+ username =jQuery('#username_rem').val();
178
+ password =jQuery('#password_rem').val();
179
+ database =jQuery('#database_rem').val();
180
+
181
+ str=con_type+"***wdfcon_typewdf***"+con_method+"***wdfcon_methodwdf***"+table+"***wdftablewdf***"+host+"***wdfhostwdf***"+port+"***wdfportwdf***"+username+"***wdfusernamewdf***"+password+"***wdfpasswordwdf***"+database+"***wdfdatabasewdf***";
182
+
183
+ if(fields.length) {
184
+ for(i=0; i<fields.length; i++) {
185
+ str+=fields[i]+'***wdfnamewdf***'+jQuery('#'+fields[i]).val()+'***wdfvaluewdf***'+jQuery('#ch_'+fields[i]+":checked" ).length+'***wdffieldwdf***';
186
+ }
187
+ }
188
+
189
+ for(i=1; i<cond_id; i++) {
190
+ if(jQuery('#'+i).html()) {
191
+ str+=jQuery('#sel_'+i).val()+'***sel***'+jQuery('#op_'+i).val()+'***op***'+jQuery('#val_'+i).val()+'***val***'+jQuery('#andor_'+i).val()+'***where***';
192
+ }
193
+ }
194
+ if(!jQuery('#query_txt').val()) {
195
+ gen_query();
196
+ }
197
+ jQuery('#details').val(str);
198
+ var datatxt = jQuery("#query_form").serialize()+'&form_id='+jQuery("#form_id").val();
199
+
200
+ if(jQuery('#query_txt').val()) {
201
+ jQuery('.c1').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
202
+
203
+ jQuery.ajax({
204
+ type: "POST",
205
+ url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => $id, 'form_id' => $form_id, 'task' => 'update_query', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
206
+ data: datatxt,
207
+ success: function(data) {
208
+ window.parent.wd_fm_apply_options('apply_options');
209
+ window.parent.tb_remove();
210
+ }
211
+ });
212
+ }
213
+ else {
214
+ alert('The query is empty.');
215
+ }
216
+ return false;
217
+ }
218
+
219
+ function gen_query() {
220
+ if(jQuery('#query_txt').val())
221
+ if(!confirm('Are you sure you want to replace the Query? All the modifications to the Query will be lost.'))
222
+ return;
223
+ query="";
224
+ fields=new Array(<?php
225
+ $fields = "";
226
+ if($table_struct) {
227
+ foreach($table_struct as $col) {
228
+ $fields.=' "'.str_replace("'", "SingleQuot", $col->Field).'",';
229
+ }
230
+ echo substr($fields, 0, -1);
231
+ }
232
+ ?>);
233
+
234
+ con_type =jQuery('input[name=con_type]:checked').val();
235
+ con_method =jQuery('input[name=con_method]:checked').val();
236
+ table =jQuery('#tables').val();
237
+ fls='';
238
+ vals='';
239
+ valsA=new Array();
240
+ flsA=new Array();
241
+
242
+ if(fields.length) {
243
+ for(i=0; i<fields.length; i++) {
244
+ if(jQuery('#ch_'+fields[i]+":checked" ).length) {
245
+ flsA.push(fields[i]);
246
+ valsA.push(jQuery('#'+fields[i]).val());
247
+ }
248
+ }
249
+ }
250
+ if(con_method=="insert") {
251
+ if(flsA.length) {
252
+ for(i=0; i<flsA.length-1; i++) {
253
+ fls+= '`'+flsA[i]+'`, ';
254
+ vals+= '"'+valsA[i]+'", ';
255
+ }
256
+ fls+= '`'+flsA[i]+'`';
257
+ vals+= '"'+valsA[i]+'"';
258
+ }
259
+ if(fls)
260
+ query="INSERT INTO "+jQuery('#tables').val()+" (" +fls+") VALUES ("+vals+")";
261
+ }
262
+
263
+ if(con_method=="update") {
264
+ if(flsA.length) {
265
+ for(i=0; i<flsA.length-1; i++) {
266
+ vals+= '`'+flsA[i]+'`="'+valsA[i]+'", ';
267
+ }
268
+ vals+= '`'+flsA[i]+'`="'+valsA[i]+'"';
269
+ }
270
+ where="";
271
+ previous='';
272
+
273
+ for(i=1; i<cond_id; i++) {
274
+ if(jQuery('#'+i).html()) {
275
+ if(jQuery('#op_'+i).val()=="%..%")
276
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
277
+ else if(jQuery('#op_'+i).val()=="%..")
278
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
279
+ else if(jQuery('#op_'+i).val()=="..%")
280
+ op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
281
+ else
282
+ op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
283
+ where+=previous+' `'+jQuery('#sel_'+i).val()+'`'+op_val;
284
+ previous=' '+ jQuery('#andor_'+i).val();
285
+ }
286
+ }
287
+ if(vals)
288
+ query="UPDATE "+jQuery('#tables').val()+" SET " + vals+(where? ' WHERE'+where: '') ;
289
+ }
290
+ if(con_method=="delete") {
291
+ where="";
292
+ previous='';
293
+ for(i=1; i<cond_id; i++) {
294
+ if(jQuery('#'+i).html()) {
295
+ if(jQuery('#op_'+i).val()=="%..%")
296
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
297
+ else if(jQuery('#op_'+i).val()=="%..")
298
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
299
+ else if(jQuery('#op_'+i).val()=="..%")
300
+ op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
301
+ else
302
+ op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
303
+ where+=previous+' '+jQuery('#sel_'+i).val()+op_val;
304
+ previous=' '+ jQuery('#andor_'+i).val();
305
+ }
306
+ }
307
+ if(where)
308
+ query="DELETE FROM "+jQuery('#tables').val()+ ' WHERE'+where ;
309
+ }
310
+ jQuery('#query_txt').val(query.replace("SingleQuot", "'"));
311
+ }
312
+
313
+ jQuery(document).ready(function () {
314
+ jQuery(".hasTip").tooltip({
315
+ track: true,
316
+ content: function () {
317
+ return jQuery(this).prop('title');
318
+ }
319
+ });
320
+ });
321
+
322
+ function insert_field(myValue) {
323
+ if(!selected_field)
324
+ return;
325
+ myField=document.getElementById(selected_field);
326
+ if (document.selection) {
327
+ myField.focus();
328
+ sel = document.selection.createRange();
329
+ sel.text = myValue;
330
+ }
331
+ else {
332
+ if (myField.selectionStart || myField.selectionStart == '0') {
333
+ var startPos = myField.selectionStart;
334
+ var endPos = myField.selectionEnd;
335
+ myField.value = myField.value.substring(0, startPos)
336
+ + "{"+myValue+"}"
337
+ + myField.value.substring(endPos, myField.value.length);
338
+ }
339
+ else {
340
+ myField.value += "{"+myValue+"}";
341
+ }
342
+ }
343
+ }
344
+ </script>
345
+ <style>
346
+ .c1 {
347
+ padding: 0 10px;
348
+ }
349
+
350
+ .main_func{
351
+ font-family: Segoe UI;
352
+ display: inline-block;
353
+ width: 550px;
354
+ }
355
+
356
+ .main_func .admintable {
357
+ width: 100%;
358
+ padding: 10px 0;
359
+ margin-bottom: 15px;
360
+ }
361
+
362
+ .main_func .admintable .key{
363
+ width: 36%;
364
+ }
365
+
366
+ .main_func .admintable input[type='text'],
367
+ .main_func .admintable input[type='password']{
368
+ padding: 4px 6px;
369
+ width:244px;
370
+ }
371
+
372
+ .btn.connect {
373
+ background:#4EC0D9;
374
+ width:78px;
375
+ height:32px;
376
+ border:1px solid #4EC0D9;
377
+ border-radius:0px;
378
+ color:#fff;
379
+ cursor:pointer;
380
+ }
381
+
382
+ .desc {
383
+ font-size: 13px;
384
+ display: inline-block;
385
+ width: 265px;
386
+ position: fixed;
387
+ margin: 15px;
388
+ margin-left: 45px;
389
+ }
390
+
391
+ .desc > div {
392
+ margin-top:3px;
393
+ }
394
+
395
+ .desc div span {
396
+ width: 62px;
397
+ display: inline-block;
398
+ }
399
+
400
+ .desc button {
401
+ max-width: 190px;
402
+ overflow: hidden;
403
+ white-space: nowrap;
404
+ text-overflow: ellipsis;
405
+ padding: 4px;
406
+ background: #eee;
407
+ border: 1px solid #ccc;
408
+ border-radius:0px;
409
+ height:27px;
410
+ }
411
+
412
+ .key label {
413
+ display:inline-block;
414
+ width:150px;
415
+ }
416
+
417
+ .select-db-label {
418
+ display: inline-block;
419
+ font-size: 16px;
420
+ width: 201px;
421
+
422
+ }
423
+
424
+ .select-db-select {
425
+ width:325px;
426
+ padding:6px;
427
+ }
428
+
429
+ .struct {
430
+ border: 3px solid red;
431
+ padding: 4px 6px;
432
+ display: inline-block;
433
+ margin-top:10px;
434
+ }
435
+
436
+ .cols div:nth-child(even) {background: #FFF}
437
+ .cols div:nth-child(odd) {background: #F5F5F5}
438
+ .cols div {
439
+ height: 28px;
440
+ padding: 5px
441
+ }
442
+
443
+ .cols label {
444
+ display: inline-block;
445
+ width: 175px;
446
+ font-size: 15px;
447
+ overflow: hidden;
448
+ white-space: nowrap;
449
+ text-overflow: ellipsis;
450
+ vertical-align: middle;
451
+ }
452
+
453
+ .cols input[type="text"] {
454
+ width: 295px;
455
+ line-height: 18px;
456
+ height: 28px;
457
+ border: 1px solid #ccc;
458
+ padding: 0 3px;
459
+ margin-right: 2px;
460
+ }
461
+
462
+ .cols input[type="text"]:disabled {
463
+ cursor: not-allowed;
464
+ background-color: #eee;
465
+ }
466
+
467
+ .cols input[type="checkbox"] {
468
+ width: 20px;
469
+ line-height: 18px;
470
+ height: 20px;
471
+ vertical-align: middle;
472
+ }
473
+
474
+ .cols select {
475
+ line-height: 18px;
476
+ height: 28px;
477
+ margin-right: 2px;
478
+ }
479
+
480
+ #fieldlist {
481
+ position: absolute;
482
+ width:225px;
483
+ background: #fff;
484
+ border: solid 1px #c7c7c7;
485
+ top: 0;
486
+ left: 0;
487
+ z-index: 1000;
488
+ }
489
+
490
+ #fieldlist a {
491
+ padding: 5px;
492
+ cursor:pointer;
493
+ overflow: hidden;
494
+ white-space: nowrap;
495
+ text-overflow: ellipsis;
496
+ }
497
+
498
+ #fieldlist a:hover {
499
+ background: #ccc;
500
+ }
501
+
502
+ .gen_query, .gen_query:focus {
503
+ width: 148px;
504
+ height: 38px;
505
+ background: #4EC0D9;
506
+ color: white;
507
+ cursor: pointer;
508
+ border: 0px;
509
+ font-size: 14px;
510
+ font-weight: bold;
511
+ margin: 20px 0;
512
+ border-radius: 0px;
513
+ }
514
+
515
+ .gen_query:active {
516
+ background: #ccc;
517
+ }
518
+
519
+ .fm-query-save {
520
+ float: right;
521
+ font-size: 13px;
522
+ margin: 0 20px;
523
+ background: #4EC0D9;
524
+ width: 83px;
525
+ height: 34px;
526
+ border: 1px solid #4EC0D9;
527
+ border-radius: 0px;
528
+ color: #fff;
529
+ cursor: pointer;
530
+ }
531
+
532
+ .select-db-op {
533
+ display: inline-block;
534
+ text-align: right;
535
+ font-weight: bold;
536
+ font-size: 18px;
537
+ padding: 5px 0;
538
+ margin: 5px 0;
539
+ background:none !important;
540
+ }
541
+
542
+ .select-db-op.where{
543
+ width: 272px;
544
+ }
545
+
546
+ .select-db-op img{
547
+ float:left;
548
+ }
549
+
550
+ .select-db-label {
551
+ display: inline-block;
552
+ font-size: 16px;
553
+ width: 201px;
554
+
555
+ }
556
+ .select-db-select {
557
+ width:325px;
558
+ padding:6px;
559
+ }
560
+
561
+ .fm-query-save {
562
+ float: right;
563
+ font-size: 13px;
564
+ margin: 0 20px;
565
+ background: #4EC0D9;
566
+ width: 83px;
567
+ height: 34px;
568
+ border: 1px solid #4EC0D9;
569
+ border-radius: 0px;
570
+ color: #fff;
571
+ cursor: pointer;
572
+ }
573
+ </style>
574
+ <div class="c1">
575
+ <div class="main_func">
576
+ <table class="admintable">
577
+ <tr valign="top">
578
+ <td class="key">
579
+ <label style="font-size:20px;">Connection type: </label>
580
+ </td>
581
+ <td>
582
+ <input type="radio" name="con_type" id="local" value="local" <?php if($con_type=='local') echo 'checked="checked"'?> disabled>
583
+ <label for="local">Local</label>
584
+ <input type="radio" name="con_type" id="remote" value="remote" <?php if($con_type=='remote') echo 'checked="checked"'?> disabled>
585
+ <label for="remote">Remote</label>
586
+ </td>
587
+ <td rowspan="2">
588
+ <input type="button" value="Connect" onclick="connect()" class="btn connect" disabled>
589
+ </td>
590
+ </tr>
591
+ <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
592
+ <td class="key">Host</td>
593
+ <td>
594
+ <input type="text" name="host" id="host_rem" style="width:150px" value="<?php echo $host; ?>" disabled>
595
+ Port : <input type="text" name="port" id="port_rem" value="<?php echo $port; ?>" style="width:48px" disabled>
596
+ </td>
597
+ </tr>
598
+ <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
599
+ <td class="key">Username</td>
600
+ <td>
601
+ <input type="text" name="username" id="username_rem" value="<?php echo $username; ?>" disabled>
602
+ </td>
603
+ </tr>
604
+ <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
605
+ <td class="key">Password</td>
606
+ <td>
607
+ <input type="password" name="password" id="password_rem" value="<?php echo $password; ?>" disabled>
608
+ </td>
609
+ </tr>
610
+ <tr class="remote_info" <?php if($con_type=='local') echo 'style="display:none"'?>>
611
+ <td class="key">Database</td>
612
+ <td>
613
+ <input type="text"name="database" id="database_rem" value="<?php echo $database; ?>" disabled>
614
+ </td>
615
+ </tr>
616
+ <tr valign="top">
617
+ <td class="key">
618
+ <label style="font-size:20px;">Type: </label>
619
+ </td>
620
+ <td>
621
+ <input type="radio" name="con_method" id="insert" value="insert" <?php if($con_method=='insert') echo 'checked="checked"'?> disabled>
622
+ <label for="insert">Insert</label>
623
+ <input type="radio" name="con_method" id="update" value="update" <?php if($con_method=='update') echo 'checked="checked"'?> disabled>
624
+ <label for="update">Update</label>
625
+ <input type="radio" name="con_method" id="delete" value="delete" <?php if($con_method=='delete') echo 'checked="checked"'?> disabled>
626
+ <label for="delete">Delete</label>
627
+ </td>
628
+ </tr>
629
+ </table>
630
+ <div id="struct">
631
+ <label for="tables" class="select-db-label">Select a table</label>
632
+ <select name="tables" id="tables" class="select-db-select" disabled>
633
+ <option value="" ></option>
634
+ <?php
635
+ foreach($tables as $table) {
636
+ echo '<option value="'.$table.'" '.($table_cur==$table ? 'selected' : '').' >'.$table.'</option>';
637
+ }
638
+ ?>
639
+ </select>
640
+ <br/>
641
+ <div id="table_struct">
642
+ <?php
643
+ if($table_struct) {
644
+ ?>
645
+ <div class="struct">
646
+ <div class="cols">
647
+ <?php
648
+ $temps=explode('***wdffieldwdf***',$details);
649
+ $wheres = $temps[count($temps)-1];
650
+ $temps = array_slice($temps,0, count($temps)-1);
651
+ $col_names= array();
652
+ $col_vals= array();
653
+ $col_checks= array();
654
+
655
+ foreach($temps as $temp) {
656
+ $temp=explode('***wdfnamewdf***',$temp);
657
+ array_push($col_names, $temp[0]);
658
+ $temp=explode('***wdfvaluewdf***',$temp[1]);
659
+ array_push($col_vals, $temp[0]);
660
+ array_push($col_checks, $temp[1]);
661
+ }
662
+ if($con_method=='insert' or $con_method=='update') {
663
+ echo '<div style="background: none;text-align: center;font-size: 20px;color: #000;font-weight: bold;"> SET </div>';
664
+
665
+ foreach($table_struct as $key =>$col) {
666
+ $title=' '.$col->Field;
667
+ $title.="<ul style='padding-left: 17px;'>";
668
+ $title.="<li>Type - ".$col->Type."</li>";
669
+ $title.="<li>Null - ".$col->Null."</li>";
670
+ $title.="<li>Key - ".$col->Key."</li>";
671
+ $title.="<li>Default - ".$col->Default."</li>";
672
+ $title.="<li>Extra - ".$col->Extra."</li>";
673
+ $title.="</ul>";
674
+ ?>
675
+ <div><label title="<?php echo $title; ?>" class="hasTip"><b><?php echo $col->Field; ?></b><img src="<?php echo WD_FM_URL . '/images/info.png?ver='. get_option("wd_form_maker_version").''; ?>" style="width:20px; vertical-align:middle;padding-left: 10px;" /></label><input type="text" id="<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" <?php if(!$col_checks[$key]) echo 'disabled="disabled"'?> value="<?php echo $col_vals[$key]; ?>" /><input id="ch_<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" type="checkbox" onClick="dis('<?php echo str_replace("'", "SingleQuot", $col->Field); ?>', this.checked)" <?php if($col_checks[$key]) echo 'checked="checked"'?> /></div>
676
+ <?php
677
+ }
678
+ }
679
+
680
+ if($con_method=='delete' or $con_method=='update') {
681
+ echo '<div class="select-db-op where"><img src="'.WD_FM_URL . '/images/add_condition.png?ver='. get_option("wd_form_maker_version").'" title="ADD" class="add_cond"/>WHERE</div>';
682
+ if($wheres) {
683
+ echo '<script>';
684
+
685
+ $wheres = explode('***where***',$wheres);
686
+ $wheres = array_slice($wheres,0, count($wheres)-1);
687
+ foreach($wheres as $where) {
688
+ $temp=explode('***sel***',$where);
689
+ $sel = $temp[0];
690
+ $temp=explode('***op***',$temp[1]);
691
+ $op = $temp[0];
692
+ $temp=explode('***val***',$temp[1]);
693
+ $val = $temp[0];
694
+ $andor = $temp[1];
695
+ echo 'jQuery(".cols").append(conds.replace(/condid/g, cond_id++).replace(\'SingleQuot\', "\'")); update_vis();
696
+ jQuery("#sel_"+(cond_id-1)).val("'.html_entity_decode($sel, ENT_QUOTES).'");
697
+ jQuery("#op_"+(cond_id-1)).val("'.$op.'");
698
+ jQuery("#val_"+(cond_id-1)).val("'.$val.'");
699
+ jQuery("#andor_"+(cond_id-1)).val("'.$andor.'");';
700
+ }
701
+ echo '</script>';
702
+ }
703
+ }
704
+ ?>
705
+ </div>
706
+ <div style="color:red; background: none">The changes above will not affect the query until you click "Generate query".</div>
707
+ </div>
708
+ <br/>
709
+ <input type="button" value="Generate Query" class="gen_query" onclick="gen_query()">
710
+ <br/>
711
+ <form name="query_form" id="query_form" >
712
+ <label style="vertical-align: top; width: 102px; display: inline-block;" for="query_txt" > Query: </label><textarea id="query_txt" name="query" rows=5 style="width:428px" ><?php echo $query_obj->query; ?></textarea>
713
+ <input type="hidden" name="details" id="details">
714
+ <input type="hidden" name="id" value="<?php echo $query_obj->id; ?>">
715
+ </form>
716
+ <input type="button" value="Save" class="fm-query-save" onclick="save_query()">
717
+ <div id="fieldlist" style="display: none;">
718
+ <?php echo $form_fields; ?>
719
+ </div>
720
+ <?php
721
+ }
722
+ ?>
723
+ </div>
724
+ </div>
725
+ <input type="hidden" value="<?php echo $form_id ?>" id="form_id">
726
+ </div>
727
+ <div class="desc">
728
+ <?php
729
+ foreach($label_id as $key => $lid) {
730
+ echo '<div>{'.$lid.'} - <button onclick="insert_field('.$lid.');">'.$label_order_original[$key].'</button></div>';
731
+ }
732
+ $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
733
+ foreach($user_fields as $user_key=>$user_field) {
734
+ echo '<div>{'.$user_key.'} - <button onclick="insert_field(\''.$user_key.'\');">'.$user_field.'</button></div>';
735
+ }
736
+ ?>
737
+ </div>
738
+ </div>
739
+ <?php
740
+ die();
741
+ }
742
+
743
+ public function add_query($form_id){
744
+ wp_print_scripts('jquery');
745
+ wp_print_scripts('jquery-ui-tooltip');
746
+ ?>
747
+ <link media="all" type="text/css" href="<?php echo WD_FM_URL . '/css/style.css'; ?>" rel="stylesheet">
748
+ <link rel="stylesheet" href="<?php echo WD_FM_URL . '/css/jquery-ui-1.10.3.custom.css'; ?>">
749
+ <?php
750
+ $label = $this->model->get_labels($form_id);
751
+
752
+ $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
753
+ $label_id= array();
754
+ $label_order= array();
755
+ $label_order_original= array();
756
+ $label_type= array();
757
+
758
+ $label_all = explode('#****#',$label);
759
+ $label_all = array_slice($label_all,0, count($label_all)-1);
760
+ foreach($label_all as $key => $label_each) {
761
+ $label_id_each=explode('#**id**#',$label_each);
762
+ $label_oder_each=explode('#**label**#', $label_id_each[1]);
763
+
764
+ if(in_array($label_oder_each[1],$filter_types))
765
+ continue;
766
+ array_push($label_id, $label_id_each[0]);
767
+ array_push($label_order_original, $label_oder_each[0]);
768
+ $ptn = "/[^a-zA-Z0-9_]/";
769
+ $rpltxt = "";
770
+ $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
771
+ array_push($label_order, $label_temp);
772
+ array_push($label_type, $label_oder_each[1]);
773
+ }
774
+ ?>
775
+ <script>
776
+ function insert_field(){}
777
+
778
+ function connect() {
779
+ jQuery("input[type='radio']").attr('disabled','');
780
+ jQuery(".connect").attr('disabled','');
781
+ jQuery('#struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
782
+ jQuery.ajax({
783
+ type: "POST",
784
+ url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'db_tables', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
785
+ data: 'con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row',
786
+ success: function(data) {
787
+ jQuery("#struct").removeClass("fm_loading");
788
+ if(data==1) {
789
+ jQuery("#struct").html('<div style="font-size: 22px; text-align: center; padding-top: 15px;">Could not connect to MySQL.</div>')
790
+ jQuery(".connect").removeAttr('disabled');
791
+ jQuery("input[type='radio']").removeAttr('disabled','');
792
+ }
793
+ else {
794
+ jQuery("#struct").html(data);
795
+ }
796
+
797
+ }
798
+ });
799
+ }
800
+
801
+ function shh(x) {
802
+ if(x)
803
+ jQuery(".remote_info").show();
804
+ else
805
+ jQuery(".remote_info").hide();
806
+ }
807
+ </script>
808
+ <style>
809
+ .c1 {
810
+ padding: 0 10px;
811
+ }
812
+
813
+ .main_func{
814
+ font-family: Segoe UI;
815
+ display: inline-block;
816
+ width: 550px;
817
+ }
818
+
819
+ .main_func .admintable {
820
+ width: 100%;
821
+ padding: 10px 0;
822
+ margin-bottom: 15px;
823
+ }
824
+
825
+ .main_func .admintable .key{
826
+ width: 36%;
827
+ }
828
+
829
+ .main_func .admintable input[type='text'],
830
+ .main_func .admintable input[type='password']{
831
+ padding: 4px 6px;
832
+ width:244px;
833
+ }
834
+
835
+ .btn.connect {
836
+ background:#4EC0D9;
837
+ width:78px;
838
+ height:32px;
839
+ border:1px solid #4EC0D9;
840
+ border-radius:0px;
841
+ color:#fff;
842
+ cursor:pointer;
843
+ }
844
+
845
+ .desc {
846
+ font-size: 13px;
847
+ display: inline-block;
848
+ width: 265px;
849
+ position: fixed;
850
+ margin: 15px;
851
+ margin-left: 45px;
852
+ }
853
+
854
+ .desc > div {
855
+ margin-top:3px;
856
+ }
857
+
858
+ .desc div span {
859
+ width: 62px;
860
+ display: inline-block;
861
+ }
862
+
863
+ .desc button {
864
+ max-width: 190px;
865
+ overflow: hidden;
866
+ white-space: nowrap;
867
+ text-overflow: ellipsis;
868
+ padding: 4px;
869
+ background: #eee;
870
+ border: 1px solid #ccc;
871
+ border-radius:0px;
872
+ height:27px;
873
+ }
874
+
875
+ .key label {
876
+ display:inline-block;
877
+ width:150px;
878
+ }
879
+
880
+ .select-db-label {
881
+ display: inline-block;
882
+ font-size: 16px;
883
+ width: 201px;
884
+
885
+ }
886
+
887
+ .select-db-select {
888
+ width:325px;
889
+ padding:6px;
890
+ }
891
+ </style>
892
+ <div class="c1">
893
+ <div class="main_func">
894
+ <table class="admintable">
895
+ <tr valign="top">
896
+ <td class="key">
897
+ <label style="font-size:20px;">Connection type: </label>
898
+ </td>
899
+ <td>
900
+ <input type="radio" name="con_type" id="local" value="local" checked="checked" onclick="shh(false)">
901
+ <label for="local">Local</label>
902
+ <input type="radio" name="con_type" id="remote" value="remote" onclick="shh(true)">
903
+ <label for="remote">Remote</label>
904
+ </td>
905
+ <td rowspan="2">
906
+ <input type="button" value="Connect" onclick="connect()" class="btn connect">
907
+ </td>
908
+ </tr>
909
+ <tr class="remote_info" style="display:none">
910
+ <td class="key">Host</td>
911
+ <td>
912
+ <input type="text" name="host" id="host_rem" style="width:150px">
913
+ Port : <input type="text" name="port" id="port_rem" value="3306" style="width:48px">
914
+ </td>
915
+ </tr>
916
+ <tr class="remote_info" style="display:none">
917
+ <td class="key">Username</td>
918
+ <td>
919
+ <input type="text" name="username" id="username_rem">
920
+ </td>
921
+ </tr>
922
+ <tr class="remote_info" style="display:none">
923
+ <td class="key">Password</td>
924
+ <td>
925
+ <input type="password" name="password" id="password_rem">
926
+ </td>
927
+ </tr>
928
+ <tr class="remote_info" style="display:none">
929
+ <td class="key">Database</td>
930
+ <td>
931
+ <input type="text"name="database" id="database_rem">
932
+ </td>
933
+ </tr>
934
+ <tr valign="top">
935
+ <td class="key">
936
+ <label style="font-size:20px;">Type: </label>
937
+ </td>
938
+ <td >
939
+ <input type="radio" name="con_method" id="insert" value="insert" checked="checked">
940
+ <label for="insert">Insert</label>
941
+ <input type="radio" name="con_method" id="update" value="update">
942
+ <label for="update">Update</label>
943
+ <input type="radio" name="con_method" id="delete" value="delete">
944
+ <label for="delete">Delete</label>
945
+ </td>
946
+ </tr>
947
+ </table>
948
+ <div id="struct">
949
+ </div>
950
+ <input type="hidden" value="<?php echo $form_id ?>" id="form_id">
951
+ </div>
952
+ <div class="desc">
953
+ <?php
954
+ foreach($label_id as $key => $lid) {
955
+ echo '<div><span>{'.$lid.'}</span> - <button onclick="insert_field('.$lid.');">'.$label_order_original[$key].'</button></div>';
956
+ }
957
+
958
+ $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
959
+ foreach($user_fields as $user_key=>$user_field) {
960
+ echo '<div><span>{'.$user_key.'}</span> - <button onclick="insert_field(\''.$user_key.'\');">'.$user_field.'</button></div>';
961
+ }
962
+ ?>
963
+ </div>
964
+ </div>
965
+ <?php
966
+ die();
967
+ }
968
+
969
+ public function db_tables($form_id){
970
+ $tables = $this->model->get_tables();
971
+ ?>
972
+ <label for="tables" class="select-db-label">Select a table</label>
973
+ <select name="tables" id="tables" class="select-db-select">
974
+ <option value="" ></option>
975
+ <?php
976
+ foreach($tables as $table) {
977
+ echo '<option value="' . $table . '" >' . $table . '</option>';
978
+ }
979
+ ?>
980
+ </select>
981
+ <br/>
982
+ <div id="table_struct">
983
+ </div>
984
+ <script>
985
+ jQuery("#tables").change(function (){
986
+ jQuery('#table_struct').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
987
+ jQuery.ajax({
988
+ type: "POST",
989
+ url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'db_table_struct', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
990
+ data: 'name='+jQuery(this).val()+'&con_type='+jQuery('input[name=con_type]:checked').val()+'&con_method='+jQuery('input[name=con_method]:checked').val()+'&host='+jQuery('#host_rem').val()+'&port='+jQuery('#port_rem').val()+'&username='+jQuery('#username_rem').val()+'&password='+jQuery('#password_rem').val()+'&database='+jQuery('#database_rem').val()+'&format=row',
991
+ success: function(data) {
992
+ jQuery("#table_struct").removeClass("fm_loading");
993
+ jQuery("#table_struct").html(data);
994
+ }
995
+ });
996
+ })
997
+ </script>
998
+ <?php
999
+ die();
1000
+ }
1001
+
1002
+ public function db_table_struct ($form_id) {
1003
+ $table_struct = $this->model->get_table_struct();
1004
+ $label = $this->model->get_labels($form_id);
1005
+ $con_method = isset($_POST['con_method']) ? $_POST['con_method'] : '';
1006
+ $filter_types=array("type_submit_reset", "type_map", "type_editor", "type_captcha", "type_recaptcha", "type_button", "type_paypal_total", "type_send_copy");
1007
+ $label_id= array();
1008
+ $label_order= array();
1009
+ $label_order_original= array();
1010
+ $label_type= array();
1011
+
1012
+ ///stexic
1013
+ $label_all = explode('#****#',$label);
1014
+ $label_all = array_slice($label_all,0, count($label_all)-1);
1015
+
1016
+ foreach($label_all as $key => $label_each) {
1017
+ $label_id_each=explode('#**id**#',$label_each);
1018
+ $label_oder_each=explode('#**label**#', $label_id_each[1]);
1019
+
1020
+ if(in_array($label_oder_each[1],$filter_types)) {
1021
+ continue;
1022
+ }
1023
+ array_push($label_id, $label_id_each[0]);
1024
+ array_push($label_order_original, $label_oder_each[0]);
1025
+ $ptn = "/[^a-zA-Z0-9_]/";
1026
+ $rpltxt = "";
1027
+ $label_temp=preg_replace($ptn, $rpltxt, $label_oder_each[0]);
1028
+ array_push($label_order, $label_temp);
1029
+ array_push($label_type, $label_oder_each[1]);
1030
+ }
1031
+ $form_fields='';
1032
+ foreach($label_id as $key => $id) {
1033
+ $form_fields.='<a onclick="insert_field('.$id.'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$label_order_original[$key].'</a>';
1034
+ }
1035
+ $user_fields = array("subid"=>"Submission ID", "ip"=>"Submitter's IP", "userid"=>"User ID", "username"=>"Username", "useremail"=>"User Email");
1036
+ foreach($user_fields as $user_key=>$user_field) {
1037
+ $form_fields.='<a onclick="insert_field(\''.$user_key.'\'); jQuery(\'#fieldlist\').hide();" style="display:block; text-decoration:none;">'.$user_field.'</a>';
1038
+ }
1039
+ $cond='<div id="condid"><select id="sel_condid" style="width: 160px">';
1040
+ foreach($table_struct as $col) {
1041
+ $cond.='<option>'.str_replace("'", "SingleQuot", $col->Field).'</option>';
1042
+ }
1043
+ $cond.='</select>';
1044
+
1045
+ $cond.='<select id="op_condid"><option value="=" selected="selected">=</option><option value="!=">!=</option><option value=">">&gt;</option><option value="<">&lt;</option><option value=">=">&gt;=</option><option value="<=">&lt;=</option><option value="%..%">Like</option><option value="%..">Starts with</option><option value="..%">Ends with</option></select><input id="val_condid" style="width:170px" type="text" /><select id="andor_condid" style="visibility: hidden;"><option value="AND">AND</option><option value="OR">OR</option></select><img src="' . WD_FM_URL . '/images/delete.png?ver='. get_option("wd_form_maker_version").'" onclick="delete_cond(&quot;condid&quot;)" style="vertical-align: middle;"></div>';
1046
+ ?>
1047
+ <script>
1048
+ var selected_field ='';
1049
+ var isvisible = 1;
1050
+ var cond_id = 1;
1051
+
1052
+ conds='<?php echo $cond ?>';
1053
+ fields=new Array(<?php
1054
+ $fields = "";
1055
+ if($table_struct) {
1056
+ foreach($table_struct as $col) {
1057
+ $fields.=' "'.$col->Field.'",';
1058
+ }
1059
+ echo substr($fields, 0, -1);
1060
+ }
1061
+ ?>);
1062
+ function dis(id, x) {
1063
+ if(x)
1064
+ jQuery('#'+id).removeAttr('disabled');
1065
+ else
1066
+ jQuery('#'+id).attr('disabled','disabled');
1067
+ }
1068
+
1069
+ function update_vis() {
1070
+ previous=0;
1071
+ for(i=1; i<cond_id; i++) {
1072
+ if(jQuery('#'+i).html()) {
1073
+ jQuery('#andor_'+i).css('visibility', 'hidden');
1074
+ if(previous) {
1075
+ jQuery('#andor_'+previous).css('visibility', 'visible');
1076
+ }
1077
+ previous=i;
1078
+ }
1079
+ }
1080
+ }
1081
+
1082
+ function delete_cond(id) {
1083
+ jQuery('#'+id).remove();
1084
+ update_vis();
1085
+ }
1086
+
1087
+ jQuery('.add_cond').click( function() {
1088
+ jQuery('.cols').append(conds.replace(/condid/g, cond_id++).replace('SingleQuot', "'"));
1089
+ update_vis();
1090
+ });
1091
+
1092
+ jQuery('html').click(function() {
1093
+ if(jQuery("#fieldlist").css('display')=="block") {
1094
+ jQuery("#fieldlist").hide();
1095
+ }
1096
+ });
1097
+
1098
+ jQuery('.cols input[type="text"]').on('click', function(event) {
1099
+ event.stopPropagation();
1100
+ jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
1101
+ jQuery("#fieldlist").css("left",jQuery(this).offset().left);
1102
+ jQuery("#fieldlist").slideDown('fast');
1103
+ selected_field=this.id;
1104
+ });
1105
+
1106
+ jQuery('#query_txt').click(function(event) {
1107
+ event.stopPropagation();
1108
+ jQuery("#fieldlist").css("top",jQuery(this).offset().top+jQuery(this).height()+2);
1109
+ jQuery("#fieldlist").css("left",jQuery(this).offset().left);
1110
+ jQuery("#fieldlist").slideDown('fast');
1111
+ selected_field=this.id;
1112
+ });
1113
+
1114
+ jQuery('#fieldlist').click(function(event){
1115
+ event.stopPropagation();
1116
+ });
1117
+
1118
+ function save_query() {
1119
+ con_type =jQuery('input[name=con_type]:checked').val();
1120
+ con_method =jQuery('input[name=con_method]:checked').val();
1121
+ table =jQuery('#tables').val();
1122
+ table =jQuery('#tables').val();
1123
+ host =jQuery('#host_rem').val();
1124
+ port =jQuery('#port_rem').val();
1125
+ username =jQuery('#username_rem').val();
1126
+ password =jQuery('#password_rem').val();
1127
+ database =jQuery('#database_rem').val();
1128
+
1129
+ str=con_type+"***wdfcon_typewdf***"+con_method+"***wdfcon_methodwdf***"+table+"***wdftablewdf***"+host+"***wdfhostwdf***"+port+"***wdfportwdf***"+username+"***wdfusernamewdf***"+password+"***wdfpasswordwdf***"+database+"***wdfdatabasewdf***";
1130
+
1131
+ if(fields.length) {
1132
+ for(i=0; i<fields.length; i++) {
1133
+ str+=fields[i]+'***wdfnamewdf***'+jQuery('#'+fields[i]).val()+'***wdfvaluewdf***'+jQuery('#ch_'+fields[i]+":checked" ).length+'***wdffieldwdf***';
1134
+ }
1135
+ }
1136
+
1137
+ for(i=1; i<cond_id; i++) {
1138
+ if(jQuery('#'+i).html()) {
1139
+ str+=jQuery('#sel_'+i).val()+'***sel***'+jQuery('#op_'+i).val()+'***op***'+jQuery('#val_'+i).val()+'***val***'+jQuery('#andor_'+i).val()+'***where***';
1140
+ }
1141
+ }
1142
+
1143
+ if(!jQuery('#query_txt').val()) {
1144
+ gen_query();
1145
+ }
1146
+
1147
+ jQuery('#details').val(str);
1148
+
1149
+ var datatxt = jQuery("#query_form").serialize()+'&form_id='+jQuery("#form_id").val();
1150
+ if(jQuery('#query_txt').val()) {
1151
+ jQuery('.c1').html('<div class="fm-loading-container"><div class="fm-loading-content"></div></div>');
1152
+ jQuery.ajax({
1153
+ type: "POST",
1154
+ url: "<?php echo add_query_arg(array('action' => 'FormMakerSQLMapping', 'id' => 0, 'form_id' => $form_id, 'task' => 'save_query', 'width' => '1000', 'height' => '500', 'TB_iframe' => '1'), admin_url('admin-ajax.php')); ?>",
1155
+ data: datatxt,
1156
+ success: function(data) {
1157
+ window.parent.wd_fm_apply_options('apply_options');
1158
+ window.parent.tb_remove();
1159
+ }
1160
+ });
1161
+ }
1162
+ else {
1163
+ alert('The query is empty.');
1164
+ }
1165
+ return false;
1166
+ }
1167
+
1168
+ function gen_query() {
1169
+ if(jQuery('#query_txt').val()) {
1170
+ if(!confirm('Are you sure you want to replace the Query? All the modifications to the Query will be lost.')) {
1171
+ return;
1172
+ }
1173
+ }
1174
+ query="";
1175
+ fields=new Array(<?php
1176
+ $fields = "";
1177
+ if($table_struct) {
1178
+ foreach($table_struct as $col) {
1179
+ $fields.=' "'.str_replace("'", "SingleQuot", $col->Field).'",';
1180
+ }
1181
+ echo substr($fields, 0, -1);
1182
+ }
1183
+ ?>);
1184
+
1185
+ con_type =jQuery('input[name=con_type]:checked').val();
1186
+ con_method =jQuery('input[name=con_method]:checked').val();
1187
+ table =jQuery('#tables').val();
1188
+ fls='';
1189
+ vals='';
1190
+ valsA=new Array();
1191
+ flsA=new Array();
1192
+
1193
+ if(fields.length) {
1194
+ for(i=0; i<fields.length; i++) {
1195
+ if(jQuery('#ch_'+fields[i]+":checked" ).length) {
1196
+ flsA.push(fields[i]);
1197
+ valsA.push(jQuery('#'+fields[i]).val());
1198
+ }
1199
+ }
1200
+ }
1201
+
1202
+ if(con_method=="insert") {
1203
+ if(flsA.length) {
1204
+ for(i=0; i<flsA.length-1; i++) {
1205
+ fls+= '`'+flsA[i]+'`, ';
1206
+ vals+= '"'+valsA[i]+'", ';
1207
+ }
1208
+ fls+= '`'+flsA[i]+'`';
1209
+ vals+= '"'+valsA[i]+'"';
1210
+ }
1211
+ if(fls) {
1212
+ query="INSERT INTO "+jQuery('#tables').val()+" (" +fls+") VALUES ("+vals+")";
1213
+ }
1214
+ }
1215
+
1216
+ if(con_method=="update") {
1217
+ if(flsA.length) {
1218
+ for(i=0; i<flsA.length-1; i++) {
1219
+ vals+= '`'+flsA[i]+'`="'+valsA[i]+'", ';
1220
+ }
1221
+ vals+= '`'+flsA[i]+'`="'+valsA[i]+'"';
1222
+ }
1223
+ where="";
1224
+ previous='';
1225
+ for(i=1; i<cond_id; i++) {
1226
+ if(jQuery('#'+i).html()) {
1227
+ if(jQuery('#op_'+i).val()=="%..%")
1228
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
1229
+ else if(jQuery('#op_'+i).val()=="%..")
1230
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
1231
+ else if(jQuery('#op_'+i).val()=="..%")
1232
+ op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
1233
+ else
1234
+ op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
1235
+ where+=previous+' `'+jQuery('#sel_'+i).val()+'`'+op_val;
1236
+ previous=' '+ jQuery('#andor_'+i).val();
1237
+ }
1238
+ }
1239
+ if(vals) {
1240
+ query="UPDATE "+jQuery('#tables').val()+" SET " + vals+(where? ' WHERE'+where: '') ;
1241
+ }
1242
+ }
1243
+
1244
+ if(con_method=="delete") {
1245
+ where="";
1246
+ previous='';
1247
+ for(i=1; i<cond_id; i++) {
1248
+ if(jQuery('#'+i).html()) {
1249
+ if(jQuery('#op_'+i).val()=="%..%")
1250
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'%"';
1251
+ else if(jQuery('#op_'+i).val()=="%..")
1252
+ op_val=' LIKE "%'+jQuery('#val_'+i).val()+'"';
1253
+ else if(jQuery('#op_'+i).val()=="..%")
1254
+ op_val=' LIKE "'+jQuery('#val_'+i).val()+'%"';
1255
+ else
1256
+ op_val=' '+jQuery('#op_'+i).val()+' "'+jQuery('#val_'+i).val()+'"';
1257
+ where+=previous+' '+jQuery('#sel_'+i).val()+op_val;
1258
+ previous=' '+ jQuery('#andor_'+i).val();
1259
+ }
1260
+ }
1261
+ if(where) {
1262
+ query="DELETE FROM "+jQuery('#tables').val()+ ' WHERE'+where ;
1263
+ }
1264
+ }
1265
+ jQuery('#query_txt').val(query.replace("SingleQuot", "'"));
1266
+ }
1267
+
1268
+ jQuery(document).ready(function () {
1269
+ jQuery(".hasTip").tooltip({
1270
+ track: true,
1271
+ content: function () {
1272
+ return jQuery(this).prop('title');
1273
+ }
1274
+ });
1275
+ });
1276
+
1277
+ function insert_field(myValue) {
1278
+ if(!selected_field)
1279
+ return;
1280
+ myField=document.getElementById(selected_field);
1281
+ if (document.selection) {
1282
+ myField.focus();
1283
+ sel = document.selection.createRange();
1284
+ sel.text = myValue;
1285
+ }
1286
+ else {
1287
+ if (myField.selectionStart || myField.selectionStart == '0') {
1288
+ var startPos = myField.selectionStart;
1289
+ var endPos = myField.selectionEnd;
1290
+ myField.value = myField.value.substring(0, startPos)
1291
+ + "{"+myValue+"}"
1292
+ + myField.value.substring(endPos, myField.value.length);
1293
+ }
1294
+ else {
1295
+ myField.value += "{"+myValue+"}";
1296
+ }
1297
+ }
1298
+ }
1299
+ </script>
1300
+ <style>
1301
+ .cols div:nth-child(even) {background: #FFF;}
1302
+ .cols div:nth-child(odd) {background: #F5F5F5;}
1303
+ .cols div {
1304
+ height: 28px;
1305
+ padding: 5px;
1306
+ }
1307
+
1308
+ .cols {
1309
+ display: inline-block;
1310
+ }
1311
+
1312
+ .cols label {
1313
+ display: inline-block;
1314
+ width: 200px;
1315
+ font-size: 15px;
1316
+ overflow: hidden;
1317
+ white-space: nowrap;
1318
+ text-overflow: ellipsis;
1319
+ vertical-align: middle;
1320
+ }
1321
+
1322
+ .cols input[type="text"] {
1323
+ width: 295px;
1324
+ line-height: 18px;
1325
+ height: 28px;
1326
+ border: 1px solid #ccc;
1327
+ padding: 0 3px;
1328
+ margin-right: 2px;
1329
+ }
1330
+
1331
+ .cols input[type="text"]:disabled {
1332
+ cursor: not-allowed;
1333
+ background-color: #eee;
1334
+ }
1335
+
1336
+ .cols input[type="checkbox"] {
1337
+ width: 20px;
1338
+ line-height: 18px;
1339
+ height: 20px;
1340
+ vertical-align: middle;
1341
+ }
1342
+
1343
+ .cols select {
1344
+ line-height: 18px;
1345
+ height: 28px;
1346
+ margin-right: 2px;
1347
+ }
1348
+
1349
+ #fieldlist {
1350
+ position: absolute;
1351
+ width:225px;
1352
+ background: #fff;
1353
+ border: solid 1px #c7c7c7;
1354
+ top: 0;
1355
+ left: 0;
1356
+ z-index: 1000;
1357
+ }
1358
+
1359
+ #fieldlist a {
1360
+ padding: 5px;
1361
+ cursor:pointer;
1362
+ overflow: hidden;
1363
+ white-space: nowrap;
1364
+ text-overflow: ellipsis;
1365
+ }
1366
+
1367
+ #fieldlist a:hover {
1368
+ background: #ccc;
1369
+ }
1370
+ .gen_query, .gen_query:focus {
1371
+ width: 148px;
1372
+ height: 38px;
1373
+ background: #4EC0D9;
1374
+ color: white;
1375
+ cursor: pointer;
1376
+ border: 0px;
1377
+ font-size: 14px;
1378
+ font-weight: bold;
1379
+ margin: 20px 0;
1380
+ border-radius: 0px;
1381
+ }
1382
+ .gen_query:active {
1383
+ background: #ccc;
1384
+ }
1385
+
1386
+ .fm-query-save {
1387
+ float: right;
1388
+ font-size: 13px;
1389
+ margin: 0 20px;
1390
+ background: #4EC0D9;
1391
+ width: 83px;
1392
+ height: 34px;
1393
+ border: 1px solid #4EC0D9;
1394
+ border-radius: 0px;
1395
+ color: #fff;
1396
+ cursor: pointer;
1397
+ }
1398
+
1399
+ .select-db-op {
1400
+ display: inline-block;
1401
+ text-align: right;
1402
+ font-weight: bold;
1403
+ font-size: 18px;
1404
+ padding: 5px 0;
1405
+ margin: 5px 0;
1406
+ background:none !important;
1407
+ }
1408
+
1409
+ .select-db-op.where{
1410
+ width: 272px;
1411
+ }
1412
+
1413
+ .select-db-op img{
1414
+ float:left;
1415
+ }
1416
+ </style>
1417
+ <?php
1418
+ if($table_struct) { ?>
1419
+ <div class="cols">
1420
+ <?php
1421
+ if($con_method=='insert' or $con_method=='update') {
1422
+ echo '<div style="background: none;text-align: center;font-size: 20px;color: #000;font-weight: bold;"> SET </div>';
1423
+ foreach($table_struct as $col) {
1424
+ $title=' '.$col->Field;
1425
+ $title.="<ul style='padding-left: 17px;'>";
1426
+ $title.="<li>Type - ".$col->Type."</li>";
1427
+ $title.="<li>Null - ".$col->Null."</li>";
1428
+ $title.="<li>Key - ".$col->Key."</li>";
1429
+ $title.="<li>Default - ".$col->Default."</li>";
1430
+ $title.="<li>Extra - ".$col->Extra."</li>";
1431
+ $title.="</ul>";
1432
+ ?>
1433
+ <div><label title="<?php echo $title; ?>" class="hasTip"><b><?php echo $col->Field; ?></b><img src="<?php echo WD_FM_URL . '/images/info.png?ver='. get_option("wd_form_maker_version").''; ?>" style="width:20px; vertical-align:middle;padding-left: 10px;" /></label><input type="text" id="<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" disabled="disabled"/><input id="ch_<?php echo str_replace("'", "SingleQuot", $col->Field); ?>" type="checkbox" onClick="dis('<?php echo str_replace("'", "SingleQuot", $col->Field); ?>', this.checked)"/></div>
1434
+ <?php
1435
+ }
1436
+ }
1437
+ if($con_method=='delete' or $con_method=='update') {
1438
+ echo '<div class="select-db-op where"><img src="'.WD_FM_URL . '/images/add_condition.png?ver='. get_option("wd_form_maker_version").'" title="ADD" class="add_cond"/>WHERE</div>';
1439
+ }
1440
+ ?>
1441
+ </div>
1442
+ <br/>
1443
+ <input type="button" value="Generate Query" class="gen_query" onclick="gen_query()">
1444
+ <br/>
1445
+ <form name="query_form" id="query_form" >
1446
+ <label style="vertical-align: top; width: 102px; display: inline-block;" for="query_txt" > Query: </label><textarea id="query_txt" name="query" rows=5 style="width:428px"></textarea>
1447
+ <input type="hidden" name="details" id="details">
1448
+ </form>
1449
+ <input type="button" value="Save" class="fm-query-save" onclick="save_query()">
1450
+ <div id="fieldlist" style="display: none;">
1451
+ <?php echo $form_fields ?>
1452
+ </div>
1453
+ <?php
1454
+ }
1455
+ die();
1456
+ }
1457
+
1458
+ ////////////////////////////////////////////////////////////////////////////////////////
1459
+ // Getters & Setters //
1460
+ ////////////////////////////////////////////////////////////////////////////////////////
1461
+ ////////////////////////////////////////////////////////////////////////////////////////
1462
+ // Private Methods //
1463
+ ////////////////////////////////////////////////////////////////////////////////////////
1464
+ ////////////////////////////////////////////////////////////////////////////////////////
1465
+ // Listeners //
1466
+ ////////////////////////////////////////////////////////////////////////////////////////
1467
  }
admin/views/FMViewFormMakerSubmits.php CHANGED
@@ -1,119 +1,119 @@
1
- <?php
2
-
3
- class FMViewFormMakerSubmits {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- if (isset($_GET['form_id']) && isset($_GET['group_id'])) {
27
- $form_id = esc_html(stripslashes($_GET['form_id']));
28
- $label_order = $this->model->get_from_label_order($form_id);
29
- $group_id = esc_html(stripslashes($_GET['group_id']));
30
- $rows = $this->model->get_submissions($group_id);
31
- $labels_id = array();
32
- $labels_name = array();
33
- $labels_type = array();
34
- $label_all = explode('#****#', $label_order);
35
- $label_all = array_slice($label_all, 0, count($label_all) - 1);
36
- foreach ($label_all as $key => $label_each) {
37
- $label_id_each = explode('#**id**#', $label_each);
38
- array_push($labels_id, $label_id_each[0]);
39
- $label_oder_each = explode('#**label**#', $label_id_each[1]);
40
- array_push($labels_name, $label_oder_each[0]);
41
- array_push($labels_type, $label_oder_each[1]);
42
- }
43
- ?>
44
- <style>
45
- table.submit_table {
46
- font-family: verdana,arial,sans-serif;
47
- border-width: 1px;
48
- border-color: #999999;
49
- border-collapse: collapse;
50
- }
51
- table.submit_table td {
52
- padding: 6px;
53
- border: 1px solid #fff;
54
- font-size: 13px;
55
- }
56
- .field_label {
57
- background: #E4E4E4;
58
- font-weight: bold;
59
- }
60
- .field_value {
61
- background: #f0f0ee;
62
- }
63
- </style>
64
- <table class="submit_table">
65
- <tr>
66
- <td class="field_label">ID: </td>
67
- <td class="field_value"><?php echo $rows[0]->group_id; ?></td>
68
- </tr>
69
- <tr>
70
- <td class="field_label"><?php echo __("Date","form_maker"); ?>: </td>
71
- <td class="field_value"><?php echo $rows[0]->date; ?></td>
72
- </tr>
73
- <tr>
74
- <td class="field_label">IP: </td>
75
- <td class="field_value"><?php echo $rows[0]->ip; ?></td>
76
- </tr>
77
- <?php
78
- foreach ($labels_id as $key => $label_id) {
79
- if ($labels_type[$key] != '' and $labels_type[$key] != 'type_editor' and $labels_type[$key] != 'type_submit_reset' and $labels_type[$key] != 'type_map' and $labels_type[$key] != 'type_captcha') {
80
- $element_value = '';
81
- foreach ($rows as $row) {
82
- if ($row->element_label == $label_id) {
83
- $element_value = $row->element_value;
84
- break;
85
- }
86
- else {
87
- $element_value = 'element_valueelement_valueelement_value';
88
- }
89
- }
90
- if($labels_type[$key] == "type_name")
91
- $element_value = str_replace("@@@", " ", $element_value);
92
- if ($element_value == "element_valueelement_valueelement_value") {
93
- continue;
94
- }
95
- ?>
96
- <tr>
97
- <td class="field_label"><?php echo $labels_name[$key]; ?></td>
98
- <td class="field_value"><?php echo str_replace("***br***", '<br>', $element_value); ?></td>
99
- </tr>
100
- <?php
101
- }
102
- }
103
- ?>
104
- </table>
105
- <?php
106
- }
107
- die();
108
- }
109
-
110
- ////////////////////////////////////////////////////////////////////////////////////////
111
- // Getters & Setters //
112
- ////////////////////////////////////////////////////////////////////////////////////////
113
- ////////////////////////////////////////////////////////////////////////////////////////
114
- // Private Methods //
115
- ////////////////////////////////////////////////////////////////////////////////////////
116
- ////////////////////////////////////////////////////////////////////////////////////////
117
- // Listeners //
118
- ////////////////////////////////////////////////////////////////////////////////////////
119
  }
1
+ <?php
2
+
3
+ class FMViewFormMakerSubmits {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ if (isset($_GET['form_id']) && isset($_GET['group_id'])) {
27
+ $form_id = esc_html(stripslashes($_GET['form_id']));
28
+ $label_order = $this->model->get_from_label_order($form_id);
29
+ $group_id = esc_html(stripslashes($_GET['group_id']));
30
+ $rows = $this->model->get_submissions($group_id);
31
+ $labels_id = array();
32
+ $labels_name = array();
33
+ $labels_type = array();
34
+ $label_all = explode('#****#', $label_order);
35
+ $label_all = array_slice($label_all, 0, count($label_all) - 1);
36
+ foreach ($label_all as $key => $label_each) {
37
+ $label_id_each = explode('#**id**#', $label_each);
38
+ array_push($labels_id, $label_id_each[0]);
39
+ $label_oder_each = explode('#**label**#', $label_id_each[1]);
40
+ array_push($labels_name, $label_oder_each[0]);
41
+ array_push($labels_type, $label_oder_each[1]);
42
+ }
43
+ ?>
44
+ <style>
45
+ table.submit_table {
46
+ font-family: verdana,arial,sans-serif;
47
+ border-width: 1px;
48
+ border-color: #999999;
49
+ border-collapse: collapse;
50
+ }
51
+ table.submit_table td {
52
+ padding: 6px;
53
+ border: 1px solid #fff;
54
+ font-size: 13px;
55
+ }
56
+ .field_label {
57
+ background: #E4E4E4;
58
+ font-weight: bold;
59
+ }
60
+ .field_value {
61
+ background: #f0f0ee;
62
+ }
63
+ </style>
64
+ <table class="submit_table">
65
+ <tr>
66
+ <td class="field_label">ID: </td>
67
+ <td class="field_value"><?php echo $rows[0]->group_id; ?></td>
68
+ </tr>
69
+ <tr>
70
+ <td class="field_label"><?php echo __("Date","form_maker"); ?>: </td>
71
+ <td class="field_value"><?php echo $rows[0]->date; ?></td>
72
+ </tr>
73
+ <tr>
74
+ <td class="field_label">IP: </td>
75
+ <td class="field_value"><?php echo $rows[0]->ip; ?></td>
76
+ </tr>
77
+ <?php
78
+ foreach ($labels_id as $key => $label_id) {
79
+ if ($labels_type[$key] != '' and $labels_type[$key] != 'type_editor' and $labels_type[$key] != 'type_submit_reset' and $labels_type[$key] != 'type_map' and $labels_type[$key] != 'type_captcha') {
80
+ $element_value = '';
81
+ foreach ($rows as $row) {
82
+ if ($row->element_label == $label_id) {
83
+ $element_value = $row->element_value;
84
+ break;
85
+ }
86
+ else {
87
+ $element_value = 'element_valueelement_valueelement_value';
88
+ }
89
+ }
90
+ if($labels_type[$key] == "type_name")
91
+ $element_value = str_replace("@@@", " ", $element_value);
92
+ if ($element_value == "element_valueelement_valueelement_value") {
93
+ continue;
94
+ }
95
+ ?>
96
+ <tr>
97
+ <td class="field_label"><?php echo $labels_name[$key]; ?></td>
98
+ <td class="field_value"><?php echo str_replace("***br***", '<br>', $element_value); ?></td>
99
+ </tr>
100
+ <?php
101
+ }
102
+ }
103
+ ?>
104
+ </table>
105
+ <?php
106
+ }
107
+ die();
108
+ }
109
+
110
+ ////////////////////////////////////////////////////////////////////////////////////////
111
+ // Getters & Setters //
112
+ ////////////////////////////////////////////////////////////////////////////////////////
113
+ ////////////////////////////////////////////////////////////////////////////////////////
114
+ // Private Methods //
115
+ ////////////////////////////////////////////////////////////////////////////////////////
116
+ ////////////////////////////////////////////////////////////////////////////////////////
117
+ // Listeners //
118
+ ////////////////////////////////////////////////////////////////////////////////////////
119
  }
admin/views/FMViewFormmakerwdcaptcha.php CHANGED
@@ -1,94 +1,94 @@
1
- <?php
2
-
3
- class FMViewFormmakerwdcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- if (isset($_GET['action']) && esc_html($_GET['action']) == 'formmakerwdcaptcha') {
27
- $i = (isset($_GET["i"]) ? esc_html($_GET["i"]) : '');
28
- $r2 = (isset($_GET["r2"]) ? (int) $_GET["r2"] : 0);
29
- $rrr = (isset($_GET["rrr"]) ? (int) $_GET["rrr"] : 0);
30
- $randNum = 0 + $r2 + $rrr;
31
- $digit = (isset($_GET["digit"]) ? (int) $_GET["digit"] : 6);
32
- $cap_width = $digit * 10 + 15;
33
- $cap_height = 26;
34
- $cap_quality = 100;
35
- $cap_length_min = $digit;
36
- $cap_length_max = $digit;
37
- $cap_digital = 1;
38
- $cap_latin_char = 1;
39
- function code_generic($_length, $_digital = 1, $_latin_char = 1) {
40
- $dig = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
41
- $lat = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
42
- $main = array();
43
- if ($_digital) {
44
- $main = array_merge($main, $dig);
45
- }
46
- if ($_latin_char) {
47
- $main = array_merge($main, $lat);
48
- }
49
- shuffle($main);
50
- $pass = substr(implode('', $main), 0, $_length);
51
- return $pass;
52
- }
53
- $l = rand($cap_length_min, $cap_length_max);
54
- $code = code_generic($l, $cap_digital, $cap_latin_char);
55
- if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
56
- @session_start();
57
- }
58
-
59
- $_SESSION[$i . '_wd_captcha_code'] = md5($code);
60
- $canvas = imagecreatetruecolor($cap_width, $cap_height);
61
- $c = imagecolorallocate($canvas, rand(150, 255), rand(150, 255), rand(150, 255));
62
- imagefilledrectangle($canvas, 0, 0, $cap_width, $cap_height, $c);
63
- $count = strlen($code);
64
- $color_text = imagecolorallocate($canvas, 0, 0, 0);
65
- for ($it = 0; $it < $count; $it++) {
66
- $letter = $code[$it];
67
- imagestring($canvas, 6, (10 * $it + 10), $cap_height / 4, $letter, $color_text);
68
- }
69
- for ($c = 0; $c < 150; $c++) {
70
- $x = rand(0, $cap_width - 1);
71
- $y = rand(0, 29);
72
- $col = '0x' . rand(0, 9) . '0' . rand(0, 9) . '0' . rand(0, 9) . '0';
73
- imagesetpixel($canvas, $x, $y, $col);
74
- }
75
- header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
76
- header('Cache-Control: no-store, no-cache, must-revalidate');
77
- header('Cache-Control: post-check=0, pre-check=0', FALSE);
78
- header('Pragma: no-cache');
79
- header('Content-Type: image/jpeg');
80
- imagejpeg($canvas, NULL, $cap_quality);
81
- }
82
- die('');
83
- }
84
-
85
- ////////////////////////////////////////////////////////////////////////////////////////
86
- // Getters & Setters //
87
- ////////////////////////////////////////////////////////////////////////////////////////
88
- ////////////////////////////////////////////////////////////////////////////////////////
89
- // Private Methods //
90
- ////////////////////////////////////////////////////////////////////////////////////////
91
- ////////////////////////////////////////////////////////////////////////////////////////
92
- // Listeners //
93
- ////////////////////////////////////////////////////////////////////////////////////////
94
  }
1
+ <?php
2
+
3
+ class FMViewFormmakerwdcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ if (isset($_GET['action']) && esc_html($_GET['action']) == 'formmakerwdcaptcha') {
27
+ $i = (isset($_GET["i"]) ? esc_html($_GET["i"]) : '');
28
+ $r2 = (isset($_GET["r2"]) ? (int) $_GET["r2"] : 0);
29
+ $rrr = (isset($_GET["rrr"]) ? (int) $_GET["rrr"] : 0);
30
+ $randNum = 0 + $r2 + $rrr;
31
+ $digit = (isset($_GET["digit"]) ? (int) $_GET["digit"] : 6);
32
+ $cap_width = $digit * 10 + 15;
33
+ $cap_height = 26;
34
+ $cap_quality = 100;
35
+ $cap_length_min = $digit;
36
+ $cap_length_max = $digit;
37
+ $cap_digital = 1;
38
+ $cap_latin_char = 1;
39
+ function code_generic($_length, $_digital = 1, $_latin_char = 1) {
40
+ $dig = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
41
+ $lat = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
42
+ $main = array();
43
+ if ($_digital) {
44
+ $main = array_merge($main, $dig);
45
+ }
46
+ if ($_latin_char) {
47
+ $main = array_merge($main, $lat);
48
+ }
49
+ shuffle($main);
50
+ $pass = substr(implode('', $main), 0, $_length);
51
+ return $pass;
52
+ }
53
+ $l = rand($cap_length_min, $cap_length_max);
54
+ $code = code_generic($l, $cap_digital, $cap_latin_char);
55
+ if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
56
+ @session_start();
57
+ }
58
+
59
+ $_SESSION[$i . '_wd_captcha_code'] = md5($code);
60
+ $canvas = imagecreatetruecolor($cap_width, $cap_height);
61
+ $c = imagecolorallocate($canvas, rand(150, 255), rand(150, 255), rand(150, 255));
62
+ imagefilledrectangle($canvas, 0, 0, $cap_width, $cap_height, $c);
63
+ $count = strlen($code);
64
+ $color_text = imagecolorallocate($canvas, 0, 0, 0);
65
+ for ($it = 0; $it < $count; $it++) {
66
+ $letter = $code[$it];
67
+ imagestring($canvas, 6, (10 * $it + 10), $cap_height / 4, $letter, $color_text);
68
+ }
69
+ for ($c = 0; $c < 150; $c++) {
70
+ $x = rand(0, $cap_width - 1);
71
+ $y = rand(0, 29);
72
+ $col = '0x' . rand(0, 9) . '0' . rand(0, 9) . '0' . rand(0, 9) . '0';
73
+ imagesetpixel($canvas, $x, $y, $col);
74
+ }
75
+ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
76
+ header('Cache-Control: no-store, no-cache, must-revalidate');
77
+ header('Cache-Control: post-check=0, pre-check=0', FALSE);
78
+ header('Pragma: no-cache');
79
+ header('Content-Type: image/jpeg');
80
+ imagejpeg($canvas, NULL, $cap_quality);
81
+ }
82
+ die('');
83
+ }
84
+
85
+ ////////////////////////////////////////////////////////////////////////////////////////
86
+ // Getters & Setters //
87
+ ////////////////////////////////////////////////////////////////////////////////////////
88
+ ////////////////////////////////////////////////////////////////////////////////////////
89
+ // Private Methods //
90
+ ////////////////////////////////////////////////////////////////////////////////////////
91
+ ////////////////////////////////////////////////////////////////////////////////////////
92
+ // Listeners //
93
+ ////////////////////////////////////////////////////////////////////////////////////////
94
  }
admin/views/FMViewFormmakerwdmathcaptcha.php CHANGED
@@ -1,123 +1,123 @@
1
- <?php
2
-
3
- class FMViewFormmakerwdmathcaptcha {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- if (isset($_GET['action']) && esc_html($_GET['action']) == 'formmakerwdmathcaptcha') {
27
- $i = (isset($_GET["i"]) ? esc_html($_GET["i"]) : '');
28
- $r2 = (isset($_GET["r2"]) ? (int) $_GET["r2"] : 0);
29
- $rrr = (isset($_GET["rrr"]) ? (int) $_GET["rrr"] : 0);
30
- $randNum = 0 + $r2 + $rrr;
31
- $operations_count = ((isset($_GET["operations_count"]) && (int)$_GET["operations_count"]) ? ((int)$_GET["operations_count"] > 5 ? 5 : (int)$_GET["operations_count"]) : 1);
32
- $operations = (isset($_GET["operations"]) ? str_replace('@', '+', $_GET["operations"]) : '+,-');
33
- $operations = preg_replace('/\s+/', '', $operations);
34
- $cap_width = 2*($operations_count+1) * 20 + 10;
35
- $cap_height = 26;
36
- $cap_quality = 100;
37
-
38
- $code = $this->code_generic($operations_count, $operations);
39
- if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
40
- @session_start();
41
- }
42
-
43
- $_SESSION[$i . '_wd_arithmetic_captcha_code'] = md5($code[1]);
44
- $canvas = imagecreatetruecolor($cap_width, $cap_height);
45
-
46
- $c = imagecolorallocate($canvas, rand(150, 255), rand(150, 255), rand(150, 255));
47
- imagefilledrectangle($canvas, 0, 0, $cap_width, $cap_height, $c);
48
- $code = $code[0];
49
- $count = strlen($code);
50
- $color_text = imagecolorallocate($canvas, 0, 0, 0);
51
- for ($it = 0; $it < $count; $it++) {
52
- $letter = $code[$it];
53
- imagestring($canvas, 6, (10 * $it + 10), $cap_height / 4, $letter, $color_text);
54
- }
55
- for ($c = 0; $c < 150; $c++) {
56
- $x = rand(0, $cap_width - 1);
57
- $y = rand(0, 29);
58
- $col = '0x' . rand(0, 9) . '0' . rand(0, 9) . '0' . rand(0, 9) . '0';
59
- imagesetpixel($canvas, $x, $y, $col);
60
- }
61
- header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
62
- header('Cache-Control: no-store, no-cache, must-revalidate');
63
- header('Cache-Control: post-check=0, pre-check=0', FALSE);
64
- header('Pragma: no-cache');
65
- header('Content-Type: image/jpeg');
66
- imagejpeg($canvas, NULL, $cap_quality);
67
- }
68
- die('');
69
- }
70
-
71
- private function code_generic($_length, $_operations) {
72
- $cap = '';
73
- $dig = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
74
- $valid_oprations = array('+', '-', '*', '/');
75
- $operations_array = array_filter(explode(',', $_operations));
76
- foreach($operations_array as $key => $operation) {
77
- if(!in_array($operation, $valid_oprations))
78
- unset($operations_array[$key]);
79
- }
80
-
81
- for($k=0; $k <= $_length; $k++) {
82
- if(substr($cap, -1) == '/' ) {
83
- $operations_array = array_diff($operations_array, array('/'));
84
- $num_divisors = $this->arrayOfNumberDivisors(substr($cap, -2, 1));
85
- $cap .= $num_divisors[array_rand($num_divisors)];
86
- }
87
- else
88
- $cap .= $dig[array_rand($dig)];
89
-
90
- if($k != $_length)
91
- $cap .= $operations_array[array_rand($operations_array)];
92
- }
93
- $pass = eval('return '.$cap.';');
94
- if($pass < 0)
95
- return $this->code_generic($_length, $_operations);
96
- $cap .= '=';
97
- $cap = implode(' ',str_split($cap));
98
-
99
- return array($cap, $pass);
100
- }
101
-
102
- public function arrayOfNumberDivisors($x) {
103
- $divisors = array ();
104
- if($x == 0)
105
- $divisors[] = rand(1, 9);
106
-
107
- for($i = 1; $i <= $x; $i ++) {
108
- if ($x % $i == 0) {
109
- $divisors [] = $i;
110
- }
111
- }
112
- return $divisors;
113
- }
114
- ////////////////////////////////////////////////////////////////////////////////////////
115
- // Getters & Setters //
116
- ////////////////////////////////////////////////////////////////////////////////////////
117
- ////////////////////////////////////////////////////////////////////////////////////////
118
- // Private Methods //
119
- ////////////////////////////////////////////////////////////////////////////////////////
120
- ////////////////////////////////////////////////////////////////////////////////////////
121
- // Listeners //
122
- ////////////////////////////////////////////////////////////////////////////////////////
123
  }
1
+ <?php
2
+
3
+ class FMViewFormmakerwdmathcaptcha {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ if (isset($_GET['action']) && esc_html($_GET['action']) == 'formmakerwdmathcaptcha') {
27
+ $i = (isset($_GET["i"]) ? esc_html($_GET["i"]) : '');
28
+ $r2 = (isset($_GET["r2"]) ? (int) $_GET["r2"] : 0);
29
+ $rrr = (isset($_GET["rrr"]) ? (int) $_GET["rrr"] : 0);
30
+ $randNum = 0 + $r2 + $rrr;
31
+ $operations_count = ((isset($_GET["operations_count"]) && (int)$_GET["operations_count"]) ? ((int)$_GET["operations_count"] > 5 ? 5 : (int)$_GET["operations_count"]) : 1);
32
+ $operations = (isset($_GET["operations"]) ? str_replace('@', '+', $_GET["operations"]) : '+,-');
33
+ $operations = preg_replace('/\s+/', '', $operations);
34
+ $cap_width = 2*($operations_count+1) * 20 + 10;
35
+ $cap_height = 26;
36
+ $cap_quality = 100;
37
+
38
+ $code = $this->code_generic($operations_count, $operations);
39
+ if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
40
+ @session_start();
41
+ }
42
+
43
+ $_SESSION[$i . '_wd_arithmetic_captcha_code'] = md5($code[1]);
44
+ $canvas = imagecreatetruecolor($cap_width, $cap_height);
45
+
46
+ $c = imagecolorallocate($canvas, rand(150, 255), rand(150, 255), rand(150, 255));
47
+ imagefilledrectangle($canvas, 0, 0, $cap_width, $cap_height, $c);
48
+ $code = $code[0];
49
+ $count = strlen($code);
50
+ $color_text = imagecolorallocate($canvas, 0, 0, 0);
51
+ for ($it = 0; $it < $count; $it++) {
52
+ $letter = $code[$it];
53
+ imagestring($canvas, 6, (10 * $it + 10), $cap_height / 4, $letter, $color_text);
54
+ }
55
+ for ($c = 0; $c < 150; $c++) {
56
+ $x = rand(0, $cap_width - 1);
57
+ $y = rand(0, 29);
58
+ $col = '0x' . rand(0, 9) . '0' . rand(0, 9) . '0' . rand(0, 9) . '0';
59
+ imagesetpixel($canvas, $x, $y, $col);
60
+ }
61
+ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
62
+ header('Cache-Control: no-store, no-cache, must-revalidate');
63
+ header('Cache-Control: post-check=0, pre-check=0', FALSE);
64
+ header('Pragma: no-cache');
65
+ header('Content-Type: image/jpeg');
66
+ imagejpeg($canvas, NULL, $cap_quality);
67
+ }
68
+ die('');
69
+ }
70
+
71
+ private function code_generic($_length, $_operations) {
72
+ $cap = '';
73
+ $dig = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
74
+ $valid_oprations = array('+', '-', '*', '/');
75
+ $operations_array = array_filter(explode(',', $_operations));
76
+ foreach($operations_array as $key => $operation) {
77
+ if(!in_array($operation, $valid_oprations))
78
+ unset($operations_array[$key]);
79
+ }
80
+
81
+ for($k=0; $k <= $_length; $k++) {
82
+ if(substr($cap, -1) == '/' ) {
83
+ $operations_array = array_diff($operations_array, array('/'));
84
+ $num_divisors = $this->arrayOfNumberDivisors(substr($cap, -2, 1));
85
+ $cap .= $num_divisors[array_rand($num_divisors)];
86
+ }
87
+ else
88
+ $cap .= $dig[array_rand($dig)];
89
+
90
+ if($k != $_length)
91
+ $cap .= $operations_array[array_rand($operations_array)];
92
+ }
93
+ $pass = eval('return '.$cap.';');
94
+ if($pass < 0)
95
+ return $this->code_generic($_length, $_operations);
96
+ $cap .= '=';
97
+ $cap = implode(' ',str_split($cap));
98
+
99
+ return array($cap, $pass);
100
+ }
101
+
102
+ public function arrayOfNumberDivisors($x) {
103
+ $divisors = array ();
104
+ if($x == 0)
105
+ $divisors[] = rand(1, 9);
106
+
107
+ for($i = 1; $i <= $x; $i ++) {
108
+ if ($x % $i == 0) {
109
+ $divisors [] = $i;
110
+ }
111
+ }
112
+ return $divisors;
113
+ }
114
+ ////////////////////////////////////////////////////////////////////////////////////////
115
+ // Getters & Setters //
116
+ ////////////////////////////////////////////////////////////////////////////////////////
117
+ ////////////////////////////////////////////////////////////////////////////////////////
118
+ // Private Methods //
119
+ ////////////////////////////////////////////////////////////////////////////////////////
120
+ ////////////////////////////////////////////////////////////////////////////////////////
121
+ // Listeners //
122
+ ////////////////////////////////////////////////////////////////////////////////////////
123
  }
admin/views/FMViewFromeditcountryinpopup.php CHANGED
@@ -1,185 +1,185 @@
1
- <?php
2
-
3
- class FMViewFromeditcountryinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $id = ((isset($_GET['field_id'])) ? esc_html(stripslashes($_GET['field_id'])) : 0);
27
- wp_print_scripts('jquery');
28
- wp_print_scripts('jquery-ui-core');
29
- wp_print_scripts('jquery-ui-widget');
30
- wp_print_scripts('jquery-ui-mouse');
31
- wp_print_scripts('jquery-ui-slider');
32
- wp_print_scripts('jquery-ui-sortable');
33
-
34
- ?>
35
- <style>
36
- .country-list {
37
- padding:10px 0;
38
- }
39
-
40
- .country-list ul {
41
- font-family: Segoe UI !important;
42
- font-size:13px;
43
- }
44
- .country-list > div {
45
- display:inline-block;
46
- }
47
-
48
- .save-cancel {
49
- float:right;
50
- }
51
-
52
- .fm-select-remove {
53
- background: #4EC0D9;
54
- width: 78px;
55
- height: 32px;
56
- border: 1px solid #4EC0D9;
57
- border-radius: 6px;
58
- color: #fff;
59
- cursor:pointer;
60
- }
61
-
62
- .fm-select-remove.large {
63
- width: 90px;
64
- }
65
- </style>
66
- <div class="country-list">
67
- <div class="select-remove">
68
- <button class="fm-select-remove large" onclick="select_all(); return false;">
69
- Select all
70
- <span></span>
71
- </button>
72
- <button class="fm-select-remove large" onclick="remove_all(); return false;">
73
- Remove all
74
- <span></span>
75
- </button>
76
- </div>
77
- <div class="save-cancel">
78
- <button class="fm-select-remove" onclick="save_list(); return false;">
79
- Save
80
- <span></span>
81
- </button>
82
- </div>
83
- <ul id="countries_list" style="list-style: none; padding: 0px;"></ul>
84
- </div>
85
- <script>
86
- selec_coutries = [];
87
- coutries = ["", "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo (Brazzaville)", "Congo", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor Timur)", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia, The", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, North", "Korea, South", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe"];
88
- select_ = window.parent.document.getElementById('<?php echo $id ?>_elementform_id_temp');
89
- n = select_.childNodes.length;
90
- for (i = 0; i < n; i++) {
91
- selec_coutries.push(select_.childNodes[i].value);
92
- var ch = document.createElement('input');
93
- ch.setAttribute("type", "checkbox");
94
- ch.setAttribute("checked", "checked");
95
- ch.value = select_.childNodes[i].value;
96
- ch.id = i + "ch";
97
-
98
- var p = document.createElement('span');
99
- p.style.cssText = "color:#000000; font-size: 13px; cursor:move";
100
- p.innerHTML = select_.childNodes[i].value;
101
- var li = document.createElement('li');
102
- li.style.cssText = "margin:3px; vertical-align:middle";
103
- li.id = i;
104
- li.appendChild(ch);
105
- li.appendChild(p);
106
- document.getElementById('countries_list').appendChild(li);
107
- }
108
- cur = i;
109
- m = coutries.length;
110
- for (i = 0; i < m; i++) {
111
- isin = isValueInArray(selec_coutries, coutries[i]);
112
- if (!isin) {
113
- var ch = document.createElement('input');
114
- ch.setAttribute("type", "checkbox");
115
- ch.value = coutries[i];
116
- ch.id = cur + "ch";
117
-
118
- var p = document.createElement('span');
119
- p.style.cssText = "color:#000000; font-size: 13px; cursor:move";
120
- p.innerHTML = coutries[i];
121
- var li = document.createElement('li');
122
- li.style.cssText = "margin:3px; vertical-align:middle";
123
- li.id = cur;
124
- li.appendChild(ch);
125
- li.appendChild(p);
126
- document.getElementById('countries_list').appendChild(li);
127
- cur++;
128
- }
129
- }
130
- jQuery(function () {
131
- jQuery("#countries_list").sortable();
132
- jQuery("#countries_list").disableSelection();
133
- });
134
-
135
- function isValueInArray(arr, val) {
136
- inArray = false;
137
- for (x = 0; x < arr.length; x++) {
138
- if (val == arr[x]) {
139
- inArray = true;
140
- }
141
- }
142
- return inArray;
143
- }
144
- function save_list() {
145
- select_.innerHTML = ""
146
- ul = document.getElementById('countries_list');
147
- n = ul.childNodes.length;
148
- for (i = 0; i < n; i++) {
149
- if (ul.childNodes[i].tagName == "LI") {
150
- id = ul.childNodes[i].id;
151
- if (document.getElementById(id + 'ch').checked) {
152
- var option_ = document.createElement('option');
153
- option_.setAttribute("value", document.getElementById(id + 'ch').value);
154
- option_.innerHTML = document.getElementById(id + 'ch').value;
155
- select_.appendChild(option_);
156
- }
157
- }
158
- }
159
- window.parent.tb_remove();
160
- }
161
- function select_all() {
162
- for (i = 0; i < 194; i++) {
163
- document.getElementById(i + 'ch').checked = true;
164
- }
165
- }
166
- function remove_all() {
167
- for (i = 0; i < 194; i++) {
168
- document.getElementById(i + 'ch').checked = false;
169
- }
170
- }
171
- </script>
172
- <?php
173
- die();
174
- }
175
-
176
- ////////////////////////////////////////////////////////////////////////////////////////
177
- // Getters & Setters //
178
- ////////////////////////////////////////////////////////////////////////////////////////
179
- ////////////////////////////////////////////////////////////////////////////////////////
180
- // Private Methods //
181
- ////////////////////////////////////////////////////////////////////////////////////////
182
- ////////////////////////////////////////////////////////////////////////////////////////
183
- // Listeners //
184
- ////////////////////////////////////////////////////////////////////////////////////////
185
  }
1
+ <?php
2
+
3
+ class FMViewFromeditcountryinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $id = ((isset($_GET['field_id'])) ? esc_html(stripslashes($_GET['field_id'])) : 0);
27
+ wp_print_scripts('jquery');
28
+ wp_print_scripts('jquery-ui-core');
29
+ wp_print_scripts('jquery-ui-widget');
30
+ wp_print_scripts('jquery-ui-mouse');
31
+ wp_print_scripts('jquery-ui-slider');
32
+ wp_print_scripts('jquery-ui-sortable');
33
+
34
+ ?>
35
+ <style>
36
+ .country-list {
37
+ padding:10px 0;
38
+ }
39
+
40
+ .country-list ul {
41
+ font-family: Segoe UI !important;
42
+ font-size:13px;
43
+ }
44
+ .country-list > div {
45
+ display:inline-block;
46
+ }
47
+
48
+ .save-cancel {
49
+ float:right;
50
+ }
51
+
52
+ .fm-select-remove {
53
+ background: #4EC0D9;
54
+ width: 78px;
55
+ height: 32px;
56
+ border: 1px solid #4EC0D9;
57
+ border-radius: 6px;
58
+ color: #fff;
59
+ cursor:pointer;
60
+ }
61
+
62
+ .fm-select-remove.large {
63
+ width: 90px;
64
+ }
65
+ </style>
66
+ <div class="country-list">
67
+ <div class="select-remove">
68
+ <button class="fm-select-remove large" onclick="select_all(); return false;">
69
+ Select all
70
+ <span></span>
71
+ </button>
72
+ <button class="fm-select-remove large" onclick="remove_all(); return false;">
73
+ Remove all
74
+ <span></span>
75
+ </button>
76
+ </div>
77
+ <div class="save-cancel">
78
+ <button class="fm-select-remove" onclick="save_list(); return false;">
79
+ Save
80
+ <span></span>
81
+ </button>
82
+ </div>
83
+ <ul id="countries_list" style="list-style: none; padding: 0px;"></ul>
84
+ </div>
85
+ <script>
86
+ selec_coutries = [];
87
+ coutries = ["", "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo (Brazzaville)", "Congo", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor Timur)", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia, The", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, North", "Korea, South", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe"];
88
+ select_ = window.parent.document.getElementById('<?php echo $id ?>_elementform_id_temp');
89
+ n = select_.childNodes.length;
90
+ for (i = 0; i < n; i++) {
91
+ selec_coutries.push(select_.childNodes[i].value);
92
+ var ch = document.createElement('input');
93
+ ch.setAttribute("type", "checkbox");
94
+ ch.setAttribute("checked", "checked");
95
+ ch.value = select_.childNodes[i].value;
96
+ ch.id = i + "ch";
97
+
98
+ var p = document.createElement('span');
99
+ p.style.cssText = "color:#000000; font-size: 13px; cursor:move";
100
+ p.innerHTML = select_.childNodes[i].value;
101
+ var li = document.createElement('li');
102
+ li.style.cssText = "margin:3px; vertical-align:middle";
103
+ li.id = i;
104
+ li.appendChild(ch);
105
+ li.appendChild(p);
106
+ document.getElementById('countries_list').appendChild(li);
107
+ }
108
+ cur = i;
109
+ m = coutries.length;
110
+ for (i = 0; i < m; i++) {
111
+ isin = isValueInArray(selec_coutries, coutries[i]);
112
+ if (!isin) {
113
+ var ch = document.createElement('input');
114
+ ch.setAttribute("type", "checkbox");
115
+ ch.value = coutries[i];
116
+ ch.id = cur + "ch";
117
+
118
+ var p = document.createElement('span');
119
+ p.style.cssText = "color:#000000; font-size: 13px; cursor:move";
120
+ p.innerHTML = coutries[i];
121
+ var li = document.createElement('li');
122
+ li.style.cssText = "margin:3px; vertical-align:middle";
123
+ li.id = cur;
124
+ li.appendChild(ch);
125
+ li.appendChild(p);
126
+ document.getElementById('countries_list').appendChild(li);
127
+ cur++;
128
+ }
129
+ }
130
+ jQuery(function () {
131
+ jQuery("#countries_list").sortable();
132
+ jQuery("#countries_list").disableSelection();
133
+ });
134
+
135
+ function isValueInArray(arr, val) {
136
+ inArray = false;
137
+ for (x = 0; x < arr.length; x++) {
138
+ if (val == arr[x]) {
139
+ inArray = true;
140
+ }
141
+ }
142
+ return inArray;
143
+ }
144
+ function save_list() {
145
+ select_.innerHTML = ""
146
+ ul = document.getElementById('countries_list');
147
+ n = ul.childNodes.length;
148
+ for (i = 0; i < n; i++) {
149
+ if (ul.childNodes[i].tagName == "LI") {
150
+ id = ul.childNodes[i].id;
151
+ if (document.getElementById(id + 'ch').checked) {
152
+ var option_ = document.createElement('option');
153
+ option_.setAttribute("value", document.getElementById(id + 'ch').value);
154
+ option_.innerHTML = document.getElementById(id + 'ch').value;
155
+ select_.appendChild(option_);
156
+ }
157
+ }
158
+ }
159
+ window.parent.tb_remove();
160
+ }
161
+ function select_all() {
162
+ for (i = 0; i < 194; i++) {
163
+ document.getElementById(i + 'ch').checked = true;
164
+ }
165
+ }
166
+ function remove_all() {
167
+ for (i = 0; i < 194; i++) {
168
+ document.getElementById(i + 'ch').checked = false;
169
+ }
170
+ }
171
+ </script>
172
+ <?php
173
+ die();
174
+ }
175
+
176
+ ////////////////////////////////////////////////////////////////////////////////////////
177
+ // Getters & Setters //
178
+ ////////////////////////////////////////////////////////////////////////////////////////
179
+ ////////////////////////////////////////////////////////////////////////////////////////
180
+ // Private Methods //
181
+ ////////////////////////////////////////////////////////////////////////////////////////
182
+ ////////////////////////////////////////////////////////////////////////////////////////
183
+ // Listeners //
184
+ ////////////////////////////////////////////////////////////////////////////////////////
185
  }
admin/views/FMViewFromipinfoinpopup.php CHANGED
@@ -1,101 +1,101 @@
1
- <?php
2
-
3
- class FMViewFromipinfoinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $data_ip = ((isset($_GET['data_ip'])) ? esc_html(stripslashes($_GET['data_ip'])) : 0);
27
- $query = @unserialize(file_get_contents('http://ip-api.com/php/' . $data_ip));
28
- if ($query && $query['status'] == 'success' && $query['countryCode']) {
29
- $country_flag = '<img width="16px" src="' . WD_FM_URL . '/images/flags/' . strtolower($query['countryCode']) . '.png" class="sub-align" alt="' . $query['country'] . '" title="' . $query['country'] . '" />';
30
- $country = $query['country'] ;
31
- $countryCode = $query['countryCode'] ;
32
- $city = $query['city'];
33
- $timezone = $query['timezone'];
34
- $lat = $query['lat'];
35
- $lon = $query['lon'];
36
- }
37
- else {
38
- $country_flag = '';
39
- $country = '';
40
- $countryCode = '';
41
- $city = '';
42
- $timezone = '';
43
- $lat = '';
44
- $lon = '';
45
- }
46
- ?>
47
- <style>
48
- .admintable {
49
- height: 100%;
50
- margin: 0 auto;
51
- padding: 0;
52
- width: 100%;
53
- }
54
- table.admintable td.key, table.admintable td.paramlist_key {
55
- background-color: #F6F6F6;
56
- border-bottom: 1px solid #E9E9E9;
57
- border-right: 1px solid #E9E9E9;
58
- color: #666666;
59
- font-weight: bold;
60
- margin-right: 10px;
61
- text-align: right;
62
- width: 140px;
63
- }
64
- </style>
65
- <table class="admintable">
66
- <tr>
67
- <td class="key"><b>IP:</b></td><td><?php echo $data_ip; ?></td>
68
- </tr>
69
- <tr>
70
- <td class="key"><b>Country:</b></td><td><?php echo $country . ' ' . $country_flag; ?></td>
71
- </tr>
72
- <tr>
73
- <td class="key"><b>CountryCode:</b></td><td><?php echo $countryCode; ?></td>
74
- </tr>
75
- <tr>
76
- <td class="key"><b>City:</b></td><td><?php echo $city; ?></td>
77
- </tr>
78
- <tr>
79
- <td class="key"><b>Timezone:</b></td><td><?php echo $timezone; ?></td>
80
- </tr>
81
- <tr>
82
- <td class="key"><b>Latitude:</b></td><td><?php echo $lat; ?></td>
83
- </tr>
84
- <tr>
85
- <td class="key"><b>Longitude:</b></td><td><?php echo $lon; ?></td>
86
- </tr>
87
- </table>
88
- <?php
89
- die();
90
- }
91
-
92
- ////////////////////////////////////////////////////////////////////////////////////////
93
- // Getters & Setters //
94
- ////////////////////////////////////////////////////////////////////////////////////////
95
- ////////////////////////////////////////////////////////////////////////////////////////
96
- // Private Methods //
97
- ////////////////////////////////////////////////////////////////////////////////////////
98
- ////////////////////////////////////////////////////////////////////////////////////////
99
- // Listeners //
100
- ////////////////////////////////////////////////////////////////////////////////////////
101
  }
1
+ <?php
2
+
3
+ class FMViewFromipinfoinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $data_ip = ((isset($_GET['data_ip'])) ? esc_html(stripslashes($_GET['data_ip'])) : 0);
27
+ $query = @unserialize(file_get_contents('http://ip-api.com/php/' . $data_ip));
28
+ if ($query && $query['status'] == 'success' && $query['countryCode']) {
29
+ $country_flag = '<img width="16px" src="' . WD_FM_URL . '/images/flags/' . strtolower($query['countryCode']) . '.png" class="sub-align" alt="' . $query['country'] . '" title="' . $query['country'] . '" />';
30
+ $country = $query['country'] ;
31
+ $countryCode = $query['countryCode'] ;
32
+ $city = $query['city'];
33
+ $timezone = $query['timezone'];
34
+ $lat = $query['lat'];
35
+ $lon = $query['lon'];
36
+ }
37
+ else {
38
+ $country_flag = '';
39
+ $country = '';
40
+ $countryCode = '';
41
+ $city = '';
42
+ $timezone = '';
43
+ $lat = '';
44
+ $lon = '';
45
+ }
46
+ ?>
47
+ <style>
48
+ .admintable {
49
+ height: 100%;
50
+ margin: 0 auto;
51
+ padding: 0;
52
+ width: 100%;
53
+ }
54
+ table.admintable td.key, table.admintable td.paramlist_key {
55
+ background-color: #F6F6F6;
56
+ border-bottom: 1px solid #E9E9E9;
57
+ border-right: 1px solid #E9E9E9;
58
+ color: #666666;
59
+ font-weight: bold;
60
+ margin-right: 10px;
61
+ text-align: right;
62
+ width: 140px;
63
+ }
64
+ </style>
65
+ <table class="admintable">
66
+ <tr>
67
+ <td class="key"><b>IP:</b></td><td><?php echo $data_ip; ?></td>
68
+ </tr>
69
+ <tr>
70
+ <td class="key"><b>Country:</b></td><td><?php echo $country . ' ' . $country_flag; ?></td>
71
+ </tr>
72
+ <tr>
73
+ <td class="key"><b>CountryCode:</b></td><td><?php echo $countryCode; ?></td>
74
+ </tr>
75
+ <tr>
76
+ <td class="key"><b>City:</b></td><td><?php echo $city; ?></td>
77
+ </tr>
78
+ <tr>
79
+ <td class="key"><b>Timezone:</b></td><td><?php echo $timezone; ?></td>
80
+ </tr>
81
+ <tr>
82
+ <td class="key"><b>Latitude:</b></td><td><?php echo $lat; ?></td>
83
+ </tr>
84
+ <tr>
85
+ <td class="key"><b>Longitude:</b></td><td><?php echo $lon; ?></td>
86
+ </tr>
87
+ </table>
88
+ <?php
89
+ die();
90
+ }
91
+
92
+ ////////////////////////////////////////////////////////////////////////////////////////
93
+ // Getters & Setters //
94
+ ////////////////////////////////////////////////////////////////////////////////////////
95
+ ////////////////////////////////////////////////////////////////////////////////////////
96
+ // Private Methods //
97
+ ////////////////////////////////////////////////////////////////////////////////////////
98
+ ////////////////////////////////////////////////////////////////////////////////////////
99
+ // Listeners //
100
+ ////////////////////////////////////////////////////////////////////////////////////////
101
  }
admin/views/FMViewFrommapeditinpopup.php CHANGED
@@ -1,66 +1,66 @@
1
- <?php
2
-
3
- class FMViewFrommapeditinpopup {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $fm_settings = get_option('fm_settings');
27
- $map_key = isset($fm_settings['map_key']) ? $fm_settings['map_key'] : '';
28
- $long = ((isset($_GET['long'])) ? esc_html(stripslashes($_GET['long'])) : 0);
29
- $lat = ((isset($_GET['lat'])) ? esc_html(stripslashes($_GET['lat'])) : 0);
30
- ?>
31
- <script src="<?php echo WD_FM_URL . '/js/main_front_end.js'; ?>"></script>
32
- <script src="<?php echo WD_FM_URL . '/js/if_gmap_back_end.js'; ?>"></script>
33
- <script src="https://maps.google.com/maps/api/js?v=3.exp&key=<?php echo $map_key ?>"></script>
34
- <table style="margin:0px; padding:0px">
35
- <tr>
36
- <td><b>Address:</b></td>
37
- <td><input type="text" id="addrval0" style="border:0px; background:none" size="80" readonly/></td>
38
- </tr>
39
- <tr>
40
- <td><b>Longitude:</b></td>
41
- <td><input type="text" id="longval0" style="border:0px; background:none" size="80" readonly/></td>
42
- </tr>
43
- <tr>
44
- <td><b>Latitude:</b></td>
45
- <td><input type="text" id="latval0" style="border:0px; background:none" size="80" readonly/></td>
46
- </tr>
47
- </table>
48
- <div id="0_elementform_id_temp" long="<?php echo $long ?>" center_x="<?php echo $long ?>" center_y="<?php echo $lat ?>" lat="<?php echo $lat ?>" zoom="8" info="" style="width:600px; height:400px; "></div>
49
- <script>
50
- if_gmap_init("0");
51
- add_marker_on_map(0, 0, "<?php echo $long; ?>", "<?php echo $lat; ?>", "");
52
- </script>
53
- <?php
54
- die();
55
- }
56
-
57
- ////////////////////////////////////////////////////////////////////////////////////////
58
- // Getters & Setters //
59
- ////////////////////////////////////////////////////////////////////////////////////////
60
- ////////////////////////////////////////////////////////////////////////////////////////
61
- // Private Methods //
62
- ////////////////////////////////////////////////////////////////////////////////////////
63
- ////////////////////////////////////////////////////////////////////////////////////////
64
- // Listeners //
65
- ////////////////////////////////////////////////////////////////////////////////////////
66
  }
1
+ <?php
2
+
3
+ class FMViewFrommapeditinpopup {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $fm_settings = get_option('fm_settings');
27
+ $map_key = isset($fm_settings['map_key']) ? $fm_settings['map_key'] : '';
28
+ $long = ((isset($_GET['long'])) ? esc_html(stripslashes($_GET['long'])) : 0);
29
+ $lat = ((isset($_GET['lat'])) ? esc_html(stripslashes($_GET['lat'])) : 0);
30
+ ?>
31
+ <script src="<?php echo WD_FM_URL . '/js/main_front_end.js'; ?>"></script>
32
+ <script src="<?php echo WD_FM_URL . '/js/if_gmap_back_end.js'; ?>"></script>
33
+ <script src="https://maps.google.com/maps/api/js?v=3.exp&key=<?php echo $map_key ?>"></script>
34
+ <table style="margin:0px; padding:0px">
35
+ <tr>
36
+ <td><b>Address:</b></td>
37
+ <td><input type="text" id="addrval0" style="border:0px; background:none" size="80" readonly/></td>
38
+ </tr>
39
+ <tr>
40
+ <td><b>Longitude:</b></td>
41
+ <td><input type="text" id="longval0" style="border:0px; background:none" size="80" readonly/></td>
42
+ </tr>
43
+ <tr>
44
+ <td><b>Latitude:</b></td>
45
+ <td><input type="text" id="latval0" style="border:0px; background:none" size="80" readonly/></td>
46
+ </tr>
47
+ </table>
48
+ <div id="0_elementform_id_temp" long="<?php echo $long ?>" center_x="<?php echo $long ?>" center_y="<?php echo $lat ?>" lat="<?php echo $lat ?>" zoom="8" info="" style="width:600px; height:400px; "></div>
49
+ <script>
50
+ if_gmap_init("0");
51
+ add_marker_on_map(0, 0, "<?php echo $long; ?>", "<?php echo $lat; ?>", "");
52
+ </script>
53
+ <?php
54
+ die();
55
+ }
56
+
57
+ ////////////////////////////////////////////////////////////////////////////////////////
58
+ // Getters & Setters //
59
+ ////////////////////////////////////////////////////////////////////////////////////////
60
+ ////////////////////////////////////////////////////////////////////////////////////////
61
+ // Private Methods //
62
+ ////////////////////////////////////////////////////////////////////////////////////////
63
+ ////////////////////////////////////////////////////////////////////////////////////////
64
+ // Listeners //
65
+ ////////////////////////////////////////////////////////////////////////////////////////
66
  }
admin/views/FMViewGenerete_csv.php CHANGED
@@ -1,95 +1,95 @@
1
- <?php
2
-
3
- class FMViewGenerete_csv {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- // Constructor & Destructor //
17
- ////////////////////////////////////////////////////////////////////////////////////////
18
- public function __construct($model) {
19
- $this->model = $model;
20
- }
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $fm_settings = get_option('fm_settings');
27
- $csv_delimiter = isset($fm_settings['csv_delimiter']) ? $fm_settings['csv_delimiter'] : ',';
28
- $form_id = (int)$_REQUEST['form_id'];
29
- $params = $this->model->get_data();
30
- $limitstart = (int)$_REQUEST['limitstart'];
31
- $send_header = (int)$_REQUEST['send_header'];
32
- $data = $params[0];
33
- $title = $params[1];
34
- $is_paypal_info = $params[2];
35
-
36
- $all_keys = array();
37
- foreach ($data as $row) {
38
- $all_keys = array_merge($all_keys, $row);
39
- }
40
-
41
- $keys_array = array_keys($all_keys);
42
- foreach ($data as $key => $row) {
43
- foreach ($keys_array as $key1 => $value) {
44
- if(!array_key_exists ( $value , $row ))
45
- array_splice($row, $key1, 0, '');
46
- }
47
- $data[$key] = $row;
48
- }
49
-
50
- $upload_dir = wp_upload_dir();
51
- $file_path = $upload_dir['basedir'] . '/form-maker';
52
- if (!is_dir($file_path)) {
53
- mkdir($file_path, 0777);
54
- }
55
- $tempfile = $file_path.'/export'.$form_id.'.txt';
56
- if($limitstart == 0 && file_exists ($tempfile))
57
- unlink($tempfile);
58
-
59
- $output = fopen($tempfile, "a");
60
- if($limitstart == 0) {
61
- fputcsv($output, str_replace('PAYPAL_', '', $keys_array), $csv_delimiter);
62
- }
63
-
64
- foreach ($data as $record) {
65
- fputcsv($output, $record, $csv_delimiter);
66
- }
67
- fclose($output);
68
-
69
- if($send_header == 1){
70
- $txtfile = fopen($tempfile, "r");
71
- $txtfilecontent = fread($txtfile, filesize($tempfile));
72
- fclose($txtfile);
73
-
74
- $filename = $title . "_" . date('Ymd') . ".csv";
75
- header('Content-Encoding: Windows-1252');
76
- header('Content-type: text/csv; charset=Windows-1252');
77
- header("Content-Disposition: attachment; filename=\"$filename\"");
78
-
79
- echo $txtfilecontent;
80
- unlink($tempfile);
81
- die();
82
- }
83
-
84
- }
85
-
86
- ////////////////////////////////////////////////////////////////////////////////////////
87
- // Getters & Setters //
88
- ////////////////////////////////////////////////////////////////////////////////////////
89
- ////////////////////////////////////////////////////////////////////////////////////////
90
- // Private Methods //
91
- ////////////////////////////////////////////////////////////////////////////////////////
92
- ////////////////////////////////////////////////////////////////////////////////////////
93
- // Listeners //
94
- ////////////////////////////////////////////////////////////////////////////////////////
95
  }
1
+ <?php
2
+
3
+ class FMViewGenerete_csv {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct($model) {
19
+ $this->model = $model;
20
+ }
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $fm_settings = get_option('fm_settings');
27
+ $csv_delimiter = isset($fm_settings['csv_delimiter']) ? $fm_settings['csv_delimiter'] : ',';
28
+ $form_id = (int)$_REQUEST['form_id'];
29
+ $params = $this->model->get_data();
30
+ $limitstart = (int)$_REQUEST['limitstart'];
31
+ $send_header = (int)$_REQUEST['send_header'];
32
+ $data = $params[0];
33
+ $title = $params[1];
34
+ $is_paypal_info = $params[2];
35
+
36
+ $all_keys = array();
37
+ foreach ($data as $row) {
38
+ $all_keys = array_merge($all_keys, $row);
39
+ }
40
+
41
+ $keys_array = array_keys($all_keys);
42
+ foreach ($data as $key => $row) {
43
+ foreach ($keys_array as $key1 => $value) {
44
+ if(!array_key_exists ( $value , $row ))
45
+ array_splice($row, $key1, 0, '');
46
+ }
47
+ $data[$key] = $row;
48
+ }
49
+
50
+ $upload_dir = wp_upload_dir();
51
+ $file_path = $upload_dir['basedir'] . '/form-maker';
52
+ if (!is_dir($file_path)) {
53
+ mkdir($file_path, 0777);
54
+ }
55
+ $tempfile = $file_path.'/export'.$form_id.'.txt';
56
+ if($limitstart == 0 && file_exists ($tempfile))
57
+ unlink($tempfile);
58
+
59
+ $output = fopen($tempfile, "a");
60
+ if($limitstart == 0) {
61
+ fputcsv($output, str_replace('PAYPAL_', '', $keys_array), $csv_delimiter);
62
+ }
63
+
64
+ foreach ($data as $record) {
65
+ fputcsv($output, $record, $csv_delimiter);
66
+ }
67
+ fclose($output);
68
+
69
+ if($send_header == 1){
70
+ $txtfile = fopen($tempfile, "r");
71
+ $txtfilecontent = fread($txtfile, filesize($tempfile));
72
+ fclose($txtfile);
73
+
74
+ $filename = $title . "_" . date('Ymd') . ".csv";
75
+ header('Content-Encoding: Windows-1252');
76
+ header('Content-type: text/csv; charset=Windows-1252');
77
+ header("Content-Disposition: attachment; filename=\"$filename\"");
78
+
79
+ echo $txtfilecontent;
80
+ unlink($tempfile);
81
+ die();
82
+ }
83
+
84
+ }
85
+
86
+ ////////////////////////////////////////////////////////////////////////////////////////
87
+ // Getters & Setters //
88
+ ////////////////////////////////////////////////////////////////////////////////////////
89
+ ////////////////////////////////////////////////////////////////////////////////////////
90
+ // Private Methods //
91
+ ////////////////////////////////////////////////////////////////////////////////////////
92
+ ////////////////////////////////////////////////////////////////////////////////////////
93
+ // Listeners //
94
+ ////////////////////////////////////////////////////////////////////////////////////////
95
  }
admin/views/FMViewGenerete_xml.php CHANGED
@@ -1,86 +1,86 @@
1
- <?php
2
-
3
- class FMViewGenerete_xml {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- // Constructor & Destructor //
17
- ////////////////////////////////////////////////////////////////////////////////////////
18
- public function __construct($model) {
19
- $this->model = $model;
20
- }
21
-
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $form_id = (int)$_REQUEST['form_id'];
27
- $params = $this->model->get_data();
28
- $limitstart = (int)$_REQUEST['limitstart'];
29
- $send_header = (int)$_REQUEST['send_header'];
30
- $data = $params[0];
31
- $title = $params[1];
32
- define('PHP_TAB', "\t");
33
-
34
- $upload_dir = wp_upload_dir();
35
- $file_path = $upload_dir['basedir'] . '/form-maker';
36
- if (!is_dir($file_path)) {
37
- mkdir($file_path, 0777);
38
- }
39
- $tempfile = $file_path.'/export'.$form_id.'.txt';
40
- if($limitstart == 0 && file_exists ($tempfile))
41
- unlink($tempfile);
42
- $output = fopen($tempfile, "a");
43
- if($limitstart == 0) {
44
- fwrite($output, '<?xml version="1.0" encoding="utf-8" ?>'.PHP_EOL);
45
- fwrite($output, '<form title="'.$title.'">'.PHP_EOL);
46
- }
47
-
48
- foreach ($data as $key1 => $value1) {
49
- fwrite($output, PHP_TAB.'<submission id="'.$key1.'">'.PHP_EOL);
50
- foreach ($value1 as $key => $value) {
51
- fwrite($output, PHP_TAB.PHP_TAB.'<field title="'.$key.'">'.PHP_EOL);
52
- fwrite($output, PHP_TAB.PHP_TAB.PHP_TAB.'<![CDATA['.$value.']]>'.PHP_EOL);
53
- fwrite($output, PHP_TAB.PHP_TAB.'</field>'.PHP_EOL);
54
- }
55
- fwrite($output, PHP_TAB.'</submission>'.PHP_EOL);
56
- }
57
-
58
- if($send_header == 1){
59
- fwrite($output, '</form>');
60
- fclose($output);
61
-
62
- $txtfile = fopen($tempfile, "r");
63
- $txtfilecontent = fread($txtfile, filesize($tempfile));
64
- fclose($txtfile);
65
- $filename = $title . "_" . date('Ymd') . ".xml";
66
- header('Content-Encoding: Windows-1252');
67
- header('Content-type: text/xml; charset=utf-8');
68
- header("Content-Disposition: attachment; filename=\"$filename\"");
69
-
70
- echo $txtfilecontent;
71
- unlink($tempfile);
72
- die();
73
- }
74
-
75
- }
76
-
77
- ////////////////////////////////////////////////////////////////////////////////////////
78
- // Getters & Setters //
79
- ////////////////////////////////////////////////////////////////////////////////////////
80
- ////////////////////////////////////////////////////////////////////////////////////////
81
- // Private Methods //
82
- ////////////////////////////////////////////////////////////////////////////////////////
83
- ////////////////////////////////////////////////////////////////////////////////////////
84
- // Listeners //
85
- ////////////////////////////////////////////////////////////////////////////////////////
86
  }
1
+ <?php
2
+
3
+ class FMViewGenerete_xml {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct($model) {
19
+ $this->model = $model;
20
+ }
21
+
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $form_id = (int)$_REQUEST['form_id'];
27
+ $params = $this->model->get_data();
28
+ $limitstart = (int)$_REQUEST['limitstart'];
29
+ $send_header = (int)$_REQUEST['send_header'];
30
+ $data = $params[0];
31
+ $title = $params[1];
32
+ define('PHP_TAB', "\t");
33
+
34
+ $upload_dir = wp_upload_dir();
35
+ $file_path = $upload_dir['basedir'] . '/form-maker';
36
+ if (!is_dir($file_path)) {
37
+ mkdir($file_path, 0777);
38
+ }
39
+ $tempfile = $file_path.'/export'.$form_id.'.txt';
40
+ if($limitstart == 0 && file_exists ($tempfile))
41
+ unlink($tempfile);
42
+ $output = fopen($tempfile, "a");
43
+ if($limitstart == 0) {
44
+ fwrite($output, '<?xml version="1.0" encoding="utf-8" ?>'.PHP_EOL);
45
+ fwrite($output, '<form title="'.$title.'">'.PHP_EOL);
46
+ }
47
+
48
+ foreach ($data as $key1 => $value1) {
49
+ fwrite($output, PHP_TAB.'<submission id="'.$key1.'">'.PHP_EOL);
50
+ foreach ($value1 as $key => $value) {
51
+ fwrite($output, PHP_TAB.PHP_TAB.'<field title="'.$key.'">'.PHP_EOL);
52
+ fwrite($output, PHP_TAB.PHP_TAB.PHP_TAB.'<![CDATA['.$value.']]>'.PHP_EOL);
53
+ fwrite($output, PHP_TAB.PHP_TAB.'</field>'.PHP_EOL);
54
+ }
55
+ fwrite($output, PHP_TAB.'</submission>'.PHP_EOL);
56
+ }
57
+
58
+ if($send_header == 1){
59
+ fwrite($output, '</form>');
60
+ fclose($output);
61
+
62
+ $txtfile = fopen($tempfile, "r");
63
+ $txtfilecontent = fread($txtfile, filesize($tempfile));
64
+ fclose($txtfile);
65
+ $filename = $title . "_" . date('Ymd') . ".xml";
66
+ header('Content-Encoding: Windows-1252');
67
+ header('Content-type: text/xml; charset=utf-8');
68
+ header("Content-Disposition: attachment; filename=\"$filename\"");
69
+
70
+ echo $txtfilecontent;
71
+ unlink($tempfile);
72
+ die();
73
+ }
74
+
75
+ }
76
+
77
+ ////////////////////////////////////////////////////////////////////////////////////////
78
+ // Getters & Setters //
79
+ ////////////////////////////////////////////////////////////////////////////////////////
80
+ ////////////////////////////////////////////////////////////////////////////////////////
81
+ // Private Methods //
82
+ ////////////////////////////////////////////////////////////////////////////////////////
83
+ ////////////////////////////////////////////////////////////////////////////////////////
84
+ // Listeners //
85
+ ////////////////////////////////////////////////////////////////////////////////////////
86
  }
admin/views/FMViewShow_matrix.php CHANGED
@@ -1,127 +1,127 @@
1
- <?php
2
-
3
- class FMViewShow_matrix {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
-
16
- ////////////////////////////////////////////////////////////////////////////////////////
17
- // Constructor & Destructor //
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- public function __construct($model) {
20
- $this->model = $model;
21
- }
22
- ////////////////////////////////////////////////////////////////////////////////////////
23
- // Public Methods //
24
- ////////////////////////////////////////////////////////////////////////////////////////
25
- public function display() {
26
- $matrix_params = ((isset($_GET['matrix_params'])) ? esc_html(stripslashes($_GET['matrix_params'])) : 0);
27
- $new_filename = str_replace("***matrix***", '', $matrix_params);
28
- $new_filename = explode('***', $matrix_params);
29
- $mat_params = array_slice($new_filename, 0, count($new_filename) - 1);
30
- $mat_rows = $mat_params[0];
31
- $mat_columns = $mat_params[$mat_rows + 1];
32
- ?>
33
- <table style="margin: 0 auto;">
34
- <tr>
35
- <td></td>
36
- <?php
37
- for ($k = 1; $k <= $mat_columns; $k++) {
38
- ?>
39
- <td style="background-color: #BBBBBB; padding: 5px;"><?php echo $mat_params[$mat_rows + 1 + $k]; ?></td>
40
- <?php
41
- }
42
- ?>
43
- </tr>
44
- <?php
45
- $aaa = Array();
46
- $var_checkbox = 1;
47
- for ($k = 1; $k <= $mat_rows; $k++) {
48
- ?>
49
- <tr>
50
- <td style="background-color: #BBBBBB; padding: 5px; "><?php echo $mat_params[$k]; ?></td>
51
- <?php
52
- if ($mat_params[$mat_rows + $mat_columns + 2] == "radio") {
53
- if ($mat_params[$mat_rows + $mat_columns + 2 + $k] == 0) {
54
- $checked = 0;
55
- $aaa[1] = "";
56
- }
57
- else {
58
- $aaa = explode("_", $mat_params[$mat_rows + $mat_columns + 2 + $k]);
59
- }
60
- for ($l = 1; $l <= $mat_columns; $l++) {
61
- if ($aaa[1] == $l) {
62
- $checked = "checked";
63
- }
64
- else {
65
- $checked = "";
66
- }
67
- ?>
68
- <td style="text-align: center;"><input type="radio" <?php echo $checked; ?> disabled /></td>
69
- <?php
70
- }
71
- }
72
- else {
73
- if ($mat_params[$mat_rows + $mat_columns + 2] == "checkbox") {
74
- for ($l = 1; $l <= $mat_columns; $l++) {
75
- if ($mat_params[$mat_rows+$mat_columns + 2 + $var_checkbox] == "1") {
76
- $checked = "checked";
77
- }
78
- else {
79
- $checked = "";
80
- }
81
- ?>
82
- <td style="text-align:center"><input type="checkbox" <?php echo $checked; ?> disabled /></td>
83
- <?php
84
- $var_checkbox++;
85
- }
86
- }
87
- else {
88
- if ($mat_params[$mat_rows + $mat_columns + 2] == "text") {
89
- for ($l = 1; $l <= $mat_columns; $l++) {
90
- $checked = $mat_params[$mat_rows + $mat_columns + 2 + $var_checkbox];
91
- ?>
92
- <td style="text-align:center"><input type="text" value="<?php echo $checked; ?>" disabled /></td>
93
- <?php
94
- $var_checkbox++;
95
- }
96
- }
97
- else {
98
- for ($l = 1; $l <= $mat_columns; $l++) {
99
- $checked = $mat_params[$mat_rows + $mat_columns + 2 + $var_checkbox];
100
- ?>
101
- <td style="text-align: center;"><?php echo $checked; ?></td>
102
- <?php
103
- $var_checkbox++;
104
- }
105
- }
106
- }
107
- }
108
- ?>
109
- </tr>
110
- <?php
111
- }
112
- ?>
113
- </table>
114
- <?php
115
- die();
116
- }
117
-
118
- ////////////////////////////////////////////////////////////////////////////////////////
119
- // Getters & Setters //
120
- ////////////////////////////////////////////////////////////////////////////////////////
121
- ////////////////////////////////////////////////////////////////////////////////////////
122
- // Private Methods //
123
- ////////////////////////////////////////////////////////////////////////////////////////
124
- ////////////////////////////////////////////////////////////////////////////////////////
125
- // Listeners //
126
- ////////////////////////////////////////////////////////////////////////////////////////
127
  }
1
+ <?php
2
+
3
+ class FMViewShow_matrix {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+
16
+ ////////////////////////////////////////////////////////////////////////////////////////
17
+ // Constructor & Destructor //
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ public function __construct($model) {
20
+ $this->model = $model;
21
+ }
22
+ ////////////////////////////////////////////////////////////////////////////////////////
23
+ // Public Methods //
24
+ ////////////////////////////////////////////////////////////////////////////////////////
25
+ public function display() {
26
+ $matrix_params = ((isset($_GET['matrix_params'])) ? esc_html(stripslashes($_GET['matrix_params'])) : 0);
27
+ $new_filename = str_replace("***matrix***", '', $matrix_params);
28
+ $new_filename = explode('***', $matrix_params);
29
+ $mat_params = array_slice($new_filename, 0, count($new_filename) - 1);
30
+ $mat_rows = $mat_params[0];
31
+ $mat_columns = $mat_params[$mat_rows + 1];
32
+ ?>
33
+ <table style="margin: 0 auto;">
34
+ <tr>
35
+ <td></td>
36
+ <?php
37
+ for ($k = 1; $k <= $mat_columns; $k++) {
38
+ ?>
39
+ <td style="background-color: #BBBBBB; padding: 5px;"><?php echo $mat_params[$mat_rows + 1 + $k]; ?></td>
40
+ <?php
41
+ }
42
+ ?>
43
+ </tr>
44
+ <?php
45
+ $aaa = Array();
46
+ $var_checkbox = 1;
47
+ for ($k = 1; $k <= $mat_rows; $k++) {
48
+ ?>
49
+ <tr>
50
+ <td style="background-color: #BBBBBB; padding: 5px; "><?php echo $mat_params[$k]; ?></td>
51
+ <?php
52
+ if ($mat_params[$mat_rows + $mat_columns + 2] == "radio") {
53
+ if ($mat_params[$mat_rows + $mat_columns + 2 + $k] == 0) {
54
+ $checked = 0;
55
+ $aaa[1] = "";
56
+ }
57
+ else {
58
+ $aaa = explode("_", $mat_params[$mat_rows + $mat_columns + 2 + $k]);
59
+ }
60
+ for ($l = 1; $l <= $mat_columns; $l++) {
61
+ if ($aaa[1] == $l) {
62
+ $checked = "checked";
63
+ }
64
+ else {
65
+ $checked = "";
66
+ }
67
+ ?>
68
+ <td style="text-align: center;"><input type="radio" <?php echo $checked; ?> disabled /></td>
69
+ <?php
70
+ }
71
+ }
72
+ else {
73
+ if ($mat_params[$mat_rows + $mat_columns + 2] == "checkbox") {
74
+ for ($l = 1; $l <= $mat_columns; $l++) {
75
+ if ($mat_params[$mat_rows+$mat_columns + 2 + $var_checkbox] == "1") {
76
+ $checked = "checked";
77
+ }
78
+ else {
79
+ $checked = "";
80
+ }
81
+ ?>
82
+ <td style="text-align:center"><input type="checkbox" <?php echo $checked; ?> disabled /></td>
83
+ <?php
84
+ $var_checkbox++;
85
+ }
86
+ }
87
+ else {
88
+ if ($mat_params[$mat_rows + $mat_columns + 2] == "text") {
89
+ for ($l = 1; $l <= $mat_columns; $l++) {
90
+ $checked = $mat_params[$mat_rows + $mat_columns + 2 + $var_checkbox];
91
+ ?>
92
+ <td style="text-align:center"><input type="text" value="<?php echo $checked; ?>" disabled /></td>
93
+ <?php
94
+ $var_checkbox++;
95
+ }
96
+ }
97
+ else {
98
+ for ($l = 1; $l <= $mat_columns; $l++) {
99
+ $checked = $mat_params[$mat_rows + $mat_columns + 2 + $var_checkbox];
100
+ ?>
101
+ <td style="text-align: center;"><?php echo $checked; ?></td>
102
+ <?php
103
+ $var_checkbox++;
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ?>
109
+ </tr>
110
+ <?php
111
+ }
112
+ ?>
113
+ </table>
114
+ <?php
115
+ die();
116
+ }
117
+
118
+ ////////////////////////////////////////////////////////////////////////////////////////
119
+ // Getters & Setters //
120
+ ////////////////////////////////////////////////////////////////////////////////////////
121
+ ////////////////////////////////////////////////////////////////////////////////////////
122
+ // Private Methods //
123
+ ////////////////////////////////////////////////////////////////////////////////////////
124
+ ////////////////////////////////////////////////////////////////////////////////////////
125
+ // Listeners //
126
+ ////////////////////////////////////////////////////////////////////////////////////////
127
  }
admin/views/FMViewWidget.php CHANGED
@@ -1,83 +1,83 @@
1
- <?php
2
-
3
- class FMViewWidget {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- // Constructor & Destructor //
17
- ////////////////////////////////////////////////////////////////////////////////////////
18
- public function __construct($model) {
19
- $this->model = $model;
20
- }
21
- ////////////////////////////////////////////////////////////////////////////////////////
22
- // Public Methods //
23
- ////////////////////////////////////////////////////////////////////////////////////////
24
-
25
- public function display() {
26
- }
27
-
28
- function widget($args, $instance) {
29
- extract($args);
30
- $title = $instance['title'];
31
- $form_id = (isset($instance['form_id']) ? $instance['form_id'] : 0);
32
- // Before widget.
33
- echo $before_widget;
34
- // Title of widget.
35
- if ($title) {
36
- echo $before_title . $title . $after_title;
37
- }
38
- // Widget output.
39
- require_once(WD_FM_DIR . '/frontend/controllers/FMControllerForm_maker.php');
40
- $controller_class = 'FMControllerForm_maker';
41
- $controller = new $controller_class();
42
- echo $controller->execute($instance['form_id']);
43
- // After widget.
44
- echo $after_widget;
45
- }
46
-
47
- // Widget Control Panel.
48
- function form($instance, $id_title, $name_title, $id_form_id, $name_form_id) {
49
- $defaults = array(
50
- 'title' => '',
51
- 'form_id' => 0
52
- );
53
- $instance = wp_parse_args((array)$instance, $defaults);
54
- global $wpdb; ?>
55
- <p>
56
- <label for="<?php echo $id_title; ?>">Title:</label>
57
- <input class="widefat" id="<?php echo $id_title; ?>" name="<?php echo $name_title; ?>" type="text" value="<?php echo $instance['title']; ?>"/>
58
- <label for="<?php echo $id_form_id; ?>">Select a form:</label>
59
- <select name="<?php echo $name_form_id; ?>" id="<?php echo $id_form_id; ?>" style="width:225px;text-align:center;">
60
- <option style="text-align:center" value="0">- Select a Form -</option>
61
- <?php
62
- $ids_Form_Maker = $this->model->get_gallery_rows_data();
63
- foreach ($ids_Form_Maker as $arr_Form_Maker) {
64
- ?>
65
- <option value="<?php echo $arr_Form_Maker->id; ?>" <?php if ($arr_Form_Maker->id == $instance['form_id']) {
66
- echo "SELECTED";
67
- } ?>><?php echo $arr_Form_Maker->title; ?></option>
68
- <?php }?>
69
- </select>
70
- </p>
71
- <?php
72
- }
73
-
74
- ////////////////////////////////////////////////////////////////////////////////////////
75
- // Getters & Setters //
76
- ////////////////////////////////////////////////////////////////////////////////////////
77
- ////////////////////////////////////////////////////////////////////////////////////////
78
- // Private Methods //
79
- ////////////////////////////////////////////////////////////////////////////////////////
80
- ////////////////////////////////////////////////////////////////////////////////////////
81
- // Listeners //
82
- ////////////////////////////////////////////////////////////////////////////////////////
83
  }
1
+ <?php
2
+
3
+ class FMViewWidget {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct($model) {
19
+ $this->model = $model;
20
+ }
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ // Public Methods //
23
+ ////////////////////////////////////////////////////////////////////////////////////////
24
+
25
+ public function display() {
26
+ }
27
+
28
+ function widget($args, $instance) {
29
+ extract($args);
30
+ $title = $instance['title'];
31
+ $form_id = (isset($instance['form_id']) ? $instance['form_id'] : 0);
32
+ // Before widget.
33
+ echo $before_widget;
34
+ // Title of widget.
35
+ if ($title) {
36
+ echo $before_title . $title . $after_title;
37
+ }
38
+ // Widget output.
39
+ require_once(WD_FM_DIR . '/frontend/controllers/FMControllerForm_maker.php');
40
+ $controller_class = 'FMControllerForm_maker';
41
+ $controller = new $controller_class();
42
+ echo $controller->execute($instance['form_id']);
43
+ // After widget.
44
+ echo $after_widget;
45
+ }
46
+
47
+ // Widget Control Panel.
48
+ function form($instance, $id_title, $name_title, $id_form_id, $name_form_id) {
49
+ $defaults = array(
50
+ 'title' => '',
51
+ 'form_id' => 0
52
+ );
53
+ $instance = wp_parse_args((array)$instance, $defaults);
54
+ global $wpdb; ?>
55
+ <p>
56
+ <label for="<?php echo $id_title; ?>">Title:</label>
57
+ <input class="widefat" id="<?php echo $id_title; ?>" name="<?php echo $name_title; ?>" type="text" value="<?php echo $instance['title']; ?>"/>
58
+ <label for="<?php echo $id_form_id; ?>">Select a form:</label>
59
+ <select name="<?php echo $name_form_id; ?>" id="<?php echo $id_form_id; ?>" style="width:225px;text-align:center;">
60
+ <option style="text-align:center" value="0">- Select a Form -</option>
61
+ <?php
62
+ $ids_Form_Maker = $this->model->get_gallery_rows_data();
63
+ foreach ($ids_Form_Maker as $arr_Form_Maker) {
64
+ ?>
65
+ <option value="<?php echo $arr_Form_Maker->id; ?>" <?php if ($arr_Form_Maker->id == $instance['form_id']) {
66
+ echo "SELECTED";
67
+ } ?>><?php echo $arr_Form_Maker->title; ?></option>
68
+ <?php }?>
69
+ </select>
70
+ </p>
71
+ <?php
72
+ }
73
+
74
+ ////////////////////////////////////////////////////////////////////////////////////////
75
+ // Getters & Setters //
76
+ ////////////////////////////////////////////////////////////////////////////////////////
77
+ ////////////////////////////////////////////////////////////////////////////////////////
78
+ // Private Methods //
79
+ ////////////////////////////////////////////////////////////////////////////////////////
80
+ ////////////////////////////////////////////////////////////////////////////////////////
81
+ // Listeners //
82
+ ////////////////////////////////////////////////////////////////////////////////////////
83
  }
css/calendar-jos.css CHANGED
@@ -1,208 +1,208 @@
1
- /* The main calendar widget. DIV containing a table. */
2
-
3
- /* Form Wordpress. */
4
- .calendar .button {
5
- display: table-cell !important;
6
- }
7
-
8
- div.calendar {
9
- position: relative;
10
- z-index: 100;
11
- width: 326px;
12
- }
13
-
14
- .calendar,
15
- .calendar table {
16
- border: 1px solid #cccccc;
17
- font-size: 11px;
18
- color: #000;
19
- cursor: default;
20
- background: #efefef;
21
- font-family: arial,verdana,sans-serif;
22
- margin: 0;
23
- line-height: 1.7;
24
- }
25
-
26
- /* Header part -- contains navigation buttons and day names. */
27
- .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
28
- text-align: center; /* They are the navigation buttons */
29
- padding: 2px; /* Make the buttons seem like they're pressing */
30
- border:0px;
31
- height:inherit;
32
-
33
- }
34
-
35
- .wdform_table1 .button,
36
- #formMakerDiv1 .button,
37
- .submitdate_fc .button,
38
- .main .button {
39
- -webkit-border-radius: 11px !important;;
40
- border-radius: 11px !important;;
41
- text-shadow: white 0px 1px 0px;
42
- background-origin: padding-box;
43
- border-bottom-width: 1px;
44
- border-left-width: 1px;
45
- border-right-width: 1px;
46
- border-top-width: 1px;
47
- }
48
-
49
- .calendar thead .title { /* This holds the current "month, year" */
50
- font-weight: bold; /* Pressing it will take you to the current date */
51
- text-align: center;
52
- background: #333333;
53
- color: #ffffff;
54
- padding: 2px;
55
- }
56
-
57
- .calendar thead .headrow { /* Row <TR> containing navigation buttons */
58
- background: #dedede;
59
- color: #000;
60
- }
61
-
62
- .calendar thead .name { /* Cells <TD> containing the day names */
63
- border-bottom: 1px solid #cccccc;
64
- padding: 2px;
65
- text-align: center;
66
- color: #000;
67
- }
68
-
69
- .calendar thead .weekend { /* How a weekend day name shows in header */
70
- color:#666666 !important;
71
- }
72
-
73
- .calendar thead .hilite { /* How do the buttons in header appear when hover */
74
- background: #bbbbbb;
75
- color: #000000;
76
- border: 1px solid #cccccc;
77
- padding: 1px;
78
- }
79
-
80
- .calendar thead .active { /* Active (pressed) buttons in header */
81
- background: #c77;
82
- padding: 2px 0px 0px 2px;
83
- }
84
-
85
- .calendar thead .daynames { /* Row <TR> containing the day names */
86
- background: #dddddd;
87
- }
88
-
89
- /* The body part -- contains all the days in month. */
90
-
91
- .calendar tbody .day { /* Cells <TD> containing month days dates */
92
- width: 2em;
93
- text-align: right;
94
- padding: 2px 4px 2px 2px;
95
- }
96
-
97
- .calendar table .wn {
98
- padding: 2px 3px 2px 2px;
99
- border-right: 1px solid #cccccc;
100
- background: #dddddd;
101
- }
102
-
103
- .calendar tbody .rowhilite td {
104
- background: #666666;
105
- color: #ffffff;
106
- }
107
-
108
- .calendar tbody .rowhilite td.wn {
109
- background: #666666;
110
- color: #ffffff;
111
- }
112
- .calendar table
113
- {
114
- border-collapse:inherit !important;
115
- }
116
-
117
- .calendar tbody td.hilite { /* Hovered cells <TD> */
118
- background: #999999;
119
- padding: 1px 3px 1px 1px;
120
- border: 1px solid #666666;
121
- }
122
-
123
- .calendar tbody td.active { /* Active (pressed) cells <TD> */
124
- background: #000000;
125
- color: #ffffff;
126
- padding: 2px 2px 0px 2px;
127
- }
128
-
129
- .calendar tbody td.selected { /* Cell showing today date */
130
- font-weight: bold;
131
- border: 1px solid #000;
132
- padding: 1px 3px 1px 1px;
133
- background: #000000;
134
- color: #ffffff;
135
- }
136
-
137
- .calendar tbody td.weekend { /* Cells showing weekend days */
138
- color: #cccccc;
139
- }
140
-
141
- .calendar tbody td.today { font-weight: bold; }
142
-
143
- .calendar tbody .disabled { color: #999; }
144
-
145
- .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
146
- visibility: hidden;
147
- padding: 0;
148
- }
149
-
150
- .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
151
- display: none;
152
- }
153
-
154
- /* The footer part -- status bar and "Close" button */
155
-
156
- .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
157
- text-align: center;
158
- background: #cccccc;
159
- color: #000;
160
- }
161
-
162
- .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
163
- border-top: 1px solid #cccccc;
164
- background: #efefef;
165
- color: #000000;
166
- }
167
-
168
- .calendar tfoot .hilite { /* Hover style for buttons in footer */
169
- background: #666666;
170
- border: 1px solid #f40;
171
- padding: 1px;
172
- }
173
-
174
- .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
175
- background: #999999;
176
- padding: 2px 0px 0px 2px;
177
- }
178
-
179
- /* Combo boxes (menus that display months/years for direct selection) */
180
- .combo {
181
- position: absolute;
182
- display: none;
183
- top: 0px;
184
- left: 0px;
185
- width: 4em;
186
- cursor: default;
187
- border: 1px solid #655;
188
- background: #ffffff;
189
- color: #000;
190
- font-size: smaller;
191
- }
192
-
193
- .combo .label {
194
- width: 100%;
195
- text-align: center;
196
- }
197
-
198
- .combo .hilite {
199
- background: #fc8;
200
- }
201
-
202
- .combo .active {
203
- border-top: 1px solid #cccccc;
204
- border-bottom: 1px solid #cccccc;
205
- background: #efefef;
206
- font-weight: bold;
207
-
208
- }
1
+ /* The main calendar widget. DIV containing a table. */
2
+
3
+ /* Form Wordpress. */
4
+ .calendar .button {
5
+ display: table-cell !important;
6
+ }
7
+
8
+ div.calendar {
9
+ position: relative;
10
+ z-index: 100;
11
+ width: 326px;
12
+ }
13
+
14
+ .calendar,
15
+ .calendar table {
16
+ border: 1px solid #cccccc;
17
+ font-size: 11px;
18
+ color: #000;
19
+ cursor: default;
20
+ background: #efefef;
21
+ font-family: arial,verdana,sans-serif;
22
+ margin: 0;
23
+ line-height: 1.7;
24
+ }
25
+
26
+ /* Header part -- contains navigation buttons and day names. */
27
+ .calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
28
+ text-align: center; /* They are the navigation buttons */
29
+ padding: 2px; /* Make the buttons seem like they're pressing */
30
+ border:0px;
31
+ height:inherit;
32
+
33
+ }
34
+
35
+ .wdform_table1 .button,
36
+ #formMakerDiv1 .button,
37
+ .submitdate_fc .button,
38
+ .main .button {
39
+ -webkit-border-radius: 11px !important;;
40
+ border-radius: 11px !important;;
41
+ text-shadow: white 0px 1px 0px;
42
+ background-origin: padding-box;
43
+ border-bottom-width: 1px;
44
+ border-left-width: 1px;
45
+ border-right-width: 1px;
46
+ border-top-width: 1px;
47
+ }
48
+
49
+ .calendar thead .title { /* This holds the current "month, year" */
50
+ font-weight: bold; /* Pressing it will take you to the current date */
51
+ text-align: center;
52
+ background: #333333;
53
+ color: #ffffff;
54
+ padding: 2px;
55
+ }
56
+
57
+ .calendar thead .headrow { /* Row <TR> containing navigation buttons */
58
+ background: #dedede;
59
+ color: #000;
60
+ }
61
+
62
+ .calendar thead .name { /* Cells <TD> containing the day names */
63
+ border-bottom: 1px solid #cccccc;
64
+ padding: 2px;
65
+ text-align: center;
66
+ color: #000;
67
+ }
68
+
69
+ .calendar thead .weekend { /* How a weekend day name shows in header */
70
+ color:#666666 !important;
71
+ }
72
+
73
+ .calendar thead .hilite { /* How do the buttons in header appear when hover */
74
+ background: #bbbbbb;
75
+ color: #000000;
76
+ border: 1px solid #cccccc;
77
+ padding: 1px;
78
+ }
79
+
80
+ .calendar thead .active { /* Active (pressed) buttons in header */
81
+ background: #c77;
82
+ padding: 2px 0px 0px 2px;
83
+ }
84
+
85
+ .calendar thead .daynames { /* Row <TR> containing the day names */
86
+ background: #dddddd;
87
+ }
88
+
89
+ /* The body part -- contains all the days in month. */
90
+
91
+ .calendar tbody .day { /* Cells <TD> containing month days dates */
92
+ width: 2em;
93
+ text-align: right;
94
+ padding: 2px 4px 2px 2px;
95
+ }
96
+
97
+ .calendar table .wn {
98
+ padding: 2px 3px 2px 2px;
99
+ border-right: 1px solid #cccccc;
100
+ background: #dddddd;
101
+ }
102
+
103
+ .calendar tbody .rowhilite td {
104
+ background: #666666;
105
+ color: #ffffff;
106
+ }
107
+
108
+ .calendar tbody .rowhilite td.wn {
109
+ background: #666666;
110
+ color: #ffffff;
111
+ }
112
+ .calendar table
113
+ {
114
+ border-collapse:inherit !important;
115
+ }
116
+
117
+ .calendar tbody td.hilite { /* Hovered cells <TD> */
118
+ background: #999999;
119
+ padding: 1px 3px 1px 1px;
120
+ border: 1px solid #666666;
121
+ }
122
+
123
+ .calendar tbody td.active { /* Active (pressed) cells <TD> */
124
+ background: #000000;
125
+ color: #ffffff;
126
+ padding: 2px 2px 0px 2px;
127
+ }
128
+
129
+ .calendar tbody td.selected { /* Cell showing today date */
130
+ font-weight: bold;
131
+ border: 1px solid #000;
132
+ padding: 1px 3px 1px 1px;
133
+ background: #000000;
134
+ color: #ffffff;
135
+ }
136
+
137
+ .calendar tbody td.weekend { /* Cells showing weekend days */
138
+ color: #cccccc;
139
+ }
140
+
141
+ .calendar tbody td.today { font-weight: bold; }
142
+
143
+ .calendar tbody .disabled { color: #999; }
144
+
145
+ .calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
146
+ visibility: hidden;
147
+ padding: 0;
148
+ }
149
+
150
+ .calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
151
+ display: none;
152
+ }
153
+
154
+ /* The footer part -- status bar and "Close" button */
155
+
156
+ .calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
157
+ text-align: center;
158
+ background: #cccccc;
159
+ color: #000;
160
+ }
161
+
162
+ .calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
163
+ border-top: 1px solid #cccccc;
164
+ background: #efefef;
165
+ color: #000000;
166
+ }
167
+
168
+ .calendar tfoot .hilite { /* Hover style for buttons in footer */
169
+ background: #666666;
170
+ border: 1px solid #f40;
171
+ padding: 1px;
172
+ }
173
+
174
+ .calendar tfoot .active { /* Active (pressed) style for buttons in footer */
175
+ background: #999999;
176
+ padding: 2px 0px 0px 2px;
177
+ }
178
+
179
+ /* Combo boxes (menus that display months/years for direct selection) */
180
+ .combo {
181
+ position: absolute;
182
+ display: none;
183
+ top: 0px;
184
+ left: 0px;
185
+ width: 4em;
186
+ cursor: default;
187
+ border: 1px solid #655;
188
+ background: #ffffff;
189
+ color: #000;
190
+ font-size: smaller;
191
+ }
192
+
193
+ .combo .label {
194
+ width: 100%;
195
+ text-align: center;
196
+ }
197
+
198
+ .combo .hilite {
199
+ background: #fc8;
200
+ }
201
+
202
+ .combo .active {
203
+ border-top: 1px solid #cccccc;
204
+ border-bottom: 1px solid #cccccc;
205
+ background: #efefef;
206
+ font-weight: bold;
207
+
208
+ }
css/codemirror.css CHANGED
@@ -1,168 +1,168 @@
1
- .CodeMirror {
2
- line-height: 1em;
3
- font-family: monospace;
4
-
5
- /* Necessary so the scrollbar can be absolutely positioned within the wrapper on Lion. */
6
- position: relative;
7
- /* This prevents unwanted scrollbars from showing up on the body and wrapper in IE. */
8
- overflow: hidden;
9
- }
10
-
11
- .CodeMirror-scroll {
12
- overflow-x: auto;
13
- overflow-y: hidden;
14
- height: 400px;
15
- /* This is needed to prevent an IE[67] bug where the scrolled content
16
- is visible outside of the scrolling box. */
17
- position: relative;
18
- outline: none;
19
- }
20
-
21
- /* Vertical scrollbar */
22
- .CodeMirror-scrollbar {
23
- float: right;
24
- overflow-x: hidden;
25
- overflow-y: scroll;
26
-
27
- /* This corrects for the 1px gap introduced to the left of the scrollbar
28
- by the rule for .CodeMirror-scrollbar-inner. */
29
- margin-left: -1px;
30
- }
31
- .CodeMirror-scrollbar-inner {
32
- /* This needs to have a nonzero width in order for the scrollbar to appear
33
- in Firefox and IE9. */
34
- width: 1px;
35
- }
36
- .CodeMirror-scrollbar.cm-sb-overlap {
37
- /* Ensure that the scrollbar appears in Lion, and that it overlaps the content
38
- rather than sitting to the right of it. */
39
- position: absolute;
40
- z-index: 1;
41
- float: none;
42
- right: 0;
43
- min-width: 12px;
44
- }
45
- .CodeMirror-scrollbar.cm-sb-nonoverlap {
46
- min-width: 12px;
47
- }
48
- .CodeMirror-scrollbar.cm-sb-ie7 {
49
- min-width: 18px;
50
- }
51
-
52
- .CodeMirror-gutter {
53
- position: absolute; left: 0; top: 0;
54
- z-index: 10;
55
- background-color: #f7f7f7;
56
- border-right: 1px solid #eee;
57
- min-width: 2em;
58
- height: 100%;
59
- }
60
- .CodeMirror-gutter-text {
61
- color: #aaa;
62
- text-align: right;
63
- padding: .4em .2em .4em .4em;
64
- white-space: pre !important;
65
- }
66
- .CodeMirror-lines {
67
- padding: .4em;
68
- white-space: pre;
69
- cursor: text;
70
- }
71
- .CodeMirror-lines * {
72
- /* Necessary for throw-scrolling to decelerate properly on Safari. */
73
- pointer-events: none;
74
- }
75
-
76
- .CodeMirror pre {
77
- -moz-border-radius: 0;
78
- -webkit-border-radius: 0;
79
- -o-border-radius: 0;
80
- border-radius: 0;
81
- border-width: 0; margin: 0; padding: 0; background: transparent;
82
- font-family: inherit;
83
- font-size: inherit;
84
- padding: 0; margin: 0;
85
- white-space: pre;
86
- word-wrap: normal;
87
- line-height: inherit;
88
- color: inherit;
89
- }
90
-
91
- .CodeMirror-wrap pre {
92
- word-wrap: break-word;
93
- white-space: pre-wrap;
94
- word-break: normal;
95
- }
96
- .CodeMirror-wrap .CodeMirror-scroll {
97
- overflow-x: hidden;
98
- }
99
-
100
- .CodeMirror textarea {
101
- outline: none !important;
102
- }
103
-
104
- .CodeMirror pre.CodeMirror-cursor {
105
- z-index: 10;
106
- position: absolute;
107
- visibility: hidden;
108
- border-left: 1px solid black;
109
- border-right: none;
110
- width: 0;
111
- }
112
- .cm-keymap-fat-cursor pre.CodeMirror-cursor {
113
- width: auto;
114
- border: 0;
115
- background: transparent;
116
- background: rgba(0, 200, 0, .4);
117
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800);
118
- }
119
- /* Kludge to turn off filter in ie9+, which also accepts rgba */
120
- .cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) {
121
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
122
- }
123
- .CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
124
- .CodeMirror-focused pre.CodeMirror-cursor {
125
- visibility: visible;
126
- }
127
-
128
- div.CodeMirror-selected { background: #d9d9d9; }
129
- .CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; }
130
-
131
- .CodeMirror-searching {
132
- background: #ffa;
133
- background: rgba(255, 255, 0, .4);
134
- }
135
-
136
- /* Default theme */
137
-
138
- span.cm-keyword {color: #708;}
139
- span.cm-atom {color: #219;}
140
- span.cm-number {color: #164;}
141
- span.cm-def {color: #00f;}
142
- span.cm-variable {color: black;}
143
- span.cm-variable-2 {color: #05a;}
144
- span.cm-variable-3 {color: #085;}
145
- span.cm-property {color: black;}
146
- span.cm-operator {color: black;}
147
- span.cm-comment {color: #a50;}
148
- span.cm-string {color: #a11;}
149
- span.cm-string-2 {color: #f50;}
150
- span.cm-meta {color: #555;}
151
- span.cm-error {color: #f00;}
152
- span.cm-qualifier {color: #555;}
153
- span.cm-builtin {color: #30a;}
154
- span.cm-bracket {color: #cc7;}
155
- span.cm-tag {color: #170;}
156
- span.cm-attribute {color: #00c;}
157
- span.cm-header {color: blue;}
158
- span.cm-quote {color: #090;}
159
- span.cm-hr {color: #999;}
160
- span.cm-link {color: #00c;}
161
-
162
- span.cm-header, span.cm-strong {font-weight: bold;}
163
- span.cm-em {font-style: italic;}
164
- span.cm-emstrong {font-style: italic; font-weight: bold;}
165
- span.cm-link {text-decoration: underline;}
166
-
167
- div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
168
- div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
1
+ .CodeMirror {
2
+ line-height: 1em;
3
+ font-family: monospace;
4
+
5
+ /* Necessary so the scrollbar can be absolutely positioned within the wrapper on Lion. */
6
+ position: relative;
7
+ /* This prevents unwanted scrollbars from showing up on the body and wrapper in IE. */
8
+ overflow: hidden;
9
+ }
10
+
11
+ .CodeMirror-scroll {
12
+ overflow-x: auto;
13
+ overflow-y: hidden;
14
+ height: 400px;
15
+ /* This is needed to prevent an IE[67] bug where the scrolled content
16
+ is visible outside of the scrolling box. */
17
+ position: relative;
18
+ outline: none;
19
+ }
20
+
21
+ /* Vertical scrollbar */
22
+ .CodeMirror-scrollbar {
23
+ float: right;
24
+ overflow-x: hidden;
25
+ overflow-y: scroll;
26
+
27
+ /* This corrects for the 1px gap introduced to the left of the scrollbar
28
+ by the rule for .CodeMirror-scrollbar-inner. */
29
+ margin-left: -1px;
30
+ }
31
+ .CodeMirror-scrollbar-inner {
32
+ /* This needs to have a nonzero width in order for the scrollbar to appear
33
+ in Firefox and IE9. */
34
+ width: 1px;
35
+ }
36
+ .CodeMirror-scrollbar.cm-sb-overlap {
37
+ /* Ensure that the scrollbar appears in Lion, and that it overlaps the content
38
+ rather than sitting to the right of it. */
39
+ position: absolute;
40
+ z-index: 1;
41
+ float: none;
42
+ right: 0;
43
+ min-width: 12px;
44
+ }
45
+ .CodeMirror-scrollbar.cm-sb-nonoverlap {
46
+ min-width: 12px;
47
+ }
48
+ .CodeMirror-scrollbar.cm-sb-ie7 {
49
+ min-width: 18px;
50
+ }
51
+
52
+ .CodeMirror-gutter {
53
+ position: absolute; left: 0; top: 0;
54
+ z-index: 10;
55
+ background-color: #f7f7f7;
56
+ border-right: 1px solid #eee;
57
+ min-width: 2em;
58
+ height: 100%;
59
+ }
60
+ .CodeMirror-gutter-text {
61
+ color: #aaa;
62
+ text-align: right;
63
+ padding: .4em .2em .4em .4em;
64
+ white-space: pre !important;
65
+ }
66
+ .CodeMirror-lines {
67
+ padding: .4em;
68
+ white-space: pre;
69
+ cursor: text;
70
+ }
71
+ .CodeMirror-lines * {
72
+ /* Necessary for throw-scrolling to decelerate properly on Safari. */
73
+ pointer-events: none;
74
+ }
75
+
76
+ .CodeMirror pre {
77
+ -moz-border-radius: 0;
78
+ -webkit-border-radius: 0;
79
+ -o-border-radius: 0;
80
+ border-radius: 0;
81
+ border-width: 0; margin: 0; padding: 0; background: transparent;
82
+ font-family: inherit;
83
+ font-size: inherit;
84
+ padding: 0; margin: 0;
85
+ white-space: pre;
86
+ word-wrap: normal;
87
+ line-height: inherit;
88
+ color: inherit;
89
+ }
90
+
91
+ .CodeMirror-wrap pre {
92
+ word-wrap: break-word;
93
+ white-space: pre-wrap;
94
+ word-break: normal;
95
+ }
96
+ .CodeMirror-wrap .CodeMirror-scroll {
97
+ overflow-x: hidden;
98
+ }
99
+
100
+ .CodeMirror textarea {
101
+ outline: none !important;
102
+ }
103
+
104
+ .CodeMirror pre.CodeMirror-cursor {
105
+ z-index: 10;
106
+ position: absolute;
107
+ visibility: hidden;
108
+ border-left: 1px solid black;
109
+ border-right: none;
110
+ width: 0;
111
+ }
112
+ .cm-keymap-fat-cursor pre.CodeMirror-cursor {
113
+ width: auto;
114
+ border: 0;
115
+ background: transparent;
116
+ background: rgba(0, 200, 0, .4);
117
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800);
118
+ }
119
+ /* Kludge to turn off filter in ie9+, which also accepts rgba */
120
+ .cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) {
121
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
122
+ }
123
+ .CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
124
+ .CodeMirror-focused pre.CodeMirror-cursor {
125
+ visibility: visible;
126
+ }
127
+
128
+ div.CodeMirror-selected { background: #d9d9d9; }
129
+ .CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; }
130
+
131
+ .CodeMirror-searching {
132
+ background: #ffa;
133
+ background: rgba(255, 255, 0, .4);
134
+ }
135
+
136
+ /* Default theme */
137
+
138
+ span.cm-keyword {color: #708;}
139
+ span.cm-atom {color: #219;}
140
+ span.cm-number {color: #164;}
141
+ span.cm-def {color: #00f;}
142
+ span.cm-variable {color: black;}
143
+ span.cm-variable-2 {color: #05a;}
144
+ span.cm-variable-3 {color: #085;}
145
+ span.cm-property {color: black;}
146
+ span.cm-operator {color: black;}
147
+ span.cm-comment {color: #a50;}
148
+ span.cm-string {color: #a11;}
149
+ span.cm-string-2 {color: #f50;}
150
+ span.cm-meta {color: #555;}
151
+ span.cm-error {color: #f00;}
152
+ span.cm-qualifier {color: #555;}
153
+ span.cm-builtin {color: #30a;}
154
+ span.cm-bracket {color: #cc7;}
155
+ span.cm-tag {color: #170;}
156
+ span.cm-attribute {color: #00c;}
157
+ span.cm-header {color: blue;}
158
+ span.cm-quote {color: #090;}
159
+ span.cm-hr {color: #999;}
160
+ span.cm-link {color: #00c;}
161
+
162
+ span.cm-header, span.cm-strong {font-weight: bold;}
163
+ span.cm-em {font-style: italic;}
164
+ span.cm-emstrong {font-style: italic; font-weight: bold;}
165
+ span.cm-link {text-decoration: underline;}
166
+
167
+ div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
168
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
css/form_maker_first.css CHANGED
@@ -1,174 +1,174 @@
1
- .wdform-page-and-images {
2
- color: #000000;
3
- font-size: 14px;
4
- font-weight: normal;
5
- width: 100%;
6
- }
7
-
8
- .wdform_table1 {
9
- color: #000000;
10
- font-size: 14px;
11
- font-weight: normal;
12
- width: 100%;
13
- }
14
-
15
- .wdform_tbody1 {
16
- float: left;
17
- }
18
-
19
- .wdform_table2 {
20
- border-collapse: separate !important;
21
- border-spacing: 0px;
22
- float: left;
23
- padding-right: 50px !important;
24
- }
25
-
26
- .time_box {
27
- border-width: 1px;
28
- margin: 0px;
29
- padding: 2px;
30
- text-align: right;
31
- vertical-align: middle;
32
- width: 30px !important;
33
- }
34
-
35
- .wdform-date {
36
- width: 100px !important;
37
- }
38
-
39
- .mini_label {
40
- font-family: 'Lucida Grande', Tahoma, Arial, Verdana, sans-serif;
41
- font-size: 10px;
42
- }
43
-
44
- .label {
45
- border: none;
46
- }
47
-
48
- .td_am_pm_select {
49
- padding-left: 5px;
50
- }
51
-
52
- .am_pm_select {
53
- height: 16px;
54
- margin: 0;
55
- padding: 0
56
- }
57
-
58
- .input_deactive {
59
- border-width: 1px;
60
- color: #999999;
61
- font-style: italic;
62
- }
63
-
64
- .input_active {
65
- border-width: 1px;
66
- color: #000000;
67
- font-style: normal;
68
- }
69
-
70
- .required {
71
- border: none;
72
- color: red
73
- }
74
-
75
- .captcha_img {
76
- border-width: 0px;
77
- cursor: pointer;
78
- margin: 0px;
79
- padding: 0px;
80
- }
81
-
82
- .captcha_refresh {
83
- background-image: url("../images/refresh_black.png");
84
- border-width: 0px;
85
- cursor: pointer;
86
- height: 30px;
87
- margin: 0px;
88
- padding: 0px;
89
- vertical-align: middle;
90
- width: 30px;
91
- }
92
-
93
- .captcha_input {
94
- border-width: 1px;
95
- height: 20px;
96
- margin: 0px;
97
- padding: 0px;
98
- vertical-align: middle;
99
- }
100
-
101
- .arithmetic_captcha_img {
102
- border-width: 0px;
103
- cursor: pointer;
104
- margin: 0px;
105
- padding: 0px;
106
- vertical-align: middle;
107
- }
108
-
109
- .arithmetic_captcha_input {
110
- border-width: 1px;
111
- height: 25px;
112
- margin-left: 3px;
113
- padding: 0px;
114
- vertical-align: middle;
115
- }
116
-
117
- .file_upload {
118
- border-width: 1px;
119
- margin: 0px;
120
- padding: 0px;
121
- }
122
-
123
- .page_deactive {
124
- border: 1px solid #BFBEBE;
125
- cursor: pointer;
126
- border-radius: 15px;
127
- padding: 2px 8px;
128
- }
129
-
130
- .page_deactive:hover {
131
- background-color: #F0F0F0;
132
- }
133
-
134
- .page_active {
135
- background-color: #4EC0D9;
136
- cursor: pointer;
137
- padding: 2px 8px;
138
- margin: 4px;
139
- cursor: pointer;
140
- border-radius: 15px;
141
- padding: 3px 9px;
142
- color: #fff;
143
- }
144
-
145
- .page_percentage_active {
146
- background-color: #4EC0D9;
147
- border-radius: 30px;
148
- border-spacing: 0px;
149
- height: 30px;
150
- line-height: 29px;
151
- float: left;
152
- font-size: 15px;
153
- margin: 0px;
154
- padding: 0px;
155
- text-align: right !important;
156
- color: #4EC0D9;
157
- }
158
-
159
- .page_percentage_active b{
160
- padding: 4px 15px;
161
- background: #fff;
162
- border-radius: 18px;
163
- margin: 3px;
164
- }
165
-
166
- .page_percentage_deactive {
167
- background-color: white;
168
- border: 1px solid #ABA8A8;
169
- border-radius: 30px;
170
- height: 30px;
171
- line-height: 30px;
172
- text-align: left !important;
173
- width: 100%;
174
  }
1
+ .wdform-page-and-images {
2
+ color: #000000;
3
+ font-size: 14px;
4
+ font-weight: normal;
5
+ width: 100%;
6
+ }
7
+
8
+ .wdform_table1 {
9
+ color: #000000;
10
+ font-size: 14px;
11
+ font-weight: normal;
12
+ width: 100%;
13
+ }
14
+
15
+ .wdform_tbody1 {
16
+ float: left;
17
+ }
18
+
19
+ .wdform_table2 {
20
+ border-collapse: separate !important;
21
+ border-spacing: 0px;
22
+ float: left;
23
+ padding-right: 50px !important;
24
+ }
25
+
26
+ .time_box {
27
+ border-width: 1px;
28
+ margin: 0px;
29
+ padding: 2px;
30
+ text-align: right;
31
+ vertical-align: middle;
32
+ width: 30px !important;
33
+ }
34
+
35
+ .wdform-date {
36
+ width: 100px !important;
37
+ }
38
+
39
+ .mini_label {
40
+ font-family: 'Lucida Grande', Tahoma, Arial, Verdana, sans-serif;
41
+ font-size: 10px;
42
+ }
43
+
44
+ .label {
45
+ border: none;
46
+ }
47
+
48
+ .td_am_pm_select {
49
+ padding-left: 5px;
50
+ }
51
+
52
+ .am_pm_select {
53
+ height: 16px;
54
+ margin: 0;
55
+ padding: 0
56
+ }
57
+
58
+ .input_deactive {
59
+ border-width: 1px;
60
+ color: #999999;
61
+ font-style: italic;
62
+ }
63
+
64
+ .input_active {
65
+ border-width: 1px;
66
+ color: #000000;
67
+ font-style: normal;
68
+ }
69
+
70
+ .required {
71
+ border: none;
72
+ color: red
73
+ }
74
+
75
+ .captcha_img {
76
+ border-width: 0px;
77
+ cursor: pointer;
78
+ margin: 0px;
79
+ padding: 0px;
80
+ }
81
+
82
+ .captcha_refresh {
83
+ background-image: url("../images/refresh_black.png");
84
+ border-width: 0px;
85
+ cursor: pointer;
86
+ height: 30px;
87
+ margin: 0px;
88
+ padding: 0px;
89
+ vertical-align: middle;
90
+ width: 30px;
91
+ }
92
+
93
+ .captcha_input {
94
+ border-width: 1px;
95
+ height: 20px;
96
+ margin: 0px;
97
+ padding: 0px;
98
+ vertical-align: middle;
99
+ }
100
+
101
+ .arithmetic_captcha_img {
102
+ border-width: 0px;
103
+ cursor: pointer;
104
+ margin: 0px;
105
+ padding: 0px;
106
+ vertical-align: middle;
107
+ }
108
+
109
+ .arithmetic_captcha_input {
110
+ border-width: 1px;
111
+ height: 25px;
112
+ margin-left: 3px;
113
+ padding: 0px;
114
+ vertical-align: middle;
115
+ }
116
+
117
+ .file_upload {
118
+ border-width: 1px;
119
+ margin: 0px;
120
+ padding: 0px;
121
+ }
122
+
123
+ .page_deactive {
124
+ border: 1px solid #BFBEBE;
125
+ cursor: pointer;
126
+ border-radius: 15px;
127
+ padding: 2px 8px;
128
+ }
129
+
130
+ .page_deactive:hover {
131
+ background-color: #F0F0F0;
132
+ }
133
+
134
+ .page_active {
135
+ background-color: #4EC0D9;
136
+ cursor: pointer;
137
+ padding: 2px 8px;
138
+ margin: 4px;
139
+ cursor: pointer;
140
+ border-radius: 15px;
141
+ padding: 3px 9px;
142
+ color: #fff;
143
+ }
144
+
145
+ .page_percentage_active {
146
+ background-color: #4EC0D9;
147
+ border-radius: 30px;
148
+ border-spacing: 0px;
149
+ height: 30px;
150
+ line-height: 29px;
151
+ float: left;
152
+ font-size: 15px;
153
+ margin: 0px;
154
+ padding: 0px;
155
+ text-align: right !important;
156
+ color: #4EC0D9;
157
+ }
158
+
159
+ .page_percentage_active b{
160
+ padding: 4px 15px;
161
+ background: #fff;
162
+ border-radius: 18px;
163
+ margin: 3px;
164
+ }
165
+
166
+ .page_percentage_deactive {
167
+ background-color: white;
168
+ border: 1px solid #ABA8A8;
169
+ border-radius: 30px;
170
+ height: 30px;
171
+ line-height: 30px;
172
+ text-align: left !important;
173
+ width: 100%;
174
  }
css/form_maker_layout.css CHANGED
@@ -1,36 +1,36 @@
1
- .fm_submit_layout {
2
- border-radius: 3px !important;
3
- width: 100%;
4
- }
5
-
6
- .fm_submit_layout em {
7
- color: #999;
8
- font-size: 11px;
9
- font-style: normal;
10
- }
11
-
12
- .CodeMirror {
13
- background: white;
14
- border: 1px solid #ccc;
15
- font-size: 12px;
16
- margin-bottom: 6px;
17
- }
18
-
19
- .fm_label_buttons {
20
- border: 1px solid #C0C0C0;
21
- cursor: pointer;
22
- font-weight: bold;
23
- max-width: 200px;
24
- overflow: hidden;
25
- padding: 4px 15px;
26
- text-overflow: ellipsis;
27
- white-space: nowrap;
28
- word-break: break-all;
29
- word-wrap: break-word;
30
- }
31
-
32
- .fm_layout p {
33
- font-size: 14px;
34
- font-family: segoe ui;
35
- text-shadow: 0px 0px 1px rgb(202, 202, 202);
36
- }
1
+ .fm_submit_layout {
2
+ border-radius: 3px !important;
3
+ width: 100%;
4
+ }
5
+
6
+ .fm_submit_layout em {
7
+ color: #999;
8
+ font-size: 11px;
9
+ font-style: normal;
10
+ }
11
+
12
+ .CodeMirror {
13
+ background: white;
14
+ border: 1px solid #ccc;
15
+ font-size: 12px;
16
+ margin-bottom: 6px;
17
+ }
18
+
19
+ .fm_label_buttons {
20
+ border: 1px solid #C0C0C0;
21
+ cursor: pointer;
22
+ font-weight: bold;
23
+ max-width: 200px;
24
+ overflow: hidden;
25
+ padding: 4px 15px;
26
+ text-overflow: ellipsis;
27
+ white-space: nowrap;
28
+ word-break: break-all;
29
+ word-wrap: break-word;
30
+ }
31
+
32
+ .fm_layout p {
33
+ font-size: 14px;
34
+ font-family: segoe ui;
35
+ text-shadow: 0px 0px 1px rgb(202, 202, 202);
36
+ }
css/jquery-ui-1.10.3.custom.css CHANGED
@@ -1,1177 +1,1177 @@
1
- /*! jQuery UI - v1.10.3 - 2013-10-19
2
- * http://jqueryui.com
3
- * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
5
- * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden {
10
- display: none;
11
- }
12
- .ui-helper-hidden-accessible {
13
- border: 0;
14
- clip: rect(0 0 0 0);
15
- height: 1px;
16
- margin: -1px;
17
- overflow: hidden;
18
- padding: 0;
19
- position: absolute;
20
- width: 1px;
21
- }
22
- .ui-helper-reset {
23
- margin: 0;
24
- padding: 0;
25
- border: 0;
26
- outline: 0;
27
- line-height: 1.3;
28
- text-decoration: none;
29
- font-size: 100%;
30
- list-style: none;
31
- }
32
- .ui-helper-clearfix:before,
33
- .ui-helper-clearfix:after {
34
- content: "";
35
- display: table;
36
- border-collapse: collapse;
37
- }
38
- .ui-helper-clearfix:after {
39
- clear: both;
40
- }
41
- .ui-helper-clearfix {
42
- min-height: 0; /* support: IE7 */
43
- }
44
- .ui-helper-zfix {
45
- width: 100%;
46
- height: 100%;
47
- top: 0;
48
- left: 0;
49
- position: absolute;
50
- opacity: 0;
51
- filter:Alpha(Opacity=0);
52
- }
53
-
54
- .ui-front {
55
- z-index: 100;
56
- }
57
-
58
-
59
- /* Interaction Cues
60
- ----------------------------------*/
61
- .ui-state-disabled {
62
- cursor: default !important;
63
- }
64
-
65
-
66
- /* Icons
67
- ----------------------------------*/
68
-
69
- /* states and images */
70
- .ui-icon {
71
- display: block;
72
- text-indent: -99999px;
73
- overflow: hidden;
74
- background-repeat: no-repeat;
75
- }
76
-
77
-
78
- /* Misc visuals
79
- ----------------------------------*/
80
-
81
- /* Overlays */
82
- .ui-widget-overlay {
83
- position: fixed;
84
- top: 0;
85
- left: 0;
86
- width: 100%;
87
- height: 100%;
88
- }
89
- .ui-resizable {
90
- position: relative;
91
- }
92
- .ui-resizable-handle {
93
- position: absolute;
94
- font-size: 0.1px;
95
- display: block;
96
- }
97
- .ui-resizable-disabled .ui-resizable-handle,
98
- .ui-resizable-autohide .ui-resizable-handle {
99
- display: none;
100
- }
101
- .ui-resizable-n {
102
- cursor: n-resize;
103
- height: 7px;
104
- width: 100%;
105
- top: -5px;
106
- left: 0;
107
- }
108
- .ui-resizable-s {
109
- cursor: s-resize;
110
- height: 7px;
111
- width: 100%;
112
- bottom: -5px;
113
- left: 0;
114
- }
115
- .ui-resizable-e {
116
- cursor: e-resize;
117
- width: 7px;
118
- right: -5px;
119
- top: 0;
120
- height: 100%;
121
- }
122
- .ui-resizable-w {
123
- cursor: w-resize;
124
- width: 7px;
125
- left: -5px;
126
- top: 0;
127
- height: 100%;
128
- }
129
- .ui-resizable-se {
130
- cursor: se-resize;
131
- width: 12px;
132
- height: 12px;
133
- right: 1px;
134
- bottom: 1px;
135
- }
136
- .ui-resizable-sw {
137
- cursor: sw-resize;
138
- width: 9px;
139
- height: 9px;
140
- left: -5px;
141
- bottom: -5px;
142
- }
143
- .ui-resizable-nw {
144
- cursor: nw-resize;
145
- width: 9px;
146
- height: 9px;
147
- left: -5px;
148
- top: -5px;
149
- }
150
- .ui-resizable-ne {
151
- cursor: ne-resize;
152
- width: 9px;
153
- height: 9px;
154
- right: -5px;
155
- top: -5px;
156
- }
157
- .ui-selectable-helper {
158
- position: absolute;
159
- z-index: 100;
160
- border: 1px dotted black;
161
- }
162
- .ui-accordion .ui-accordion-header {
163
- display: block;
164
- cursor: pointer;
165
- position: relative;
166
- margin-top: 2px;
167
- padding: .5em .5em .5em .7em;
168
- min-height: 0; /* support: IE7 */
169
- }
170
- .ui-accordion .ui-accordion-icons {
171
- padding-left: 2.2em;
172
- }
173
- .ui-accordion .ui-accordion-noicons {
174
- padding-left: .7em;
175
- }
176
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
177
- padding-left: 2.2em;
178
- }
179
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
180
- position: absolute;
181
- left: .5em;
182
- top: 50%;
183
- margin-top: -8px;
184
- }
185
- .ui-accordion .ui-accordion-content {
186
- padding: 1em 2.2em;
187
- border-top: 0;
188
- overflow: auto;
189
- }
190
- .ui-autocomplete {
191
- position: absolute;
192
- top: 0;
193
- left: 0;
194
- cursor: default;
195
- }
196
- .ui-button {
197
- display: inline-block;
198
- position: relative;
199
- padding: 0;
200
- line-height: normal;
201
- margin-right: .1em;
202
- cursor: pointer;
203
- vertical-align: middle;
204
- text-align: center;
205
- overflow: visible; /* removes extra width in IE */
206
- }
207
- .ui-button,
208
- .ui-button:link,
209
- .ui-button:visited,
210
- .ui-button:hover,
211
- .ui-button:active {
212
- text-decoration: none;
213
- }
214
- /* to make room for the icon, a width needs to be set here */
215
- .ui-button-icon-only {
216
- width: 2.2em;
217
- }
218
- /* button elements seem to need a little more width */
219
- button.ui-button-icon-only {
220
- width: 2.4em;
221
- }
222
- .ui-button-icons-only {
223
- width: 3.4em;
224
- }
225
- button.ui-button-icons-only {
226
- width: 3.7em;
227
- }
228
-
229
- /* button text element */
230
- .ui-button .ui-button-text {
231
- display: block;
232
- line-height: normal;
233
- }
234
- .ui-button-text-only .ui-button-text {
235
- padding: .4em 1em;
236
- }
237
- .ui-button-icon-only .ui-button-text,
238
- .ui-button-icons-only .ui-button-text {
239
- padding: .4em;
240
- text-indent: -9999999px;
241
- }
242
- .ui-button-text-icon-primary .ui-button-text,
243
- .ui-button-text-icons .ui-button-text {
244
- padding: .4em 1em .4em 2.1em;
245
- }
246
- .ui-button-text-icon-secondary .ui-button-text,
247
- .ui-button-text-icons .ui-button-text {
248
- padding: .4em 2.1em .4em 1em;
249
- }
250
- .ui-button-text-icons .ui-button-text {
251
- padding-left: 2.1em;
252
- padding-right: 2.1em;
253
- }
254
- /* no icon support for input elements, provide padding by default */
255
- input.ui-button {
256
- padding: .4em 1em;
257
- }
258
-
259
- /* button icon element(s) */
260
- .ui-button-icon-only .ui-icon,
261
- .ui-button-text-icon-primary .ui-icon,
262
- .ui-button-text-icon-secondary .ui-icon,
263
- .ui-button-text-icons .ui-icon,
264
- .ui-button-icons-only .ui-icon {
265
- position: absolute;
266
- top: 50%;
267
- margin-top: -8px;
268
- }
269
- .ui-button-icon-only .ui-icon {
270
- left: 50%;
271
- margin-left: -8px;
272
- }
273
- .ui-button-text-icon-primary .ui-button-icon-primary,
274
- .ui-button-text-icons .ui-button-icon-primary,
275
- .ui-button-icons-only .ui-button-icon-primary {
276
- left: .5em;
277
- }
278
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
279
- .ui-button-text-icons .ui-button-icon-secondary,
280
- .ui-button-icons-only .ui-button-icon-secondary {
281
- right: .5em;
282
- }
283
-
284
- /* button sets */
285
- .ui-buttonset {
286
- margin-right: 7px;
287
- }
288
- .ui-buttonset .ui-button {
289
- margin-left: 0;
290
- margin-right: -.3em;
291
- }
292
-
293
- /* workarounds */
294
- /* reset extra padding in Firefox, see h5bp.com/l */
295
- input.ui-button::-moz-focus-inner,
296
- button.ui-button::-moz-focus-inner {
297
- border: 0;
298
- padding: 0;
299
- }
300
- .ui-datepicker {
301
- width: 17em;
302
- padding: .2em .2em 0;
303
- display: none;
304
- }
305
- .ui-datepicker .ui-datepicker-header {
306
- position: relative;
307
- padding: .2em 0;
308
- }
309
- .ui-datepicker .ui-datepicker-prev,
310
- .ui-datepicker .ui-datepicker-next {
311
- position: absolute;
312
- top: 2px;
313
- width: 1.8em;
314
- height: 1.8em;
315
- }
316
- .ui-datepicker .ui-datepicker-prev-hover,
317
- .ui-datepicker .ui-datepicker-next-hover {
318
- top: 1px;
319
- }
320
- .ui-datepicker .ui-datepicker-prev {
321
- left: 2px;
322
- }
323
- .ui-datepicker .ui-datepicker-next {
324
- right: 2px;
325
- }
326
- .ui-datepicker .ui-datepicker-prev-hover {
327
- left: 1px;
328
- }
329
- .ui-datepicker .ui-datepicker-next-hover {
330
- right: 1px;
331
- }
332
- .ui-datepicker .ui-datepicker-prev span,
333
- .ui-datepicker .ui-datepicker-next span {
334
- display: block;
335
- position: absolute;
336
- left: 50%;
337
- margin-left: -8px;
338
- top: 50%;
339
- margin-top: -8px;
340
- }
341
- .ui-datepicker .ui-datepicker-title {
342
- margin: 0 2.3em;
343
- line-height: 1.8em;
344
- text-align: center;
345
- }
346
- .ui-datepicker .ui-datepicker-title select {
347
- font-size: 1em;
348
- margin: 1px 0;
349
- }
350
- .ui-datepicker select.ui-datepicker-month-year {
351
- width: 100%;
352
- }
353
- .ui-datepicker select.ui-datepicker-month,
354
- .ui-datepicker select.ui-datepicker-year {
355
- width: 49%;
356
- }
357
- .ui-datepicker table {
358
- width: 100%;
359
- font-size: .9em;
360
- border-collapse: collapse;
361
- margin: 0 0 .4em;
362
- }
363
- .ui-datepicker th {
364
- padding: .7em .3em;
365
- text-align: center;
366
- font-weight: bold;
367
- border: 0;
368
- }
369
- .ui-datepicker td {
370
- border: 0;
371
- padding: 1px;
372
- }
373
- .ui-datepicker td span,
374
- .ui-datepicker td a {
375
- display: block;
376
- padding: .2em;
377
- text-align: right;
378
- text-decoration: none;
379
- }
380
- .ui-datepicker .ui-datepicker-buttonpane {
381
- background-image: none;
382
- margin: .7em 0 0 0;
383
- padding: 0 .2em;
384
- border-left: 0;
385
- border-right: 0;
386
- border-bottom: 0;
387
- }
388
- .ui-datepicker .ui-datepicker-buttonpane button {
389
- float: right;
390
- margin: .5em .2em .4em;
391
- cursor: pointer;
392
- padding: .2em .6em .3em .6em;
393
- width: auto;
394
- overflow: visible;
395
- }
396
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
397
- float: left;
398
- }
399
-
400
- /* with multiple calendars */
401
- .ui-datepicker.ui-datepicker-multi {
402
- width: auto;
403
- }
404
- .ui-datepicker-multi .ui-datepicker-group {
405
- float: left;
406
- }
407
- .ui-datepicker-multi .ui-datepicker-group table {
408
- width: 95%;
409
- margin: 0 auto .4em;
410
- }
411
- .ui-datepicker-multi-2 .ui-datepicker-group {
412
- width: 50%;
413
- }
414
- .ui-datepicker-multi-3 .ui-datepicker-group {
415
- width: 33.3%;
416
- }
417
- .ui-datepicker-multi-4 .ui-datepicker-group {
418
- width: 25%;
419
- }
420
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
421
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
422
- border-left-width: 0;
423
- }
424
- .ui-datepicker-multi .ui-datepicker-buttonpane {
425
- clear: left;
426
- }
427
- .ui-datepicker-row-break {
428
- clear: both;
429
- width: 100%;
430
- font-size: 0;
431
- }
432
-
433
- /* RTL support */
434
- .ui-datepicker-rtl {
435
- direction: rtl;
436
- }
437
- .ui-datepicker-rtl .ui-datepicker-prev {
438
- right: 2px;
439
- left: auto;
440
- }
441
- .ui-datepicker-rtl .ui-datepicker-next {
442
- left: 2px;
443
- right: auto;
444
- }
445
- .ui-datepicker-rtl .ui-datepicker-prev:hover {
446
- right: 1px;
447
- left: auto;
448
- }
449
- .ui-datepicker-rtl .ui-datepicker-next:hover {
450
- left: 1px;
451
- right: auto;
452
- }
453
- .ui-datepicker-rtl .ui-datepicker-buttonpane {
454
- clear: right;
455
- }
456
- .ui-datepicker-rtl .ui-datepicker-buttonpane button {
457
- float: left;
458
- }
459
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
460
- .ui-datepicker-rtl .ui-datepicker-group {
461
- float: right;
462
- }
463
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
464
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
465
- border-right-width: 0;
466
- border-left-width: 1px;
467
- }
468
- .ui-dialog {
469
- position: absolute;
470
- top: 0;
471
- left: 0;
472
- padding: .2em;
473
- outline: 0;
474
- }
475
- .ui-dialog .ui-dialog-titlebar {
476
- padding: .4em 1em;
477
- position: relative;
478
- }
479
- .ui-dialog .ui-dialog-title {
480
- float: left;
481
- margin: .1em 0;
482
- white-space: nowrap;
483
- width: 90%;
484
- overflow: hidden;
485
- text-overflow: ellipsis;
486
- }
487
- .ui-dialog .ui-dialog-titlebar-close {
488
- position: absolute;
489
- right: .3em;
490
- top: 50%;
491
- width: 21px;
492
- margin: -10px 0 0 0;
493
- padding: 1px;
494
- height: 20px;
495
- }
496
- .ui-dialog .ui-dialog-content {
497
- position: relative;
498
- border: 0;
499
- padding: .5em 1em;
500
- background: none;
501
- overflow: auto;
502
- }
503
- .ui-dialog .ui-dialog-buttonpane {
504
- text-align: left;
505
- border-width: 1px 0 0 0;
506
- background-image: none;
507
- margin-top: .5em;
508
- padding: .3em 1em .5em .4em;
509
- }
510
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
511
- float: right;
512
- }
513
- .ui-dialog .ui-dialog-buttonpane button {
514
- margin: .5em .4em .5em 0;
515
- cursor: pointer;
516
- }
517
- .ui-dialog .ui-resizable-se {
518
- width: 12px;
519
- height: 12px;
520
- right: -5px;
521
- bottom: -5px;
522
- background-position: 16px 16px;
523
- }
524
- .ui-draggable .ui-dialog-titlebar {
525
- cursor: move;
526
- }
527
- .ui-menu {
528
- list-style: none;
529
- padding: 2px;
530
- margin: 0;
531
- display: block;
532
- outline: none;
533
- }
534
- .ui-menu .ui-menu {
535
- margin-top: -3px;
536
- position: absolute;
537
- }
538
- .ui-menu .ui-menu-item {
539
- margin: 0;
540
- padding: 0;
541
- width: 100%;
542
- /* support: IE10, see #8844 */
543
- list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
544
- }
545
- .ui-menu .ui-menu-divider {
546
- margin: 5px -2px 5px -2px;
547
- height: 0;
548
- font-size: 0;
549
- line-height: 0;
550
- border-width: 1px 0 0 0;
551
- }
552
- .ui-menu .ui-menu-item a {
553
- text-decoration: none;
554
- display: block;
555
- padding: 2px .4em;
556
- line-height: 1.5;
557
- min-height: 0; /* support: IE7 */
558
- font-weight: normal;
559
- }
560
- .ui-menu .ui-menu-item a.ui-state-focus,
561
- .ui-menu .ui-menu-item a.ui-state-active {
562
- font-weight: normal;
563
- margin: -1px;
564
- }
565
-
566
- .ui-menu .ui-state-disabled {
567
- font-weight: normal;
568
- margin: .4em 0 .2em;
569
- line-height: 1.5;
570
- }
571
- .ui-menu .ui-state-disabled a {
572
- cursor: default;
573
- }
574
-
575
- /* icon support */
576
- .ui-menu-icons {
577
- position: relative;
578
- }
579
- .ui-menu-icons .ui-menu-item a {
580
- position: relative;
581
- padding-left: 2em;
582
- }
583
-
584
- /* left-aligned */
585
- .ui-menu .ui-icon {
586
- position: absolute;
587
- top: .2em;
588
- left: .2em;
589
- }
590
-
591
- /* right-aligned */
592
- .ui-menu .ui-menu-icon {
593
- position: static;
594
- float: right;
595
- }
596
- .ui-progressbar {
597
- height: 2em;
598
- text-align: left;
599
- overflow: hidden;
600
- }
601
- .ui-progressbar .ui-progressbar-value {
602
- margin: -1px;
603
- height: 100%;
604
- }
605
- .ui-progressbar .ui-progressbar-overlay {
606
- background: url("images/animated-overlay.gif");
607
- height: 100%;
608
- filter: alpha(opacity=25);
609
- opacity: 0.25;
610
- }
611
- .ui-progressbar-indeterminate .ui-progressbar-value {
612
- background-image: none;
613
- }
614
- .ui-slider {
615
- position: relative;
616
- text-align: left;
617
- }
618
- .ui-slider .ui-slider-handle {
619
- position: absolute;
620
- z-index: 2;
621
- width: 1.2em;
622
- height: 1.2em;
623
- cursor: default;
624
- }
625
- .ui-slider .ui-slider-range {
626
- position: absolute;
627
- z-index: 1;
628
- font-size: .7em;
629
- display: block;
630
- border: 0;
631
- background-position: 0 0;
632
- }
633
-
634
- /* For IE8 - See #6727 */
635
- .ui-slider.ui-state-disabled .ui-slider-handle,
636
- .ui-slider.ui-state-disabled .ui-slider-range {
637
- filter: inherit;
638
- }
639
-
640
- .ui-slider-horizontal {
641
- height: .8em;
642
- }
643
- .ui-slider-horizontal .ui-slider-handle {
644
- top: -.3em;
645
- margin-left: -.6em;
646
- }
647
- .ui-slider-horizontal .ui-slider-range {
648
- top: 0;
649
- height: 100%;
650
- }
651
- .ui-slider-horizontal .ui-slider-range-min {
652
- left: 0;
653
- }
654
- .ui-slider-horizontal .ui-slider-range-max {
655
- right: 0;
656
- }
657
-
658
- .ui-slider-vertical {
659
- width: .8em;
660
- height: 100px;
661
- }
662
- .ui-slider-vertical .ui-slider-handle {
663
- left: -.3em;
664
- margin-left: 0;
665
- margin-bottom: -.6em;
666
- }
667
- .ui-slider-vertical .ui-slider-range {
668
- left: 0;
669
- width: 100%;
670
- }
671
- .ui-slider-vertical .ui-slider-range-min {
672
- bottom: 0;
673
- }
674
- .ui-slider-vertical .ui-slider-range-max {
675
- top: 0;
676
- }
677
- .ui-spinner {
678
- position: relative;
679
- display: inline-block;
680
- overflow: hidden;
681
- padding: 0;
682
- vertical-align: middle;
683
- }
684
- .ui-spinner-input {
685
- border: none;
686
- background: none;
687
- color: inherit;
688
- padding: 0;
689
- margin: .2em 0;
690
- vertical-align: middle;
691
- margin-left: .4em;
692
- margin-right: 22px;
693
- }
694
- .ui-spinner-button {
695
- width: 16px;
696
- height: 50%;
697
- font-size: .5em;
698
- padding: 0;
699
- margin: 0;
700
- text-align: center;
701
- position: absolute;
702
- cursor: default;
703
- display: block;
704
- overflow: hidden;
705
- right: 0;
706
- }
707
- /* more specificity required here to overide default borders */
708
- .ui-spinner a.ui-spinner-button {
709
- border-top: none;
710
- border-bottom: none;
711
- border-right: none;
712
- }
713
- /* vertical centre icon */
714
- .ui-spinner .ui-icon {
715
- position: absolute;
716
- margin-top: -8px;
717
- top: 50%;
718
- left: 0;
719
- }
720
- .ui-spinner-up {
721
- top: 0;
722
- }
723
- .ui-spinner-down {
724
- bottom: 0;
725
- }
726
-
727
- /* TR overrides */
728
- .ui-spinner .ui-icon-triangle-1-s {
729
- /* need to fix icons sprite */
730
- background-position: -65px -16px;
731
- }
732
- .ui-tabs {
733
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
734
- padding: .2em;
735
- }
736
- .ui-tabs .ui-tabs-nav {
737
- margin: 0;
738
- padding: .2em .2em 0;
739
- }
740
- .ui-tabs .ui-tabs-nav li {
741
- list-style: none;
742
- float: left;
743
- position: relative;
744
- top: 0;
745
- margin: 1px .2em 0 0;
746
- border-bottom-width: 0;
747
- padding: 0;
748
- white-space: nowrap;
749
- }
750
- .ui-tabs .ui-tabs-nav li a {
751
- float: left;
752
- padding: .5em 1em;
753
- text-decoration: none;
754
- }
755
- .ui-tabs .ui-tabs-nav li.ui-tabs-active {
756
- margin-bottom: -1px;
757
- padding-bottom: 1px;
758
- }
759
- .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
760
- .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
761
- .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
762
- cursor: text;
763
- }
764
- .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
765
- .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
766
- cursor: pointer;
767
- }
768
- .ui-tabs .ui-tabs-panel {
769
- display: block;
770
- border-width: 0;
771
- padding: 1em 1.4em;
772
- background: none;
773
- }
774
- .ui-tooltip {
775
- padding: 8px;
776
- position: absolute;
777
- z-index: 9999;
778
- max-width: 300px;
779
- -webkit-box-shadow: 0 0 5px #aaa;
780
- box-shadow: 0 0 5px #aaa;
781
- }
782
- body .ui-tooltip {
783
- border-width: 2px;
784
- }
785
-
786
- /* Component containers
787
- ----------------------------------*/
788
- .ui-widget {
789
- font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
790
- font-size: 1.1em;
791
- }
792
- .ui-widget .ui-widget {
793
- font-size: 1em;
794
- }
795
- .ui-widget input,
796
- .ui-widget select,
797
- .ui-widget textarea,
798
- .ui-widget button {
799
- font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
800
- font-size: 1em;
801
- }
802
- .ui-widget-content {
803
- border: 1px solid #dddddd;
804
- background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;
805
- color: #333333;
806
- }
807
- .ui-widget-content a {
808
- color: #333333;
809
- }
810
- .ui-widget-header {
811
- border: 1px solid #e78f08;
812
- background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;
813
- color: #ffffff;
814
- font-weight: bold;
815
- }
816
- .ui-widget-header a {
817
- color: #ffffff;
818
- }
819
-
820
- /* Interaction states
821
- ----------------------------------*/
822
- .ui-state-default,
823
- .ui-widget-content .ui-state-default,
824
- .ui-widget-header .ui-state-default {
825
- border: 1px solid #cccccc;
826
- background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
827
- font-weight: bold;
828
- color: #1c94c4;
829
- }
830
- .ui-state-default a,
831
- .ui-state-default a:link,
832
- .ui-state-default a:visited {
833
- color: #1c94c4;
834
- text-decoration: none;
835
- }
836
- .ui-state-hover,
837
- .ui-widget-content .ui-state-hover,
838
- .ui-widget-header .ui-state-hover,
839
- .ui-state-focus,
840
- .ui-widget-content .ui-state-focus,
841
- .ui-widget-header .ui-state-focus {
842
- border: 1px solid #fbcb09;
843
- background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;
844
- font-weight: bold;
845
- color: #c77405;
846
- }
847
- .ui-state-hover a,
848
- .ui-state-hover a:hover,
849
- .ui-state-hover a:link,
850
- .ui-state-hover a:visited {
851
- color: #c77405;
852
- text-decoration: none;
853
- }
854
- .ui-state-active,
855
- .ui-widget-content .ui-state-active,
856
- .ui-widget-header .ui-state-active {
857
- border: 1px solid #fbd850;
858
- background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
859
- font-weight: bold;
860
- color: #eb8f00;
861
- }
862
- .ui-state-active a,
863
- .ui-state-active a:link,
864
- .ui-state-active a:visited {
865
- color: #eb8f00;
866
- text-decoration: none;
867
- }
868
-
869
- /* Interaction Cues
870
- ----------------------------------*/
871
- .ui-state-highlight,
872
- .ui-widget-content .ui-state-highlight,
873
- .ui-widget-header .ui-state-highlight {
874
- border: 1px solid #fed22f;
875
- background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;
876
- color: #363636;
877
- }
878
- .ui-state-highlight a,
879
- .ui-widget-content .ui-state-highlight a,
880
- .ui-widget-header .ui-state-highlight a {
881
- color: #363636;
882
- }
883
- .ui-state-error,
884
- .ui-widget-content .ui-state-error,
885
- .ui-widget-header .ui-state-error {
886
- border: 1px solid #cd0a0a;
887
- background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;
888
- color: #ffffff;
889
- }
890
- .ui-state-error a,
891
- .ui-widget-content .ui-state-error a,
892
- .ui-widget-header .ui-state-error a {
893
- color: #ffffff;
894
- }
895
- .ui-state-error-text,
896
- .ui-widget-content .ui-state-error-text,
897
- .ui-widget-header .ui-state-error-text {
898
- color: #ffffff;
899
- }
900
- .ui-priority-primary,
901
- .ui-widget-content .ui-priority-primary,
902
- .ui-widget-header .ui-priority-primary {
903
- font-weight: bold;
904
- }
905
- .ui-priority-secondary,
906
- .ui-widget-content .ui-priority-secondary,
907
- .ui-widget-header .ui-priority-secondary {
908
- opacity: .7;
909
- filter:Alpha(Opacity=70);
910
- font-weight: normal;
911
- }
912
- .ui-state-disabled,
913
- .ui-widget-content .ui-state-disabled,
914
- .ui-widget-header .ui-state-disabled {
915
- opacity: .35;
916
- filter:Alpha(Opacity=35);
917
- background-image: none;
918
- }
919
- .ui-state-disabled .ui-icon {
920
- filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
921
- }
922
-
923
- /* Icons
924
- ----------------------------------*/
925
-
926
- /* states and images */
927
- .ui-icon {
928
- width: 16px;
929
- height: 16px;
930
- }
931
- .ui-icon,
932
- .ui-widget-content .ui-icon {
933
- background-image: url(images/ui-icons_222222_256x240.png);
934
- }
935
- .ui-widget-header .ui-icon {
936
- background-image: url(images/ui-icons_ffffff_256x240.png);
937
- }
938
- .ui-state-default .ui-icon {
939
- background-image: url(images/ui-icons_ef8c08_256x240.png);
940
- }
941
- .ui-state-hover .ui-icon,
942
- .ui-state-focus .ui-icon {
943
- background-image: url(images/ui-icons_ef8c08_256x240.png);
944
- }
945
- .ui-state-active .ui-icon {
946
- background-image: url(images/ui-icons_ef8c08_256x240.png);
947
- }
948
- .ui-state-highlight .ui-icon {
949
- background-image: url(images/ui-icons_228ef1_256x240.png);
950
- }
951
- .ui-state-error .ui-icon,
952
- .ui-state-error-text .ui-icon {
953
- background-image: url(images/ui-icons_ffd27a_256x240.png);
954
- }
955
-
956
- /* positioning */
957
- .ui-icon-blank { background-position: 16px 16px; }
958
- .ui-icon-carat-1-n { background-position: 0 0; }
959
- .ui-icon-carat-1-ne { background-position: -16px 0; }
960
- .ui-icon-carat-1-e { background-position: -32px 0; }
961
- .ui-icon-carat-1-se { background-position: -48px 0; }
962
- .ui-icon-carat-1-s { background-position: -64px 0; }
963
- .ui-icon-carat-1-sw { background-position: -80px 0; }
964
- .ui-icon-carat-1-w { background-position: -96px 0; }
965
- .ui-icon-carat-1-nw { background-position: -112px 0; }
966
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
967
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
968
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
969
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
970
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
971
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
972
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
973
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
974
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
975
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
976
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
977
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
978
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
979
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
980
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
981
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
982
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
983
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
984
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
985
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
986
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
987
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
988
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
989
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
990
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
991
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
992
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
993
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
994
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
995
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
996
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
997
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
998
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
999
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1000
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1001
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1002
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1003
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1004
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1005
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1006
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1007
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1008
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1009
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1010
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1011
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1012
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1013
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1014
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1015
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1016
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1017
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1018
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1019
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1020
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1021
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1022
- .ui-icon-arrow-4 { background-position: 0 -80px; }
1023
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1024
- .ui-icon-extlink { background-position: -32px -80px; }
1025
- .ui-icon-newwin { background-position: -48px -80px; }
1026
- .ui-icon-refresh { background-position: -64px -80px; }
1027
- .ui-icon-shuffle { background-position: -80px -80px; }
1028
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
1029
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1030
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
1031
- .ui-icon-folder-open { background-position: -16px -96px; }
1032
- .ui-icon-document { background-position: -32px -96px; }
1033
- .ui-icon-document-b { background-position: -48px -96px; }
1034
- .ui-icon-note { background-position: -64px -96px; }
1035
- .ui-icon-mail-closed { background-position: -80px -96px; }
1036
- .ui-icon-mail-open { background-position: -96px -96px; }
1037
- .ui-icon-suitcase { background-position: -112px -96px; }
1038
- .ui-icon-comment { background-position: -128px -96px; }
1039
- .ui-icon-person { background-position: -144px -96px; }
1040
- .ui-icon-print { background-position: -160px -96px; }
1041
- .ui-icon-trash { background-position: -176px -96px; }
1042
- .ui-icon-locked { background-position: -192px -96px; }
1043
- .ui-icon-unlocked { background-position: -208px -96px; }
1044
- .ui-icon-bookmark { background-position: -224px -96px; }
1045
- .ui-icon-tag { background-position: -240px -96px; }
1046
- .ui-icon-home { background-position: 0 -112px; }
1047
- .ui-icon-flag { background-position: -16px -112px; }
1048
- .ui-icon-calendar { background-position: -32px -112px; }
1049
- .ui-icon-cart { background-position: -48px -112px; }
1050
- .ui-icon-pencil { background-position: -64px -112px; }
1051
- .ui-icon-clock { background-position: -80px -112px; }
1052
- .ui-icon-disk { background-position: -96px -112px; }
1053
- .ui-icon-calculator { background-position: -112px -112px; }
1054
- .ui-icon-zoomin { background-position: -128px -112px; }
1055
- .ui-icon-zoomout { background-position: -144px -112px; }
1056
- .ui-icon-search { background-position: -160px -112px; }
1057
- .ui-icon-wrench { background-position: -176px -112px; }
1058
- .ui-icon-gear { background-position: -192px -112px; }
1059
- .ui-icon-heart { background-position: -208px -112px; }
1060
- .ui-icon-star { background-position: -224px -112px; }
1061
- .ui-icon-link { background-position: -240px -112px; }
1062
- .ui-icon-cancel { background-position: 0 -128px; }
1063
- .ui-icon-plus { background-position: -16px -128px; }
1064
- .ui-icon-plusthick { background-position: -32px -128px; }
1065
- .ui-icon-minus { background-position: -48px -128px; }
1066
- .ui-icon-minusthick { background-position: -64px -128px; }
1067
- .ui-icon-close { background-position: -80px -128px; }
1068
- .ui-icon-closethick { background-position: -96px -128px; }
1069
- .ui-icon-key { background-position: -112px -128px; }
1070
- .ui-icon-lightbulb { background-position: -128px -128px; }
1071
- .ui-icon-scissors { background-position: -144px -128px; }
1072
- .ui-icon-clipboard { background-position: -160px -128px; }
1073
- .ui-icon-copy { background-position: -176px -128px; }
1074
- .ui-icon-contact { background-position: -192px -128px; }
1075
- .ui-icon-image { background-position: -208px -128px; }
1076
- .ui-icon-video { background-position: -224px -128px; }
1077
- .ui-icon-script { background-position: -240px -128px; }
1078
- .ui-icon-alert { background-position: 0 -144px; }
1079
- .ui-icon-info { background-position: -16px -144px; }
1080
- .ui-icon-notice { background-position: -32px -144px; }
1081
- .ui-icon-help { background-position: -48px -144px; }
1082
- .ui-icon-check { background-position: -64px -144px; }
1083
- .ui-icon-bullet { background-position: -80px -144px; }
1084
- .ui-icon-radio-on { background-position: -96px -144px; }
1085
- .ui-icon-radio-off { background-position: -112px -144px; }
1086
- .ui-icon-pin-w { background-position: -128px -144px; }
1087
- .ui-icon-pin-s { background-position: -144px -144px; }
1088
- .ui-icon-play { background-position: 0 -160px; }
1089
- .ui-icon-pause { background-position: -16px -160px; }
1090
- .ui-icon-seek-next { background-position: -32px -160px; }
1091
- .ui-icon-seek-prev { background-position: -48px -160px; }
1092
- .ui-icon-seek-end { background-position: -64px -160px; }
1093
- .ui-icon-seek-start { background-position: -80px -160px; }
1094
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1095
- .ui-icon-seek-first { background-position: -80px -160px; }
1096
- .ui-icon-stop { background-position: -96px -160px; }
1097
- .ui-icon-eject { background-position: -112px -160px; }
1098
- .ui-icon-volume-off { background-position: -128px -160px; }
1099
- .ui-icon-volume-on { background-position: -144px -160px; }
1100
- .ui-icon-power { background-position: 0 -176px; }
1101
- .ui-icon-signal-diag { background-position: -16px -176px; }
1102
- .ui-icon-signal { background-position: -32px -176px; }
1103
- .ui-icon-battery-0 { background-position: -48px -176px; }
1104
- .ui-icon-battery-1 { background-position: -64px -176px; }
1105
- .ui-icon-battery-2 { background-position: -80px -176px; }
1106
- .ui-icon-battery-3 { background-position: -96px -176px; }
1107
- .ui-icon-circle-plus { background-position: 0 -192px; }
1108
- .ui-icon-circle-minus { background-position: -16px -192px; }
1109
- .ui-icon-circle-close { background-position: -32px -192px; }
1110
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1111
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1112
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1113
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1114
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1115
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1116
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1117
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1118
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
1119
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
1120
- .ui-icon-circle-check { background-position: -208px -192px; }
1121
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1122
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1123
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
1124
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1125
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1126
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
1127
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1128
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1129
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1130
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1131
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1132
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1133
-
1134
-
1135
- /* Misc visuals
1136
- ----------------------------------*/
1137
-
1138
- /* Corner radius */
1139
- .ui-corner-all,
1140
- .ui-corner-top,
1141
- .ui-corner-left,
1142
- .ui-corner-tl {
1143
- border-top-left-radius: 4px;
1144
- }
1145
- .ui-corner-all,
1146
- .ui-corner-top,
1147
- .ui-corner-right,
1148
- .ui-corner-tr {
1149
- border-top-right-radius: 4px;
1150
- }
1151
- .ui-corner-all,
1152
- .ui-corner-bottom,
1153
- .ui-corner-left,
1154
- .ui-corner-bl {
1155
- border-bottom-left-radius: 4px;
1156
- }
1157
- .ui-corner-all,
1158
- .ui-corner-bottom,
1159
- .ui-corner-right,
1160
- .ui-corner-br {
1161
- border-bottom-right-radius: 4px;
1162
- }
1163
-
1164
- /* Overlays */
1165
- .ui-widget-overlay {
1166
- background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;
1167
- opacity: .5;
1168
- filter: Alpha(Opacity=50);
1169
- }
1170
- .ui-widget-shadow {
1171
- margin: -5px 0 0 -5px;
1172
- padding: 5px;
1173
- background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;
1174
- opacity: .2;
1175
- filter: Alpha(Opacity=20);
1176
- border-radius: 5px;
1177
- }
1
+ /*! jQuery UI - v1.10.3 - 2013-10-19
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
5
+ * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-clearfix {
42
+ min-height: 0; /* support: IE7 */
43
+ }
44
+ .ui-helper-zfix {
45
+ width: 100%;
46
+ height: 100%;
47
+ top: 0;
48
+ left: 0;
49
+ position: absolute;
50
+ opacity: 0;
51
+ filter:Alpha(Opacity=0);
52
+ }
53
+
54
+ .ui-front {
55
+ z-index: 100;
56
+ }
57
+
58
+
59
+ /* Interaction Cues
60
+ ----------------------------------*/
61
+ .ui-state-disabled {
62
+ cursor: default !important;
63
+ }
64
+
65
+
66
+ /* Icons
67
+ ----------------------------------*/
68
+
69
+ /* states and images */
70
+ .ui-icon {
71
+ display: block;
72
+ text-indent: -99999px;
73
+ overflow: hidden;
74
+ background-repeat: no-repeat;
75
+ }
76
+
77
+
78
+ /* Misc visuals
79
+ ----------------------------------*/
80
+
81
+ /* Overlays */
82
+ .ui-widget-overlay {
83
+ position: fixed;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .ui-resizable {
90
+ position: relative;
91
+ }
92
+ .ui-resizable-handle {
93
+ position: absolute;
94
+ font-size: 0.1px;
95
+ display: block;
96
+ }
97
+ .ui-resizable-disabled .ui-resizable-handle,
98
+ .ui-resizable-autohide .ui-resizable-handle {
99
+ display: none;
100
+ }
101
+ .ui-resizable-n {
102
+ cursor: n-resize;
103
+ height: 7px;
104
+ width: 100%;
105
+ top: -5px;
106
+ left: 0;
107
+ }
108
+ .ui-resizable-s {
109
+ cursor: s-resize;
110
+ height: 7px;
111
+ width: 100%;
112
+ bottom: -5px;
113
+ left: 0;
114
+ }
115
+ .ui-resizable-e {
116
+ cursor: e-resize;
117
+ width: 7px;
118
+ right: -5px;
119
+ top: 0;
120
+ height: 100%;
121
+ }
122
+ .ui-resizable-w {
123
+ cursor: w-resize;
124
+ width: 7px;
125
+ left: -5px;
126
+ top: 0;
127
+ height: 100%;
128
+ }
129
+ .ui-resizable-se {
130
+ cursor: se-resize;
131
+ width: 12px;
132
+ height: 12px;
133
+ right: 1px;
134
+ bottom: 1px;
135
+ }
136
+ .ui-resizable-sw {
137
+ cursor: sw-resize;
138
+ width: 9px;
139
+ height: 9px;
140
+ left: -5px;
141
+ bottom: -5px;
142
+ }
143
+ .ui-resizable-nw {
144
+ cursor: nw-resize;
145
+ width: 9px;
146
+ height: 9px;
147
+ left: -5px;
148
+ top: -5px;
149
+ }
150
+ .ui-resizable-ne {
151
+ cursor: ne-resize;
152
+ width: 9px;
153
+ height: 9px;
154
+ right: -5px;
155
+ top: -5px;
156
+ }
157
+ .ui-selectable-helper {
158
+ position: absolute;
159
+ z-index: 100;
160
+ border: 1px dotted black;
161
+ }
162
+ .ui-accordion .ui-accordion-header {
163
+ display: block;
164
+ cursor: pointer;
165
+ position: relative;
166
+ margin-top: 2px;
167
+ padding: .5em .5em .5em .7em;
168
+ min-height: 0; /* support: IE7 */
169
+ }
170
+ .ui-accordion .ui-accordion-icons {
171
+ padding-left: 2.2em;
172
+ }
173
+ .ui-accordion .ui-accordion-noicons {
174
+ padding-left: .7em;
175
+ }
176
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
177
+ padding-left: 2.2em;
178
+ }
179
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
180
+ position: absolute;
181
+ left: .5em;
182
+ top: 50%;
183
+ margin-top: -8px;
184
+ }
185
+ .ui-accordion .ui-accordion-content {
186
+ padding: 1em 2.2em;
187
+ border-top: 0;
188
+ overflow: auto;
189
+ }
190
+ .ui-autocomplete {
191
+ position: absolute;
192
+ top: 0;
193
+ left: 0;
194
+ cursor: default;
195
+ }
196
+ .ui-button {
197
+ display: inline-block;
198
+ position: relative;
199
+ padding: 0;
200
+ line-height: normal;
201
+ margin-right: .1em;
202
+ cursor: pointer;
203
+ vertical-align: middle;
204
+ text-align: center;
205
+ overflow: visible; /* removes extra width in IE */
206
+ }
207
+ .ui-button,
208
+ .ui-button:link,
209
+ .ui-button:visited,
210
+ .ui-button:hover,
211
+ .ui-button:active {
212
+ text-decoration: none;
213
+ }
214
+ /* to make room for the icon, a width needs to be set here */
215
+ .ui-button-icon-only {
216
+ width: 2.2em;
217
+ }
218
+ /* button elements seem to need a little more width */
219
+ button.ui-button-icon-only {
220
+ width: 2.4em;
221
+ }
222
+ .ui-button-icons-only {
223
+ width: 3.4em;
224
+ }
225
+ button.ui-button-icons-only {
226
+ width: 3.7em;
227
+ }
228
+
229
+ /* button text element */
230
+ .ui-button .ui-button-text {
231
+ display: block;
232
+ line-height: normal;
233
+ }
234
+ .ui-button-text-only .ui-button-text {
235
+ padding: .4em 1em;
236
+ }
237
+ .ui-button-icon-only .ui-button-text,
238
+ .ui-button-icons-only .ui-button-text {
239
+ padding: .4em;
240
+ text-indent: -9999999px;
241
+ }
242
+ .ui-button-text-icon-primary .ui-button-text,
243
+ .ui-button-text-icons .ui-button-text {
244
+ padding: .4em 1em .4em 2.1em;
245
+ }
246
+ .ui-button-text-icon-secondary .ui-button-text,
247
+ .ui-button-text-icons .ui-button-text {
248
+ padding: .4em 2.1em .4em 1em;
249
+ }
250
+ .ui-button-text-icons .ui-button-text {
251
+ padding-left: 2.1em;
252
+ padding-right: 2.1em;
253
+ }
254
+ /* no icon support for input elements, provide padding by default */
255
+ input.ui-button {
256
+ padding: .4em 1em;
257
+ }
258
+
259
+ /* button icon element(s) */
260
+ .ui-button-icon-only .ui-icon,
261
+ .ui-button-text-icon-primary .ui-icon,
262
+ .ui-button-text-icon-secondary .ui-icon,
263
+ .ui-button-text-icons .ui-icon,
264
+ .ui-button-icons-only .ui-icon {
265
+ position: absolute;
266
+ top: 50%;
267
+ margin-top: -8px;
268
+ }
269
+ .ui-button-icon-only .ui-icon {
270
+ left: 50%;
271
+ margin-left: -8px;
272
+ }
273
+ .ui-button-text-icon-primary .ui-button-icon-primary,
274
+ .ui-button-text-icons .ui-button-icon-primary,
275
+ .ui-button-icons-only .ui-button-icon-primary {
276
+ left: .5em;
277
+ }
278
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
279
+ .ui-button-text-icons .ui-button-icon-secondary,
280
+ .ui-button-icons-only .ui-button-icon-secondary {
281
+ right: .5em;
282
+ }
283
+
284
+ /* button sets */
285
+ .ui-buttonset {
286
+ margin-right: 7px;
287
+ }
288
+ .ui-buttonset .ui-button {
289
+ margin-left: 0;
290
+ margin-right: -.3em;
291
+ }
292
+
293
+ /* workarounds */
294
+ /* reset extra padding in Firefox, see h5bp.com/l */
295
+ input.ui-button::-moz-focus-inner,
296
+ button.ui-button::-moz-focus-inner {
297
+ border: 0;
298
+ padding: 0;
299
+ }
300
+ .ui-datepicker {
301
+ width: 17em;
302
+ padding: .2em .2em 0;
303
+ display: none;
304
+ }
305
+ .ui-datepicker .ui-datepicker-header {
306
+ position: relative;
307
+ padding: .2em 0;
308
+ }
309
+ .ui-datepicker .ui-datepicker-prev,
310
+ .ui-datepicker .ui-datepicker-next {
311
+ position: absolute;
312
+ top: 2px;
313
+ width: 1.8em;
314
+ height: 1.8em;
315
+ }
316
+ .ui-datepicker .ui-datepicker-prev-hover,
317
+ .ui-datepicker .ui-datepicker-next-hover {
318
+ top: 1px;
319
+ }
320
+ .ui-datepicker .ui-datepicker-prev {
321
+ left: 2px;
322
+ }
323
+ .ui-datepicker .ui-datepicker-next {
324
+ right: 2px;
325
+ }
326
+ .ui-datepicker .ui-datepicker-prev-hover {
327
+ left: 1px;
328
+ }
329
+ .ui-datepicker .ui-datepicker-next-hover {
330
+ right: 1px;
331
+ }
332
+ .ui-datepicker .ui-datepicker-prev span,
333
+ .ui-datepicker .ui-datepicker-next span {
334
+ display: block;
335
+ position: absolute;
336
+ left: 50%;
337
+ margin-left: -8px;
338
+ top: 50%;
339
+ margin-top: -8px;
340
+ }
341
+ .ui-datepicker .ui-datepicker-title {
342
+ margin: 0 2.3em;
343
+ line-height: 1.8em;
344
+ text-align: center;
345
+ }
346
+ .ui-datepicker .ui-datepicker-title select {
347
+ font-size: 1em;
348
+ margin: 1px 0;
349
+ }
350
+ .ui-datepicker select.ui-datepicker-month-year {
351
+ width: 100%;
352
+ }
353
+ .ui-datepicker select.ui-datepicker-month,
354
+ .ui-datepicker select.ui-datepicker-year {
355
+ width: 49%;
356
+ }
357
+ .ui-datepicker table {
358
+ width: 100%;
359
+ font-size: .9em;
360
+ border-collapse: collapse;
361
+ margin: 0 0 .4em;
362
+ }
363
+ .ui-datepicker th {
364
+ padding: .7em .3em;
365
+ text-align: center;
366
+ font-weight: bold;
367
+ border: 0;
368
+ }
369
+ .ui-datepicker td {
370
+ border: 0;
371
+ padding: 1px;
372
+ }
373
+ .ui-datepicker td span,
374
+ .ui-datepicker td a {
375
+ display: block;
376
+ padding: .2em;
377
+ text-align: right;
378
+ text-decoration: none;
379
+ }
380
+ .ui-datepicker .ui-datepicker-buttonpane {
381
+ background-image: none;
382
+ margin: .7em 0 0 0;
383
+ padding: 0 .2em;
384
+ border-left: 0;
385
+ border-right: 0;
386
+ border-bottom: 0;
387
+ }
388
+ .ui-datepicker .ui-datepicker-buttonpane button {
389
+ float: right;
390
+ margin: .5em .2em .4em;
391
+ cursor: pointer;
392
+ padding: .2em .6em .3em .6em;
393
+ width: auto;
394
+ overflow: visible;
395
+ }
396
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
397
+ float: left;
398
+ }
399
+
400
+ /* with multiple calendars */
401
+ .ui-datepicker.ui-datepicker-multi {
402
+ width: auto;
403
+ }
404
+ .ui-datepicker-multi .ui-datepicker-group {
405
+ float: left;
406
+ }
407
+ .ui-datepicker-multi .ui-datepicker-group table {
408
+ width: 95%;
409
+ margin: 0 auto .4em;
410
+ }
411
+ .ui-datepicker-multi-2 .ui-datepicker-group {
412
+ width: 50%;
413
+ }
414
+ .ui-datepicker-multi-3 .ui-datepicker-group {
415
+ width: 33.3%;
416
+ }
417
+ .ui-datepicker-multi-4 .ui-datepicker-group {
418
+ width: 25%;
419
+ }
420
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
421
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
422
+ border-left-width: 0;
423
+ }
424
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
425
+ clear: left;
426
+ }
427
+ .ui-datepicker-row-break {
428
+ clear: both;
429
+ width: 100%;
430
+ font-size: 0;
431
+ }
432
+
433
+ /* RTL support */
434
+ .ui-datepicker-rtl {
435
+ direction: rtl;
436
+ }
437
+ .ui-datepicker-rtl .ui-datepicker-prev {
438
+ right: 2px;
439
+ left: auto;
440
+ }
441
+ .ui-datepicker-rtl .ui-datepicker-next {
442
+ left: 2px;
443
+ right: auto;
444
+ }
445
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
446
+ right: 1px;
447
+ left: auto;
448
+ }
449
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
450
+ left: 1px;
451
+ right: auto;
452
+ }
453
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
454
+ clear: right;
455
+ }
456
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
457
+ float: left;
458
+ }
459
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
460
+ .ui-datepicker-rtl .ui-datepicker-group {
461
+ float: right;
462
+ }
463
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
464
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
465
+ border-right-width: 0;
466
+ border-left-width: 1px;
467
+ }
468
+ .ui-dialog {
469
+ position: absolute;
470
+ top: 0;
471
+ left: 0;
472
+ padding: .2em;
473
+ outline: 0;
474
+ }
475
+ .ui-dialog .ui-dialog-titlebar {
476
+ padding: .4em 1em;
477
+ position: relative;
478
+ }
479
+ .ui-dialog .ui-dialog-title {
480
+ float: left;
481
+ margin: .1em 0;
482
+ white-space: nowrap;
483
+ width: 90%;
484
+ overflow: hidden;
485
+ text-overflow: ellipsis;
486
+ }
487
+ .ui-dialog .ui-dialog-titlebar-close {
488
+ position: absolute;
489
+ right: .3em;
490
+ top: 50%;
491
+ width: 21px;
492
+ margin: -10px 0 0 0;
493
+ padding: 1px;
494
+ height: 20px;
495
+ }
496
+ .ui-dialog .ui-dialog-content {
497
+ position: relative;
498
+ border: 0;
499
+ padding: .5em 1em;
500
+ background: none;
501
+ overflow: auto;
502
+ }
503
+ .ui-dialog .ui-dialog-buttonpane {
504
+ text-align: left;
505
+ border-width: 1px 0 0 0;
506
+ background-image: none;
507
+ margin-top: .5em;
508
+ padding: .3em 1em .5em .4em;
509
+ }
510
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
511
+ float: right;
512
+ }
513
+ .ui-dialog .ui-dialog-buttonpane button {
514
+ margin: .5em .4em .5em 0;
515
+ cursor: pointer;
516
+ }
517
+ .ui-dialog .ui-resizable-se {
518
+ width: 12px;
519
+ height: 12px;
520
+ right: -5px;
521
+ bottom: -5px;
522
+ background-position: 16px 16px;
523
+ }
524
+ .ui-draggable .ui-dialog-titlebar {
525
+ cursor: move;
526
+ }
527
+ .ui-menu {
528
+ list-style: none;
529
+ padding: 2px;
530
+ margin: 0;
531
+ display: block;
532
+ outline: none;
533
+ }
534
+ .ui-menu .ui-menu {
535
+ margin-top: -3px;
536
+ position: absolute;
537
+ }
538
+ .ui-menu .ui-menu-item {
539
+ margin: 0;
540
+ padding: 0;
541
+ width: 100%;
542
+ /* support: IE10, see #8844 */
543
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
544
+ }
545
+ .ui-menu .ui-menu-divider {
546
+ margin: 5px -2px 5px -2px;
547
+ height: 0;
548
+ font-size: 0;
549
+ line-height: 0;
550
+ border-width: 1px 0 0 0;
551
+ }
552
+ .ui-menu .ui-menu-item a {
553
+ text-decoration: none;
554
+ display: block;
555
+ padding: 2px .4em;
556
+ line-height: 1.5;
557
+ min-height: 0; /* support: IE7 */
558
+ font-weight: normal;
559
+ }
560
+ .ui-menu .ui-menu-item a.ui-state-focus,
561
+ .ui-menu .ui-menu-item a.ui-state-active {
562
+ font-weight: normal;
563
+ margin: -1px;
564
+ }
565
+
566
+ .ui-menu .ui-state-disabled {
567
+ font-weight: normal;
568
+ margin: .4em 0 .2em;
569
+ line-height: 1.5;
570
+ }
571
+ .ui-menu .ui-state-disabled a {
572
+ cursor: default;
573
+ }
574
+
575
+ /* icon support */
576
+ .ui-menu-icons {
577
+ position: relative;
578
+ }
579
+ .ui-menu-icons .ui-menu-item a {
580
+ position: relative;
581
+ padding-left: 2em;
582
+ }
583
+
584
+ /* left-aligned */
585
+ .ui-menu .ui-icon {
586
+ position: absolute;
587
+ top: .2em;
588
+ left: .2em;
589
+ }
590
+
591
+ /* right-aligned */
592
+ .ui-menu .ui-menu-icon {
593
+ position: static;
594
+ float: right;
595
+ }
596
+ .ui-progressbar {
597
+ height: 2em;
598
+ text-align: left;
599
+ overflow: hidden;
600
+ }
601
+ .ui-progressbar .ui-progressbar-value {
602
+ margin: -1px;
603
+ height: 100%;
604
+ }
605
+ .ui-progressbar .ui-progressbar-overlay {
606
+ background: url("images/animated-overlay.gif");
607
+ height: 100%;
608
+ filter: alpha(opacity=25);
609
+ opacity: 0.25;
610
+ }
611
+ .ui-progressbar-indeterminate .ui-progressbar-value {
612
+ background-image: none;
613
+ }
614
+ .ui-slider {
615
+ position: relative;
616
+ text-align: left;
617
+ }
618
+ .ui-slider .ui-slider-handle {
619
+ position: absolute;
620
+ z-index: 2;
621
+ width: 1.2em;
622
+ height: 1.2em;
623
+ cursor: default;
624
+ }
625
+ .ui-slider .ui-slider-range {
626
+ position: absolute;
627
+ z-index: 1;
628
+ font-size: .7em;
629
+ display: block;
630
+ border: 0;
631
+ background-position: 0 0;
632
+ }
633
+
634
+ /* For IE8 - See #6727 */
635
+ .ui-slider.ui-state-disabled .ui-slider-handle,
636
+ .ui-slider.ui-state-disabled .ui-slider-range {
637
+ filter: inherit;
638
+ }
639
+
640
+ .ui-slider-horizontal {
641
+ height: .8em;
642
+ }
643
+ .ui-slider-horizontal .ui-slider-handle {
644
+ top: -.3em;
645
+ margin-left: -.6em;
646
+ }
647
+ .ui-slider-horizontal .ui-slider-range {
648
+ top: 0;
649
+ height: 100%;
650
+ }
651
+ .ui-slider-horizontal .ui-slider-range-min {
652
+ left: 0;
653
+ }
654
+ .ui-slider-horizontal .ui-slider-range-max {
655
+ right: 0;
656
+ }
657
+
658
+ .ui-slider-vertical {
659
+ width: .8em;
660
+ height: 100px;
661
+ }
662
+ .ui-slider-vertical .ui-slider-handle {
663
+ left: -.3em;
664
+ margin-left: 0;
665
+ margin-bottom: -.6em;
666
+ }
667
+ .ui-slider-vertical .ui-slider-range {
668
+ left: 0;
669
+ width: 100%;
670
+ }
671
+ .ui-slider-vertical .ui-slider-range-min {
672
+ bottom: 0;
673
+ }
674
+ .ui-slider-vertical .ui-slider-range-max {
675
+ top: 0;
676
+ }
677
+ .ui-spinner {
678
+ position: relative;
679
+ display: inline-block;
680
+ overflow: hidden;
681
+ padding: 0;
682
+ vertical-align: middle;
683
+ }
684
+ .ui-spinner-input {
685
+ border: none;
686
+ background: none;
687
+ color: inherit;
688
+ padding: 0;
689
+ margin: .2em 0;
690
+ vertical-align: middle;
691
+ margin-left: .4em;
692
+ margin-right: 22px;
693
+ }
694
+ .ui-spinner-button {
695
+ width: 16px;
696
+ height: 50%;
697
+ font-size: .5em;
698
+ padding: 0;
699
+ margin: 0;
700
+ text-align: center;
701
+ position: absolute;
702
+ cursor: default;
703
+ display: block;
704
+ overflow: hidden;
705
+ right: 0;
706
+ }
707
+ /* more specificity required here to overide default borders */
708
+ .ui-spinner a.ui-spinner-button {
709
+ border-top: none;
710
+ border-bottom: none;
711
+ border-right: none;
712
+ }
713
+ /* vertical centre icon */
714
+ .ui-spinner .ui-icon {
715
+ position: absolute;
716
+ margin-top: -8px;
717
+ top: 50%;
718
+ left: 0;
719
+ }
720
+ .ui-spinner-up {
721
+ top: 0;
722
+ }
723
+ .ui-spinner-down {
724
+ bottom: 0;
725
+ }
726
+
727
+ /* TR overrides */
728
+ .ui-spinner .ui-icon-triangle-1-s {
729
+ /* need to fix icons sprite */
730
+ background-position: -65px -16px;
731
+ }
732
+ .ui-tabs {
733
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
734
+ padding: .2em;
735
+ }
736
+ .ui-tabs .ui-tabs-nav {
737
+ margin: 0;
738
+ padding: .2em .2em 0;
739
+ }
740
+ .ui-tabs .ui-tabs-nav li {
741
+ list-style: none;
742
+ float: left;
743
+ position: relative;
744
+ top: 0;
745
+ margin: 1px .2em 0 0;
746
+ border-bottom-width: 0;
747
+ padding: 0;
748
+ white-space: nowrap;
749
+ }
750
+ .ui-tabs .ui-tabs-nav li a {
751
+ float: left;
752
+ padding: .5em 1em;
753
+ text-decoration: none;
754
+ }
755
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
756
+ margin-bottom: -1px;
757
+ padding-bottom: 1px;
758
+ }
759
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
760
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
761
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
762
+ cursor: text;
763
+ }
764
+ .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
765
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
766
+ cursor: pointer;
767
+ }
768
+ .ui-tabs .ui-tabs-panel {
769
+ display: block;
770
+ border-width: 0;
771
+ padding: 1em 1.4em;
772
+ background: none;
773
+ }
774
+ .ui-tooltip {
775
+ padding: 8px;
776
+ position: absolute;
777
+ z-index: 9999;
778
+ max-width: 300px;
779
+ -webkit-box-shadow: 0 0 5px #aaa;
780
+ box-shadow: 0 0 5px #aaa;
781
+ }
782
+ body .ui-tooltip {
783
+ border-width: 2px;
784
+ }
785
+
786
+ /* Component containers
787
+ ----------------------------------*/
788
+ .ui-widget {
789
+ font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
790
+ font-size: 1.1em;
791
+ }
792
+ .ui-widget .ui-widget {
793
+ font-size: 1em;
794
+ }
795
+ .ui-widget input,
796
+ .ui-widget select,
797
+ .ui-widget textarea,
798
+ .ui-widget button {
799
+ font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
800
+ font-size: 1em;
801
+ }
802
+ .ui-widget-content {
803
+ border: 1px solid #dddddd;
804
+ background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;
805
+ color: #333333;
806
+ }
807
+ .ui-widget-content a {
808
+ color: #333333;
809
+ }
810
+ .ui-widget-header {
811
+ border: 1px solid #e78f08;
812
+ background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;
813
+ color: #ffffff;
814
+ font-weight: bold;
815
+ }
816
+ .ui-widget-header a {
817
+ color: #ffffff;
818
+ }
819
+
820
+ /* Interaction states
821
+ ----------------------------------*/
822
+ .ui-state-default,
823
+ .ui-widget-content .ui-state-default,
824
+ .ui-widget-header .ui-state-default {
825
+ border: 1px solid #cccccc;
826
+ background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
827
+ font-weight: bold;
828
+ color: #1c94c4;
829
+ }
830
+ .ui-state-default a,
831
+ .ui-state-default a:link,
832
+ .ui-state-default a:visited {
833
+ color: #1c94c4;
834
+ text-decoration: none;
835
+ }
836
+ .ui-state-hover,
837
+ .ui-widget-content .ui-state-hover,
838
+ .ui-widget-header .ui-state-hover,
839
+ .ui-state-focus,
840
+ .ui-widget-content .ui-state-focus,
841
+ .ui-widget-header .ui-state-focus {
842
+ border: 1px solid #fbcb09;
843
+ background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;
844
+ font-weight: bold;
845
+ color: #c77405;
846
+ }
847
+ .ui-state-hover a,
848
+ .ui-state-hover a:hover,
849
+ .ui-state-hover a:link,
850
+ .ui-state-hover a:visited {
851
+ color: #c77405;
852
+ text-decoration: none;
853
+ }
854
+ .ui-state-active,
855
+ .ui-widget-content .ui-state-active,
856
+ .ui-widget-header .ui-state-active {
857
+ border: 1px solid #fbd850;
858
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
859
+ font-weight: bold;
860
+ color: #eb8f00;
861
+ }
862
+ .ui-state-active a,
863
+ .ui-state-active a:link,
864
+ .ui-state-active a:visited {
865
+ color: #eb8f00;
866
+ text-decoration: none;
867
+ }
868
+
869
+ /* Interaction Cues
870
+ ----------------------------------*/
871
+ .ui-state-highlight,
872
+ .ui-widget-content .ui-state-highlight,
873
+ .ui-widget-header .ui-state-highlight {
874
+ border: 1px solid #fed22f;
875
+ background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;
876
+ color: #363636;
877
+ }
878
+ .ui-state-highlight a,
879
+ .ui-widget-content .ui-state-highlight a,
880
+ .ui-widget-header .ui-state-highlight a {
881
+ color: #363636;
882
+ }
883
+ .ui-state-error,
884
+ .ui-widget-content .ui-state-error,
885
+ .ui-widget-header .ui-state-error {
886
+ border: 1px solid #cd0a0a;
887
+ background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;
888
+ color: #ffffff;
889
+ }
890
+ .ui-state-error a,
891
+ .ui-widget-content .ui-state-error a,
892
+ .ui-widget-header .ui-state-error a {
893
+ color: #ffffff;
894
+ }
895
+ .ui-state-error-text,
896
+ .ui-widget-content .ui-state-error-text,
897
+ .ui-widget-header .ui-state-error-text {
898
+ color: #ffffff;
899
+ }
900
+ .ui-priority-primary,
901
+ .ui-widget-content .ui-priority-primary,
902
+ .ui-widget-header .ui-priority-primary {
903
+ font-weight: bold;
904
+ }
905
+ .ui-priority-secondary,
906
+ .ui-widget-content .ui-priority-secondary,
907
+ .ui-widget-header .ui-priority-secondary {
908
+ opacity: .7;
909
+ filter:Alpha(Opacity=70);
910
+ font-weight: normal;
911
+ }
912
+ .ui-state-disabled,
913
+ .ui-widget-content .ui-state-disabled,
914
+ .ui-widget-header .ui-state-disabled {
915
+ opacity: .35;
916
+ filter:Alpha(Opacity=35);
917
+ background-image: none;
918
+ }
919
+ .ui-state-disabled .ui-icon {
920
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
921
+ }
922
+
923
+ /* Icons
924
+ ----------------------------------*/
925
+
926
+ /* states and images */
927
+ .ui-icon {
928
+ width: 16px;
929
+ height: 16px;
930
+ }
931
+ .ui-icon,
932
+ .ui-widget-content .ui-icon {
933
+ background-image: url(images/ui-icons_222222_256x240.png);
934
+ }
935
+ .ui-widget-header .ui-icon {
936
+ background-image: url(images/ui-icons_ffffff_256x240.png);
937
+ }
938
+ .ui-state-default .ui-icon {
939
+ background-image: url(images/ui-icons_ef8c08_256x240.png);
940
+ }
941
+ .ui-state-hover .ui-icon,
942
+ .ui-state-focus .ui-icon {
943
+ background-image: url(images/ui-icons_ef8c08_256x240.png);
944
+ }
945
+ .ui-state-active .ui-icon {
946
+ background-image: url(images/ui-icons_ef8c08_256x240.png);
947
+ }
948
+ .ui-state-highlight .ui-icon {
949
+ background-image: url(images/ui-icons_228ef1_256x240.png);
950
+ }
951
+ .ui-state-error .ui-icon,
952
+ .ui-state-error-text .ui-icon {
953
+ background-image: url(images/ui-icons_ffd27a_256x240.png);
954
+ }
955
+
956
+ /* positioning */
957
+ .ui-icon-blank { background-position: 16px 16px; }
958
+ .ui-icon-carat-1-n { background-position: 0 0; }
959
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
960
+ .ui-icon-carat-1-e { background-position: -32px 0; }
961
+ .ui-icon-carat-1-se { background-position: -48px 0; }
962
+ .ui-icon-carat-1-s { background-position: -64px 0; }
963
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
964
+ .ui-icon-carat-1-w { background-position: -96px 0; }
965
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
966
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
967
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
968
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
969
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
970
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
971
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
972
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
973
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
974
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
975
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
976
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
977
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
978
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
979
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
980
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
981
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
982
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
983
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
984
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
985
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
986
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
987
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
988
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
989
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
990
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
991
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
992
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
993
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
994
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
995
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
996
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
997
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
998
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
999
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1000
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1001
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1002
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1003
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1004
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1005
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1006
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1007
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1008
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1009
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1010
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1011
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1012
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1013
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1014
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1015
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1016
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1017
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1018
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1019
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1020
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1021
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1022
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1023
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1024
+ .ui-icon-extlink { background-position: -32px -80px; }
1025
+ .ui-icon-newwin { background-position: -48px -80px; }
1026
+ .ui-icon-refresh { background-position: -64px -80px; }
1027
+ .ui-icon-shuffle { background-position: -80px -80px; }
1028
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1029
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1030
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1031
+ .ui-icon-folder-open { background-position: -16px -96px; }
1032
+ .ui-icon-document { background-position: -32px -96px; }
1033
+ .ui-icon-document-b { background-position: -48px -96px; }
1034
+ .ui-icon-note { background-position: -64px -96px; }
1035
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1036
+ .ui-icon-mail-open { background-position: -96px -96px; }
1037
+ .ui-icon-suitcase { background-position: -112px -96px; }
1038
+ .ui-icon-comment { background-position: -128px -96px; }
1039
+ .ui-icon-person { background-position: -144px -96px; }
1040
+ .ui-icon-print { background-position: -160px -96px; }
1041
+ .ui-icon-trash { background-position: -176px -96px; }
1042
+ .ui-icon-locked { background-position: -192px -96px; }
1043
+ .ui-icon-unlocked { background-position: -208px -96px; }
1044
+ .ui-icon-bookmark { background-position: -224px -96px; }
1045
+ .ui-icon-tag { background-position: -240px -96px; }
1046
+ .ui-icon-home { background-position: 0 -112px; }
1047
+ .ui-icon-flag { background-position: -16px -112px; }
1048
+ .ui-icon-calendar { background-position: -32px -112px; }
1049
+ .ui-icon-cart { background-position: -48px -112px; }
1050
+ .ui-icon-pencil { background-position: -64px -112px; }
1051
+ .ui-icon-clock { background-position: -80px -112px; }
1052
+ .ui-icon-disk { background-position: -96px -112px; }
1053
+ .ui-icon-calculator { background-position: -112px -112px; }
1054
+ .ui-icon-zoomin { background-position: -128px -112px; }
1055
+ .ui-icon-zoomout { background-position: -144px -112px; }
1056
+ .ui-icon-search { background-position: -160px -112px; }
1057
+ .ui-icon-wrench { background-position: -176px -112px; }
1058
+ .ui-icon-gear { background-position: -192px -112px; }
1059
+ .ui-icon-heart { background-position: -208px -112px; }
1060
+ .ui-icon-star { background-position: -224px -112px; }
1061
+ .ui-icon-link { background-position: -240px -112px; }
1062
+ .ui-icon-cancel { background-position: 0 -128px; }
1063
+ .ui-icon-plus { background-position: -16px -128px; }
1064
+ .ui-icon-plusthick { background-position: -32px -128px; }
1065
+ .ui-icon-minus { background-position: -48px -128px; }
1066
+ .ui-icon-minusthick { background-position: -64px -128px; }
1067
+ .ui-icon-close { background-position: -80px -128px; }
1068
+ .ui-icon-closethick { background-position: -96px -128px; }
1069
+ .ui-icon-key { background-position: -112px -128px; }
1070
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1071
+ .ui-icon-scissors { background-position: -144px -128px; }
1072
+ .ui-icon-clipboard { background-position: -160px -128px; }
1073
+ .ui-icon-copy { background-position: -176px -128px; }
1074
+ .ui-icon-contact { background-position: -192px -128px; }
1075
+ .ui-icon-image { background-position: -208px -128px; }
1076
+ .ui-icon-video { background-position: -224px -128px; }
1077
+ .ui-icon-script { background-position: -240px -128px; }
1078
+ .ui-icon-alert { background-position: 0 -144px; }
1079
+ .ui-icon-info { background-position: -16px -144px; }
1080
+ .ui-icon-notice { background-position: -32px -144px; }
1081
+ .ui-icon-help { background-position: -48px -144px; }
1082
+ .ui-icon-check { background-position: -64px -144px; }
1083
+ .ui-icon-bullet { background-position: -80px -144px; }
1084
+ .ui-icon-radio-on { background-position: -96px -144px; }
1085
+ .ui-icon-radio-off { background-position: -112px -144px; }
1086
+ .ui-icon-pin-w { background-position: -128px -144px; }
1087
+ .ui-icon-pin-s { background-position: -144px -144px; }
1088
+ .ui-icon-play { background-position: 0 -160px; }
1089
+ .ui-icon-pause { background-position: -16px -160px; }
1090
+ .ui-icon-seek-next { background-position: -32px -160px; }
1091
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1092
+ .ui-icon-seek-end { background-position: -64px -160px; }
1093
+ .ui-icon-seek-start { background-position: -80px -160px; }
1094
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1095
+ .ui-icon-seek-first { background-position: -80px -160px; }
1096
+ .ui-icon-stop { background-position: -96px -160px; }
1097
+ .ui-icon-eject { background-position: -112px -160px; }
1098
+ .ui-icon-volume-off { background-position: -128px -160px; }
1099
+ .ui-icon-volume-on { background-position: -144px -160px; }
1100
+ .ui-icon-power { background-position: 0 -176px; }
1101
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1102
+ .ui-icon-signal { background-position: -32px -176px; }
1103
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1104
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1105
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1106
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1107
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1108
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1109
+ .ui-icon-circle-close { background-position: -32px -192px; }
1110
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1111
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1112
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1113
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1114
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1115
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1116
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1117
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1118
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1119
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1120
+ .ui-icon-circle-check { background-position: -208px -192px; }
1121
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1122
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1123
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1124
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1125
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1126
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1127
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1128
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1129
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1130
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1131
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1132
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1133
+
1134
+
1135
+ /* Misc visuals
1136
+ ----------------------------------*/
1137
+
1138
+ /* Corner radius */
1139
+ .ui-corner-all,
1140
+ .ui-corner-top,
1141
+ .ui-corner-left,
1142
+ .ui-corner-tl {
1143
+ border-top-left-radius: 4px;
1144
+ }
1145
+ .ui-corner-all,
1146
+ .ui-corner-top,
1147
+ .ui-corner-right,
1148
+ .ui-corner-tr {
1149
+ border-top-right-radius: 4px;
1150
+ }
1151
+ .ui-corner-all,
1152
+ .ui-corner-bottom,
1153
+ .ui-corner-left,
1154
+ .ui-corner-bl {
1155
+ border-bottom-left-radius: 4px;
1156
+ }
1157
+ .ui-corner-all,
1158
+ .ui-corner-bottom,
1159
+ .ui-corner-right,
1160
+ .ui-corner-br {
1161
+ border-bottom-right-radius: 4px;
1162
+ }
1163
+
1164
+ /* Overlays */
1165
+ .ui-widget-overlay {
1166
+ background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;
1167
+ opacity: .5;
1168
+ filter: Alpha(Opacity=50);
1169
+ }
1170
+ .ui-widget-shadow {
1171
+ margin: -5px 0 0 -5px;
1172
+ padding: 5px;
1173
+ background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;
1174
+ opacity: .2;
1175
+ filter: Alpha(Opacity=20);
1176
+ border-radius: 5px;
1177
+ }
css/jquery-ui-spinner.css CHANGED
@@ -1,1178 +1,1178 @@
1
- /*! jQuery UI - v1.10.3 - 2013-05-03
2
- * http://jqueryui.com
3
- * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .wdform-field .ui-spinner-input {
10
- background-color: #FFFFFF;
11
- height: 30px !important;
12
- }
13
- .wdform_table1 .ui-helper-hidden {
14
- display: none;
15
- }
16
- .wdform_table1 .ui-helper-hidden-accessible {
17
- border: 0;
18
- clip: rect(0 0 0 0);
19
- height: 1px;
20
- margin: -1px;
21
- overflow: hidden;
22
- padding: 0;
23
- position: absolute;
24
- width: 1px;
25
- }
26
- .wdform_table1 .ui-helper-reset {
27
- margin: 0;
28
- padding: 0;
29
- border: 0;
30
- outline: 0;
31
- line-height: 1.3;
32
- text-decoration: none;
33
- font-size: 100%;
34
- list-style: none;
35
- }
36
- .wdform_table1 .ui-helper-clearfix:before,
37
- .wdform_table1 .ui-helper-clearfix:after {
38
- content: "";
39
- display: table;
40
- border-collapse: collapse;
41
- }
42
- .wdform_table1 .ui-helper-clearfix:after {
43
- clear: both;
44
- }
45
- .wdform_table1 .ui-helper-clearfix {
46
- min-height: 0; /* support: IE7 */
47
- }
48
- .wdform_table1 .ui-helper-zfix {
49
- width: 100%;
50
- height: 100%;
51
- top: 0;
52
- left: 0;
53
- position: absolute;
54
- opacity: 0;
55
- filter:Alpha(Opacity=0);
56
- }
57
- .wdform_table1 .ui-front {
58
- z-index: 100;
59
- }
60
-
61
-
62
- /* Interaction Cues
63
- ----------------------------------*/
64
- .wdform_table1 .ui-state-disabled {
65
- cursor: default !important;
66
- }
67
-
68
-
69
- /* Icons
70
- ----------------------------------*/
71
-
72
- /* states and images */
73
- .wdform_table1 .ui-icon {
74
- display: block;
75
- text-indent: -99999px;
76
- overflow: hidden;
77
- background-repeat: no-repeat;
78
- }
79
-
80
-
81
- /* Misc visuals
82
- ----------------------------------*/
83
-
84
- /* Overlays */
85
- .wdform_table1 .ui-widget-overlay {
86
- position: fixed;
87
- top: 0;
88
- left: 0;
89
- width: 100%;
90
- height: 100%;
91
- }
92
- .wdform_table1 .ui-accordion .ui-accordion-header {
93
- display: block;
94
- cursor: pointer;
95
- position: relative;
96
- margin-top: 2px;
97
- padding: .5em .5em .5em .7em;
98
- min-height: 0; /* support: IE7 */
99
- }
100
- .wdform_table1 .ui-accordion .ui-accordion-icons {
101
- padding-left: 2.2em;
102
- }
103
- .wdform_table1 .ui-accordion .ui-accordion-noicons {
104
- padding-left: .7em;
105
- }
106
- .wdform_table1 .ui-accordion .ui-accordion-icons .ui-accordion-icons {
107
- padding-left: 2.2em;
108
- }
109
- .wdform_table1 .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
110
- position: absolute;
111
- left: .5em;
112
- top: 50%;
113
- margin-top: -8px;
114
- }
115
- .wdform_table1 .ui-accordion .ui-accordion-content {
116
- padding: 1em 2.2em;
117
- border-top: 0;
118
- overflow: auto;
119
- }
120
- .wdform_table1 .ui-autocomplete {
121
- position: absolute;
122
- top: 0;
123
- left: 0;
124
- cursor: default;
125
- }
126
- .wdform_table1 .ui-button {
127
- display: inline-block;
128
- position: relative;
129
- padding: 0;
130
- line-height: normal;
131
- margin-right: .1em;
132
- cursor: pointer;
133
- vertical-align: middle;
134
- text-align: center;
135
- overflow: visible; /* removes extra width in IE */
136
- }
137
- .wdform_table1 .ui-button,
138
- .ui-button:link,
139
- .ui-button:visited,
140
- .ui-button:hover,
141
- .ui-button:active {
142
- text-decoration: none;
143
- }
144
- /* to make room for the icon, a width needs to be set here */
145
- .wdform_table1 .ui-button-icon-only {
146
- width: 2.2em;
147
- }
148
- /* button elements seem to need a little more width */
149
- .wdform_table1 button.ui-button-icon-only {
150
- width: 2.4em;
151
- }
152
- .wdform_table1 .ui-button-icons-only {
153
- width: 3.4em;
154
- }
155
- .wdform_table1 button.ui-button-icons-only {
156
- width: 3.7em;
157
- }
158
-
159
- /* button text element */
160
- .wdform_table1 .ui-button .ui-button-text {
161
- display: block;
162
- line-height: normal;
163
- }
164
- .wdform_table1 .ui-button-text-only .ui-button-text {
165
- padding: .4em 1em;
166
- }
167
- .wdform_table1 .ui-button-icon-only .ui-button-text,
168
- .wdform_table1 .ui-button-icons-only .ui-button-text {
169
- padding: .4em;
170
- text-indent: -9999999px;
171
- }
172
- .wdform_table1 .ui-button-text-icon-primary .ui-button-text,
173
- .wdform_table1 .ui-button-text-icons .ui-button-text {
174
- padding: .4em 1em .4em 2.1em;
175
- }
176
- .wdform_table1 .ui-button-text-icon-secondary .ui-button-text,
177
- .wdform_table1 .ui-button-text-icons .ui-button-text {
178
- padding: .4em 2.1em .4em 1em;
179
- }
180
- .wdform_table1 .ui-button-text-icons .ui-button-text {
181
- padding-left: 2.1em;
182
- padding-right: 2.1em;
183
- }
184
- /* no icon support for input elements, provide padding by default */
185
- .wdform_table1 input.ui-button {
186
- padding: .4em 1em;
187
- }
188
-
189
- /* button icon element(s) */
190
- .wdform_table1 .ui-button-icon-only .ui-icon,
191
- .wdform_table1 .ui-button-text-icon-primary .ui-icon,
192
- .wdform_table1 .ui-button-text-icon-secondary .ui-icon,
193
- .wdform_table1 .ui-button-text-icons .ui-icon,
194
- .wdform_table1 .ui-button-icons-only .ui-icon {
195
- position: absolute;
196
- top: 50%;
197
- margin-top: -8px;
198
- }
199
- .wdform_table1 .ui-button-icon-only .ui-icon {
200
- left: 50%;
201
- margin-left: -8px;
202
- }
203
- .wdform_table1 .ui-button-text-icon-primary .ui-button-icon-primary,
204
- .wdform_table1 .ui-button-text-icons .ui-button-icon-primary,
205
- .wdform_table1 .ui-button-icons-only .ui-button-icon-primary {
206
- left: .5em;
207
- }
208
- .wdform_table1 .ui-button-text-icon-secondary .ui-button-icon-secondary,
209
- .wdform_table1 .ui-button-text-icons .ui-button-icon-secondary,
210
- .wdform_table1 .ui-button-icons-only .ui-button-icon-secondary {
211
- right: .5em;
212
- }
213
-
214
- /* button sets */
215
- .wdform_table1 .ui-buttonset {
216
- margin-right: 7px;
217
- }
218
- .wdform_table1 .ui-buttonset .ui-button {
219
- margin-left: 0;
220
- margin-right: -.3em;
221
- }
222
-
223
- /* workarounds */
224
- /* reset extra padding in Firefox, see h5bp.com/l */
225
- .wdform_table1 input.ui-button::-moz-focus-inner,
226
- .wdform_table1 button.ui-button::-moz-focus-inner {
227
- border: 0;
228
- padding: 0;
229
- }
230
- .wdform_table1 .ui-datepicker {
231
- width: 17em;
232
- padding: .2em .2em 0;
233
- display: none;
234
- }
235
- .wdform_table1 .ui-datepicker .ui-datepicker-header {
236
- position: relative;
237
- padding: .2em 0;
238
- }
239
- .wdform_table1 .ui-datepicker .ui-datepicker-prev,
240
- .wdform_table1 .ui-datepicker .ui-datepicker-next {
241
- position: absolute;
242
- top: 2px;
243
- width: 1.8em;
244
- height: 1.8em;
245
- }
246
- .wdform_table1 .ui-datepicker .ui-datepicker-prev-hover,
247
- .wdform_table1 .ui-datepicker .ui-datepicker-next-hover {
248
- top: 1px;
249
- }
250
- .wdform_table1 .ui-datepicker .ui-datepicker-prev {
251
- left: 2px;
252
- }
253
- .wdform_table1 .ui-datepicker .ui-datepicker-next {
254
- right: 2px;
255
- }
256
- .wdform_table1 .ui-datepicker .ui-datepicker-prev-hover {
257
- left: 1px;
258
- }
259
- .wdform_table1 .ui-datepicker .ui-datepicker-next-hover {
260
- right: 1px;
261
- }
262
- .wdform_table1 .ui-datepicker .ui-datepicker-prev span,
263
- .ui-datepicker .ui-datepicker-next span {
264
- display: block;
265
- position: absolute;
266
- left: 50%;
267
- margin-left: -8px;
268
- top: 50%;
269
- margin-top: -8px;
270
- }
271
- .wdform_table1 .ui-datepicker .ui-datepicker-title {
272
- margin: 0 2.3em;
273
- line-height: 1.8em;
274
- text-align: center;
275
- }
276
- .wdform_table1 .ui-datepicker .ui-datepicker-title select {
277
- font-size: 1em;
278
- margin: 1px 0;
279
- }
280
- .wdform_table1 .ui-datepicker select.ui-datepicker-month-year {
281
- width: 100%;
282
- }
283
- .wdform_table1 .ui-datepicker select.ui-datepicker-month,
284
- .wdform_table1 .ui-datepicker select.ui-datepicker-year {
285
- width: 49%;
286
- }
287
- .wdform_table1 .ui-datepicker table {
288
- width: 100%;
289
- font-size: .9em;
290
- border-collapse: collapse;
291
- margin: 0 0 .4em;
292
- }
293
- .wdform_table1 .ui-datepicker th {
294
- padding: .7em .3em;
295
- text-align: center;
296
- font-weight: bold;
297
- border: 0;
298
- }
299
- .wdform_table1 .ui-datepicker td {
300
- border: 0;
301
- padding: 1px;
302
- }
303
- .wdform_table1 .ui-datepicker td span,
304
- .wdform_table1 .ui-datepicker td a {
305
- display: block;
306
- padding: .2em;
307
- text-align: right;
308
- text-decoration: none;
309
- }
310
- .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane {
311
- background-image: none;
312
- margin: .7em 0 0 0;
313
- padding: 0 .2em;
314
- border-left: 0;
315
- border-right: 0;
316
- border-bottom: 0;
317
- }
318
- .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane button {
319
- float: right;
320
- margin: .5em .2em .4em;
321
- cursor: pointer;
322
- padding: .2em .6em .3em .6em;
323
- width: auto;
324
- overflow: visible;
325
- }
326
- .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
327
- float: left;
328
- }
329
-
330
- /* with multiple calendars */
331
- .wdform_table1 .ui-datepicker.ui-datepicker-multi {
332
- width: auto;
333
- }
334
- .wdform_table1 .ui-datepicker-multi .ui-datepicker-group {
335
- float: left;
336
- }
337
- .wdform_table1 .ui-datepicker-multi .ui-datepicker-group table {
338
- width: 95%;
339
- margin: 0 auto .4em;
340
- }
341
- .wdform_table1 .ui-datepicker-multi-2 .ui-datepicker-group {
342
- width: 50%;
343
- }
344
- .wdform_table1 .ui-datepicker-multi-3 .ui-datepicker-group {
345
- width: 33.3%;
346
- }
347
- .wdform_table1 .ui-datepicker-multi-4 .ui-datepicker-group {
348
- width: 25%;
349
- }
350
- .wdform_table1 .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
351
- .wdform_table1 .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
352
- border-left-width: 0;
353
- }
354
- .wdform_table1 .ui-datepicker-multi .ui-datepicker-buttonpane {
355
- clear: left;
356
- }
357
- .wdform_table1 .ui-datepicker-row-break {
358
- clear: both;
359
- width: 100%;
360
- font-size: 0;
361
- }
362
-
363
- /* RTL support */
364
- .wdform_table1 .ui-datepicker-rtl {
365
- direction: rtl;
366
- }
367
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-prev {
368
- right: 2px;
369
- left: auto;
370
- }
371
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-next {
372
- left: 2px;
373
- right: auto;
374
- }
375
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-prev:hover {
376
- right: 1px;
377
- left: auto;
378
- }
379
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-next:hover {
380
- left: 1px;
381
- right: auto;
382
- }
383
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane {
384
- clear: right;
385
- }
386
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane button {
387
- float: left;
388
- }
389
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
390
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group {
391
- float: right;
392
- }
393
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
394
- .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
395
- border-right-width: 0;
396
- border-left-width: 1px;
397
- }
398
- .wdform_table1 .ui-dialog {
399
- position: absolute;
400
- top: 0;
401
- left: 0;
402
- padding: .2em;
403
- outline: 0;
404
- }
405
- .wdform_table1 .ui-dialog .ui-dialog-titlebar {
406
- padding: .4em 1em;
407
- position: relative;
408
- }
409
- .wdform_table1 .ui-dialog .ui-dialog-title {
410
- float: left;
411
- margin: .1em 0;
412
- white-space: nowrap;
413
- width: 90%;
414
- overflow: hidden;
415
- text-overflow: ellipsis;
416
- }
417
- .wdform_table1 .ui-dialog .ui-dialog-titlebar-close {
418
- position: absolute;
419
- right: .3em;
420
- top: 50%;
421
- width: 21px;
422
- margin: -10px 0 0 0;
423
- padding: 1px;
424
- height: 20px;
425
- }
426
- .wdform_table1 .ui-dialog .ui-dialog-content {
427
- position: relative;
428
- border: 0;
429
- padding: .5em 1em;
430
- background: none;
431
- overflow: auto;
432
- }
433
- .wdform_table1 .ui-dialog .ui-dialog-buttonpane {
434
- text-align: left;
435
- border-width: 1px 0 0 0;
436
- background-image: none;
437
- margin-top: .5em;
438
- padding: .3em 1em .5em .4em;
439
- }
440
- .wdform_table1 .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
441
- float: right;
442
- }
443
- .wdform_table1 .ui-dialog .ui-dialog-buttonpane button {
444
- margin: .5em .4em .5em 0;
445
- cursor: pointer;
446
- }
447
- .wdform_table1 .ui-dialog .ui-resizable-se {
448
- width: 12px;
449
- height: 12px;
450
- right: -5px;
451
- bottom: -5px;
452
- background-position: 16px 16px;
453
- }
454
- .wdform_table1 .ui-draggable .ui-dialog-titlebar {
455
- cursor: move;
456
- }
457
- .wdform_table1 .ui-menu {
458
- list-style: none;
459
- padding: 2px;
460
- margin: 0;
461
- display: block;
462
- outline: none;
463
- }
464
- .wdform_table1 .ui-menu .ui-menu {
465
- margin-top: -3px;
466
- position: absolute;
467
- }
468
- .wdform_table1 .ui-menu .ui-menu-item {
469
- margin: 0;
470
- padding: 0;
471
- width: 100%;
472
- /* support: IE10, see #8844 */
473
- list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
474
- }
475
- .wdform_table1 .ui-menu .ui-menu-divider {
476
- margin: 5px -2px 5px -2px;
477
- height: 0;
478
- font-size: 0;
479
- line-height: 0;
480
- border-width: 1px 0 0 0;
481
- }
482
- .wdform_table1 .ui-menu .ui-menu-item a {
483
- text-decoration: none;
484
- display: block;
485
- padding: 2px .4em;
486
- line-height: 1.5;
487
- min-height: 0; /* support: IE7 */
488
- font-weight: normal;
489
- }
490
- .wdform_table1 .ui-menu .ui-menu-item a.ui-state-focus,
491
- .wdform_table1 .ui-menu .ui-menu-item a.ui-state-active {
492
- font-weight: normal;
493
- margin: -1px;
494
- }
495
-
496
- .wdform_table1 .ui-menu .ui-state-disabled {
497
- font-weight: normal;
498
- margin: .4em 0 .2em;
499
- line-height: 1.5;
500
- }
501
- .wdform_table1 .ui-menu .ui-state-disabled a {
502
- cursor: default;
503
- }
504
-
505
- /* icon support */
506
- .wdform_table1 .ui-menu-icons {
507
- position: relative;
508
- }
509
- .wdform_table1 .ui-menu-icons .ui-menu-item a {
510
- position: relative;
511
- padding-left: 2em;
512
- }
513
-
514
- /* left-aligned */
515
- .wdform_table1 .ui-menu .ui-icon {
516
- position: absolute;
517
- top: .2em;
518
- left: .2em;
519
- }
520
-
521
- /* right-aligned */
522
- .wdform_table1 .ui-menu .ui-menu-icon {
523
- position: static;
524
- float: right;
525
- }
526
- .wdform_table1 .ui-progressbar {
527
- height: 2em;
528
- text-align: left;
529
- overflow: hidden;
530
- }
531
- .wdform_table1 .ui-progressbar .ui-progressbar-value {
532
- margin: -1px;
533
- height: 100%;
534
- }
535
- .wdform_table1 .ui-progressbar .ui-progressbar-overlay {
536
- background: url("images/animated-overlay.gif");
537
- height: 100%;
538
- filter: alpha(opacity=25);
539
- opacity: 0.25;
540
- }
541
- .wdform_table1 .ui-progressbar-indeterminate .ui-progressbar-value {
542
- background-image: none;
543
- }
544
- .wdform_table1 .ui-resizable {
545
- position: relative;
546
- }
547
- .wdform_table1 .ui-resizable-handle {
548
- position: absolute;
549
- font-size: 0.1px;
550
- display: block;
551
- }
552
- .wdform_table1 .ui-resizable-disabled .ui-resizable-handle,
553
- .wdform_table1 .ui-resizable-autohide .ui-resizable-handle {
554
- display: none;
555
- }
556
- .wdform_table1 .ui-resizable-n {
557
- cursor: n-resize;
558
- height: 7px;
559
- width: 100%;
560
- top: -5px;
561
- left: 0;
562
- }
563
- .wdform_table1 .ui-resizable-s {
564
- cursor: s-resize;
565
- height: 7px;
566
- width: 100%;
567
- bottom: -5px;
568
- left: 0;
569
- }
570
- .wdform_table1 .ui-resizable-e {
571
- cursor: e-resize;
572
- width: 7px;
573
- right: -5px;
574
- top: 0;
575
- height: 100%;
576
- }
577
- .wdform_table1 .ui-resizable-w {
578
- cursor: w-resize;
579
- width: 7px;
580
- left: -5px;
581
- top: 0;
582
- height: 100%;
583
- }
584
- .wdform_table1 .ui-resizable-se {
585
- cursor: se-resize;
586
- width: 12px;
587
- height: 12px;
588
- right: 1px;
589
- bottom: 1px;
590
- }
591
- .wdform_table1 .ui-resizable-sw {
592
- cursor: sw-resize;
593
- width: 9px;
594
- height: 9px;
595
- left: -5px;
596
- bottom: -5px;
597
- }
598
- .wdform_table1 .ui-resizable-nw {
599
- cursor: nw-resize;
600
- width: 9px;
601
- height: 9px;
602
- left: -5px;
603
- top: -5px;
604
- }
605
- .wdform_table1 .ui-resizable-ne {
606
- cursor: ne-resize;
607
- width: 9px;
608
- height: 9px;
609
- right: -5px;
610
- top: -5px;
611
- }
612
- .wdform_table1 .ui-selectable-helper {
613
- position: absolute;
614
- z-index: 100;
615
- border: 1px dotted black;
616
- }
617
- .wdform_table1 .ui-slider {
618
- position: relative;
619
- text-align: left;
620
- }
621
- .wdform_table1 .ui-slider .ui-slider-handle {
622
- position: absolute;
623
- z-index: 2;
624
- width: 1.2em;
625
- height: 1.2em;
626
- cursor: default;
627
- }
628
- .wdform_table1 .ui-slider .ui-slider-range {
629
- position: absolute;
630
- z-index: 1;
631
- font-size: .7em;
632
- display: block;
633
- border: 0;
634
- background-position: 0 0;
635
- }
636
-
637
- /* For IE8 - See #6727 */
638
- .wdform_table1 .ui-slider.ui-state-disabled .ui-slider-handle,
639
- .wdform_table1 .ui-slider.ui-state-disabled .ui-slider-range {
640
- filter: inherit;
641
- }
642
- .wdform_table1 .ui-slider-horizontal {
643
- height: .8em;
644
- }
645
- .wdform_table1 .ui-slider-horizontal .ui-slider-handle {
646
- top: -.3em;
647
- margin-left: -.6em;
648
- }
649
- .wdform_table1 .ui-slider-horizontal .ui-slider-range {
650
- top: 0;
651
- height: 100%;
652
- }
653
- .wdform_table1 .ui-slider-horizontal .ui-slider-range-min {
654
- left: 0;
655
- }
656
- .wdform_table1 .ui-slider-horizontal .ui-slider-range-max {
657
- right: 0;
658
- }
659
-
660
- .wdform_table1 .ui-slider-vertical {
661
- width: .8em;
662
- height: 100px;
663
- }
664
- .wdform_table1 .ui-slider-vertical .ui-slider-handle {
665
- left: -.3em;
666
- margin-left: 0;
667
- margin-bottom: -.6em;
668
- }
669
- .wdform_table1 .ui-slider-vertical .ui-slider-range {
670
- left: 0;
671
- width: 100%;
672
- }
673
- .wdform_table1 .ui-slider-vertical .ui-slider-range-min {
674
- bottom: 0;
675
- }
676
- .wdform_table1 .ui-slider-vertical .ui-slider-range-max {
677
- top: 0;
678
- }
679
- .wdform_table1 .ui-spinner {
680
- position: relative;
681
- display: inline-block;
682
- overflow: hidden;
683
- padding: 0;
684
- vertical-align: middle;
685
- }
686
- .wdform_table1 .ui-spinner-input {
687
- border: none;
688
- background: none;
689
- color: inherit;
690
- padding: .2em 0 !important;
691
- vertical-align: middle;
692
- padding-left: .4em !important;
693
- padding-right: 22px !important;
694
- }
695
- .wdform_table1 .ui-spinner-button {
696
- width: 16px;
697
- height: 50%;
698
- font-size: .5em;
699
- padding: 0;
700
- margin: 0;
701
- text-align: center;
702
- position: absolute;
703
- cursor: default;
704
- display: block;
705
- overflow: hidden;
706
- right: 0;
707
- }
708
- /* more specificity required here to overide default borders */
709
- .wdform_table1 .ui-spinner a.ui-spinner-button {
710
- border-top: none;
711
- border-bottom: none;
712
- border-right: none;
713
- }
714
- /* vertical centre icon */
715
- .wdform_table1 .ui-spinner .ui-icon {
716
- position: absolute;
717
- margin-top: -8px;
718
- top: 50%;
719
- left: 0;
720
- }
721
- .wdform_table1 .ui-spinner-up {
722
- top: 0;
723
- }
724
- .wdform_table1 .ui-spinner-down {
725
- bottom: 0;
726
- }
727
-
728
- /* TR overrides */
729
- .wdform_table1 .ui-spinner .ui-icon-triangle-1-s {
730
- /* need to fix icons sprite */
731
- background-position: -65px -16px;
732
- }
733
- .wdform_table1 .ui-tabs {
734
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
735
- padding: .2em;
736
- }
737
- .wdform_table1 .ui-tabs .ui-tabs-nav {
738
- margin: 0;
739
- padding: .2em .2em 0;
740
- }
741
- .wdform_table1 .ui-tabs .ui-tabs-nav li {
742
- list-style: none;
743
- float: left;
744
- position: relative;
745
- top: 0;
746
- margin: 1px .2em 0 0;
747
- border-bottom-width: 0;
748
- padding: 0;
749
- white-space: nowrap;
750
- }
751
- .wdform_table1 .ui-tabs .ui-tabs-nav li a {
752
- float: left;
753
- padding: .5em 1em;
754
- text-decoration: none;
755
- }
756
- .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-active {
757
- margin-bottom: -1px;
758
- padding-bottom: 1px;
759
- }
760
- .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
761
- .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
762
- .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
763
- cursor: text;
764
- }
765
- .wdform_table1 .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
766
- .wdform_table1 .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
767
- cursor: pointer;
768
- }
769
- .wdform_table1 .ui-tabs .ui-tabs-panel {
770
- display: block;
771
- border-width: 0;
772
- padding: 1em 1.4em;
773
- background: none;
774
- }
775
- .wdform_table1 .ui-tooltip {
776
- padding: 8px;
777
- position: absolute;
778
- z-index: 9999;
779
- max-width: 300px;
780
- -webkit-box-shadow: 0 0 5px #aaa;
781
- box-shadow: 0 0 5px #aaa;
782
- }
783
- .wdform_table1 body .ui-tooltip {
784
- border-width: 2px;
785
- }
786
-
787
- /* Component containers
788
- ----------------------------------*/
789
- .wdform_table1 .ui-widget {
790
- font-family: Verdana,Arial,sans-serif;
791
- font-size: 1.1em;
792
- }
793
- .wdform_table1 .ui-widget .ui-widget {
794
- font-size: 1em;
795
- }
796
- .wdform_table1 .ui-widget input,
797
- .wdform_table1 .ui-widget select,
798
- .wdform_table1 .ui-widget textarea,
799
- .wdform_table1 .ui-widget button {
800
- font-family: Verdana,Arial,sans-serif;
801
- font-size: 1em;
802
- }
803
- .wdform_table1 .ui-widget-content {
804
- border: 1px solid #aaaaaa;
805
- background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
806
- color: #222222;
807
- }
808
- .wdform_table1 .ui-widget-content a {
809
- color: #222222;
810
- }
811
- .wdform_table1 .ui-widget-header {
812
- border: 1px solid #aaaaaa;
813
- background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
814
- color: #222222;
815
- font-weight: bold;
816
- }
817
- .wdform_table1 .ui-widget-header a {
818
- color: #222222;
819
- }
820
-
821
- /* Interaction states
822
- ----------------------------------*/
823
- .wdform_table1 .ui-state-default,
824
- .wdform_table1 .ui-widget-content .ui-state-default,
825
- .wdform_table1 .ui-widget-header .ui-state-default {
826
- border: 1px solid #d3d3d3;
827
- background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
828
- font-weight: normal;
829
- color: #555555;
830
- }
831
- .wdform_table1 .ui-state-default a,
832
- .wdform_table1 .ui-state-default a:link,
833
- .wdform_table1 .ui-state-default a:visited {
834
- color: #555555;
835
- text-decoration: none;
836
- }
837
- .wdform_table1 .ui-state-hover,
838
- .wdform_table1 .ui-widget-content .ui-state-hover,
839
- .wdform_table1 .ui-widget-header .ui-state-hover,
840
- .wdform_table1 .ui-state-focus,
841
- .wdform_table1 .ui-widget-content .ui-state-focus,
842
- .wdform_table1 .ui-widget-header .ui-state-focus {
843
- border: 1px solid #999999;
844
- background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
845
- font-weight: normal;
846
- color: #212121;
847
- }
848
- .wdform_table1 .ui-state-hover a,
849
- .wdform_table1 .ui-state-hover a:hover,
850
- .wdform_table1 .ui-state-hover a:link,
851
- .wdform_table1 .ui-state-hover a:visited {
852
- color: #212121;
853
- text-decoration: none;
854
- }
855
- .wdform_table1 .ui-state-active,
856
- .wdform_table1 .ui-widget-content .ui-state-active,
857
- .wdform_table1 .ui-widget-header .ui-state-active {
858
- border: 1px solid #aaaaaa;
859
- background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
860
- font-weight: normal;
861
- color: #212121;
862
- }
863
- .wdform_table1 .ui-state-active a,
864
- .wdform_table1 .ui-state-active a:link,
865
- .wdform_table1 .ui-state-active a:visited {
866
- color: #212121;
867
- text-decoration: none;
868
- }
869
-
870
- /* Interaction Cues
871
- ----------------------------------*/
872
- .wdform_table1 .ui-state-highlight,
873
- .wdform_table1 .ui-widget-content .ui-state-highlight,
874
- .wdform_table1 .ui-widget-header .ui-state-highlight {
875
- border: 1px solid #fcefa1;
876
- background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
877
- color: #363636;
878
- }
879
- .wdform_table1 .ui-state-highlight a,
880
- .wdform_table1 .ui-widget-content .ui-state-highlight a,
881
- .wdform_table1 .ui-widget-header .ui-state-highlight a {
882
- color: #363636;
883
- }
884
- .wdform_table1 .ui-state-error,
885
- .wdform_table1 .ui-widget-content .ui-state-error,
886
- .wdform_table1 .ui-widget-header .ui-state-error {
887
- border: 1px solid #cd0a0a;
888
- background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
889
- color: #cd0a0a;
890
- }
891
- .wdform_table1 .ui-state-error a,
892
- .wdform_table1 .ui-widget-content .ui-state-error a,
893
- .wdform_table1 .ui-widget-header .ui-state-error a {
894
- color: #cd0a0a;
895
- }
896
- .wdform_table1 .ui-state-error-text,
897
- .wdform_table1 .ui-widget-content .ui-state-error-text,
898
- .wdform_table1 .ui-widget-header .ui-state-error-text {
899
- color: #cd0a0a;
900
- }
901
- .wdform_table1 .ui-priority-primary,
902
- .wdform_table1 .ui-widget-content .ui-priority-primary,
903
- .wdform_table1 .ui-widget-header .ui-priority-primary {
904
- font-weight: bold;
905
- }
906
- .wdform_table1 .ui-priority-secondary,
907
- .wdform_table1 .ui-widget-content .ui-priority-secondary,
908
- .wdform_table1 .ui-widget-header .ui-priority-secondary {
909
- opacity: .7;
910
- filter:Alpha(Opacity=70);
911
- font-weight: normal;
912
- }
913
- .wdform_table1 .ui-state-disabled,
914
- .wdform_table1 .ui-widget-content .ui-state-disabled,
915
- .wdform_table1 .ui-widget-header .ui-state-disabled {
916
- opacity: .35;
917
- filter:Alpha(Opacity=35);
918
- background-image: none;
919
- }
920
- .wdform_table1 .ui-state-disabled .ui-icon {
921
- filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
922
- }
923
-
924
- /* Icons
925
- ----------------------------------*/
926
-
927
- /* states and images */
928
- .wdform_table1 .ui-icon {
929
- width: 16px;
930
- height: 16px;
931
- }
932
- .wdform_table1 .ui-icon,
933
- .wdform_table1 .ui-widget-content .ui-icon {
934
- background-image: url(images/ui-icons_222222_256x240.png);
935
- }
936
- .wdform_table1 .ui-widget-header .ui-icon {
937
- background-image: url(images/ui-icons_222222_256x240.png);
938
- }
939
- .wdform_table1 .ui-state-default .ui-icon {
940
- background-image: url(images/ui-icons_888888_256x240.png) !important;
941
- }
942
- .wdform_table1 .ui-state-hover .ui-icon,
943
- .wdform_table1 .ui-state-focus .ui-icon {
944
- background-image: url(images/ui-icons_454545_256x240.png);
945
- }
946
- .wdform_table1 .ui-state-active .ui-icon {
947
- background-image: url(images/ui-icons_454545_256x240.png);
948
- }
949
- .wdform_table1 .ui-state-highlight .ui-icon {
950
- background-image: url(images/ui-icons_2e83ff_256x240.png);
951
- }
952
- .wdform_table1 .ui-state-error .ui-icon,
953
- .wdform_table1 .ui-state-error-text .ui-icon {
954
- background-image: url(images/ui-icons_cd0a0a_256x240.png);
955
- }
956
-
957
- /* positioning */
958
- .wdform_table1 .ui-icon-blank { background-position: 16px 16px; }
959
- .wdform_table1 .ui-icon-carat-1-n { background-position: 0 0; }
960
- .wdform_table1 .ui-icon-carat-1-ne { background-position: -16px 0; }
961
- .wdform_table1 .ui-icon-carat-1-e { background-position: -32px 0; }
962
- .wdform_table1 .ui-icon-carat-1-se { background-position: -48px 0; }
963
- .wdform_table1 .ui-icon-carat-1-s { background-position: -64px 0; }
964
- .wdform_table1 .ui-icon-carat-1-sw { background-position: -80px 0; }
965
- .wdform_table1 .ui-icon-carat-1-w { background-position: -96px 0; }
966
- .wdform_table1 .ui-icon-carat-1-nw { background-position: -112px 0; }
967
- .wdform_table1 .ui-icon-carat-2-n-s { background-position: -128px 0; }
968
- .wdform_table1 .ui-icon-carat-2-e-w { background-position: -144px 0; }
969
- .wdform_table1 .ui-icon-triangle-1-n { background-position: 0 -16px; }
970
- .wdform_table1 .ui-icon-triangle-1-ne { background-position: -16px -16px; }
971
- .wdform_table1 .ui-icon-triangle-1-e { background-position: -32px -16px; }
972
- .wdform_table1 .ui-icon-triangle-1-se { background-position: -48px -16px; }
973
- .wdform_table1 .ui-icon-triangle-1-s { background-position: -64px -16px; }
974
- .wdform_table1 .ui-icon-triangle-1-sw { background-position: -80px -16px; }
975
- .wdform_table1 .ui-icon-triangle-1-w { background-position: -96px -16px; }
976
- .wdform_table1 .ui-icon-triangle-1-nw { background-position: -112px -16px; }
977
- .wdform_table1 .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
978
- .wdform_table1 .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
979
- .wdform_table1 .ui-icon-arrow-1-n { background-position: 0 -32px; }
980
- .wdform_table1 .ui-icon-arrow-1-ne { background-position: -16px -32px; }
981
- .wdform_table1 .ui-icon-arrow-1-e { background-position: -32px -32px; }
982
- .wdform_table1 .ui-icon-arrow-1-se { background-position: -48px -32px; }
983
- .wdform_table1 .ui-icon-arrow-1-s { background-position: -64px -32px; }
984
- .wdform_table1 .ui-icon-arrow-1-sw { background-position: -80px -32px; }
985
- .wdform_table1 .ui-icon-arrow-1-w { background-position: -96px -32px; }
986
- .wdform_table1 .ui-icon-arrow-1-nw { background-position: -112px -32px; }
987
- .wdform_table1 .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
988
- .wdform_table1 .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
989
- .wdform_table1 .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
990
- .wdform_table1 .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
991
- .wdform_table1 .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
992
- .wdform_table1 .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
993
- .wdform_table1 .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
994
- .wdform_table1 .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
995
- .wdform_table1 .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
996
- .wdform_table1 .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
997
- .wdform_table1 .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
998
- .wdform_table1 .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
999
- .wdform_table1 .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1000
- .wdform_table1 .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1001
- .wdform_table1 .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1002
- .wdform_table1 .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1003
- .wdform_table1 .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1004
- .wdform_table1 .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1005
- .wdform_table1 .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1006
- .wdform_table1 .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1007
- .wdform_table1 .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1008
- .wdform_table1 .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1009
- .wdform_table1 .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1010
- .wdform_table1 .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1011
- .wdform_table1 .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1012
- .wdform_table1 .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1013
- .wdform_table1 .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1014
- .wdform_table1 .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1015
- .wdform_table1 .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1016
- .wdform_table1 .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1017
- .wdform_table1 .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1018
- .wdform_table1 .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1019
- .wdform_table1 .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1020
- .wdform_table1 .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1021
- .wdform_table1 .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1022
- .wdform_table1 .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1023
- .wdform_table1 .ui-icon-arrow-4 { background-position: 0 -80px; }
1024
- .wdform_table1 .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1025
- .wdform_table1 .ui-icon-extlink { background-position: -32px -80px; }
1026
- .wdform_table1 .ui-icon-newwin { background-position: -48px -80px; }
1027
- .wdform_table1 .ui-icon-refresh { background-position: -64px -80px; }
1028
- .wdform_table1 .ui-icon-shuffle { background-position: -80px -80px; }
1029
- .wdform_table1 .ui-icon-transfer-e-w { background-position: -96px -80px; }
1030
- .wdform_table1 .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1031
- .wdform_table1 .ui-icon-folder-collapsed { background-position: 0 -96px; }
1032
- .wdform_table1 .ui-icon-folder-open { background-position: -16px -96px; }
1033
- .wdform_table1 .ui-icon-document { background-position: -32px -96px; }
1034
- .wdform_table1 .ui-icon-document-b { background-position: -48px -96px; }
1035
- .wdform_table1 .ui-icon-note { background-position: -64px -96px; }
1036
- .wdform_table1 .ui-icon-mail-closed { background-position: -80px -96px; }
1037
- .wdform_table1 .ui-icon-mail-open { background-position: -96px -96px; }
1038
- .wdform_table1 .ui-icon-suitcase { background-position: -112px -96px; }
1039
- .wdform_table1 .ui-icon-comment { background-position: -128px -96px; }
1040
- .wdform_table1 .ui-icon-person { background-position: -144px -96px; }
1041
- .wdform_table1 .ui-icon-print { background-position: -160px -96px; }
1042
- .wdform_table1 .ui-icon-trash { background-position: -176px -96px; }
1043
- .wdform_table1 .ui-icon-locked { background-position: -192px -96px; }
1044
- .wdform_table1 .ui-icon-unlocked { background-position: -208px -96px; }
1045
- .wdform_table1 .ui-icon-bookmark { background-position: -224px -96px; }
1046
- .wdform_table1 .ui-icon-tag { background-position: -240px -96px; }
1047
- .wdform_table1 .ui-icon-home { background-position: 0 -112px; }
1048
- .wdform_table1 .ui-icon-flag { background-position: -16px -112px; }
1049
- .wdform_table1 .ui-icon-calendar { background-position: -32px -112px; }
1050
- .wdform_table1 .ui-icon-cart { background-position: -48px -112px; }
1051
- .wdform_table1 .ui-icon-pencil { background-position: -64px -112px; }
1052
- .wdform_table1 .ui-icon-clock { background-position: -80px -112px; }
1053
- .wdform_table1 .ui-icon-disk { background-position: -96px -112px; }
1054
- .wdform_table1 .ui-icon-calculator { background-position: -112px -112px; }
1055
- .wdform_table1 .ui-icon-zoomin { background-position: -128px -112px; }
1056
- .wdform_table1 .ui-icon-zoomout { background-position: -144px -112px; }
1057
- .wdform_table1 .ui-icon-search { background-position: -160px -112px; }
1058
- .wdform_table1 .ui-icon-wrench { background-position: -176px -112px; }
1059
- .wdform_table1 .ui-icon-gear { background-position: -192px -112px; }
1060
- .wdform_table1 .ui-icon-heart { background-position: -208px -112px; }
1061
- .wdform_table1 .ui-icon-star { background-position: -224px -112px; }
1062
- .wdform_table1 .ui-icon-link { background-position: -240px -112px; }
1063
- .wdform_table1 .ui-icon-cancel { background-position: 0 -128px; }
1064
- .wdform_table1 .ui-icon-plus { background-position: -16px -128px; }
1065
- .wdform_table1 .ui-icon-plusthick { background-position: -32px -128px; }
1066
- .wdform_table1 .ui-icon-minus { background-position: -48px -128px; }
1067
- .wdform_table1 .ui-icon-minusthick { background-position: -64px -128px; }
1068
- .wdform_table1 .ui-icon-close { background-position: -80px -128px; }
1069
- .wdform_table1 .ui-icon-closethick { background-position: -96px -128px; }
1070
- .wdform_table1 .ui-icon-key { background-position: -112px -128px; }
1071
- .wdform_table1 .ui-icon-lightbulb { background-position: -128px -128px; }
1072
- .wdform_table1 .ui-icon-scissors { background-position: -144px -128px; }
1073
- .wdform_table1 .ui-icon-clipboard { background-position: -160px -128px; }
1074
- .wdform_table1 .ui-icon-copy { background-position: -176px -128px; }
1075
- .wdform_table1 .ui-icon-contact { background-position: -192px -128px; }
1076
- .wdform_table1 .ui-icon-image { background-position: -208px -128px; }
1077
- .wdform_table1 .ui-icon-video { background-position: -224px -128px; }
1078
- .wdform_table1 .ui-icon-script { background-position: -240px -128px; }
1079
- .wdform_table1 .ui-icon-alert { background-position: 0 -144px; }
1080
- .wdform_table1 .ui-icon-info { background-position: -16px -144px; }
1081
- .wdform_table1 .ui-icon-notice { background-position: -32px -144px; }
1082
- .wdform_table1 .ui-icon-help { background-position: -48px -144px; }
1083
- .wdform_table1 .ui-icon-check { background-position: -64px -144px; }
1084
- .wdform_table1 .ui-icon-bullet { background-position: -80px -144px; }
1085
- .wdform_table1 .ui-icon-radio-on { background-position: -96px -144px; }
1086
- .wdform_table1 .ui-icon-radio-off { background-position: -112px -144px; }
1087
- .wdform_table1 .ui-icon-pin-w { background-position: -128px -144px; }
1088
- .wdform_table1 .ui-icon-pin-s { background-position: -144px -144px; }
1089
- .wdform_table1 .ui-icon-play { background-position: 0 -160px; }
1090
- .wdform_table1 .ui-icon-pause { background-position: -16px -160px; }
1091
- .wdform_table1 .ui-icon-seek-next { background-position: -32px -160px; }
1092
- .wdform_table1 .ui-icon-seek-prev { background-position: -48px -160px; }
1093
- .wdform_table1 .ui-icon-seek-end { background-position: -64px -160px; }
1094
- .wdform_table1 .ui-icon-seek-start { background-position: -80px -160px; }
1095
- /* .wdform_table1 ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1096
- .wdform_table1 .ui-icon-seek-first { background-position: -80px -160px; }
1097
- .wdform_table1 .ui-icon-stop { background-position: -96px -160px; }
1098
- .wdform_table1 .ui-icon-eject { background-position: -112px -160px; }
1099
- .wdform_table1 .ui-icon-volume-off { background-position: -128px -160px; }
1100
- .wdform_table1 .ui-icon-volume-on { background-position: -144px -160px; }
1101
- .wdform_table1 .ui-icon-power { background-position: 0 -176px; }
1102
- .wdform_table1 .ui-icon-signal-diag { background-position: -16px -176px; }
1103
- .wdform_table1 .ui-icon-signal { background-position: -32px -176px; }
1104
- .wdform_table1 .ui-icon-battery-0 { background-position: -48px -176px; }
1105
- .wdform_table1 .ui-icon-battery-1 { background-position: -64px -176px; }
1106
- .wdform_table1 .ui-icon-battery-2 { background-position: -80px -176px; }
1107
- .wdform_table1 .ui-icon-battery-3 { background-position: -96px -176px; }
1108
- .wdform_table1 .ui-icon-circle-plus { background-position: 0 -192px; }
1109
- .wdform_table1 .ui-icon-circle-minus { background-position: -16px -192px; }
1110
- .wdform_table1 .ui-icon-circle-close { background-position: -32px -192px; }
1111
- .wdform_table1 .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1112
- .wdform_table1 .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1113
- .wdform_table1 .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1114
- .wdform_table1 .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1115
- .wdform_table1 .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1116
- .wdform_table1 .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1117
- .wdform_table1 .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1118
- .wdform_table1 .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1119
- .wdform_table1 .ui-icon-circle-zoomin { background-position: -176px -192px; }
1120
- .wdform_table1 .ui-icon-circle-zoomout { background-position: -192px -192px; }
1121
- .wdform_table1 .ui-icon-circle-check { background-position: -208px -192px; }
1122
- .wdform_table1 .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1123
- .wdform_table1 .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1124
- .wdform_table1 .ui-icon-circlesmall-close { background-position: -32px -208px; }
1125
- .wdform_table1 .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1126
- .wdform_table1 .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1127
- .wdform_table1 .ui-icon-squaresmall-close { background-position: -80px -208px; }
1128
- .wdform_table1 .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1129
- .wdform_table1 .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1130
- .wdform_table1 .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1131
- .wdform_table1 .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1132
- .wdform_table1 .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1133
- .wdform_table1 .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1134
-
1135
-
1136
- /* Misc visuals
1137
- ----------------------------------*/
1138
-
1139
- /* Corner radius */
1140
- .wdform_table1 .ui-corner-all,
1141
- .wdform_table1 .ui-corner-top,
1142
- .wdform_table1 .ui-corner-left,
1143
- .wdform_table1 .ui-corner-tl {
1144
- border-top-left-radius: 4px;
1145
- }
1146
- .wdform_table1 .ui-corner-all,
1147
- .wdform_table1 .ui-corner-top,
1148
- .wdform_table1 .ui-corner-right,
1149
- .wdform_table1 .ui-corner-tr {
1150
- border-top-right-radius: 4px;
1151
- }
1152
- .wdform_table1 .ui-corner-all,
1153
- .wdform_table1 .ui-corner-bottom,
1154
- .wdform_table1 .ui-corner-left,
1155
- .wdform_table1 .ui-corner-bl {
1156
- border-bottom-left-radius: 4px;
1157
- }
1158
- .wdform_table1 .ui-corner-all,
1159
- .wdform_table1 .ui-corner-bottom,
1160
- .wdform_table1 .ui-corner-right,
1161
- .wdform_table1 .ui-corner-br {
1162
- border-bottom-right-radius: 4px;
1163
- }
1164
-
1165
- /* Overlays */
1166
- .wdform_table1 .ui-widget-overlay {
1167
- background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1168
- opacity: .3;
1169
- filter: Alpha(Opacity=30);
1170
- }
1171
- .wdform_table1 .ui-widget-shadow {
1172
- margin: -8px 0 0 -8px;
1173
- padding: 8px;
1174
- background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1175
- opacity: .3;
1176
- filter: Alpha(Opacity=30);
1177
- border-radius: 8px;
1178
- }
1
+ /*! jQuery UI - v1.10.3 - 2013-05-03
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .wdform-field .ui-spinner-input {
10
+ background-color: #FFFFFF;
11
+ height: 30px !important;
12
+ }
13
+ .wdform_table1 .ui-helper-hidden {
14
+ display: none;
15
+ }
16
+ .wdform_table1 .ui-helper-hidden-accessible {
17
+ border: 0;
18
+ clip: rect(0 0 0 0);
19
+ height: 1px;
20
+ margin: -1px;
21
+ overflow: hidden;
22
+ padding: 0;
23
+ position: absolute;
24
+ width: 1px;
25
+ }
26
+ .wdform_table1 .ui-helper-reset {
27
+ margin: 0;
28
+ padding: 0;
29
+ border: 0;
30
+ outline: 0;
31
+ line-height: 1.3;
32
+ text-decoration: none;
33
+ font-size: 100%;
34
+ list-style: none;
35
+ }
36
+ .wdform_table1 .ui-helper-clearfix:before,
37
+ .wdform_table1 .ui-helper-clearfix:after {
38
+ content: "";
39
+ display: table;
40
+ border-collapse: collapse;
41
+ }
42
+ .wdform_table1 .ui-helper-clearfix:after {
43
+ clear: both;
44
+ }
45
+ .wdform_table1 .ui-helper-clearfix {
46
+ min-height: 0; /* support: IE7 */
47
+ }
48
+ .wdform_table1 .ui-helper-zfix {
49
+ width: 100%;
50
+ height: 100%;
51
+ top: 0;
52
+ left: 0;
53
+ position: absolute;
54
+ opacity: 0;
55
+ filter:Alpha(Opacity=0);
56
+ }
57
+ .wdform_table1 .ui-front {
58
+ z-index: 100;
59
+ }
60
+
61
+
62
+ /* Interaction Cues
63
+ ----------------------------------*/
64
+ .wdform_table1 .ui-state-disabled {
65
+ cursor: default !important;
66
+ }
67
+
68
+
69
+ /* Icons
70
+ ----------------------------------*/
71
+
72
+ /* states and images */
73
+ .wdform_table1 .ui-icon {
74
+ display: block;
75
+ text-indent: -99999px;
76
+ overflow: hidden;
77
+ background-repeat: no-repeat;
78
+ }
79
+
80
+
81
+ /* Misc visuals
82
+ ----------------------------------*/
83
+
84
+ /* Overlays */
85
+ .wdform_table1 .ui-widget-overlay {
86
+ position: fixed;
87
+ top: 0;
88
+ left: 0;
89
+ width: 100%;
90
+ height: 100%;
91
+ }
92
+ .wdform_table1 .ui-accordion .ui-accordion-header {
93
+ display: block;
94
+ cursor: pointer;
95
+ position: relative;
96
+ margin-top: 2px;
97
+ padding: .5em .5em .5em .7em;
98
+ min-height: 0; /* support: IE7 */
99
+ }
100
+ .wdform_table1 .ui-accordion .ui-accordion-icons {
101
+ padding-left: 2.2em;
102
+ }
103
+ .wdform_table1 .ui-accordion .ui-accordion-noicons {
104
+ padding-left: .7em;
105
+ }
106
+ .wdform_table1 .ui-accordion .ui-accordion-icons .ui-accordion-icons {
107
+ padding-left: 2.2em;
108
+ }
109
+ .wdform_table1 .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
110
+ position: absolute;
111
+ left: .5em;
112
+ top: 50%;
113
+ margin-top: -8px;
114
+ }
115
+ .wdform_table1 .ui-accordion .ui-accordion-content {
116
+ padding: 1em 2.2em;
117
+ border-top: 0;
118
+ overflow: auto;
119
+ }
120
+ .wdform_table1 .ui-autocomplete {
121
+ position: absolute;
122
+ top: 0;
123
+ left: 0;
124
+ cursor: default;
125
+ }
126
+ .wdform_table1 .ui-button {
127
+ display: inline-block;
128
+ position: relative;
129
+ padding: 0;
130
+ line-height: normal;
131
+ margin-right: .1em;
132
+ cursor: pointer;
133
+ vertical-align: middle;
134
+ text-align: center;
135
+ overflow: visible; /* removes extra width in IE */
136
+ }
137
+ .wdform_table1 .ui-button,
138
+ .ui-button:link,
139
+ .ui-button:visited,
140
+ .ui-button:hover,
141
+ .ui-button:active {
142
+ text-decoration: none;
143
+ }
144
+ /* to make room for the icon, a width needs to be set here */
145
+ .wdform_table1 .ui-button-icon-only {
146
+ width: 2.2em;
147
+ }
148
+ /* button elements seem to need a little more width */
149
+ .wdform_table1 button.ui-button-icon-only {
150
+ width: 2.4em;
151
+ }
152
+ .wdform_table1 .ui-button-icons-only {
153
+ width: 3.4em;
154
+ }
155
+ .wdform_table1 button.ui-button-icons-only {
156
+ width: 3.7em;
157
+ }
158
+
159
+ /* button text element */
160
+ .wdform_table1 .ui-button .ui-button-text {
161
+ display: block;
162
+ line-height: normal;
163
+ }
164
+ .wdform_table1 .ui-button-text-only .ui-button-text {
165
+ padding: .4em 1em;
166
+ }
167
+ .wdform_table1 .ui-button-icon-only .ui-button-text,
168
+ .wdform_table1 .ui-button-icons-only .ui-button-text {
169
+ padding: .4em;
170
+ text-indent: -9999999px;
171
+ }
172
+ .wdform_table1 .ui-button-text-icon-primary .ui-button-text,
173
+ .wdform_table1 .ui-button-text-icons .ui-button-text {
174
+ padding: .4em 1em .4em 2.1em;
175
+ }
176
+ .wdform_table1 .ui-button-text-icon-secondary .ui-button-text,
177
+ .wdform_table1 .ui-button-text-icons .ui-button-text {
178
+ padding: .4em 2.1em .4em 1em;
179
+ }
180
+ .wdform_table1 .ui-button-text-icons .ui-button-text {
181
+ padding-left: 2.1em;
182
+ padding-right: 2.1em;
183
+ }
184
+ /* no icon support for input elements, provide padding by default */
185
+ .wdform_table1 input.ui-button {
186
+ padding: .4em 1em;
187
+ }
188
+
189
+ /* button icon element(s) */
190
+ .wdform_table1 .ui-button-icon-only .ui-icon,
191
+ .wdform_table1 .ui-button-text-icon-primary .ui-icon,
192
+ .wdform_table1 .ui-button-text-icon-secondary .ui-icon,
193
+ .wdform_table1 .ui-button-text-icons .ui-icon,
194
+ .wdform_table1 .ui-button-icons-only .ui-icon {
195
+ position: absolute;
196
+ top: 50%;
197
+ margin-top: -8px;
198
+ }
199
+ .wdform_table1 .ui-button-icon-only .ui-icon {
200
+ left: 50%;
201
+ margin-left: -8px;
202
+ }
203
+ .wdform_table1 .ui-button-text-icon-primary .ui-button-icon-primary,
204
+ .wdform_table1 .ui-button-text-icons .ui-button-icon-primary,
205
+ .wdform_table1 .ui-button-icons-only .ui-button-icon-primary {
206
+ left: .5em;
207
+ }
208
+ .wdform_table1 .ui-button-text-icon-secondary .ui-button-icon-secondary,
209
+ .wdform_table1 .ui-button-text-icons .ui-button-icon-secondary,
210
+ .wdform_table1 .ui-button-icons-only .ui-button-icon-secondary {
211
+ right: .5em;
212
+ }
213
+
214
+ /* button sets */
215
+ .wdform_table1 .ui-buttonset {
216
+ margin-right: 7px;
217
+ }
218
+ .wdform_table1 .ui-buttonset .ui-button {
219
+ margin-left: 0;
220
+ margin-right: -.3em;
221
+ }
222
+
223
+ /* workarounds */
224
+ /* reset extra padding in Firefox, see h5bp.com/l */
225
+ .wdform_table1 input.ui-button::-moz-focus-inner,
226
+ .wdform_table1 button.ui-button::-moz-focus-inner {
227
+ border: 0;
228
+ padding: 0;
229
+ }
230
+ .wdform_table1 .ui-datepicker {
231
+ width: 17em;
232
+ padding: .2em .2em 0;
233
+ display: none;
234
+ }
235
+ .wdform_table1 .ui-datepicker .ui-datepicker-header {
236
+ position: relative;
237
+ padding: .2em 0;
238
+ }
239
+ .wdform_table1 .ui-datepicker .ui-datepicker-prev,
240
+ .wdform_table1 .ui-datepicker .ui-datepicker-next {
241
+ position: absolute;
242
+ top: 2px;
243
+ width: 1.8em;
244
+ height: 1.8em;
245
+ }
246
+ .wdform_table1 .ui-datepicker .ui-datepicker-prev-hover,
247
+ .wdform_table1 .ui-datepicker .ui-datepicker-next-hover {
248
+ top: 1px;
249
+ }
250
+ .wdform_table1 .ui-datepicker .ui-datepicker-prev {
251
+ left: 2px;
252
+ }
253
+ .wdform_table1 .ui-datepicker .ui-datepicker-next {
254
+ right: 2px;
255
+ }
256
+ .wdform_table1 .ui-datepicker .ui-datepicker-prev-hover {
257
+ left: 1px;
258
+ }
259
+ .wdform_table1 .ui-datepicker .ui-datepicker-next-hover {
260
+ right: 1px;
261
+ }
262
+ .wdform_table1 .ui-datepicker .ui-datepicker-prev span,
263
+ .ui-datepicker .ui-datepicker-next span {
264
+ display: block;
265
+ position: absolute;
266
+ left: 50%;
267
+ margin-left: -8px;
268
+ top: 50%;
269
+ margin-top: -8px;
270
+ }
271
+ .wdform_table1 .ui-datepicker .ui-datepicker-title {
272
+ margin: 0 2.3em;
273
+ line-height: 1.8em;
274
+ text-align: center;
275
+ }
276
+ .wdform_table1 .ui-datepicker .ui-datepicker-title select {
277
+ font-size: 1em;
278
+ margin: 1px 0;
279
+ }
280
+ .wdform_table1 .ui-datepicker select.ui-datepicker-month-year {
281
+ width: 100%;
282
+ }
283
+ .wdform_table1 .ui-datepicker select.ui-datepicker-month,
284
+ .wdform_table1 .ui-datepicker select.ui-datepicker-year {
285
+ width: 49%;
286
+ }
287
+ .wdform_table1 .ui-datepicker table {
288
+ width: 100%;
289
+ font-size: .9em;
290
+ border-collapse: collapse;
291
+ margin: 0 0 .4em;
292
+ }
293
+ .wdform_table1 .ui-datepicker th {
294
+ padding: .7em .3em;
295
+ text-align: center;
296
+ font-weight: bold;
297
+ border: 0;
298
+ }
299
+ .wdform_table1 .ui-datepicker td {
300
+ border: 0;
301
+ padding: 1px;
302
+ }
303
+ .wdform_table1 .ui-datepicker td span,
304
+ .wdform_table1 .ui-datepicker td a {
305
+ display: block;
306
+ padding: .2em;
307
+ text-align: right;
308
+ text-decoration: none;
309
+ }
310
+ .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane {
311
+ background-image: none;
312
+ margin: .7em 0 0 0;
313
+ padding: 0 .2em;
314
+ border-left: 0;
315
+ border-right: 0;
316
+ border-bottom: 0;
317
+ }
318
+ .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane button {
319
+ float: right;
320
+ margin: .5em .2em .4em;
321
+ cursor: pointer;
322
+ padding: .2em .6em .3em .6em;
323
+ width: auto;
324
+ overflow: visible;
325
+ }
326
+ .wdform_table1 .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
327
+ float: left;
328
+ }
329
+
330
+ /* with multiple calendars */
331
+ .wdform_table1 .ui-datepicker.ui-datepicker-multi {
332
+ width: auto;
333
+ }
334
+ .wdform_table1 .ui-datepicker-multi .ui-datepicker-group {
335
+ float: left;
336
+ }
337
+ .wdform_table1 .ui-datepicker-multi .ui-datepicker-group table {
338
+ width: 95%;
339
+ margin: 0 auto .4em;
340
+ }
341
+ .wdform_table1 .ui-datepicker-multi-2 .ui-datepicker-group {
342
+ width: 50%;
343
+ }
344
+ .wdform_table1 .ui-datepicker-multi-3 .ui-datepicker-group {
345
+ width: 33.3%;
346
+ }
347
+ .wdform_table1 .ui-datepicker-multi-4 .ui-datepicker-group {
348
+ width: 25%;
349
+ }
350
+ .wdform_table1 .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
351
+ .wdform_table1 .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
352
+ border-left-width: 0;
353
+ }
354
+ .wdform_table1 .ui-datepicker-multi .ui-datepicker-buttonpane {
355
+ clear: left;
356
+ }
357
+ .wdform_table1 .ui-datepicker-row-break {
358
+ clear: both;
359
+ width: 100%;
360
+ font-size: 0;
361
+ }
362
+
363
+ /* RTL support */
364
+ .wdform_table1 .ui-datepicker-rtl {
365
+ direction: rtl;
366
+ }
367
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-prev {
368
+ right: 2px;
369
+ left: auto;
370
+ }
371
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-next {
372
+ left: 2px;
373
+ right: auto;
374
+ }
375
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-prev:hover {
376
+ right: 1px;
377
+ left: auto;
378
+ }
379
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-next:hover {
380
+ left: 1px;
381
+ right: auto;
382
+ }
383
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane {
384
+ clear: right;
385
+ }
386
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane button {
387
+ float: left;
388
+ }
389
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
390
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group {
391
+ float: right;
392
+ }
393
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
394
+ .wdform_table1 .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
395
+ border-right-width: 0;
396
+ border-left-width: 1px;
397
+ }
398
+ .wdform_table1 .ui-dialog {
399
+ position: absolute;
400
+ top: 0;
401
+ left: 0;
402
+ padding: .2em;
403
+ outline: 0;
404
+ }
405
+ .wdform_table1 .ui-dialog .ui-dialog-titlebar {
406
+ padding: .4em 1em;
407
+ position: relative;
408
+ }
409
+ .wdform_table1 .ui-dialog .ui-dialog-title {
410
+ float: left;
411
+ margin: .1em 0;
412
+ white-space: nowrap;
413
+ width: 90%;
414
+ overflow: hidden;
415
+ text-overflow: ellipsis;
416
+ }
417
+ .wdform_table1 .ui-dialog .ui-dialog-titlebar-close {
418
+ position: absolute;
419
+ right: .3em;
420
+ top: 50%;
421
+ width: 21px;
422
+ margin: -10px 0 0 0;
423
+ padding: 1px;
424
+ height: 20px;
425
+ }
426
+ .wdform_table1 .ui-dialog .ui-dialog-content {
427
+ position: relative;
428
+ border: 0;
429
+ padding: .5em 1em;
430
+ background: none;
431
+ overflow: auto;
432
+ }
433
+ .wdform_table1 .ui-dialog .ui-dialog-buttonpane {
434
+ text-align: left;
435
+ border-width: 1px 0 0 0;
436
+ background-image: none;
437
+ margin-top: .5em;
438
+ padding: .3em 1em .5em .4em;
439
+ }
440
+ .wdform_table1 .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
441
+ float: right;
442
+ }
443
+ .wdform_table1 .ui-dialog .ui-dialog-buttonpane button {
444
+ margin: .5em .4em .5em 0;
445
+ cursor: pointer;
446
+ }
447
+ .wdform_table1 .ui-dialog .ui-resizable-se {
448
+ width: 12px;
449
+ height: 12px;
450
+ right: -5px;
451
+ bottom: -5px;
452
+ background-position: 16px 16px;
453
+ }
454
+ .wdform_table1 .ui-draggable .ui-dialog-titlebar {
455
+ cursor: move;
456
+ }
457
+ .wdform_table1 .ui-menu {
458
+ list-style: none;
459
+ padding: 2px;
460
+ margin: 0;
461
+ display: block;
462
+ outline: none;
463
+ }
464
+ .wdform_table1 .ui-menu .ui-menu {
465
+ margin-top: -3px;
466
+ position: absolute;
467
+ }
468
+ .wdform_table1 .ui-menu .ui-menu-item {
469
+ margin: 0;
470
+ padding: 0;
471
+ width: 100%;
472
+ /* support: IE10, see #8844 */
473
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
474
+ }
475
+ .wdform_table1 .ui-menu .ui-menu-divider {
476
+ margin: 5px -2px 5px -2px;
477
+ height: 0;
478
+ font-size: 0;
479
+ line-height: 0;
480
+ border-width: 1px 0 0 0;
481
+ }
482
+ .wdform_table1 .ui-menu .ui-menu-item a {
483
+ text-decoration: none;
484
+ display: block;
485
+ padding: 2px .4em;
486
+ line-height: 1.5;
487
+ min-height: 0; /* support: IE7 */
488
+ font-weight: normal;
489
+ }
490
+ .wdform_table1 .ui-menu .ui-menu-item a.ui-state-focus,
491
+ .wdform_table1 .ui-menu .ui-menu-item a.ui-state-active {
492
+ font-weight: normal;
493
+ margin: -1px;
494
+ }
495
+
496
+ .wdform_table1 .ui-menu .ui-state-disabled {
497
+ font-weight: normal;
498
+ margin: .4em 0 .2em;
499
+ line-height: 1.5;
500
+ }
501
+ .wdform_table1 .ui-menu .ui-state-disabled a {
502
+ cursor: default;
503
+ }
504
+
505
+ /* icon support */
506
+ .wdform_table1 .ui-menu-icons {
507
+ position: relative;
508
+ }
509
+ .wdform_table1 .ui-menu-icons .ui-menu-item a {
510
+ position: relative;
511
+ padding-left: 2em;
512
+ }
513
+
514
+ /* left-aligned */
515
+ .wdform_table1 .ui-menu .ui-icon {
516
+ position: absolute;
517
+ top: .2em;
518
+ left: .2em;
519
+ }
520
+
521
+ /* right-aligned */
522
+ .wdform_table1 .ui-menu .ui-menu-icon {
523
+ position: static;
524
+ float: right;
525
+ }
526
+ .wdform_table1 .ui-progressbar {
527
+ height: 2em;
528
+ text-align: left;
529
+ overflow: hidden;
530
+ }
531
+ .wdform_table1 .ui-progressbar .ui-progressbar-value {
532
+ margin: -1px;
533
+ height: 100%;
534
+ }
535
+ .wdform_table1 .ui-progressbar .ui-progressbar-overlay {
536
+ background: url("images/animated-overlay.gif");
537
+ height: 100%;
538
+ filter: alpha(opacity=25);
539
+ opacity: 0.25;
540
+ }
541
+ .wdform_table1 .ui-progressbar-indeterminate .ui-progressbar-value {
542
+ background-image: none;
543
+ }
544
+ .wdform_table1 .ui-resizable {
545
+ position: relative;
546
+ }
547
+ .wdform_table1 .ui-resizable-handle {
548
+ position: absolute;
549
+ font-size: 0.1px;
550
+ display: block;
551
+ }
552
+ .wdform_table1 .ui-resizable-disabled .ui-resizable-handle,
553
+ .wdform_table1 .ui-resizable-autohide .ui-resizable-handle {
554
+ display: none;
555
+ }
556
+ .wdform_table1 .ui-resizable-n {
557
+ cursor: n-resize;
558
+ height: 7px;
559
+ width: 100%;
560
+ top: -5px;
561
+ left: 0;
562
+ }
563
+ .wdform_table1 .ui-resizable-s {
564
+ cursor: s-resize;
565
+ height: 7px;
566
+ width: 100%;
567
+ bottom: -5px;
568
+ left: 0;
569
+ }
570
+ .wdform_table1 .ui-resizable-e {
571
+ cursor: e-resize;
572
+ width: 7px;
573
+ right: -5px;
574
+ top: 0;
575
+ height: 100%;
576
+ }
577
+ .wdform_table1 .ui-resizable-w {
578
+ cursor: w-resize;
579
+ width: 7px;
580
+ left: -5px;
581
+ top: 0;
582
+ height: 100%;
583
+ }
584
+ .wdform_table1 .ui-resizable-se {
585
+ cursor: se-resize;
586
+ width: 12px;
587
+ height: 12px;
588
+ right: 1px;
589
+ bottom: 1px;
590
+ }
591
+ .wdform_table1 .ui-resizable-sw {
592
+ cursor: sw-resize;
593
+ width: 9px;
594
+ height: 9px;
595
+ left: -5px;
596
+ bottom: -5px;
597
+ }
598
+ .wdform_table1 .ui-resizable-nw {
599
+ cursor: nw-resize;
600
+ width: 9px;
601
+ height: 9px;
602
+ left: -5px;
603
+ top: -5px;
604
+ }
605
+ .wdform_table1 .ui-resizable-ne {
606
+ cursor: ne-resize;
607
+ width: 9px;
608
+ height: 9px;
609
+ right: -5px;
610
+ top: -5px;
611
+ }
612
+ .wdform_table1 .ui-selectable-helper {
613
+ position: absolute;
614
+ z-index: 100;
615
+ border: 1px dotted black;
616
+ }
617
+ .wdform_table1 .ui-slider {
618
+ position: relative;
619
+ text-align: left;
620
+ }
621
+ .wdform_table1 .ui-slider .ui-slider-handle {
622
+ position: absolute;
623
+ z-index: 2;
624
+ width: 1.2em;
625
+ height: 1.2em;
626
+ cursor: default;
627
+ }
628
+ .wdform_table1 .ui-slider .ui-slider-range {
629
+ position: absolute;
630
+ z-index: 1;
631
+ font-size: .7em;
632
+ display: block;
633
+ border: 0;
634
+ background-position: 0 0;
635
+ }
636
+
637
+ /* For IE8 - See #6727 */
638
+ .wdform_table1 .ui-slider.ui-state-disabled .ui-slider-handle,
639
+ .wdform_table1 .ui-slider.ui-state-disabled .ui-slider-range {
640
+ filter: inherit;
641
+ }
642
+ .wdform_table1 .ui-slider-horizontal {
643
+ height: .8em;
644
+ }
645
+ .wdform_table1 .ui-slider-horizontal .ui-slider-handle {
646
+ top: -.3em;
647
+ margin-left: -.6em;
648
+ }
649
+ .wdform_table1 .ui-slider-horizontal .ui-slider-range {
650
+ top: 0;
651
+ height: 100%;
652
+ }
653
+ .wdform_table1 .ui-slider-horizontal .ui-slider-range-min {
654
+ left: 0;
655
+ }
656
+ .wdform_table1 .ui-slider-horizontal .ui-slider-range-max {
657
+ right: 0;
658
+ }
659
+
660
+ .wdform_table1 .ui-slider-vertical {
661
+ width: .8em;
662
+ height: 100px;
663
+ }
664
+ .wdform_table1 .ui-slider-vertical .ui-slider-handle {
665
+ left: -.3em;
666
+ margin-left: 0;
667
+ margin-bottom: -.6em;
668
+ }
669
+ .wdform_table1 .ui-slider-vertical .ui-slider-range {
670
+ left: 0;
671
+ width: 100%;
672
+ }
673
+ .wdform_table1 .ui-slider-vertical .ui-slider-range-min {
674
+ bottom: 0;
675
+ }
676
+ .wdform_table1 .ui-slider-vertical .ui-slider-range-max {
677
+ top: 0;
678
+ }
679
+ .wdform_table1 .ui-spinner {
680
+ position: relative;
681
+ display: inline-block;
682
+ overflow: hidden;
683
+ padding: 0;
684
+ vertical-align: middle;
685
+ }
686
+ .wdform_table1 .ui-spinner-input {
687
+ border: none;
688
+ background: none;
689
+ color: inherit;
690
+ padding: .2em 0 !important;
691
+ vertical-align: middle;
692
+ padding-left: .4em !important;
693
+ padding-right: 22px !important;
694
+ }
695
+ .wdform_table1 .ui-spinner-button {
696
+ width: 16px;
697
+ height: 50%;
698
+ font-size: .5em;
699
+ padding: 0;
700
+ margin: 0;
701
+ text-align: center;
702
+ position: absolute;
703
+ cursor: default;
704
+ display: block;
705
+ overflow: hidden;
706
+ right: 0;
707
+ }
708
+ /* more specificity required here to overide default borders */
709
+ .wdform_table1 .ui-spinner a.ui-spinner-button {
710
+ border-top: none;
711
+ border-bottom: none;
712
+ border-right: none;
713
+ }
714
+ /* vertical centre icon */
715
+ .wdform_table1 .ui-spinner .ui-icon {
716
+ position: absolute;
717
+ margin-top: -8px;
718
+ top: 50%;
719
+ left: 0;
720
+ }
721
+ .wdform_table1 .ui-spinner-up {
722
+ top: 0;
723
+ }
724
+ .wdform_table1 .ui-spinner-down {
725
+ bottom: 0;
726
+ }
727
+
728
+ /* TR overrides */
729
+ .wdform_table1 .ui-spinner .ui-icon-triangle-1-s {
730
+ /* need to fix icons sprite */
731
+ background-position: -65px -16px;
732
+ }
733
+ .wdform_table1 .ui-tabs {
734
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
735
+ padding: .2em;
736
+ }
737
+ .wdform_table1 .ui-tabs .ui-tabs-nav {
738
+ margin: 0;
739
+ padding: .2em .2em 0;
740
+ }
741
+ .wdform_table1 .ui-tabs .ui-tabs-nav li {
742
+ list-style: none;
743
+ float: left;
744
+ position: relative;
745
+ top: 0;
746
+ margin: 1px .2em 0 0;
747
+ border-bottom-width: 0;
748
+ padding: 0;
749
+ white-space: nowrap;
750
+ }
751
+ .wdform_table1 .ui-tabs .ui-tabs-nav li a {
752
+ float: left;
753
+ padding: .5em 1em;
754
+ text-decoration: none;
755
+ }
756
+ .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-active {
757
+ margin-bottom: -1px;
758
+ padding-bottom: 1px;
759
+ }
760
+ .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
761
+ .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
762
+ .wdform_table1 .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
763
+ cursor: text;
764
+ }
765
+ .wdform_table1 .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
766
+ .wdform_table1 .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
767
+ cursor: pointer;
768
+ }
769
+ .wdform_table1 .ui-tabs .ui-tabs-panel {
770
+ display: block;
771
+ border-width: 0;
772
+ padding: 1em 1.4em;
773
+ background: none;
774
+ }
775
+ .wdform_table1 .ui-tooltip {
776
+ padding: 8px;
777
+ position: absolute;
778
+ z-index: 9999;
779
+ max-width: 300px;
780
+ -webkit-box-shadow: 0 0 5px #aaa;
781
+ box-shadow: 0 0 5px #aaa;
782
+ }
783
+ .wdform_table1 body .ui-tooltip {
784
+ border-width: 2px;
785
+ }
786
+
787
+ /* Component containers
788
+ ----------------------------------*/
789
+ .wdform_table1 .ui-widget {
790
+ font-family: Verdana,Arial,sans-serif;
791
+ font-size: 1.1em;
792
+ }
793
+ .wdform_table1 .ui-widget .ui-widget {
794
+ font-size: 1em;
795
+ }
796
+ .wdform_table1 .ui-widget input,
797
+ .wdform_table1 .ui-widget select,
798
+ .wdform_table1 .ui-widget textarea,
799
+ .wdform_table1 .ui-widget button {
800
+ font-family: Verdana,Arial,sans-serif;
801
+ font-size: 1em;
802
+ }
803
+ .wdform_table1 .ui-widget-content {
804
+ border: 1px solid #aaaaaa;
805
+ background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
806
+ color: #222222;
807
+ }
808
+ .wdform_table1 .ui-widget-content a {
809
+ color: #222222;
810
+ }
811
+ .wdform_table1 .ui-widget-header {
812
+ border: 1px solid #aaaaaa;
813
+ background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
814
+ color: #222222;
815
+ font-weight: bold;
816
+ }
817
+ .wdform_table1 .ui-widget-header a {
818
+ color: #222222;
819
+ }
820
+
821
+ /* Interaction states
822
+ ----------------------------------*/
823
+ .wdform_table1 .ui-state-default,
824
+ .wdform_table1 .ui-widget-content .ui-state-default,
825
+ .wdform_table1 .ui-widget-header .ui-state-default {
826
+ border: 1px solid #d3d3d3;
827
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
828
+ font-weight: normal;
829
+ color: #555555;
830
+ }
831
+ .wdform_table1 .ui-state-default a,
832
+ .wdform_table1 .ui-state-default a:link,
833
+ .wdform_table1 .ui-state-default a:visited {
834
+ color: #555555;
835
+ text-decoration: none;
836
+ }
837
+ .wdform_table1 .ui-state-hover,
838
+ .wdform_table1 .ui-widget-content .ui-state-hover,
839
+ .wdform_table1 .ui-widget-header .ui-state-hover,
840
+ .wdform_table1 .ui-state-focus,
841
+ .wdform_table1 .ui-widget-content .ui-state-focus,
842
+ .wdform_table1 .ui-widget-header .ui-state-focus {
843
+ border: 1px solid #999999;
844
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
845
+ font-weight: normal;
846
+ color: #212121;
847
+ }
848
+ .wdform_table1 .ui-state-hover a,
849
+ .wdform_table1 .ui-state-hover a:hover,
850
+ .wdform_table1 .ui-state-hover a:link,
851
+ .wdform_table1 .ui-state-hover a:visited {
852
+ color: #212121;
853
+ text-decoration: none;
854
+ }
855
+ .wdform_table1 .ui-state-active,
856
+ .wdform_table1 .ui-widget-content .ui-state-active,
857
+ .wdform_table1 .ui-widget-header .ui-state-active {
858
+ border: 1px solid #aaaaaa;
859
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
860
+ font-weight: normal;
861
+ color: #212121;
862
+ }
863
+ .wdform_table1 .ui-state-active a,
864
+ .wdform_table1 .ui-state-active a:link,
865
+ .wdform_table1 .ui-state-active a:visited {
866
+ color: #212121;
867
+ text-decoration: none;
868
+ }
869
+
870
+ /* Interaction Cues
871
+ ----------------------------------*/
872
+ .wdform_table1 .ui-state-highlight,
873
+ .wdform_table1 .ui-widget-content .ui-state-highlight,
874
+ .wdform_table1 .ui-widget-header .ui-state-highlight {
875
+ border: 1px solid #fcefa1;
876
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
877
+ color: #363636;
878
+ }
879
+ .wdform_table1 .ui-state-highlight a,
880
+ .wdform_table1 .ui-widget-content .ui-state-highlight a,
881
+ .wdform_table1 .ui-widget-header .ui-state-highlight a {
882
+ color: #363636;
883
+ }
884
+ .wdform_table1 .ui-state-error,
885
+ .wdform_table1 .ui-widget-content .ui-state-error,
886
+ .wdform_table1 .ui-widget-header .ui-state-error {
887
+ border: 1px solid #cd0a0a;
888
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
889
+ color: #cd0a0a;
890
+ }
891
+ .wdform_table1 .ui-state-error a,
892
+ .wdform_table1 .ui-widget-content .ui-state-error a,
893
+ .wdform_table1 .ui-widget-header .ui-state-error a {
894
+ color: #cd0a0a;
895
+ }
896
+ .wdform_table1 .ui-state-error-text,
897
+ .wdform_table1 .ui-widget-content .ui-state-error-text,
898
+ .wdform_table1 .ui-widget-header .ui-state-error-text {
899
+ color: #cd0a0a;
900
+ }
901
+ .wdform_table1 .ui-priority-primary,
902
+ .wdform_table1 .ui-widget-content .ui-priority-primary,
903
+ .wdform_table1 .ui-widget-header .ui-priority-primary {
904
+ font-weight: bold;
905
+ }
906
+ .wdform_table1 .ui-priority-secondary,
907
+ .wdform_table1 .ui-widget-content .ui-priority-secondary,
908
+ .wdform_table1 .ui-widget-header .ui-priority-secondary {
909
+ opacity: .7;
910
+ filter:Alpha(Opacity=70);
911
+ font-weight: normal;
912
+ }
913
+ .wdform_table1 .ui-state-disabled,
914
+ .wdform_table1 .ui-widget-content .ui-state-disabled,
915
+ .wdform_table1 .ui-widget-header .ui-state-disabled {
916
+ opacity: .35;
917
+ filter:Alpha(Opacity=35);
918
+ background-image: none;
919
+ }
920
+ .wdform_table1 .ui-state-disabled .ui-icon {
921
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
922
+ }
923
+
924
+ /* Icons
925
+ ----------------------------------*/
926
+
927
+ /* states and images */
928
+ .wdform_table1 .ui-icon {
929
+ width: 16px;
930
+ height: 16px;
931
+ }
932
+ .wdform_table1 .ui-icon,
933
+ .wdform_table1 .ui-widget-content .ui-icon {
934
+ background-image: url(images/ui-icons_222222_256x240.png);
935
+ }
936
+ .wdform_table1 .ui-widget-header .ui-icon {
937
+ background-image: url(images/ui-icons_222222_256x240.png);
938
+ }
939
+ .wdform_table1 .ui-state-default .ui-icon {
940
+ background-image: url(images/ui-icons_888888_256x240.png) !important;
941
+ }
942
+ .wdform_table1 .ui-state-hover .ui-icon,
943
+ .wdform_table1 .ui-state-focus .ui-icon {
944
+ background-image: url(images/ui-icons_454545_256x240.png);
945
+ }
946
+ .wdform_table1 .ui-state-active .ui-icon {
947
+ background-image: url(images/ui-icons_454545_256x240.png);
948
+ }
949
+ .wdform_table1 .ui-state-highlight .ui-icon {
950
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
951
+ }
952
+ .wdform_table1 .ui-state-error .ui-icon,
953
+ .wdform_table1 .ui-state-error-text .ui-icon {
954
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
955
+ }
956
+
957
+ /* positioning */
958
+ .wdform_table1 .ui-icon-blank { background-position: 16px 16px; }
959
+ .wdform_table1 .ui-icon-carat-1-n { background-position: 0 0; }
960
+ .wdform_table1 .ui-icon-carat-1-ne { background-position: -16px 0; }
961
+ .wdform_table1 .ui-icon-carat-1-e { background-position: -32px 0; }
962
+ .wdform_table1 .ui-icon-carat-1-se { background-position: -48px 0; }
963
+ .wdform_table1 .ui-icon-carat-1-s { background-position: -64px 0; }
964
+ .wdform_table1 .ui-icon-carat-1-sw { background-position: -80px 0; }
965
+ .wdform_table1 .ui-icon-carat-1-w { background-position: -96px 0; }
966
+ .wdform_table1 .ui-icon-carat-1-nw { background-position: -112px 0; }
967
+ .wdform_table1 .ui-icon-carat-2-n-s { background-position: -128px 0; }
968
+ .wdform_table1 .ui-icon-carat-2-e-w { background-position: -144px 0; }
969
+ .wdform_table1 .ui-icon-triangle-1-n { background-position: 0 -16px; }
970
+ .wdform_table1 .ui-icon-triangle-1-ne { background-position: -16px -16px; }
971
+ .wdform_table1 .ui-icon-triangle-1-e { background-position: -32px -16px; }
972
+ .wdform_table1 .ui-icon-triangle-1-se { background-position: -48px -16px; }
973
+ .wdform_table1 .ui-icon-triangle-1-s { background-position: -64px -16px; }
974
+ .wdform_table1 .ui-icon-triangle-1-sw { background-position: -80px -16px; }
975
+ .wdform_table1 .ui-icon-triangle-1-w { background-position: -96px -16px; }
976
+ .wdform_table1 .ui-icon-triangle-1-nw { background-position: -112px -16px; }
977
+ .wdform_table1 .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
978
+ .wdform_table1 .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
979
+ .wdform_table1 .ui-icon-arrow-1-n { background-position: 0 -32px; }
980
+ .wdform_table1 .ui-icon-arrow-1-ne { background-position: -16px -32px; }
981
+ .wdform_table1 .ui-icon-arrow-1-e { background-position: -32px -32px; }
982
+ .wdform_table1 .ui-icon-arrow-1-se { background-position: -48px -32px; }
983
+ .wdform_table1 .ui-icon-arrow-1-s { background-position: -64px -32px; }
984
+ .wdform_table1 .ui-icon-arrow-1-sw { background-position: -80px -32px; }
985
+ .wdform_table1 .ui-icon-arrow-1-w { background-position: -96px -32px; }
986
+ .wdform_table1 .ui-icon-arrow-1-nw { background-position: -112px -32px; }
987
+ .wdform_table1 .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
988
+ .wdform_table1 .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
989
+ .wdform_table1 .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
990
+ .wdform_table1 .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
991
+ .wdform_table1 .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
992
+ .wdform_table1 .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
993
+ .wdform_table1 .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
994
+ .wdform_table1 .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
995
+ .wdform_table1 .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
996
+ .wdform_table1 .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
997
+ .wdform_table1 .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
998
+ .wdform_table1 .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
999
+ .wdform_table1 .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1000
+ .wdform_table1 .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1001
+ .wdform_table1 .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1002
+ .wdform_table1 .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1003
+ .wdform_table1 .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1004
+ .wdform_table1 .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1005
+ .wdform_table1 .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1006
+ .wdform_table1 .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1007
+ .wdform_table1 .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1008
+ .wdform_table1 .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1009
+ .wdform_table1 .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1010
+ .wdform_table1 .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1011
+ .wdform_table1 .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1012
+ .wdform_table1 .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1013
+ .wdform_table1 .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1014
+ .wdform_table1 .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1015
+ .wdform_table1 .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1016
+ .wdform_table1 .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1017
+ .wdform_table1 .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1018
+ .wdform_table1 .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1019
+ .wdform_table1 .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1020
+ .wdform_table1 .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1021
+ .wdform_table1 .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1022
+ .wdform_table1 .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1023
+ .wdform_table1 .ui-icon-arrow-4 { background-position: 0 -80px; }
1024
+ .wdform_table1 .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1025
+ .wdform_table1 .ui-icon-extlink { background-position: -32px -80px; }
1026
+ .wdform_table1 .ui-icon-newwin { background-position: -48px -80px; }
1027
+ .wdform_table1 .ui-icon-refresh { background-position: -64px -80px; }
1028
+ .wdform_table1 .ui-icon-shuffle { background-position: -80px -80px; }
1029
+ .wdform_table1 .ui-icon-transfer-e-w { background-position: -96px -80px; }
1030
+ .wdform_table1 .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1031
+ .wdform_table1 .ui-icon-folder-collapsed { background-position: 0 -96px; }
1032
+ .wdform_table1 .ui-icon-folder-open { background-position: -16px -96px; }
1033
+ .wdform_table1 .ui-icon-document { background-position: -32px -96px; }
1034
+ .wdform_table1 .ui-icon-document-b { background-position: -48px -96px; }
1035
+ .wdform_table1 .ui-icon-note { background-position: -64px -96px; }
1036
+ .wdform_table1 .ui-icon-mail-closed { background-position: -80px -96px; }
1037
+ .wdform_table1 .ui-icon-mail-open { background-position: -96px -96px; }
1038
+ .wdform_table1 .ui-icon-suitcase { background-position: -112px -96px; }
1039
+ .wdform_table1 .ui-icon-comment { background-position: -128px -96px; }
1040
+ .wdform_table1 .ui-icon-person { background-position: -144px -96px; }
1041
+ .wdform_table1 .ui-icon-print { background-position: -160px -96px; }
1042
+ .wdform_table1 .ui-icon-trash { background-position: -176px -96px; }
1043
+ .wdform_table1 .ui-icon-locked { background-position: -192px -96px; }
1044
+ .wdform_table1 .ui-icon-unlocked { background-position: -208px -96px; }
1045
+ .wdform_table1 .ui-icon-bookmark { background-position: -224px -96px; }
1046
+ .wdform_table1 .ui-icon-tag { background-position: -240px -96px; }
1047
+ .wdform_table1 .ui-icon-home { background-position: 0 -112px; }
1048
+ .wdform_table1 .ui-icon-flag { background-position: -16px -112px; }
1049
+ .wdform_table1 .ui-icon-calendar { background-position: -32px -112px; }
1050
+ .wdform_table1 .ui-icon-cart { background-position: -48px -112px; }
1051
+ .wdform_table1 .ui-icon-pencil { background-position: -64px -112px; }
1052
+ .wdform_table1 .ui-icon-clock { background-position: -80px -112px; }
1053
+ .wdform_table1 .ui-icon-disk { background-position: -96px -112px; }
1054
+ .wdform_table1 .ui-icon-calculator { background-position: -112px -112px; }
1055
+ .wdform_table1 .ui-icon-zoomin { background-position: -128px -112px; }
1056
+ .wdform_table1 .ui-icon-zoomout { background-position: -144px -112px; }
1057
+ .wdform_table1 .ui-icon-search { background-position: -160px -112px; }
1058
+ .wdform_table1 .ui-icon-wrench { background-position: -176px -112px; }
1059
+ .wdform_table1 .ui-icon-gear { background-position: -192px -112px; }
1060
+ .wdform_table1 .ui-icon-heart { background-position: -208px -112px; }
1061
+ .wdform_table1 .ui-icon-star { background-position: -224px -112px; }
1062
+ .wdform_table1 .ui-icon-link { background-position: -240px -112px; }
1063
+ .wdform_table1 .ui-icon-cancel { background-position: 0 -128px; }
1064
+ .wdform_table1 .ui-icon-plus { background-position: -16px -128px; }
1065
+ .wdform_table1 .ui-icon-plusthick { background-position: -32px -128px; }
1066
+ .wdform_table1 .ui-icon-minus { background-position: -48px -128px; }
1067
+ .wdform_table1 .ui-icon-minusthick { background-position: -64px -128px; }
1068
+ .wdform_table1 .ui-icon-close { background-position: -80px -128px; }
1069
+ .wdform_table1 .ui-icon-closethick { background-position: -96px -128px; }
1070
+ .wdform_table1 .ui-icon-key { background-position: -112px -128px; }
1071
+ .wdform_table1 .ui-icon-lightbulb { background-position: -128px -128px; }
1072
+ .wdform_table1 .ui-icon-scissors { background-position: -144px -128px; }
1073
+ .wdform_table1 .ui-icon-clipboard { background-position: -160px -128px; }
1074
+ .wdform_table1 .ui-icon-copy { background-position: -176px -128px; }
1075
+ .wdform_table1 .ui-icon-contact { background-position: -192px -128px; }
1076
+ .wdform_table1 .ui-icon-image { background-position: -208px -128px; }
1077
+ .wdform_table1 .ui-icon-video { background-position: -224px -128px; }
1078
+ .wdform_table1 .ui-icon-script { background-position: -240px -128px; }
1079
+ .wdform_table1 .ui-icon-alert { background-position: 0 -144px; }
1080
+ .wdform_table1 .ui-icon-info { background-position: -16px -144px; }
1081
+ .wdform_table1 .ui-icon-notice { background-position: -32px -144px; }
1082
+ .wdform_table1 .ui-icon-help { background-position: -48px -144px; }
1083
+ .wdform_table1 .ui-icon-check { background-position: -64px -144px; }
1084
+ .wdform_table1 .ui-icon-bullet { background-position: -80px -144px; }
1085
+ .wdform_table1 .ui-icon-radio-on { background-position: -96px -144px; }
1086
+ .wdform_table1 .ui-icon-radio-off { background-position: -112px -144px; }
1087
+ .wdform_table1 .ui-icon-pin-w { background-position: -128px -144px; }
1088
+ .wdform_table1 .ui-icon-pin-s { background-position: -144px -144px; }
1089
+ .wdform_table1 .ui-icon-play { background-position: 0 -160px; }
1090
+ .wdform_table1 .ui-icon-pause { background-position: -16px -160px; }
1091
+ .wdform_table1 .ui-icon-seek-next { background-position: -32px -160px; }
1092
+ .wdform_table1 .ui-icon-seek-prev { background-position: -48px -160px; }
1093
+ .wdform_table1 .ui-icon-seek-end { background-position: -64px -160px; }
1094
+ .wdform_table1 .ui-icon-seek-start { background-position: -80px -160px; }
1095
+ /* .wdform_table1 ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1096
+ .wdform_table1 .ui-icon-seek-first { background-position: -80px -160px; }
1097
+ .wdform_table1 .ui-icon-stop { background-position: -96px -160px; }
1098
+ .wdform_table1 .ui-icon-eject { background-position: -112px -160px; }
1099
+ .wdform_table1 .ui-icon-volume-off { background-position: -128px -160px; }
1100
+ .wdform_table1 .ui-icon-volume-on { background-position: -144px -160px; }
1101
+ .wdform_table1 .ui-icon-power { background-position: 0 -176px; }
1102
+ .wdform_table1 .ui-icon-signal-diag { background-position: -16px -176px; }
1103
+ .wdform_table1 .ui-icon-signal { background-position: -32px -176px; }
1104
+ .wdform_table1 .ui-icon-battery-0 { background-position: -48px -176px; }
1105
+ .wdform_table1 .ui-icon-battery-1 { background-position: -64px -176px; }
1106
+ .wdform_table1 .ui-icon-battery-2 { background-position: -80px -176px; }
1107
+ .wdform_table1 .ui-icon-battery-3 { background-position: -96px -176px; }
1108
+ .wdform_table1 .ui-icon-circle-plus { background-position: 0 -192px; }
1109
+ .wdform_table1 .ui-icon-circle-minus { background-position: -16px -192px; }
1110
+ .wdform_table1 .ui-icon-circle-close { background-position: -32px -192px; }
1111
+ .wdform_table1 .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1112
+ .wdform_table1 .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1113
+ .wdform_table1 .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1114
+ .wdform_table1 .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1115
+ .wdform_table1 .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1116
+ .wdform_table1 .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1117
+ .wdform_table1 .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1118
+ .wdform_table1 .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1119
+ .wdform_table1 .ui-icon-circle-zoomin { background-position: -176px -192px; }
1120
+ .wdform_table1 .ui-icon-circle-zoomout { background-position: -192px -192px; }
1121
+ .wdform_table1 .ui-icon-circle-check { background-position: -208px -192px; }
1122
+ .wdform_table1 .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1123
+ .wdform_table1 .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1124
+ .wdform_table1 .ui-icon-circlesmall-close { background-position: -32px -208px; }
1125
+ .wdform_table1 .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1126
+ .wdform_table1 .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1127
+ .wdform_table1 .ui-icon-squaresmall-close { background-position: -80px -208px; }
1128
+ .wdform_table1 .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1129
+ .wdform_table1 .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1130
+ .wdform_table1 .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1131
+ .wdform_table1 .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1132
+ .wdform_table1 .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1133
+ .wdform_table1 .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1134
+
1135
+
1136
+ /* Misc visuals
1137
+ ----------------------------------*/
1138
+
1139
+ /* Corner radius */
1140
+ .wdform_table1 .ui-corner-all,
1141
+ .wdform_table1 .ui-corner-top,
1142
+ .wdform_table1 .ui-corner-left,
1143
+ .wdform_table1 .ui-corner-tl {
1144
+ border-top-left-radius: 4px;
1145
+ }
1146
+ .wdform_table1 .ui-corner-all,
1147
+ .wdform_table1 .ui-corner-top,
1148
+ .wdform_table1 .ui-corner-right,
1149
+ .wdform_table1 .ui-corner-tr {
1150
+ border-top-right-radius: 4px;
1151
+ }
1152
+ .wdform_table1 .ui-corner-all,
1153
+ .wdform_table1 .ui-corner-bottom,
1154
+ .wdform_table1 .ui-corner-left,
1155
+ .wdform_table1 .ui-corner-bl {
1156
+ border-bottom-left-radius: 4px;
1157
+ }
1158
+ .wdform_table1 .ui-corner-all,
1159
+ .wdform_table1 .ui-corner-bottom,
1160
+ .wdform_table1 .ui-corner-right,
1161
+ .wdform_table1 .ui-corner-br {
1162
+ border-bottom-right-radius: 4px;
1163
+ }
1164
+
1165
+ /* Overlays */
1166
+ .wdform_table1 .ui-widget-overlay {
1167
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1168
+ opacity: .3;
1169
+ filter: Alpha(Opacity=30);
1170
+ }
1171
+ .wdform_table1 .ui-widget-shadow {
1172
+ margin: -8px 0 0 -8px;
1173
+ padding: 8px;
1174
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1175
+ opacity: .3;
1176
+ filter: Alpha(Opacity=30);
1177
+ border-radius: 8px;
1178
+ }
featured/admin.css CHANGED
@@ -1,737 +1,737 @@
1
- /**
2
- * Admin CSS file
3
- */
4
- #fm-tabs > div{
5
- display:none;
6
- }
7
- #fm-settings{
8
- background: #ffffff;
9
- padding: 15px;
10
- }
11
- .fm-meta-control {
12
- margin-bottom: 15px;
13
- }
14
-
15
- .fm-meta-control label {
16
- display: block;
17
- font-weight: bold;
18
- }
19
-
20
- #fm-admin-promo {
21
- background-color: #fcf8e3;
22
- border: 1px solid #faebbe;
23
- color: #8a6d3b;
24
- padding: 15px;
25
- }
26
-
27
- #fm_event_meta .inside code {
28
- word-break: break-all;
29
- }
30
-
31
- .border{
32
- border: 1px solid red;
33
- }
34
-
35
- /*Spider events*/
36
- .fm_repeat_type_list{
37
- float: left;
38
- width: 30%;
39
- }
40
- .fm_repeat_advanced{
41
- float: left;
42
- width: 68%;
43
- }
44
- #fm_choose_day_container div label{
45
- width: 120px;
46
- display: inline-block;
47
- }
48
- #fm_choose_day_container div label:after{
49
- clear: both;
50
- }
51
- #fm_choose_day_container div label input{
52
- float: right;
53
- margin: 1px;
54
- }
55
- .fm_icon{
56
- max-width: 64px;
57
- max-height: 64px;
58
- }
59
-
60
- .fm-modal .fm-calendar-event,
61
- .fm-events .fm-calendar-event{
62
- width:47%;
63
- display: inline-block;
64
- margin:0 20px 10px 0;
65
- }
66
-
67
- .fm-events .fm-calendar-event{
68
- width:42%;
69
- }
70
- .fm-modal .fm-calendar-event span:first-child,
71
- .fm-events .fm-calendar-event span:first-child{
72
- border: 1px solid #C8C8C8;
73
- display: inline-block;
74
- width: 89%;
75
- box-sizing: border-box;
76
- padding: 2px 2px 2px 7px;
77
- color: #7C7C7C;
78
- white-space: nowrap;
79
- text-overflow: ellipsis;
80
- overflow: hidden;
81
- float: left;
82
- }
83
-
84
- .fm-events .fm-calendar-event span:first-child{
85
- width: 81%;
86
- }
87
- .fm-modal .fm-calendar-event:nth-child(even){
88
- margin-right:0;
89
- }
90
-
91
- .fm-events .fm-calendar-event:after{
92
- clear: both;
93
- }
94
-
95
- .fm-modal .fm-calendar-event .fm-calendar-event-add,
96
- .fm-events .fm-calendar-event-delete{
97
- display: inline-block;
98
- text-align: center;
99
- float: left;
100
- vertical-align: middle;
101
- border-radius: 2px;
102
- height: 24px;
103
- width: 24px;
104
- color: #FFFFff;
105
- background-color: #0074A2;
106
- cursor: pointer;
107
- font-size: 19px;
108
- }
109
-
110
-
111
- .fm-events .fm-calendar-event-edit{
112
-
113
- }
114
- .fm-events .fm-calendar-event-edit a{
115
- font-size: 0;
116
- display: inline-block;
117
- float: left;
118
- margin: 0 1px;
119
- border-radius: 2px;
120
- height: 24px;
121
- width: 24px;
122
- background: url("../images/edit_icon.png") no-repeat center center;
123
- }
124
- .fm-events .fm-calendar-event-delete{
125
- line-height: 20px;
126
- }
127
-
128
- .fm-calendar-event-add {
129
- cursor: pointer;
130
- }
131
-
132
- .fm-modal {
133
- position: fixed;
134
- font-family: Arial, Helvetica, sans-serif;
135
- overflow-y: scroll;
136
- top: 0;
137
- right: 0;
138
- bottom: 0;
139
- left: 0;
140
- background: rgba(0, 0, 0, 0.8);
141
- z-index: 99999;
142
- opacity:0;
143
- -webkit-transition: opacity 400ms ease-in;
144
- -moz-transition: opacity 400ms ease-in;
145
- transition: opacity 400ms ease-in;
146
- pointer-events: none;
147
- }
148
- .fm-modal:target {
149
- opacity:1;
150
- pointer-events: auto;
151
- }
152
- .fm-modal > div.fm-excluded-events {
153
- width: 500px !important;
154
- position: relative;
155
- margin: 10% auto;
156
- padding: 0px 20px 16px 20px !important;
157
- border-radius: 1px;
158
- background: #fff;
159
- }
160
- .fm-modal > div.fm-preview {
161
- position: relative;
162
- margin: 5%;
163
- padding: 5px 20px 13px 20px;
164
- border-radius: 1px;
165
- background: #fff;
166
- min-width:600px;
167
- }
168
-
169
- .fm-close {
170
- background: url(../images/close.png);
171
- display: inline-block;
172
- position: absolute;
173
- right: 0px;
174
- height: 29px;
175
- top: 0px;
176
- width: 29px;
177
- text-decoration: none;
178
- z-index: 4;
179
- }
180
-
181
- .fm-excluded-events h2{
182
- margin: 15px 0;
183
- padding-bottom: 15px !important;
184
- border-bottom: 1px solid #B2B2B2;
185
- }
186
-
187
- .wd_stay_active {
188
- background: none repeat scroll 0% 0% green !important;
189
- box-shadow: 0px 1px 3px 0px #178FE5 inset !important;
190
- color: #FFF !important;
191
- font-weight: 700 !important;
192
- }
193
- #fm_event_pickup_date, #fm_event_pickup_time {
194
- height: 27px;
195
- border: 1px solid #A1A1A1;
196
- border-radius: 0;
197
- font-size: 13px;
198
- color: #444444;
199
- padding: 0 5px 0 27px;
200
- margin-top: 1px;
201
- }
202
-
203
- #fm_event_pickup_date {
204
- background:url(../images/admin_day.jpg) no-repeat left;
205
- margin: 1px 8px;
206
- }
207
- #fm_event_pickup_time {
208
- background:url(../images/admin_time.jpg) no-repeat left;
209
- }
210
-
211
- /*TABS*/
212
- #fm-tabs, #fm-tabs div{
213
- background: none #ffffff;
214
- border: 0;
215
- }
216
- .fm-tabs{
217
- list-style-type: none;
218
- }
219
- .fm-tabs li,
220
- #fm-settings-content .nav-tab-wrapper a{
221
- display: inline-block;
222
- border: 1px solid #A5A5A5;
223
- }
224
- .fm-tabs li a,
225
- #fm-settings-content .nav-tab-wrapper a{
226
- display: table-cell;
227
- text-align: center;
228
- width: 100px;
229
- height: 30px;
230
- vertical-align: middle;
231
- text-decoration:none;
232
- color:#5E5E5E;
233
- font-size: 16px;
234
- }
235
-
236
- #fm-settings-content .nav-tab-wrapper a{
237
- background: #ffffff;
238
- height: 21px;
239
- margin-right: 4px;
240
- display: inline-block;
241
- font-weight: normal;
242
- padding-top: 2px;
243
- }
244
-
245
- .fm-tabs li a:focus{
246
- box-shadow:none;
247
- }
248
- .fm-tabs li:hover a,.fm-tabs li.ui-state-active a,
249
- #fm-settings-content .nav-tab-wrapper a:hover,#fm-settings-content .nav-tab-wrapper a.nav-tab-active{
250
- color:#ffffff;
251
- background: #0074A2;
252
- }
253
-
254
- #fm-settings-content .nav-tab-wrapper {
255
- border-bottom:0;
256
- padding-left: 0;
257
- }
258
-
259
- .fm-tabs li:hover,.fm-tabs li.ui-state-active,
260
- #fm-settings-content .nav-tab-wrapper a.nav-tab-active{
261
- border: 1px solid transparent;
262
- }
263
-
264
- .fm-tab-inner{
265
- padding: 15px;
266
- }
267
-
268
- /*Preview */
269
- .ui-selecting { background: #FECA40 !important; }
270
- .ui-selected { background: #F39814 !important;}
271
-
272
- .event_cal_add {
273
- width: 350px;
274
- height: 130px;
275
- padding: 40px 20px 0;
276
- border: 1px solid #cccccc;
277
- position: absolute;
278
- z-index: 9999;
279
- background: #ffffff;
280
- }
281
- .event_cal_add .close{
282
- display: block;
283
- line-height: 18px;
284
- width: 20px;
285
- font-size: 8pt;
286
- margin-top: 1px;
287
- margin-right: 1px;
288
- position: absolute;
289
- font-family: tahoma;
290
- text-align: center;
291
- top: 0;
292
- right: 0;
293
- cursor: pointer;
294
- background-size: contain;
295
- height: 20px;
296
- }
297
-
298
- .event_cal_add .add_event_to_cal{
299
- display: block;
300
- cursor: pointer;
301
- padding-bottom: 10px;
302
- margin: 25px 0 0 0;
303
- width: 78px;
304
- text-align: center;
305
- line-height: 30px;
306
- height: 20px;
307
- background: #e3e3e3;
308
- border: 1px solid #eeeeee;
309
- }
310
- .event_cal_add .fm_notification{
311
- display: block;
312
- height: 20px;
313
- margin: 25px 0 0 0;
314
- }
315
- span.fm_error{
316
- color: #bc0b0b;
317
- display: block;
318
- padding-left: 36px;
319
- height: 20px;
320
-
321
- }
322
- #fm_calendar_meta h3.hndle{
323
- color:#0074A2;
324
- text-transform:uppercase;
325
- font-size: 17px;
326
- }
327
- #fm-settings a.button{
328
- border: 1px solid #A1A1A1;
329
- padding: 0px 15px;
330
- box-shadow: none;
331
- border-radius: 0;
332
- color: #000;
333
- font-weight: bold;
334
- }
335
- #fm-settings a.button:hover{
336
- border: 1px solid transparent;
337
- color: #fff;
338
- background: #0074A2;
339
- }
340
- #fm-settings input[type="text"],
341
- #fm-settings select,
342
- #fm_theme_meta input[type="text"]:not(#fm_event_location),
343
- #fm_calendar_meta input[type="text"]:not(.fm-search),
344
- #fm_calendar_meta select,
345
- #fm_event_meta input[type="text"]:not(#fm_event_date_from):not(#fm_event_date_to):not(#fm_event_location),
346
- #fm_event_meta select,
347
- #fm_event_meta #fm_event_year_month,
348
- #fm-settings .form-field input, #fm-settings input.regular-text{
349
- width:250px;
350
- border: 1px solid #A1A1A1;
351
- }
352
- #fm_event_date_from,#fm_event_date_to{
353
- border: 1px solid #A1A1A1;
354
- }
355
-
356
- #fm-settings input[type="checkbox"],
357
- #fm_event_meta input[type="checkbox"],
358
- #fm-settings input[type="radio"]{
359
- position: absolute;
360
- z-index: -1;
361
- margin: 0 !important;
362
- width: 5px !important;
363
- height: 5px !important;
364
- min-width: 5px !important;
365
- }
366
-
367
-
368
- #fm-settings .checkbox-div,
369
- #fm_event_meta .checkbox-div{
370
- width: 13px;
371
- height: 12px;
372
- background: #FDFDFD;
373
- border: 1px solid #CBCBCB;
374
- border-radius: 0px;
375
- position: relative;
376
- display: inline-block;
377
- top: 2px;
378
- margin-right: 7px;
379
- margin-left: 15px;
380
- box-sizing: content-box;
381
- -webkit-box-sizing: content-box;
382
- -moz-box-sizing: content-box;
383
- }
384
- #fm-settings .checkbox-div:first-child{
385
- margin-left: 0px;
386
- }
387
-
388
- #fm-settings .checkbox-div input[type="checkbox"]:checked + label ,
389
- #fm_event_meta .checkbox-div input[type="checkbox"]:checked + label ,
390
- #fm-settings .checkbox-div input[type="radio"]:checked + label {
391
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
392
- filter: alpha(opacity=100);
393
- opacity: 1;
394
- background: #CBCBCB;
395
- position: absolute;
396
- top: 2px;
397
- }
398
-
399
- #fm-settings input[type="submit"] {
400
- background: #0074A2;
401
- color: #ffffff;
402
- font-weight: bold;
403
- font-size: 15px;
404
- border: 0;
405
- border-radius: 0;
406
- padding: 5px 25px;
407
- height: auto;
408
- }
409
-
410
-
411
- #fm_event_meta .checkbox-div label,
412
- #fm-settings .checkbox-div label {
413
- cursor: pointer;
414
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
415
- filter: alpha(opacity=0);
416
- opacity: 0;
417
- content: "";
418
- position: absolute;
419
- width: 9px;
420
- height: 8px;
421
- background: #CBCBCB;
422
- border-radius: 0px;
423
- top: 2px;
424
- left: 2px;
425
- }
426
-
427
- #fm_calendar_meta .add_event_plus{
428
- display:inline-block;
429
- width:18px;
430
- height:18px;
431
- border-radius:100%;
432
- background:#0074A2;
433
- color:#ffffff;
434
- text-shadow:1px -1px 2px #005C82;
435
- margin-left:8px;
436
- text-align:center;
437
- font-weight: bold;
438
- font-size: 15px;
439
- line-height: 17px;
440
- }
441
- #fm_calendar_meta .fm-calendar-event-add a:focus{
442
- box-shadow:none;
443
- }
444
- #fm_event_meta .repeat_format{
445
- width: 90px;
446
- display: inline-block;
447
- }
448
- #fm_event_meta .repeat_format_monthly{
449
- width: 66px;
450
- display: inline-block;
451
- }
452
- #fm_event_meta #fm_event_year_month{
453
- margin: 10px 0 0 95px;
454
- }
455
- #fm_event_meta #fm_choose_day_container{
456
- margin-top: 10px;
457
- }
458
- #fm_event_meta #fm_choose_day_container .checkbox-div{
459
- margin-left: 0px;
460
- }
461
- #fm_event_meta .fm_repeat_advanced input[type="text"],
462
- #fm_event_meta .fm_repeat_advanced select{
463
- width: auto;
464
- }
465
-
466
- #fm_event_meta #fm_monthly,
467
- #fm_event_meta .fm_event_repeat_event_div{
468
- margin:10px 0;
469
- }
470
-
471
- #fm_event_meta .select_to_enable_disable{
472
- width:122px !important;
473
- }
474
-
475
- #fm_theme_meta label{
476
- display:inline-block;
477
- width:290px;
478
- font-weight: normal;
479
- font-size: 15px;
480
- }
481
-
482
- #fm_theme_meta .fm-tab-inner > div{
483
- margin:20px 0;
484
- }
485
- #fm_theme_meta .fm-tab-inner > div:first-child{
486
- margin-top:0;
487
- }
488
- #fm_theme_meta .with_fm_color:after,
489
- #fm-settings-content .fm-addons_updates:after,
490
- #fm-settings-content .main-plugin:after,
491
- #fm-settings-content:after{
492
- content:'';
493
- display:table;
494
- clear:both;
495
- }
496
- #fm_theme_meta .with_fm_color label{
497
- float: left;
498
- margin-top: 5px;
499
- width: 293px;
500
- }
501
- #fm_theme_meta .with_fm_color > div{
502
- float: left;
503
- }
504
- .fm-import-settings form{
505
- float:left;
506
- width:45%;
507
- }
508
- .fm-import-settings input[type=file]{
509
- margin: 10px 0;
510
- }
511
- .fm-import-settings .fm-calendar-event-import{
512
- font-size: 15px;
513
- }
514
-
515
- #fm-settings-content #add_on_title{
516
- margin-bottom:20px;
517
- }
518
-
519
- #fm-settings-content .fm_coming_soon {
520
- position: absolute;
521
- top: 44px;
522
- left: 0;
523
- }
524
- #fm-settings-content .fm-add-on a{
525
- text-decoration: none;
526
- }
527
- #fm-settings-content .fm-add-on h2{
528
- color: #229DBF;
529
- font-size: 16px;
530
- margin-bottom: 9px;
531
- padding: 0 0 7px;
532
- line-height: 1.2;
533
- }
534
- #fm-settings-content .fm-addon-descr{
535
- font-size: 13px;
536
- line-height: 18px;
537
- height: 100%;
538
- width: 53%;
539
- opacity: 0;
540
- position: absolute;
541
- top: 0;
542
- left: 0;
543
- padding: 8px 10px 10px;
544
- background: #23282D;
545
- color: #D1DDE0;
546
- -webkit-backface-visibility: hidden;
547
- -moz-backface-visibility: hidden;
548
- backface-visibility: hidden;
549
- -webkit-transform-origin: 0 0;
550
- -moz-transform-origin: 0 0;
551
- transform-origin: 0 0;
552
- -webkit-transform: rotateY(-90deg);
553
- -moz-transform: rotateY(-90deg);
554
- transform: rotateY(-90deg);
555
- -webkit-transition: -webkit-transform 0.4s, opacity 0.1s 0.3s;
556
- -moz-transition: -moz-transform 0.4s, opacity 0.1s 0.3s;
557
- transition: transform 0.4s, opacity 0.1s 0.3s;
558
- box-sizing: border-box;
559
- -webkit-box-sizing: border-box;
560
- -moz-box-sizing: border-box;
561
- }
562
- .grid figcaption {
563
- position: absolute;
564
- top: 0;
565
- left: 0;
566
- padding: 20px;
567
- background: #2c3f52;
568
- color: #ed4e6e;
569
- }
570
- #fm-settings-content .fm-addon,
571
- #fm-settings-content .fm-addon-price{
572
- display: inline-block;
573
- margin-top: 15px;
574
- font-size: 15px;
575
- border: 1px solid #DCDCDC;
576
- font-weight: bold;
577
- }
578
- #fm-settings-content .fm-addon{
579
- background: #FFFFFF url(../images/Add_Ons.jpg) no-repeat 6px center;
580
- color: #66686B;
581
- padding: 9px 12px 9px 45px;
582
- width: 100%;
583
- box-sizing: border-box;
584
- -webkit-box-sizing: border-box;
585
- -moz-box-sizing: border-box;
586
- }
587
- #fm-settings-content .fm-addon-price{
588
- background: #FFFFFF;
589
- color: #229CBF;
590
- padding: 9px 12px;
591
- }
592
- #fm-settings-content .fm-add-on:hover .fm-addon-price,
593
- #fm-settings-content .fm-addon-price:hover{
594
- background: #229CBF;
595
- color: #DDECF1;
596
- }
597
- #fm-settings-content .fm-add-on:hover .fm-addon,
598
- #fm-settings-content .fm-addon:hover{
599
- background: #23282D url(../images/Add_Ons_hover.jpg) no-repeat 6px center;
600
- color: #DDDEDE;
601
- }
602
- #fm-settings-content .fm-addon span{
603
- border-left: 1px solid #A7A9AB;
604
- padding: 4px 10px 4px 10px;
605
- }
606
- #fm-settings-content .fm-addon-descr span{
607
- padding: 5px 0 5px 10px;
608
- border-left: 1px solid #93CEE0;
609
- }
610
- #fm-settings-content a:focus{
611
- outline:none;
612
- box-shadow:none;
613
- }
614
- #fm-settings-content .fm-add-on{
615
- width:310px;
616
- float:left;
617
- margin-right:40px;
618
- margin-bottom:57px;
619
- -webkit-perspective: 1700px;
620
- -moz-perspective: 1700px;
621
- perspective: 1700px;
622
- -webkit-perspective-origin: 0 50%;
623
- -moz-perspective-origin: 0 50%;
624
- perspective-origin: 0 50%;
625
- position: relative;
626
- }
627
- #fm-settings-content .main-plugin .fm-add-on{
628
- float: left;
629
- margin-right: 25px;
630
- height: auto;
631
- }
632
- #fm-settings-content .fm-figure{
633
- -webkit-transform-style: preserve-3d;
634
- -moz-transform-style: preserve-3d;
635
- transform-style: preserve-3d;
636
- position: relative;
637
- width:100%;
638
- height: 232px;
639
- margin: 0;
640
- }
641
- #fm-settings-content .fm-figure-img{
642
- overflow: hidden;
643
- }
644
- #fm-settings-content .fm-figure-img img{
645
- -webkit-transition: -webkit-transform 0.4s;
646
- -moz-transition: -moz-transform 0.4s;
647
- transition: transform 0.4s;
648
- }
649
- #fm-settings-content .fm-figure:hover img{
650
- -webkit-transform: translateX(25%);
651
- -moz-transform: translateX(25%);
652
- -ms-transform: translateX(25%);
653
- transform: translateX(25%);
654
- }
655
- #fm-settings-content .fm-figure:hover figcaption{
656
- opacity: 1;
657
- -webkit-transform: rotateY(0deg);
658
- -moz-transform: rotateY(0deg);
659
- transform: rotateY(0deg);
660
- -webkit-transition: -webkit-transform 0.4s, opacity 0.1s;
661
- -moz-transition: -moz-transform 0.4s, opacity 0.1s;
662
- transition: transform 0.4s, opacity 0.1s;
663
- }
664
- #fm-settings-content .fm-addon-subtitle {
665
- font-size: 25px;
666
- border-bottom: 1px solid #C1C4C7;
667
- padding-bottom: 23px;
668
- }
669
- #fm-settings-content .main-plugin .main-plugin-img {
670
- float: left;
671
- margin-right: 2%;
672
- width: 26%;
673
- }
674
- #fm-settings-content .main-plugin .main-plugin-img img{
675
- max-width:100%;
676
- }
677
- #fm-settings-content .main-plugin .main-plugin-info {
678
- float: left;
679
- }
680
- #fm-settings-content .main-plugin {
681
- margin-bottom: 25px;
682
- }
683
- #fm-settings-content .main-plugin_desc-cont p,
684
- #fm-settings-content .main-plugin_desc-cont {
685
- font-size: 14px;
686
- }
687
- #fm-settings-content .main-plugin-desc-info p{
688
- margin: 2px 0 13px;
689
- }
690
- #fm-settings-content .fm-addons_updates .main-plugin-desc-info p{
691
- margin: 2px 0 4px;
692
- }
693
- #fm-settings-content .main-plugin-desc {
694
- margin-bottom: 12px;
695
- }
696
- #fm-settings-content .main-plugin-info h2 {
697
- padding: 0;
698
- line-height: 1;
699
- margin-bottom: 14px;
700
- }
701
- #fm-settings-content .main-plugin-info h2 a {
702
- color: #323A45;
703
- text-decoration: none;
704
- font-weight: bold;
705
- }
706
- #fm-settings-content .main-plugin-desc-info {
707
- border-bottom: 1px solid #C0C4C7;
708
- width: 71%;
709
- }
710
- #fm-settings-content .fm-addons_updates .main-plugin-desc-info {
711
- border-bottom: 0;
712
- width: 100%;
713
- }
714
- #fm-settings-content .update-info {
715
- background:url(../assets/updates_icon.jpg) no-repeat;
716
- padding-left:25px;
717
- color: #bc0b0b;
718
- }
719
- #fm-settings-content .fm-addons_updates .fm-figure {
720
- margin-bottom: 10px;
721
- }
722
- #fm-settings-content .fm-addons_updates .fm-addon-descr-update {
723
- border-top: 1px solid #898989;
724
- padding-top: 6px;
725
- }
726
- #fm-settings-content .fm-addons_updates h2{
727
- color: #323A45;
728
- text-decoration: none;
729
- font-weight: bold;
730
- border-bottom: 0;
731
- padding-bottom: 0;
732
- margin-bottom: 0;
733
- }
734
-
735
- .fm_more_updates {
736
- display: none;
737
  }
1
+ /**
2
+ * Admin CSS file
3
+ */
4
+ #fm-tabs > div{
5
+ display:none;
6
+ }
7
+ #fm-settings{
8
+ background: #ffffff;
9
+ padding: 15px;
10
+ }
11
+ .fm-meta-control {
12
+ margin-bottom: 15px;
13
+ }
14
+
15
+ .fm-meta-control label {
16
+ display: block;
17
+ font-weight: bold;
18
+ }
19
+
20
+ #fm-admin-promo {
21
+ background-color: #fcf8e3;
22
+ border: 1px solid #faebbe;
23
+ color: #8a6d3b;
24
+ padding: 15px;
25
+ }
26
+
27
+ #fm_event_meta .inside code {
28
+ word-break: break-all;
29
+ }
30
+
31
+ .border{
32
+ border: 1px solid red;
33
+ }
34
+
35
+ /*Spider events*/
36
+ .fm_repeat_type_list{
37
+ float: left;
38
+ width: 30%;
39
+ }
40
+ .fm_repeat_advanced{
41
+ float: left;
42
+ width: 68%;
43
+ }
44
+ #fm_choose_day_container div label{
45
+ width: 120px;
46
+ display: inline-block;
47
+ }
48
+ #fm_choose_day_container div label:after{
49
+ clear: both;
50
+ }
51
+ #fm_choose_day_container div label input{
52
+ float: right;
53
+ margin: 1px;
54
+ }
55
+ .fm_icon{
56
+ max-width: 64px;
57
+ max-height: 64px;
58
+ }
59
+
60
+ .fm-modal .fm-calendar-event,
61
+ .fm-events .fm-calendar-event{
62
+ width:47%;
63
+ display: inline-block;
64
+ margin:0 20px 10px 0;
65
+ }
66
+
67
+ .fm-events .fm-calendar-event{
68
+ width:42%;
69
+ }
70
+ .fm-modal .fm-calendar-event span:first-child,
71
+ .fm-events .fm-calendar-event span:first-child{
72
+ border: 1px solid #C8C8C8;
73
+ display: inline-block;
74
+ width: 89%;
75
+ box-sizing: border-box;
76
+ padding: 2px 2px 2px 7px;
77
+ color: #7C7C7C;
78
+ white-space: nowrap;
79
+ text-overflow: ellipsis;
80
+ overflow: hidden;
81
+ float: left;
82
+ }
83
+
84
+ .fm-events .fm-calendar-event span:first-child{
85
+ width: 81%;
86
+ }
87
+ .fm-modal .fm-calendar-event:nth-child(even){
88
+ margin-right:0;
89
+ }
90
+
91
+ .fm-events .fm-calendar-event:after{
92
+ clear: both;
93
+ }
94
+
95
+ .fm-modal .fm-calendar-event .fm-calendar-event-add,
96
+ .fm-events .fm-calendar-event-delete{
97
+ display: inline-block;
98
+ text-align: center;
99
+ float: left;
100
+ vertical-align: middle;
101
+ border-radius: 2px;
102
+ height: 24px;
103
+ width: 24px;
104
+ color: #FFFFff;
105
+ background-color: #0074A2;
106
+ cursor: pointer;
107
+ font-size: 19px;
108
+ }
109
+
110
+
111
+ .fm-events .fm-calendar-event-edit{
112
+
113
+ }
114
+ .fm-events .fm-calendar-event-edit a{
115
+ font-size: 0;
116
+ display: inline-block;
117
+ float: left;
118
+ margin: 0 1px;
119
+ border-radius: 2px;
120
+ height: 24px;
121
+ width: 24px;
122
+ background: url("../images/edit_icon.png") no-repeat center center;
123
+ }
124
+ .fm-events .fm-calendar-event-delete{
125
+ line-height: 20px;
126
+ }
127
+
128
+ .fm-calendar-event-add {
129
+ cursor: pointer;
130
+ }
131
+
132
+ .fm-modal {
133
+ position: fixed;
134
+ font-family: Arial, Helvetica, sans-serif;
135
+ overflow-y: scroll;
136
+ top: 0;
137
+ right: 0;
138
+ bottom: 0;
139
+ left: 0;
140
+ background: rgba(0, 0, 0, 0.8);
141
+ z-index: 99999;
142
+ opacity:0;
143
+ -webkit-transition: opacity 400ms ease-in;
144
+ -moz-transition: opacity 400ms ease-in;
145
+ transition: opacity 400ms ease-in;
146
+ pointer-events: none;
147
+ }
148
+ .fm-modal:target {
149
+ opacity:1;
150
+ pointer-events: auto;
151
+ }
152
+ .fm-modal > div.fm-excluded-events {
153
+ width: 500px !important;
154
+ position: relative;
155
+ margin: 10% auto;
156
+ padding: 0px 20px 16px 20px !important;
157
+ border-radius: 1px;
158
+ background: #fff;
159
+ }
160
+ .fm-modal > div.fm-preview {
161
+ position: relative;
162
+ margin: 5%;
163
+ padding: 5px 20px 13px 20px;
164
+ border-radius: 1px;
165
+ background: #fff;
166
+ min-width:600px;
167
+ }
168
+
169
+ .fm-close {
170
+ background: url(../images/close.png);
171
+ display: inline-block;
172
+ position: absolute;
173
+ right: 0px;
174
+ height: 29px;
175
+ top: 0px;
176
+ width: 29px;
177
+ text-decoration: none;
178
+ z-index: 4;
179
+ }
180
+
181
+ .fm-excluded-events h2{
182
+ margin: 15px 0;
183
+ padding-bottom: 15px !important;
184
+ border-bottom: 1px solid #B2B2B2;
185
+ }
186
+
187
+ .wd_stay_active {
188
+ background: none repeat scroll 0% 0% green !important;
189
+ box-shadow: 0px 1px 3px 0px #178FE5 inset !important;
190
+ color: #FFF !important;
191
+ font-weight: 700 !important;
192
+ }
193
+ #fm_event_pickup_date, #fm_event_pickup_time {
194
+ height: 27px;
195
+ border: 1px solid #A1A1A1;
196
+ border-radius: 0;
197
+ font-size: 13px;
198
+ color: #444444;
199
+ padding: 0 5px 0 27px;
200
+ margin-top: 1px;
201
+ }
202
+
203
+ #fm_event_pickup_date {
204
+ background:url(../images/admin_day.jpg) no-repeat left;
205
+ margin: 1px 8px;
206
+ }
207
+ #fm_event_pickup_time {
208
+ background:url(../images/admin_time.jpg) no-repeat left;
209
+ }
210
+
211
+ /*TABS*/
212
+ #fm-tabs, #fm-tabs div{
213
+ background: none #ffffff;
214
+ border: 0;
215
+ }
216
+ .fm-tabs{
217
+ list-style-type: none;
218
+ }
219
+ .fm-tabs li,
220
+ #fm-settings-content .nav-tab-wrapper a{
221
+ display: inline-block;
222
+ border: 1px solid #A5A5A5;
223
+ }
224
+ .fm-tabs li a,
225
+ #fm-settings-content .nav-tab-wrapper a{
226
+ display: table-cell;
227
+ text-align: center;
228
+ width: 100px;
229
+ height: 30px;
230
+ vertical-align: middle;
231
+ text-decoration:none;
232
+ color:#5E5E5E;
233
+ font-size: 16px;
234
+ }
235
+
236
+ #fm-settings-content .nav-tab-wrapper a{
237
+ background: #ffffff;
238
+ height: 21px;
239
+ margin-right: 4px;
240
+ display: inline-block;
241
+ font-weight: normal;
242
+ padding-top: 2px;
243
+ }
244
+
245
+ .fm-tabs li a:focus{
246
+ box-shadow:none;
247
+ }
248
+ .fm-tabs li:hover a,.fm-tabs li.ui-state-active a,
249
+ #fm-settings-content .nav-tab-wrapper a:hover,#fm-settings-content .nav-tab-wrapper a.nav-tab-active{
250
+ color:#ffffff;
251
+ background: #0074A2;
252
+ }
253
+
254
+ #fm-settings-content .nav-tab-wrapper {
255
+ border-bottom:0;
256
+ padding-left: 0;
257
+ }
258
+
259
+ .fm-tabs li:hover,.fm-tabs li.ui-state-active,
260
+ #fm-settings-content .nav-tab-wrapper a.nav-tab-active{
261
+ border: 1px solid transparent;
262
+ }
263
+
264
+ .fm-tab-inner{
265
+ padding: 15px;
266
+ }
267
+
268
+ /*Preview */
269
+ .ui-selecting { background: #FECA40 !important; }
270
+ .ui-selected { background: #F39814 !important;}
271
+
272
+ .event_cal_add {
273
+ width: 350px;
274
+ height: 130px;
275
+ padding: 40px 20px 0;
276
+ border: 1px solid #cccccc;
277
+ position: absolute;
278
+ z-index: 9999;
279
+ background: #ffffff;
280
+ }
281
+ .event_cal_add .close{
282
+ display: block;
283
+ line-height: 18px;
284
+ width: 20px;
285
+ font-size: 8pt;
286
+ margin-top: 1px;
287
+ margin-right: 1px;
288
+ position: absolute;
289
+ font-family: tahoma;
290
+ text-align: center;
291
+ top: 0;
292
+ right: 0;
293
+ cursor: pointer;
294
+ background-size: contain;
295
+ height: 20px;
296
+ }
297
+
298
+ .event_cal_add .add_event_to_cal{
299
+ display: block;
300
+ cursor: pointer;
301
+ padding-bottom: 10px;
302
+ margin: 25px 0 0 0;
303
+ width: 78px;
304
+ text-align: center;
305
+ line-height: 30px;
306
+ height: 20px;
307
+ background: #e3e3e3;
308
+ border: 1px solid #eeeeee;
309
+ }
310
+ .event_cal_add .fm_notification{
311
+ display: block;
312
+ height: 20px;
313
+ margin: 25px 0 0 0;
314
+ }
315
+ span.fm_error{
316
+ color: #bc0b0b;
317
+ display: block;
318
+ padding-left: 36px;
319
+ height: 20px;
320
+
321
+ }
322
+ #fm_calendar_meta h3.hndle{
323
+ color:#0074A2;
324
+ text-transform:uppercase;
325
+ font-size: 17px;
326
+ }
327
+ #fm-settings a.button{
328
+ border: 1px solid #A1A1A1;
329
+ padding: 0px 15px;
330
+ box-shadow: none;
331
+ border-radius: 0;
332
+ color: #000;
333
+ font-weight: bold;
334
+ }
335
+ #fm-settings a.button:hover{
336
+ border: 1px solid transparent;
337
+ color: #fff;
338
+ background: #0074A2;
339
+ }
340
+ #fm-settings input[type="text"],
341
+ #fm-settings select,
342
+ #fm_theme_meta input[type="text"]:not(#fm_event_location),
343
+ #fm_calendar_meta input[type="text"]:not(.fm-search),
344
+ #fm_calendar_meta select,
345
+ #fm_event_meta input[type="text"]:not(#fm_event_date_from):not(#fm_event_date_to):not(#fm_event_location),
346
+ #fm_event_meta select,
347
+ #fm_event_meta #fm_event_year_month,
348
+ #fm-settings .form-field input, #fm-settings input.regular-text{
349
+ width:250px;
350
+ border: 1px solid #A1A1A1;
351
+ }
352
+ #fm_event_date_from,#fm_event_date_to{
353
+ border: 1px solid #A1A1A1;
354
+ }
355
+
356
+ #fm-settings input[type="checkbox"],
357
+ #fm_event_meta input[type="checkbox"],
358
+ #fm-settings input[type="radio"]{
359
+ position: absolute;
360
+ z-index: -1;
361
+ margin: 0 !important;
362
+ width: 5px !important;
363
+ height: 5px !important;
364
+ min-width: 5px !important;
365
+ }
366
+
367
+
368
+ #fm-settings .checkbox-div,
369
+ #fm_event_meta .checkbox-div{
370
+ width: 13px;
371
+ height: 12px;
372
+ background: #FDFDFD;
373
+ border: 1px solid #CBCBCB;
374
+ border-radius: 0px;
375
+ position: relative;
376
+ display: inline-block;
377
+ top: 2px;
378
+ margin-right: 7px;
379
+ margin-left: 15px;
380
+ box-sizing: content-box;
381
+ -webkit-box-sizing: content-box;
382
+ -moz-box-sizing: content-box;
383
+ }
384
+ #fm-settings .checkbox-div:first-child{
385
+ margin-left: 0px;
386
+ }
387
+
388
+ #fm-settings .checkbox-div input[type="checkbox"]:checked + label ,
389
+ #fm_event_meta .checkbox-div input[type="checkbox"]:checked + label ,
390
+ #fm-settings .checkbox-div input[type="radio"]:checked + label {
391
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
392
+ filter: alpha(opacity=100);
393
+ opacity: 1;
394
+ background: #CBCBCB;
395
+ position: absolute;
396
+ top: 2px;
397
+ }
398
+
399
+ #fm-settings input[type="submit"] {
400
+ background: #0074A2;
401
+ color: #ffffff;
402
+ font-weight: bold;
403
+ font-size: 15px;
404
+ border: 0;
405
+ border-radius: 0;
406
+ padding: 5px 25px;
407
+ height: auto;
408
+ }
409
+
410
+
411
+ #fm_event_meta .checkbox-div label,
412
+ #fm-settings .checkbox-div label {
413
+ cursor: pointer;
414
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
415
+ filter: alpha(opacity=0);
416
+ opacity: 0;
417
+ content: "";
418
+ position: absolute;
419
+ width: 9px;
420
+ height: 8px;
421
+ background: #CBCBCB;
422
+ border-radius: 0px;
423
+ top: 2px;
424
+ left: 2px;
425
+ }
426
+
427
+ #fm_calendar_meta .add_event_plus{
428
+ display:inline-block;
429
+ width:18px;
430
+ height:18px;
431
+ border-radius:100%;
432
+ background:#0074A2;
433
+ color:#ffffff;
434
+ text-shadow:1px -1px 2px #005C82;
435
+ margin-left:8px;
436
+ text-align:center;
437
+ font-weight: bold;
438
+ font-size: 15px;
439
+ line-height: 17px;
440
+ }
441
+ #fm_calendar_meta .fm-calendar-event-add a:focus{
442
+ box-shadow:none;
443
+ }
444
+ #fm_event_meta .repeat_format{
445
+ width: 90px;
446
+ display: inline-block;
447
+ }
448
+ #fm_event_meta .repeat_format_monthly{
449
+ width: 66px;
450
+ display: inline-block;
451
+ }
452
+ #fm_event_meta #fm_event_year_month{
453
+ margin: 10px 0 0 95px;
454
+ }
455
+ #fm_event_meta #fm_choose_day_container{
456
+ margin-top: 10px;
457
+ }
458
+ #fm_event_meta #fm_choose_day_container .checkbox-div{
459
+ margin-left: 0px;
460
+ }
461
+ #fm_event_meta .fm_repeat_advanced input[type="text"],
462
+ #fm_event_meta .fm_repeat_advanced select{
463
+ width: auto;
464
+ }
465
+
466
+ #fm_event_meta #fm_monthly,
467
+ #fm_event_meta .fm_event_repeat_event_div{
468
+ margin:10px 0;
469
+ }
470
+
471
+ #fm_event_meta .select_to_enable_disable{
472
+ width:122px !important;
473
+ }
474
+
475
+ #fm_theme_meta label{
476
+ display:inline-block;
477
+ width:290px;
478
+ font-weight: normal;
479
+ font-size: 15px;
480
+ }
481
+
482
+ #fm_theme_meta .fm-tab-inner > div{
483
+ margin:20px 0;
484
+ }
485
+ #fm_theme_meta .fm-tab-inner > div:first-child{
486
+ margin-top:0;
487
+ }
488
+ #fm_theme_meta .with_fm_color:after,
489
+ #fm-settings-content .fm-addons_updates:after,
490
+ #fm-settings-content .main-plugin:after,
491
+ #fm-settings-content:after{
492
+ content:'';
493
+ display:table;
494
+ clear:both;
495
+ }
496
+ #fm_theme_meta .with_fm_color label{
497
+ float: left;
498
+ margin-top: 5px;
499
+ width: 293px;
500
+ }
501
+ #fm_theme_meta .with_fm_color > div{
502
+ float: left;
503
+ }
504
+ .fm-import-settings form{
505
+ float:left;
506
+ width:45%;
507
+ }
508
+ .fm-import-settings input[type=file]{
509
+ margin: 10px 0;
510
+ }
511
+ .fm-import-settings .fm-calendar-event-import{
512
+ font-size: 15px;
513
+ }
514
+
515
+ #fm-settings-content #add_on_title{
516
+ margin-bottom:20px;
517
+ }
518
+
519
+ #fm-settings-content .fm_coming_soon {
520
+ position: absolute;
521
+ top: 44px;
522
+ left: 0;
523
+ }
524
+ #fm-settings-content .fm-add-on a{
525
+ text-decoration: none;
526
+ }
527
+ #fm-settings-content .fm-add-on h2{
528
+ color: #229DBF;
529
+ font-size: 16px;
530
+ margin-bottom: 9px;
531
+ padding: 0 0 7px;
532
+ line-height: 1.2;
533
+ }
534
+ #fm-settings-content .fm-addon-descr{
535
+ font-size: 13px;
536
+ line-height: 18px;
537
+ height: 100%;
538
+ width: 53%;
539
+ opacity: 0;
540
+ position: absolute;
541
+ top: 0;
542
+ left: 0;
543
+ padding: 8px 10px 10px;
544
+ background: #23282D;
545
+ color: #D1DDE0;
546
+ -webkit-backface-visibility: hidden;
547
+ -moz-backface-visibility: hidden;
548
+ backface-visibility: hidden;
549
+ -webkit-transform-origin: 0 0;
550
+ -moz-transform-origin: 0 0;
551
+ transform-origin: 0 0;
552
+ -webkit-transform: rotateY(-90deg);
553
+ -moz-transform: rotateY(-90deg);
554
+ transform: rotateY(-90deg);
555
+ -webkit-transition: -webkit-transform 0.4s, opacity 0.1s 0.3s;
556
+ -moz-transition: -moz-transform 0.4s, opacity 0.1s 0.3s;
557
+ transition: transform 0.4s, opacity 0.1s 0.3s;
558
+ box-sizing: border-box;
559
+ -webkit-box-sizing: border-box;
560
+ -moz-box-sizing: border-box;
561
+ }
562
+ .grid figcaption {
563
+ position: absolute;
564
+ top: 0;
565
+ left: 0;
566
+ padding: 20px;
567
+ background: #2c3f52;
568
+ color: #ed4e6e;
569
+ }
570
+ #fm-settings-content .fm-addon,
571
+ #fm-settings-content .fm-addon-price{
572
+ display: inline-block;
573
+ margin-top: 15px;
574
+ font-size: 15px;
575
+ border: 1px solid #DCDCDC;
576
+ font-weight: bold;
577
+ }
578
+ #fm-settings-content .fm-addon{
579
+ background: #FFFFFF url(../images/Add_Ons.jpg) no-repeat 6px center;
580
+ color: #66686B;
581
+ padding: 9px 12px 9px 45px;
582
+ width: 100%;
583
+ box-sizing: border-box;
584
+ -webkit-box-sizing: border-box;
585
+ -moz-box-sizing: border-box;
586
+ }
587
+ #fm-settings-content .fm-addon-price{
588
+ background: #FFFFFF;
589
+ color: #229CBF;
590
+ padding: 9px 12px;
591
+ }
592
+ #fm-settings-content .fm-add-on:hover .fm-addon-price,
593
+ #fm-settings-content .fm-addon-price:hover{
594
+ background: #229CBF;
595
+ color: #DDECF1;
596
+ }
597
+ #fm-settings-content .fm-add-on:hover .fm-addon,
598
+ #fm-settings-content .fm-addon:hover{
599
+ background: #23282D url(../images/Add_Ons_hover.jpg) no-repeat 6px center;
600
+ color: #DDDEDE;
601
+ }
602
+ #fm-settings-content .fm-addon span{
603
+ border-left: 1px solid #A7A9AB;
604
+ padding: 4px 10px 4px 10px;
605
+ }
606
+ #fm-settings-content .fm-addon-descr span{
607
+ padding: 5px 0 5px 10px;
608
+ border-left: 1px solid #93CEE0;
609
+ }
610
+ #fm-settings-content a:focus{
611
+ outline:none;
612
+ box-shadow:none;
613
+ }
614
+ #fm-settings-content .fm-add-on{
615
+ width:310px;
616
+ float:left;
617
+ margin-right:40px;
618
+ margin-bottom:57px;
619
+ -webkit-perspective: 1700px;
620
+ -moz-perspective: 1700px;
621
+ perspective: 1700px;
622
+ -webkit-perspective-origin: 0 50%;
623
+ -moz-perspective-origin: 0 50%;
624
+ perspective-origin: 0 50%;
625
+ position: relative;
626
+ }
627
+ #fm-settings-content .main-plugin .fm-add-on{
628
+ float: left;
629
+ margin-right: 25px;
630
+ height: auto;
631
+ }
632
+ #fm-settings-content .fm-figure{
633
+ -webkit-transform-style: preserve-3d;
634
+ -moz-transform-style: preserve-3d;
635
+ transform-style: preserve-3d;
636
+ position: relative;
637
+ width:100%;
638
+ height: 232px;
639
+ margin: 0;
640
+ }
641
+ #fm-settings-content .fm-figure-img{
642
+ overflow: hidden;
643
+ }
644
+ #fm-settings-content .fm-figure-img img{
645
+ -webkit-transition: -webkit-transform 0.4s;
646
+ -moz-transition: -moz-transform 0.4s;
647
+ transition: transform 0.4s;
648
+ }
649
+ #fm-settings-content .fm-figure:hover img{
650
+ -webkit-transform: translateX(25%);
651
+ -moz-transform: translateX(25%);
652
+ -ms-transform: translateX(25%);
653
+ transform: translateX(25%);
654
+ }
655
+ #fm-settings-content .fm-figure:hover figcaption{
656
+ opacity: 1;
657
+ -webkit-transform: rotateY(0deg);
658
+ -moz-transform: rotateY(0deg);
659
+ transform: rotateY(0deg);
660
+ -webkit-transition: -webkit-transform 0.4s, opacity 0.1s;
661
+ -moz-transition: -moz-transform 0.4s, opacity 0.1s;
662
+ transition: transform 0.4s, opacity 0.1s;
663
+ }
664
+ #fm-settings-content .fm-addon-subtitle {
665
+ font-size: 25px;
666
+ border-bottom: 1px solid #C1C4C7;
667
+ padding-bottom: 23px;
668
+ }
669
+ #fm-settings-content .main-plugin .main-plugin-img {
670
+ float: left;
671
+ margin-right: 2%;
672
+ width: 26%;
673
+ }
674
+ #fm-settings-content .main-plugin .main-plugin-img img{
675
+ max-width:100%;
676
+ }
677
+ #fm-settings-content .main-plugin .main-plugin-info {
678
+ float: left;
679
+ }
680
+ #fm-settings-content .main-plugin {
681
+ margin-bottom: 25px;
682
+ }
683
+ #fm-settings-content .main-plugin_desc-cont p,
684
+ #fm-settings-content .main-plugin_desc-cont {
685
+ font-size: 14px;
686
+ }
687
+ #fm-settings-content .main-plugin-desc-info p{
688
+ margin: 2px 0 13px;
689
+ }
690
+ #fm-settings-content .fm-addons_updates .main-plugin-desc-info p{
691
+ margin: 2px 0 4px;
692
+ }
693
+ #fm-settings-content .main-plugin-desc {
694
+ margin-bottom: 12px;
695
+ }
696
+ #fm-settings-content .main-plugin-info h2 {
697
+ padding: 0;
698
+ line-height: 1;
699
+ margin-bottom: 14px;
700
+ }
701
+ #fm-settings-content .main-plugin-info h2 a {
702
+ color: #323A45;
703
+ text-decoration: none;
704
+ font-weight: bold;
705
+ }
706
+ #fm-settings-content .main-plugin-desc-info {
707
+ border-bottom: 1px solid #C0C4C7;
708
+ width: 71%;
709
+ }
710
+ #fm-settings-content .fm-addons_updates .main-plugin-desc-info {
711
+ border-bottom: 0;
712
+ width: 100%;
713
+ }
714
+ #fm-settings-content .update-info {
715
+ background:url(../assets/updates_icon.jpg) no-repeat;
716
+ padding-left:25px;
717
+ color: #bc0b0b;
718
+ }
719
+ #fm-settings-content .fm-addons_updates .fm-figure {
720
+ margin-bottom: 10px;
721
+ }
722
+ #fm-settings-content .fm-addons_updates .fm-addon-descr-update {
723
+ border-top: 1px solid #898989;
724
+ padding-top: 6px;
725
+ }
726
+ #fm-settings-content .fm-addons_updates h2{
727
+ color: #323A45;
728
+ text-decoration: none;
729
+ font-weight: bold;
730
+ border-bottom: 0;
731
+ padding-bottom: 0;
732
+ margin-bottom: 0;
733
+ }
734
+
735
+ .fm_more_updates {
736
+ display: none;
737
  }
featured/featured_themes.css CHANGED
@@ -1,178 +1,178 @@
1
- @import url(https://fonts.googleapis.com/css?family=Oswald);
2
-
3
- #main_featured_themes_page #featured-themes-list {
4
- position:relative;
5
- margin:0px auto;
6
- height:auto;
7
- display:table;
8
- list-style:none;
9
- text-align: center;
10
- width: 100%;
11
- }
12
- #main_featured_themes_page #featured-themes-list li {
13
- display: inline-table;
14
- width: 300px;
15
- margin: 20px 10px 0px 10px;
16
- background: #FFFFFF;
17
- border-right: 3px solid #E5E5E5;
18
- border-bottom: 3px solid #E5E5E5;
19
- position: relative;
20
- }
21
- @media screen and (min-width: 1600px) {
22
- #main_featured_themes_page #featured-themes-list li {
23
- width:400px;
24
- }
25
-
26
- }
27
- #main_featured_themes_page .theme_img img {
28
- max-width: 100%;
29
- }
30
- #main_featured_themes_page .theme_img {
31
- display: inline-block;
32
- overflow: hidden;
33
- outline: 1px solid #D6D1D1;
34
- position:relative;
35
- /*height: 168px; */
36
- }
37
- #main_featured_themes_page #featured-themes-list li .title {
38
- width: 91%;
39
- text-align: center;
40
- margin: 0 auto;
41
- }
42
- #main_featured_themes_page {
43
- font-family: Oswald;
44
- }
45
- #main_featured_themes_page #featured-themes-list li .title .heading {
46
- display: block;
47
- position: relative;
48
- font-size: 17px;
49
- color: #666666;
50
- margin: 13px 0px 13px 0px;
51
- text-transform: uppercase;
52
- }
53
- #main_featured_themes_page #featured-themes-list li .title p {
54
- font-size:14px;
55
- color:#444;
56
- margin-left:20px;
57
- }
58
- #main_featured_themes_page #featured-themes-list li .description {
59
- height:130px;
60
- width: 90%;
61
- margin: 0 auto;
62
- }
63
- #main_featured_themes_page #featured-themes-list li .description p {
64
- text-align: center;
65
- width: 100%;
66
- color: #666666;
67
- font-family: "Open Sans",sans-serif;
68
- font-size: 14px;
69
- }
70
- #main_featured_themes_page #featured-themes-list li .links {
71
- border-top: 1px solid #d8d8d8;
72
- width: 90%;
73
- margin: 0 auto;
74
- font-size: 14px;
75
- line-height: 40px;
76
- font-weight: bolder;
77
- text-align: center;
78
- padding-top: 9px;
79
- padding-bottom: 12px;
80
- }
81
- #main_featured_themes_page .page_header h1 {
82
- margin: 0px;
83
- font-family: Segoe UI;
84
- padding-bottom: 15px;
85
- color: rgb(111, 111, 111);
86
- font-size: 24px;
87
- text-align:center;
88
- }
89
- #main_featured_themes_page .page_header {
90
- height: 40px;
91
- padding: 22px 0px 0px 0px;
92
- margin-bottom: 15px;
93
- /*border-bottom: rgb(111, 111, 111) solid 1px;*/
94
- }
95
- #main_featured_themes_page #featured-themes-list li a {
96
- outline: none;
97
- line-height: 29px;
98
- text-decoration: none;
99
- color: #134d68;
100
- font-family: "Open Sans",sans-serif;
101
- text-shadow: 1px 0;
102
- display: inline-block;
103
- font-size: 15px;
104
- }
105
- #main_featured_themes_page #featured-themes-list li a.demo {
106
- color: #ffffff;
107
- background: #F47629;
108
- border-radius: 3px;
109
- width: 76px;
110
- text-align:center;
111
- margin-right: 12px;
112
- }
113
- #main_featured_themes_page .featured_header{
114
- background: #11465F;
115
- border-right: 3px solid #E5E5E5;
116
- border-bottom: 3px solid #E5E5E5;
117
- position: relative;
118
- padding: 20px 0;
119
- }
120
- #main_featured_themes_page .featured_header .try-now {
121
- text-align: center;
122
- }
123
- #main_featured_themes_page .featured_header .try-now span {
124
- display: inline-block;
125
- padding: 7px 16px;
126
- background: #F47629;
127
- border-radius: 10px;
128
- color: #ffffff;
129
- font-size: 23px;
130
- }
131
- #main_featured_themes_page .featured_container {
132
- position: relative;
133
- width: 90%;
134
- margin: 15px auto 0px auto;
135
- }
136
- #main_featured_themes_page .featured_container .old_price{
137
- color: rgba(180, 180, 180, 0.3);
138
- text-decoration: line-through;
139
- font-family: Oswald;
140
- }
141
- #main_featured_themes_page .featured_container .get_themes{
142
- color: #FFFFFF;
143
- height: 85px;
144
- margin: 0;
145
- background-size: 95% 100%;
146
- background-position: center;
147
- line-height: 60px;
148
- font-size: 45px;
149
- text-align: center;
150
- letter-spacing: 3px;
151
- }
152
- #main_featured_themes_page .featured_header h1{
153
- font-size: 45px;
154
- text-align: center;
155
- color: #ffffff;
156
- letter-spacing: 3px;
157
- line-height: 10px;
158
- }
159
- #main_featured_themes_page .featured_header a{
160
- text-decoration: none;
161
- }
162
- @media screen and (max-width: 1035px) {
163
- #main_featured_themes_page .featured_header h1{
164
- font-size: 37px;
165
- line-height: 0;
166
- }
167
- }
168
- @media screen and (max-width: 835px) {
169
- #main_featured_themes_page .get_themes span{
170
- display: none;
171
- }
172
- }
173
- @media screen and (max-width: 435px) {
174
- #main_featured_themes_page .featured_header h1 {
175
- font-size: 20px;
176
- line-height: 17px;
177
- }
178
  }
1
+ @import url(https://fonts.googleapis.com/css?family=Oswald);
2
+
3
+ #main_featured_themes_page #featured-themes-list {
4
+ position:relative;
5
+ margin:0px auto;
6
+ height:auto;
7
+ display:table;
8
+ list-style:none;
9
+ text-align: center;
10
+ width: 100%;
11
+ }
12
+ #main_featured_themes_page #featured-themes-list li {
13
+ display: inline-table;
14
+ width: 300px;
15
+ margin: 20px 10px 0px 10px;
16
+ background: #FFFFFF;
17
+ border-right: 3px solid #E5E5E5;
18
+ border-bottom: 3px solid #E5E5E5;
19
+ position: relative;
20
+ }
21
+ @media screen and (min-width: 1600px) {
22
+ #main_featured_themes_page #featured-themes-list li {
23
+ width:400px;
24
+ }
25
+
26
+ }
27
+ #main_featured_themes_page .theme_img img {
28
+ max-width: 100%;
29
+ }
30
+ #main_featured_themes_page .theme_img {
31
+ display: inline-block;
32
+ overflow: hidden;
33
+ outline: 1px solid #D6D1D1;
34
+ position:relative;
35
+ /*height: 168px; */
36
+ }
37
+ #main_featured_themes_page #featured-themes-list li .title {
38
+ width: 91%;
39
+ text-align: center;
40
+ margin: 0 auto;
41
+ }
42
+ #main_featured_themes_page {
43
+ font-family: Oswald;
44
+ }
45
+ #main_featured_themes_page #featured-themes-list li .title .heading {
46
+ display: block;
47
+ position: relative;
48
+ font-size: 17px;
49
+ color: #666666;
50
+ margin: 13px 0px 13px 0px;
51
+ text-transform: uppercase;
52
+ }
53
+ #main_featured_themes_page #featured-themes-list li .title p {
54
+ font-size:14px;
55
+ color:#444;
56
+ margin-left:20px;
57
+ }
58
+ #main_featured_themes_page #featured-themes-list li .description {
59
+ height:130px;
60
+ width: 90%;
61
+ margin: 0 auto;
62
+ }
63
+ #main_featured_themes_page #featured-themes-list li .description p {
64
+ text-align: center;
65
+ width: 100%;
66
+ color: #666666;
67
+ font-family: "Open Sans",sans-serif;
68
+ font-size: 14px;
69
+ }
70
+ #main_featured_themes_page #featured-themes-list li .links {
71
+ border-top: 1px solid #d8d8d8;
72
+ width: 90%;
73
+ margin: 0 auto;
74
+ font-size: 14px;
75
+ line-height: 40px;
76
+ font-weight: bolder;
77
+ text-align: center;
78
+ padding-top: 9px;
79
+ padding-bottom: 12px;
80
+ }
81
+ #main_featured_themes_page .page_header h1 {
82
+ margin: 0px;
83
+ font-family: Segoe UI;
84
+ padding-bottom: 15px;
85
+ color: rgb(111, 111, 111);
86
+ font-size: 24px;
87
+ text-align:center;
88
+ }
89
+ #main_featured_themes_page .page_header {
90
+ height: 40px;
91
+ padding: 22px 0px 0px 0px;
92
+ margin-bottom: 15px;
93
+ /*border-bottom: rgb(111, 111, 111) solid 1px;*/
94
+ }
95
+ #main_featured_themes_page #featured-themes-list li a {
96
+ outline: none;
97
+ line-height: 29px;
98
+ text-decoration: none;
99
+ color: #134d68;
100
+ font-family: "Open Sans",sans-serif;
101
+ text-shadow: 1px 0;
102
+ display: inline-block;
103
+ font-size: 15px;
104
+ }
105
+ #main_featured_themes_page #featured-themes-list li a.demo {
106
+ color: #ffffff;
107
+ background: #F47629;
108
+ border-radius: 3px;
109
+ width: 76px;
110
+ text-align:center;
111
+ margin-right: 12px;
112
+ }
113
+ #main_featured_themes_page .featured_header{
114
+ background: #11465F;
115
+ border-right: 3px solid #E5E5E5;
116
+ border-bottom: 3px solid #E5E5E5;
117
+ position: relative;
118
+ padding: 20px 0;
119
+ }
120
+ #main_featured_themes_page .featured_header .try-now {
121
+ text-align: center;
122
+ }
123
+ #main_featured_themes_page .featured_header .try-now span {
124
+ display: inline-block;
125
+ padding: 7px 16px;
126
+ background: #F47629;
127
+ border-radius: 10px;
128
+ color: #ffffff;
129
+ font-size: 23px;
130
+ }
131
+ #main_featured_themes_page .featured_container {
132
+ position: relative;
133
+ width: 90%;
134
+ margin: 15px auto 0px auto;
135
+ }
136
+ #main_featured_themes_page .featured_container .old_price{
137
+ color: rgba(180, 180, 180, 0.3);
138
+ text-decoration: line-through;
139
+ font-family: Oswald;
140
+ }
141
+ #main_featured_themes_page .featured_container .get_themes{
142
+ color: #FFFFFF;
143
+ height: 85px;
144
+ margin: 0;
145
+ background-size: 95% 100%;
146
+ background-position: center;
147
+ line-height: 60px;
148
+ font-size: 45px;
149
+ text-align: center;
150
+ letter-spacing: 3px;
151
+ }
152
+ #main_featured_themes_page .featured_header h1{
153
+ font-size: 45px;
154
+ text-align: center;
155
+ color: #ffffff;
156
+ letter-spacing: 3px;
157
+ line-height: 10px;
158
+ }
159
+ #main_featured_themes_page .featured_header a{
160
+ text-decoration: none;
161
+ }
162
+ @media screen and (max-width: 1035px) {
163
+ #main_featured_themes_page .featured_header h1{
164
+ font-size: 37px;
165
+ line-height: 0;
166
+ }
167
+ }
168
+ @media screen and (max-width: 835px) {
169
+ #main_featured_themes_page .get_themes span{
170
+ display: none;
171
+ }
172
+ }
173
+ @media screen and (max-width: 435px) {
174
+ #main_featured_themes_page .featured_header h1 {
175
+ font-size: 20px;
176
+ line-height: 17px;
177
+ }
178
  }
featured/featured_themes.php CHANGED
@@ -1,104 +1,104 @@
1
- <?php
2
- function fm_featured_themes_page() {
3
-
4
- $slug = 'formmaker';
5
- $image_url = WD_FM_URL . "/featured/images/";
6
- $demo_url = 'http://themedemo.web-dorado.com/';
7
- $site_url = 'https://web-dorado.com/wordpress-themes/';
8
-
9
-
10
- $WDWThemes = array(
11
- "business_elite" => array(
12
- "title" => "Business Elite",
13
- "description" =>"Business Elite is a robust parallax theme for business websites. The theme uses smooth transitions and many functional sections.",
14
- "link" => "business-elite.html",
15
- "demo" => "theme-businesselite",
16
- "image" => "business_elite.jpg"
17
- ),
18
- "portfolio" => array(
19
- "title" => "Portfolio Gallery",
20
- "description" =>"Portfolio Gallery helps to display images using various color schemes and layouts combined with elegant fonts and content parts.",
21
- "link" => "portfolio-gallery.html",
22
- "demo" => "theme-portfoliogallery",
23
- "image" => "portfolio_gallery.jpg"
24
- ),
25
- "sauron" => array(
26
- "title" => "Sauron",
27
- "description" =>"Sauron is a multipurpose parallax theme, which uses multiple interactive sections designed for the client-engagement.",
28
- "link" => "sauron.html",
29
- "demo" => "theme-sauron",
30
- "image" => "sauron.jpg"
31
- ),
32
- "business_world" => array(
33
- "title" => "Business World",
34
- "description" => "Business World is an innovative WordPress theme great for Business websites.",
35
- "link" => "business-world.html",
36
- "demo" => "theme-businessworld",
37
- "image" => "business_world.jpg"
38
- ),
39
- "best_magazine" => array(
40
- "title" => "Best Magazine",
41
- "description" =>"Best Magazine is an ultimate selection when you are dealing with multi-category news websites.",
42
- "link" => "best-magazine.html",
43
- "demo" => "theme-bestmagazine",
44
- "image" => "best_magazine.jpg"
45
- ),
46
- "magazine" => array(
47
- "title" => "News Magazine",
48
- "description" =>"Magazine theme is a perfect solution when creating news and informational websites. It comes with a wide range of layout options.",
49
- "link" => "news-magazine.html",
50
- "demo" => "theme-newsmagazine",
51
- "image" => "news_magazine.jpg"
52
- )
53
- );
54
- ?>
55
-
56
- <style>
57
-
58
- #main_featured_themes_page #featured-themes-list li a.download {
59
- padding-right: 30px;
60
- background:url(<?php echo $image_url; ?>down.png) no-repeat right;
61
- }
62
-
63
- </style>
64
-
65
-
66
- <div id="main_featured_themes_page">
67
- <div class="featured_container">
68
- <div class="page_header">
69
- <h1><?php echo "Featured Themes"; ?></h1>
70
- </div>
71
- <div class="featured_header">
72
- <a target="_blank" href="https://web-dorado.com/wordpress-themes.html?source=<?php echo $slug; ?>">
73
- <h1><?php echo "WORDPRESS THEMES"; ?></h1>
74
- <h2 class="get_themes"><?php echo "ALL FOR $40 ONLY "; ?><span>- <?php echo "SAVE 80%"; ?></span></h2>
75
- <div class="try-now">
76
- <span><?php echo "TRY NOW"; ?></span>
77
- </div>
78
- </a>
79
- </div>
80
- <ul id="featured-themes-list">
81
- <?php foreach($WDWThemes as $key=>$WDWTheme) : ?>
82
- <li class="<?php echo $key; ?>">
83
- <div class="theme_img">
84
- <img src="<?php echo $image_url . $WDWTheme["image"]; ?>">
85
- </div>
86
- <div class="title">
87
- <h3 class="heading"><?php echo $WDWTheme["title"]; ?></h3>
88
- </div>
89
- <div class="description">
90
- <p><?php echo $WDWTheme["description"]; ?></p>
91
- </div>
92
- <div class="links">
93
- <a target="_blank" href="<?php echo $demo_url . $WDWTheme["demo"]."?source=".$slug; ?>" class="demo"><?php echo "Demo"; ?></a>
94
- <a target="_blank" href="<?php echo $site_url . $WDWTheme["link"]."?source=".$slug; ?>" class="download"><?php echo "Free Download"; ?></a>
95
- </div>
96
- </li>
97
- <?php endforeach; ?>
98
- </ul>
99
- </div>
100
- </div>
101
-
102
-
103
- <?php }
104
- ?>
1
+ <?php
2
+ function fm_featured_themes_page() {
3
+
4
+ $slug = 'formmaker';
5
+ $image_url = WD_FM_URL . "/featured/images/";
6
+ $demo_url = 'http://themedemo.web-dorado.com/';
7
+ $site_url = 'https://web-dorado.com/wordpress-themes/';
8
+
9
+
10
+ $WDWThemes = array(
11
+ "business_elite" => array(
12
+ "title" => "Business Elite",
13
+ "description" =>"Business Elite is a robust parallax theme for business websites. The theme uses smooth transitions and many functional sections.",
14
+ "link" => "business-elite.html",
15
+ "demo" => "theme-businesselite",
16
+ "image" => "business_elite.jpg"
17
+ ),
18
+ "portfolio" => array(
19
+ "title" => "Portfolio Gallery",
20
+ "description" =>"Portfolio Gallery helps to display images using various color schemes and layouts combined with elegant fonts and content parts.",
21
+ "link" => "portfolio-gallery.html",
22
+ "demo" => "theme-portfoliogallery",
23
+ "image" => "portfolio_gallery.jpg"
24
+ ),
25
+ "sauron" => array(
26
+ "title" => "Sauron",
27
+ "description" =>"Sauron is a multipurpose parallax theme, which uses multiple interactive sections designed for the client-engagement.",
28
+ "link" => "sauron.html",
29
+ "demo" => "theme-sauron",
30
+ "image" => "sauron.jpg"
31
+ ),
32
+ "business_world" => array(
33
+ "title" => "Business World",
34
+ "description" => "Business World is an innovative WordPress theme great for Business websites.",
35
+ "link" => "business-world.html",
36
+ "demo" => "theme-businessworld",
37
+ "image" => "business_world.jpg"
38
+ ),
39
+ "best_magazine" => array(
40
+ "title" => "Best Magazine",
41
+ "description" =>"Best Magazine is an ultimate selection when you are dealing with multi-category news websites.",
42
+ "link" => "best-magazine.html",
43
+ "demo" => "theme-bestmagazine",
44
+ "image" => "best_magazine.jpg"
45
+ ),
46
+ "magazine" => array(
47
+ "title" => "News Magazine",
48
+ "description" =>"Magazine theme is a perfect solution when creating news and informational websites. It comes with a wide range of layout options.",
49
+ "link" => "news-magazine.html",
50
+ "demo" => "theme-newsmagazine",
51
+ "image" => "news_magazine.jpg"
52
+ )
53
+ );
54
+ ?>
55
+
56
+ <style>
57
+
58
+ #main_featured_themes_page #featured-themes-list li a.download {
59
+ padding-right: 30px;
60
+ background:url(<?php echo $image_url; ?>down.png) no-repeat right;
61
+ }
62
+
63
+ </style>
64
+
65
+
66
+ <div id="main_featured_themes_page">
67
+ <div class="featured_container">
68
+ <div class="page_header">
69
+ <h1><?php echo "Featured Themes"; ?></h1>
70
+ </div>
71
+ <div class="featured_header">
72
+ <a target="_blank" href="https://web-dorado.com/wordpress-themes.html?source=<?php echo $slug; ?>">
73
+ <h1><?php echo "WORDPRESS THEMES"; ?></h1>
74
+ <h2 class="get_themes"><?php echo "ALL FOR $40 ONLY "; ?><span>- <?php echo "SAVE 80%"; ?></span></h2>
75
+ <div class="try-now">
76
+ <span><?php echo "TRY NOW"; ?></span>
77
+ </div>
78
+ </a>
79
+ </div>
80
+ <ul id="featured-themes-list">
81
+ <?php foreach($WDWThemes as $key=>$WDWTheme) : ?>
82
+ <li class="<?php echo $key; ?>">
83
+ <div class="theme_img">
84
+ <img src="<?php echo $image_url . $WDWTheme["image"]; ?>">
85
+ </div>
86
+ <div class="title">
87
+ <h3 class="heading"><?php echo $WDWTheme["title"]; ?></h3>
88
+ </div>
89
+ <div class="description">
90
+ <p><?php echo $WDWTheme["description"]; ?></p>
91
+ </div>
92
+ <div class="links">
93
+ <a target="_blank" href="<?php echo $demo_url . $WDWTheme["demo"]."?source=".$slug; ?>" class="demo"><?php echo "Demo"; ?></a>
94
+ <a target="_blank" href="<?php echo $site_url . $WDWTheme["link"]."?source=".$slug; ?>" class="download"><?php echo "Free Download"; ?></a>
95
+ </div>
96
+ </li>
97
+ <?php endforeach; ?>
98
+ </ul>
99
+ </div>
100
+ </div>
101
+
102
+
103
+ <?php }
104
+ ?>
form-maker.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: This plugin is a modern and advanced tool for easy and fast creating of a WordPress Form. The backend interface is intuitive and user friendly which allows users far from scripting and programming to create WordPress Forms.
6
- * Version: 1.10.3
7
  * Author: WebDorado
8
  * Author URI: https://web-dorado.com/
9
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
@@ -279,7 +279,7 @@ function register_fmemailverification_cpt(){
279
  // Activate plugin.
280
  function form_maker_activate() {
281
  $version = get_option("wd_form_maker_version");
282
- $new_version = '1.10.3';
283
  global $wpdb;
284
  if (!$version) {
285
  add_option("wd_form_maker_version", $new_version, '', 'no');
@@ -486,8 +486,6 @@ function form_maker_front_end_scripts() {
486
 
487
  // wp_enqueue_script('mootools', WD_FM_URL . '/js/mootools.js', array(), '1.12');
488
  wp_enqueue_script('gmap_form', WD_FM_URL . '/js/if_gmap_front_end.js');
489
- wp_enqueue_script('jelly.min', WD_FM_URL . '/js/jelly.min.js');
490
- wp_enqueue_script('file-upload', WD_FM_URL . '/js/file-upload.js');
491
  // wp_enqueue_style('gmap_styles_', WD_FM_URL . '/css/style_for_map.css');
492
 
493
  wp_enqueue_script('Calendar', WD_FM_URL . '/js/calendar/calendar.js');
3
  * Plugin Name: Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: This plugin is a modern and advanced tool for easy and fast creating of a WordPress Form. The backend interface is intuitive and user friendly which allows users far from scripting and programming to create WordPress Forms.
6
+ * Version: 1.10.4
7
  * Author: WebDorado
8
  * Author URI: https://web-dorado.com/
9
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
279
  // Activate plugin.
280
  function form_maker_activate() {
281
  $version = get_option("wd_form_maker_version");
282
+ $new_version = '1.10.4';
283
  global $wpdb;
284
  if (!$version) {
285
  add_option("wd_form_maker_version", $new_version, '', 'no');
486
 
487
  // wp_enqueue_script('mootools', WD_FM_URL . '/js/mootools.js', array(), '1.12');
488
  wp_enqueue_script('gmap_form', WD_FM_URL . '/js/if_gmap_front_end.js');
 
 
489
  // wp_enqueue_style('gmap_styles_', WD_FM_URL . '/css/style_for_map.css');
490
 
491
  wp_enqueue_script('Calendar', WD_FM_URL . '/js/calendar/calendar.js');
form_maker_notices_class.php CHANGED
@@ -1,246 +1,246 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit;
5
- }
6
-
7
- /**
8
- * FM_Notices Class
9
- *
10
- */
11
- class FM_Notices {
12
- static $instance;
13
-
14
- public static function instance() {
15
- if ( ! isset( self::$instance ) ) {
16
- self::$instance = new FM_Notices();
17
- }
18
-
19
- return self::$instance;
20
- }
21
-
22
- public $notice_spam = 0;
23
- public $notice_spam_max = 1;
24
-
25
- // Basic actions to run
26
- public function __construct() {
27
-
28
- // Runs the admin notice ignore function incase a dismiss button has been clicked
29
- add_action( 'admin_init', array( $this, 'admin_notice_ignore' ) );
30
-
31
- // Runs the admin notice temp ignore function incase a temp dismiss link has been clicked
32
- add_action( 'admin_init', array( $this, 'admin_notice_temp_ignore' ) );
33
- add_action('admin_notices', array($this, 'wd_admin_notices'));
34
-
35
- }
36
-
37
- // Checks to ensure notices aren't disabled and the user has the correct permissions.
38
- public function fm_admin_notice() {
39
-
40
- $fm_settings = get_option( 'fm_admin_notice' );
41
- if ( ! isset( $fm_settings['disable_admin_notices'] ) || ( isset( $fm_settings['disable_admin_notices'] ) && $fm_settings['disable_admin_notices'] == 0 ) ) {
42
- if ( current_user_can( 'manage_options' ) ) {
43
- return true;
44
- }
45
- }
46
-
47
- return false;
48
-
49
- }
50
-
51
- // Primary notice function that can be called from an outside function sending necessary variables
52
- public function admin_notice( $admin_notices ) {
53
-
54
- // Check options
55
- if ( ! $this->fm_admin_notice() ) {
56
- return false;
57
- }
58
-
59
- foreach ( $admin_notices as $slug => $admin_notice ) {
60
- // Call for spam protection
61
- if ( $this->anti_notice_spam() ) {
62
- return false;
63
- }
64
-
65
- // Check for proper page to display on
66
- if ( isset( $admin_notices[ $slug ]['pages'] ) && is_array( $admin_notices[ $slug ]['pages'] ) ) {
67
- if ( ! $this->admin_notice_pages( $admin_notices[ $slug ]['pages'] ) ) {
68
- return false;
69
- }
70
- }
71
- // Check for required fields
72
- if ( ! $this->required_fields( $admin_notices[ $slug ] ) ) {
73
- // Get the current date then set start date to either passed value or current date value and add interval
74
- $current_date = current_time( "n/j/Y" );
75
- $start = ( isset( $admin_notices[ $slug ]['start'] ) ? $admin_notices[ $slug ]['start'] : $current_date );
76
- $start = date( "n/j/Y", strtotime( $start ) );
77
- $date_array = explode( '/', $start );
78
- $interval = ( isset( $admin_notices[ $slug ]['int'] ) ? $admin_notices[ $slug ]['int'] : 0 );
79
- $date_array[1] += $interval;
80
- $start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
81
-
82
- // This is the main notices storage option
83
- $admin_notices_option = get_option( 'fm_admin_notice', array() );
84
- // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information
85
- if ( ! array_key_exists( $slug, $admin_notices_option ) ) {
86
- $admin_notices_option[ $slug ]['start'] = $start;
87
- $admin_notices_option[ $slug ]['int'] = $interval;
88
- update_option( 'fm_admin_notice', $admin_notices_option );
89
- }
90
-
91
- // Sanity check to ensure we have accurate information
92
- // New date information will not overwrite old date information
93
- $admin_display_check = ( isset( $admin_notices_option[ $slug ]['dismissed'] ) ? $admin_notices_option[ $slug ]['dismissed'] : 0 );
94
-
95
- $admin_display_start = ( isset( $admin_notices_option[ $slug ]['start'] ) ? $admin_notices_option[ $slug ]['start'] : $start );
96
- $admin_display_interval = ( isset( $admin_notices_option[ $slug ]['int'] ) ? $admin_notices_option[ $slug ]['int'] : $interval );
97
- $admin_display_msg = ( isset( $admin_notices[ $slug ]['msg'] ) ? $admin_notices[ $slug ]['msg'] : '' );
98
- $admin_display_title = ( isset( $admin_notices[ $slug ]['title'] ) ? $admin_notices[ $slug ]['title'] : '' );
99
- $admin_display_link = ( isset( $admin_notices[ $slug ]['link'] ) ? $admin_notices[ $slug ]['link'] : '' );
100
- $output_css = false;
101
- // Ensure the notice hasn't been hidden and that the current date is after the start date
102
- if ($admin_display_check == 0 && strtotime( $admin_display_start ) <= strtotime( $current_date )) {
103
-
104
- // Get remaining query string
105
- $query_str = (isset($admin_notices[$slug]['later_link']) ? $admin_notices[$slug]['later_link'] : esc_url(add_query_arg('fm_admin_notice_ignore', $slug)));
106
-
107
- // Admin notice display output
108
- echo '<div class="update-nag fm-admin-notice">';
109
- echo '<div class="fm-notice-logo"></div>';
110
- echo ' <p class="fm-notice-title">';
111
- echo $admin_display_title;
112
- echo ' </p>';
113
- echo ' <p class="fm-notice-body">';
114
- echo $admin_display_msg;
115
- echo ' </p>';
116
- echo '<ul class="fm-notice-body fm-blue">
117
- ' . $admin_display_link . '
118
- </ul>';
119
- echo '<a href="' . $query_str . '" class="dashicons dashicons-dismiss"></a>';
120
- echo '</div>';
121
-
122
- $this->notice_spam += 1;
123
- $output_css = true;
124
- }
125
- if ( $output_css ) {
126
- wp_enqueue_style( 'fm-admin-notices', WD_FM_URL .'/css/notices.css?fm_ver=' . get_option("wd_form_maker_version") );
127
- }
128
- }
129
- }
130
- }
131
-
132
- // Spam protection check
133
- public function anti_notice_spam() {
134
-
135
- if ( $this->notice_spam >= $this->notice_spam_max ) {
136
- return true;
137
- }
138
-
139
- return false;
140
- }
141
-
142
- // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
143
- public function admin_notice_ignore() {
144
-
145
- // If user clicks to ignore the notice, update the option to not show it again
146
- if ( isset( $_GET['fm_admin_notice_ignore'] ) ) {
147
-
148
- $admin_notices_option = get_option( 'fm_admin_notice', array() );
149
- $admin_notices_option[ $_GET['fm_admin_notice_ignore'] ]['dismissed'] = 1;
150
- update_option( 'fm_admin_notice', $admin_notices_option );
151
- $query_str = remove_query_arg( 'fm_admin_notice_ignore' );
152
- wp_redirect( $query_str );
153
- exit;
154
- }
155
- }
156
-
157
- // Temp Ignore function that gets ran at admin init to ensure any messages that were temp dismissed get their start date changed
158
- public function admin_notice_temp_ignore() {
159
-
160
- // If user clicks to temp ignore the notice, update the option to change the start date - default interval of 14 days
161
- if ( isset( $_GET['fm_admin_notice_temp_ignore'] ) ) {
162
-
163
- $admin_notices_option = get_option( 'fm_admin_notice', array() );
164
-
165
- $current_date = current_time( "n/j/Y" );
166
- $date_array = explode( '/', $current_date );
167
- $interval = ( isset( $_GET['fm_int'] ) ? $_GET['fm_int'] : 14 );
168
- $date_array[1] += $interval;
169
- $new_start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
170
-
171
- $admin_notices_option[ $_GET['fm_admin_notice_temp_ignore'] ]['start'] = $new_start;
172
- $admin_notices_option[ $_GET['fm_admin_notice_temp_ignore'] ]['dismissed'] = 0;
173
- update_option( 'fm_admin_notice', $admin_notices_option );
174
- $query_str = remove_query_arg( array( 'fm_admin_notice_temp_ignore', 'fm_int' ) );
175
- wp_redirect( $query_str );
176
- exit;
177
- }
178
- }
179
-
180
- public function admin_notice_pages( $pages ) {
181
-
182
- foreach ( $pages as $key => $page ) {
183
- if ( is_array( $page ) ) {
184
- if ( isset( $_GET['page'] ) && $_GET['page'] == $page[0] && isset( $_GET['tab'] ) && $_GET['tab'] == $page[1] ) {
185
- return true;
186
- }
187
- } else {
188
- if ( $page == 'all' ) {
189
- return true;
190
- }
191
- if ( get_current_screen()->id === $page ) {
192
- return true;
193
- }
194
- if ( isset( $_GET['page'] ) && $_GET['page'] == $page ) {
195
- return true;
196
- }
197
- }
198
-
199
- return false;
200
- }
201
- }
202
-
203
- // Required fields check
204
- public function required_fields( $fields ) {
205
- if ( ! isset( $fields['msg'] ) || ( isset( $fields['msg'] ) && empty( $fields['msg'] ) ) ) {
206
- return true;
207
- }
208
-
209
- if ( ! isset( $fields['title'] ) || ( isset( $fields['title'] ) && empty( $fields['title'] ) ) ) {
210
- return true;
211
- }
212
-
213
- return false;
214
- }
215
-
216
- // Special parameters function that is to be used in any extension of this class
217
- public function special_parameters( $admin_notices ) {
218
- // Intentionally left blank
219
- }
220
- public function wd_admin_notices() {
221
- $two_week_review_ignore = add_query_arg(array('fm_admin_notice_ignore' => 'two_week_review'));
222
- $two_week_review_temp = add_query_arg(array('fm_admin_notice_temp_ignore' => 'two_week_review', 'int' => 14));
223
- $notices['two_week_review'] = array(
224
- 'title' => __('Leave A Review?', 'fm'),
225
- 'msg' => sprintf(__('We hope you\'ve enjoyed using WordPress %s! Would you consider leaving us a review on WordPress.org?', 'fm'), 'Form Maker'),
226
- 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://wordpress.org/support/view/plugin-reviews/form-maker?filter=5" target="_blank">' . __('Sure! I\'d love to!', 'fm') . '</a></li>
227
- <li><span class="dashicons dashicons-smiley"></span><a href="' . $two_week_review_ignore . '"> ' . __('I\'ve already left a review', 'fm') . '</a></li>
228
- <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $two_week_review_temp . '">' . __('Maybe Later', 'fm') . '</a></li>
229
- <li><span class="dashicons dashicons-dismiss"></span><a href="' . $two_week_review_ignore . '">' . __('Never show again', 'fm') . '</a></li>',
230
- 'later_link' => $two_week_review_temp,
231
- 'int' => 14
232
- );
233
- $one_week_support = add_query_arg(array('fm_admin_notice_ignore' => 'one_week_support'));
234
- $notices['one_week_support'] = array(
235
- 'title' => __('Hey! How\'s It Going?', 'fm'),
236
- 'msg' => sprintf(__('Thank you for using WordPress %s! We hope that you\'ve found everything you need, but if you have any questions:', 'fm'), 'Form Maker'),
237
- 'link' => '<li><span class="dashicons dashicons-media-text"></span><a target="_blank" href="https://web-dorado.com/wordpress-form-maker/creating-form.html">' . __('Check out User Guide', 'fm') . '</a></li>
238
- <li><span class="dashicons dashicons-sos"></span><a target="_blank" href="https://web-dorado.com/forum/26-form-maker.html">' . __('Get Some Help', 'fm') . '</a></li>
239
- <li><span class="dashicons dashicons-dismiss"></span><a href="' . $one_week_support . '">' . __('Never show again', 'fm') . '</a></li>',
240
- 'int' => 7
241
- );
242
- $this->admin_notice($notices);
243
- }
244
-
245
- }
246
-
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * FM_Notices Class
9
+ *
10
+ */
11
+ class FM_Notices {
12
+ static $instance;
13
+
14
+ public static function instance() {
15
+ if ( ! isset( self::$instance ) ) {
16
+ self::$instance = new FM_Notices();
17
+ }
18
+
19
+ return self::$instance;
20
+ }
21
+
22
+ public $notice_spam = 0;
23
+ public $notice_spam_max = 1;
24
+
25
+ // Basic actions to run
26
+ public function __construct() {
27
+
28
+ // Runs the admin notice ignore function incase a dismiss button has been clicked
29
+ add_action( 'admin_init', array( $this, 'admin_notice_ignore' ) );
30
+
31
+ // Runs the admin notice temp ignore function incase a temp dismiss link has been clicked
32
+ add_action( 'admin_init', array( $this, 'admin_notice_temp_ignore' ) );
33
+ add_action('admin_notices', array($this, 'wd_admin_notices'));
34
+
35
+ }
36
+
37
+ // Checks to ensure notices aren't disabled and the user has the correct permissions.
38
+ public function fm_admin_notice() {
39
+
40
+ $fm_settings = get_option( 'fm_admin_notice' );
41
+ if ( ! isset( $fm_settings['disable_admin_notices'] ) || ( isset( $fm_settings['disable_admin_notices'] ) && $fm_settings['disable_admin_notices'] == 0 ) ) {
42
+ if ( current_user_can( 'manage_options' ) ) {
43
+ return true;
44
+ }
45
+ }
46
+
47
+ return false;
48
+
49
+ }
50
+
51
+ // Primary notice function that can be called from an outside function sending necessary variables
52
+ public function admin_notice( $admin_notices ) {
53
+
54
+ // Check options
55
+ if ( ! $this->fm_admin_notice() ) {
56
+ return false;
57
+ }
58
+
59
+ foreach ( $admin_notices as $slug => $admin_notice ) {
60
+ // Call for spam protection
61
+ if ( $this->anti_notice_spam() ) {
62
+ return false;
63
+ }
64
+
65
+ // Check for proper page to display on
66
+ if ( isset( $admin_notices[ $slug ]['pages'] ) && is_array( $admin_notices[ $slug ]['pages'] ) ) {
67
+ if ( ! $this->admin_notice_pages( $admin_notices[ $slug ]['pages'] ) ) {
68
+ return false;
69
+ }
70
+ }
71
+ // Check for required fields
72
+ if ( ! $this->required_fields( $admin_notices[ $slug ] ) ) {
73
+ // Get the current date then set start date to either passed value or current date value and add interval
74
+ $current_date = current_time( "n/j/Y" );
75
+ $start = ( isset( $admin_notices[ $slug ]['start'] ) ? $admin_notices[ $slug ]['start'] : $current_date );
76
+ $start = date( "n/j/Y", strtotime( $start ) );
77
+ $date_array = explode( '/', $start );
78
+ $interval = ( isset( $admin_notices[ $slug ]['int'] ) ? $admin_notices[ $slug ]['int'] : 0 );
79
+ $date_array[1] += $interval;
80
+ $start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
81
+
82
+ // This is the main notices storage option
83
+ $admin_notices_option = get_option( 'fm_admin_notice', array() );
84
+ // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information
85
+ if ( ! array_key_exists( $slug, $admin_notices_option ) ) {
86
+ $admin_notices_option[ $slug ]['start'] = $start;
87
+ $admin_notices_option[ $slug ]['int'] = $interval;
88
+ update_option( 'fm_admin_notice', $admin_notices_option );
89
+ }
90
+
91
+ // Sanity check to ensure we have accurate information
92
+ // New date information will not overwrite old date information
93
+ $admin_display_check = ( isset( $admin_notices_option[ $slug ]['dismissed'] ) ? $admin_notices_option[ $slug ]['dismissed'] : 0 );
94
+
95
+ $admin_display_start = ( isset( $admin_notices_option[ $slug ]['start'] ) ? $admin_notices_option[ $slug ]['start'] : $start );
96
+ $admin_display_interval = ( isset( $admin_notices_option[ $slug ]['int'] ) ? $admin_notices_option[ $slug ]['int'] : $interval );
97
+ $admin_display_msg = ( isset( $admin_notices[ $slug ]['msg'] ) ? $admin_notices[ $slug ]['msg'] : '' );
98
+ $admin_display_title = ( isset( $admin_notices[ $slug ]['title'] ) ? $admin_notices[ $slug ]['title'] : '' );
99
+ $admin_display_link = ( isset( $admin_notices[ $slug ]['link'] ) ? $admin_notices[ $slug ]['link'] : '' );
100
+ $output_css = false;
101
+ // Ensure the notice hasn't been hidden and that the current date is after the start date
102
+ if ($admin_display_check == 0 && strtotime( $admin_display_start ) <= strtotime( $current_date )) {
103
+
104
+ // Get remaining query string
105
+ $query_str = (isset($admin_notices[$slug]['later_link']) ? $admin_notices[$slug]['later_link'] : esc_url(add_query_arg('fm_admin_notice_ignore', $slug)));
106
+
107
+ // Admin notice display output
108
+ echo '<div class="update-nag fm-admin-notice">';
109
+ echo '<div class="fm-notice-logo"></div>';
110
+ echo ' <p class="fm-notice-title">';
111
+ echo $admin_display_title;
112
+ echo ' </p>';
113
+ echo ' <p class="fm-notice-body">';
114
+ echo $admin_display_msg;
115
+ echo ' </p>';
116
+ echo '<ul class="fm-notice-body fm-blue">
117
+ ' . $admin_display_link . '
118
+ </ul>';
119
+ echo '<a href="' . $query_str . '" class="dashicons dashicons-dismiss"></a>';
120
+ echo '</div>';
121
+
122
+ $this->notice_spam += 1;
123
+ $output_css = true;
124
+ }
125
+ if ( $output_css ) {
126
+ wp_enqueue_style( 'fm-admin-notices', WD_FM_URL .'/css/notices.css?fm_ver=' . get_option("wd_form_maker_version") );
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ // Spam protection check
133
+ public function anti_notice_spam() {
134
+
135
+ if ( $this->notice_spam >= $this->notice_spam_max ) {
136
+ return true;
137
+ }
138
+
139
+ return false;
140
+ }
141
+
142
+ // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
143
+ public function admin_notice_ignore() {
144
+
145
+ // If user clicks to ignore the notice, update the option to not show it again
146
+ if ( isset( $_GET['fm_admin_notice_ignore'] ) ) {
147
+
148
+ $admin_notices_option = get_option( 'fm_admin_notice', array() );
149
+ $admin_notices_option[ $_GET['fm_admin_notice_ignore'] ]['dismissed'] = 1;
150
+ update_option( 'fm_admin_notice', $admin_notices_option );
151
+ $query_str = remove_query_arg( 'fm_admin_notice_ignore' );
152
+ wp_redirect( $query_str );
153
+ exit;
154
+ }
155
+ }
156
+
157
+ // Temp Ignore function that gets ran at admin init to ensure any messages that were temp dismissed get their start date changed
158
+ public function admin_notice_temp_ignore() {
159
+
160
+ // If user clicks to temp ignore the notice, update the option to change the start date - default interval of 14 days
161
+ if ( isset( $_GET['fm_admin_notice_temp_ignore'] ) ) {
162
+
163
+ $admin_notices_option = get_option( 'fm_admin_notice', array() );
164
+
165
+ $current_date = current_time( "n/j/Y" );
166
+ $date_array = explode( '/', $current_date );
167
+ $interval = ( isset( $_GET['fm_int'] ) ? $_GET['fm_int'] : 14 );
168
+ $date_array[1] += $interval;
169
+ $new_start = date( "n/j/Y", mktime( 0, 0, 0, $date_array[0], $date_array[1], $date_array[2] ) );
170
+
171
+ $admin_notices_option[ $_GET['fm_admin_notice_temp_ignore'] ]['start'] = $new_start;
172
+ $admin_notices_option[ $_GET['fm_admin_notice_temp_ignore'] ]['dismissed'] = 0;
173
+ update_option( 'fm_admin_notice', $admin_notices_option );
174
+ $query_str = remove_query_arg( array( 'fm_admin_notice_temp_ignore', 'fm_int' ) );
175
+ wp_redirect( $query_str );
176
+ exit;
177
+ }
178
+ }
179
+
180
+ public function admin_notice_pages( $pages ) {
181
+
182
+ foreach ( $pages as $key => $page ) {
183
+ if ( is_array( $page ) ) {
184
+ if ( isset( $_GET['page'] ) && $_GET['page'] == $page[0] && isset( $_GET['tab'] ) && $_GET['tab'] == $page[1] ) {
185
+ return true;
186
+ }
187
+ } else {
188
+ if ( $page == 'all' ) {
189
+ return true;
190
+ }
191
+ if ( get_current_screen()->id === $page ) {
192
+ return true;
193
+ }
194
+ if ( isset( $_GET['page'] ) && $_GET['page'] == $page ) {
195
+ return true;
196
+ }
197
+ }
198
+
199
+ return false;
200
+ }
201
+ }
202
+
203
+ // Required fields check
204
+ public function required_fields( $fields ) {
205
+ if ( ! isset( $fields['msg'] ) || ( isset( $fields['msg'] ) && empty( $fields['msg'] ) ) ) {
206
+ return true;
207
+ }
208
+
209
+ if ( ! isset( $fields['title'] ) || ( isset( $fields['title'] ) && empty( $fields['title'] ) ) ) {
210
+ return true;
211
+ }
212
+
213
+ return false;
214
+ }
215
+
216
+ // Special parameters function that is to be used in any extension of this class
217
+ public function special_parameters( $admin_notices ) {
218
+ // Intentionally left blank
219
+ }
220
+ public function wd_admin_notices() {
221
+ $two_week_review_ignore = add_query_arg(array('fm_admin_notice_ignore' => 'two_week_review'));
222
+ $two_week_review_temp = add_query_arg(array('fm_admin_notice_temp_ignore' => 'two_week_review', 'int' => 14));
223
+ $notices['two_week_review'] = array(
224
+ 'title' => __('Leave A Review?', 'fm'),
225
+ 'msg' => sprintf(__('We hope you\'ve enjoyed using WordPress %s! Would you consider leaving us a review on WordPress.org?', 'fm'), 'Form Maker'),
226
+ 'link' => '<li><span class="dashicons dashicons-external"></span><a href="https://wordpress.org/support/view/plugin-reviews/form-maker?filter=5" target="_blank">' . __('Sure! I\'d love to!', 'fm') . '</a></li>
227
+ <li><span class="dashicons dashicons-smiley"></span><a href="' . $two_week_review_ignore . '"> ' . __('I\'ve already left a review', 'fm') . '</a></li>
228
+ <li><span class="dashicons dashicons-calendar-alt"></span><a href="' . $two_week_review_temp . '">' . __('Maybe Later', 'fm') . '</a></li>
229
+ <li><span class="dashicons dashicons-dismiss"></span><a href="' . $two_week_review_ignore . '">' . __('Never show again', 'fm') . '</a></li>',
230
+ 'later_link' => $two_week_review_temp,
231
+ 'int' => 14
232
+ );
233
+ $one_week_support = add_query_arg(array('fm_admin_notice_ignore' => 'one_week_support'));
234
+ $notices['one_week_support'] = array(
235
+ 'title' => __('Hey! How\'s It Going?', 'fm'),
236
+ 'msg' => sprintf(__('Thank you for using WordPress %s! We hope that you\'ve found everything you need, but if you have any questions:', 'fm'), 'Form Maker'),
237
+ 'link' => '<li><span class="dashicons dashicons-media-text"></span><a target="_blank" href="https://web-dorado.com/wordpress-form-maker/creating-form.html">' . __('Check out User Guide', 'fm') . '</a></li>
238
+ <li><span class="dashicons dashicons-sos"></span><a target="_blank" href="https://web-dorado.com/forum/26-form-maker.html">' . __('Get Some Help', 'fm') . '</a></li>
239
+ <li><span class="dashicons dashicons-dismiss"></span><a href="' . $one_week_support . '">' . __('Never show again', 'fm') . '</a></li>',
240
+ 'int' => 7
241
+ );
242
+ $this->admin_notice($notices);
243
+ }
244
+
245
+ }
246
+
frontend/controllers/FMControllerForm_maker.php CHANGED
@@ -1,46 +1,46 @@
1
- <?php
2
-
3
- class FMControllerForm_maker {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute($id) {
22
- return $this->display($id);
23
- }
24
-
25
- public function display($id) {
26
- if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
27
- @session_start();
28
- }
29
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_maker.php";
30
- $model = new FMModelForm_maker();
31
-
32
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_maker.php";
33
- $view = new FMViewForm_maker($model);
34
-
35
- return $view->display((int)$id);
36
- }
37
- ////////////////////////////////////////////////////////////////////////////////////////
38
- // Getters & Setters //
39
- ////////////////////////////////////////////////////////////////////////////////////////
40
- ////////////////////////////////////////////////////////////////////////////////////////
41
- // Private Methods //
42
- ////////////////////////////////////////////////////////////////////////////////////////
43
- ////////////////////////////////////////////////////////////////////////////////////////
44
- // Listeners //
45
- ////////////////////////////////////////////////////////////////////////////////////////
46
  }
1
+ <?php
2
+
3
+ class FMControllerForm_maker {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute($id) {
22
+ return $this->display($id);
23
+ }
24
+
25
+ public function display($id) {
26
+ if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
27
+ @session_start();
28
+ }
29
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_maker.php";
30
+ $model = new FMModelForm_maker();
31
+
32
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_maker.php";
33
+ $view = new FMViewForm_maker($model);
34
+
35
+ return $view->display((int)$id);
36
+ }
37
+ ////////////////////////////////////////////////////////////////////////////////////////
38
+ // Getters & Setters //
39
+ ////////////////////////////////////////////////////////////////////////////////////////
40
+ ////////////////////////////////////////////////////////////////////////////////////////
41
+ // Private Methods //
42
+ ////////////////////////////////////////////////////////////////////////////////////////
43
+ ////////////////////////////////////////////////////////////////////////////////////////
44
+ // Listeners //
45
+ ////////////////////////////////////////////////////////////////////////////////////////
46
  }
frontend/controllers/FMControllerForm_submissions.php CHANGED
@@ -1,124 +1,124 @@
1
- <?php
2
-
3
- class FMControllerForm_submissions {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute($id = '', $startdate = '', $enddate = '', $submit_date = '', $submitter_ip = '', $username = '', $useremail = '', $form_fields = '', $show = '') {
22
- require_once(WD_FM_DIR . '/framework/WDW_FM_Library.php');
23
- $task = WDW_FM_Library::get('action');
24
- if (method_exists($this, $task) && $task != 'display') {
25
- return $this->$task();
26
- }
27
- else {
28
- return $this->display((int)$id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $show);
29
- }
30
- }
31
-
32
- public function display($id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $show) {
33
- if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
34
- @session_start();
35
- }
36
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
37
- $model = new FMModelForm_submissions();
38
-
39
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
40
- $view = new FMViewForm_submissions($model);
41
-
42
- $show = explode(",", $show);
43
- $csv = isset($show[0]) ? $show[0] : 0;
44
- $xml = isset($show[1]) ? $show[1] : 0;
45
- $title = isset($show[2]) ? $show[2] : 0;
46
- $search = isset($show[3]) ? $show[3] : 0;
47
- $ordering = isset($show[4]) ? $show[4] : 0;
48
- $entries = isset($show[5]) ? $show[5] : 0;
49
- $views = isset($show[6]) ? $show[6] : 0;
50
- $conversion_rate = isset($show[7]) ? $show[7] : 0;
51
- $pagination = isset($show[8]) ? $show[8] : 0;
52
- $stats = isset($show[9]) ? $show[9] : 0;
53
-
54
- return $view->display($id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $csv, $xml, $title, $search, $ordering, $entries, $views, $conversion_rate, $pagination, $stats);
55
- }
56
-
57
- public function get_frontend_stats() {
58
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
59
- $model = new FMModelForm_submissions();
60
-
61
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
62
- $view = new FMViewForm_submissions($model);
63
- $view->show_stats();
64
- }
65
-
66
- public function frontend_show_map() {
67
- $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
68
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
69
- $model = new FMModelForm_submissions();
70
-
71
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
72
- $view = new FMViewForm_submissions($model);
73
- $view->show_map($form_id);
74
- }
75
-
76
- public function frontend_show_matrix() {
77
- $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
78
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
79
- $model = new FMModelForm_submissions();
80
-
81
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
82
- $view = new FMViewForm_submissions($model);
83
- $view->show_matrix($form_id);
84
- }
85
-
86
- public function frontend_paypal_info() {
87
- $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
88
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
89
- $model = new FMModelForm_submissions();
90
-
91
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
92
- $view = new FMViewForm_submissions($model);
93
- $view->paypal_info($form_id);
94
- }
95
-
96
- public function frontend_generate_csv() {
97
- $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
98
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
99
- $model = new FMModelForm_submissions();
100
-
101
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
102
- $view = new FMViewForm_submissions($model);
103
- $view->generate_csv($form_id);
104
- }
105
-
106
- public function frontend_generate_xml() {
107
- $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
108
- require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
109
- $model = new FMModelForm_submissions();
110
-
111
- require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
112
- $view = new FMViewForm_submissions($model);
113
- $view->generate_xml($form_id);
114
- }
115
- ////////////////////////////////////////////////////////////////////////////////////////
116
- // Getters & Setters //
117
- ////////////////////////////////////////////////////////////////////////////////////////
118
- ////////////////////////////////////////////////////////////////////////////////////////
119
- // Private Methods //
120
- ////////////////////////////////////////////////////////////////////////////////////////
121
- ////////////////////////////////////////////////////////////////////////////////////////
122
- // Listeners //
123
- ////////////////////////////////////////////////////////////////////////////////////////
124
  }
1
+ <?php
2
+
3
+ class FMControllerForm_submissions {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute($id = '', $startdate = '', $enddate = '', $submit_date = '', $submitter_ip = '', $username = '', $useremail = '', $form_fields = '', $show = '') {
22
+ require_once(WD_FM_DIR . '/framework/WDW_FM_Library.php');
23
+ $task = WDW_FM_Library::get('action');
24
+ if (method_exists($this, $task) && $task != 'display') {
25
+ return $this->$task();
26
+ }
27
+ else {
28
+ return $this->display((int)$id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $show);
29
+ }
30
+ }
31
+
32
+ public function display($id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $show) {
33
+ if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
34
+ @session_start();
35
+ }
36
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
37
+ $model = new FMModelForm_submissions();
38
+
39
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
40
+ $view = new FMViewForm_submissions($model);
41
+
42
+ $show = explode(",", $show);
43
+ $csv = isset($show[0]) ? $show[0] : 0;
44
+ $xml = isset($show[1]) ? $show[1] : 0;
45
+ $title = isset($show[2]) ? $show[2] : 0;
46
+ $search = isset($show[3]) ? $show[3] : 0;
47
+ $ordering = isset($show[4]) ? $show[4] : 0;
48
+ $entries = isset($show[5]) ? $show[5] : 0;
49
+ $views = isset($show[6]) ? $show[6] : 0;
50
+ $conversion_rate = isset($show[7]) ? $show[7] : 0;
51
+ $pagination = isset($show[8]) ? $show[8] : 0;
52
+ $stats = isset($show[9]) ? $show[9] : 0;
53
+
54
+ return $view->display($id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $csv, $xml, $title, $search, $ordering, $entries, $views, $conversion_rate, $pagination, $stats);
55
+ }
56
+
57
+ public function get_frontend_stats() {
58
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
59
+ $model = new FMModelForm_submissions();
60
+
61
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
62
+ $view = new FMViewForm_submissions($model);
63
+ $view->show_stats();
64
+ }
65
+
66
+ public function frontend_show_map() {
67
+ $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
68
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
69
+ $model = new FMModelForm_submissions();
70
+
71
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
72
+ $view = new FMViewForm_submissions($model);
73
+ $view->show_map($form_id);
74
+ }
75
+
76
+ public function frontend_show_matrix() {
77
+ $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
78
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
79
+ $model = new FMModelForm_submissions();
80
+
81
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
82
+ $view = new FMViewForm_submissions($model);
83
+ $view->show_matrix($form_id);
84
+ }
85
+
86
+ public function frontend_paypal_info() {
87
+ $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
88
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
89
+ $model = new FMModelForm_submissions();
90
+
91
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
92
+ $view = new FMViewForm_submissions($model);
93
+ $view->paypal_info($form_id);
94
+ }
95
+
96
+ public function frontend_generate_csv() {
97
+ $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
98
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
99
+ $model = new FMModelForm_submissions();
100
+
101
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
102
+ $view = new FMViewForm_submissions($model);
103
+ $view->generate_csv($form_id);
104
+ }
105
+
106
+ public function frontend_generate_xml() {
107
+ $form_id = ((isset($_POST['form_id']) && esc_html($_POST['form_id']) != '') ? (int)esc_html($_POST['form_id']) : 0);
108
+ require_once WD_FM_DIR . "/frontend/models/FMModelForm_submissions.php";
109
+ $model = new FMModelForm_submissions();
110
+
111
+ require_once WD_FM_DIR . "/frontend/views/FMViewForm_submissions.php";
112
+ $view = new FMViewForm_submissions($model);
113
+ $view->generate_xml($form_id);
114
+ }
115
+ ////////////////////////////////////////////////////////////////////////////////////////
116
+ // Getters & Setters //
117
+ ////////////////////////////////////////////////////////////////////////////////////////
118
+ ////////////////////////////////////////////////////////////////////////////////////////
119
+ // Private Methods //
120
+ ////////////////////////////////////////////////////////////////////////////////////////
121
+ ////////////////////////////////////////////////////////////////////////////////////////
122
+ // Listeners //
123
+ ////////////////////////////////////////////////////////////////////////////////////////
124
  }
frontend/controllers/FMControllerVerify_email.php CHANGED
@@ -1,54 +1,54 @@
1
- <?php
2
-
3
- class FMControllerVerify_email {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- public function execute() {
22
- return $this->display();
23
- }
24
-
25
- public function display() {
26
- $gid = (int)((isset($_GET['gid']) && esc_html($_GET['gid']) != '') ? esc_html($_GET['gid']) : 0);
27
- $hashInfo = ((isset($_GET['h']) && esc_html($_GET['h']) != '') ? esc_html($_GET['h']) : 0);
28
- $hashInfo = explode("@",$hashInfo);
29
-
30
- $md5 = $hashInfo[0];
31
- $recipiend = isset($hashInfo[1]) ? $hashInfo[1] : '';
32
-
33
- if($gid <= 0 or strlen($md5) <= 0 or strlen($recipiend) <= 0)
34
- return;
35
-
36
- require_once WD_FM_DIR . "/frontend/models/FMModelVerify_email.php";
37
- $model = new FMModelVerify_email();
38
- $result = $model->setValidation($gid,$md5,$recipiend);
39
- if($result!==NULL) {
40
- require_once WD_FM_DIR . "/frontend/views/FMViewVerify_email.php";
41
- $view = new FMViewVerify_email($model);
42
- $view->display($result);
43
- }
44
- }
45
- ////////////////////////////////////////////////////////////////////////////////////////
46
- // Getters & Setters //
47
- ////////////////////////////////////////////////////////////////////////////////////////
48
- ////////////////////////////////////////////////////////////////////////////////////////
49
- // Private Methods //
50
- ////////////////////////////////////////////////////////////////////////////////////////
51
- ////////////////////////////////////////////////////////////////////////////////////////
52
- // Listeners //
53
- ////////////////////////////////////////////////////////////////////////////////////////
54
  }
1
+ <?php
2
+
3
+ class FMControllerVerify_email {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ public function execute() {
22
+ return $this->display();
23
+ }
24
+
25
+ public function display() {
26
+ $gid = (int)((isset($_GET['gid']) && esc_html($_GET['gid']) != '') ? esc_html($_GET['gid']) : 0);
27
+ $hashInfo = ((isset($_GET['h']) && esc_html($_GET['h']) != '') ? esc_html($_GET['h']) : 0);
28
+ $hashInfo = explode("@",$hashInfo);
29
+
30
+ $md5 = $hashInfo[0];
31
+ $recipiend = isset($hashInfo[1]) ? $hashInfo[1] : '';
32
+
33
+ if($gid <= 0 or strlen($md5) <= 0 or strlen($recipiend) <= 0)
34
+ return;
35
+
36
+ require_once WD_FM_DIR . "/frontend/models/FMModelVerify_email.php";
37
+ $model = new FMModelVerify_email();
38
+ $result = $model->setValidation($gid,$md5,$recipiend);
39
+ if($result!==NULL) {
40
+ require_once WD_FM_DIR . "/frontend/views/FMViewVerify_email.php";
41
+ $view = new FMViewVerify_email($model);
42
+ $view->display($result);
43
+ }
44
+ }
45
+ ////////////////////////////////////////////////////////////////////////////////////////
46
+ // Getters & Setters //
47
+ ////////////////////////////////////////////////////////////////////////////////////////
48
+ ////////////////////////////////////////////////////////////////////////////////////////
49
+ // Private Methods //
50
+ ////////////////////////////////////////////////////////////////////////////////////////
51
+ ////////////////////////////////////////////////////////////////////////////////////////
52
+ // Listeners //
53
+ ////////////////////////////////////////////////////////////////////////////////////////
54
  }
frontend/models/FMModelForm_submissions.php CHANGED
@@ -1,296 +1,296 @@
1
- <?php
2
-
3
- class FMModelForm_submissions {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- function showsubmissions($form_id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $csv, $xml, $title, $search, $ordering, $entries, $views, $conversion_rate, $pagination, $stats) {
22
- global $wpdb;
23
-
24
- $user = wp_get_current_user();
25
- $userGroups = $wpdb->get_var($wpdb->prepare("SELECT `user_id_wd` FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
26
- $users = explode(',', $userGroups);
27
- $users = array_slice($users, 0, count($users) - 1);
28
- $show_submits = false;
29
- if(!is_user_logged_in()) {
30
- if(!in_array('guest', $users))
31
- return false;
32
- }
33
- else {
34
- foreach($user->roles as $user_role) {
35
- if(in_array($user_role, $users))
36
- $show_submits = true;
37
- }
38
- if(!$show_submits)
39
- return false;
40
- }
41
- $from = $startdate;
42
- $to = $enddate;
43
-
44
- $filter_order = ((isset($_POST['order_by']) && esc_html(stripslashes($_POST['order_by'])) != '') ? esc_html(stripslashes($_POST['order_by'])) : 'group_id');
45
- $filter_order_Dir = ((isset($_POST['asc_or_desc']) && ($_POST['asc_or_desc'] == 'asc' || $_POST['asc_or_desc'] == 'desc')) ? esc_html($_POST['asc_or_desc']) : 'asc');
46
-
47
- $ip_search = $submitter_ip;
48
- $username_search = strtolower($username);
49
- $useremail_search = strtolower($useremail);
50
-
51
- $where = array();
52
- $lists['startdate'] = ((isset($_POST['startdate'])) ? esc_html(stripslashes($_POST['startdate'])) : '');
53
- $lists['enddate'] = ((isset($_POST['enddate'])) ? esc_html(stripslashes($_POST['enddate'])) : '');
54
- $lists['hide_label_list'] = ((isset($_POST['hide_label_list'])) ? esc_html(stripslashes($_POST['hide_label_list'])) : '');
55
-
56
- $lists['ip_search'] = ((isset($_POST['ip_search'])) ? esc_html(stripslashes($_POST['ip_search'])) : '');
57
- $lists['username_search'] = ((isset($_POST['username_search'])) ? esc_html(stripslashes($_POST['username_search'])) : '');
58
- $lists['useremail_search'] = ((isset($_POST['useremail_search'])) ? esc_html(stripslashes($_POST['useremail_search'])) : '');
59
- $limit = ((isset($_POST['page_number'])) ? ((int) $_POST['page_number'] - 1) * 20 : 0);
60
-
61
- if ( $lists['ip_search'] ) {
62
- $where[] = 'ip LIKE "%' . esc_sql($lists['ip_search']) . '%"';
63
- }
64
- if ( $lists['username_search'] ) {
65
- $where[] = 'user_id_wd IN (SELECT `id` FROM `' . $wpdb->prefix . 'users` WHERE `display_name` LIKE "%' . esc_sql($lists['username_search']) . '%")';
66
- }
67
- if ( $lists['useremail_search'] ) {
68
- $where[] = 'user_id_wd IN (SELECT `id` FROM `' . $wpdb->prefix . 'users` WHERE `user_email` LIKE "%' . esc_sql($lists['useremail_search']) . '%")';
69
- }
70
-
71
- if($from) {
72
- if($lists['startdate'] != '') {
73
- if(strtotime($from) > strtotime($lists['startdate']))
74
- $where[] = "`date` >= '" . $from . " 00:00:00'";
75
- else
76
- $where[] ="`date`>='" . $lists['startdate'] . " 00:00:00' ";
77
- }
78
- else
79
- $where[] = "`date` >= '" . $from . " 00:00:00'";
80
- }
81
- else {
82
- if($lists['startdate']!='')
83
- $where[] =" `date`>='".$lists['startdate']." 00:00:00' ";
84
- }
85
- if($to) {
86
- if($lists['enddate']!='') {
87
- if(strtotime($to) < strtotime($lists['enddate']))
88
- $where[] = "`date` <= '".$to." 23:59:59'";
89
- else
90
- $where[] ="`date`<='".$lists['enddate']." 23:59:59' ";
91
- }
92
- else
93
- $where[] = "`date` <= '".$to." 23:59:59'";
94
- }
95
- else {
96
- if($lists['enddate']!='')
97
- $where[] ="`date`<='".$lists['enddate']." 23:59:59' ";
98
- }
99
-
100
- $form_title = $wpdb->get_var($wpdb->prepare("SELECT `title` FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
101
-
102
- $where[] = 'form_id="' . (int)$form_id . '"';
103
- $where = ( count( $where ) ? ' ' . implode( ' AND ', $where ) : '' );
104
- $orderby = ' ';
105
- if ($filter_order == 'id' or $filter_order == 'title' or $filter_order == 'mail') {
106
- $orderby = ' ORDER BY `date` desc';
107
- }
108
- else {
109
- if ($filter_order == 'group_id' or $filter_order == 'date' or $filter_order == 'ip') {
110
- $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .'';
111
- }
112
- else {
113
- if ($filter_order == 'display_name' or $filter_order == 'user_email') {
114
- $orderby = ' ORDER BY (SELECT `'.$filter_order.'` FROM `' . $wpdb->prefix . 'users` WHERE id=user_id_wd) '. $filter_order_Dir .'';
115
- }
116
- }
117
- }
118
- $query = "SELECT distinct element_label FROM " . $wpdb->prefix . "formmaker_submits WHERE ". $where;
119
- $labels = $wpdb->get_col($query);
120
-
121
- $query = $wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "formmaker_submits WHERE form_id='%d' and element_label=0 limit 0, 1", $form_id);
122
- $ispaypal = $wpdb->get_var($query);
123
-
124
- $query = $wpdb->prepare('SELECT count(distinct group_id) FROM ' . $wpdb->prefix . 'formmaker_submits where form_id ="%d"', $form_id);
125
- $total_entries = $wpdb->get_var($query);
126
-
127
- $sorted_labels_type= array();
128
- $sorted_labels_id= array();
129
- $sorted_labels= array();
130
- $label_titles=array();
131
- $rows_ord = array();
132
- $rows = array();
133
- $total = 0;
134
- $join_count='';
135
- $checked_ids = '';
136
- $stats_fields = '';
137
-
138
- if($labels) {
139
- $label_id= array();
140
- $label_order= array();
141
- $label_order_original= array();
142
- $label_type= array();
143
- $this_form = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
144
- $checked_ids = $this_form->frontend_submit_fields;
145
- $stats_fields = $this_form->frontend_submit_stat_fields;
146
-
147
- if(strpos($this_form->label_order, 'type_paypal_')) {
148
- $this_form->label_order=$this_form->label_order."item_total#**id**#Item Total#**label**#type_paypal_payment_total#****#total#**id**#Total#**label**#type_paypal_payment_total#****#0#**id**#Payment Status#**label**#type_paypal_payment_status#****#";
149
- }
150
- $label_all = explode('#****#',$this_form->label_order);
151
- $label_all = array_slice($label_all,0, count($label_all)-1);
152
- foreach($label_all as $key => $label_each) {
153
- $label_id_each=explode('#**id**#',$label_each);
154
- array_push($label_id, $label_id_each[0]);
155
-
156
- $label_order_each=explode('#**label**#', $label_id_each[1]);
157
- array_push($label_order_original, $label_order_each[0]);
158
-
159
- $ptn = "/[^a-zA-Z0-9_]/";
160
- $rpltxt = "";
161
- $label_temp=preg_replace($ptn, $rpltxt, $label_order_each[0]);
162
- array_push($label_order, $label_temp);
163
- array_push($label_type, $label_order_each[1]);
164
- }
165
-
166
- $join_query=array();
167
- $join_where=array();
168
- $join='';
169
- $is_first=true;
170
-
171
- foreach($label_id as $key => $label) {
172
- if(in_array($label, $labels)) {
173
- array_push($sorted_labels_type, $label_type[$key]);
174
- array_push($sorted_labels, $label_order[$key]);
175
- array_push($sorted_labels_id, $label);
176
- array_push($label_titles, $label_order_original[$key]);
177
- $search_temp = isset($_POST[$form_id.'_'.$label.'_search']) ? $_POST[$form_id.'_'.$label.'_search'] : '';
178
- $search_temp = strtolower( $search_temp );
179
- $lists[$form_id.'_'.$label.'_search'] = $search_temp;
180
- if ( $search_temp ) {
181
- $join_query[] ='search';
182
- $join_where[] =array('label'=>$label, 'search'=>esc_sql($search_temp));
183
- }
184
- }
185
- }
186
- if(strpos($filter_order,"_field")) {
187
- if (in_array(str_replace("_field", "", $filter_order), $labels)) {
188
- $join_query[] ='sort';
189
- $join_where[] =array('label'=>str_replace("_field", "", $filter_order));
190
- }
191
- }
192
- $cols = 'group_id';
193
- if ($filter_order == 'date' or $filter_order == 'ip') {
194
- $cols = 'group_id, date, ip';
195
- }
196
-
197
- switch(count($join_query)) {
198
- case 0:
199
- $join='SELECT distinct group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '. $where;
200
- break;
201
- case 1:
202
- if($join_query[0]=='sort') {
203
- $join = 'SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[0]['label'].'" ';
204
- $join_count = 'SELECT count(group_id) FROM ' . $wpdb->prefix . 'formmaker_submits WHERE form_id="'.esc_sql((int)$form_id).'" AND element_label="'.$join_where[0]['label'].'" ';
205
- $orderby = ' ORDER BY `element_value` '. $filter_order_Dir .'';
206
- }
207
- else
208
- $join='SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE element_label="'.$join_where[0]['label'].'" AND element_value LIKE "%'.$join_where[0]['search'].'%" AND '. $where;
209
- break;
210
- default:
211
- $join='SELECT t.group_id FROM (SELECT '.$cols.' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[0]['label'].'" AND element_value LIKE "%'.$join_where[0]['search'].'%" ) as t ';
212
- for($key=1; $key< count($join_query); $key++) {
213
- if($join_query[$key]=='sort') {
214
- $join.='LEFT JOIN (SELECT group_id as group_id'.$key.', element_value FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[$key]['label'].'") as t'.$key.' ON t'.$key.'.group_id'.$key.'=t.group_id ';
215
- $orderby = ' ORDER BY t'.$key.'.`element_value` '. $filter_order_Dir .'';
216
- }
217
- else
218
- $join.='INNER JOIN (SELECT group_id as group_id'.$key.' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[$key]['label'].'" AND element_value LIKE "%'.$join_where[$key]['search'].'%" ) as t'.$key.' ON t'.$key.'.group_id'.$key.'=t.group_id ';
219
- }
220
- break;
221
- }
222
-
223
- $pos = strpos($join, 'SELECT t.group_id');
224
- if ($pos === false)
225
- $query = str_replace(array('SELECT group_id','SELECT distinct group_id'), array('SELECT count(distinct group_id)','SELECT count(distinct group_id)'), $join);
226
- else
227
- $query = str_replace('SELECT t.group_id', 'SELECT count(t.group_id)', $join);
228
- $total = $wpdb->get_var($query);
229
-
230
- $query = $join.' '.$orderby . ($pagination ? ' limit ' . $limit . ', 20 ' : '') . ' ';
231
-
232
- $rows_ord = $wpdb->get_col($query);
233
-
234
- $where2 = array();
235
- $where2 [] ="group_id='0'";
236
- foreach($rows_ord as $rows_ordd) {
237
- $where2 [] ="group_id='".esc_sql($rows_ordd)."'";
238
- }
239
- $where2 = ( count( $where2 ) ? ' WHERE ' . implode( ' OR ', $where2 ).'' : '' );
240
- $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_submits ".$where2.'';
241
-
242
- $rows = $wpdb->get_results($query);
243
-
244
- if($join_count) {
245
- $total_sort = $wpdb->get_var($join_count);
246
- if($total_sort != $total_entries)
247
- $join_count = $total_sort;
248
- else
249
- $join_count = '';
250
- }
251
- }
252
-
253
- $query = $wpdb->prepare('SELECT views FROM ' . $wpdb->prefix . 'formmaker_views WHERE form_id="%d"', $form_id);
254
- $total_views = $wpdb->get_var($query);
255
-
256
- $pageNav = "";// $pageNav = new JPagination( $total, $limitstart, $limit );
257
-
258
- $lists['order_Dir'] = $filter_order_Dir;
259
- $lists['order'] = $filter_order;
260
- $lists['total'] = $total;
261
- $lists['limit'] = (int) ($limit / 20 + 1);
262
- return array("rows" => $rows, "lists" => $lists, "pageNav" => $pageNav, "sorted_labels" => $sorted_labels, "label_titles" => $label_titles, "rows_ord" => $rows_ord, "sorted_labels_id" => $sorted_labels_id, "sorted_labels_type" => $sorted_labels_type, "total_entries" => $total_entries, "total_views" => $total_views, "join_count" => $join_count, "form_title" => $form_title, "checked_ids" => $checked_ids, "stats_fields" => $stats_fields);
263
- }
264
-
265
- function show_stats() {
266
- global $wpdb;
267
- $form_id = (isset($_POST['form_id']) ? esc_html(stripslashes($_POST['form_id'])) : 0);
268
- $id = (isset($_POST['stat_id']) ? esc_html(stripslashes($_POST['stat_id'])) : 0);
269
- $from = (isset($_POST['from']) ? esc_html(stripslashes($_POST['from'])) : 0);
270
- $to = (isset($_POST['to']) ? esc_html(stripslashes($_POST['to'])) : 0);
271
- $where = ' AND form_id=' . $form_id;
272
- if($from != '')
273
- $where .= " AND `date`>='".$from." 00:00:00' ";
274
- if($to != '')
275
- $where .= " AND `date`<='".$to." 23:59:59' ";
276
- $query = "SELECT element_value FROM " . $wpdb->prefix . "formmaker_submits WHERE element_label='" . $id . "'" . $where;
277
- $choices = $wpdb->get_col($query);
278
- return $choices;
279
- }
280
-
281
- function paypal_info($id) {
282
- global $wpdb;
283
- $query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker_sessions where group_id='%d'", $id);
284
- return $wpdb->get_row($query);
285
- }
286
-
287
- ////////////////////////////////////////////////////////////////////////////////////////
288
- // Getters & Setters //
289
- ////////////////////////////////////////////////////////////////////////////////////////
290
- ////////////////////////////////////////////////////////////////////////////////////////
291
- // Private Methods //
292
- ////////////////////////////////////////////////////////////////////////////////////////
293
- ////////////////////////////////////////////////////////////////////////////////////////
294
- // Listeners //
295
- ////////////////////////////////////////////////////////////////////////////////////////
296
  }
1
+ <?php
2
+
3
+ class FMModelForm_submissions {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ function showsubmissions($form_id, $startdate, $enddate, $submit_date, $submitter_ip, $username, $useremail, $form_fields, $csv, $xml, $title, $search, $ordering, $entries, $views, $conversion_rate, $pagination, $stats) {
22
+ global $wpdb;
23
+
24
+ $user = wp_get_current_user();
25
+ $userGroups = $wpdb->get_var($wpdb->prepare("SELECT `user_id_wd` FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
26
+ $users = explode(',', $userGroups);
27
+ $users = array_slice($users, 0, count($users) - 1);
28
+ $show_submits = false;
29
+ if(!is_user_logged_in()) {
30
+ if(!in_array('guest', $users))
31
+ return false;
32
+ }
33
+ else {
34
+ foreach($user->roles as $user_role) {
35
+ if(in_array($user_role, $users))
36
+ $show_submits = true;
37
+ }
38
+ if(!$show_submits)
39
+ return false;
40
+ }
41
+ $from = $startdate;
42
+ $to = $enddate;
43
+
44
+ $filter_order = ((isset($_POST['order_by']) && esc_html(stripslashes($_POST['order_by'])) != '') ? esc_html(stripslashes($_POST['order_by'])) : 'group_id');
45
+ $filter_order_Dir = ((isset($_POST['asc_or_desc']) && ($_POST['asc_or_desc'] == 'asc' || $_POST['asc_or_desc'] == 'desc')) ? esc_html($_POST['asc_or_desc']) : 'asc');
46
+
47
+ $ip_search = $submitter_ip;
48
+ $username_search = strtolower($username);
49
+ $useremail_search = strtolower($useremail);
50
+
51
+ $where = array();
52
+ $lists['startdate'] = ((isset($_POST['startdate'])) ? esc_html(stripslashes($_POST['startdate'])) : '');
53
+ $lists['enddate'] = ((isset($_POST['enddate'])) ? esc_html(stripslashes($_POST['enddate'])) : '');
54
+ $lists['hide_label_list'] = ((isset($_POST['hide_label_list'])) ? esc_html(stripslashes($_POST['hide_label_list'])) : '');
55
+
56
+ $lists['ip_search'] = ((isset($_POST['ip_search'])) ? esc_html(stripslashes($_POST['ip_search'])) : '');
57
+ $lists['username_search'] = ((isset($_POST['username_search'])) ? esc_html(stripslashes($_POST['username_search'])) : '');
58
+ $lists['useremail_search'] = ((isset($_POST['useremail_search'])) ? esc_html(stripslashes($_POST['useremail_search'])) : '');
59
+ $limit = ((isset($_POST['page_number'])) ? ((int) $_POST['page_number'] - 1) * 20 : 0);
60
+
61
+ if ( $lists['ip_search'] ) {
62
+ $where[] = 'ip LIKE "%' . esc_sql($lists['ip_search']) . '%"';
63
+ }
64
+ if ( $lists['username_search'] ) {
65
+ $where[] = 'user_id_wd IN (SELECT `id` FROM `' . $wpdb->prefix . 'users` WHERE `display_name` LIKE "%' . esc_sql($lists['username_search']) . '%")';
66
+ }
67
+ if ( $lists['useremail_search'] ) {
68
+ $where[] = 'user_id_wd IN (SELECT `id` FROM `' . $wpdb->prefix . 'users` WHERE `user_email` LIKE "%' . esc_sql($lists['useremail_search']) . '%")';
69
+ }
70
+
71
+ if($from) {
72
+ if($lists['startdate'] != '') {
73
+ if(strtotime($from) > strtotime($lists['startdate']))
74
+ $where[] = "`date` >= '" . $from . " 00:00:00'";
75
+ else
76
+ $where[] ="`date`>='" . $lists['startdate'] . " 00:00:00' ";
77
+ }
78
+ else
79
+ $where[] = "`date` >= '" . $from . " 00:00:00'";
80
+ }
81
+ else {
82
+ if($lists['startdate']!='')
83
+ $where[] =" `date`>='".$lists['startdate']." 00:00:00' ";
84
+ }
85
+ if($to) {
86
+ if($lists['enddate']!='') {
87
+ if(strtotime($to) < strtotime($lists['enddate']))
88
+ $where[] = "`date` <= '".$to." 23:59:59'";
89
+ else
90
+ $where[] ="`date`<='".$lists['enddate']." 23:59:59' ";
91
+ }
92
+ else
93
+ $where[] = "`date` <= '".$to." 23:59:59'";
94
+ }
95
+ else {
96
+ if($lists['enddate']!='')
97
+ $where[] ="`date`<='".$lists['enddate']." 23:59:59' ";
98
+ }
99
+
100
+ $form_title = $wpdb->get_var($wpdb->prepare("SELECT `title` FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
101
+
102
+ $where[] = 'form_id="' . (int)$form_id . '"';
103
+ $where = ( count( $where ) ? ' ' . implode( ' AND ', $where ) : '' );
104
+ $orderby = ' ';
105
+ if ($filter_order == 'id' or $filter_order == 'title' or $filter_order == 'mail') {
106
+ $orderby = ' ORDER BY `date` desc';
107
+ }
108
+ else {
109
+ if ($filter_order == 'group_id' or $filter_order == 'date' or $filter_order == 'ip') {
110
+ $orderby = ' ORDER BY '.$filter_order .' '. $filter_order_Dir .'';
111
+ }
112
+ else {
113
+ if ($filter_order == 'display_name' or $filter_order == 'user_email') {
114
+ $orderby = ' ORDER BY (SELECT `'.$filter_order.'` FROM `' . $wpdb->prefix . 'users` WHERE id=user_id_wd) '. $filter_order_Dir .'';
115
+ }
116
+ }
117
+ }
118
+ $query = "SELECT distinct element_label FROM " . $wpdb->prefix . "formmaker_submits WHERE ". $where;
119
+ $labels = $wpdb->get_col($query);
120
+
121
+ $query = $wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "formmaker_submits WHERE form_id='%d' and element_label=0 limit 0, 1", $form_id);
122
+ $ispaypal = $wpdb->get_var($query);
123
+
124
+ $query = $wpdb->prepare('SELECT count(distinct group_id) FROM ' . $wpdb->prefix . 'formmaker_submits where form_id ="%d"', $form_id);
125
+ $total_entries = $wpdb->get_var($query);
126
+
127
+ $sorted_labels_type= array();
128
+ $sorted_labels_id= array();
129
+ $sorted_labels= array();
130
+ $label_titles=array();
131
+ $rows_ord = array();
132
+ $rows = array();
133
+ $total = 0;
134
+ $join_count='';
135
+ $checked_ids = '';
136
+ $stats_fields = '';
137
+
138
+ if($labels) {
139
+ $label_id= array();
140
+ $label_order= array();
141
+ $label_order_original= array();
142
+ $label_type= array();
143
+ $this_form = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
144
+ $checked_ids = $this_form->frontend_submit_fields;
145
+ $stats_fields = $this_form->frontend_submit_stat_fields;
146
+
147
+ if(strpos($this_form->label_order, 'type_paypal_')) {
148
+ $this_form->label_order=$this_form->label_order."item_total#**id**#Item Total#**label**#type_paypal_payment_total#****#total#**id**#Total#**label**#type_paypal_payment_total#****#0#**id**#Payment Status#**label**#type_paypal_payment_status#****#";
149
+ }
150
+ $label_all = explode('#****#',$this_form->label_order);
151
+ $label_all = array_slice($label_all,0, count($label_all)-1);
152
+ foreach($label_all as $key => $label_each) {
153
+ $label_id_each=explode('#**id**#',$label_each);
154
+ array_push($label_id, $label_id_each[0]);
155
+
156
+ $label_order_each=explode('#**label**#', $label_id_each[1]);
157
+ array_push($label_order_original, $label_order_each[0]);
158
+
159
+ $ptn = "/[^a-zA-Z0-9_]/";
160
+ $rpltxt = "";
161
+ $label_temp=preg_replace($ptn, $rpltxt, $label_order_each[0]);
162
+ array_push($label_order, $label_temp);
163
+ array_push($label_type, $label_order_each[1]);
164
+ }
165
+
166
+ $join_query=array();
167
+ $join_where=array();
168
+ $join='';
169
+ $is_first=true;
170
+
171
+ foreach($label_id as $key => $label) {
172
+ if(in_array($label, $labels)) {
173
+ array_push($sorted_labels_type, $label_type[$key]);
174
+ array_push($sorted_labels, $label_order[$key]);
175
+ array_push($sorted_labels_id, $label);
176
+ array_push($label_titles, $label_order_original[$key]);
177
+ $search_temp = isset($_POST[$form_id.'_'.$label.'_search']) ? $_POST[$form_id.'_'.$label.'_search'] : '';
178
+ $search_temp = strtolower( $search_temp );
179
+ $lists[$form_id.'_'.$label.'_search'] = $search_temp;
180
+ if ( $search_temp ) {
181
+ $join_query[] ='search';
182
+ $join_where[] =array('label'=>$label, 'search'=>esc_sql($search_temp));
183
+ }
184
+ }
185
+ }
186
+ if(strpos($filter_order,"_field")) {
187
+ if (in_array(str_replace("_field", "", $filter_order), $labels)) {
188
+ $join_query[] ='sort';
189
+ $join_where[] =array('label'=>str_replace("_field", "", $filter_order));
190
+ }
191
+ }
192
+ $cols = 'group_id';
193
+ if ($filter_order == 'date' or $filter_order == 'ip') {
194
+ $cols = 'group_id, date, ip';
195
+ }
196
+
197
+ switch(count($join_query)) {
198
+ case 0:
199
+ $join='SELECT distinct group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '. $where;
200
+ break;
201
+ case 1:
202
+ if($join_query[0]=='sort') {
203
+ $join = 'SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[0]['label'].'" ';
204
+ $join_count = 'SELECT count(group_id) FROM ' . $wpdb->prefix . 'formmaker_submits WHERE form_id="'.esc_sql((int)$form_id).'" AND element_label="'.$join_where[0]['label'].'" ';
205
+ $orderby = ' ORDER BY `element_value` '. $filter_order_Dir .'';
206
+ }
207
+ else
208
+ $join='SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE element_label="'.$join_where[0]['label'].'" AND element_value LIKE "%'.$join_where[0]['search'].'%" AND '. $where;
209
+ break;
210
+ default:
211
+ $join='SELECT t.group_id FROM (SELECT '.$cols.' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[0]['label'].'" AND element_value LIKE "%'.$join_where[0]['search'].'%" ) as t ';
212
+ for($key=1; $key< count($join_query); $key++) {
213
+ if($join_query[$key]=='sort') {
214
+ $join.='LEFT JOIN (SELECT group_id as group_id'.$key.', element_value FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[$key]['label'].'") as t'.$key.' ON t'.$key.'.group_id'.$key.'=t.group_id ';
215
+ $orderby = ' ORDER BY t'.$key.'.`element_value` '. $filter_order_Dir .'';
216
+ }
217
+ else
218
+ $join.='INNER JOIN (SELECT group_id as group_id'.$key.' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE '.$where.' AND element_label="'.$join_where[$key]['label'].'" AND element_value LIKE "%'.$join_where[$key]['search'].'%" ) as t'.$key.' ON t'.$key.'.group_id'.$key.'=t.group_id ';
219
+ }
220
+ break;
221
+ }
222
+
223
+ $pos = strpos($join, 'SELECT t.group_id');
224
+ if ($pos === false)
225
+ $query = str_replace(array('SELECT group_id','SELECT distinct group_id'), array('SELECT count(distinct group_id)','SELECT count(distinct group_id)'), $join);
226
+ else
227
+ $query = str_replace('SELECT t.group_id', 'SELECT count(t.group_id)', $join);
228
+ $total = $wpdb->get_var($query);
229
+
230
+ $query = $join.' '.$orderby . ($pagination ? ' limit ' . $limit . ', 20 ' : '') . ' ';
231
+
232
+ $rows_ord = $wpdb->get_col($query);
233
+
234
+ $where2 = array();
235
+ $where2 [] ="group_id='0'";
236
+ foreach($rows_ord as $rows_ordd) {
237
+ $where2 [] ="group_id='".esc_sql($rows_ordd)."'";
238
+ }
239
+ $where2 = ( count( $where2 ) ? ' WHERE ' . implode( ' OR ', $where2 ).'' : '' );
240
+ $query = "SELECT * FROM " . $wpdb->prefix . "formmaker_submits ".$where2.'';
241
+
242
+ $rows = $wpdb->get_results($query);
243
+
244
+ if($join_count) {
245
+ $total_sort = $wpdb->get_var($join_count);
246
+ if($total_sort != $total_entries)
247
+ $join_count = $total_sort;
248
+ else
249
+ $join_count = '';
250
+ }
251
+ }
252
+
253
+ $query = $wpdb->prepare('SELECT views FROM ' . $wpdb->prefix . 'formmaker_views WHERE form_id="%d"', $form_id);
254
+ $total_views = $wpdb->get_var($query);
255
+
256
+ $pageNav = "";// $pageNav = new JPagination( $total, $limitstart, $limit );
257
+
258
+ $lists['order_Dir'] = $filter_order_Dir;
259
+ $lists['order'] = $filter_order;
260
+ $lists['total'] = $total;
261
+ $lists['limit'] = (int) ($limit / 20 + 1);
262
+ return array("rows" => $rows, "lists" => $lists, "pageNav" => $pageNav, "sorted_labels" => $sorted_labels, "label_titles" => $label_titles, "rows_ord" => $rows_ord, "sorted_labels_id" => $sorted_labels_id, "sorted_labels_type" => $sorted_labels_type, "total_entries" => $total_entries, "total_views" => $total_views, "join_count" => $join_count, "form_title" => $form_title, "checked_ids" => $checked_ids, "stats_fields" => $stats_fields);
263
+ }
264
+
265
+ function show_stats() {
266
+ global $wpdb;
267
+ $form_id = (isset($_POST['form_id']) ? esc_html(stripslashes($_POST['form_id'])) : 0);
268
+ $id = (isset($_POST['stat_id']) ? esc_html(stripslashes($_POST['stat_id'])) : 0);
269
+ $from = (isset($_POST['from']) ? esc_html(stripslashes($_POST['from'])) : 0);
270
+ $to = (isset($_POST['to']) ? esc_html(stripslashes($_POST['to'])) : 0);
271
+ $where = ' AND form_id=' . $form_id;
272
+ if($from != '')
273
+ $where .= " AND `date`>='".$from." 00:00:00' ";
274
+ if($to != '')
275
+ $where .= " AND `date`<='".$to." 23:59:59' ";
276
+ $query = "SELECT element_value FROM " . $wpdb->prefix . "formmaker_submits WHERE element_label='" . $id . "'" . $where;
277
+ $choices = $wpdb->get_col($query);
278
+ return $choices;
279
+ }
280
+
281
+ function paypal_info($id) {
282
+ global $wpdb;
283
+ $query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker_sessions where group_id='%d'", $id);
284
+ return $wpdb->get_row($query);
285
+ }
286
+
287
+ ////////////////////////////////////////////////////////////////////////////////////////
288
+ // Getters & Setters //
289
+ ////////////////////////////////////////////////////////////////////////////////////////
290
+ ////////////////////////////////////////////////////////////////////////////////////////
291
+ // Private Methods //
292
+ ////////////////////////////////////////////////////////////////////////////////////////
293
+ ////////////////////////////////////////////////////////////////////////////////////////
294
+ // Listeners //
295
+ ////////////////////////////////////////////////////////////////////////////////////////
296
  }
frontend/models/FMModelVerify_email.php CHANGED
@@ -1,115 +1,115 @@
1
- <?php
2
-
3
- class FMModelVerify_email {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
- function setValidation($gid, $md5, $email) {
22
- global $wpdb;
23
- $query = $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."formmaker_submits WHERE group_id='%d' AND element_label REGEXP 'verifyInfo'", $gid);
24
- $rows = $wpdb->get_results($query);
25
- if (!$rows) {
26
- return false;
27
- }
28
- $view = '';
29
- foreach ($rows as $row) {
30
- if ($row->element_label == 'verifyInfo') {
31
- $view = __('Your email address is already verified.', 'form_maker');
32
- continue;
33
- }
34
- elseif ($row->element_label == 'verifyInfo@' . $email) {
35
- $verifyInfo = explode('**',$row->element_value);
36
- $key = $verifyInfo[0];
37
- $expHour = $verifyInfo[1];
38
- $recipiend = $verifyInfo[2];
39
- if($recipiend == $email) {
40
- $date = strtotime($row->date);
41
- if($key === $md5){
42
- if($expHour > 0){
43
- $now = time();
44
- $hourInterval = floor(($now - $date)/3600); //return hour
45
- if ($hourInterval <= $expHour) {
46
- $wpdb->update(
47
- $wpdb->prefix."formmaker_submits",
48
- array(
49
- 'element_value' => 'verified**'.$recipiend,
50
- 'element_label' => 'verifyInfo'
51
- ),
52
- array(
53
- 'group_id' => $gid ,
54
- 'element_label' => 'verifyInfo@'.$recipiend
55
- ),
56
- array(
57
- '%s',
58
- '%s'
59
- ),
60
- array( '%d',
61
- '%s'
62
- )
63
- );
64
- $view = __('Your email has been successfully verified.', 'form_maker');
65
- }
66
- else
67
- $view = __('Your email verification has timed out.', 'form_maker'); // 0 = time expired
68
-
69
- }
70
- else
71
- {
72
- $wpdb->update(
73
- $wpdb->prefix."formmaker_submits",
74
- array(
75
- 'element_value' => 'verified**'.$recipiend,
76
- 'element_label' => 'verifyInfo'
77
- ),
78
- array(
79
- 'group_id' => $gid ,
80
- 'element_label' => 'verifyInfo@'.$recipiend
81
- ),
82
- array(
83
- '%s',
84
- '%s'
85
- ),
86
- array( '%d',
87
- '%s'
88
- )
89
- );
90
- $view = __('Your email has been successfully verified.', 'form_maker');
91
-
92
- }
93
- }
94
- else
95
- $view = __('Verification link is invalid.', 'form_maker'); //wrong code
96
-
97
- break;
98
- }
99
- else
100
- continue;
101
- }
102
- }
103
- return $view;
104
- }
105
-
106
- ////////////////////////////////////////////////////////////////////////////////////////
107
- // Getters & Setters //
108
- ////////////////////////////////////////////////////////////////////////////////////////
109
- ////////////////////////////////////////////////////////////////////////////////////////
110
- // Private Methods //
111
- ////////////////////////////////////////////////////////////////////////////////////////
112
- ////////////////////////////////////////////////////////////////////////////////////////
113
- // Listeners //
114
- ////////////////////////////////////////////////////////////////////////////////////////
115
  }
1
+ <?php
2
+
3
+ class FMModelVerify_email {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ ////////////////////////////////////////////////////////////////////////////////////////
14
+ // Constructor & Destructor //
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ public function __construct() {
17
+ }
18
+ ////////////////////////////////////////////////////////////////////////////////////////
19
+ // Public Methods //
20
+ ////////////////////////////////////////////////////////////////////////////////////////
21
+ function setValidation($gid, $md5, $email) {
22
+ global $wpdb;
23
+ $query = $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."formmaker_submits WHERE group_id='%d' AND element_label REGEXP 'verifyInfo'", $gid);
24
+ $rows = $wpdb->get_results($query);
25
+ if (!$rows) {
26
+ return false;
27
+ }
28
+ $view = '';
29
+ foreach ($rows as $row) {
30
+ if ($row->element_label == 'verifyInfo') {
31
+ $view = __('Your email address is already verified.', 'form_maker');
32
+ continue;
33
+ }
34
+ elseif ($row->element_label == 'verifyInfo@' . $email) {
35
+ $verifyInfo = explode('**',$row->element_value);
36
+ $key = $verifyInfo[0];
37
+ $expHour = $verifyInfo[1];
38
+ $recipiend = $verifyInfo[2];
39
+ if($recipiend == $email) {
40
+ $date = strtotime($row->date);
41
+ if($key === $md5){
42
+ if($expHour > 0){
43
+ $now = time();
44
+ $hourInterval = floor(($now - $date)/3600); //return hour
45
+ if ($hourInterval <= $expHour) {
46
+ $wpdb->update(
47
+ $wpdb->prefix."formmaker_submits",
48
+ array(
49
+ 'element_value' => 'verified**'.$recipiend,
50
+ 'element_label' => 'verifyInfo'
51
+ ),
52
+ array(
53
+ 'group_id' => $gid ,
54
+ 'element_label' => 'verifyInfo@'.$recipiend
55
+ ),
56
+ array(
57
+ '%s',
58
+ '%s'
59
+ ),
60
+ array( '%d',
61
+ '%s'
62
+ )
63
+ );
64
+ $view = __('Your email has been successfully verified.', 'form_maker');
65
+ }
66
+ else
67
+ $view = __('Your email verification has timed out.', 'form_maker'); // 0 = time expired
68
+
69
+ }
70
+ else
71
+ {
72
+ $wpdb->update(
73
+ $wpdb->prefix."formmaker_submits",
74
+ array(
75
+ 'element_value' => 'verified**'.$recipiend,
76
+ 'element_label' => 'verifyInfo'
77
+ ),
78
+ array(
79
+ 'group_id' => $gid ,
80
+ 'element_label' => 'verifyInfo@'.$recipiend
81
+ ),
82
+ array(
83
+ '%s',
84
+ '%s'
85
+ ),
86
+ array( '%d',
87
+ '%s'
88
+ )
89
+ );
90
+ $view = __('Your email has been successfully verified.', 'form_maker');
91
+
92
+ }
93
+ }
94
+ else
95
+ $view = __('Verification link is invalid.', 'form_maker'); //wrong code
96
+
97
+ break;
98
+ }
99
+ else
100
+ continue;
101
+ }
102
+ }
103
+ return $view;
104
+ }
105
+
106
+ ////////////////////////////////////////////////////////////////////////////////////////
107
+ // Getters & Setters //
108
+ ////////////////////////////////////////////////////////////////////////////////////////
109
+ ////////////////////////////////////////////////////////////////////////////////////////
110
+ // Private Methods //
111
+ ////////////////////////////////////////////////////////////////////////////////////////
112
+ ////////////////////////////////////////////////////////////////////////////////////////
113
+ // Listeners //
114
+ ////////////////////////////////////////////////////////////////////////////////////////
115
  }
frontend/views/FMViewForm_maker.php CHANGED
@@ -1245,7 +1245,7 @@ class FMViewForm_maker {
1245
  if($required) {
1246
  $rep.='<span class="wdform-required">'.$required_sym.'</span>';
1247
  }
1248
- $rep.='</div><div class="wdform-element-section '.$param['w_class'].'" style="'.$param['w_field_label_pos2'].' width: '.$param['w_size_w'].'px"><textarea class="'.$input_active.'" id="wdform_'.$id1.'_element'.$form_id.'" name="wdform_'.$id1.'_element'.$form_id.'" title="'.$param['w_title'].'" style="width: 100%; height: '.$param['w_size_h'].'px;" '.$param['attributes'].'>'.$param['w_first_val'].'</textarea></div></div>';
1249
 
1250
  if($required) {
1251
  array_push($req_fields, $id1);
@@ -4136,7 +4136,7 @@ class FMViewForm_maker {
4136
  var x = jQuery("#form" + form_id);
4137
  var req_fields = field_id ? field_id.split() : window['required_fields'+form_id];
4138
  var not_filled = {};
4139
- req_fields.each(function(wdid){
4140
  if(x.find(jQuery("div[wdid='"+wdid+"']")).length != 0 && x.find(jQuery("div[wdid='"+wdid+"']")).css("display") != "none" ) {
4141
  switch(window['labels_and_ids'+form_id][wdid]){
4142
  case 'type_text':
1245
  if($required) {
1246
  $rep.='<span class="wdform-required">'.$required_sym.'</span>';
1247
  }
1248
+ $rep.='</div><div class="wdform-element-section '.$param['w_class'].'" style="'.$param['w_field_label_pos2'].' width: '.$param['w_size_w'].'px"><textarea class="'.$input_active.'" id="wdform_'.$id1.'_element'.$form_id.'" name="wdform_'.$id1.'_element'.$form_id.'" title="'.$param['w_title'].'" style="width: 100%; height: '.$param['w_size_h'].'px;" '.$param['attributes'].'>'.str_replace(array("\r\n", "\n\r", "\n", "\r"), "&#13;", $param['w_first_val']).'</textarea></div></div>';
1249
 
1250
  if($required) {
1251
  array_push($req_fields, $id1);
4136
  var x = jQuery("#form" + form_id);
4137
  var req_fields = field_id ? field_id.split() : window['required_fields'+form_id];
4138
  var not_filled = {};
4139
+ jQuery(req_fields).each(function(index, wdid){
4140
  if(x.find(jQuery("div[wdid='"+wdid+"']")).length != 0 && x.find(jQuery("div[wdid='"+wdid+"']")).css("display") != "none" ) {
4141
  switch(window['labels_and_ids'+form_id][wdid]){
4142
  case 'type_text':
frontend/views/FMViewVerify_email.php CHANGED
@@ -1,37 +1,37 @@
1
- <?php
2
-
3
- class FMViewVerify_email {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- private $model;
14
-
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- // Constructor & Destructor //
17
- ////////////////////////////////////////////////////////////////////////////////////////
18
- public function __construct($model) {
19
- $this->model = $model;
20
- }
21
- ////////////////////////////////////////////////////////////////////////////////////////
22
- // Public Methods //
23
- ////////////////////////////////////////////////////////////////////////////////////////
24
- public function display($result) {
25
- echo WDW_FM_Library::message($result, 'warning', 0);
26
- }
27
-
28
- ////////////////////////////////////////////////////////////////////////////////////////
29
- // Getters & Setters //
30
- ////////////////////////////////////////////////////////////////////////////////////////
31
- ////////////////////////////////////////////////////////////////////////////////////////
32
- // Private Methods //
33
- ////////////////////////////////////////////////////////////////////////////////////////
34
- ////////////////////////////////////////////////////////////////////////////////////////
35
- // Listeners //
36
- ////////////////////////////////////////////////////////////////////////////////////////
37
  }
1
+ <?php
2
+
3
+ class FMViewVerify_email {
4
+ ////////////////////////////////////////////////////////////////////////////////////////
5
+ // Events //
6
+ ////////////////////////////////////////////////////////////////////////////////////////
7
+ ////////////////////////////////////////////////////////////////////////////////////////
8
+ // Constants //
9
+ ////////////////////////////////////////////////////////////////////////////////////////
10
+ ////////////////////////////////////////////////////////////////////////////////////////
11
+ // Variables //
12
+ ////////////////////////////////////////////////////////////////////////////////////////
13
+ private $model;
14
+
15
+ ////////////////////////////////////////////////////////////////////////////////////////
16
+ // Constructor & Destructor //
17
+ ////////////////////////////////////////////////////////////////////////////////////////
18
+ public function __construct($model) {
19
+ $this->model = $model;
20
+ }
21
+ ////////////////////////////////////////////////////////////////////////////////////////
22
+ // Public Methods //
23
+ ////////////////////////////////////////////////////////////////////////////////////////
24
+ public function display($result) {
25
+ echo WDW_FM_Library::message($result, 'warning', 0);
26
+ }
27
+
28
+ ////////////////////////////////////////////////////////////////////////////////////////
29
+ // Getters & Setters //
30
+ ////////////////////////////////////////////////////////////////////////////////////////
31
+ ////////////////////////////////////////////////////////////////////////////////////////
32
+ // Private Methods //
33
+ ////////////////////////////////////////////////////////////////////////////////////////
34
+ ////////////////////////////////////////////////////////////////////////////////////////
35
+ // Listeners //
36
+ ////////////////////////////////////////////////////////////////////////////////////////
37
  }
images/01/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/01/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/01/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/02/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/02/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/02/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/03/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/03/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/03/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/04/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/04/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/04/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/04/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/05/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/05/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/05/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/05/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/06/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/06/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/07/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/08/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/09/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/09/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/09/03/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/09/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/10/01/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/10/02/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/10/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
images/flags/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><title></title>
1
+ <!DOCTYPE html><title></title>
js/calendar/calendar.js CHANGED
@@ -1,36 +1,36 @@
1
- /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo
2
- * -----------------------------------------------------------
3
- *
4
- * The DHTML Calendar, version 1.0 "It is happening again"
5
- *
6
- * Details and latest version at:
7
- * www.dynarch.com/projects/calendar
8
- *
9
- * This script is developed by Dynarch.com. Visit us at www.dynarch.com.
10
- *
11
- * This script is distributed under the GNU Lesser General Public License.
12
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
13
- */
14
- Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){
15
- Calendar._DN = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");Calendar._SDN = new Array ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); Calendar._FD = 0; Calendar._MN = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); Calendar._SMN = new Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");Calendar._TT = {};Calendar._TT["INFO"] = "About the Calendar";
16
- Calendar._TT["ABOUT"] =
17
- "DHTML Date/Time Selector\n" +
18
- "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
19
- "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
20
- "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
21
- "\n\n" +
22
- "Date selection:\n" +
23
- "- Use the \xab, \xbb buttons to select year\n" +
24
- "- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
25
- "- Hold mouse button on any of the above buttons for faster selection.";
26
- Calendar._TT["ABOUT_TIME"] = "\n\n" +
27
- "Time selection:\n" +
28
- "- Click on any of the time parts to increase it\n" +
29
- "- or Shift-click to decrease it\n" +
30
- "- or click and drag for faster selection.";
31
-
32
- Calendar._TT["PREV_YEAR"] = "Click to move to the previous year. Click and hold for a list of years.";Calendar._TT["PREV_MONTH"] = "Click to move to the previous month. Click and hold for a list of the months."; Calendar._TT["GO_TODAY"] = "Go to today";Calendar._TT["NEXT_MONTH"] = "Click to move to the next month. Click and hold for a list of the months.";Calendar._TT["NEXT_YEAR"] = "Click to move to the next year. Click and hold for a list of years.";Calendar._TT["SEL_DATE"] = "Select a date.";Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";Calendar._TT["PART_TODAY"] = " (Today)";Calendar._TT["DAY_FIRST"] = "Display %s first";Calendar._TT["WEEKEND"] = "0,6";Calendar._TT["CLOSE"] = "Close";Calendar._TT["TODAY"] = "Today";Calendar._TT["TIME_PART"] = "(Shift-)Click or Drag to change the value.";Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; Calendar._TT["TT_DATE_FORMAT"] = "%A, %B %e";Calendar._TT["WK"] = "wk";Calendar._TT["TIME"] = "Time:";
33
-
34
-
35
-
36
  this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;
1
+ /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo
2
+ * -----------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar, version 1.0 "It is happening again"
5
+ *
6
+ * Details and latest version at:
7
+ * www.dynarch.com/projects/calendar
8
+ *
9
+ * This script is developed by Dynarch.com. Visit us at www.dynarch.com.
10
+ *
11
+ * This script is distributed under the GNU Lesser General Public License.
12
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
13
+ */
14
+ Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){
15
+ Calendar._DN = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");Calendar._SDN = new Array ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); Calendar._FD = 0; Calendar._MN = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); Calendar._SMN = new Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");Calendar._TT = {};Calendar._TT["INFO"] = "About the Calendar";
16
+ Calendar._TT["ABOUT"] =
17
+ "DHTML Date/Time Selector\n" +
18
+ "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
19
+ "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
20
+ "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
21
+ "\n\n" +
22
+ "Date selection:\n" +
23
+ "- Use the \xab, \xbb buttons to select year\n" +
24
+ "- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
25
+ "- Hold mouse button on any of the above buttons for faster selection.";
26
+ Calendar._TT["ABOUT_TIME"] = "\n\n" +
27
+ "Time selection:\n" +
28
+ "- Click on any of the time parts to increase it\n" +
29
+ "- or Shift-click to decrease it\n" +
30
+ "- or click and drag for faster selection.";
31
+
32
+ Calendar._TT["PREV_YEAR"] = "Click to move to the previous year. Click and hold for a list of years.";Calendar._TT["PREV_MONTH"] = "Click to move to the previous month. Click and hold for a list of the months."; Calendar._TT["GO_TODAY"] = "Go to today";Calendar._TT["NEXT_MONTH"] = "Click to move to the next month. Click and hold for a list of the months.";Calendar._TT["NEXT_YEAR"] = "Click to move to the next year. Click and hold for a list of years.";Calendar._TT["SEL_DATE"] = "Select a date.";Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";Calendar._TT["PART_TODAY"] = " (Today)";Calendar._TT["DAY_FIRST"] = "Display %s first";Calendar._TT["WEEKEND"] = "0,6";Calendar._TT["CLOSE"] = "Close";Calendar._TT["TODAY"] = "Today";Calendar._TT["TIME_PART"] = "(Shift-)Click or Drag to change the value.";Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; Calendar._TT["TT_DATE_FORMAT"] = "%A, %B %e";Calendar._TT["WK"] = "wk";Calendar._TT["TIME"] = "Time:";
33
+
34
+
35
+
36
  this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;
js/fancybox/jquery.fancybox.css CHANGED
@@ -1,274 +1,274 @@
1
- /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
2
- .fancybox-wrap,
3
- .fancybox-skin,
4
- .fancybox-outer,
5
- .fancybox-inner,
6
- .fancybox-image,
7
- .fancybox-wrap iframe,
8
- .fancybox-wrap object,
9
- .fancybox-nav,
10
- .fancybox-nav span,
11
- .fancybox-tmp
12
- {
13
- padding: 0;
14
- margin: 0;
15
- border: 0;
16
- outline: none;
17
- vertical-align: top;
18
- }
19
-
20
- .fancybox-wrap {
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- z-index: 8020;
25
- }
26
-
27
- .fancybox-skin {
28
- position: relative;
29
- background: #f9f9f9;
30
- color: #444;
31
- text-shadow: none;
32
- -webkit-border-radius: 4px;
33
- -moz-border-radius: 4px;
34
- border-radius: 4px;
35
- }
36
-
37
- .fancybox-opened {
38
- z-index: 8030;
39
- }
40
-
41
- .fancybox-opened .fancybox-skin {
42
- -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
43
- -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
44
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
45
- }
46
-
47
- .fancybox-outer, .fancybox-inner {
48
- position: relative;
49
- }
50
-
51
- .fancybox-inner {
52
- overflow: hidden;
53
- }
54
-
55
- .fancybox-type-iframe .fancybox-inner {
56
- -webkit-overflow-scrolling: touch;
57
- }
58
-
59
- .fancybox-error {
60
- color: #444;
61
- font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
62
- margin: 0;
63
- padding: 15px;
64
- white-space: nowrap;
65
- }
66
-
67
- .fancybox-image, .fancybox-iframe {
68
- display: block;
69
- width: 100%;
70
- height: 100%;
71
- }
72
-
73
- .fancybox-image {
74
- max-width: 100%;
75
- max-height: 100%;
76
- }
77
-
78
- #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
79
- background-image: url('fancybox_sprite.png');
80
- }
81
-
82
- #fancybox-loading {
83
- position: fixed;
84
- top: 50%;
85
- left: 50%;
86
- margin-top: -22px;
87
- margin-left: -22px;
88
- background-position: 0 -108px;
89
- opacity: 0.8;
90
- cursor: pointer;
91
- z-index: 8060;
92
- }
93
-
94
- #fancybox-loading div {
95
- width: 44px;
96
- height: 44px;
97
- background: url('fancybox_loading.gif') center center no-repeat;
98
- }
99
-
100
- .fancybox-close {
101
- position: absolute;
102
- top: -18px;
103
- right: -18px;
104
- width: 36px;
105
- height: 36px;
106
- cursor: pointer;
107
- z-index: 8040;
108
- }
109
-
110
- .fancybox-nav {
111
- position: absolute;
112
- top: 0;
113
- width: 40%;
114
- height: 100%;
115
- cursor: pointer;
116
- text-decoration: none;
117
- background: transparent url('blank.gif'); /* helps IE */
118
- -webkit-tap-highlight-color: rgba(0,0,0,0);
119
- z-index: 8040;
120
- }
121
-
122
- .fancybox-prev {
123
- left: 0;
124
- }
125
-
126
- .fancybox-next {
127
- right: 0;
128
- }
129
-
130
- .fancybox-nav span {
131
- position: absolute;
132
- top: 50%;
133
- width: 36px;
134
- height: 34px;
135
- margin-top: -18px;
136
- cursor: pointer;
137
- z-index: 8040;
138
- visibility: hidden;
139
- }
140
-
141
- .fancybox-prev span {
142
- left: 10px;
143
- background-position: 0 -36px;
144
- }
145
-
146
- .fancybox-next span {
147
- right: 10px;
148
- background-position: 0 -72px;
149
- }
150
-
151
- .fancybox-nav:hover span {
152
- visibility: visible;
153
- }
154
-
155
- .fancybox-tmp {
156
- position: absolute;
157
- top: -99999px;
158
- left: -99999px;
159
- visibility: hidden;
160
- max-width: 99999px;
161
- max-height: 99999px;
162
- overflow: visible !important;
163
- }
164
-
165
- /* Overlay helper */
166
-
167
- .fancybox-lock {
168
- overflow: hidden !important;
169
- width: auto;
170
- }
171
-
172
- .fancybox-lock body {
173
- overflow: hidden !important;
174
- }
175
-
176
- .fancybox-lock-test {
177
- overflow-y: hidden !important;
178
- }
179
-
180
- .fancybox-overlay {
181
- position: absolute;
182
- top: 0;
183
- left: 0;
184
- overflow: hidden;
185
- display: none;
186
- z-index: 8010;
187
- background: url('fancybox_overlay.png');
188
- }
189
-
190
- .fancybox-overlay-fixed {
191
- position: fixed;
192
- bottom: 0;
193
- right: 0;
194
- }
195
-
196
- .fancybox-lock .fancybox-overlay {
197
- overflow: auto;
198
- overflow-y: scroll;
199
- }
200
-
201
- /* Title helper */
202
-
203
- .fancybox-title {
204
- visibility: hidden;
205
- font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
206
- position: relative;
207
- text-shadow: none;
208
- z-index: 8050;
209
- }
210
-
211
- .fancybox-opened .fancybox-title {
212
- visibility: visible;
213
- }
214
-
215
- .fancybox-title-float-wrap {
216
- position: absolute;
217
- bottom: 0;
218
- right: 50%;
219
- margin-bottom: -35px;
220
- z-index: 8050;
221
- text-align: center;
222
- }
223
-
224
- .fancybox-title-float-wrap .child {
225
- display: inline-block;
226
- margin-right: -100%;
227
- padding: 2px 20px;
228
- background: transparent; /* Fallback for web browsers that doesn't support RGBa */
229
- background: rgba(0, 0, 0, 0.8);
230
- -webkit-border-radius: 15px;
231
- -moz-border-radius: 15px;
232
- border-radius: 15px;
233
- text-shadow: 0 1px 2px #222;
234
- color: #FFF;
235
- font-weight: bold;
236
- line-height: 24px;
237
- white-space: nowrap;
238
- }
239
-
240
- .fancybox-title-outside-wrap {
241
- position: relative;
242
- margin-top: 10px;
243
- color: #fff;
244
- }
245
-
246
- .fancybox-title-inside-wrap {
247
- padding-top: 10px;
248
- }
249
-
250
- .fancybox-title-over-wrap {
251
- position: absolute;
252
- bottom: 0;
253
- left: 0;
254
- color: #fff;
255
- padding: 10px;
256
- background: #000;
257
- background: rgba(0, 0, 0, .8);
258
- }
259
-
260
- /*Retina graphics!*/
261
- @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
262
- only screen and (min--moz-device-pixel-ratio: 1.5),
263
- only screen and (min-device-pixel-ratio: 1.5){
264
-
265
- #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
266
- background-image: url('fancybox_sprite@2x.png');
267
- background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
268
- }
269
-
270
- #fancybox-loading div {
271
- background-image: url('fancybox_loading@2x.gif');
272
- background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
273
- }
274
  }
1
+ /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
2
+ .fancybox-wrap,
3
+ .fancybox-skin,
4
+ .fancybox-outer,
5
+ .fancybox-inner,
6
+ .fancybox-image,
7
+ .fancybox-wrap iframe,
8
+ .fancybox-wrap object,
9
+ .fancybox-nav,
10
+ .fancybox-nav span,
11
+ .fancybox-tmp
12
+ {
13
+ padding: 0;
14
+ margin: 0;
15
+ border: 0;
16
+ outline: none;
17
+ vertical-align: top;
18
+ }
19
+
20
+ .fancybox-wrap {
21
+ position: absolute;
22
+ top: 0;
23
+ left: 0;
24
+ z-index: 8020;
25
+ }
26
+
27
+ .fancybox-skin {
28
+ position: relative;
29
+ background: #f9f9f9;
30
+ color: #444;
31
+ text-shadow: none;
32
+ -webkit-border-radius: 4px;
33
+ -moz-border-radius: 4px;
34
+ border-radius: 4px;
35
+ }
36
+
37
+ .fancybox-opened {
38
+ z-index: 8030;
39
+ }
40
+
41
+ .fancybox-opened .fancybox-skin {
42
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
43
+ -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
44
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
45
+ }
46
+
47
+ .fancybox-outer, .fancybox-inner {
48
+ position: relative;
49
+ }
50
+
51
+ .fancybox-inner {
52
+ overflow: hidden;
53
+ }
54
+
55
+ .fancybox-type-iframe .fancybox-inner {
56
+ -webkit-overflow-scrolling: touch;
57
+ }
58
+
59
+ .fancybox-error {
60
+ color: #444;
61
+ font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
62
+ margin: 0;
63
+ padding: 15px;
64
+ white-space: nowrap;
65
+ }
66
+
67
+ .fancybox-image, .fancybox-iframe {
68
+ display: block;
69
+ width: 100%;
70
+ height: 100%;
71
+ }
72
+
73
+ .fancybox-image {
74
+ max-width: 100%;
75
+ max-height: 100%;
76
+ }
77
+
78
+ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
79
+ background-image: url('fancybox_sprite.png');
80
+ }
81
+
82
+ #fancybox-loading {
83
+ position: fixed;
84
+ top: 50%;
85
+ left: 50%;
86
+ margin-top: -22px;
87
+ margin-left: -22px;
88
+ background-position: 0 -108px;
89
+ opacity: 0.8;
90
+ cursor: pointer;
91
+ z-index: 8060;
92
+ }
93
+
94
+ #fancybox-loading div {
95
+ width: 44px;
96
+ height: 44px;
97
+ background: url('fancybox_loading.gif') center center no-repeat;
98
+ }
99
+
100
+ .fancybox-close {
101
+ position: absolute;
102
+ top: -18px;
103
+ right: -18px;
104
+ width: 36px;
105
+ height: 36px;
106
+ cursor: pointer;
107
+ z-index: 8040;
108
+ }
109
+
110
+ .fancybox-nav {
111
+ position: absolute;
112
+ top: 0;
113
+ width: 40%;
114
+ height: 100%;
115
+ cursor: pointer;
116
+ text-decoration: none;
117
+ background: transparent url('blank.gif'); /* helps IE */
118
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
119
+ z-index: 8040;
120
+ }
121
+
122
+ .fancybox-prev {
123
+ left: 0;
124
+ }
125
+
126
+ .fancybox-next {
127
+ right: 0;
128
+ }
129
+
130
+ .fancybox-nav span {
131
+ position: absolute;
132
+ top: 50%;
133
+ width: 36px;
134
+ height: 34px;
135
+ margin-top: -18px;
136
+ cursor: pointer;
137
+ z-index: 8040;
138
+ visibility: hidden;
139
+ }
140
+
141
+ .fancybox-prev span {
142
+ left: 10px;
143
+ background-position: 0 -36px;
144
+ }
145
+
146
+ .fancybox-next span {
147
+ right: 10px;
148
+ background-position: 0 -72px;
149
+ }
150
+
151
+ .fancybox-nav:hover span {
152
+ visibility: visible;
153
+ }
154
+
155
+ .fancybox-tmp {
156
+ position: absolute;
157
+ top: -99999px;
158
+ left: -99999px;
159
+ visibility: hidden;
160
+ max-width: 99999px;
161
+ max-height: 99999px;
162
+ overflow: visible !important;
163
+ }
164
+
165
+ /* Overlay helper */
166
+
167
+ .fancybox-lock {
168
+ overflow: hidden !important;
169
+ width: auto;
170
+ }
171
+
172
+ .fancybox-lock body {
173
+ overflow: hidden !important;
174
+ }
175
+
176
+ .fancybox-lock-test {
177
+ overflow-y: hidden !important;
178
+ }
179
+
180
+ .fancybox-overlay {
181
+ position: absolute;
182
+ top: 0;
183
+ left: 0;
184
+ overflow: hidden;
185
+ display: none;
186
+ z-index: 8010;
187
+ background: url('fancybox_overlay.png');
188
+ }
189
+
190
+ .fancybox-overlay-fixed {
191
+ position: fixed;
192
+ bottom: 0;
193
+ right: 0;
194
+ }
195
+
196
+ .fancybox-lock .fancybox-overlay {
197
+ overflow: auto;
198
+ overflow-y: scroll;
199
+ }
200
+
201
+ /* Title helper */
202
+
203
+ .fancybox-title {
204
+ visibility: hidden;
205
+ font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
206
+ position: relative;
207
+ text-shadow: none;
208
+ z-index: 8050;
209
+ }
210
+
211
+ .fancybox-opened .fancybox-title {
212
+ visibility: visible;
213
+ }
214
+
215
+ .fancybox-title-float-wrap {
216
+ position: absolute;
217
+ bottom: 0;
218
+ right: 50%;
219
+ margin-bottom: -35px;
220
+ z-index: 8050;
221
+ text-align: center;
222
+ }
223
+
224
+ .fancybox-title-float-wrap .child {
225
+ display: inline-block;
226
+ margin-right: -100%;
227
+ padding: 2px 20px;
228
+ background: transparent; /* Fallback for web browsers that doesn't support RGBa */
229
+ background: rgba(0, 0, 0, 0.8);
230
+ -webkit-border-radius: 15px;
231
+ -moz-border-radius: 15px;
232
+ border-radius: 15px;
233
+ text-shadow: 0 1px 2px #222;
234
+ color: #FFF;
235
+ font-weight: bold;
236
+ line-height: 24px;
237
+ white-space: nowrap;
238
+ }
239
+
240
+ .fancybox-title-outside-wrap {
241
+ position: relative;
242
+ margin-top: 10px;
243
+ color: #fff;
244
+ }
245
+
246
+ .fancybox-title-inside-wrap {
247
+ padding-top: 10px;
248
+ }
249
+
250
+ .fancybox-title-over-wrap {
251
+ position: absolute;
252
+ bottom: 0;
253
+ left: 0;
254
+ color: #fff;
255
+ padding: 10px;
256
+ background: #000;
257
+ background: rgba(0, 0, 0, .8);
258
+ }
259
+
260
+ /*Retina graphics!*/
261
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
262
+ only screen and (min--moz-device-pixel-ratio: 1.5),
263
+ only screen and (min-device-pixel-ratio: 1.5){
264
+
265
+ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
266
+ background-image: url('fancybox_sprite@2x.png');
267
+ background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
268
+ }
269
+
270
+ #fancybox-loading div {
271
+ background-image: url('fancybox_loading@2x.gif');
272
+ background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
273
+ }
274
  }
js/fancybox/jquery.fancybox.pack.js CHANGED
@@ -1,46 +1,46 @@
1
- /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
2
- (function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
3
- width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
4
- keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
5
- (I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
6
- openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
7
- isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
8
- c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
9
- k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
10
- b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
11
- setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
12
- d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
13
- a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
14
- b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
15
- y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
16
- if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
17
- (h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
18
- {},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
19
- mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
20
- !0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
21
- "image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
22
- this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
23
- f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
24
- e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
25
- outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
26
- g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
27
- "no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
28
- h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
29
- h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
30
- "iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
31
- y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
32
- !a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
33
- b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
34
- a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
35
- (c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
36
- f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
37
- {duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
38
- b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
39
- f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
40
- b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
41
- p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
42
- f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
43
- b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
44
- e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
45
- ":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
46
  d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);
1
+ /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
2
+ (function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
3
+ width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
4
+ keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
5
+ (I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
6
+ openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
7
+ isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
8
+ c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
9
+ k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
10
+ b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
11
+ setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
12
+ d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
13
+ a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
14
+ b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
15
+ y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
16
+ if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
17
+ (h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
18
+ {},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
19
+ mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
20
+ !0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
21
+ "image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
22
+ this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
23
+ f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
24
+ e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
25
+ outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
26
+ g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
27
+ "no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
28
+ h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
29
+ h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
30
+ "iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
31
+ y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
32
+ !a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
33
+ b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
34
+ a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
35
+ (c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
36
+ f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
37
+ {duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
38
+ b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
39
+ f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
40
+ b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
41
+ p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
42
+ f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
43
+ b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
44
+ e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
45
+ ":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
46
  d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);
js/file-upload.js DELETED
@@ -1,79 +0,0 @@
1
-
2
- (function () {
3
-
4
- // import library
5
- eval( JELLY.unpack() );
6
-
7
- addDomReady( function () {
8
-
9
- // Load our css
10
-
11
- // Create a reusable tweening object
12
- var tween = new Tween,
13
-
14
- // event handlers, including blur/focus to
15
- // restore keyboard navigation
16
- onUploadChange = function ( e ) {
17
-
18
- var status = retrieveData( this, 'upload-status' );
19
-
20
- if ( this.value ) {
21
- // IE shows the whole system path, we're reducing it
22
- // to the filename for consistency
23
- var value = '';
24
- var files = this.files;
25
- for (var i = 0; i < files.length-1; i++)
26
- value =value+( browser.ie ? files[i].name.split('\\').pop() : files[i].name)+', ';
27
- i = files.length-1;
28
- value =value+( browser.ie ? files[i].name.split('\\').pop() : files[i].name);
29
- status.innerHTML = value;
30
-
31
- insertAfter( status, this.parentNode );
32
- // Only tween if we're responding to an event
33
- if ( e ) {
34
- tween.setElement( status ).
35
- setOpacity( 0 ).
36
- start({
37
- opacity: 1, duration: 500
38
- });
39
- }
40
- }
41
- else if ( status && status.parentNode ) {
42
- removeElement( status );
43
- }
44
- },
45
- onUploadFocus = function () {
46
- addClass( this.parentNode, 'focus' );
47
- },
48
- onUploadBlur = function () {
49
- removeClass( this.parentNode, 'focus' );
50
- };
51
-
52
-
53
- Q( '.file-upload input[type=file]' ).each( function ( field ) {
54
-
55
- // Create a status element, and store it
56
- storeData( field, 'upload-status', createElement( 'span.file-upload-status' ) );
57
-
58
- // Bind events
59
- addEvent( field, 'focus', onUploadFocus );
60
- addEvent( field, 'blur', onUploadBlur );
61
- addEvent( field, 'change', onUploadChange );
62
-
63
- // Set current state
64
- onUploadChange.call( field );
65
-
66
- // Move the file input in Firefox / Opera so that the button part is
67
- // in the hit area. Otherwise we get a text selection cursor
68
- // which you cannot override with CSS
69
- if ( browser.firefox || browser.opera ) {
70
- field.style.left = '-800px';
71
- }
72
- else if ( browser.ie ) {
73
- // Minimizes the text input part in IE
74
- field.style.width = '0';
75
- }
76
- });
77
- });
78
-
79
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/form_maker_editor_button.js CHANGED
@@ -1,22 +1,22 @@
1
- (function() {
2
- tinymce.create('tinymce.plugins.Form_Maker_mce', {
3
- init : function(ed, url) {
4
- ed.addCommand('mceForm_Maker_mce', function() {
5
- ed.windowManager.open({
6
- file : form_maker_admin_ajax,
7
- width : 550 + ed.getLang('Form_Maker_mce.delta_width', 0),
8
- height : 300 + ed.getLang('Form_Maker_mce.delta_height', 0),
9
- inline : 1
10
- }, {
11
- plugin_url : url // Plugin absolute URL
12
- });
13
- });
14
- ed.addButton('Form_Maker_mce', {
15
- title : 'Insert Form Maker',
16
- cmd : 'mceForm_Maker_mce',
17
- image: url + '/images/form_maker_edit_but.png'
18
- });
19
- }
20
- });
21
- tinymce.PluginManager.add('Form_Maker_mce', tinymce.plugins.Form_Maker_mce);
22
  })();
1
+ (function() {
2
+ tinymce.create('tinymce.plugins.Form_Maker_mce', {
3
+ init : function(ed, url) {
4
+ ed.addCommand('mceForm_Maker_mce', function() {
5
+ ed.windowManager.open({
6
+ file : form_maker_admin_ajax,
7
+ width : 550 + ed.getLang('Form_Maker_mce.delta_width', 0),
8
+ height : 300 + ed.getLang('Form_Maker_mce.delta_height', 0),
9
+ inline : 1
10
+ }, {
11
+ plugin_url : url // Plugin absolute URL
12
+ });
13
+ });
14
+ ed.addButton('Form_Maker_mce', {
15
+ title : 'Insert Form Maker',
16
+ cmd : 'mceForm_Maker_mce',
17
+ image: url + '/images/form_maker_edit_but.png'
18
+ });
19
+ }
20
+ });
21
+ tinymce.PluginManager.add('Form_Maker_mce', tinymce.plugins.Form_Maker_mce);
22
  })();
js/form_maker_submissions.js CHANGED
@@ -1,94 +1,94 @@
1
- function tableOrdering(order, dir, task) {
2
- var form = document.admin_form;
3
- form.filter_order2.value = order;
4
- form.filter_order_Dir2.value = dir;
5
- submitform(task);
6
- }
7
-
8
- function ordering(name, as_or_desc) {
9
- document.getElementById('asc_or_desc').value = as_or_desc;
10
- document.getElementById('order_by').value = name;
11
- document.getElementById('admin_form').submit();
12
- }
13
-
14
- function renderColumns() {
15
- allTags = document.getElementsByTagName('*');
16
- for (curTag in allTags) {
17
- if (typeof(allTags[curTag].className) != "undefined") {
18
- if (allTags[curTag].className.indexOf('_fc') > 0) {
19
- curLabel = allTags[curTag].className.replace('_fc', '');
20
- curLabel = curLabel.replace('table_large_col ', '');
21
- if (document.forms.admin_form.hide_label_list.value.indexOf('@' + curLabel + '@') >= 0) {
22
- allTags[curTag].style.display = 'none';
23
- }
24
- else {
25
- allTags[curTag].style.display = '';
26
- }
27
- }
28
- }
29
- if (typeof(allTags[curTag].id) != "undefined") {
30
- if (allTags[curTag].id.indexOf('_fc') > 0) {
31
- curLabel = allTags[curTag].id.replace('_fc','');
32
- if (document.forms.admin_form.hide_label_list.value.indexOf('@' + curLabel + '@') >= 0) {
33
- allTags[curTag].style.display = 'none';
34
- }
35
- else {
36
- allTags[curTag].style.display = '';
37
- }
38
- }
39
- }
40
- }
41
- }
42
-
43
- function clickLabChB(label, ChB) {
44
- document.forms.admin_form.hide_label_list.value = document.forms.admin_form.hide_label_list.value.replace('@' + label + '@', '');
45
- if (document.forms.admin_form.hide_label_list.value == '') {
46
- document.getElementById('ChBAll').checked = true;
47
- }
48
- if (!(ChB.checked)) {
49
- document.forms.admin_form.hide_label_list.value += '@' + label + '@';
50
- document.getElementById('ChBAll').checked = false;
51
- }
52
- renderColumns();
53
- }
54
-
55
- function toggleChBDiv(flag) {
56
- if (flag) {
57
- /* sizes = window.getSize().size;*/
58
- var width = jQuery(window).width();
59
- var height = jQuery(window).height();
60
- document.getElementById("sbox-overlay").style.width = width + "px";
61
- document.getElementById("sbox-overlay").style.height = height + "px";
62
- document.getElementById("ChBDiv").style.left = Math.floor((width - 350) / 2) + "px";
63
-
64
- document.getElementById("ChBDiv").style.display = "block";
65
- document.getElementById("sbox-overlay").style.display = "block";
66
- }
67
- else {
68
- document.getElementById("ChBDiv").style.display = "none";
69
- document.getElementById("sbox-overlay").style.display = "none";
70
- }
71
- }
72
-
73
- function submit_del(href_in) {
74
- document.getElementById('admin_form').action = href_in;
75
- document.getElementById('admin_form').submit();
76
- }
77
-
78
- function submitbutton(pressbutton) {
79
- var form = document.adminForm;
80
- if (pressbutton == 'cancel_theme') {
81
- submitform(pressbutton);
82
- return;
83
- }
84
- if (document.getElementById('title').value == '') {
85
- alert('The theme must have a title.')
86
- return;
87
- }
88
- submitform(pressbutton);
89
- }
90
-
91
- function submitform(pressbutton) {
92
- document.getElementById('adminForm').action = document.getElementById('adminForm').action + "&task=" + pressbutton;
93
- document.getElementById('adminForm').submit();
94
- }
1
+ function tableOrdering(order, dir, task) {
2
+ var form = document.admin_form;
3
+ form.filter_order2.value = order;
4
+ form.filter_order_Dir2.value = dir;
5
+ submitform(task);
6
+ }
7
+
8
+ function ordering(name, as_or_desc) {
9
+ document.getElementById('asc_or_desc').value = as_or_desc;
10
+ document.getElementById('order_by').value = name;
11
+ document.getElementById('admin_form').submit();
12
+ }
13
+
14
+ function renderColumns() {
15
+ allTags = document.getElementsByTagName('*');
16
+ for (curTag in allTags) {
17
+ if (typeof(allTags[curTag].className) != "undefined") {
18
+ if (allTags[curTag].className.indexOf('_fc') > 0) {
19
+ curLabel = allTags[curTag].className.replace('_fc', '');
20
+ curLabel = curLabel.replace('table_large_col ', '');
21
+ if (document.forms.admin_form.hide_label_list.value.indexOf('@' + curLabel + '@') >= 0) {
22
+ allTags[curTag].style.display = 'none';
23
+ }
24
+ else {
25
+ allTags[curTag].style.display = '';
26
+ }
27
+ }
28
+ }
29
+ if (typeof(allTags[curTag].id) != "undefined") {
30
+ if (allTags[curTag].id.indexOf('_fc') > 0) {
31
+ curLabel = allTags[curTag].id.replace('_fc','');
32
+ if (document.forms.admin_form.hide_label_list.value.indexOf('@' + curLabel + '@') >= 0) {
33
+ allTags[curTag].style.display = 'none';
34
+ }
35
+ else {
36
+ allTags[curTag].style.display = '';
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ function clickLabChB(label, ChB) {
44
+ document.forms.admin_form.hide_label_list.value = document.forms.admin_form.hide_label_list.value.replace('@' + label + '@', '');
45
+ if (document.forms.admin_form.hide_label_list.value == '') {
46
+ document.getElementById('ChBAll').checked = true;
47
+ }
48
+ if (!(ChB.checked)) {
49
+ document.forms.admin_form.hide_label_list.value += '@' + label + '@';
50
+ document.getElementById('ChBAll').checked = false;
51
+ }
52
+ renderColumns();
53
+ }
54
+
55
+ function toggleChBDiv(flag) {
56
+ if (flag) {
57
+ /* sizes = window.getSize().size;*/
58
+ var width = jQuery(window).width();
59
+ var height = jQuery(window).height();
60
+ document.getElementById("sbox-overlay").style.width = width + "px";
61
+ document.getElementById("sbox-overlay").style.height = height + "px";
62
+ document.getElementById("ChBDiv").style.left = Math.floor((width - 350) / 2) + "px";
63
+
64
+ document.getElementById("ChBDiv").style.display = "block";
65
+ document.getElementById("sbox-overlay").style.display = "block";
66
+ }
67
+ else {
68
+ document.getElementById("ChBDiv").style.display = "none";
69
+ document.getElementById("sbox-overlay").style.display = "none";
70
+ }
71
+ }
72
+
73
+ function submit_del(href_in) {
74
+ document.getElementById('admin_form').action = href_in;
75
+ document.getElementById('admin_form').submit();
76
+ }
77
+
78
+ function submitbutton(pressbutton) {
79
+ var form = document.adminForm;
80
+ if (pressbutton == 'cancel_theme') {
81
+ submitform(pressbutton);
82
+ return;
83
+ }
84
+ if (document.getElementById('title').value == '') {
85
+ alert('The theme must have a title.')
86
+ return;
87
+ }
88
+ submitform(pressbutton);
89
+ }
90
+
91
+ function submitform(pressbutton) {
92
+ document.getElementById('adminForm').action = document.getElementById('adminForm').action + "&task=" + pressbutton;
93
+ document.getElementById('adminForm').submit();
94
+ }
js/if_gmap_back_end.js CHANGED
@@ -1,226 +1,226 @@
1
- /* Code based on Google Map APIv3 Tutorials */
2
-
3
-
4
- var gmapdata= new Array();
5
- var gmapmarker = new Array();
6
-
7
- function if_gmap_init(id)
8
- {
9
- map=document.getElementById(id+"_elementform_id_temp");
10
- var def_zoomval = parseInt(map.getAttribute("zoom"));
11
- var def_longval = map.getAttribute("center_x");
12
- var def_latval = map.getAttribute("center_y");
13
-
14
- var curpoint = new google.maps.LatLng(def_latval,def_longval);
15
-
16
- gmapdata[id] = new google.maps.Map(document.getElementById(id+"_elementform_id_temp"), {
17
- center: curpoint,
18
- zoom: def_zoomval,
19
- mapTypeId: 'roadmap'
20
- });
21
-
22
- google.maps.event.addListener(gmapdata[id], 'zoom_changed', function() {
23
- document.getElementById(id+"_elementform_id_temp").setAttribute("zoom", gmapdata[id].getZoom());
24
- });
25
-
26
- gmapmarker[id] = new Array();
27
-
28
- return false;
29
- } // end of if_gmap_init
30
-
31
- function update_position(id, i)
32
- {
33
-
34
- var longval = document.getElementById("longval"+i).value;
35
- var latval = document.getElementById("latval"+i).value;
36
- if (longval.length > 0) {
37
- if (isNaN(parseFloat(longval)) == true) {
38
- longval = 2.294254;
39
- } // end of if
40
- } else {
41
- longval = 2.294254;
42
- } // end of if
43
-
44
- if (latval.length > 0) {
45
- if (isNaN(parseFloat(latval)) == true) {
46
- latval = 48.858334;
47
- } // end of if
48
- } else {
49
- latval = 48.858334;
50
- } // end of if
51
-
52
- var curpoint = new google.maps.LatLng(latval,longval);
53
-
54
- gmapmarker[id][i].setPosition(curpoint);
55
- gmapdata[id].setCenter(curpoint);
56
-
57
- cur_zoom=gmapdata[id].getZoom();
58
-
59
- gmapdata[id].setZoom(cur_zoom);
60
-
61
- geocoder = new google.maps.Geocoder();
62
-
63
-
64
- geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
65
- {
66
- if (status == google.maps.GeocoderStatus.OK)
67
- {
68
- if (results[0])
69
- {
70
- if(document.getElementById("addrval"+i))
71
- document.getElementById("addrval"+i).value = results[0].formatted_address;
72
- }
73
- }
74
- });
75
-
76
- return false;
77
- }
78
- function reomve_marker(id,i)
79
- {
80
- gmapmarker[id][i].setMap(null);
81
- }
82
-
83
-
84
- function add_marker_on_map(id, i, w_long, w_lat, w_info, dragb)
85
- {
86
- map=document.getElementById(id+"_elementform_id_temp");
87
- if(w_long==null)
88
- {
89
- var marker_point = gmapdata[id].getCenter();
90
- w_lat=gmapdata[id].getCenter().lat();
91
- w_long=gmapdata[id].getCenter().lng();
92
- }
93
- else
94
- var marker_point = new google.maps.LatLng(w_lat, w_long);
95
-
96
-
97
- geocoder = new google.maps.Geocoder();
98
-
99
- gmapmarker[id][i] = new google.maps.Marker({
100
- map: gmapdata[id],
101
- position: marker_point,
102
- draggable: dragb
103
- });
104
-
105
- gmapmarker[id][i].setDraggable(dragb);
106
-
107
- infoW = new google.maps.InfoWindow;
108
-
109
- google.maps.event.addListener(gmapdata[id], 'mouseover', function(event)
110
- {
111
- if(!document.getElementById("longval"+i))
112
- {
113
- gmapmarker[id][i].setDraggable(false);
114
- }
115
- });
116
-
117
-
118
- /* google.maps.event.addListener(gmapdata, 'click', function(event) {
119
- if(document.getElementById("longval"))
120
- {
121
- document.getElementById("longval").value = event.latLng.lng().toFixed(6);
122
- document.getElementById("latval").value = event.latLng.lat().toFixed(6);
123
- gmapmarker.setPosition(event.latLng);
124
- if_gmap_updateMap();
125
-
126
- geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
127
- {
128
- if (status == google.maps.GeocoderStatus.OK)
129
- {
130
- if (results[0])
131
- {
132
-
133
- if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
134
- }
135
- }
136
- });
137
- }
138
-
139
- });*/
140
-
141
- google.maps.event.addListener(gmapmarker[id][i], 'drag', function()
142
- {
143
- if(document.getElementById("longval"+i))
144
- {
145
- geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
146
- {
147
- if (status == google.maps.GeocoderStatus.OK)
148
- {
149
- if (results[0])
150
- {
151
- if(document.getElementById("addrval"+i))
152
- document.getElementById("addrval"+i).value = results[0].formatted_address;
153
- }
154
- }
155
- });
156
-
157
- map.setAttribute("long"+i, gmapmarker[id][i].getPosition().lng().toFixed(6));
158
- map.setAttribute("lat"+i, gmapmarker[id][i].getPosition().lat().toFixed(6));
159
- document.getElementById("latval"+i).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
160
- document.getElementById("longval"+i).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
161
- }
162
- });
163
-
164
- google.maps.event.addListener(gmapmarker[id][i], 'click', function()
165
- {
166
- infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id+"_elementform_id_temp").getAttribute('info'+i)+"</div>");
167
- var infoWOpt = {
168
- maxWidth: "300"
169
- };
170
- infoW.setOptions(infoWOpt);
171
- infoW.open(this.getMap(), this);
172
- });
173
-
174
- if(document.getElementById("longval"+i))
175
- {
176
- document.getElementById("longval"+i).value = w_long;
177
- document.getElementById("latval"+i).value = w_lat;
178
-
179
- geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
180
- {
181
- if (status == google.maps.GeocoderStatus.OK)
182
- {
183
- if (results[0])
184
- {
185
- if(document.getElementById("addrval"+i)) document.getElementById("addrval"+i).value = results[0].formatted_address;
186
- }
187
- }
188
- });
189
- map.setAttribute("long"+i, w_long);
190
- map.setAttribute("lat"+i, w_lat);
191
- }
192
- return false;
193
-
194
-
195
- } // end of if_gmap_init
196
-
197
-
198
- function changeAddress(id, i) {
199
- var addrval = document.getElementById("addrval"+i).value;
200
- geocoder.geocode( { 'address': addrval}, function(results, status) {
201
- if (status == google.maps.GeocoderStatus.OK) {
202
- gmapdata[id].setCenter(results[0].geometry.location);
203
- gmapmarker[id][i].setPosition(results[0].geometry.location);
204
- document.getElementById("latval"+i).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
205
- document.getElementById("longval"+i).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
206
- map.setAttribute("long"+i, gmapmarker[id][i].getPosition().lng().toFixed(6));
207
- map.setAttribute("lat"+i, gmapmarker[id][i].getPosition().lat().toFixed(6));
208
- }
209
- });
210
- }
211
-
212
- function change_info(value,id,i)
213
- {
214
- map=document.getElementById(id+"_elementform_id_temp");
215
- map.setAttribute("info"+i, value);
216
- }
217
-
218
- function if_gmap_updateMap(id)
219
- {
220
- map=document.getElementById(id+"_elementform_id_temp");
221
- w_long=gmapdata[id].getCenter().lng();;
222
- w_lat=gmapdata[id].getCenter().lat();;
223
- map.setAttribute("center_x", w_long);
224
- map.setAttribute("center_y", w_lat);
225
- }
226
-
1
+ /* Code based on Google Map APIv3 Tutorials */
2
+
3
+
4
+ var gmapdata= new Array();
5
+ var gmapmarker = new Array();
6
+
7
+ function if_gmap_init(id)
8
+ {
9
+ map=document.getElementById(id+"_elementform_id_temp");
10
+ var def_zoomval = parseInt(map.getAttribute("zoom"));
11
+ var def_longval = map.getAttribute("center_x");
12
+ var def_latval = map.getAttribute("center_y");
13
+
14
+ var curpoint = new google.maps.LatLng(def_latval,def_longval);
15
+
16
+ gmapdata[id] = new google.maps.Map(document.getElementById(id+"_elementform_id_temp"), {
17
+ center: curpoint,
18
+ zoom: def_zoomval,
19
+ mapTypeId: 'roadmap'
20
+ });
21
+
22
+ google.maps.event.addListener(gmapdata[id], 'zoom_changed', function() {
23
+ document.getElementById(id+"_elementform_id_temp").setAttribute("zoom", gmapdata[id].getZoom());
24
+ });
25
+
26
+ gmapmarker[id] = new Array();
27
+
28
+ return false;
29
+ } // end of if_gmap_init
30
+
31
+ function update_position(id, i)
32
+ {
33
+
34
+ var longval = document.getElementById("longval"+i).value;
35
+ var latval = document.getElementById("latval"+i).value;
36
+ if (longval.length > 0) {
37
+ if (isNaN(parseFloat(longval)) == true) {
38
+ longval = 2.294254;
39
+ } // end of if
40
+ } else {
41
+ longval = 2.294254;
42
+ } // end of if
43
+
44
+ if (latval.length > 0) {
45
+ if (isNaN(parseFloat(latval)) == true) {
46
+ latval = 48.858334;
47
+ } // end of if
48
+ } else {
49
+ latval = 48.858334;
50
+ } // end of if
51
+
52
+ var curpoint = new google.maps.LatLng(latval,longval);
53
+
54
+ gmapmarker[id][i].setPosition(curpoint);
55
+ gmapdata[id].setCenter(curpoint);
56
+
57
+ cur_zoom=gmapdata[id].getZoom();
58
+
59
+ gmapdata[id].setZoom(cur_zoom);
60
+
61
+ geocoder = new google.maps.Geocoder();
62
+
63
+
64
+ geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
65
+ {
66
+ if (status == google.maps.GeocoderStatus.OK)
67
+ {
68
+ if (results[0])
69
+ {
70
+ if(document.getElementById("addrval"+i))
71
+ document.getElementById("addrval"+i).value = results[0].formatted_address;
72
+ }
73
+ }
74
+ });
75
+
76
+ return false;
77
+ }
78
+ function reomve_marker(id,i)
79
+ {
80
+ gmapmarker[id][i].setMap(null);
81
+ }
82
+
83
+
84
+ function add_marker_on_map(id, i, w_long, w_lat, w_info, dragb)
85
+ {
86
+ map=document.getElementById(id+"_elementform_id_temp");
87
+ if(w_long==null)
88
+ {
89
+ var marker_point = gmapdata[id].getCenter();
90
+ w_lat=gmapdata[id].getCenter().lat();
91
+ w_long=gmapdata[id].getCenter().lng();
92
+ }
93
+ else
94
+ var marker_point = new google.maps.LatLng(w_lat, w_long);
95
+
96
+
97
+ geocoder = new google.maps.Geocoder();
98
+
99
+ gmapmarker[id][i] = new google.maps.Marker({
100
+ map: gmapdata[id],
101
+ position: marker_point,
102
+ draggable: dragb
103
+ });
104
+
105
+ gmapmarker[id][i].setDraggable(dragb);
106
+
107
+ infoW = new google.maps.InfoWindow;
108
+
109
+ google.maps.event.addListener(gmapdata[id], 'mouseover', function(event)
110
+ {
111
+ if(!document.getElementById("longval"+i))
112
+ {
113
+ gmapmarker[id][i].setDraggable(false);
114
+ }
115
+ });
116
+
117
+
118
+ /* google.maps.event.addListener(gmapdata, 'click', function(event) {
119
+ if(document.getElementById("longval"))
120
+ {
121
+ document.getElementById("longval").value = event.latLng.lng().toFixed(6);
122
+ document.getElementById("latval").value = event.latLng.lat().toFixed(6);
123
+ gmapmarker.setPosition(event.latLng);
124
+ if_gmap_updateMap();
125
+
126
+ geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
127
+ {
128
+ if (status == google.maps.GeocoderStatus.OK)
129
+ {
130
+ if (results[0])
131
+ {
132
+
133
+ if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
134
+ }
135
+ }
136
+ });
137
+ }
138
+
139
+ });*/
140
+
141
+ google.maps.event.addListener(gmapmarker[id][i], 'drag', function()
142
+ {
143
+ if(document.getElementById("longval"+i))
144
+ {
145
+ geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
146
+ {
147
+ if (status == google.maps.GeocoderStatus.OK)
148
+ {
149
+ if (results[0])
150
+ {
151
+ if(document.getElementById("addrval"+i))
152
+ document.getElementById("addrval"+i).value = results[0].formatted_address;
153
+ }
154
+ }
155
+ });
156
+
157
+ map.setAttribute("long"+i, gmapmarker[id][i].getPosition().lng().toFixed(6));
158
+ map.setAttribute("lat"+i, gmapmarker[id][i].getPosition().lat().toFixed(6));
159
+ document.getElementById("latval"+i).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
160
+ document.getElementById("longval"+i).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
161
+ }
162
+ });
163
+
164
+ google.maps.event.addListener(gmapmarker[id][i], 'click', function()
165
+ {
166
+ infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id+"_elementform_id_temp").getAttribute('info'+i)+"</div>");
167
+ var infoWOpt = {
168
+ maxWidth: "300"
169
+ };
170
+ infoW.setOptions(infoWOpt);
171
+ infoW.open(this.getMap(), this);
172
+ });
173
+
174
+ if(document.getElementById("longval"+i))
175
+ {
176
+ document.getElementById("longval"+i).value = w_long;
177
+ document.getElementById("latval"+i).value = w_lat;
178
+
179
+ geocoder.geocode({'latLng': gmapmarker[id][i].getPosition()}, function(results, status)
180
+ {
181
+ if (status == google.maps.GeocoderStatus.OK)
182
+ {
183
+ if (results[0])
184
+ {
185
+ if(document.getElementById("addrval"+i)) document.getElementById("addrval"+i).value = results[0].formatted_address;
186
+ }
187
+ }
188
+ });
189
+ map.setAttribute("long"+i, w_long);
190
+ map.setAttribute("lat"+i, w_lat);
191
+ }
192
+ return false;
193
+
194
+
195
+ } // end of if_gmap_init
196
+
197
+
198
+ function changeAddress(id, i) {
199
+ var addrval = document.getElementById("addrval"+i).value;
200
+ geocoder.geocode( { 'address': addrval}, function(results, status) {
201
+ if (status == google.maps.GeocoderStatus.OK) {
202
+ gmapdata[id].setCenter(results[0].geometry.location);
203
+ gmapmarker[id][i].setPosition(results[0].geometry.location);
204
+ document.getElementById("latval"+i).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
205
+ document.getElementById("longval"+i).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
206
+ map.setAttribute("long"+i, gmapmarker[id][i].getPosition().lng().toFixed(6));
207
+ map.setAttribute("lat"+i, gmapmarker[id][i].getPosition().lat().toFixed(6));
208
+ }
209
+ });
210
+ }
211
+
212
+ function change_info(value,id,i)
213
+ {
214
+ map=document.getElementById(id+"_elementform_id_temp");
215
+ map.setAttribute("info"+i, value);
216
+ }
217
+
218
+ function if_gmap_updateMap(id)
219
+ {
220
+ map=document.getElementById(id+"_elementform_id_temp");
221
+ w_long=gmapdata[id].getCenter().lng();;
222
+ w_lat=gmapdata[id].getCenter().lat();;
223
+ map.setAttribute("center_x", w_long);
224
+ map.setAttribute("center_y", w_lat);
225
+ }
226
+
js/if_gmap_front_end.js CHANGED
@@ -1,177 +1,177 @@
1
- /* Code based on Google Map APIv3 Tutorials */
2
-
3
-
4
- var gmapdata= new Array();
5
- var gmapmarker = new Array();
6
-
7
- function if_gmap_init(id, form_id)
8
- {
9
- if(document.getElementById(id+"_element"+form_id)){
10
- map=document.getElementById(id+"_element"+form_id);
11
- var def_zoomval = parseInt(map.getAttribute("zoom"));
12
- var def_longval = map.getAttribute("center_x");
13
- var def_latval = map.getAttribute("center_y");
14
-
15
- var curpoint = new google.maps.LatLng(def_latval,def_longval);
16
-
17
- gmapdata[id] = new google.maps.Map(document.getElementById(id+"_element"+form_id), {
18
- center: curpoint,
19
- zoom: def_zoomval,
20
- mapTypeId: 'roadmap'
21
- });
22
-
23
- gmapmarker[id] = new Array();
24
-
25
- return false;
26
- }
27
- else
28
- {
29
- draggab=false;
30
- map=document.getElementById(id);
31
- var def_zoomval = parseInt(map.getAttribute("zoom"));
32
- var def_longval = map.getAttribute("long");
33
- var def_latval = map.getAttribute("lat");
34
-
35
- var curpoint = new google.maps.LatLng(def_latval,def_longval);
36
-
37
- gmapdata = new google.maps.Map(document.getElementById(id), {
38
- center: curpoint,
39
- zoom: def_zoomval,
40
- mapTypeId: 'roadmap'
41
- });
42
-
43
- geocoder = new google.maps.Geocoder();
44
-
45
-
46
- gmapmarker = new google.maps.Marker({
47
- map: gmapdata,
48
- position: curpoint,
49
- draggable: draggab
50
- });
51
- gmapmarker.setDraggable(draggab);
52
- infoW = new google.maps.InfoWindow;
53
-
54
- google.maps.event.addListener(gmapdata, 'mouseover', function(event)
55
- {
56
- if(!document.getElementById("longval"))
57
- gmapmarker.draggable=false;
58
- });
59
-
60
- google.maps.event.addListener(gmapdata, 'click', function(event) {
61
- if(document.getElementById("longval"))
62
- {
63
- document.getElementById("longval").value = event.latLng.lng().toFixed(6);
64
- document.getElementById("latval").value = event.latLng.lat().toFixed(6);
65
- gmapmarker.setPosition(event.latLng);
66
- if_gmap_updateMap();
67
-
68
- geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
69
- {
70
- if (status == google.maps.GeocoderStatus.OK)
71
- {
72
- if (results[0])
73
- {
74
-
75
- if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
76
- }
77
- }
78
- });
79
- }
80
-
81
- });
82
-
83
- google.maps.event.addListener(gmapmarker, 'drag', function() {
84
- if(document.getElementById("longval"))
85
- {
86
- geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
87
- {
88
- if (status == google.maps.GeocoderStatus.OK)
89
- {
90
- if (results[0])
91
- {
92
-
93
- if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
94
- }
95
- }
96
-
97
- });
98
-
99
- if_gmap_updateMap();
100
- document.getElementById("latval").value = gmapmarker.getPosition().lat().toFixed(6);
101
- document.getElementById("longval").value = gmapmarker.getPosition().lng().toFixed(6);
102
- }
103
- });
104
- google.maps.event.addListener(gmapmarker, 'click', function() {
105
- infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id).getAttribute('info')+"</div>");
106
- var infoWOpt = {
107
- maxWidth: "300"
108
- };
109
- infoW.setOptions(infoWOpt);
110
- infoW.open(this.getMap(), this);
111
- });
112
-
113
- if(document.getElementById("longval"))
114
- {
115
- document.getElementById("longval").value = def_longval;
116
- document.getElementById("latval").value = def_latval;
117
-
118
- geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status) {
119
- if (status == google.maps.GeocoderStatus.OK) {
120
- if (results[0]) {
121
-
122
- if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
123
- }
124
- }
125
- });
126
-
127
- }
128
-
129
-
130
-
131
-
132
- return false;
133
-
134
- }
135
- } // end of if_gmap_init
136
-
137
-
138
- function add_marker_on_map(id, i, w_long, w_lat, w_info, form_id, dragb)
139
- {
140
- var marker_point = new google.maps.LatLng(w_lat, w_long);
141
-
142
-
143
-
144
- gmapmarker[id][i] = new google.maps.Marker({
145
- map: gmapdata[id],
146
- position: marker_point,
147
- draggable: dragb
148
- });
149
-
150
- gmapmarker[id][i].setDraggable(dragb);
151
-
152
- if(dragb)
153
- {
154
- google.maps.event.addListener(gmapmarker[id][i], 'drag', function()
155
- {
156
- document.getElementById(id+"_lat"+form_id).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
157
- document.getElementById(id+"_long"+form_id).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
158
- });
159
- }
160
-
161
- infoW = new google.maps.InfoWindow;
162
-
163
- google.maps.event.addListener(gmapmarker[id][i], 'click', function()
164
- {
165
- infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id+"_element"+form_id).getAttribute('info'+i)+"</div>");
166
- var infoWOpt = {
167
- maxWidth: "300"
168
- };
169
- infoW.setOptions(infoWOpt);
170
- infoW.open(this.getMap(), this);
171
- });
172
-
173
- return false;
174
-
175
-
176
- } // end of if_gmap_init
177
-
1
+ /* Code based on Google Map APIv3 Tutorials */
2
+
3
+
4
+ var gmapdata= new Array();
5
+ var gmapmarker = new Array();
6
+
7
+ function if_gmap_init(id, form_id)
8
+ {
9
+ if(document.getElementById(id+"_element"+form_id)){
10
+ map=document.getElementById(id+"_element"+form_id);
11
+ var def_zoomval = parseInt(map.getAttribute("zoom"));
12
+ var def_longval = map.getAttribute("center_x");
13
+ var def_latval = map.getAttribute("center_y");
14
+
15
+ var curpoint = new google.maps.LatLng(def_latval,def_longval);
16
+
17
+ gmapdata[id] = new google.maps.Map(document.getElementById(id+"_element"+form_id), {
18
+ center: curpoint,
19
+ zoom: def_zoomval,
20
+ mapTypeId: 'roadmap'
21
+ });
22
+
23
+ gmapmarker[id] = new Array();
24
+
25
+ return false;
26
+ }
27
+ else
28
+ {
29
+ draggab=false;
30
+ map=document.getElementById(id);
31
+ var def_zoomval = parseInt(map.getAttribute("zoom"));
32
+ var def_longval = map.getAttribute("long");
33
+ var def_latval = map.getAttribute("lat");
34
+
35
+ var curpoint = new google.maps.LatLng(def_latval,def_longval);
36
+
37
+ gmapdata = new google.maps.Map(document.getElementById(id), {
38
+ center: curpoint,
39
+ zoom: def_zoomval,
40
+ mapTypeId: 'roadmap'
41
+ });
42
+
43
+ geocoder = new google.maps.Geocoder();
44
+
45
+
46
+ gmapmarker = new google.maps.Marker({
47
+ map: gmapdata,
48
+ position: curpoint,
49
+ draggable: draggab
50
+ });
51
+ gmapmarker.setDraggable(draggab);
52
+ infoW = new google.maps.InfoWindow;
53
+
54
+ google.maps.event.addListener(gmapdata, 'mouseover', function(event)
55
+ {
56
+ if(!document.getElementById("longval"))
57
+ gmapmarker.draggable=false;
58
+ });
59
+
60
+ google.maps.event.addListener(gmapdata, 'click', function(event) {
61
+ if(document.getElementById("longval"))
62
+ {
63
+ document.getElementById("longval").value = event.latLng.lng().toFixed(6);
64
+ document.getElementById("latval").value = event.latLng.lat().toFixed(6);
65
+ gmapmarker.setPosition(event.latLng);
66
+ if_gmap_updateMap();
67
+
68
+ geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
69
+ {
70
+ if (status == google.maps.GeocoderStatus.OK)
71
+ {
72
+ if (results[0])
73
+ {
74
+
75
+ if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
76
+ }
77
+ }
78
+ });
79
+ }
80
+
81
+ });
82
+
83
+ google.maps.event.addListener(gmapmarker, 'drag', function() {
84
+ if(document.getElementById("longval"))
85
+ {
86
+ geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status)
87
+ {
88
+ if (status == google.maps.GeocoderStatus.OK)
89
+ {
90
+ if (results[0])
91
+ {
92
+
93
+ if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
94
+ }
95
+ }
96
+
97
+ });
98
+
99
+ if_gmap_updateMap();
100
+ document.getElementById("latval").value = gmapmarker.getPosition().lat().toFixed(6);
101
+ document.getElementById("longval").value = gmapmarker.getPosition().lng().toFixed(6);
102
+ }
103
+ });
104
+ google.maps.event.addListener(gmapmarker, 'click', function() {
105
+ infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id).getAttribute('info')+"</div>");
106
+ var infoWOpt = {
107
+ maxWidth: "300"
108
+ };
109
+ infoW.setOptions(infoWOpt);
110
+ infoW.open(this.getMap(), this);
111
+ });
112
+
113
+ if(document.getElementById("longval"))
114
+ {
115
+ document.getElementById("longval").value = def_longval;
116
+ document.getElementById("latval").value = def_latval;
117
+
118
+ geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status) {
119
+ if (status == google.maps.GeocoderStatus.OK) {
120
+ if (results[0]) {
121
+
122
+ if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address;
123
+ }
124
+ }
125
+ });
126
+
127
+ }
128
+
129
+
130
+
131
+
132
+ return false;
133
+
134
+ }
135
+ } // end of if_gmap_init
136
+
137
+
138
+ function add_marker_on_map(id, i, w_long, w_lat, w_info, form_id, dragb)
139
+ {
140
+ var marker_point = new google.maps.LatLng(w_lat, w_long);
141
+
142
+
143
+
144
+ gmapmarker[id][i] = new google.maps.Marker({
145
+ map: gmapdata[id],
146
+ position: marker_point,
147
+ draggable: dragb
148
+ });
149
+
150
+ gmapmarker[id][i].setDraggable(dragb);
151
+
152
+ if(dragb)
153
+ {
154
+ google.maps.event.addListener(gmapmarker[id][i], 'drag', function()
155
+ {
156
+ document.getElementById(id+"_lat"+form_id).value = gmapmarker[id][i].getPosition().lat().toFixed(6);
157
+ document.getElementById(id+"_long"+form_id).value = gmapmarker[id][i].getPosition().lng().toFixed(6);
158
+ });
159
+ }
160
+
161
+ infoW = new google.maps.InfoWindow;
162
+
163
+ google.maps.event.addListener(gmapmarker[id][i], 'click', function()
164
+ {
165
+ infoW.setContent('<div style="overflow: hidden;">'+document.getElementById(id+"_element"+form_id).getAttribute('info'+i)+"</div>");
166
+ var infoWOpt = {
167
+ maxWidth: "300"
168
+ };
169
+ infoW.setOptions(infoWOpt);
170
+ infoW.open(this.getMap(), this);
171
+ });
172
+
173
+ return false;
174
+
175
+
176
+ } // end of if_gmap_init
177
+
js/jelly.min.js DELETED
@@ -1,44 +0,0 @@
1
- /*
2
-
3
- Jelly JavaScript, Copyright (c) 2008-2009 Pete Boere.
4
-
5
- MIT style license: http://www.opensource.org/licenses/mit-license.php
6
- project page: http://code.google.com/p/jelly-javascript/
7
- this build compiled: 2009-08-19
8
-
9
- */
10
- (function(){
11
- /* base */
12
- var au=window.JELLY={},ay=window,K=ay.document,aR=K.documentElement,F=K.getElementsByTagName("head")[0],N="addEventListener" in K,S="querySelectorAll" in K,W=function(){},aK=function(){var J=ay.navigator,a5=J.userAgent,bb="ActiveXObject" in ay,bc="XMLHttpRequest" in ay,a8="securityPolicy" in J,a7="taintEnabled" in J,a6=/opera/i.test(a5),a9=/firefox/i.test(a5),ba=/webkit/i.test(a5),Q=bb?(S?8:(bc?7:6)):0;return{ie:Q,ie6:Q===6,ie7:Q===7,ie8:Q===8,opera:a6,firefox:a9||(a8&&!bb&&!a6),webkit:ba||(!a7&&!bb&&!a6),safariMobile:/safari/i.test(a5)&&/mobile/i.test(a5),chrome:ba&&/chrome/i.test(a5)}}(),aB=aK.ie,aA=function(J){return typeof J!=="undefined"},Y=function(J){return typeof J==="undefined"},a1=function(J){return J===null},aQ=function(J){return typeof J==="boolean"},aY=function(J){return typeof J==="string"},U=function(J){return typeof J==="number"},ap=function(J){return U(J)?!(J%1):false},b=function(J){return U(J)?!!(J%1):false},p=function(J){return aY(J)||U(J)?/^\s*\d+\.?\d*?\s*$/.test((J+"")):false},H=function(J){return J+""==="[object Object]"},c=function(J){return !!J&&!H(J)&&(typeof J==="object"||aL(J))},aL=function(J){return{}.toString.call(J)==="[object Function]"},az=function(){if(!aB){return function(J){return c(J)&&!a(J)&&/^\[object HTML[A-Za-z]*Element\]$/.test(J+"")}}return function(J){return c(J)&&!!J.nodeName&&J.nodeType===1}}(),a0=function(){if(!aB){return function(J){return aI(J)&&/^\[object (HTMLCollection|NodeList)\]$/.test(J+"")}}return function(J){return aI(J)&&!!J.item}}(),a=function(J){return{}.toString.call(J)==="[object Array]"},aI=function(J){return c(J)&&!H(J)&&!a(J)&&!aL(J)&&ap(J.length)},x=function(Q,J){return J.indexOf(Q)!==-1},O=function(a5){var J=[],a6=a5.length,Q=0;for(Q;Q<a6;Q++){J[Q]=a5[Q]}return J},aN=function(J){if(aY(J)){return/^\s*$/.test(J)}else{if(a(J)){return !J.length}else{if(H(J)){return !Object.keys(J).length}}}return !J},av=function(Q,J,a5){for(var a6 in J){if(Y(Q[a6])||aA(Q[a6])&&a5!==false){Q[a6]=J[a6]}}return Q},aq=function(){var J=O(arguments),a5=J.shift(),Q=J.shift();return setTimeout(function(){a5.apply(Q,J)},0)},h=function(Q){var J=ay.console;if(J&&J[Q]){return function(){J[Q].apply(J,O(arguments))}}return W},d=h("log"),aH=h("warn"),ab=h("error");av(au,{browser:aK,isDefined:aA,isUndefined:Y,isNull:a1,isBoolean:aQ,isString:aY,isNumber:U,isInteger:ap,isFloat:b,isNumeric:p,isObject:H,isFunction:aL,isElement:az,isNodeList:a0,isArray:a,toArray:O,empty:aN,extend:av,log:d,logWarn:aH,logError:ab});
13
- /* native extensions */
14
- av(Array.prototype,{forEach:function(Q,a5){for(var J=0,a6=this.length;J<a6;J++){Q.call(a5,this[J],J,this)}},indexOf:function(Q,a6){a6=aA(a6)?(a6<0?Math.max(0,this.length+a6):a6):0;for(var J=a6,a5=this.length;J<a5;J++){if(this[J]===Q){return J}}return -1},filter:function(a5,a6){for(var Q=0,a7=this.length,J=[];Q<a7;Q++){if(a5.call(a6,this[Q],Q,this)){J.push(this[Q])}}return J},map:function(a5,a6){for(var Q=0,a7=this.length,J=[];Q<a7;Q++){J.push(a5.call(a6,this[Q],Q,this))}return J},some:function(Q,a5){for(var J=0,a6=this.length;J<a6;J++){if(Q.call(a5,this[J],J,this)){return true}}return false},every:function(Q,a5){for(var J=0,a6=this.length;J<a6;J++){if(!Q.call(a5,this[J],J,this)){return false}}return true}},false);Array.prototype.each=Array.prototype.forEach;av(String.prototype,{trim:function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}},false);av(Function.prototype,{bind:function(){if(arguments.length<2&&!aA(arguments[0])){return this}var J=O(arguments),a5=J.shift(),Q=this;return function(){for(var a7=0,a6=O(J);arguments.length>a7;a7++){a6.push(arguments[a7])}return Q.apply(a5,a6)}}},false);if(ay.HTMLElement&&HTMLElement.prototype){av(HTMLElement.prototype,{contains:function(J){return !!(this.compareDocumentPosition(J)&16)}},false)}av(Object,{keys:function(a5){var Q=[],J;for(J in a5){if(a5.hasOwnProperty(J)){Q.push(J)}}return Q}},false);
15
- /* class */
16
- var aE=function(a6,a8){var J=a8.__init||function(){},a5=a8.__static||{},a7=a8.__extends,Q=J.prototype;av(Q,o);(a(a7)?a7:(a7?[a7]:[])).each(function(a9){av(Q,a9.prototype);J.__parent=a9});av(J,a5);["__init","__static","__extends"].each(function(a9){delete a8[a9]});av(Q,a8);Q.constructor=J;J.__name=a6;au[a6]=J;return J},o={fireEvent:function(){var J=O(arguments),a5="on"+I(J.shift()),Q=this[a5];if(aN(J)){J.push(this)}return Q?Q.apply(this,J):false},isInstanceOf:function(){return this.constuctor.__name},set:function(Q,J){var a5=this;if(H(Q)){return av(a5,Q)}a5[Q]=J;return a5}};au.defineClass=aE;
17
- /* strings */
18
- var aa=function(J,Q){return J.indexOf(Q)!==-1},aS=function(J){return J.replace(/\s{2,}/g," ").trim()},I=function(J,Q){return J.replace(Q?/^\s*[a-z]/:/(^|\s+)[a-z]/g,function(a5){return a5.toUpperCase()})},g=function(J){return J.replace(/-([a-z])/g,function(Q,a5){return a5.toUpperCase()})},aW=function(a7){var J=a7.match(/[\d]{1,3}/g),a5=[],Q=0;for(Q;Q<3;Q++){var a6=(J[Q]-0).toString(16);a5.push(a6.length===1?"0"+a6:a6)}return"#"+a5.join("")},ah=function(a6,a7){var a5=a6.match(/^#([\w]{1,2})([\w]{1,2})([\w]{1,2})$/),J=[],Q=1;for(Q;Q<a5.length;Q++){if(a5[Q].length===1){a5[Q]+=a5[Q]}J.push(parseInt(a5[Q],16))}return a7?J:"rgb("+J.join(",")+")"},aU=function(a7,a6){var Q=/^#/.test(a7),a5=[],J;switch(a6){case"hex":return Q?a7:aW(a7);case"rgb":return Q?ah(a7):a7;case"rgb-array":if(Q){return ah(a7,true)}else{J=a7.replace(/rgb| |\(|\)/g,"").split(",");J.each(function(a8){a5.push(parseInt(a8,10))});return a5}}},aO=function(Q,J){if(!J){return Q.replace(/<[^>]*>/g,"")}J=J.replace(/\s+/g,"").split(",").map(function(a5){return a5+" |"+a5+">|/"+a5+">"}).join("|");return Q.replace(new RegExp("<(?!"+J+")[^>]+>","g"),"")},aF=function(a5,Q){var J;while(J=/%\{\s*([^\}\s]+)\s*\}/.exec(a5)){a5=a5.replace(J[0],Q[J[1]]||"??")}return a5},f=function(Q){var a5=ao("div",{setHTML:Q}),J=[];O(R(a5,"script")).each(function(a6){J.push(ay["eval"](a6.innerHTML))});return J};av(au,{contains:aa,normalize:aS,capitalize:I,camelize:g,parseColour:aU,stripTags:aO,bindData:aF,evalScripts:f});
19
- /* elements */
20
- var aX=function(J,Q){J=aC(J);if(a4(J,Q)){return}J.className+=J.className?" "+Q:Q},aZ=function(J,a5){J=aC(J);if(!J.className){return}var Q=new RegExp("(^|\\s)"+a5+"(\\s|$)");J.className=aS(J.className.replace(Q," "))},a4=function(J,Q){return(" "+(aC(J)).className+" ").indexOf(Q)!==-1},z=function(J,Q){J=aC(J);if(a4(J,Q)){aZ(J,Q)}else{aX(J,Q)}},aC=function(J){return typeof J==="string"?K.getElementById(J):J},R=function(Q,J){return(J?aC(Q):K).getElementsByTagName(J||Q)},ao=function(bg,be){var Q;if(!/[#:\.]/.test(bg)){Q=K.createElement(bg),ar;for(ar in be){switch(ar){case"setHTML":Q.innerHTML=be[ar];break;case"setText":Q.appendChild(K.createTextNode(be[ar]));break;case"class":Q.className=be[ar];break;case"style":Q.style.cssText=be[ar];break;default:Q.setAttribute(ar,be[ar])}}}else{var bg=bg.trim(),a6="__JELLY_CE__",bd=[],a5;while(a5=/('|")([^\1]*?)\1/.exec(bg)){bg=bg.replace(a5[0],a6);bd.push(a5[2])}bg=bg.replace(/\s*(:|,)\s*/g,"$1");var a8=bg.split(" "),ba=a8.shift(),J=ba.indexOf("#")!==-1,bf=ba.indexOf(".")!==-1,bb="div",a7={},bc=null,a9;if(J||bf){a9=J?ba.split("#"):ba.split(".");bb=a9.shift()||bb;a7[J?"id":"class"]=a9.join(" ")}else{bb=ba}if(a8[0]){a8[0].split(",").each(function(bh){bh=bh.split(":");var bi=bh[1]===a6?bd.shift():bh[1];if(bh[0]==="@"){bc=bi}else{a7[bh[0]]=bi}})}Q=ao(bb.toLowerCase(),a7)}return be===true?{elem:Q,ref:bc}:Q},a2=function(){var J=O(arguments),a5={},Q,a6=function(a7){if(a7&&H(a7)){if(az(a7.root)){for(var a8 in a7){if(a(a7[a8])){var bc=a7[a8][0].nodeName.toLowerCase();a5[bc]=a5[bc]||[];a7[a8].each(function(bd){a5[bc].push(bd)})}else{if(a8!=="root"){a5[a8]=a7[a8]}}}return a7.root}else{if(az(a7)){return a7}}}else{if(!aY(a7)){return}}var bb=ao(a7,true),ba=bb.elem,a9=ba.nodeName.toLowerCase();a5[a9]=a5[a9]||[];a5[a9].push(ba);if(bb.ref){a5[bb.ref]=ba}return ba};a5.root=Q=a6(J.shift());J.each(function(a7){if(!a(a7)){Q=Q.appendChild(a6(a7))}else{a7.each(function(a8){Q.appendChild(a6(a8))})}});return a5},aD=function(Q,a6){Q=aC(Q);var a5=Q.parentNode,J=Q.nextSibling;a6.appendChild(Q);return J?a5.insertBefore(a6,J):a5.appendChild(a6)},l=function(Q,a5,J){Q=aC(Q);if(Q){return a5.call(J||Q,Q)}return Q},ak=function(Q,J){Q=aC(Q);return Q.parentNode.replaceChild(J,Q)},y=function(J){J=aC(J);return J.parentNode.removeChild(J)},aV=function(Q,J){Q=aC(Q);return(aC(J)||K.body).appendChild(Q)},j=function(Q,J){if(!(Q=aC(Q))||!(J=aC(J))){return false}if(J.firstChild){return J.insertBefore(Q,J.firstChild)}else{return J.appendChild(Q)}},an=function(Q,J){J=aC(J);return J.parentNode.insertBefore(aC(Q),J)},C=function(a5,J){if(!(a5=aC(a5))||!(J=aC(J))){return false}var Q=au.getNext(J);if(Q){return J.parentNode.insertBefore(a5,Q)}else{return J.parentNode.appendChild(a5)}},aT=function(J){J=J.firstChild;while(J&&J.nodeType!==1){J=J.nextSibling}return J},v=function(J){J=J.lastChild;while(J&&J.nodeType!==1){J=J.previousSibling}return J},M=function(J){J=J.nextSibling;while(J&&J.nodeType!==1){J=J.nextSibling}return J},at=function(J){J=J.previousSibling;while(J&&J.nodeType!==1){J=J.previousSibling}return J},D=function(J){var Q=[],J=J.firstChild;while(J){if(J.nodeType===1){Q[Q.length]=J}J=J.nextSibling}return Q},aM=function(Q){Q=aC(Q);var a8=[0,0];if(!Q){return a8}if("getBoundingClientRect" in Q){var a5=Q.getBoundingClientRect(),J=A(),a7=a5.left,a6=a5.top;a8=[a7+J[0],a6+J[1]]}else{a8=[Q.offsetLeft,Q.offsetTop];while(Q=Q.offsetParent){a8[0]+=Q.offsetLeft;a8[0]+=parseInt(aG(Q,"border-left-width"))||0;a8[1]+=Q.offsetTop;a8[1]+=parseInt(aG(Q,"border-top-width"))||0}}return a8},am=function(J,a6,a5,Q){J=aC(J);Q=Q||"px";J.style.left=a6+Q;J.style.top=a5+Q},w=function(J){return aM(J)[0]},aj=function(J,a5,Q){(aC(J)).style.left=a5+(Q||"px")},t=function(J){return aM(J)[1]},ai=function(J,a5,Q){(aC(J)).style.top=a5+(Q||"px")},s=function(){if(!aA(aR.hasAttribute)&&aB){return function(Q,J){switch(J){case"class":return Q.className||null;case"href":case"src":return Q.getAttribute(J,2)||null;case"style":return Q.getAttribute(J).cssText.toLowerCase()||null;case"for":return Q.attributes[J].nodeValue||null}return Q.getAttribute(J)||null}}return function(Q,J){return Q.getAttribute(J)}}(),aG=function(J,a5){var Q,a5=g(a5);if(a5==="opacity"){if(!aA(J.__opacity)){J.__opacity=1}return J.__opacity}if(J.style[a5]){return J.style[a5]}else{if("getComputedStyle" in ay){return ay.getComputedStyle(J,null)[a5]}else{if("currentStyle" in J){return J.currentStyle[a5]}}}},E=function(a5,Q,J){var a7=function(a9,a8){if(a9==="float"){a9="cssFloat"}if(a9==="opacity"){B(a5,a8)}else{a5.style[g(a9)]=a8}},a6;if(H(Q)){for(a6 in Q){a7(a6,Q[a6])}}else{if(J){a7(Q,J)}}},B=function(){if("filters" in aR){return function(J,Q){if(J.__opacity===undefined){J.__opacity=1}J.style.filter=Q===1?"":"alpha(opacity="+(Q*100)+")";J.__opacity=Q}}return function(J,Q){if(J.__opacity===undefined){J.__opacity=1}J.style.opacity=J.__opacity=Q}}(),P=function(a5,Q,a6){var J=aP,a7=J.ns;if(!(a5=aC(a5))){return}if(!(a7 in a5)){a5[a7]=ag();J[a5[a7]]={}}J[a5[a7]][Q]=a6},ax=function(a5,Q){var J=aP,a6=J.ns;if(!(a5=aC(a5))){return}if(a6 in a5&&a5[a6] in J){return J[a5[a6]][Q]}return null},V=function(a5,Q){var J=aP,a6=J.ns;if(!(a5=aC(a5))){return}if(a6 in a5&&a5[a6] in J){delete J[a5[a6]][Q]}},aP={ns:"jelly_"+(+new Date)},ag=function(){var J=0;return function(){return ++J}}();av(au,{addClass:aX,removeClass:aZ,hasClass:a4,toggleClass:z,getElements:R,getElement:aC,createElement:ao,createBranch:a2,wrapElement:aD,withElement:l,replaceElement:ak,removeElement:y,insertElement:aV,insertTop:j,insertBefore:an,insertAfter:C,getFirst:aT,getLast:v,getNext:M,getPrevious:at,getChildren:D,getXY:aM,setXY:am,getX:w,setX:aj,getY:t,setY:ai,getAttribute:s,getStyle:aG,setStyle:E,setOpacity:B,storeData:P,retrieveData:ax,removeData:V});
21
- /* events */
22
- var Z=function(a8,a5,Q){a8=aC(a8);var J=a5==="mouseenter",a6=a5==="mouseleave",a9,a7;if(a8===K&&a5==="domready"){return q(Q)}if(!N){a9=function(ba){Q.call(a8,e(ba))}}if(J||a6){a9=function(ba){ba=e(ba);if(!G.call(a8,ba)){return}Q.call(a8,ba)};a5=J?"mouseover":"mouseout"}a7=[a8,a5,a9||Q];m.push(a7);if(N){a8.addEventListener(a5,a9||Q,false)}else{a8.attachEvent("on"+a5,a9)}return a7},ac=function(J){if(J){if(!a(J)){return X(J)}if(N){J[0].removeEventListener(J[1],J[2],false)}else{J[0].detachEvent("on"+J[1],J[2])}}},m=[],L=function(){for(var J=0,Q;m[J];J++){Q=m[J];if(Q[0]!==ay&&Q[1]!=="unload"){ac(Q)}}},e=function(){if(N){return function(J){return J}}return function(J){J=ay.event;J.target=J.srcElement;J.relatedTarget=function(){switch(J.type){case"mouseover":return J.fromElement;case"mouseout":return J.toElement}}();J.stopPropagation=function(){J.cancelBubble=true};J.preventDefault=function(){J.returnValue=false};J.pageX=J.clientX+aR.scrollLeft;J.pageY=J.clientY+aR.scrollTop;return J}}(),G=function(a7){var a6,a5;if(a7.relatedTarget){try{a6=a7.relatedTarget;if(a6.nodeType!==1||a6===this){return false}var Q=this.getElementsByTagName("*"),a8=Q.length,a5=0;for(a5;a8>a5;a5++){if(a6===Q[a5]){return false}}}catch(J){}}return true},n=function(J){J=e(J);J.stopPropagation();J.preventDefault();return J};av(au,{addEvent:Z,removeEvent:ac,stopEvent:n,fixEvent:e});Z(ay,"unload",L);
23
- /* dom ready */
24
- (function(){var Q=au.DomReady={ready:false,handlers:{},add:function(a9,a8){var a8=a8||++a5;Q.handlers[a8]=a9;return a8},remove:function(a8){delete Q.handlers[a8]},fire:function(){if(Q.ready){return}Q.ready=true;clearTimeout(a6);for(var a9 in Q.handlers){try{Q.handlers[a9]()}catch(a8){ab(a8)}}}},a5=0,a6,a7=function(){if(K.readyState==="complete"){K.detachEvent("onreadystatechange",a7);Q.fire()}},J=function(){try{aR.doScroll("left")}catch(a8){a6=setTimeout(J,10);return}Q.fire()};if(N){Z(K,"DOMContentLoaded",Q.fire)}else{K.attachEvent("onreadystatechange",a7);if(ay===top){a6=setTimeout(J,0)}}Z(ay,"load",Q.fire)})();var r=au.DomReady,q=function(Q,J){return r.add(Q,J||null)},X=function(J){r.remove(J)};av(au,{addDomReady:q,removeDomReady:X});
25
- /* cookies */
26
- av(au,{getCookie:function(Q){var J=new RegExp(Q+"=([^; ]+)").exec(K.cookie);return J?unescape(J[1]):null},setCookie:function(Q,a7,J,a9,a6,a8){if(J){var a5=(+new Date)+((1000*60*60*24)*J);J=new Date(a5).toUTCString()}K.cookie=Q+"="+escape(a7)+(J?";expires="+J:"")+(a9?";path="+a9:"")+(a6?";domain="+a6:"")+(a8?";secure":"")},removeCookie:function(J,a5,Q){if(au.getCookie(J)){K.cookie=J+"="+(a5?";path="+a5:"")+(Q?";domain="+Q:"")+(";expires="+new Date(0))}}});
27
- /* flash */
28
- av(au,{getFlashVersion:function(){var J={major:0,build:0},a5=navigator.plugins,a8,Q;if(a5&&H(a5["Shockwave Flash"])){a8=a5["Shockwave Flash"].description;if(a8!==null){Q=a8.replace(/^[^\d]+/,"");version.major=parseInt(Q.replace(/^(.*)\..*$/,"$1"),10);version.build=parseInt(Q.replace(/^.*r(.*)$/,"$1"),10)}}else{if(aB){try{var a7=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");a8=a7.GetVariable("$version");if(a8!==null){Q=a8.replace(/^\S+\s+(.*)$/,"$1").split(",");version.major=parseInt(Q[0],10);version.build=parseInt(Q[2],10)}}catch(a6){}}}return version},createFlashObject:function(a7,a5,J,a9,a8,a6,Q){var a8=a8||{};a6=a6||{},attrs=Q||{},a9=a9||'You need <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player</a> installed to view this content</a>',data=[],ar,output="<object";if(aB){attrs.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";a8.movie=a7}else{attrs.data=a7;attrs.type="application/x-shockwave-flash"}attrs.width=a5;attrs.height=J;for(ar in attrs){output+=" "+i+'="'+attr[i]+'"'}output+=">\n";for(ar in a6){data.push(ar+"="+encodeURIComponent(a6[ar]))}if(data.length>0){a8.flashvars=data.join("&")}for(ar in a8){output+='\t<param name="'+ar+'" value="'+a8[ar]+'" />\n'}return output+a9+"\n</object>"},embedFlashObject:function(a6,a8,a5,J,a9,a7,Q){a6=aC(a6);a6.innerHTML=au.createFlashObject(a8,a5,J,a6.innerHTML,a9||{},a7||{},Q||{})}});
29
- /* misc utilities */
30
- var ae=function(){if(aA(aR.clientWidth)&&aR.clientWidth!==0){return function(){return[aR.clientWidth,aR.clientHeight]}}return function(){return[K.body.clientWidth||0,K.body.clientHeight||0]}}(),A=function(){if(aA(ay.pageYOffset)){return function(){return[ay.pageXOffset,ay.pageYOffset]}}return function(){if(aA(aR.scrollTop)&&(aR.scrollTop>0||aR.scrollLeft>0)){return[aR.scrollLeft,aR.scrollTop]}return[K.body.scrollLeft,K.body.scrollTop]}}(),aw=function(a5){a5=a5||ay.location;var a6={};if(/\?/.test(a5.href)){var J=a5.href.split("?")[1].split("&"),Q=J.length-1,a7;do{a7=J[Q].split("=");a6[a7[0]]=decodeURIComponent(a7[1].replace(/\+/g,"%20"))}while(Q--)}return a6},af=function(){var J=function(a5,a6){if(!a5){return}if(callbackFilter){a6=callbackFilter.call(a6,a6)}data.push(a5+"="+encodeURIComponent(a6).replace(/%20/g,"+"))},Q=function(a7){if(!az(a7)||!/^(input|textarea|select)$/i.test(a7.nodeName)){return}var a6=a7.type.toLowerCase(),a5=a7.name,a8=a7.value;switch(a6){case"checkbox":if(a7.checked){J(a5,a8||"on")}break;case"radio":if(a7.checked){J(a5,a8)}break;default:J(a5,a8)}};args=O(arguments),callbackFilter=aL(args[args.length-1])?args.pop():null;data=[];args.each(function(a5){if(H(a5)&&ap(a5.length)){(a(a5)?a5:O(a5)).each(Q)}else{if(H(a5,true)){for(var a6 in a5){J(a6,a5[a6])}}else{if(aY(a5)||az(a5)){var a7=aC(a5);if(a7){Q(a7);au.Q(a7,"textarea, input, select").each(Q)}else{data.push(a5)}}}}});return data.join("&")},aJ=function(){var J=["var J=JELLY"],a5,Q=1;for(a5 in au){J[Q++]=a5+"=J."+a5}return J.join(",")+";"};av(au,{getViewport:ae,getWindowScroll:A,parseQuery:aw,buildQuery:af,unpack:aJ});
31
- /* page init */
32
- if(aK.ie6){try{K.execCommand("BackgroundImageCache",false,true)}catch(a3){}}var T=["unknown"],ar;for(ar in aK){if(aK[ar]){if(T[0]==="unknown"){T=[ar]}else{T.push(ar)}}}aX(aR,"js "+T.join(" "));
33
- /* selector engine */
34
- (function(){var bw=function(bB){bf[bf.length]=bB},bA=function(bC){for(var bB=0,bD=bC.length;bB<bD;bB++){bC[bB][bg]=null}},bc=function(bC){var bB,bE=bC.length,bD=[];while(bE){bB=bC[--bE];if(!bB[bg]){bB[bg]=true;bD[bD.length]=bB}}bE=bD.length;while(bE){bD[--bE][bg]=null}return bD.reverse()},bb=function(bC,bB){var bE={mode:bB?bq:be,not:false,type:a8};if(/^(\w+)?#\w/.test(bC)){bE.val=bC.split("#")}else{if(/^\w+|\*$/.test(bC)){bE.type=bp;bE.val=bC}else{if(/^\.\w/.test(bC)){bE.type=bd;bE.val=bC.replace(/^\./,"")}else{if(/^\[/.test(bC)){bE.type=br;bE.val=bC.replace(/\[|\]/g,"")}else{if(/^\+|>|~/.test(bC)){bE.type=a6;bE.val=bC}else{if(/:not\(/.test(bC)){bE=bb(bC.replace(/\:not\(|\)$/g,""));bE.not=true}else{if(/^:/.test(bC)){var bD=bC.replace(/^:|\)$/g,"").split("(");bE.type=a7;bE.kind=bD[0];bE.val=bD[1]}}}}}}}return bE},bv=function(bC){var bK=[],bE=aS(bC.replace(/(>|~(?!=)|\+(?!\d))/g," $1 ")).split(" "),bJ={mode:bq,type:bp,val:"*"},bB="getElementsByClassName" in K,bI=false;for(var bG=0,bH;bG<bE.length;bG++){bH=bE[bG].replace(/([^\(\#\.\[])(:)/g,"$1 $2").replace(/([^\(])(\[|\.)/g,"$1 $2").replace(/\:not\(\s*/g,":not(").trim().split(" ");for(var bD=0,bF;bD<bH.length;bD++){bF=bb(bH[bD],!bD);if(bI){bF.mode=be}else{if(bD===0&&(bF.type===a7||bF.type===br||(bF.type===bd&&!bB)||bF.not)){bK.push(bJ);bF.mode=be}}if(aa(bH[bD],bg)){bF[bF.type===br?"spValue":"val"]=a9.shift()}bK.push(bF);bI=/^(~|\+)$/.test(bF.val)}}bK.postFilter=!(bE.length===1||bE.length===3&&/^[\+~]$/.test(bE[1]));return bK},Q=function(bD){var bB=bD.val[0],bH=bD.val[1];if(bD.mode===be){for(var bE=0,bG=bo.length;bE<bG;bE++){if(bB){if((bo[bE].tagName.toLowerCase()===bB&&bo[bE].id===bH)!==bD.not){bw(bo[bE])}}else{if((bo[bE].id===bH)!==bD.not){bw(bo[bE])}}if(!bD.not&&bf[0]){return}}}else{if(!bB){bf[0]=aC(bH)}else{var bF=aC(bH);if(bF&&bF.tagName.toLowerCase()===bB){bf[0]=bF}}if(!ba&&bf[0]){var bC=false;for(var bE=0,bG=bo.length;bE<bG;bE++){if(bf[0].contains(bo[bE])){bC=true;break}}if(!bC){bf[0]=null}}}},bs=function(bC){var bB=aB&&bC.val==="*";if(ba){for(var bG=0,bE=R(bC.val),bI=bE.length;bG<bI;bG++){if(bB){if(bE[bG].nodeType===1){bw(bE[bG])}}else{bw(bE[bG])}}}else{if(bC.not||bC.mode===be){for(var bG=0,bH=bC.val.toUpperCase(),bI=bo.length;bG<bI;bG++){if((bo[bG].nodeName.toUpperCase()===bH)!==bC.not){bw(bo[bG])}}}else{for(var bG=0,bI=bo.length;bG<bI;bG++){var bE=R(bo[bG],bC.val),bF=bE.length,bD=0;for(bD;bD<bF;bD++){if(bB){if(bE[bD].nodeType===1){bw(bE[bD])}}else{bw(bE[bD])}}}}}},J=function(bD){var bC=bD.val,bE=bD.not,bB=bo.length,bH=0;if(bD.mode===bq){if(ba){bf=O(K.getElementsByClassName(bC))}else{for(bH;bH<bB;bH++){var bK=bo[bH].getElementsByClassName(bC),bJ=bK.length,bG=0;for(bG;bG<bJ;bG++){bw(bK[bG])}}}}else{var bI=new RegExp("(^|\\s)"+bC+"(\\s|$)"),bF;for(bH;bH<bB;bH++){bF=bo[bH].className;if(!bF){if(bE){bw(bo[bH])}continue}if(bI.test(bF)!==bE){bw(bo[bH])}}}},by={"=":function(bB,bC){return bB===bC},"^=":function(bB,bC){return bB.indexOf(bC)===0},"$=":function(bB,bC){return bB.substr(bB.length-bC.length)===bC},"*=":function(bB,bC){return bB.indexOf(bC)!==-1},"|=":function(bB,bC){return bB.indexOf(bC)===0},"~=":function(bB,bC){return(" "+bB+" ").indexOf(" "+bC+" ")!==-1}},bl=function(bC){var bG=bo.length,bD=0;if(aa(bC.val,"=")){var bE=/([\w-]+)([^=]?=)(.+)/.exec(bC.val),bB,bF=aA(bC.spValue)?bC.spValue:bE[3];for(bD;bD<bG;bD++){bB=s(bo[bD],bE[1]);if((bB!==null&&by[bE[2]](bB,bF))!==bC.not){bw(bo[bD])}}}else{for(bD;bD<bG;bD++){if((s(bo[bD],bC.val)!==null)!==bC.not){bw(bo[bD])}}}},bm=function(bB){var bD=bB.kind,bE=bB.not;if(/^(nth-|first-of|last-of)/.test(bD)){bf=bt[bD](bo,bB)}else{if(bD==="root"&&!bE){bf[0]=rootElement}else{if(bD==="target"&&!bE){var bF=ay.location.href.split("#")[1]||null;bf[0]=aC(bF)||R(bF)[0]}else{for(var bC=0,bG=bo.length;bC<bG;bC++){if(bt[bD](bo[bC],bB)!==bE){bw(bo[bC])}}}}}},bn=function(bC){var bB={mode:"all"};bB.direction=bC.indexOf("-")===0?"neg":"pos";if(bC==="n"){return bB}else{if(/^\d+$/.test(bC)){bB.mode="child";bB.val=parseInt(bC,10);return bB}}bB.mode="an+b";if(/^(even|2n|2n\+2)$/.test(bC)){bB.oddEven=0}else{if(/^(odd|2n\+1)$/.test(bC)){bB.oddEven=1}}var bD=bC.split("n");bB.start=bD[1]?parseInt(bD[1],10):1;bB.jump=bD[0]&&bD[0]!=="-"?parseInt(bD[0].replace(/^\-/,""),10):1;return bB},bx=function(bJ,bN,bG,bP,bH){bN=bn(bN);if(bN.mode==="all"){return bJ}var bQ=[],bO=[],bM=bJ[0].nodeName,bF=bG?function(bR){return bR.nodeType===1&&bR.nodeName===bM}:function(bR){return bR.nodeType===1},bD=function(bR){if(bR){bQ.push(bJ[bI])}};for(var bI=0,bE=bJ.length,bB,bK;bI<bE;bI++){bB=bJ[bI].parentNode,bK=1;if(!bB[bg]){var bC=bB[!bP?"firstChild":"lastChild"],bL=!bP?"nextSibling":"previousSibling";for(bC;bC;bC=bC[bL]){if(bF(bC)){bC.nodeIndex=bK++}}bB[bg]=1;bO.push(bB)}if(bN.mode==="child"){bD(((bJ[bI].nodeIndex===bN.val)!==bH))}else{if(aA(bN.oddEven)){bD((bJ[bI].nodeIndex%2===bN.oddEven)!==bH)}else{if(bN.direction==="pos"){if(bJ[bI].nodeIndex<bN.start){if(bH){bD(true)}}else{bD(((bJ[bI].nodeIndex-bN.start)%bN.jump===0)!==bH)}}else{if(bJ[bI].nodeIndex>bN.start){if(bH){bD(true)}}else{bD(((bN.start-bJ[bI].nodeIndex)%bN.jump===0)!==bH)}}}}}bA(bO);return bN.direction==="neg"?bQ.reverse():bQ},bt={"nth-child":function(bC,bB){return bx(bC,bB.val,false,false,bB.not)},"nth-of-type":function(bC,bB){return bx(bC,bB.val,true,false,bB.not)},"nth-last-child":function(bC,bB){return bx(bC,bB.val,false,true,bB.not)},"nth-last-of-type":function(bC,bB){return bx(bC,bB.val,true,true,bB.not)},"first-of-type":function(bC,bB){return bx(bC,"1",true,false,bB.not)},"last-of-type":function(bC,bB){return bx(bC,"1",true,true,bB.not)},"only-child":function(bB){return !M(bB)&&!at(bB)},"only-of-type":function(bE){var bC=R(bE.parentNode,bE.nodeName);if(bC.length===1&&bC[0].parentNode===bE.parentNode){return true}else{for(var bB=true,bG=bC.length,bD=0,bF=0;bD<bG;bD++){if(bE.parentNode===bC[bD].parentNode){bF++;if(bF>1){return false}}}return true}},"first-child":function(bB){return !at(bB)},"last-child":function(bB){return !M(bB)},checked:function(bB){return bB.checked},enabled:function(bB){return !bB.disabled},disabled:function(bB){return bB.disabled},empty:function(bB){return !bB.firstChild},lang:function(bC,bB){return bC.getAttribute("lang")===bB.val},root:function(bB){return bB===rootElement},target:function(bB){var bC=ay.location.href.split("#")[1]||null;return bB.id===bC||bB.name===bC}},bj=function(){for(var bB=0,bD=bo.length,bC;bB<bD;bB++){if(bC=M(bo[bB])){bw(bC)}}},bi=function(){var bB=[],bG=[],bF=bo.length,bC=0,bD,bE;for(bC;bC<bF;bC++){bE=bo[bC].parentNode;bE[bg]=true;bB.push({parent:bE,child:bo[bC]})}for(bC=0;bC<bB.length;bC++){if(bB[bC].parent[bg]){bB[bC].parent[bg]=null;bG.push(bB[bC].child)}}for(bC=0;bC<bG.length;bC++){bD=bG[bC].nextSibling;while(bD){if(bD.nodeType===1){bw(bD)}bD=bD.nextSibling}}},bk=function(){var bC=[],bF=bo.length,bG=bf.length,bB,bE=0,bD;for(bE;bE<bG;bE++){bB=bf[bE].parentNode;for(bD=0;bD<bF;bD++){if(bo[bD]===bB){bC.push(bf[bE]);break}}}bf=bC},ba=1,a9=[],bg="__JELLY_Q__",bf=[],bo=[],be=1,bq=2,a8=3,bp=4,bd=5,br=6,a7=7,a6=8,bh=function(bN,bM){var bL=!!bM,bH=bL?bM:bN;bo=bL?[bN]:[];if(ba){var bF;while(bF=/('|")([^\1]*?)\1/.exec(bH)){a9.push(bF[2]);bH=bH.split(bF[0]);bH=[bH[0],bg,bH[1]].join("")}}if(aa(bH,",")){var bE=[],bI=bH.split(","),bC;ba=0;while(bC=bI.shift()){bE=bE.concat(bL?bh(bN,bC):bh(bC))}ba=1;return bc(bE)}ba=!bM;var bK=bv(bH),bB=null;for(var bJ=0,bD=bK.length,bG;bJ<bD;bJ++){bf=[];bG=bK[bJ];switch(bG.type){case a8:Q(bG);break;case bp:bs(bG);break;case bd:J(bG);break;case br:bl(bG);break;case a7:bm(bG);break;case a6:if(bG.val==="+"){bj(bG)}else{if(bG.val==="~"){bi(bG)}}}if(bB){bk()}if(bG.val===">"){bB=true;continue}if(!bf[0]){return[]}bB=null;ba=0;bo=bf}if(bK.postFilter){return bz(bc(bo))}return bz(bo)},a5=function(bC,bB){try{return bz(O(bB?bC.querySelectorAll(bB):K.querySelectorAll(bC)))}catch(bD){aH(bD)}},bz=function(bC){for(var bB in bu){bC[bB]=bu[bB]}return bC},bu={};["addClass","removeClass","setStyle","addEvent"].each(function(bB){bu[bB]=function(){var bC=O(arguments),bE=this.length,bD=0;for(bD;bD<bE;bD++){au[bB].apply({},[this[bD]].concat(bC))}return this}});au.Q=function(){if(S){if(!aK.ie){return a5}return function(bC,bB){if(/\:(nth|las|onl|not|tar|roo|emp|ena|dis|che)/.test(bB||bC)){return bh(bC,bB)}return a5(bC,bB)}}return bh}()})();var al=au.Q;
35
- /* request */
36
- (function(){var J=aE("Request",{__init:function(Q){av(this,Q)},__static:{timeout:15000},noCache:true,async:true,cleanUp:true,feedback:{start:W,stop:W},requestHeaders:{},send:function(Q,a6,ba){var bc=this,a5=a6,a7=null,Q=Q.toUpperCase(),bb=bc.xhr?bc.xhr:bc.getXHR();if(bc.inProgress||!bb){return false}if(Q==="POST"){var a8=a6.split("?");a5=a8[0];a7=a8[1];bc.requestHeaders["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8";bc.requestHeaders["Content-length"]=a7.length}if(Q==="GET"&&bc.noCache){bc.requestHeaders["If-Modifed-Since"]="Sat, 1 Jan 2000 00:00:00 GMT"}bb.open(Q,a5,bc.async);bb.onreadystatechange=function(){if(bb.readyState===4){bc.fireEvent("complete",bb);clearTimeout(bc.timer);bc.feedback.stop();var bd=bb.status,be=(bd>=200&&bd<300)||bd===304||(bd===undefined&&aK.webkit);if(be){bc.fireEvent("success",bb);if(ba){ba.call(bc,bb)}}else{bc.fireEvent("fail",bb)}if(bc.cleanUp){bc.xhr=null}bc.inProgress=false}};for(var a9 in bc.requestHeaders){bb.setRequestHeader(a9,bc.requestHeaders[a9])}bb.setRequestHeader("X-Requested-With","XMLHttpRequest");bc.feedback.start();bc.timer=setTimeout(function(){bb.abort();bc.fireEvent("timeout",bb);bc.inProgress=false},bc.timeout||J.timeout);bc.inProgress=true;bb.send(a7);bc.fireEvent("request",bb);return true},post:function(Q,a5,a6){return this.send("post",Q+"?"+(a5||"empty"),a6)},get:function(Q,a5){return this.send("get",Q,a5)},getXHR:function(){if("XMLHttpRequest" in ay){return function(){return new XMLHttpRequest()}}return function(){var a5=false;try{a5=new ActiveXObject("Msxml2.XMLHTTP")}catch(Q){try{a5=new ActiveXObject("Microsoft.XMLHTTP")}catch(Q){}}return a5}}()})})();
37
- /* easings */
38
- au.easings={linear:function(a6,J,Q,a5){return Q*a6/a5+J},quadIn:function(a6,J,Q,a5){return Q*(a6/=a5)*a6+J},quadOut:function(a6,J,Q,a5){return -Q*(a6/=a5)*(a6-2)+J},quadInOut:function(a6,J,Q,a5){if((a6/=a5/2)<1){return Q/2*a6*a6+J}return -Q/2*((--a6)*(a6-2)-1)+J},cubicIn:function(a6,J,Q,a5){return Q*(a6/=a5)*a6*a6+J},cubicOut:function(a6,J,Q,a5){return Q*((a6=a6/a5-1)*a6*a6+1)+J},cubicInOut:function(a6,J,Q,a5){if((a6/=a5/2)<1){return Q/2*a6*a6*a6+J}return Q/2*((a6-=2)*a6*a6+2)+J},quartIn:function(a6,J,Q,a5){return Q*(a6/=a5)*a6*a6*a6+J},quartOut:function(a6,J,Q,a5){return -Q*((a6=a6/a5-1)*a6*a6*a6-1)+J},quartInOut:function(a6,J,Q,a5){if((a6/=a5/2)<1){return Q/2*a6*a6*a6*a6+J}return -Q/2*((a6-=2)*a6*a6*a6-2)+J},quintIn:function(a6,J,Q,a5){return Q*(a6/=a5)*a6*a6*a6*a6+J},quintOut:function(a6,J,Q,a5){return Q*((a6=a6/a5-1)*a6*a6*a6*a6+1)+J},quintInOut:function(a6,J,Q,a5){if((a6/=a5/2)<1){return Q/2*a6*a6*a6*a6*a6+J}return Q/2*((a6-=2)*a6*a6*a6*a6+2)+J},sineIn:function(a6,J,Q,a5){return -Q*Math.cos(a6/a5*(Math.PI/2))+Q+J},sineOut:function(a6,J,Q,a5){return Q*Math.sin(a6/a5*(Math.PI/2))+J},sineInOut:function(a6,J,Q,a5){return -Q/2*(Math.cos(Math.PI*a6/a5)-1)+J},expoIn:function(a6,J,Q,a5){return(a6==0)?J:Q*Math.pow(2,10*(a6/a5-1))+J},expoOut:function(a6,J,Q,a5){return(a6==a5)?J+Q:Q*(-Math.pow(2,-10*a6/a5)+1)+J},expoInOut:function(a6,J,Q,a5){if(a6==0){return J}if(a6==a5){return J+Q}if((a6/=a5/2)<1){return Q/2*Math.pow(2,10*(a6-1))+J}return Q/2*(-Math.pow(2,-10*--a6)+2)+J},circIn:function(a6,J,Q,a5){return -Q*(Math.sqrt(1-(a6/=a5)*a6)-1)+J},circOut:function(a6,J,Q,a5){return Q*Math.sqrt(1-(a6=a6/a5-1)*a6)+J},circInOut:function(a6,J,Q,a5){if((a6/=a5/2)<1){return -Q/2*(Math.sqrt(1-a6*a6)-1)+J}return Q/2*(Math.sqrt(1-(a6-=2)*a6)+1)+J},elasticIn:function(a8,J,Q,a5,a9,a6){if(a8==0){return J}if((a8/=a5)==1){return J+Q}if(!a6){a6=a5*0.3}if(!a9){a9=1}if(a9<Math.abs(Q)){a9=Q;var a7=a6/4}else{var a7=a6/(2*Math.PI)*Math.asin(Q/a9)}return -(a9*Math.pow(2,10*(a8-=1))*Math.sin((a8*a5-a7)*(2*Math.PI)/a6))+J},elasticOut:function(a8,J,Q,a5,a9,a6){if(a8==0){return J}if((a8/=a5)==1){return J+Q}if(!a6){a6=a5*0.3}if(!a9){a9=1}if(a9<Math.abs(Q)){a9=Q;var a7=a6/4}else{var a7=a6/(2*Math.PI)*Math.asin(Q/a9)}return a9*Math.pow(2,-10*a8)*Math.sin((a8*a5-a7)*(2*Math.PI)/a6)+Q+J},elasticInOut:function(a8,J,Q,a5,a9,a6){if(a8==0){return J}if((a8/=a5/2)==2){return J+Q}if(!a6){a6=a5*(0.3*1.5)}if(!a9){a9=1}if(a9<Math.abs(Q)){a9=Q;var a7=a6/4}else{var a7=a6/(2*Math.PI)*Math.asin(Q/a9)}if(a8<1){return -0.5*(a9*Math.pow(2,10*(a8-=1))*Math.sin((a8*a5-a7)*(2*Math.PI)/a6))+J}return a9*Math.pow(2,-10*(a8-=1))*Math.sin((a8*a5-a7)*(2*Math.PI)/a6)*0.5+Q+J},backOffset:1.70158,backIn:function(a7,J,Q,a5,a6){if(!a6){a6=au.easings.backOffset}return Q*(a7/=a5)*a7*((a6+1)*a7-a6)+J},backOut:function(a7,J,Q,a5,a6){if(!a6){a6=au.easings.backOffset}return Q*((a7=a7/a5-1)*a7*((a6+1)*a7+a6)+1)+J},backInOut:function(a7,J,Q,a5,a6){if(!a6){a6=au.easings.backOffset}if((a7/=a5/2)<1){return Q/2*(a7*a7*(((a6*=(1.525))+1)*a7-a6))+J}return Q/2*((a7-=2)*a7*(((a6*=(1.525))+1)*a7+a6)+2)+J},bounceIn:function(a6,J,Q,a5){return Q-au.easings.bounceOut(a5-a6,0,Q,a5)+J},bounceOut:function(a6,J,Q,a5){if((a6/=a5)<(1/2.75)){return Q*(7.5625*a6*a6)+J}else{if(a6<(2/2.75)){return Q*(7.5625*(a6-=(1.5/2.75))*a6+0.75)+J}else{if(a6<(2.5/2.75)){return Q*(7.5625*(a6-=(2.25/2.75))*a6+0.9375)+J}else{return Q*(7.5625*(a6-=(2.625/2.75))*a6+0.984375)+J}}}},bounceInOut:function(a6,J,Q,a5){if(a6<a5/2){return au.easings.bounceIn(a6*2,0,Q,a5)*0.5+J}return au.easings.bounceOut(a6*2-a5,0,Q,a5)*0.5+Q*0.5+J}};
39
- /* tween */
40
- (function(){var J=aE("Tween",{__init:function(Q,a5){this.el=aC(Q);av(this,a5||{})},__static:{uid:0,tweens:{},timerSpeed:20,subscribe:function(Q){J.tweens[Q.tweenId]=function(){Q.step.call(Q)};if(!J.timerHandle){J.startTimer()}},unSubscribe:function(Q){delete J.tweens[Q.tweenId];clearTimeout(J.timeoutHandle);J.timeoutHandle=setTimeout(function(){if(aN(J.tweens)){J.stopTimer()}},250)},startTimer:function(){var Q=function(){for(var a5 in J.tweens){J.tweens[a5]()}};J.timerHandle=setInterval(Q,J.timerSpeed)},stopTimer:function(){if(J.timerHandle){clearInterval(J.timerHandle)}J.timerHandle=null}},easing:au.easings.sineInOut,duration:500,unit:"px",setEasing:function(Q){this.easing=au.easings[Q];return this},setDuration:function(Q){this.duration=Q;return this},setOpacity:function(Q){B(this.el,Q);return this},setElement:function(Q){this.el=aC(Q);return this},sequence:function(){this.sequenceStack=O(arguments);this.callSequence();return this},callSequence:function(){var Q=this,a5=a(Q.sequenceStack)?Q.sequenceStack.shift():null;if(a5){if(aL(a5)){a5.call(Q,Q)}else{Q.start(a5)}}else{Q.fireEvent("sequenceComplete")}},stop:function(){J.unSubscribe(this);return this},start:function(a9){var bf=this,bc=O(arguments),a7=bf.el;if(aA(bc[1])){a9={};a9[bc[0]]=bc[1]}bf.stop();bf.stack=[];if(a(a7)||a0(a7)){a7=a7[0]}if("duration" in a9){bf.setDuration(a9.duration);delete a9.duration}if("easing" in a9){bf.setEasing(a9.easing);delete a9.easing}var Q,be,bd;for(Q in a9){be=g(Q),bd=a9[Q];if(Q.indexOf("color")!==-1){if(a(bd)){bd=[aU(bd[0],"rgb-array"),aU(bd[1],"rgb-array")]}else{var a5=aG(a7,be);if(isNaN(a5)&&!aY(a5)){return aH('getStyle for "%s" returns NaN',be)}bd=[aU(a5,"rgb-array"),aU(bd,"rgb-array")]}bd.color=true}else{if(Q==="background-position"){if(a(bd[0])){bd=[bd[0][0],bd[0][1]],[bd[1][0],bd[1][1]]}else{var ba=0,a8=0,bb=aG(a7,be),a6=/(\d+)[\w%]{1,2}\s+(\d+)[\w%]{1,2}/.exec(bb);if(bb&&a6){ba=parseInt(a6[1],10);a8=parseInt(a6[2],10)}bd=[[ba,bd[0]],[a8,bd[1]]]}bd.bgp=true}else{if(!a(bd)){var a5=parseInt(aG(a7,be),10);if(isNaN(a5)&&!aY(a5)){return aH('getStyle for "%s" returns NaN',be)}bd=[a5,bd];if(Q==="opacity"){bd.opac=true}}else{bd=bd}}}bf.stack.push({prop:be,from:bd[0],to:bd[1],color:bd.color,bgp:bd.bgp,opac:bd.opac})}bf.startTime=+(new Date);bf.tweenId=++J.uid;J.subscribe(bf);bf.fireEvent("start");return bf},step:function(){var Q=this,a5=+(new Date);if(a5<Q.startTime+Q.duration){Q.elapsedTime=a5-Q.startTime}else{Q.stop();Q.tidyUp();setTimeout(function(){Q.fireEvent("complete");Q.callSequence()},0);return}Q.increase()},tidyUp:function(){var Q=this,a7,a6=Q.el.style,a5=Q.stack.length-1;do{a7=Q.stack[a5];if(a7.opac){Q.setOpacity(a7.to)}else{if(a7.color){a6[a7.prop]="rgb("+a7.to.join(",")+")"}else{if(a7.bgp){a6.backgroundPosition=a7.to[0]+Q.unit+" "+a7.to[1]+Q.unit}else{a6[a7.prop]=a7.to+Q.unit}}}}while(a5--)},increase:function(){var a5=this,ba,Q=Math.round,a8=a5.el.style,a7=a5.stack.length-1,a6=(aK.ie||aK.opera||aK.webkit)&&a5.unit==="px";do{ba=a5.stack[a7];if(ba.opac){a5.setOpacity(a5.compute(ba.from,ba.to))}else{if(ba.color){a8[ba.prop]="rgb("+Q(a5.compute(ba.from[0],ba.to[0]))+","+Q(a5.compute(ba.from[1],ba.to[1]))+","+Q(a5.compute(ba.from[2],ba.to[2]))+")"}else{if(ba.bgp){a8.backgroundPosition=a5.compute(ba.from[0],ba.to[0])+a5.unit+" "+a5.compute(ba.from[1],ba.to[1])+a5.unit}else{var a9=a5.compute(ba.from,ba.to);a8[ba.prop]=(a6?Q(a9):a9)+a5.unit}}}}while(a7--)},compute:function(a5,Q){return this.easing(this.elapsedTime,a5,(Q-a5),this.duration)}})})();var k=au.Tween;
41
- /* load */
42
- (function(){var J=au.Load={cache:{},js:function(ba,bb,a8){if(J.cache[ba]){return J.cache[ba]}var a5=av({type:"text/javascript"},a8||{}),a7=ao("script",a5),a9=function(){J.cache[ba]=a7;if(bb){aq(bb,a7,a7)}},Q=function(bc){ab(bc,': "'+ba+'"')};try{if(a7.readyState){a7.onreadystatechange=function(){if(/^(loaded|complete)$/.test(a7.readyState)){a7.onreadystatechange=null;a9()}}}else{a7.onload=a9;a7.onerror=Q}a7.src=ba;aV(a7,F);return a7}catch(a6){ab(a6)}},css:function(a7,a6){if(J.cache[a7]){return J.cache[a7]}var Q=av({type:"text/css",media:"screen",rel:"stylesheet"},a6||{}),a5=ao("link",Q);a5.href=a7;J.cache[a7]=a5;aV(a5,F);return a5},img:function(a8,a9,a6){if(J.cache[a8]){return J.cache[a8]}var a5=ao("img",a6||{}),a7=function(){J.cache[a8]=a5;if(a9){a9.call(a5,a5)}},Q=function(ba){aH(I(ba.type)+' loading image: "'+a8+'"')};a5.onload=a7;a5.onerror=a5.onabort=Q;a5.src=a8;return a5},purge:function(a5){var Q=J.cache[a5];if(!Q){return}if(aR.contains(Q)){y(Q)}Q.onload=Q.onerror=Q.onabort=null;delete J.cache[a5]}}})();var u=au.Load;
43
- /* poll */
44
- (function(){var J=aE("Poll",{__static:{pollTime:300,handlers:{},subscribe:function(a5,a6,a7){var Q=a5+"",a8;if(!(Q in J.handlers)){a8=aY(a5)?J.keywords[a5]:a5;J.handlers[Q]=new ad(a8)}return J.handlers[Q].subscribe(a6,a7||null)},unSubscribe:function(Q,a5){J.handlers[Q].unsubscribe(a5)},keywords:{vslow:1000,slow:500,fast:100,vfast:50}},__init:function(Q){av(this,{handlers:{},pollTime:Q||J.pollTime})},setPollTime:function(Q){this.pollTime=Q;return this},start:function(){var Q=this;clearTimeout(Q.timerHandle);clearTimeout(Q.firstPoll);Q.firstPoll=setTimeout(function(){(function a5(){for(var a7 in Q.handlers){try{Q.handlers[a7]()}catch(a6){ab(a6)}}Q.timerHandle=setTimeout(a5,Q.pollTime)})()},Q.pollTime)},stop:function(){var Q=this;clearTimeout(Q.timerHandle);Q.timerHandle=null;return Q},clear:function(){var Q=this;Q.stop();Q.handlers=null;return Q},subscribe:function(a5,a6){var Q=this,a7;Q.uid=Q.uid||0;a7=a6||++Q.uid;if(Q.handlers[a7]){return false}Q.handlers[a7]=a5;if(!Q.timerHandle){Q.start()}return a7},unSubscribe:function(a5){var Q=this;delete Q.handlers[a5];if(aN(Q.handlers)){Q.stop()}}})})();var ad=au.Poll})();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/layout/clike.js CHANGED
@@ -1,271 +1,271 @@
1
- CodeMirror.defineMode("clike", function(config, parserConfig) {
2
- var indentUnit = config.indentUnit,
3
- keywords = parserConfig.keywords || {},
4
- blockKeywords = parserConfig.blockKeywords || {},
5
- atoms = parserConfig.atoms || {},
6
- hooks = parserConfig.hooks || {},
7
- multiLineStrings = parserConfig.multiLineStrings;
8
- var isOperatorChar = /[+\-*&%=<>!?|\/]/;
9
-
10
- var curPunc;
11
-
12
- function tokenBase(stream, state) {
13
- var ch = stream.next();
14
- if (hooks[ch]) {
15
- var result = hooks[ch](stream, state);
16
- if (result !== false) return result;
17
- }
18
- if (ch == '"' || ch == "'") {
19
- state.tokenize = tokenString(ch);
20
- return state.tokenize(stream, state);
21
- }
22
- if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
23
- curPunc = ch;
24
- return null;
25
- }
26
- if (/\d/.test(ch)) {
27
- stream.eatWhile(/[\w\.]/);
28
- return "number";
29
- }
30
- if (ch == "/") {
31
- if (stream.eat("*")) {
32
- state.tokenize = tokenComment;
33
- return tokenComment(stream, state);
34
- }
35
- if (stream.eat("/")) {
36
- stream.skipToEnd();
37
- return "comment";
38
- }
39
- }
40
- if (isOperatorChar.test(ch)) {
41
- stream.eatWhile(isOperatorChar);
42
- return "operator";
43
- }
44
- stream.eatWhile(/[\w\$_]/);
45
- var cur = stream.current();
46
- if (keywords.propertyIsEnumerable(cur)) {
47
- if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
48
- return "keyword";
49
- }
50
- if (atoms.propertyIsEnumerable(cur)) return "atom";
51
- return "word";
52
- }
53
-
54
- function tokenString(quote) {
55
- return function(stream, state) {
56
- var escaped = false, next, end = false;
57
- while ((next = stream.next()) != null) {
58
- if (next == quote && !escaped) {end = true; break;}
59
- escaped = !escaped && next == "\\";
60
- }
61
- if (end || !(escaped || multiLineStrings))
62
- state.tokenize = null;
63
- return "string";
64
- };
65
- }
66
-
67
- function tokenComment(stream, state) {
68
- var maybeEnd = false, ch;
69
- while (ch = stream.next()) {
70
- if (ch == "/" && maybeEnd) {
71
- state.tokenize = null;
72
- break;
73
- }
74
- maybeEnd = (ch == "*");
75
- }
76
- return "comment";
77
- }
78
-
79
- function Context(indented, column, type, align, prev) {
80
- this.indented = indented;
81
- this.column = column;
82
- this.type = type;
83
- this.align = align;
84
- this.prev = prev;
85
- }
86
- function pushContext(state, col, type) {
87
- return state.context = new Context(state.indented, col, type, null, state.context);
88
- }
89
- function popContext(state) {
90
- var t = state.context.type;
91
- if (t == ")" || t == "]" || t == "}")
92
- state.indented = state.context.indented;
93
- return state.context = state.context.prev;
94
- }
95
-
96
- // Interface
97
-
98
- return {
99
- startState: function(basecolumn) {
100
- return {
101
- tokenize: null,
102
- context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
103
- indented: 0,
104
- startOfLine: true
105
- };
106
- },
107
-
108
- token: function(stream, state) {
109
- var ctx = state.context;
110
- if (stream.sol()) {
111
- if (ctx.align == null) ctx.align = false;
112
- state.indented = stream.indentation();
113
- state.startOfLine = true;
114
- }
115
- if (stream.eatSpace()) return null;
116
- curPunc = null;
117
- var style = (state.tokenize || tokenBase)(stream, state);
118
- if (style == "comment" || style == "meta") return style;
119
- if (ctx.align == null) ctx.align = true;
120
-
121
- if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
122
- else if (curPunc == "{") pushContext(state, stream.column(), "}");
123
- else if (curPunc == "[") pushContext(state, stream.column(), "]");
124
- else if (curPunc == "(") pushContext(state, stream.column(), ")");
125
- else if (curPunc == "}") {
126
- while (ctx.type == "statement") ctx = popContext(state);
127
- if (ctx.type == "}") ctx = popContext(state);
128
- while (ctx.type == "statement") ctx = popContext(state);
129
- }
130
- else if (curPunc == ctx.type) popContext(state);
131
- else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
132
- pushContext(state, stream.column(), "statement");
133
- state.startOfLine = false;
134
- return style;
135
- },
136
-
137
- indent: function(state, textAfter) {
138
- if (state.tokenize != tokenBase && state.tokenize != null) return 0;
139
- var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
140
- if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
141
- var closing = firstChar == ctx.type;
142
- if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
143
- else if (ctx.align) return ctx.column + (closing ? 0 : 1);
144
- else return ctx.indented + (closing ? 0 : indentUnit);
145
- },
146
-
147
- electricChars: "{}"
148
- };
149
- });
150
-
151
- (function() {
152
- function words(str) {
153
- var obj = {}, words = str.split(" ");
154
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
155
- return obj;
156
- }
157
- var cKeywords = "auto if break int case long char register continue return default short do sizeof " +
158
- "double static else struct entry switch extern typedef float union for unsigned " +
159
- "goto while enum void const signed volatile";
160
-
161
- function cppHook(stream, state) {
162
- if (!state.startOfLine) return false;
163
- stream.skipToEnd();
164
- return "meta";
165
- }
166
-
167
- // C#-style strings where "" escapes a quote.
168
- function tokenAtString(stream, state) {
169
- var next;
170
- while ((next = stream.next()) != null) {
171
- if (next == '"' && !stream.eat('"')) {
172
- state.tokenize = null;
173
- break;
174
- }
175
- }
176
- return "string";
177
- }
178
-
179
- CodeMirror.defineMIME("text/x-csrc", {
180
- name: "clike",
181
- keywords: words(cKeywords),
182
- blockKeywords: words("case do else for if switch while struct"),
183
- atoms: words("null"),
184
- hooks: {"#": cppHook}
185
- });
186
- CodeMirror.defineMIME("text/x-c++src", {
187
- name: "clike",
188
- keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try bool explicit new " +
189
- "static_cast typeid catch operator template typename class friend private " +
190
- "this using const_cast inline public throw virtual delete mutable protected " +
191
- "wchar_t"),
192
- blockKeywords: words("catch class do else finally for if struct switch try while"),
193
- atoms: words("true false null"),
194
- hooks: {"#": cppHook}
195
- });
196
- CodeMirror.defineMIME("text/x-java", {
197
- name: "clike",
198
- keywords: words("abstract assert boolean break byte case catch char class const continue default " +
199
- "do double else enum extends final finally float for goto if implements import " +
200
- "instanceof int interface long native new package private protected public " +
201
- "return short static strictfp super switch synchronized this throw throws transient " +
202
- "try void volatile while"),
203
- blockKeywords: words("catch class do else finally for if switch try while"),
204
- atoms: words("true false null"),
205
- hooks: {
206
- "@": function(stream, state) {
207
- stream.eatWhile(/[\w\$_]/);
208
- return "meta";
209
- }
210
- }
211
- });
212
- CodeMirror.defineMIME("text/x-csharp", {
213
- name: "clike",
214
- keywords: words("abstract as base bool break byte case catch char checked class const continue decimal" +
215
- " default delegate do double else enum event explicit extern finally fixed float for" +
216
- " foreach goto if implicit in int interface internal is lock long namespace new object" +
217
- " operator out override params private protected public readonly ref return sbyte sealed short" +
218
- " sizeof stackalloc static string struct switch this throw try typeof uint ulong unchecked" +
219
- " unsafe ushort using virtual void volatile while add alias ascending descending dynamic from get" +
220
- " global group into join let orderby partial remove select set value var yield"),
221
- blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
222
- atoms: words("true false null"),
223
- hooks: {
224
- "@": function(stream, state) {
225
- if (stream.eat('"')) {
226
- state.tokenize = tokenAtString;
227
- return tokenAtString(stream, state);
228
- }
229
- stream.eatWhile(/[\w\$_]/);
230
- return "meta";
231
- }
232
- }
233
- });
234
- CodeMirror.defineMIME("text/x-scala", {
235
- name: "clike",
236
- keywords: words(
237
-
238
- /* scala */
239
- "abstract case catch class def do else extends false final finally for forSome if " +
240
- "implicit import lazy match new null object override package private protected return " +
241
- "sealed super this throw trait try trye type val var while with yield _ : = => <- <: " +
242
- "<% >: # @ " +
243
-
244
- /* package scala */
245
- "assert assume require print println printf readLine readBoolean readByte readShort " +
246
- "readChar readInt readLong readFloat readDouble " +
247
-
248
- "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " +
249
- "Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable " +
250
- "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " +
251
- "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " +
252
- "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: " +
253
-
254
- /* package java.lang */
255
- "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
256
- "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
257
- "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
258
- "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
259
-
260
-
261
- ),
262
- blockKeywords: words("catch class do else finally for forSome if match switch try while"),
263
- atoms: words("true false null"),
264
- hooks: {
265
- "@": function(stream, state) {
266
- stream.eatWhile(/[\w\$_]/);
267
- return "meta";
268
- }
269
- }
270
- });
271
- }());
1
+ CodeMirror.defineMode("clike", function(config, parserConfig) {
2
+ var indentUnit = config.indentUnit,
3
+ keywords = parserConfig.keywords || {},
4
+ blockKeywords = parserConfig.blockKeywords || {},
5
+ atoms = parserConfig.atoms || {},
6
+ hooks = parserConfig.hooks || {},
7
+ multiLineStrings = parserConfig.multiLineStrings;
8
+ var isOperatorChar = /[+\-*&%=<>!?|\/]/;
9
+
10
+ var curPunc;
11
+
12
+ function tokenBase(stream, state) {
13
+ var ch = stream.next();
14
+ if (hooks[ch]) {
15
+ var result = hooks[ch](stream, state);
16
+ if (result !== false) return result;
17
+ }
18
+ if (ch == '"' || ch == "'") {
19
+ state.tokenize = tokenString(ch);
20
+ return state.tokenize(stream, state);
21
+ }
22
+ if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
23
+ curPunc = ch;
24
+ return null;
25
+ }
26
+ if (/\d/.test(ch)) {
27
+ stream.eatWhile(/[\w\.]/);
28
+ return "number";
29
+ }
30
+ if (ch == "/") {
31
+ if (stream.eat("*")) {
32
+ state.tokenize = tokenComment;
33
+ return tokenComment(stream, state);
34
+ }
35
+ if (stream.eat("/")) {
36
+ stream.skipToEnd();
37
+ return "comment";
38
+ }
39
+ }
40
+ if (isOperatorChar.test(ch)) {
41
+ stream.eatWhile(isOperatorChar);
42
+ return "operator";
43
+ }
44
+ stream.eatWhile(/[\w\$_]/);
45
+ var cur = stream.current();
46
+ if (keywords.propertyIsEnumerable(cur)) {
47
+ if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
48
+ return "keyword";
49
+ }
50
+ if (atoms.propertyIsEnumerable(cur)) return "atom";
51
+ return "word";
52
+ }
53
+
54
+ function tokenString(quote) {
55
+ return function(stream, state) {
56
+ var escaped = false, next, end = false;
57
+ while ((next = stream.next()) != null) {
58
+ if (next == quote && !escaped) {end = true; break;}
59
+ escaped = !escaped && next == "\\";
60
+ }
61
+ if (end || !(escaped || multiLineStrings))
62
+ state.tokenize = null;
63
+ return "string";
64
+ };
65
+ }
66
+
67
+ function tokenComment(stream, state) {
68
+ var maybeEnd = false, ch;
69
+ while (ch = stream.next()) {
70
+ if (ch == "/" && maybeEnd) {
71
+ state.tokenize = null;
72
+ break;
73
+ }
74
+ maybeEnd = (ch == "*");
75
+ }
76
+ return "comment";
77
+ }
78
+
79
+ function Context(indented, column, type, align, prev) {
80
+ this.indented = indented;
81
+ this.column = column;
82
+ this.type = type;
83
+ this.align = align;
84
+ this.prev = prev;
85
+ }
86
+ function pushContext(state, col, type) {
87
+ return state.context = new Context(state.indented, col, type, null, state.context);
88
+ }
89
+ function popContext(state) {
90
+ var t = state.context.type;
91
+ if (t == ")" || t == "]" || t == "}")
92
+ state.indented = state.context.indented;
93
+ return state.context = state.context.prev;
94
+ }
95
+
96
+ // Interface
97
+
98
+ return {
99
+ startState: function(basecolumn) {
100
+ return {
101
+ tokenize: null,
102
+ context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
103
+ indented: 0,
104
+ startOfLine: true
105
+ };
106
+ },
107
+
108
+ token: function(stream, state) {
109
+ var ctx = state.context;
110
+ if (stream.sol()) {
111
+ if (ctx.align == null) ctx.align = false;
112
+ state.indented = stream.indentation();
113
+ state.startOfLine = true;
114
+ }
115
+ if (stream.eatSpace()) return null;
116
+ curPunc = null;
117
+ var style = (state.tokenize || tokenBase)(stream, state);
118
+ if (style == "comment" || style == "meta") return style;
119
+ if (ctx.align == null) ctx.align = true;
120
+
121
+ if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
122
+ else if (curPunc == "{") pushContext(state, stream.column(), "}");
123
+ else if (curPunc == "[") pushContext(state, stream.column(), "]");
124
+ else if (curPunc == "(") pushContext(state, stream.column(), ")");
125
+ else if (curPunc == "}") {
126
+ while (ctx.type == "statement") ctx = popContext(state);
127
+ if (ctx.type == "}") ctx = popContext(state);
128
+ while (ctx.type == "statement") ctx = popContext(state);
129
+ }
130
+ else if (curPunc == ctx.type) popContext(state);
131
+ else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
132
+ pushContext(state, stream.column(), "statement");
133
+ state.startOfLine = false;
134
+ return style;
135
+ },
136
+
137
+ indent: function(state, textAfter) {
138
+ if (state.tokenize != tokenBase && state.tokenize != null) return 0;
139
+ var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
140
+ if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
141
+ var closing = firstChar == ctx.type;
142
+ if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
143
+ else if (ctx.align) return ctx.column + (closing ? 0 : 1);
144
+ else return ctx.indented + (closing ? 0 : indentUnit);
145
+ },
146
+
147
+ electricChars: "{}"
148
+ };
149
+ });
150
+
151
+ (function() {
152
+ function words(str) {
153
+ var obj = {}, words = str.split(" ");
154
+ for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
155
+ return obj;
156
+ }
157
+ var cKeywords = "auto if break int case long char register continue return default short do sizeof " +
158
+ "double static else struct entry switch extern typedef float union for unsigned " +
159
+ "goto while enum void const signed volatile";
160
+
161
+ function cppHook(stream, state) {
162
+ if (!state.startOfLine) return false;
163
+ stream.skipToEnd();
164
+ return "meta";
165
+ }
166
+
167
+ // C#-style strings where "" escapes a quote.
168
+ function tokenAtString(stream, state) {
169
+ var next;
170
+ while ((next = stream.next()) != null) {
171
+ if (next == '"' && !stream.eat('"')) {
172
+ state.tokenize = null;
173
+ break;
174
+ }
175
+ }
176
+ return "string";
177
+ }
178
+
179
+ CodeMirror.defineMIME("text/x-csrc", {
180
+ name: "clike",
181
+ keywords: words(cKeywords),
182
+ blockKeywords: words("case do else for if switch while struct"),
183
+ atoms: words("null"),
184
+ hooks: {"#": cppHook}
185
+ });
186
+ CodeMirror.defineMIME("text/x-c++src", {
187
+ name: "clike",
188
+ keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try bool explicit new " +
189
+ "static_cast typeid catch operator template typename class friend private " +
190
+ "this using const_cast inline public throw virtual delete mutable protected " +
191
+ "wchar_t"),
192
+ blockKeywords: words("catch class do else finally for if struct switch try while"),
193
+ atoms: words("true false null"),
194
+ hooks: {"#": cppHook}
195
+ });
196
+ CodeMirror.defineMIME("text/x-java", {
197
+ name: "clike",
198
+ keywords: words("abstract assert boolean break byte case catch char class const continue default " +
199
+ "do double else enum extends final finally float for goto if implements import " +
200
+ "instanceof int interface long native new package private protected public " +
201
+ "return short static strictfp super switch synchronized this throw throws transient " +
202
+ "try void volatile while"),
203
+ blockKeywords: words("catch class do else finally for if switch try while"),
204
+ atoms: words("true false null"),
205
+ hooks: {
206
+ "@": function(stream, state) {
207
+ stream.eatWhile(/[\w\$_]/);
208
+ return "meta";
209
+ }
210
+ }
211
+ });
212
+ CodeMirror.defineMIME("text/x-csharp", {
213
+ name: "clike",
214
+ keywords: words("abstract as base bool break byte case catch char checked class const continue decimal" +
215
+ " default delegate do double else enum event explicit extern finally fixed float for" +
216
+ " foreach goto if implicit in int interface internal is lock long namespace new object" +
217
+ " operator out override params private protected public readonly ref return sbyte sealed short" +
218
+ " sizeof stackalloc static string struct switch this throw try typeof uint ulong unchecked" +
219
+ " unsafe ushort using virtual void volatile while add alias ascending descending dynamic from get" +
220
+ " global group into join let orderby partial remove select set value var yield"),
221
+ blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
222
+ atoms: words("true false null"),
223
+ hooks: {
224
+ "@": function(stream, state) {
225
+ if (stream.eat('"')) {
226
+ state.tokenize = tokenAtString;
227
+ return tokenAtString(stream, state);
228
+ }
229
+ stream.eatWhile(/[\w\$_]/);
230
+ return "meta";
231
+ }
232
+ }
233
+ });
234
+ CodeMirror.defineMIME("text/x-scala", {
235
+ name: "clike",
236
+ keywords: words(
237
+
238
+ /* scala */
239
+ "abstract case catch class def do else extends false final finally for forSome if " +
240
+ "implicit import lazy match new null object override package private protected return " +
241
+ "sealed super this throw trait try trye type val var while with yield _ : = => <- <: " +
242
+ "<% >: # @ " +
243
+
244
+ /* package scala */
245
+ "assert assume require print println printf readLine readBoolean readByte readShort " +
246
+ "readChar readInt readLong readFloat readDouble " +
247
+
248
+ "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " +
249
+ "Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable " +
250
+ "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " +
251
+ "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " +
252
+ "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: " +
253
+
254
+ /* package java.lang */
255
+ "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
256
+ "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
257
+ "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
258
+ "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
259
+
260
+
261
+ ),
262
+ blockKeywords: words("catch class do else finally for forSome if match switch try while"),
263
+ atoms: words("true false null"),
264
+ hooks: {
265
+ "@": function(stream, state) {
266
+ stream.eatWhile(/[\w\$_]/);
267
+ return "meta";
268
+ }
269
+ }
270
+ });
271
+ }());
js/layout/codemirror.js CHANGED
@@ -1,3181 +1,3181 @@
1
- // CodeMirror version 2.3
2
- //
3
- // All functions that need access to the editor's state live inside
4
- // the CodeMirror function. Below that, at the bottom of the file,
5
- // some utilities are defined.
6
-
7
- // CodeMirror is the only global var we claim
8
- var CodeMirror = (function() {
9
- // This is the function that produces an editor instance. Its
10
- // closure is used to store the editor state.
11
- function CodeMirror(place, givenOptions) {
12
- // Determine effective options based on given values and defaults.
13
- var options = {}, defaults = CodeMirror.defaults;
14
- for (var opt in defaults)
15
- if (defaults.hasOwnProperty(opt))
16
- options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt];
17
-
18
- // The element in which the editor lives.
19
- var wrapper = document.createElement("div");
20
- wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : "");
21
- // This mess creates the base DOM structure for the editor.
22
- wrapper.innerHTML =
23
- '<div style="overflow: hidden; position: relative; width: 3px; height: 0px;">' + // Wraps and hides input textarea
24
- '<textarea style="position: absolute; padding: 0; width: 1px; height: 1em" wrap="off" ' +
25
- 'autocorrect="off" autocapitalize="off"></textarea></div>' +
26
- '<div class="CodeMirror-scrollbar">' + // The vertical scrollbar. Horizontal scrolling is handled by the scroller itself.
27
- '<div class="CodeMirror-scrollbar-inner">' + // The empty scrollbar content, used solely for managing the scrollbar thumb.
28
- '</div></div>' + // This must be before the scroll area because it's float-right.
29
- '<div class="CodeMirror-scroll" tabindex="-1">' +
30
- '<div style="position: relative">' + // Set to the height of the text, causes scrolling
31
- '<div style="position: relative">' + // Moved around its parent to cover visible view
32
- '<div class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div>' +
33
- // Provides positioning relative to (visible) text origin
34
- '<div class="CodeMirror-lines"><div style="position: relative; z-index: 0">' +
35
- // Used to measure text size
36
- '<div style="position: absolute; width: 100%; height: 0; overflow: hidden; visibility: hidden;"></div>' +
37
- '<pre class="CodeMirror-cursor">&#160;</pre>' + // Absolutely positioned blinky cursor
38
- '<pre class="CodeMirror-cursor" style="visibility: hidden">&#160;</pre>' + // Used to force a width
39
- '<div style="position: relative; z-index: -1"></div><div></div>' + // DIVs containing the selection and the actual code
40
- '</div></div></div></div></div>';
41
- if (place.appendChild) place.appendChild(wrapper); else place(wrapper);
42
- // I've never seen more elegant code in my life.
43
- var inputDiv = wrapper.firstChild, input = inputDiv.firstChild,
44
- scroller = wrapper.lastChild, code = scroller.firstChild,
45
- mover = code.firstChild, gutter = mover.firstChild, gutterText = gutter.firstChild,
46
- lineSpace = gutter.nextSibling.firstChild, measure = lineSpace.firstChild,
47
- cursor = measure.nextSibling, widthForcer = cursor.nextSibling,
48
- selectionDiv = widthForcer.nextSibling, lineDiv = selectionDiv.nextSibling,
49
- scrollbar = inputDiv.nextSibling, scrollbarInner = scrollbar.firstChild;
50
- themeChanged(); keyMapChanged();
51
- // Needed to hide big blue blinking cursor on Mobile Safari
52
- if (ios) input.style.width = "0px";
53
- if (!webkit) scroller.draggable = true;
54
- lineSpace.style.outline = "none";
55
- if (options.tabindex != null) input.tabIndex = options.tabindex;
56
- if (options.autofocus) focusInput();
57
- if (!options.gutter && !options.lineNumbers) gutter.style.display = "none";
58
- // Needed to handle Tab key in KHTML
59
- if (khtml) inputDiv.style.height = "1px", inputDiv.style.position = "absolute";
60
-
61
- // Check for OS X >= 10.7. If so, we need to force a width on the scrollbar, and
62
- // make it overlap the content. (But we only do this if the scrollbar doesn't already
63
- // have a natural width. If the mouse is plugged in or the user sets the system pref
64
- // to always show scrollbars, the scrollbar shouldn't overlap.)
65
- if (mac_geLion) {
66
- scrollbar.className += (overlapScrollbars() ? " cm-sb-overlap" : " cm-sb-nonoverlap");
67
- } else if (ie_lt8) {
68
- // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
69
- scrollbar.className += " cm-sb-ie7";
70
- }
71
-
72
- // Check for problem with IE innerHTML not working when we have a
73
- // P (or similar) parent node.
74
- try { stringWidth("x"); }
75
- catch (e) {
76
- if (e.message.match(/runtime/i))
77
- e = new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)");
78
- throw e;
79
- }
80
-
81
- // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval.
82
- var poll = new Delayed(), highlight = new Delayed(), blinker;
83
-
84
- // mode holds a mode API object. doc is the tree of Line objects,
85
- // work an array of lines that should be parsed, and history the
86
- // undo history (instance of History constructor).
87
- var mode, doc = new BranchChunk([new LeafChunk([new Line("")])]), work, focused;
88
- loadMode();
89
- // The selection. These are always maintained to point at valid
90
- // positions. Inverted is used to remember that the user is
91
- // selecting bottom-to-top.
92
- var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false};
93
- // Selection-related flags. shiftSelecting obviously tracks
94
- // whether the user is holding shift.
95
- var shiftSelecting, lastClick, lastDoubleClick, lastScrollTop = 0, lastScrollLeft = 0, draggingText,
96
- overwrite = false, suppressEdits = false;
97
- // Variables used by startOperation/endOperation to track what
98
- // happened during the operation.
99
- var updateInput, userSelChange, changes, textChanged, selectionChanged, leaveInputAlone,
100
- gutterDirty, callbacks;
101
- // Current visible range (may be bigger than the view window).
102
- var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0;
103
- // bracketHighlighted is used to remember that a bracket has been
104
- // marked.
105
- var bracketHighlighted;
106
- // Tracks the maximum line length so that the horizontal scrollbar
107
- // can be kept static when scrolling.
108
- var maxLine = "", updateMaxLine = false, maxLineChanged = true;
109
- var tabCache = {};
110
-
111
- // Initialize the content.
112
- operation(function(){setValue(options.value || ""); updateInput = false;})();
113
- var history = new History();
114
-
115
- // Register our event handlers.
116
- connect(scroller, "mousedown", operation(onMouseDown));
117
- connect(scroller, "dblclick", operation(onDoubleClick));
118
- connect(lineSpace, "selectstart", e_preventDefault);
119
- // Gecko browsers fire contextmenu *after* opening the menu, at
120
- // which point we can't mess with it anymore. Context menu is
121
- // handled in onMouseDown for Gecko.
122
- if (!gecko) connect(scroller, "contextmenu", onContextMenu);
123
- connect(scroller, "scroll", onScroll);
124
- connect(scrollbar, "scroll", onScroll);
125
- connect(scrollbar, "mousedown", function() {setTimeout(focusInput, 0);});
126
- connect(scroller, "mousewheel", onMouseWheel);
127
- connect(scroller, "DOMMouseScroll", onMouseWheel);
128
- connect(window, "resize", function() {updateDisplay(true);});
129
- connect(input, "keyup", operation(onKeyUp));
130
- connect(input, "input", fastPoll);
131
- connect(input, "keydown", operation(onKeyDown));
132
- connect(input, "keypress", operation(onKeyPress));
133
- connect(input, "focus", onFocus);
134
- connect(input, "blur", onBlur);
135
-
136
- if (options.dragDrop) {
137
- connect(scroller, "dragstart", onDragStart);
138
- function drag_(e) {
139
- if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return;
140
- e_stop(e);
141
- }
142
- connect(scroller, "dragenter", drag_);
143
- connect(scroller, "dragover", drag_);
144
- connect(scroller, "drop", operation(onDrop));
145
- }
146
- connect(scroller, "paste", function(){focusInput(); fastPoll();});
147
- connect(input, "paste", fastPoll);
148
- connect(input, "cut", operation(function(){
149
- if (!options.readOnly) replaceSelection("");
150
- }));
151
-
152
- // Needed to handle Tab key in KHTML
153
- if (khtml) connect(code, "mouseup", function() {
154
- if (document.activeElement == input) input.blur();
155
- focusInput();
156
- });
157
-
158
- // IE throws unspecified error in certain cases, when
159
- // trying to access activeElement before onload
160
- var hasFocus; try { hasFocus = (document.activeElement == input); } catch(e) { }
161
- if (hasFocus || options.autofocus) setTimeout(onFocus, 20);
162
- else onBlur();
163
-
164
- function isLine(l) {return l >= 0 && l < doc.size;}
165
- // The instance object that we'll return. Mostly calls out to
166
- // local functions in the CodeMirror function. Some do some extra
167
- // range checking and/or clipping. operation is used to wrap the
168
- // call so that changes it makes are tracked, and the display is
169
- // updated afterwards.
170
- var instance = wrapper.CodeMirror = {
171
- getValue: getValue,
172
- setValue: operation(setValue),
173
- getSelection: getSelection,
174
- replaceSelection: operation(replaceSelection),
175
- focus: function(){window.focus(); focusInput(); onFocus(); fastPoll();},
176
- setOption: function(option, value) {
177
- var oldVal = options[option];
178
- options[option] = value;
179
- if (option == "mode" || option == "indentUnit") loadMode();
180
- else if (option == "readOnly" && value == "nocursor") {onBlur(); input.blur();}
181
- else if (option == "readOnly" && !value) {resetInput(true);}
182
- else if (option == "theme") themeChanged();
183
- else if (option == "lineWrapping" && oldVal != value) operation(wrappingChanged)();
184
- else if (option == "tabSize") updateDisplay(true);
185
- else if (option == "keyMap") keyMapChanged();
186
- if (option == "lineNumbers" || option == "gutter" || option == "firstLineNumber" || option == "theme") {
187
- gutterChanged();
188
- updateDisplay(true);
189
- }
190
- },
191
- getOption: function(option) {return options[option];},
192
- undo: operation(undo),
193
- redo: operation(redo),
194
- indentLine: operation(function(n, dir) {
195
- if (typeof dir != "string") {
196
- if (dir == null) dir = options.smartIndent ? "smart" : "prev";
197
- else dir = dir ? "add" : "subtract";
198
- }
199
- if (isLine(n)) indentLine(n, dir);
200
- }),
201
- indentSelection: operation(indentSelected),
202
- historySize: function() {return {undo: history.done.length, redo: history.undone.length};},
203
- clearHistory: function() {history = new History();},
204
- matchBrackets: operation(function(){matchBrackets(true);}),
205
- getTokenAt: operation(function(pos) {
206
- pos = clipPos(pos);
207
- return getLine(pos.line).getTokenAt(mode, getStateBefore(pos.line), pos.ch);
208
- }),
209
- getStateAfter: function(line) {
210
- line = clipLine(line == null ? doc.size - 1: line);
211
- return getStateBefore(line + 1);
212
- },
213
- cursorCoords: function(start, mode) {
214
- if (start == null) start = sel.inverted;
215
- return this.charCoords(start ? sel.from : sel.to, mode);
216
- },
217
- charCoords: function(pos, mode) {
218
- pos = clipPos(pos);
219
- if (mode == "local") return localCoords(pos, false);
220
- if (mode == "div") return localCoords(pos, true);
221
- return pageCoords(pos);
222
- },
223
- coordsChar: function(coords) {
224
- var off = eltOffset(lineSpace);
225
- return coordsChar(coords.x - off.left, coords.y - off.top);
226
- },
227
- markText: operation(markText),
228
- setBookmark: setBookmark,
229
- findMarksAt: findMarksAt,
230
- setMarker: operation(addGutterMarker),
231
- clearMarker: operation(removeGutterMarker),
232
- setLineClass: operation(setLineClass),
233
- hideLine: operation(function(h) {return setLineHidden(h, true);}),
234
- showLine: operation(function(h) {return setLineHidden(h, false);}),
235
- onDeleteLine: function(line, f) {
236
- if (typeof line == "number") {
237
- if (!isLine(line)) return null;
238
- line = getLine(line);
239
- }
240
- (line.handlers || (line.handlers = [])).push(f);
241
- return line;
242
- },
243
- lineInfo: lineInfo,
244
- addWidget: function(pos, node, scroll, vert, horiz) {
245
- pos = localCoords(clipPos(pos));
246
- var top = pos.yBot, left = pos.x;
247
- node.style.position = "absolute";
248
- code.appendChild(node);
249
- if (vert == "over") top = pos.y;
250
- else if (vert == "near") {
251
- var vspace = Math.max(scroller.offsetHeight, doc.height * textHeight()),
252
- hspace = Math.max(code.clientWidth, lineSpace.clientWidth) - paddingLeft();
253
- if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight)
254
- top = pos.y - node.offsetHeight;
255
- if (left + node.offsetWidth > hspace)
256
- left = hspace - node.offsetWidth;
257
- }
258
- node.style.top = (top + paddingTop()) + "px";
259
- node.style.left = node.style.right = "";
260
- if (horiz == "right") {
261
- left = code.clientWidth - node.offsetWidth;
262
- node.style.right = "0px";
263
- } else {
264
- if (horiz == "left") left = 0;
265
- else if (horiz == "middle") left = (code.clientWidth - node.offsetWidth) / 2;
266
- node.style.left = (left + paddingLeft()) + "px";
267
- }
268
- if (scroll)
269
- scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight);
270
- },
271
-
272
- lineCount: function() {return doc.size;},
273
- clipPos: clipPos,
274
- getCursor: function(start) {
275
- if (start == null) start = sel.inverted;
276
- return copyPos(start ? sel.from : sel.to);
277
- },
278
- somethingSelected: function() {return !posEq(sel.from, sel.to);},
279
- setCursor: operation(function(line, ch, user) {
280
- if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch, user);
281
- else setCursor(line, ch, user);
282
- }),
283
- setSelection: operation(function(from, to, user) {
284
- (user ? setSelectionUser : setSelection)(clipPos(from), clipPos(to || from));
285
- }),
286
- getLine: function(line) {if (isLine(line)) return getLine(line).text;},
287
- getLineHandle: function(line) {if (isLine(line)) return getLine(line);},
288
- setLine: operation(function(line, text) {
289
- if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: getLine(line).text.length});
290
- }),
291
- removeLine: operation(function(line) {
292
- if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0}));
293
- }),
294
- replaceRange: operation(replaceRange),
295
- getRange: function(from, to) {return getRange(clipPos(from), clipPos(to));},
296
-
297
- triggerOnKeyDown: operation(onKeyDown),
298
- execCommand: function(cmd) {return commands[cmd](instance);},
299
- // Stuff used by commands, probably not much use to outside code.
300
- moveH: operation(moveH),
301
- deleteH: operation(deleteH),
302
- moveV: operation(moveV),
303
- toggleOverwrite: function() {
304
- if(overwrite){
305
- overwrite = false;
306
- cursor.className = cursor.className.replace(" CodeMirror-overwrite", "");
307
- } else {
308
- overwrite = true;
309
- cursor.className += " CodeMirror-overwrite";
310
- }
311
- },
312
-
313
- posFromIndex: function(off) {
314
- var lineNo = 0, ch;
315
- doc.iter(0, doc.size, function(line) {
316
- var sz = line.text.length + 1;
317
- if (sz > off) { ch = off; return true; }
318
- off -= sz;
319
- ++lineNo;
320
- });
321
- return clipPos({line: lineNo, ch: ch});
322
- },
323
- indexFromPos: function (coords) {
324
- if (coords.line < 0 || coords.ch < 0) return 0;
325
- var index = coords.ch;
326
- doc.iter(0, coords.line, function (line) {
327
- index += line.text.length + 1;
328
- });
329
- return index;
330
- },
331
- scrollTo: function(x, y) {
332
- if (x != null) scroller.scrollLeft = x;
333
- if (y != null) scrollbar.scrollTop = y;
334
- updateDisplay([]);
335
- },
336
- getScrollInfo: function() {
337
- return {x: scroller.scrollLeft, y: scrollbar.scrollTop,
338
- height: scrollbar.scrollHeight, width: scroller.scrollWidth};
339
- },
340
-
341
- operation: function(f){return operation(f)();},
342
- compoundChange: function(f){return compoundChange(f);},
343
- refresh: function(){
344
- updateDisplay(true);
345
- if (scrollbar.scrollHeight > lastScrollTop)
346
- scrollbar.scrollTop = lastScrollTop;
347
- },
348
- getInputField: function(){return input;},
349
- getWrapperElement: function(){return wrapper;},
350
- getScrollerElement: function(){return scroller;},
351
- getGutterElement: function(){return gutter;}
352
- };
353
-
354
- function getLine(n) { return getLineAt(doc, n); }
355
- function updateLineHeight(line, height) {
356
- gutterDirty = true;
357
- var diff = height - line.height;
358
- for (var n = line; n; n = n.parent) n.height += diff;
359
- }
360
-
361
- function setValue(code) {
362
- var top = {line: 0, ch: 0};
363
- updateLines(top, {line: doc.size - 1, ch: getLine(doc.size-1).text.length},
364
- splitLines(code), top, top);
365
- updateInput = true;
366
- }
367
- function getValue() {
368
- var text = [];
369
- doc.iter(0, doc.size, function(line) { text.push(line.text); });
370
- return text.join("\n");
371
- }
372
-
373
- function onScroll(e) {
374
- if (lastScrollTop != scrollbar.scrollTop || lastScrollLeft != scroller.scrollLeft) {
375
- lastScrollTop = scrollbar.scrollTop;
376
- lastScrollLeft = scroller.scrollLeft;
377
- updateDisplay([]);
378
- if (options.fixedGutter) gutter.style.left = scroller.scrollLeft + "px";
379
- if (options.onScroll) options.onScroll(instance);
380
- }
381
- }
382
-
383
- function onMouseDown(e) {
384
- setShift(e_prop(e, "shiftKey"));
385
- // Check whether this is a click in a widget
386
- for (var n = e_target(e); n != wrapper; n = n.parentNode)
387
- if (n.parentNode == code && n != mover) return;
388
-
389
- // See if this is a click in the gutter
390
- for (var n = e_target(e); n != wrapper; n = n.parentNode)
391
- if (n.parentNode == gutterText) {
392
- if (options.onGutterClick)
393
- options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom, e);
394
- return e_preventDefault(e);
395
- }
396
-
397
- var start = posFromMouse(e);
398
-
399
- switch (e_button(e)) {
400
- case 3:
401
- if (gecko && !mac) onContextMenu(e);
402
- return;
403
- case 2:
404
- if (start) setCursor(start.line, start.ch, true);
405
- setTimeout(focusInput, 20);
406
- e_preventDefault(e);
407
- return;
408
- }
409
- // For button 1, if it was clicked inside the editor
410
- // (posFromMouse returning non-null), we have to adjust the
411
- // selection.
412
- if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;}
413
-
414
- if (!focused) onFocus();
415
-
416
- var now = +new Date;
417
- if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) {
418
- e_preventDefault(e);
419
- setTimeout(focusInput, 20);
420
- return selectLine(start.line);
421
- } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) {
422
- lastDoubleClick = {time: now, pos: start};
423
- e_preventDefault(e);
424
- return selectWordAt(start);
425
- } else { lastClick = {time: now, pos: start}; }
426
-
427
- var last = start, going;
428
- if (options.dragDrop && dragAndDrop && !options.readOnly && !posEq(sel.from, sel.to) &&
429
- !posLess(start, sel.from) && !posLess(sel.to, start)) {
430
- // Let the drag handler handle this.
431
- if (webkit) scroller.draggable = true;
432
- function dragEnd(e2) {
433
- if (webkit) scroller.draggable = false;
434
- draggingText = false;
435
- up(); drop();
436
- if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
437
- e_preventDefault(e2);
438
- setCursor(start.line, start.ch, true);
439
- focusInput();
440
- }
441
- }
442
- var up = connect(document, "mouseup", operation(dragEnd), true);
443
- var drop = connect(scroller, "drop", operation(dragEnd), true);
444
- draggingText = true;
445
- // IE's approach to draggable
446
- if (scroller.dragDrop) scroller.dragDrop();
447
- return;
448
- }
449
- e_preventDefault(e);
450
- setCursor(start.line, start.ch, true);
451
-
452
- function extend(e) {
453
- var cur = posFromMouse(e, true);
454
- if (cur && !posEq(cur, last)) {
455
- if (!focused) onFocus();
456
- last = cur;
457
- setSelectionUser(start, cur);
458
- updateInput = false;
459
- var visible = visibleLines();
460
- if (cur.line >= visible.to || cur.line < visible.from)
461
- going = setTimeout(operation(function(){extend(e);}), 150);
462
- }
463
- }
464
-
465
- function done(e) {
466
- clearTimeout(going);
467
- var cur = posFromMouse(e);
468
- if (cur) setSelectionUser(start, cur);
469
- e_preventDefault(e);
470
- focusInput();
471
- updateInput = true;
472
- move(); up();
473
- }
474
- var move = connect(document, "mousemove", operation(function(e) {
475
- clearTimeout(going);
476
- e_preventDefault(e);
477
- if (!ie && !e_button(e)) done(e);
478
- else extend(e);
479
- }), true);
480
- var up = connect(document, "mouseup", operation(done), true);
481
- }
482
- function onDoubleClick(e) {
483
- for (var n = e_target(e); n != wrapper; n = n.parentNode)
484
- if (n.parentNode == gutterText) return e_preventDefault(e);
485
- var start = posFromMouse(e);
486
- if (!start) return;
487
- lastDoubleClick = {time: +new Date, pos: start};
488
- e_preventDefault(e);
489
- selectWordAt(start);
490
- }
491
- function onDrop(e) {
492
- if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return;
493
- e.preventDefault();
494
- var pos = posFromMouse(e, true), files = e.dataTransfer.files;
495
- if (!pos || options.readOnly) return;
496
- if (files && files.length && window.FileReader && window.File) {
497
- function loadFile(file, i) {
498
- var reader = new FileReader;
499
- reader.onload = function() {
500
- text[i] = reader.result;
501
- if (++read == n) {
502
- pos = clipPos(pos);
503
- operation(function() {
504
- var end = replaceRange(text.join(""), pos, pos);
505
- setSelectionUser(pos, end);
506
- })();
507
- }
508
- };
509
- reader.readAsText(file);
510
- }
511
- var n = files.length, text = Array(n), read = 0;
512
- for (var i = 0; i < n; ++i) loadFile(files[i], i);
513
- } else {
514
- // Don't do a replace if the drop happened inside of the selected text.
515
- if (draggingText && !(posLess(pos, sel.from) || posLess(sel.to, pos))) return;
516
- try {
517
- var text = e.dataTransfer.getData("Text");
518
- if (text) {
519
- compoundChange(function() {
520
- var curFrom = sel.from, curTo = sel.to;
521
- setSelectionUser(pos, pos);
522
- if (draggingText) replaceRange("", curFrom, curTo);
523
- replaceSelection(text);
524
- focusInput();
525
- });
526
- }
527
- }
528
- catch(e){}
529
- }
530
- }
531
- function onDragStart(e) {
532
- var txt = getSelection();
533
- e.dataTransfer.setData("Text", txt);
534
-
535
- // Use dummy image instead of default browsers image.
536
- if (gecko || chrome || opera) {
537
- var img = document.createElement('img');
538
- img.scr = 'data:image/gif;base64,R0lGODdhAgACAIAAAAAAAP///ywAAAAAAgACAAACAoRRADs='; //1x1 image
539
- e.dataTransfer.setDragImage(img, 0, 0);
540
- }
541
- }
542
-
543
- function doHandleBinding(bound, dropShift) {
544
- if (typeof bound == "string") {
545
- bound = commands[bound];
546
- if (!bound) return false;
547
- }
548
- var prevShift = shiftSelecting;
549
- try {
550
- if (options.readOnly) suppressEdits = true;
551
- if (dropShift) shiftSelecting = null;
552
- bound(instance);
553
- } catch(e) {
554
- if (e != Pass) throw e;
555
- return false;
556
- } finally {
557
- shiftSelecting = prevShift;
558
- suppressEdits = false;
559
- }
560
- return true;
561
- }
562
- function handleKeyBinding(e) {
563
- // Handle auto keymap transitions
564
- var startMap = getKeyMap(options.keyMap), next = startMap.auto;
565
- clearTimeout(maybeTransition);
566
- if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() {
567
- if (getKeyMap(options.keyMap) == startMap) {
568
- options.keyMap = (next.call ? next.call(null, instance) : next);
569
- }
570
- }, 50);
571
-
572
- var name = keyNames[e_prop(e, "keyCode")], handled = false;
573
- if (name == null || e.altGraphKey) return false;
574
- if (e_prop(e, "altKey")) name = "Alt-" + name;
575
- if (e_prop(e, "ctrlKey")) name = "Ctrl-" + name;
576
- if (e_prop(e, "metaKey")) name = "Cmd-" + name;
577
-
578
- var stopped = false;
579
- function stop() { stopped = true; }
580
-
581
- if (e_prop(e, "shiftKey")) {
582
- handled = lookupKey("Shift-" + name, options.extraKeys, options.keyMap,
583
- function(b) {return doHandleBinding(b, true);}, stop)
584
- || lookupKey(name, options.extraKeys, options.keyMap, function(b) {
585
- if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(b);
586
- }, stop);
587
- } else {
588
- handled = lookupKey(name, options.extraKeys, options.keyMap, doHandleBinding, stop);
589
- }
590
- if (stopped) handled = false;
591
- if (handled) {
592
- e_preventDefault(e);
593
- restartBlink();
594
- if (ie) { e.oldKeyCode = e.keyCode; e.keyCode = 0; }
595
- }
596
- return handled;
597
- }
598
- function handleCharBinding(e, ch) {
599
- var handled = lookupKey("'" + ch + "'", options.extraKeys,
600
- options.keyMap, function(b) { return doHandleBinding(b, true); });
601
- if (handled) {
602
- e_preventDefault(e);
603
- restartBlink();
604
- }
605
- return handled;
606
- }
607
-
608
- var lastStoppedKey = null, maybeTransition;
609
- function onKeyDown(e) {
610
- if (!focused) onFocus();
611
- if (ie && e.keyCode == 27) { e.returnValue = false; }
612
- if (pollingFast) { if (readInput()) pollingFast = false; }
613
- if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
614
- var code = e_prop(e, "keyCode");
615
- // IE does strange things with escape.
616
- setShift(code == 16 || e_prop(e, "shiftKey"));
617
- // First give onKeyEvent option a chance to handle this.
618
- var handled = handleKeyBinding(e);
619
- if (opera) {
620
- lastStoppedKey = handled ? code : null;
621
- // Opera has no cut event... we try to at least catch the key combo
622
- if (!handled && code == 88 && e_prop(e, mac ? "metaKey" : "ctrlKey"))
623
- replaceSelection("");
624
- }
625
- }
626
- function onKeyPress(e) {
627
- if (pollingFast) readInput();
628
- if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
629
- var keyCode = e_prop(e, "keyCode"), charCode = e_prop(e, "charCode");
630
- if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
631
- if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(e)) return;
632
- var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
633
- if (options.electricChars && mode.electricChars && options.smartIndent && !options.readOnly) {
634
- if (mode.electricChars.indexOf(ch) > -1)
635
- setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 75);
636
- }
637
- if (handleCharBinding(e, ch)) return;
638
- fastPoll();
639
- }
640
- function onKeyUp(e) {
641
- if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
642
- if (e_prop(e, "keyCode") == 16) shiftSelecting = null;
643
- }
644
-
645
- function onFocus() {
646
- if (options.readOnly == "nocursor") return;
647
- if (!focused) {
648
- if (options.onFocus) options.onFocus(instance);
649
- focused = true;
650
- if (scroller.className.search(/\bCodeMirror-focused\b/) == -1)
651
- scroller.className += " CodeMirror-focused";
652
- if (!leaveInputAlone) resetInput(true);
653
- }
654
- slowPoll();
655
- restartBlink();
656
- }
657
- function onBlur() {
658
- if (focused) {
659
- if (options.onBlur) options.onBlur(instance);
660
- focused = false;
661
- if (bracketHighlighted)
662
- operation(function(){
663
- if (bracketHighlighted) { bracketHighlighted(); bracketHighlighted = null; }
664
- })();
665
- scroller.className = scroller.className.replace(" CodeMirror-focused", "");
666
- }
667
- clearInterval(blinker);
668
- setTimeout(function() {if (!focused) shiftSelecting = null;}, 150);
669
- }
670
-
671
- function chopDelta(delta) {
672
- // Make sure we always scroll a little bit for any nonzero delta.
673
- if (delta > 0.0 && delta < 1.0) return 1;
674
- else if (delta > -1.0 && delta < 0.0) return -1;
675
- else return Math.round(delta);
676
- }
677
-
678
- function onMouseWheel(e) {
679
- var deltaX = 0, deltaY = 0;
680
- if (e.type == "DOMMouseScroll") { // Firefox
681
- var delta = -e.detail * 8.0;
682
- if (e.axis == e.HORIZONTAL_AXIS) deltaX = delta;
683
- else if (e.axis == e.VERTICAL_AXIS) deltaY = delta;
684
- } else if (e.wheelDeltaX !== undefined && e.wheelDeltaY !== undefined) { // WebKit
685
- deltaX = e.wheelDeltaX / 3.0;
686
- deltaY = e.wheelDeltaY / 3.0;
687
- } else if (e.wheelDelta !== undefined) { // IE or Opera
688
- deltaY = e.wheelDelta / 3.0;
689
- }
690
-
691
- var scrolled = false;
692
- deltaX = chopDelta(deltaX);
693
- deltaY = chopDelta(deltaY);
694
- if ((deltaX > 0 && scroller.scrollLeft > 0) ||
695
- (deltaX < 0 && scroller.scrollLeft + scroller.clientWidth < scroller.scrollWidth)) {
696
- scroller.scrollLeft -= deltaX;
697
- scrolled = true;
698
- }
699
- if ((deltaY > 0 && scrollbar.scrollTop > 0) ||
700
- (deltaY < 0 && scrollbar.scrollTop + scrollbar.clientHeight < scrollbar.scrollHeight)) {
701
- scrollbar.scrollTop -= deltaY;
702
- scrolled = true;
703
- }
704
- if (scrolled) e_stop(e);
705
- }
706
-
707
- // Replace the range from from to to by the strings in newText.
708
- // Afterwards, set the selection to selFrom, selTo.
709
- function updateLines(from, to, newText, selFrom, selTo) {
710
- if (suppressEdits) return;
711
- if (history) {
712
- var old = [];
713
- doc.iter(from.line, to.line + 1, function(line) { old.push(line.text); });
714
- history.addChange(from.line, newText.length, old);
715
- while (history.done.length > options.undoDepth) history.done.shift();
716
- }
717
- updateLinesNoUndo(from, to, newText, selFrom, selTo);
718
- }
719
- function unredoHelper(from, to) {
720
- if (!from.length) return;
721
- var set = from.pop(), out = [];
722
- for (var i = set.length - 1; i >= 0; i -= 1) {
723
- var change = set[i];
724
- var replaced = [], end = change.start + change.added;
725
- doc.iter(change.start, end, function(line) { replaced.push(line.text); });
726
- out.push({start: change.start, added: change.old.length, old: replaced});
727
- var pos = {line: change.start + change.old.length - 1,
728
- ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])};
729
- updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: getLine(end-1).text.length}, change.old, pos, pos);
730
- }
731
- updateInput = true;
732
- to.push(out);
733
- }
734
- function undo() {unredoHelper(history.done, history.undone);}
735
- function redo() {unredoHelper(history.undone, history.done);}
736
-
737
- function updateLinesNoUndo(from, to, newText, selFrom, selTo) {
738
- if (suppressEdits) return;
739
- var recomputeMaxLength = false, maxLineLength = maxLine.length;
740
- if (!options.lineWrapping)
741
- doc.iter(from.line, to.line + 1, function(line) {
742
- if (!line.hidden && line.text.length == maxLineLength) {recomputeMaxLength = true; return true;}
743
- });
744
- if (from.line != to.line || newText.length > 1) gutterDirty = true;
745
-
746
- var nlines = to.line - from.line, firstLine = getLine(from.line), lastLine = getLine(to.line);
747
- // First adjust the line structure, taking some care to leave highlighting intact.
748
- if (from.ch == 0 && to.ch == 0 && newText[newText.length - 1] == "") {
749
- // This is a whole-line replace. Treated specially to make
750
- // sure line objects move the way they are supposed to.
751
- var added = [], prevLine = null;
752
- if (from.line) {
753
- prevLine = getLine(from.line - 1);
754
- prevLine.fixMarkEnds(lastLine);
755
- } else lastLine.fixMarkStarts();
756
- for (var i = 0, e = newText.length - 1; i < e; ++i)
757
- added.push(Line.inheritMarks(newText[i], prevLine));
758
- if (nlines) doc.remove(from.line, nlines, callbacks);
759
- if (added.length) doc.insert(from.line, added);
760
- } else if (firstLine == lastLine) {
761
- if (newText.length == 1)
762
- firstLine.replace(from.ch, to.ch, newText[0]);
763
- else {
764
- lastLine = firstLine.split(to.ch, newText[newText.length-1]);
765
- firstLine.replace(from.ch, null, newText[0]);
766
- firstLine.fixMarkEnds(lastLine);
767
- var added = [];
768
- for (var i = 1, e = newText.length - 1; i < e; ++i)
769
- added.push(Line.inheritMarks(newText[i], firstLine));
770
- added.push(lastLine);
771
- doc.insert(from.line + 1, added);
772
- }
773
- } else if (newText.length == 1) {
774
- firstLine.replace(from.ch, null, newText[0]);
775
- lastLine.replace(null, to.ch, "");
776
- firstLine.append(lastLine);
777
- doc.remove(from.line + 1, nlines, callbacks);
778
- } else {
779
- var added = [];
780
- firstLine.replace(from.ch, null, newText[0]);
781
- lastLine.replace(null, to.ch, newText[newText.length-1]);
782
- firstLine.fixMarkEnds(lastLine);
783
- for (var i = 1, e = newText.length - 1; i < e; ++i)
784
- added.push(Line.inheritMarks(newText[i], firstLine));
785
- if (nlines > 1) doc.remove(from.line + 1, nlines - 1, callbacks);
786
- doc.insert(from.line + 1, added);
787
- }
788
- if (options.lineWrapping) {
789
- var perLine = Math.max(5, scroller.clientWidth / charWidth() - 3);
790
- doc.iter(from.line, from.line + newText.length, function(line) {
791
- if (line.hidden) return;
792
- var guess = Math.ceil(line.text.length / perLine) || 1;
793
- if (guess != line.height) updateLineHeight(line, guess);
794
- });
795
- } else {
796
- doc.iter(from.line, from.line + newText.length, function(line) {
797
- var l = line.text;
798
- if (!line.hidden && l.length > maxLineLength) {
799
- maxLine = l; maxLineLength = l.length; maxLineChanged = true;
800
- recomputeMaxLength = false;
801
- }
802
- });
803
- if (recomputeMaxLength) updateMaxLine = true;
804
- }
805
-
806
- // Add these lines to the work array, so that they will be
807
- // highlighted. Adjust work lines if lines were added/removed.
808
- var newWork = [], lendiff = newText.length - nlines - 1;
809
- for (var i = 0, l = work.length; i < l; ++i) {
810
- var task = work[i];
811
- if (task < from.line) newWork.push(task);
812
- else if (task > to.line) newWork.push(task + lendiff);
813
- }
814
- var hlEnd = from.line + Math.min(newText.length, 500);
815
- highlightLines(from.line, hlEnd);
816
- newWork.push(hlEnd);
817
- work = newWork;
818
- startWorker(100);
819
- // Remember that these lines changed, for updating the display
820
- changes.push({from: from.line, to: to.line + 1, diff: lendiff});
821
- var changeObj = {from: from, to: to, text: newText};
822
- if (textChanged) {
823
- for (var cur = textChanged; cur.next; cur = cur.next) {}
824
- cur.next = changeObj;
825
- } else textChanged = changeObj;
826
-
827
- // Update the selection
828
- function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;}
829
- setSelection(clipPos(selFrom), clipPos(selTo),
830
- updateLine(sel.from.line), updateLine(sel.to.line));
831
- }
832
-
833
- function updateVerticalScroll(scrollTop) {
834
- var th = textHeight(), virtualHeight = Math.floor(doc.height * th + 2 * paddingTop()), scrollbarHeight = scroller.clientHeight;
835
- scrollbar.style.height = scrollbarHeight + "px";
836
- if (scroller.clientHeight)
837
- scrollbarInner.style.height = virtualHeight + "px";
838
- // Position the mover div to align with the current virtual scroll position
839
- if (scrollTop != null) scrollbar.scrollTop = scrollTop;
840
- mover.style.top = (displayOffset * th - scrollbar.scrollTop) + "px";
841
- scrollbar.style.display = (virtualHeight > scrollbarHeight) ? "block" : "none";
842
- }
843
-
844
- // On Mac OS X Lion and up, detect whether the mouse is plugged in by measuring
845
- // the width of a div with a scrollbar in it. If the width is <= 1, then
846
- // the mouse isn't plugged in and scrollbars should overlap the content.
847
- function overlapScrollbars() {
848
- var tmpSb = document.createElement('div'),
849
- tmpSbInner = document.createElement('div');
850
- tmpSb.className = "CodeMirror-scrollbar";
851
- tmpSb.style.cssText = "position: absolute; left: -9999px; height: 100px;";
852
- tmpSbInner.className = "CodeMirror-scrollbar-inner";
853
- tmpSbInner.style.height = "200px";
854
- tmpSb.appendChild(tmpSbInner);
855
-
856
- document.body.appendChild(tmpSb);
857
- var result = (tmpSb.offsetWidth <= 1);
858
- document.body.removeChild(tmpSb);
859
- return result;
860
- }
861
-
862
- function computeMaxLength() {
863
- var maxLineLength = 0;
864
- maxLine = ""; maxLineChanged = true;
865
- doc.iter(0, doc.size, function(line) {
866
- var l = line.text;
867
- if (!line.hidden && l.length > maxLineLength) {
868
- maxLineLength = l.length; maxLine = l;
869
- }
870
- });
871
- updateMaxLine = false;
872
- }
873
-
874
- function replaceRange(code, from, to) {
875
- from = clipPos(from);
876
- if (!to) to = from; else to = clipPos(to);
877
- code = splitLines(code);
878
- function adjustPos(pos) {
879
- if (posLess(pos, from)) return pos;
880
- if (!posLess(to, pos)) return end;
881
- var line = pos.line + code.length - (to.line - from.line) - 1;
882
- var ch = pos.ch;
883
- if (pos.line == to.line)
884
- ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0));
885
- return {line: line, ch: ch};
886
- }
887
- var end;
888
- replaceRange1(code, from, to, function(end1) {
889
- end = end1;
890
- return {from: adjustPos(sel.from), to: adjustPos(sel.to)};
891
- });
892
- return end;
893
- }
894
- function replaceSelection(code, collapse) {
895
- replaceRange1(splitLines(code), sel.from, sel.to, function(end) {
896
- if (collapse == "end") return {from: end, to: end};
897
- else if (collapse == "start") return {from: sel.from, to: sel.from};
898
- else return {from: sel.from, to: end};
899
- });
900
- }
901
- function replaceRange1(code, from, to, computeSel) {
902
- var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length;
903
- var newSel = computeSel({line: from.line + code.length - 1, ch: endch});
904
- updateLines(from, to, code, newSel.from, newSel.to);
905
- }
906
-
907
- function getRange(from, to) {
908
- var l1 = from.line, l2 = to.line;
909
- if (l1 == l2) return getLine(l1).text.slice(from.ch, to.ch);
910
- var code = [getLine(l1).text.slice(from.ch)];
911
- doc.iter(l1 + 1, l2, function(line) { code.push(line.text); });
912
- code.push(getLine(l2).text.slice(0, to.ch));
913
- return code.join("\n");
914
- }
915
- function getSelection() {
916
- return getRange(sel.from, sel.to);
917
- }
918
-
919
- var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll
920
- function slowPoll() {
921
- if (pollingFast) return;
922
- poll.set(options.pollInterval, function() {
923
- startOperation();
924
- readInput();
925
- if (focused) slowPoll();
926
- endOperation();
927
- });
928
- }
929
- function fastPoll() {
930
- var missed = false;
931
- pollingFast = true;
932
- function p() {
933
- startOperation();
934
- var changed = readInput();
935
- if (!changed && !missed) {missed = true; poll.set(60, p);}
936
- else {pollingFast = false; slowPoll();}
937
- endOperation();
938
- }
939
- poll.set(20, p);
940
- }
941
-
942
- // Previnput is a hack to work with IME. If we reset the textarea
943
- // on every change, that breaks IME. So we look for changes
944
- // compared to the previous content instead. (Modern browsers have
945
- // events that indicate IME taking place, but these are not widely
946
- // supported or compatible enough yet to rely on.)
947
- var prevInput = "";
948
- function readInput() {
949
- if (leaveInputAlone || !focused || hasSelection(input) || options.readOnly) return false;
950
- var text = input.value;
951
- if (text == prevInput) return false;
952
- shiftSelecting = null;
953
- var same = 0, l = Math.min(prevInput.length, text.length);
954
- while (same < l && prevInput[same] == text[same]) ++same;
955
- if (same < prevInput.length)
956
- sel.from = {line: sel.from.line, ch: sel.from.ch - (prevInput.length - same)};
957
- else if (overwrite && posEq(sel.from, sel.to))
958
- sel.to = {line: sel.to.line, ch: Math.min(getLine(sel.to.line).text.length, sel.to.ch + (text.length - same))};
959
- replaceSelection(text.slice(same), "end");
960
- if (text.length > 1000) { input.value = prevInput = ""; }
961
- else prevInput = text;
962
- return true;
963
- }
964
- function resetInput(user) {
965
- if (!posEq(sel.from, sel.to)) {
966
- prevInput = "";
967
- input.value = getSelection();
968
- selectInput(input);
969
- } else if (user) prevInput = input.value = "";
970
- }
971
-
972
- function focusInput() {
973
- if (options.readOnly != "nocursor") input.focus();
974
- }
975
-
976
- function scrollEditorIntoView() {
977
- if (!cursor.getBoundingClientRect) return;
978
- var rect = cursor.getBoundingClientRect();
979
- // IE returns bogus coordinates when the instance sits inside of an iframe and the cursor is hidden
980
- if (ie && rect.top == rect.bottom) return;
981
- var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
982
- if (rect.top < 0 || rect.bottom > winH) scrollCursorIntoView();
983
- }
984
- function scrollCursorIntoView() {
985
- var coords = calculateCursorCoords();
986
- return scrollIntoView(coords.x, coords.y, coords.x, coords.yBot);
987
- }
988
- function calculateCursorCoords() {
989
- var cursor = localCoords(sel.inverted ? sel.from : sel.to);
990
- var x = options.lineWrapping ? Math.min(cursor.x, lineSpace.offsetWidth) : cursor.x;
991
- return {x: x, y: cursor.y, yBot: cursor.yBot};
992
- }
993
- function scrollIntoView(x1, y1, x2, y2) {
994
- var scrollPos = calculateScrollPos(x1, y1, x2, y2), scrolled = false;
995
- if (scrollPos.scrollLeft != null) {scroller.scrollLeft = scrollPos.scrollLeft; scrolled = true;}
996
- if (scrollPos.scrollTop != null) {scrollbar.scrollTop = scrollPos.scrollTop; scrolled = true;}
997
- if (scrolled && options.onScroll) options.onScroll(instance);
998
- }
999
- function calculateScrollPos(x1, y1, x2, y2) {
1000
- var pl = paddingLeft(), pt = paddingTop();
1001
- y1 += pt; y2 += pt; x1 += pl; x2 += pl;
1002
- var screen = scroller.clientHeight, screentop = scrollbar.scrollTop, result = {};
1003
- var atTop = y1 < paddingTop() + 10;
1004
- if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1);
1005
- else if (y2 > screentop + screen) result.scrollTop = y2 - screen;
1006
-
1007
- var screenw = scroller.clientWidth, screenleft = scroller.scrollLeft;
1008
- var gutterw = options.fixedGutter ? gutter.clientWidth : 0;
1009
- var atLeft = x1 < gutterw + pl + 10;
1010
- if (x1 < screenleft + gutterw || atLeft) {
1011
- if (atLeft) x1 = 0;
1012
- result.scrollLeft = Math.max(0, x1 - 10 - gutterw);
1013
- } else if (x2 > screenw + screenleft - 3) {
1014
- result.scrollLeft = x2 + 10 - screenw;
1015
- }
1016
- return result;
1017
- }
1018
-
1019
- function visibleLines(scrollTop) {
1020
- var lh = textHeight(), top = (scrollTop != null ? scrollTop : scrollbar.scrollTop) - paddingTop();
1021
- var fromHeight = Math.max(0, Math.floor(top / lh));
1022
- var toHeight = Math.ceil((top + scroller.clientHeight) / lh);
1023
- return {from: lineAtHeight(doc, fromHeight),
1024
- to: lineAtHeight(doc, toHeight)};
1025
- }
1026
- // Uses a set of changes plus the current scroll position to
1027
- // determine which DOM updates have to be made, and makes the
1028
- // updates.
1029
- function updateDisplay(changes, suppressCallback, scrollTop) {
1030
- if (!scroller.clientWidth) {
1031
- showingFrom = showingTo = displayOffset = 0;
1032
- return;
1033
- }
1034
- // Compute the new visible window
1035
- // If scrollTop is specified, use that to determine which lines
1036
- // to render instead of the current scrollbar position.
1037
- var visible = visibleLines(scrollTop);
1038
- // Bail out if the visible area is already rendered and nothing changed.
1039
- if (changes !== true && changes.length == 0 && visible.from > showingFrom && visible.to < showingTo) {
1040
- updateVerticalScroll(scrollTop);
1041
- return;
1042
- }
1043
- var from = Math.max(visible.from - 100, 0), to = Math.min(doc.size, visible.to + 100);
1044
- if (showingFrom < from && from - showingFrom < 20) from = showingFrom;
1045
- if (showingTo > to && showingTo - to < 20) to = Math.min(doc.size, showingTo);
1046
-
1047
- // Create a range of theoretically intact lines, and punch holes
1048
- // in that using the change info.
1049
- var intact = changes === true ? [] :
1050
- computeIntact([{from: showingFrom, to: showingTo, domStart: 0}], changes);
1051
- // Clip off the parts that won't be visible
1052
- var intactLines = 0;
1053
- for (var i = 0; i < intact.length; ++i) {
1054
- var range = intact[i];
1055
- if (range.from < from) {range.domStart += (from - range.from); range.from = from;}
1056
- if (range.to > to) range.to = to;
1057
- if (range.from >= range.to) intact.splice(i--, 1);
1058
- else intactLines += range.to - range.from;
1059
- }
1060
- if (intactLines == to - from && from == showingFrom && to == showingTo) {
1061
- updateVerticalScroll(scrollTop);
1062
- return;
1063
- }
1064
- intact.sort(function(a, b) {return a.domStart - b.domStart;});
1065
-
1066
- var th = textHeight(), gutterDisplay = gutter.style.display;
1067
- lineDiv.style.display = "none";
1068
- patchDisplay(from, to, intact);
1069
- lineDiv.style.display = gutter.style.display = "";
1070
-
1071
- var different = from != showingFrom || to != showingTo || lastSizeC != scroller.clientHeight + th;
1072
- // This is just a bogus formula that detects when the editor is
1073
- // resized or the font size changes.
1074
- if (different) lastSizeC = scroller.clientHeight + th;
1075
- showingFrom = from; showingTo = to;
1076
- displayOffset = heightAtLine(doc, from);
1077
-
1078
- // Since this is all rather error prone, it is honoured with the
1079
- // only assertion in the whole file.
1080
- if (lineDiv.childNodes.length != showingTo - showingFrom)
1081
- throw new Error("BAD PATCH! " + JSON.stringify(intact) + " size=" + (showingTo - showingFrom) +
1082
- " nodes=" + lineDiv.childNodes.length);
1083
-
1084
- function checkHeights() {
1085
- var curNode = lineDiv.firstChild, heightChanged = false;
1086
- doc.iter(showingFrom, showingTo, function(line) {
1087
- if (!line.hidden) {
1088
- var height = Math.round(curNode.offsetHeight / th) || 1;
1089
- if (line.height != height) {
1090
- updateLineHeight(line, height);
1091
- gutterDirty = heightChanged = true;
1092
- }
1093
- }
1094
- curNode = curNode.nextSibling;
1095
- });
1096
- return heightChanged;
1097
- }
1098
-
1099
- if (options.lineWrapping) {
1100
- // Guess whether we're going to need the scrollbar, so that we don't end up changing the linewrapping
1101
- // after the scrollbar appears (during updateVerticalScroll()). Only do this if the scrollbar is
1102
- // appearing (if it's disappearing, we don't have to worry about the scroll position, and there are
1103
- // issues on IE7 if we turn it off too early).
1104
- var virtualHeight = Math.floor(doc.height * th + 2 * paddingTop()), scrollbarHeight = scroller.clientHeight;
1105
- if (virtualHeight > scrollbarHeight) scrollbar.style.display = "block";
1106
- checkHeights();
1107
- }
1108
-
1109
- gutter.style.display = gutterDisplay;
1110
- if (different || gutterDirty) {
1111
- // If the gutter grew in size, re-check heights. If those changed, re-draw gutter.
1112
- updateGutter() && options.lineWrapping && checkHeights() && updateGutter();
1113
- }
1114
- updateSelection();
1115
- updateVerticalScroll(scrollTop);
1116
- if (!suppressCallback && options.onUpdate) options.onUpdate(instance);
1117
- return true;
1118
- }
1119
-
1120
- function computeIntact(intact, changes) {
1121
- for (var i = 0, l = changes.length || 0; i < l; ++i) {
1122
- var change = changes[i], intact2 = [], diff = change.diff || 0;
1123
- for (var j = 0, l2 = intact.length; j < l2; ++j) {
1124
- var range = intact[j];
1125
- if (change.to <= range.from && change.diff)
1126
- intact2.push({from: range.from + diff, to: range.to + diff,
1127
- domStart: range.domStart});
1128
- else if (change.to <= range.from || change.from >= range.to)
1129
- intact2.push(range);
1130
- else {
1131
- if (change.from > range.from)
1132
- intact2.push({from: range.from, to: change.from, domStart: range.domStart});
1133
- if (change.to < range.to)
1134
- intact2.push({from: change.to + diff, to: range.to + diff,
1135
- domStart: range.domStart + (change.to - range.from)});
1136
- }
1137
- }
1138
- intact = intact2;
1139
- }
1140
- return intact;
1141
- }
1142
-
1143
- function patchDisplay(from, to, intact) {
1144
- // The first pass removes the DOM nodes that aren't intact.
1145
- if (!intact.length) lineDiv.innerHTML = "";
1146
- else {
1147
- function killNode(node) {
1148
- var tmp = node.nextSibling;
1149
- node.parentNode.removeChild(node);
1150
- return tmp;
1151
- }
1152
- var domPos = 0, curNode = lineDiv.firstChild, n;
1153
- for (var i = 0; i < intact.length; ++i) {
1154
- var cur = intact[i];
1155
- while (cur.domStart > domPos) {curNode = killNode(curNode); domPos++;}
1156
- for (var j = 0, e = cur.to - cur.from; j < e; ++j) {curNode = curNode.nextSibling; domPos++;}
1157
- }
1158
- while (curNode) curNode = killNode(curNode);
1159
- }
1160
- // This pass fills in the lines that actually changed.
1161
- var nextIntact = intact.shift(), curNode = lineDiv.firstChild, j = from;
1162
- var scratch = document.createElement("div");
1163
- doc.iter(from, to, function(line) {
1164
- if (nextIntact && nextIntact.to == j) nextIntact = intact.shift();
1165
- if (!nextIntact || nextIntact.from > j) {
1166
- if (line.hidden) var html = scratch.innerHTML = "<pre></pre>";
1167
- else {
1168
- var html = '<pre' + (line.className ? ' class="' + line.className + '"' : '') + '>'
1169
- + line.getHTML(makeTab) + '</pre>';
1170
- // Kludge to make sure the styled element lies behind the selection (by z-index)
1171
- if (line.bgClassName)
1172
- html = '<div style="position: relative"><pre class="' + line.bgClassName +
1173
- '" style="position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: -2">&#160;</pre>' + html + "</div>";
1174
- }
1175
- scratch.innerHTML = html;
1176
- lineDiv.insertBefore(scratch.firstChild, curNode);
1177
- } else {
1178
- curNode = curNode.nextSibling;
1179
- }
1180
- ++j;
1181
- });
1182
- }
1183
-
1184
- function updateGutter() {
1185
- if (!options.gutter && !options.lineNumbers) return;
1186
- var hText = mover.offsetHeight, hEditor = scroller.clientHeight;
1187
- gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px";
1188
- var html = [], i = showingFrom, normalNode;
1189
- doc.iter(showingFrom, Math.max(showingTo, showingFrom + 1), function(line) {
1190
- if (line.hidden) {
1191
- html.push("<pre></pre>");
1192
- } else {
1193
- var marker = line.gutterMarker;
1194
- var text = options.lineNumbers ? i + options.firstLineNumber : null;
1195
- if (marker && marker.text)
1196
- text = marker.text.replace("%N%", text != null ? text : "");
1197
- else if (text == null)
1198
- text = "\u00a0";
1199
- html.push((marker && marker.style ? '<pre class="' + marker.style + '">' : "<pre>"), text);
1200
- for (var j = 1; j < line.height; ++j) html.push("<br/>&#160;");
1201
- html.push("</pre>");
1202
- if (!marker) normalNode = i;
1203
- }
1204
- ++i;
1205
- });
1206
- gutter.style.display = "none";
1207
- gutterText.innerHTML = html.join("");
1208
- // Make sure scrolling doesn't cause number gutter size to pop
1209
- if (normalNode != null && options.lineNumbers) {
1210
- var node = gutterText.childNodes[normalNode - showingFrom];
1211
- var minwidth = String(doc.size).length, val = eltText(node.firstChild), pad = "";
1212
- while (val.length + pad.length < minwidth) pad += "\u00a0";
1213
- if (pad) node.insertBefore(document.createTextNode(pad), node.firstChild);
1214
- }
1215
- gutter.style.display = "";
1216
- var resized = Math.abs((parseInt(lineSpace.style.marginLeft) || 0) - gutter.offsetWidth) > 2;
1217
- lineSpace.style.marginLeft = gutter.offsetWidth + "px";
1218
- gutterDirty = false;
1219
- return resized;
1220
- }
1221
- function updateSelection() {
1222
- var collapsed = posEq(sel.from, sel.to);
1223
- var fromPos = localCoords(sel.from, true);
1224
- var toPos = collapsed ? fromPos : localCoords(sel.to, true);
1225
- var headPos = sel.inverted ? fromPos : toPos, th = textHeight();
1226
- var wrapOff = eltOffset(wrapper), lineOff = eltOffset(lineDiv);
1227
- inputDiv.style.top = Math.max(0, Math.min(scroller.offsetHeight, headPos.y + lineOff.top - wrapOff.top)) + "px";
1228
- inputDiv.style.left = Math.max(0, Math.min(scroller.offsetWidth, headPos.x + lineOff.left - wrapOff.left)) + "px";
1229
- if (collapsed) {
1230
- cursor.style.top = headPos.y + "px";
1231
- cursor.style.left = (options.lineWrapping ? Math.min(headPos.x, lineSpace.offsetWidth) : headPos.x) + "px";
1232
- cursor.style.display = "";
1233
- selectionDiv.style.display = "none";
1234
- } else {
1235
- var sameLine = fromPos.y == toPos.y, html = "";
1236
- var clientWidth = lineSpace.clientWidth || lineSpace.offsetWidth;
1237
- var clientHeight = lineSpace.clientHeight || lineSpace.offsetHeight;
1238
- function add(left, top, right, height) {
1239
- var rstyle = quirksMode ? "width: " + (!right ? clientWidth : clientWidth - right - left) + "px"
1240
- : "right: " + right + "px";
1241
- html += '<div class="CodeMirror-selected" style="position: absolute; left: ' + left +
1242
- 'px; top: ' + top + 'px; ' + rstyle + '; height: ' + height + 'px"></div>';
1243
- }
1244
- if (sel.from.ch && fromPos.y >= 0) {
1245
- var right = sameLine ? clientWidth - toPos.x : 0;
1246
- add(fromPos.x, fromPos.y, right, th);
1247
- }
1248
- var middleStart = Math.max(0, fromPos.y + (sel.from.ch ? th : 0));
1249
- var middleHeight = Math.min(toPos.y, clientHeight) - middleStart;
1250
- if (middleHeight > 0.2 * th)
1251
- add(0, middleStart, 0, middleHeight);
1252
- if ((!sameLine || !sel.from.ch) && toPos.y < clientHeight - .5 * th)
1253
- add(0, toPos.y, clientWidth - toPos.x, th);
1254
- selectionDiv.innerHTML = html;
1255
- cursor.style.display = "none";
1256
- selectionDiv.style.display = "";
1257
- }
1258
- }
1259
-
1260
- function setShift(val) {
1261
- if (val) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from);
1262
- else shiftSelecting = null;
1263
- }
1264
- function setSelectionUser(from, to) {
1265
- var sh = shiftSelecting && clipPos(shiftSelecting);
1266
- if (sh) {
1267
- if (posLess(sh, from)) from = sh;
1268
- else if (posLess(to, sh)) to = sh;
1269
- }
1270
- setSelection(from, to);
1271
- userSelChange = true;
1272
- }
1273
- // Update the selection. Last two args are only used by
1274
- // updateLines, since they have to be expressed in the line
1275
- // numbers before the update.
1276
- function setSelection(from, to, oldFrom, oldTo) {
1277
- goalColumn = null;
1278
- if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;}
1279
- if (posEq(sel.from, from) && posEq(sel.to, to)) return;
1280
- if (posLess(to, from)) {var tmp = to; to = from; from = tmp;}
1281
-
1282
- // Skip over hidden lines.
1283
- if (from.line != oldFrom) {
1284
- var from1 = skipHidden(from, oldFrom, sel.from.ch);
1285
- // If there is no non-hidden line left, force visibility on current line
1286
- if (!from1) setLineHidden(from.line, false);
1287
- else from = from1;
1288
- }
1289
- if (to.line != oldTo) to = skipHidden(to, oldTo, sel.to.ch);
1290
-
1291
- if (posEq(from, to)) sel.inverted = false;
1292
- else if (posEq(from, sel.to)) sel.inverted = false;
1293
- else if (posEq(to, sel.from)) sel.inverted = true;
1294
-
1295
- if (options.autoClearEmptyLines && posEq(sel.from, sel.to)) {
1296
- var head = sel.inverted ? from : to;
1297
- if (head.line != sel.from.line && sel.from.line < doc.size) {
1298
- var oldLine = getLine(sel.from.line);
1299
- if (/^\s+$/.test(oldLine.text))
1300
- setTimeout(operation(function() {
1301
- if (oldLine.parent && /^\s+$/.test(oldLine.text)) {
1302
- var no = lineNo(oldLine);
1303
- replaceRange("", {line: no, ch: 0}, {line: no, ch: oldLine.text.length});
1304
- }
1305
- }, 10));
1306
- }
1307
- }
1308
-
1309
- sel.from = from; sel.to = to;
1310
- selectionChanged = true;
1311
- }
1312
- function skipHidden(pos, oldLine, oldCh) {
1313
- function getNonHidden(dir) {
1314
- var lNo = pos.line + dir, end = dir == 1 ? doc.size : -1;
1315
- while (lNo != end) {
1316
- var line = getLine(lNo);
1317
- if (!line.hidden) {
1318
- var ch = pos.ch;
1319
- if (toEnd || ch > oldCh || ch > line.text.length) ch = line.text.length;
1320
- return {line: lNo, ch: ch};
1321
- }
1322
- lNo += dir;
1323
- }
1324
- }
1325
- var line = getLine(pos.line);
1326
- var toEnd = pos.ch == line.text.length && pos.ch != oldCh;
1327
- if (!line.hidden) return pos;
1328
- if (pos.line >= oldLine) return getNonHidden(1) || getNonHidden(-1);
1329
- else return getNonHidden(-1) || getNonHidden(1);
1330
- }
1331
- function setCursor(line, ch, user) {
1332
- var pos = clipPos({line: line, ch: ch || 0});
1333
- (user ? setSelectionUser : setSelection)(pos, pos);
1334
- }
1335
-
1336
- function clipLine(n) {return Math.max(0, Math.min(n, doc.size-1));}
1337
- function clipPos(pos) {
1338
- if (pos.line < 0) return {line: 0, ch: 0};
1339
- if (pos.line >= doc.size) return {line: doc.size-1, ch: getLine(doc.size-1).text.length};
1340
- var ch = pos.ch, linelen = getLine(pos.line).text.length;
1341
- if (ch == null || ch > linelen) return {line: pos.line, ch: linelen};
1342
- else if (ch < 0) return {line: pos.line, ch: 0};
1343
- else return pos;
1344
- }
1345
-
1346
- function findPosH(dir, unit) {
1347
- var end = sel.inverted ? sel.from : sel.to, line = end.line, ch = end.ch;
1348
- var lineObj = getLine(line);
1349
- function findNextLine() {
1350
- for (var l = line + dir, e = dir < 0 ? -1 : doc.size; l != e; l += dir) {
1351
- var lo = getLine(l);
1352
- if (!lo.hidden) { line = l; lineObj = lo; return true; }
1353
- }
1354
- }
1355
- function moveOnce(boundToLine) {
1356
- if (ch == (dir < 0 ? 0 : lineObj.text.length)) {
1357
- if (!boundToLine && findNextLine()) ch = dir < 0 ? lineObj.text.length : 0;
1358
- else return false;
1359
- } else ch += dir;
1360
- return true;
1361
- }
1362
- if (unit == "char") moveOnce();
1363
- else if (unit == "column") moveOnce(true);
1364
- else if (unit == "word") {
1365
- var sawWord = false;
1366
- for (;;) {
1367
- if (dir < 0) if (!moveOnce()) break;
1368
- if (isWordChar(lineObj.text.charAt(ch))) sawWord = true;
1369
- else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;}
1370
- if (dir > 0) if (!moveOnce()) break;
1371
- }
1372
- }
1373
- return {line: line, ch: ch};
1374
- }
1375
- function moveH(dir, unit) {
1376
- var pos = dir < 0 ? sel.from : sel.to;
1377
- if (shiftSelecting || posEq(sel.from, sel.to)) pos = findPosH(dir, unit);
1378
- setCursor(pos.line, pos.ch, true);
1379
- }
1380
- function deleteH(dir, unit) {
1381
- if (!posEq(sel.from, sel.to)) replaceRange("", sel.from, sel.to);
1382
- else if (dir < 0) replaceRange("", findPosH(dir, unit), sel.to);
1383
- else replaceRange("", sel.from, findPosH(dir, unit));
1384
- userSelChange = true;
1385
- }
1386
- var goalColumn = null;
1387
- function moveV(dir, unit) {
1388
- var dist = 0, pos = localCoords(sel.inverted ? sel.from : sel.to, true);
1389
- if (goalColumn != null) pos.x = goalColumn;
1390
- if (unit == "page") dist = Math.min(scroller.clientHeight, window.innerHeight || document.documentElement.clientHeight);
1391
- else if (unit == "line") dist = textHeight();
1392
- var target = coordsChar(pos.x, pos.y + dist * dir + 2);
1393
- if (unit == "page") scrollbar.scrollTop += localCoords(target, true).y - pos.y;
1394
- setCursor(target.line, target.ch, true);
1395
- goalColumn = pos.x;
1396
- }
1397
-
1398
- function selectWordAt(pos) {
1399
- var line = getLine(pos.line).text;
1400
- var start = pos.ch, end = pos.ch;
1401
- while (start > 0 && isWordChar(line.charAt(start - 1))) --start;
1402
- while (end < line.length && isWordChar(line.charAt(end))) ++end;
1403
- setSelectionUser({line: pos.line, ch: start}, {line: pos.line, ch: end});
1404
- }
1405
- function selectLine(line) {
1406
- setSelectionUser({line: line, ch: 0}, clipPos({line: line + 1, ch: 0}));
1407
- }
1408
- function indentSelected(mode) {
1409
- if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode);
1410
- var e = sel.to.line - (sel.to.ch ? 0 : 1);
1411
- for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode);
1412
- }
1413
-
1414
- function indentLine(n, how) {
1415
- if (!how) how = "add";
1416
- if (how == "smart") {
1417
- if (!mode.indent) how = "prev";
1418
- else var state = getStateBefore(n);
1419
- }
1420
-
1421
- var line = getLine(n), curSpace = line.indentation(options.tabSize),
1422
- curSpaceString = line.text.match(/^\s*/)[0], indentation;
1423
- if (how == "smart") {
1424
- indentation = mode.indent(state, line.text.slice(curSpaceString.length), line.text);
1425
- if (indentation == Pass) how = "prev";
1426
- }
1427
- if (how == "prev") {
1428
- if (n) indentation = getLine(n-1).indentation(options.tabSize);
1429
- else indentation = 0;
1430
- }
1431
- else if (how == "add") indentation = curSpace + options.indentUnit;
1432
- else if (how == "subtract") indentation = curSpace - options.indentUnit;
1433
- indentation = Math.max(0, indentation);
1434
- var diff = indentation - curSpace;
1435
-
1436
- if (!diff) {
1437
- if (sel.from.line != n && sel.to.line != n) return;
1438
- var indentString = curSpaceString;
1439
- } else {
1440
- var indentString = "", pos = 0;
1441
- if (options.indentWithTabs)
1442
- for (var i = Math.floor(indentation / options.tabSize); i; --i) {pos += options.tabSize; indentString += "\t";}
1443
- while (pos < indentation) {++pos; indentString += " ";}
1444
- }
1445
-
1446
- replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length});
1447
- }
1448
-
1449
- function loadMode() {
1450
- mode = CodeMirror.getMode(options, options.mode);
1451
- doc.iter(0, doc.size, function(line) { line.stateAfter = null; });
1452
- work = [0];
1453
- startWorker();
1454
- }
1455
- function gutterChanged() {
1456
- var visible = options.gutter || options.lineNumbers;
1457
- gutter.style.display = visible ? "" : "none";
1458
- if (visible) gutterDirty = true;
1459
- else lineDiv.parentNode.style.marginLeft = 0;
1460
- }
1461
- function wrappingChanged(from, to) {
1462
- if (options.lineWrapping) {
1463
- wrapper.className += " CodeMirror-wrap";
1464
- var perLine = scroller.clientWidth / charWidth() - 3;
1465
- doc.iter(0, doc.size, function(line) {
1466
- if (line.hidden) return;
1467
- var guess = Math.ceil(line.text.length / perLine) || 1;
1468
- if (guess != 1) updateLineHeight(line, guess);
1469
- });
1470
- lineSpace.style.width = code.style.width = "";
1471
- widthForcer.style.left = "";
1472
- } else {
1473
- wrapper.className = wrapper.className.replace(" CodeMirror-wrap", "");
1474
- maxLine = ""; maxLineChanged = true;
1475
- doc.iter(0, doc.size, function(line) {
1476
- if (line.height != 1 && !line.hidden) updateLineHeight(line, 1);
1477
- if (line.text.length > maxLine.length) maxLine = line.text;
1478
- });
1479
- }
1480
- changes.push({from: 0, to: doc.size});
1481
- }
1482
- function makeTab(col) {
1483
- var w = options.tabSize - col % options.tabSize, cached = tabCache[w];
1484
- if (cached) return cached;
1485
- for (var str = '<span class="cm-tab">', i = 0; i < w; ++i) str += " ";
1486
- return (tabCache[w] = {html: str + "</span>", width: w});
1487
- }
1488
- function themeChanged() {
1489
- scroller.className = scroller.className.replace(/\s*cm-s-\S+/g, "") +
1490
- options.theme.replace(/(^|\s)\s*/g, " cm-s-");
1491
- }
1492
- function keyMapChanged() {
1493
- var style = keyMap[options.keyMap].style;
1494
- wrapper.className = wrapper.className.replace(/\s*cm-keymap-\S+/g, "") +
1495
- (style ? " cm-keymap-" + style : "");
1496
- }
1497
-
1498
- function TextMarker() { this.set = []; }
1499
- TextMarker.prototype.clear = operation(function() {
1500
- var min = Infinity, max = -Infinity;
1501
- for (var i = 0, e = this.set.length; i < e; ++i) {
1502
- var line = this.set[i], mk = line.marked;
1503
- if (!mk || !line.