Custom Contact Forms - Version 4.6.0.1

Version Description

  • custom-contact-forms-admin.php - -1 bug fixed in IE
  • js/jquery.form.js - Updated jquery forms plugin fixes huge IE bug
Download this release

Release Info

Developer tlovett1
Plugin Icon 128x128 Custom Contact Forms
Version 4.6.0.1
Comparing to
See all releases

Code changes from version 4.6.0.0 to 4.6.0.1

css/colorpicker.css CHANGED
@@ -1,161 +1,161 @@
1
- .colorpicker {
2
- width: 356px;
3
- height: 176px;
4
- overflow: hidden;
5
- position: absolute;
6
- background: url(../images/colorpicker_background.png);
7
- font-family: Arial, Helvetica, sans-serif;
8
- display: none;
9
- }
10
- .colorpicker_color {
11
- width: 150px;
12
- height: 150px;
13
- left: 14px;
14
- top: 13px;
15
- position: absolute;
16
- background: #f00;
17
- overflow: hidden;
18
- cursor: crosshair;
19
- }
20
- .colorpicker_color div {
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- width: 150px;
25
- height: 150px;
26
- background: url(../images/colorpicker_overlay.png);
27
- }
28
- .colorpicker_color div div {
29
- position: absolute;
30
- top: 0;
31
- left: 0;
32
- width: 11px;
33
- height: 11px;
34
- overflow: hidden;
35
- background: url(../images/colorpicker_select.gif);
36
- margin: -5px 0 0 -5px;
37
- }
38
- .colorpicker_hue {
39
- position: absolute;
40
- top: 13px;
41
- left: 171px;
42
- width: 35px;
43
- height: 150px;
44
- cursor: n-resize;
45
- }
46
- .colorpicker_hue div {
47
- position: absolute;
48
- width: 35px;
49
- height: 9px;
50
- overflow: hidden;
51
- background: url(../images/colorpicker_indic.gif) left top;
52
- margin: -4px 0 0 0;
53
- left: 0px;
54
- }
55
- .colorpicker_new_color {
56
- position: absolute;
57
- width: 60px;
58
- height: 30px;
59
- left: 213px;
60
- top: 13px;
61
- background: #f00;
62
- }
63
- .colorpicker_current_color {
64
- position: absolute;
65
- width: 60px;
66
- height: 30px;
67
- left: 283px;
68
- top: 13px;
69
- background: #f00;
70
- }
71
- .colorpicker input {
72
- background-color: transparent;
73
- border: 1px solid transparent;
74
- position: absolute;
75
- font-size: 10px;
76
- font-family: Arial, Helvetica, sans-serif;
77
- color: #898989;
78
- top: 4px;
79
- right: 11px;
80
- text-align: right;
81
- margin: 0;
82
- padding: 0;
83
- height: 11px;
84
- }
85
- .colorpicker_hex {
86
- position: absolute;
87
- width: 72px;
88
- height: 22px;
89
- background: url(../images/colorpicker_hex.png) top;
90
- left: 212px;
91
- top: 142px;
92
- }
93
- .colorpicker_hex input {
94
- right: 6px;
95
- }
96
- .colorpicker_field {
97
- height: 22px;
98
- width: 62px;
99
- background-position: top;
100
- position: absolute;
101
- }
102
- .colorpicker_field span {
103
- position: absolute;
104
- width: 12px;
105
- height: 22px;
106
- overflow: hidden;
107
- top: 0;
108
- right: 0;
109
- cursor: n-resize;
110
- }
111
- .colorpicker_rgb_r {
112
- background-image: url(../images/colorpicker_rgb_r.png);
113
- top: 52px;
114
- left: 212px;
115
- }
116
- .colorpicker_rgb_g {
117
- background-image: url(../images/colorpicker_rgb_g.png);
118
- top: 82px;
119
- left: 212px;
120
- }
121
- .colorpicker_rgb_b {
122
- background-image: url(../images/colorpicker_rgb_b.png);
123
- top: 112px;
124
- left: 212px;
125
- }
126
- .colorpicker_hsb_h {
127
- background-image: url(../images/colorpicker_hsb_h.png);
128
- top: 52px;
129
- left: 282px;
130
- }
131
- .colorpicker_hsb_s {
132
- background-image: url(../images/colorpicker_hsb_s.png);
133
- top: 82px;
134
- left: 282px;
135
- }
136
- .colorpicker_hsb_b {
137
- background-image: url(../images/colorpicker_hsb_b.png);
138
- top: 112px;
139
- left: 282px;
140
- }
141
- .colorpicker_submit {
142
- position: absolute;
143
- width: 22px;
144
- height: 22px;
145
- background: url(../images/colorpicker_submit.png) top;
146
- left: 322px;
147
- top: 142px;
148
- overflow: hidden;
149
- }
150
- .colorpicker_focus {
151
- background-position: center;
152
- }
153
- .colorpicker_hex.colorpicker_focus {
154
- background-position: bottom;
155
- }
156
- .colorpicker_submit.colorpicker_focus {
157
- background-position: bottom;
158
- }
159
- .colorpicker_slider {
160
- background-position: bottom;
161
- }
1
+ .colorpicker {
2
+ width: 356px;
3
+ height: 176px;
4
+ overflow: hidden;
5
+ position: absolute;
6
+ background: url(../images/colorpicker_background.png);
7
+ font-family: Arial, Helvetica, sans-serif;
8
+ display: none;
9
+ }
10
+ .colorpicker_color {
11
+ width: 150px;
12
+ height: 150px;
13
+ left: 14px;
14
+ top: 13px;
15
+ position: absolute;
16
+ background: #f00;
17
+ overflow: hidden;
18
+ cursor: crosshair;
19
+ }
20
+ .colorpicker_color div {
21
+ position: absolute;
22
+ top: 0;
23
+ left: 0;
24
+ width: 150px;
25
+ height: 150px;
26
+ background: url(../images/colorpicker_overlay.png);
27
+ }
28
+ .colorpicker_color div div {
29
+ position: absolute;
30
+ top: 0;
31
+ left: 0;
32
+ width: 11px;
33
+ height: 11px;
34
+ overflow: hidden;
35
+ background: url(../images/colorpicker_select.gif);
36
+ margin: -5px 0 0 -5px;
37
+ }
38
+ .colorpicker_hue {
39
+ position: absolute;
40
+ top: 13px;
41
+ left: 171px;
42
+ width: 35px;
43
+ height: 150px;
44
+ cursor: n-resize;
45
+ }
46
+ .colorpicker_hue div {
47
+ position: absolute;
48
+ width: 35px;
49
+ height: 9px;
50
+ overflow: hidden;
51
+ background: url(../images/colorpicker_indic.gif) left top;
52
+ margin: -4px 0 0 0;
53
+ left: 0px;
54
+ }
55
+ .colorpicker_new_color {
56
+ position: absolute;
57
+ width: 60px;
58
+ height: 30px;
59
+ left: 213px;
60
+ top: 13px;
61
+ background: #f00;
62
+ }
63
+ .colorpicker_current_color {
64
+ position: absolute;
65
+ width: 60px;
66
+ height: 30px;
67
+ left: 283px;
68
+ top: 13px;
69
+ background: #f00;
70
+ }
71
+ .colorpicker input {
72
+ background-color: transparent;
73
+ border: 1px solid transparent;
74
+ position: absolute;
75
+ font-size: 10px;
76
+ font-family: Arial, Helvetica, sans-serif;
77
+ color: #898989;
78
+ top: 4px;
79
+ right: 11px;
80
+ text-align: right;
81
+ margin: 0;
82
+ padding: 0;
83
+ height: 11px;
84
+ }
85
+ .colorpicker_hex {
86
+ position: absolute;
87
+ width: 72px;
88
+ height: 22px;
89
+ background: url(../images/colorpicker_hex.png) top;
90
+ left: 212px;
91
+ top: 142px;
92
+ }
93
+ .colorpicker_hex input {
94
+ right: 6px;
95
+ }
96
+ .colorpicker_field {
97
+ height: 22px;
98
+ width: 62px;
99
+ background-position: top;
100
+ position: absolute;
101
+ }
102
+ .colorpicker_field span {
103
+ position: absolute;
104
+ width: 12px;
105
+ height: 22px;
106
+ overflow: hidden;
107
+ top: 0;
108
+ right: 0;
109
+ cursor: n-resize;
110
+ }
111
+ .colorpicker_rgb_r {
112
+ background-image: url(../images/colorpicker_rgb_r.png);
113
+ top: 52px;
114
+ left: 212px;
115
+ }
116
+ .colorpicker_rgb_g {
117
+ background-image: url(../images/colorpicker_rgb_g.png);
118
+ top: 82px;
119
+ left: 212px;
120
+ }
121
+ .colorpicker_rgb_b {
122
+ background-image: url(../images/colorpicker_rgb_b.png);
123
+ top: 112px;
124
+ left: 212px;
125
+ }
126
+ .colorpicker_hsb_h {
127
+ background-image: url(../images/colorpicker_hsb_h.png);
128
+ top: 52px;
129
+ left: 282px;
130
+ }
131
+ .colorpicker_hsb_s {
132
+ background-image: url(../images/colorpicker_hsb_s.png);
133
+ top: 82px;
134
+ left: 282px;
135
+ }
136
+ .colorpicker_hsb_b {
137
+ background-image: url(../images/colorpicker_hsb_b.png);
138
+ top: 112px;
139
+ left: 282px;
140
+ }
141
+ .colorpicker_submit {
142
+ position: absolute;
143
+ width: 22px;
144
+ height: 22px;
145
+ background: url(../images/colorpicker_submit.png) top;
146
+ left: 322px;
147
+ top: 142px;
148
+ overflow: hidden;
149
+ }
150
+ .colorpicker_focus {
151
+ background-position: center;
152
+ }
153
+ .colorpicker_hex.colorpicker_focus {
154
+ background-position: bottom;
155
+ }
156
+ .colorpicker_submit.colorpicker_focus {
157
+ background-position: bottom;
158
+ }
159
+ .colorpicker_slider {
160
+ background-position: bottom;
161
+ }
css/custom-contact-forms-dashboard.css CHANGED
@@ -1,35 +1,35 @@
1
- #ccf-dashboard {
2
- width:100%;
3
- margin:0 0 15px 0;
4
- }
5
- #ccf-dashboard thead tr th { text-align:left; padding-left:2px; padding-bottom:7px; }
6
- #ccf-dashboard tr { margin:0; }
7
- #ccf-dashboard td { margin:0; padding: 3px;}
8
- #ccf-dashboard tr.even { background-color:#f0f0f0; }
9
-
10
- #ccf-dashboard .ccf-view-submission {
11
- -moz-background-clip:border;
12
- -moz-background-inline-policy:continuous;
13
- -moz-background-origin:padding;
14
- background:#F2F2F2 url(../images/white-grad.png) repeat-x scroll left top;
15
- text-shadow:0 1px 0 #FFFFFF;
16
- }
17
-
18
- #ccf-dashboard .ccf-view-submission-popover {
19
- display:none;
20
- }
21
-
22
- .ccf-view-submission-popover div.top { height:30px; padding-bottom:7px; }
23
- .ccf-view-submission-popover div.top .right { float:right; width:40%; }
24
- .ccf-view-submission-popover div.top .left p { margin:2px; padding:0; }
25
- .ccf-view-submission-popover div.top .right span, .ccf-view-submission-popover div.top .left span { font-weight:bold; }
26
- .ccf-view-submission-popover div.top .left { float:left; width:60%; }
27
- .ccf-view-submission-popover ul {
28
- min-height:30px;
29
- width:95%;
30
- margin:3px auto 2px auto;
31
- }
32
- .ccf-view-submission-popover .separate { clear:both; width:100%; border-bottom:1px solid #ccc; height:1px; margin:3px; }
33
- .ccf-view-submission-popover ul li { float:left; margin-right:9px; }
34
- .ccf-view-submission-popover ul li p { display:block; }
35
- .ccf-view-submission-popover ul li div { font-weight:bold; border-bottom:1px solid #666; padding:2px; text-align:left; }
1
+ #ccf-dashboard {
2
+ width:100%;
3
+ margin:0 0 15px 0;
4
+ }
5
+ #ccf-dashboard thead tr th { text-align:left; padding-left:2px; padding-bottom:7px; }
6
+ #ccf-dashboard tr { margin:0; }
7
+ #ccf-dashboard td { margin:0; padding: 3px;}
8
+ #ccf-dashboard tr.even { background-color:#f0f0f0; }
9
+
10
+ #ccf-dashboard .ccf-view-submission {
11
+ -moz-background-clip:border;
12
+ -moz-background-inline-policy:continuous;
13
+ -moz-background-origin:padding;
14
+ background:#F2F2F2 url(../images/white-grad.png) repeat-x scroll left top;
15
+ text-shadow:0 1px 0 #FFFFFF;
16
+ }
17
+
18
+ #ccf-dashboard .ccf-view-submission-popover {
19
+ display:none;
20
+ }
21
+
22
+ .ccf-view-submission-popover div.top { height:30px; padding-bottom:7px; }
23
+ .ccf-view-submission-popover div.top .right { float:right; width:40%; }
24
+ .ccf-view-submission-popover div.top .left p { margin:2px; padding:0; }
25
+ .ccf-view-submission-popover div.top .right span, .ccf-view-submission-popover div.top .left span { font-weight:bold; }
26
+ .ccf-view-submission-popover div.top .left { float:left; width:60%; }
27
+ .ccf-view-submission-popover ul {
28
+ min-height:30px;
29
+ width:95%;
30
+ margin:3px auto 2px auto;
31
+ }
32
+ .ccf-view-submission-popover .separate { clear:both; width:100%; border-bottom:1px solid #ccc; height:1px; margin:3px; }
33
+ .ccf-view-submission-popover ul li { float:left; margin-right:9px; }
34
+ .ccf-view-submission-popover ul li p { display:block; }
35
+ .ccf-view-submission-popover ul li div { font-weight:bold; border-bottom:1px solid #666; padding:2px; text-align:left; }
css/custom-contact-forms-standards.css CHANGED
@@ -1,16 +1,16 @@
1
- .ccf-width25 { width:25px; } .ccf-width50 { width:50px; } .ccf-width75 { width:75px; } .ccf-width100 { width:100px; }
2
- .ccf-width125 { width:125px; } .ccf-width150 { width:150px; } .ccf-width175 { width:175px; } .ccf-width200 { width:200px; }
3
- .ccf-width225 { width:225px; } .ccf-width250 { width:250px; } .ccf-width275 { width:275px; } .ccf-width300 { width:300px; }
4
- .ccf-center { text-align:center; }
5
- .ccf-red { color:#F00; }
6
- .ccf-bold { font-weight:bold; }
7
- .ccf-italic { font-style:italic; }
8
- .ccf-hide { display:none; }
9
- .ccf-clear { clear:both; }
10
- .ccf-floatleft { float:left; }
11
- .ccf-floatright { float:right; }
12
- .form-extra-options-table { margin:0 auto 0 auto; }
13
- .ccf-evenrow { background-color:#f5f5f5; }
14
- .ccf-alignright { text-align:right; }
15
- .ccf-alignleft { text-align:right; }
16
  .ccf-loading-icon { margin-left: 5px; margin-right:7px; }
1
+ .ccf-width25 { width:25px; } .ccf-width50 { width:50px; } .ccf-width75 { width:75px; } .ccf-width100 { width:100px; }
2
+ .ccf-width125 { width:125px; } .ccf-width150 { width:150px; } .ccf-width175 { width:175px; } .ccf-width200 { width:200px; }
3
+ .ccf-width225 { width:225px; } .ccf-width250 { width:250px; } .ccf-width275 { width:275px; } .ccf-width300 { width:300px; }
4
+ .ccf-center { text-align:center; }
5
+ .ccf-red { color:#F00; }
6
+ .ccf-bold { font-weight:bold; }
7
+ .ccf-italic { font-style:italic; }
8
+ .ccf-hide { display:none; }
9
+ .ccf-clear { clear:both; }
10
+ .ccf-floatleft { float:left; }
11
+ .ccf-floatright { float:right; }
12
+ .form-extra-options-table { margin:0 auto 0 auto; }
13
+ .ccf-evenrow { background-color:#f5f5f5; }
14
+ .ccf-alignright { text-align:right; }
15
+ .ccf-alignleft { text-align:right; }
16
  .ccf-loading-icon { margin-left: 5px; margin-right:7px; }
css/custom-contact-forms.css CHANGED
@@ -1,125 +1,125 @@
1
- /* Custom Contact Forms CSS */
2
- form.customcontactform, form.customcontactform-sidebar {
3
- margin:8px;
4
- width:95%;
5
- max-width:600px;
6
- font-size:11px;
7
- padding:4px;
8
- }
9
- form.customcontactform-sidebar { width:100%; }
10
- form.customcontactform h4, form.customcontactform-sidebar h4 {
11
- font-size:1.3em;
12
- font-weight:bold;
13
- }
14
- form.customcontactform div label, form.customcontactform-sidebar div label { display:block; width:100%; }
15
- form.customcontactform div label.checkbox, form.customcontactform-sidebar div label.checkbox { display:inline; }
16
- form.customcontactform div label.select, form.customcontactform-sidebar div label.select { display:inline; margin-right:8px; }
17
- form.customcontactform div, form.customcontactform-sidebar div {
18
- /*border-bottom: 1px dashed #e1e1e1;*/
19
- padding:.4em 0 .3em 0;
20
- width:100%;
21
- margin:0 0 6px 0;
22
- }
23
- form.customcontactform div div, form.customcontactform-sidebar div div { border-bottom:none; margin-bottom:0; padding:0; }
24
- form.customcontactform div input, form.customcontactform div select, form.customcontactform-sidebar div input, form.customcontactform-sidebar div select {
25
- width:16em;
26
- padding:2px;
27
- margin:0;
28
- font-size:1.3em;
29
- font-family:Verdana, Arial, Helvetica, sans-serif;
30
- -moz-border-radius:4px;
31
- -khtml-border-radius:4px;
32
- -webkit-border-radius:4px;
33
- border-radius:4px;
34
- }
35
- form.customcontactform div input[type=checkbox], form.customcontactform-sidebar div input[type=checkbox] { width:30px; margin:5px 6px 0 0; }
36
- form.customcontactform div input[type=radio], form.customcontactform-sidebar div input[type=radio] { width:20px; margin:5px 6px 0 0; }
37
- form.customcontactform input, form.customcontactform-sidebar input { margin: 7px 0 0 0; }
38
- form.customcontactform div textarea, form.customcontactform-sidebar div textarea {
39
- width:16em;
40
- padding:4px;
41
- margin:0;
42
- font-size:1.3em;
43
- font-family:Verdana, Arial, Helvetica, sans-serif;
44
- -moz-border-radius:6px;
45
- -khtml-border-radius:6px;
46
- -webkit-border-radius:6px;
47
- border-radius:6px;
48
- height:5em;
49
- }
50
- form.customcontactform div select { font-size:1.3em; width:auto; margin-right:9px; }
51
- form.customcontactform-sidebar div input[type=text],
52
- form.customcontactform-sidebar div select,
53
- form.customcontactform-sidebar div textarea { width:95%; max-width:16em; margin:2px 0 4px 0; }
54
- form.customcontactform-sidebar div select { width:auto; }
55
- /* ----- popover box ---------- */
56
-
57
- .ccf-popover {
58
- position: absolute;
59
- top:25%;
60
- left:25%;
61
- width:500px;
62
- padding:10px;
63
- background-color:#fff;
64
- border:1px solid #666;
65
- display:none;
66
- z-index:1000000000;
67
- }
68
-
69
- .ccf-popover .ccf-popover-close { position:absolute; top:0px; right:5px; font-size:22px; }
70
- .ccf-tooltip {
71
- background-color:#000;
72
- border:1px solid #fff;
73
- padding:10px 15px;
74
- width:200px;
75
- display:none;
76
- color:#fff;
77
- text-align:left;
78
- font-size:12px;
79
- -moz-box-shadow:0 0 10px #000;
80
- -webkit-box-shadow:0 0 10px #000;
81
- }
82
- /* --- form success popover -------------------- */
83
- #ccf-form-success {
84
- display:none;
85
- border: 9px solid #efefef;
86
- border-spacing:0;
87
- width:480px;
88
- height:200px;
89
- padding:0px;
90
- margin:0;
91
- z-index:10000;
92
- -moz-border-radius:10px;
93
- -khtml-border-radius:10px;
94
- -webkit-border-radius:10px;
95
- border-radius:15px;
96
- position:fixed;
97
- left:30%;
98
- background-color:white;
99
- top:30%;
100
- -moz-box-shadow:0 0 14px #123;
101
- -webkit-box-shadow: 0 0 14px #123;
102
- box-shadow:0 0 14px #123;
103
- }
104
- #ccf-form-success div {
105
- background-color:#efefef;
106
- padding:9px 9px 9px 20px;
107
- margin:0 0 15px 0px;
108
- height:1.3em;
109
- }
110
- #ccf-form-success div h5 {
111
- text-align:left;
112
- float:left;
113
- margin:0;
114
- padding:0;
115
- font-size:1.5em;
116
- font-weight:bold;
117
- }
118
- #ccf-form-success p { padding:8px; margin:0; clear:both; font-size:1.1em; text-align:center; }
119
- #ccf-form-success div a.close {
120
- float:right;
121
- display:block;
122
- font-size:12px;
123
- margin:0;
124
- padding:0;
125
  }
1
+ /* Custom Contact Forms CSS */
2
+ form.customcontactform, form.customcontactform-sidebar {
3
+ margin:8px;
4
+ width:95%;
5
+ max-width:600px;
6
+ font-size:11px;
7
+ padding:4px;
8
+ }
9
+ form.customcontactform-sidebar { width:100%; }
10
+ form.customcontactform h4, form.customcontactform-sidebar h4 {
11
+ font-size:1.3em;
12
+ font-weight:bold;
13
+ }
14
+ form.customcontactform div label, form.customcontactform-sidebar div label { display:block; width:100%; }
15
+ form.customcontactform div label.checkbox, form.customcontactform-sidebar div label.checkbox { display:inline; }
16
+ form.customcontactform div label.select, form.customcontactform-sidebar div label.select { display:inline; margin-right:8px; }
17
+ form.customcontactform div, form.customcontactform-sidebar div {
18
+ /*border-bottom: 1px dashed #e1e1e1;*/
19
+ padding:.4em 0 .3em 0;
20
+ width:100%;
21
+ margin:0 0 6px 0;
22
+ }
23
+ form.customcontactform div div, form.customcontactform-sidebar div div { border-bottom:none; margin-bottom:0; padding:0; }
24
+ form.customcontactform div input, form.customcontactform div select, form.customcontactform-sidebar div input, form.customcontactform-sidebar div select {
25
+ width:16em;
26
+ padding:2px;
27
+ margin:0;
28
+ font-size:1.3em;
29
+ font-family:Verdana, Arial, Helvetica, sans-serif;
30
+ -moz-border-radius:4px;
31
+ -khtml-border-radius:4px;
32
+ -webkit-border-radius:4px;
33
+ border-radius:4px;
34
+ }
35
+ form.customcontactform div input[type=checkbox], form.customcontactform-sidebar div input[type=checkbox] { width:30px; margin:5px 6px 0 0; }
36
+ form.customcontactform div input[type=radio], form.customcontactform-sidebar div input[type=radio] { width:20px; margin:5px 6px 0 0; }
37
+ form.customcontactform input, form.customcontactform-sidebar input { margin: 7px 0 0 0; }
38
+ form.customcontactform div textarea, form.customcontactform-sidebar div textarea {
39
+ width:16em;
40
+ padding:4px;
41
+ margin:0;
42
+ font-size:1.3em;
43
+ font-family:Verdana, Arial, Helvetica, sans-serif;
44
+ -moz-border-radius:6px;
45
+ -khtml-border-radius:6px;
46
+ -webkit-border-radius:6px;
47
+ border-radius:6px;
48
+ height:5em;
49
+ }
50
+ form.customcontactform div select { font-size:1.3em; width:auto; margin-right:9px; }
51
+ form.customcontactform-sidebar div input[type=text],
52
+ form.customcontactform-sidebar div select,
53
+ form.customcontactform-sidebar div textarea { width:95%; max-width:16em; margin:2px 0 4px 0; }
54
+ form.customcontactform-sidebar div select { width:auto; }
55
+ /* ----- popover box ---------- */
56
+
57
+ .ccf-popover {
58
+ position: absolute;
59
+ top:25%;
60
+ left:25%;
61
+ width:500px;
62
+ padding:10px;
63
+ background-color:#fff;
64
+ border:1px solid #666;
65
+ display:none;
66
+ z-index:1000000000;
67
+ }
68
+
69
+ .ccf-popover .ccf-popover-close { position:absolute; top:0px; right:5px; font-size:22px; }
70
+ .ccf-tooltip {
71
+ background-color:#000;
72
+ border:1px solid #fff;
73
+ padding:10px 15px;
74
+ width:200px;
75
+ display:none;
76
+ color:#fff;
77
+ text-align:left;
78
+ font-size:12px;
79
+ -moz-box-shadow:0 0 10px #000;
80
+ -webkit-box-shadow:0 0 10px #000;
81
+ }
82
+ /* --- form success popover -------------------- */
83
+ #ccf-form-success {
84
+ display:none;
85
+ border: 9px solid #efefef;
86
+ border-spacing:0;
87
+ width:480px;
88
+ height:200px;
89
+ padding:0px;
90
+ margin:0;
91
+ z-index:10000;
92
+ -moz-border-radius:10px;
93
+ -khtml-border-radius:10px;
94
+ -webkit-border-radius:10px;
95
+ border-radius:15px;
96
+ position:fixed;
97
+ left:30%;
98
+ background-color:white;
99
+ top:30%;
100
+ -moz-box-shadow:0 0 14px #123;
101
+ -webkit-box-shadow: 0 0 14px #123;
102
+ box-shadow:0 0 14px #123;
103
+ }
104
+ #ccf-form-success div {
105
+ background-color:#efefef;
106
+ padding:9px 9px 9px 20px;
107
+ margin:0 0 15px 0px;
108
+ height:1.3em;
109
+ }
110
+ #ccf-form-success div h5 {
111
+ text-align:left;
112
+ float:left;
113
+ margin:0;
114
+ padding:0;
115
+ font-size:1.5em;
116
+ font-weight:bold;
117
+ }
118
+ #ccf-form-success p { padding:8px; margin:0; clear:both; font-size:1.1em; text-align:center; }
119
+ #ccf-form-success div a.close {
120
+ float:right;
121
+ display:block;
122
+ font-size:12px;
123
+ margin:0;
124
+ padding:0;
125
  }
css/jquery-ui.css CHANGED
@@ -1,571 +1,571 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.9
3
- *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Theming/API
9
- */
10
-
11
- /* Layout helpers
12
- ----------------------------------*/
13
- .ui-helper-hidden { display: none; }
14
- .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ui-helper-clearfix { display: inline-block; }
18
- /* required comment for clearfix to work in Opera \*/
19
- * html .ui-helper-clearfix { height:1%; }
20
- .ui-helper-clearfix { display:block; }
21
- /* end clearfix */
22
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
-
24
-
25
- /* Interaction Cues
26
- ----------------------------------*/
27
- .ui-state-disabled { cursor: default !important; }
28
-
29
-
30
- /* Icons
31
- ----------------------------------*/
32
-
33
- /* states and images */
34
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
-
36
-
37
- /* Misc visuals
38
- ----------------------------------*/
39
-
40
- /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
- /*
43
- * jQuery UI Accordion 1.8.9
44
- *
45
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
46
- * Dual licensed under the MIT or GPL Version 2 licenses.
47
- * http://jquery.org/license
48
- *
49
- * http://docs.jquery.com/UI/Accordion#theming
50
- */
51
- /* IE/Win - Fix animation bug - #4615 */
52
- .ui-accordion { width: 100%; }
53
- .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
54
- .ui-accordion .ui-accordion-li-fix { display: inline; }
55
- .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
56
- .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
57
- .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
58
- .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
59
- .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
60
- .ui-accordion .ui-accordion-content-active { display: block; }
61
- /*
62
- * jQuery UI Autocomplete 1.8.9
63
- *
64
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
65
- * Dual licensed under the MIT or GPL Version 2 licenses.
66
- * http://jquery.org/license
67
- *
68
- * http://docs.jquery.com/UI/Autocomplete#theming
69
- */
70
- .ui-autocomplete { position: absolute; cursor: default; }
71
-
72
- /* workarounds */
73
- * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
74
-
75
- /*
76
- * jQuery UI Menu 1.8.9
77
- *
78
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
79
- * Dual licensed under the MIT or GPL Version 2 licenses.
80
- * http://jquery.org/license
81
- *
82
- * http://docs.jquery.com/UI/Menu#theming
83
- */
84
- .ui-menu {
85
- list-style:none;
86
- padding: 2px;
87
- margin: 0;
88
- display:block;
89
- float: left;
90
- }
91
- .ui-menu .ui-menu {
92
- margin-top: -3px;
93
- }
94
- .ui-menu .ui-menu-item {
95
- margin:0;
96
- padding: 0;
97
- zoom: 1;
98
- float: left;
99
- clear: left;
100
- width: 100%;
101
- }
102
- .ui-menu .ui-menu-item a {
103
- text-decoration:none;
104
- display:block;
105
- padding:.2em .4em;
106
- line-height:1.5;
107
- zoom:1;
108
- }
109
- .ui-menu .ui-menu-item a.ui-state-hover,
110
- .ui-menu .ui-menu-item a.ui-state-active {
111
- font-weight: normal;
112
- margin: -1px;
113
- }
114
- /*
115
- * jQuery UI Button 1.8.9
116
- *
117
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
118
- * Dual licensed under the MIT or GPL Version 2 licenses.
119
- * http://jquery.org/license
120
- *
121
- * http://docs.jquery.com/UI/Button#theming
122
- */
123
- .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
124
- .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
125
- button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
126
- .ui-button-icons-only { width: 3.4em; }
127
- button.ui-button-icons-only { width: 3.7em; }
128
-
129
- /*button text element */
130
- .ui-button .ui-button-text { display: block; line-height: 1.4; }
131
- .ui-button-text-only .ui-button-text { padding: .4em 1em; }
132
- .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
133
- .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
134
- .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
135
- .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
136
- /* no icon support for input elements, provide padding by default */
137
- input.ui-button { padding: .4em 1em; }
138
-
139
- /*button icon element(s) */
140
- .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
141
- .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
142
- .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
143
- .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
144
- .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
145
-
146
- /*button sets*/
147
- .ui-buttonset { margin-right: 7px; }
148
- .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
149
-
150
- /* workarounds */
151
- button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
152
- /*
153
- * jQuery UI Datepicker 1.8.9
154
- *
155
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
156
- * Dual licensed under the MIT or GPL Version 2 licenses.
157
- * http://jquery.org/license
158
- *
159
- * http://docs.jquery.com/UI/Datepicker#theming
160
- */
161
- .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
162
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
163
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
164
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
165
- .ui-datepicker .ui-datepicker-prev { left:2px; }
166
- .ui-datepicker .ui-datepicker-next { right:2px; }
167
- .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
168
- .ui-datepicker .ui-datepicker-next-hover { right:1px; }
169
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
170
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
171
- .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
172
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
173
- .ui-datepicker select.ui-datepicker-month,
174
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
175
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
176
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
177
- .ui-datepicker td { border: 0; padding: 1px; }
178
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
179
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
180
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
181
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
182
-
183
- /* with multiple calendars */
184
- .ui-datepicker.ui-datepicker-multi { width:auto; }
185
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
186
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
187
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
188
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
189
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
190
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
191
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
192
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
193
- .ui-datepicker-row-break { clear:both; width:100%; }
194
-
195
- /* RTL support */
196
- .ui-datepicker-rtl { direction: rtl; }
197
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
198
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
199
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
200
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
201
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
202
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
203
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
204
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
205
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
206
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
207
-
208
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
209
- .ui-datepicker-cover {
210
- display: none; /*sorry for IE5*/
211
- display/**/: block; /*sorry for IE5*/
212
- position: absolute; /*must have*/
213
- z-index: -1; /*must have*/
214
- filter: mask(); /*must have*/
215
- top: -4px; /*must have*/
216
- left: -4px; /*must have*/
217
- width: 200px; /*must have*/
218
- height: 200px; /*must have*/
219
- }/*
220
- * jQuery UI Dialog 1.8.9
221
- *
222
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
223
- * Dual licensed under the MIT or GPL Version 2 licenses.
224
- * http://jquery.org/license
225
- *
226
- * http://docs.jquery.com/UI/Dialog#theming
227
- */
228
- .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
229
- .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
230
- .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
231
- .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
232
- .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
233
- .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
234
- .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
235
- .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
236
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
237
- .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
238
- .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
239
- .ui-draggable .ui-dialog-titlebar { cursor: move; }
240
- /*
241
- * jQuery UI Progressbar 1.8.9
242
- *
243
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
244
- * Dual licensed under the MIT or GPL Version 2 licenses.
245
- * http://jquery.org/license
246
- *
247
- * http://docs.jquery.com/UI/Progressbar#theming
248
- */
249
- .ui-progressbar { height:2em; text-align: left; }
250
- .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/*
251
- * jQuery UI Resizable 1.8.9
252
- *
253
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
254
- * Dual licensed under the MIT or GPL Version 2 licenses.
255
- * http://jquery.org/license
256
- *
257
- * http://docs.jquery.com/UI/Resizable#theming
258
- */
259
- .ui-resizable { position: relative;}
260
- .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
261
- .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
262
- .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
263
- .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
264
- .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
265
- .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
266
- .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
267
- .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
268
- .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
269
- .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
270
- * jQuery UI Selectable 1.8.9
271
- *
272
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
273
- * Dual licensed under the MIT or GPL Version 2 licenses.
274
- * http://jquery.org/license
275
- *
276
- * http://docs.jquery.com/UI/Selectable#theming
277
- */
278
- .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
279
- /*
280
- * jQuery UI Slider 1.8.9
281
- *
282
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
283
- * Dual licensed under the MIT or GPL Version 2 licenses.
284
- * http://jquery.org/license
285
- *
286
- * http://docs.jquery.com/UI/Slider#theming
287
- */
288
- .ui-slider { position: relative; text-align: left; }
289
- .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
290
- .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
291
-
292
- .ui-slider-horizontal { height: .8em; }
293
- .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
294
- .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
295
- .ui-slider-horizontal .ui-slider-range-min { left: 0; }
296
- .ui-slider-horizontal .ui-slider-range-max { right: 0; }
297
-
298
- .ui-slider-vertical { width: .8em; height: 100px; }
299
- .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
300
- .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
301
- .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
302
- .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
303
- * jQuery UI Tabs 1.8.9
304
- *
305
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
306
- * Dual licensed under the MIT or GPL Version 2 licenses.
307
- * http://jquery.org/license
308
- *
309
- * http://docs.jquery.com/UI/Tabs#theming
310
- */
311
- .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
312
- .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
313
- .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
314
- .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
315
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
316
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
317
- .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
318
- .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
319
- .ui-tabs .ui-tabs-hide { display: none !important; }
320
- /*
321
- * jQuery UI CSS Framework 1.8.9
322
- *
323
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
324
- * Dual licensed under the MIT or GPL Version 2 licenses.
325
- * http://jquery.org/license
326
- *
327
- * http://docs.jquery.com/UI/Theming/API
328
- *
329
- * To view and modify this theme, visit http://jqueryui.com/themeroller/
330
- */
331
-
332
-
333
- /* Component containers
334
- ----------------------------------*/
335
- .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
336
- .ui-widget .ui-widget { font-size: 1em; }
337
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
338
- .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(../images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
339
- .ui-widget-content a { color: #222222/*{fcContent}*/; }
340
- .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(../images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
341
- .ui-widget-header a { color: #222222/*{fcHeader}*/; }
342
-
343
- /* Interaction states
344
- ----------------------------------*/
345
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(../images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
346
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
347
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(../images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
348
- .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
349
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(../images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
350
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
351
- .ui-widget :active { outline: none; }
352
-
353
- /* Interaction Cues
354
- ----------------------------------*/
355
- .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(../images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
356
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
357
- .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(../images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
358
- .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
359
- .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
360
- .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
361
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
362
- .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
363
-
364
- /* Icons
365
- ----------------------------------*/
366
-
367
- /* states and images */
368
- .ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
369
- .ui-widget-content .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
370
- .ui-widget-header .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
371
- .ui-state-default .ui-icon { background-image: url(../images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
372
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
373
- .ui-state-active .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
374
- .ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
375
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
376
-
377
- /* positioning */
378
- .ui-icon-carat-1-n { background-position: 0 0; }
379
- .ui-icon-carat-1-ne { background-position: -16px 0; }
380
- .ui-icon-carat-1-e { background-position: -32px 0; }
381
- .ui-icon-carat-1-se { background-position: -48px 0; }
382
- .ui-icon-carat-1-s { background-position: -64px 0; }
383
- .ui-icon-carat-1-sw { background-position: -80px 0; }
384
- .ui-icon-carat-1-w { background-position: -96px 0; }
385
- .ui-icon-carat-1-nw { background-position: -112px 0; }
386
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
387
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
388
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
389
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
390
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
391
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
392
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
393
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
394
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
395
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
396
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
397
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
398
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
399
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
400
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
401
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
402
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
403
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
404
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
405
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
406
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
407
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
408
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
409
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
410
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
411
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
412
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
413
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
414
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
415
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
416
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
417
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
418
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
419
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
420
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
421
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
422
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
423
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
424
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
425
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
426
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
427
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
428
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
429
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
430
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
431
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
432
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
433
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
434
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
435
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
436
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
437
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
438
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
439
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
440
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
441
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
442
- .ui-icon-arrow-4 { background-position: 0 -80px; }
443
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
444
- .ui-icon-extlink { background-position: -32px -80px; }
445
- .ui-icon-newwin { background-position: -48px -80px; }
446
- .ui-icon-refresh { background-position: -64px -80px; }
447
- .ui-icon-shuffle { background-position: -80px -80px; }
448
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
449
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
450
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
451
- .ui-icon-folder-open { background-position: -16px -96px; }
452
- .ui-icon-document { background-position: -32px -96px; }
453
- .ui-icon-document-b { background-position: -48px -96px; }
454
- .ui-icon-note { background-position: -64px -96px; }
455
- .ui-icon-mail-closed { background-position: -80px -96px; }
456
- .ui-icon-mail-open { background-position: -96px -96px; }
457
- .ui-icon-suitcase { background-position: -112px -96px; }
458
- .ui-icon-comment { background-position: -128px -96px; }
459
- .ui-icon-person { background-position: -144px -96px; }
460
- .ui-icon-print { background-position: -160px -96px; }
461
- .ui-icon-trash { background-position: -176px -96px; }
462
- .ui-icon-locked { background-position: -192px -96px; }
463
- .ui-icon-unlocked { background-position: -208px -96px; }
464
- .ui-icon-bookmark { background-position: -224px -96px; }
465
- .ui-icon-tag { background-position: -240px -96px; }
466
- .ui-icon-home { background-position: 0 -112px; }
467
- .ui-icon-flag { background-position: -16px -112px; }
468
- .ui-icon-calendar { background-position: -32px -112px; }
469
- .ui-icon-cart { background-position: -48px -112px; }
470
- .ui-icon-pencil { background-position: -64px -112px; }
471
- .ui-icon-clock { background-position: -80px -112px; }
472
- .ui-icon-disk { background-position: -96px -112px; }
473
- .ui-icon-calculator { background-position: -112px -112px; }
474
- .ui-icon-zoomin { background-position: -128px -112px; }
475
- .ui-icon-zoomout { background-position: -144px -112px; }
476
- .ui-icon-search { background-position: -160px -112px; }
477
- .ui-icon-wrench { background-position: -176px -112px; }
478
- .ui-icon-gear { background-position: -192px -112px; }
479
- .ui-icon-heart { background-position: -208px -112px; }
480
- .ui-icon-star { background-position: -224px -112px; }
481
- .ui-icon-link { background-position: -240px -112px; }
482
- .ui-icon-cancel { background-position: 0 -128px; }
483
- .ui-icon-plus { background-position: -16px -128px; }
484
- .ui-icon-plusthick { background-position: -32px -128px; }
485
- .ui-icon-minus { background-position: -48px -128px; }
486
- .ui-icon-minusthick { background-position: -64px -128px; }
487
- .ui-icon-close { background-position: -80px -128px; }
488
- .ui-icon-closethick { background-position: -96px -128px; }
489
- .ui-icon-key { background-position: -112px -128px; }
490
- .ui-icon-lightbulb { background-position: -128px -128px; }
491
- .ui-icon-scissors { background-position: -144px -128px; }
492
- .ui-icon-clipboard { background-position: -160px -128px; }
493
- .ui-icon-copy { background-position: -176px -128px; }
494
- .ui-icon-contact { background-position: -192px -128px; }
495
- .ui-icon-image { background-position: -208px -128px; }
496
- .ui-icon-video { background-position: -224px -128px; }
497
- .ui-icon-script { background-position: -240px -128px; }
498
- .ui-icon-alert { background-position: 0 -144px; }
499
- .ui-icon-info { background-position: -16px -144px; }
500
- .ui-icon-notice { background-position: -32px -144px; }
501
- .ui-icon-help { background-position: -48px -144px; }
502
- .ui-icon-check { background-position: -64px -144px; }
503
- .ui-icon-bullet { background-position: -80px -144px; }
504
- .ui-icon-radio-off { background-position: -96px -144px; }
505
- .ui-icon-radio-on { background-position: -112px -144px; }
506
- .ui-icon-pin-w { background-position: -128px -144px; }
507
- .ui-icon-pin-s { background-position: -144px -144px; }
508
- .ui-icon-play { background-position: 0 -160px; }
509
- .ui-icon-pause { background-position: -16px -160px; }
510
- .ui-icon-seek-next { background-position: -32px -160px; }
511
- .ui-icon-seek-prev { background-position: -48px -160px; }
512
- .ui-icon-seek-end { background-position: -64px -160px; }
513
- .ui-icon-seek-start { background-position: -80px -160px; }
514
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
515
- .ui-icon-seek-first { background-position: -80px -160px; }
516
- .ui-icon-stop { background-position: -96px -160px; }
517
- .ui-icon-eject { background-position: -112px -160px; }
518
- .ui-icon-volume-off { background-position: -128px -160px; }
519
- .ui-icon-volume-on { background-position: -144px -160px; }
520
- .ui-icon-power { background-position: 0 -176px; }
521
- .ui-icon-signal-diag { background-position: -16px -176px; }
522
- .ui-icon-signal { background-position: -32px -176px; }
523
- .ui-icon-battery-0 { background-position: -48px -176px; }
524
- .ui-icon-battery-1 { background-position: -64px -176px; }
525
- .ui-icon-battery-2 { background-position: -80px -176px; }
526
- .ui-icon-battery-3 { background-position: -96px -176px; }
527
- .ui-icon-circle-plus { background-position: 0 -192px; }
528
- .ui-icon-circle-minus { background-position: -16px -192px; }
529
- .ui-icon-circle-close { background-position: -32px -192px; }
530
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
531
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
532
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
533
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
534
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
535
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
536
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
537
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
538
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
539
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
540
- .ui-icon-circle-check { background-position: -208px -192px; }
541
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
542
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
543
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
544
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
545
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
546
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
547
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
548
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
549
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
550
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
551
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
552
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
553
-
554
-
555
- /* Misc visuals
556
- ----------------------------------*/
557
-
558
- /* Corner radius */
559
- .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
560
- .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
561
- .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
562
- .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
563
- .ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
564
- .ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
565
- .ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
566
- .ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
567
- .ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; }
568
-
569
- /* Overlays */
570
- .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(../images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
571
  .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(../images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.9
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+ /*
43
+ * jQuery UI Accordion 1.8.9
44
+ *
45
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
46
+ * Dual licensed under the MIT or GPL Version 2 licenses.
47
+ * http://jquery.org/license
48
+ *
49
+ * http://docs.jquery.com/UI/Accordion#theming
50
+ */
51
+ /* IE/Win - Fix animation bug - #4615 */
52
+ .ui-accordion { width: 100%; }
53
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
54
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
55
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
56
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
57
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
58
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
59
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
60
+ .ui-accordion .ui-accordion-content-active { display: block; }
61
+ /*
62
+ * jQuery UI Autocomplete 1.8.9
63
+ *
64
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
65
+ * Dual licensed under the MIT or GPL Version 2 licenses.
66
+ * http://jquery.org/license
67
+ *
68
+ * http://docs.jquery.com/UI/Autocomplete#theming
69
+ */
70
+ .ui-autocomplete { position: absolute; cursor: default; }
71
+
72
+ /* workarounds */
73
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
74
+
75
+ /*
76
+ * jQuery UI Menu 1.8.9
77
+ *
78
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
79
+ * Dual licensed under the MIT or GPL Version 2 licenses.
80
+ * http://jquery.org/license
81
+ *
82
+ * http://docs.jquery.com/UI/Menu#theming
83
+ */
84
+ .ui-menu {
85
+ list-style:none;
86
+ padding: 2px;
87
+ margin: 0;
88
+ display:block;
89
+ float: left;
90
+ }
91
+ .ui-menu .ui-menu {
92
+ margin-top: -3px;
93
+ }
94
+ .ui-menu .ui-menu-item {
95
+ margin:0;
96
+ padding: 0;
97
+ zoom: 1;
98
+ float: left;
99
+ clear: left;
100
+ width: 100%;
101
+ }
102
+ .ui-menu .ui-menu-item a {
103
+ text-decoration:none;
104
+ display:block;
105
+ padding:.2em .4em;
106
+ line-height:1.5;
107
+ zoom:1;
108
+ }
109
+ .ui-menu .ui-menu-item a.ui-state-hover,
110
+ .ui-menu .ui-menu-item a.ui-state-active {
111
+ font-weight: normal;
112
+ margin: -1px;
113
+ }
114
+ /*
115
+ * jQuery UI Button 1.8.9
116
+ *
117
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
118
+ * Dual licensed under the MIT or GPL Version 2 licenses.
119
+ * http://jquery.org/license
120
+ *
121
+ * http://docs.jquery.com/UI/Button#theming
122
+ */
123
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
124
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
125
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
126
+ .ui-button-icons-only { width: 3.4em; }
127
+ button.ui-button-icons-only { width: 3.7em; }
128
+
129
+ /*button text element */
130
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
131
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
132
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
133
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
134
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
135
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
136
+ /* no icon support for input elements, provide padding by default */
137
+ input.ui-button { padding: .4em 1em; }
138
+
139
+ /*button icon element(s) */
140
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
141
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
142
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
143
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
144
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
145
+
146
+ /*button sets*/
147
+ .ui-buttonset { margin-right: 7px; }
148
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
149
+
150
+ /* workarounds */
151
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
152
+ /*
153
+ * jQuery UI Datepicker 1.8.9
154
+ *
155
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
156
+ * Dual licensed under the MIT or GPL Version 2 licenses.
157
+ * http://jquery.org/license
158
+ *
159
+ * http://docs.jquery.com/UI/Datepicker#theming
160
+ */
161
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
162
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
163
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
164
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
165
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
166
+ .ui-datepicker .ui-datepicker-next { right:2px; }
167
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
168
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
169
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
170
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
171
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
172
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
173
+ .ui-datepicker select.ui-datepicker-month,
174
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
175
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
176
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
177
+ .ui-datepicker td { border: 0; padding: 1px; }
178
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
179
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
180
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
181
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
182
+
183
+ /* with multiple calendars */
184
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
185
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
186
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
187
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
188
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
189
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
190
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
191
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
192
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
193
+ .ui-datepicker-row-break { clear:both; width:100%; }
194
+
195
+ /* RTL support */
196
+ .ui-datepicker-rtl { direction: rtl; }
197
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
198
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
199
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
200
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
201
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
202
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
203
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
204
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
205
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
206
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
207
+
208
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
209
+ .ui-datepicker-cover {
210
+ display: none; /*sorry for IE5*/
211
+ display/**/: block; /*sorry for IE5*/
212
+ position: absolute; /*must have*/
213
+ z-index: -1; /*must have*/
214
+ filter: mask(); /*must have*/
215
+ top: -4px; /*must have*/
216
+ left: -4px; /*must have*/
217
+ width: 200px; /*must have*/
218
+ height: 200px; /*must have*/
219
+ }/*
220
+ * jQuery UI Dialog 1.8.9
221
+ *
222
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
223
+ * Dual licensed under the MIT or GPL Version 2 licenses.
224
+ * http://jquery.org/license
225
+ *
226
+ * http://docs.jquery.com/UI/Dialog#theming
227
+ */
228
+ .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
229
+ .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
230
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
231
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
232
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
233
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
234
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
235
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
236
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
237
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
238
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
239
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
240
+ /*
241
+ * jQuery UI Progressbar 1.8.9
242
+ *
243
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
244
+ * Dual licensed under the MIT or GPL Version 2 licenses.
245
+ * http://jquery.org/license
246
+ *
247
+ * http://docs.jquery.com/UI/Progressbar#theming
248
+ */
249
+ .ui-progressbar { height:2em; text-align: left; }
250
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/*
251
+ * jQuery UI Resizable 1.8.9
252
+ *
253
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
254
+ * Dual licensed under the MIT or GPL Version 2 licenses.
255
+ * http://jquery.org/license
256
+ *
257
+ * http://docs.jquery.com/UI/Resizable#theming
258
+ */
259
+ .ui-resizable { position: relative;}
260
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
261
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
262
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
263
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
264
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
265
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
266
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
267
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
268
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
269
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
270
+ * jQuery UI Selectable 1.8.9
271
+ *
272
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
273
+ * Dual licensed under the MIT or GPL Version 2 licenses.
274
+ * http://jquery.org/license
275
+ *
276
+ * http://docs.jquery.com/UI/Selectable#theming
277
+ */
278
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
279
+ /*
280
+ * jQuery UI Slider 1.8.9
281
+ *
282
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
283
+ * Dual licensed under the MIT or GPL Version 2 licenses.
284
+ * http://jquery.org/license
285
+ *
286
+ * http://docs.jquery.com/UI/Slider#theming
287
+ */
288
+ .ui-slider { position: relative; text-align: left; }
289
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
290
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
291
+
292
+ .ui-slider-horizontal { height: .8em; }
293
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
294
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
295
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
296
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
297
+
298
+ .ui-slider-vertical { width: .8em; height: 100px; }
299
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
300
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
301
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
302
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
303
+ * jQuery UI Tabs 1.8.9
304
+ *
305
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
306
+ * Dual licensed under the MIT or GPL Version 2 licenses.
307
+ * http://jquery.org/license
308
+ *
309
+ * http://docs.jquery.com/UI/Tabs#theming
310
+ */
311
+ .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
312
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
313
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
314
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
315
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
316
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
317
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
318
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
319
+ .ui-tabs .ui-tabs-hide { display: none !important; }
320
+ /*
321
+ * jQuery UI CSS Framework 1.8.9
322
+ *
323
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
324
+ * Dual licensed under the MIT or GPL Version 2 licenses.
325
+ * http://jquery.org/license
326
+ *
327
+ * http://docs.jquery.com/UI/Theming/API
328
+ *
329
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/
330
+ */
331
+
332
+
333
+ /* Component containers
334
+ ----------------------------------*/
335
+ .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
336
+ .ui-widget .ui-widget { font-size: 1em; }
337
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
338
+ .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(../images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
339
+ .ui-widget-content a { color: #222222/*{fcContent}*/; }
340
+ .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(../images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
341
+ .ui-widget-header a { color: #222222/*{fcHeader}*/; }
342
+
343
+ /* Interaction states
344
+ ----------------------------------*/
345
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(../images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
346
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
347
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(../images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
348
+ .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
349
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(../images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
350
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
351
+ .ui-widget :active { outline: none; }
352
+
353
+ /* Interaction Cues
354
+ ----------------------------------*/
355
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(../images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
356
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
357
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(../images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
358
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
359
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
360
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
361
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
362
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
363
+
364
+ /* Icons
365
+ ----------------------------------*/
366
+
367
+ /* states and images */
368
+ .ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
369
+ .ui-widget-content .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
370
+ .ui-widget-header .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
371
+ .ui-state-default .ui-icon { background-image: url(../images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
372
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
373
+ .ui-state-active .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
374
+ .ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
375
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
376
+
377
+ /* positioning */
378
+ .ui-icon-carat-1-n { background-position: 0 0; }
379
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
380
+ .ui-icon-carat-1-e { background-position: -32px 0; }
381
+ .ui-icon-carat-1-se { background-position: -48px 0; }
382
+ .ui-icon-carat-1-s { background-position: -64px 0; }
383
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
384
+ .ui-icon-carat-1-w { background-position: -96px 0; }
385
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
386
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
387
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
388
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
389
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
390
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
391
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
392
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
393
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
394
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
395
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
396
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
397
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
398
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
399
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
400
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
401
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
402
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
403
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
404
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
405
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
406
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
407
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
408
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
409
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
410
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
411
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
412
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
413
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
414
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
415
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
416
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
417
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
418
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
419
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
420
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
421
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
422
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
423
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
424
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
425
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
426
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
427
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
428
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
429
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
430
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
431
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
432
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
433
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
434
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
435
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
436
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
437
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
438
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
439
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
440
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
441
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
442
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
443
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
444
+ .ui-icon-extlink { background-position: -32px -80px; }
445
+ .ui-icon-newwin { background-position: -48px -80px; }
446
+ .ui-icon-refresh { background-position: -64px -80px; }
447
+ .ui-icon-shuffle { background-position: -80px -80px; }
448
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
449
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
450
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
451
+ .ui-icon-folder-open { background-position: -16px -96px; }
452
+ .ui-icon-document { background-position: -32px -96px; }
453
+ .ui-icon-document-b { background-position: -48px -96px; }
454
+ .ui-icon-note { background-position: -64px -96px; }
455
+ .ui-icon-mail-closed { background-position: -80px -96px; }
456
+ .ui-icon-mail-open { background-position: -96px -96px; }
457
+ .ui-icon-suitcase { background-position: -112px -96px; }
458
+ .ui-icon-comment { background-position: -128px -96px; }
459
+ .ui-icon-person { background-position: -144px -96px; }
460
+ .ui-icon-print { background-position: -160px -96px; }
461
+ .ui-icon-trash { background-position: -176px -96px; }
462
+ .ui-icon-locked { background-position: -192px -96px; }
463
+ .ui-icon-unlocked { background-position: -208px -96px; }
464
+ .ui-icon-bookmark { background-position: -224px -96px; }
465
+ .ui-icon-tag { background-position: -240px -96px; }
466
+ .ui-icon-home { background-position: 0 -112px; }
467
+ .ui-icon-flag { background-position: -16px -112px; }
468
+ .ui-icon-calendar { background-position: -32px -112px; }
469
+ .ui-icon-cart { background-position: -48px -112px; }
470
+ .ui-icon-pencil { background-position: -64px -112px; }
471
+ .ui-icon-clock { background-position: -80px -112px; }
472
+ .ui-icon-disk { background-position: -96px -112px; }
473
+ .ui-icon-calculator { background-position: -112px -112px; }
474
+ .ui-icon-zoomin { background-position: -128px -112px; }
475
+ .ui-icon-zoomout { background-position: -144px -112px; }
476
+ .ui-icon-search { background-position: -160px -112px; }
477
+ .ui-icon-wrench { background-position: -176px -112px; }
478
+ .ui-icon-gear { background-position: -192px -112px; }
479
+ .ui-icon-heart { background-position: -208px -112px; }
480
+ .ui-icon-star { background-position: -224px -112px; }
481
+ .ui-icon-link { background-position: -240px -112px; }
482
+ .ui-icon-cancel { background-position: 0 -128px; }
483
+ .ui-icon-plus { background-position: -16px -128px; }
484
+ .ui-icon-plusthick { background-position: -32px -128px; }
485
+ .ui-icon-minus { background-position: -48px -128px; }
486
+ .ui-icon-minusthick { background-position: -64px -128px; }
487
+ .ui-icon-close { background-position: -80px -128px; }
488
+ .ui-icon-closethick { background-position: -96px -128px; }
489
+ .ui-icon-key { background-position: -112px -128px; }
490
+ .ui-icon-lightbulb { background-position: -128px -128px; }
491
+ .ui-icon-scissors { background-position: -144px -128px; }
492
+ .ui-icon-clipboard { background-position: -160px -128px; }
493
+ .ui-icon-copy { background-position: -176px -128px; }
494
+ .ui-icon-contact { background-position: -192px -128px; }
495
+ .ui-icon-image { background-position: -208px -128px; }
496
+ .ui-icon-video { background-position: -224px -128px; }
497
+ .ui-icon-script { background-position: -240px -128px; }
498
+ .ui-icon-alert { background-position: 0 -144px; }
499
+ .ui-icon-info { background-position: -16px -144px; }
500
+ .ui-icon-notice { background-position: -32px -144px; }
501
+ .ui-icon-help { background-position: -48px -144px; }
502
+ .ui-icon-check { background-position: -64px -144px; }
503
+ .ui-icon-bullet { background-position: -80px -144px; }
504
+ .ui-icon-radio-off { background-position: -96px -144px; }
505
+ .ui-icon-radio-on { background-position: -112px -144px; }
506
+ .ui-icon-pin-w { background-position: -128px -144px; }
507
+ .ui-icon-pin-s { background-position: -144px -144px; }
508
+ .ui-icon-play { background-position: 0 -160px; }
509
+ .ui-icon-pause { background-position: -16px -160px; }
510
+ .ui-icon-seek-next { background-position: -32px -160px; }
511
+ .ui-icon-seek-prev { background-position: -48px -160px; }
512
+ .ui-icon-seek-end { background-position: -64px -160px; }
513
+ .ui-icon-seek-start { background-position: -80px -160px; }
514
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
515
+ .ui-icon-seek-first { background-position: -80px -160px; }
516
+ .ui-icon-stop { background-position: -96px -160px; }
517
+ .ui-icon-eject { background-position: -112px -160px; }
518
+ .ui-icon-volume-off { background-position: -128px -160px; }
519
+ .ui-icon-volume-on { background-position: -144px -160px; }
520
+ .ui-icon-power { background-position: 0 -176px; }
521
+ .ui-icon-signal-diag { background-position: -16px -176px; }
522
+ .ui-icon-signal { background-position: -32px -176px; }
523
+ .ui-icon-battery-0 { background-position: -48px -176px; }
524
+ .ui-icon-battery-1 { background-position: -64px -176px; }
525
+ .ui-icon-battery-2 { background-position: -80px -176px; }
526
+ .ui-icon-battery-3 { background-position: -96px -176px; }
527
+ .ui-icon-circle-plus { background-position: 0 -192px; }
528
+ .ui-icon-circle-minus { background-position: -16px -192px; }
529
+ .ui-icon-circle-close { background-position: -32px -192px; }
530
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
531
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
532
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
533
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
534
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
535
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
536
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
537
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
538
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
539
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
540
+ .ui-icon-circle-check { background-position: -208px -192px; }
541
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
542
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
543
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
544
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
545
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
546
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
547
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
548
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
549
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
550
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
551
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
552
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
553
+
554
+
555
+ /* Misc visuals
556
+ ----------------------------------*/
557
+
558
+ /* Corner radius */
559
+ .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
560
+ .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
561
+ .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
562
+ .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
563
+ .ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
564
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
565
+ .ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
566
+ .ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
567
+ .ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; }
568
+
569
+ /* Overlays */
570
+ .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(../images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
571
  .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(../images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
custom-contact-forms-admin.php CHANGED
@@ -176,7 +176,7 @@ if (!class_exists('CustomContactFormsAdmin')) {
176
  }
177
 
178
  function insertAdminScripts() {
179
- $js_version = '1.0.19';
180
  $admin_options = parent::getAdminOptions();
181
  $js_lang = array(
182
  'attaching' => __('Attaching', 'custom-contact-forms'),
@@ -197,7 +197,8 @@ if (!class_exists('CustomContactFormsAdmin')) {
197
  'url' => admin_url('admin-ajax.php'),
198
  'nonce' => wp_create_nonce('ccf-ajax-nonce'));
199
  wp_enqueue_script('jquery');
200
- wp_enqueue_script('jquery-form');
 
201
  wp_enqueue_script('jquery-ui-core');
202
  wp_enqueue_script('jquery-ui-tabs');
203
  wp_enqueue_script('jquery-ui-dialog');
@@ -209,7 +210,7 @@ if (!class_exists('CustomContactFormsAdmin')) {
209
  wp_enqueue_script('ccf-admin-inc', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin-inc.js', $js_version);
210
  wp_enqueue_script('ccf-admin', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin.js', $js_version);
211
  if ($admin_options['admin_ajax'] == 1) {
212
- wp_enqueue_script('ccf-admin-ajax', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin-ajax.js', $js_version);
213
  wp_localize_script('ccf-admin-ajax', 'ccfLang', $js_lang);
214
  wp_localize_script('ccf-admin-ajax', 'ccfAjax', $js_ajax);
215
  }
176
  }
177
 
178
  function insertAdminScripts() {
179
+ $js_version = '2.0.0';
180
  $admin_options = parent::getAdminOptions();
181
  $js_lang = array(
182
  'attaching' => __('Attaching', 'custom-contact-forms'),
197
  'url' => admin_url('admin-ajax.php'),
198
  'nonce' => wp_create_nonce('ccf-ajax-nonce'));
199
  wp_enqueue_script('jquery');
200
+ wp_deregister_script('jquery-form');
201
+ wp_register_script('jquery-form', plugins_url() . '/custom-contact-forms/js/jquery.form.js', $js_version);
202
  wp_enqueue_script('jquery-ui-core');
203
  wp_enqueue_script('jquery-ui-tabs');
204
  wp_enqueue_script('jquery-ui-dialog');
210
  wp_enqueue_script('ccf-admin-inc', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin-inc.js', $js_version);
211
  wp_enqueue_script('ccf-admin', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin.js', $js_version);
212
  if ($admin_options['admin_ajax'] == 1) {
213
+ wp_enqueue_script('ccf-admin-ajax', plugins_url() . '/custom-contact-forms/js/custom-contact-forms-admin-ajax.js', array('jquery-form'), $js_version);
214
  wp_localize_script('ccf-admin-ajax', 'ccfLang', $js_lang);
215
  wp_localize_script('ccf-admin-ajax', 'ccfAjax', $js_ajax);
216
  }
custom-contact-forms.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Custom Contact Forms
4
  Plugin URI: http://taylorlovett.com/wordpress-plugins
5
  Description: Guaranteed to be 1000X more customizable and intuitive than Fast Secure Contact Forms or Contact Form 7. Customize every aspect of your forms without any knowledge of CSS: borders, padding, sizes, colors. Ton's of great features. Required fields, form submissions saved to database, captchas, tooltip popovers, unlimited fields/forms/form styles, import/export, use a custom thank you page or built-in popover with a custom success message set for each form.
6
- Version: 4.6.0.0
7
  Author: Taylor Lovett
8
  Author URI: http://www.taylorlovett.com
9
  */
3
  Plugin Name: Custom Contact Forms
4
  Plugin URI: http://taylorlovett.com/wordpress-plugins
5
  Description: Guaranteed to be 1000X more customizable and intuitive than Fast Secure Contact Forms or Contact Form 7. Customize every aspect of your forms without any knowledge of CSS: borders, padding, sizes, colors. Ton's of great features. Required fields, form submissions saved to database, captchas, tooltip popovers, unlimited fields/forms/form styles, import/export, use a custom thank you page or built-in popover with a custom success message set for each form.
6
+ Version: 4.6.0.1
7
  Author: Taylor Lovett
8
  Author URI: http://www.taylorlovett.com
9
  */
download.php CHANGED
@@ -1,22 +1,22 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- error_reporting(0);
8
- if (!empty($_GET['location']) && preg_match('/^export\/ccf[^\/^\.]+\.sql$/i', $_GET['location'])) {
9
- header('Content-Description: File Transfer');
10
- header('Content-Type: application/octet-stream');
11
- header('Content-Disposition: attachment; filename=' . basename($_GET['location']));
12
- header('Content-Transfer-Encoding: binary');
13
- header('Expires: 0');
14
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
15
- header('Pragma: public');
16
- header('Content-Length: ' . filesize($_GET['location']));
17
- ob_clean();
18
- flush();
19
- echo file_get_contents($_GET['location']);
20
- }
21
- exit();
22
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ error_reporting(0);
8
+ if (!empty($_GET['location']) && preg_match('/^export\/ccf[^\/^\.]+\.sql$/i', $_GET['location'])) {
9
+ header('Content-Description: File Transfer');
10
+ header('Content-Type: application/octet-stream');
11
+ header('Content-Disposition: attachment; filename=' . basename($_GET['location']));
12
+ header('Content-Transfer-Encoding: binary');
13
+ header('Expires: 0');
14
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
15
+ header('Pragma: public');
16
+ header('Content-Length: ' . filesize($_GET['location']));
17
+ ob_clean();
18
+ flush();
19
+ echo file_get_contents($_GET['location']);
20
+ }
21
+ exit();
22
  ?>
image.php CHANGED
@@ -1,21 +1,21 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- error_reporting(0);
8
- //header("Content-type: image/png");
9
- require_once('custom-contact-forms-utils.php');
10
- ccf_utils::load_module('images/custom-contact-forms-images.php');
11
- $image = new CustomContactFormsImages();
12
- $str = rand(10000, 99999);
13
- if (!session_id())
14
- session_start();
15
- $captcha_name = 'captcha_' . $_GET['fid'];
16
- if (!$_SESSION[$captcha_name])
17
- $_SESSION[$captcha_name] = $str;
18
- else
19
- $str = $_SESSION[$captcha_name];
20
- $image->createImageWithText($str);
21
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ error_reporting(0);
8
+ //header("Content-type: image/png");
9
+ require_once('custom-contact-forms-utils.php');
10
+ ccf_utils::load_module('images/custom-contact-forms-images.php');
11
+ $image = new CustomContactFormsImages();
12
+ $str = rand(10000, 99999);
13
+ if (!session_id())
14
+ session_start();
15
+ $captcha_name = 'captcha_' . $_GET['fid'];
16
+ if (!$_SESSION[$captcha_name])
17
+ $_SESSION[$captcha_name] = $str;
18
+ else
19
+ $str = $_SESSION[$captcha_name];
20
+ $image->createImageWithText($str);
21
  ?>
js/colorpicker.js CHANGED
@@ -1,484 +1,484 @@
1
- /**
2
- *
3
- * Color picker
4
- * Author: Stefan Petre www.eyecon.ro
5
- *
6
- * Dual licensed under the MIT and GPL licenses
7
- *
8
- */
9
- (function ($) {
10
- var ColorPicker = function () {
11
- var
12
- ids = {},
13
- inAction,
14
- charMin = 65,
15
- visible,
16
- tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
17
- defaults = {
18
- eventName: 'click',
19
- onShow: function () {},
20
- onBeforeShow: function(){},
21
- onHide: function () {},
22
- onChange: function () {},
23
- onSubmit: function () {},
24
- color: 'ff0000',
25
- livePreview: true,
26
- flat: false
27
- },
28
- fillRGBFields = function (hsb, cal) {
29
- var rgb = HSBToRGB(hsb);
30
- $(cal).data('colorpicker').fields
31
- .eq(1).val(rgb.r).end()
32
- .eq(2).val(rgb.g).end()
33
- .eq(3).val(rgb.b).end();
34
- },
35
- fillHSBFields = function (hsb, cal) {
36
- $(cal).data('colorpicker').fields
37
- .eq(4).val(hsb.h).end()
38
- .eq(5).val(hsb.s).end()
39
- .eq(6).val(hsb.b).end();
40
- },
41
- fillHexFields = function (hsb, cal) {
42
- $(cal).data('colorpicker').fields
43
- .eq(0).val(HSBToHex(hsb)).end();
44
- },
45
- setSelector = function (hsb, cal) {
46
- $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
47
- $(cal).data('colorpicker').selectorIndic.css({
48
- left: parseInt(150 * hsb.s/100, 10),
49
- top: parseInt(150 * (100-hsb.b)/100, 10)
50
- });
51
- },
52
- setHue = function (hsb, cal) {
53
- $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
54
- },
55
- setCurrentColor = function (hsb, cal) {
56
- $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
57
- },
58
- setNewColor = function (hsb, cal) {
59
- $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
60
- },
61
- keyDown = function (ev) {
62
- var pressedKey = ev.charCode || ev.keyCode || -1;
63
- if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
64
- return false;
65
- }
66
- var cal = $(this).parent().parent();
67
- if (cal.data('colorpicker').livePreview === true) {
68
- change.apply(this);
69
- }
70
- },
71
- change = function (ev) {
72
- var cal = $(this).parent().parent(), col;
73
- if (this.parentNode.className.indexOf('_hex') > 0) {
74
- cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
75
- } else if (this.parentNode.className.indexOf('_hsb') > 0) {
76
- cal.data('colorpicker').color = col = fixHSB({
77
- h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
78
- s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
79
- b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
80
- });
81
- } else {
82
- cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
83
- r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
84
- g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
85
- b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
86
- }));
87
- }
88
- if (ev) {
89
- fillRGBFields(col, cal.get(0));
90
- fillHexFields(col, cal.get(0));
91
- fillHSBFields(col, cal.get(0));
92
- }
93
- setSelector(col, cal.get(0));
94
- setHue(col, cal.get(0));
95
- setNewColor(col, cal.get(0));
96
- cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
97
- },
98
- blur = function (ev) {
99
- var cal = $(this).parent().parent();
100
- cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
101
- },
102
- focus = function () {
103
- charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
104
- $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
105
- $(this).parent().addClass('colorpicker_focus');
106
- },
107
- downIncrement = function (ev) {
108
- var field = $(this).parent().find('input').focus();
109
- var current = {
110
- el: $(this).parent().addClass('colorpicker_slider'),
111
- max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
112
- y: ev.pageY,
113
- field: field,
114
- val: parseInt(field.val(), 10),
115
- preview: $(this).parent().parent().data('colorpicker').livePreview
116
- };
117
- $(document).bind('mouseup', current, upIncrement);
118
- $(document).bind('mousemove', current, moveIncrement);
119
- },
120
- moveIncrement = function (ev) {
121
- ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
122
- if (ev.data.preview) {
123
- change.apply(ev.data.field.get(0), [true]);
124
- }
125
- return false;
126
- },
127
- upIncrement = function (ev) {
128
- change.apply(ev.data.field.get(0), [true]);
129
- ev.data.el.removeClass('colorpicker_slider').find('input').focus();
130
- $(document).unbind('mouseup', upIncrement);
131
- $(document).unbind('mousemove', moveIncrement);
132
- return false;
133
- },
134
- downHue = function (ev) {
135
- var current = {
136
- cal: $(this).parent(),
137
- y: $(this).offset().top
138
- };
139
- current.preview = current.cal.data('colorpicker').livePreview;
140
- $(document).bind('mouseup', current, upHue);
141
- $(document).bind('mousemove', current, moveHue);
142
- },
143
- moveHue = function (ev) {
144
- change.apply(
145
- ev.data.cal.data('colorpicker')
146
- .fields
147
- .eq(4)
148
- .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
149
- .get(0),
150
- [ev.data.preview]
151
- );
152
- return false;
153
- },
154
- upHue = function (ev) {
155
- fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
156
- fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
157
- $(document).unbind('mouseup', upHue);
158
- $(document).unbind('mousemove', moveHue);
159
- return false;
160
- },
161
- downSelector = function (ev) {
162
- var current = {
163
- cal: $(this).parent(),
164
- pos: $(this).offset()
165
- };
166
- current.preview = current.cal.data('colorpicker').livePreview;
167
- $(document).bind('mouseup', current, upSelector);
168
- $(document).bind('mousemove', current, moveSelector);
169
- },
170
- moveSelector = function (ev) {
171
- change.apply(
172
- ev.data.cal.data('colorpicker')
173
- .fields
174
- .eq(6)
175
- .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
176
- .end()
177
- .eq(5)
178
- .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
179
- .get(0),
180
- [ev.data.preview]
181
- );
182
- return false;
183
- },
184
- upSelector = function (ev) {
185
- fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
186
- fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
187
- $(document).unbind('mouseup', upSelector);
188
- $(document).unbind('mousemove', moveSelector);
189
- return false;
190
- },
191
- enterSubmit = function (ev) {
192
- $(this).addClass('colorpicker_focus');
193
- },
194
- leaveSubmit = function (ev) {
195
- $(this).removeClass('colorpicker_focus');
196
- },
197
- clickSubmit = function (ev) {
198
- var cal = $(this).parent();
199
- var col = cal.data('colorpicker').color;
200
- cal.data('colorpicker').origColor = col;
201
- setCurrentColor(col, cal.get(0));
202
- cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
203
- },
204
- show = function (ev) {
205
- var cal = $('#' + $(this).data('colorpickerId'));
206
- cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
207
- var pos = $(this).offset();
208
- var viewPort = getViewport();
209
- var top = pos.top + this.offsetHeight;
210
- var left = pos.left;
211
- if (top + 176 > viewPort.t + viewPort.h) {
212
- top -= this.offsetHeight + 176;
213
- }
214
- if (left + 356 > viewPort.l + viewPort.w) {
215
- left -= 356;
216
- }
217
- cal.css({left: left + 'px', top: top + 'px'});
218
- if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
219
- cal.show();
220
- }
221
- $(document).bind('mousedown', {cal: cal}, hide);
222
- return false;
223
- },
224
- hide = function (ev) {
225
- if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
226
- if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
227
- ev.data.cal.hide();
228
- }
229
- $(document).unbind('mousedown', hide);
230
- }
231
- },
232
- isChildOf = function(parentEl, el, container) {
233
- if (parentEl == el) {
234
- return true;
235
- }
236
- if (parentEl.contains) {
237
- return parentEl.contains(el);
238
- }
239
- if ( parentEl.compareDocumentPosition ) {
240
- return !!(parentEl.compareDocumentPosition(el) & 16);
241
- }
242
- var prEl = el.parentNode;
243
- while(prEl && prEl != container) {
244
- if (prEl == parentEl)
245
- return true;
246
- prEl = prEl.parentNode;
247
- }
248
- return false;
249
- },
250
- getViewport = function () {
251
- var m = document.compatMode == 'CSS1Compat';
252
- return {
253
- l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
254
- t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
255
- w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
256
- h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
257
- };
258
- },
259
- fixHSB = function (hsb) {
260
- return {
261
- h: Math.min(360, Math.max(0, hsb.h)),
262
- s: Math.min(100, Math.max(0, hsb.s)),
263
- b: Math.min(100, Math.max(0, hsb.b))
264
- };
265
- },
266
- fixRGB = function (rgb) {
267
- return {
268
- r: Math.min(255, Math.max(0, rgb.r)),
269
- g: Math.min(255, Math.max(0, rgb.g)),
270
- b: Math.min(255, Math.max(0, rgb.b))
271
- };
272
- },
273
- fixHex = function (hex) {
274
- var len = 6 - hex.length;
275
- if (len > 0) {
276
- var o = [];
277
- for (var i=0; i<len; i++) {
278
- o.push('0');
279
- }
280
- o.push(hex);
281
- hex = o.join('');
282
- }
283
- return hex;
284
- },
285
- HexToRGB = function (hex) {
286
- var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
287
- return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
288
- },
289
- HexToHSB = function (hex) {
290
- return RGBToHSB(HexToRGB(hex));
291
- },
292
- RGBToHSB = function (rgb) {
293
- var hsb = {
294
- h: 0,
295
- s: 0,
296
- b: 0
297
- };
298
- var min = Math.min(rgb.r, rgb.g, rgb.b);
299
- var max = Math.max(rgb.r, rgb.g, rgb.b);
300
- var delta = max - min;
301
- hsb.b = max;
302
- if (max != 0) {
303
-
304
- }
305
- hsb.s = max != 0 ? 255 * delta / max : 0;
306
- if (hsb.s != 0) {
307
- if (rgb.r == max) {
308
- hsb.h = (rgb.g - rgb.b) / delta;
309
- } else if (rgb.g == max) {
310
- hsb.h = 2 + (rgb.b - rgb.r) / delta;
311
- } else {
312
- hsb.h = 4 + (rgb.r - rgb.g) / delta;
313
- }
314
- } else {
315
- hsb.h = -1;
316
- }
317
- hsb.h *= 60;
318
- if (hsb.h < 0) {
319
- hsb.h += 360;
320
- }
321
- hsb.s *= 100/255;
322
- hsb.b *= 100/255;
323
- return hsb;
324
- },
325
- HSBToRGB = function (hsb) {
326
- var rgb = {};
327
- var h = Math.round(hsb.h);
328
- var s = Math.round(hsb.s*255/100);
329
- var v = Math.round(hsb.b*255/100);
330
- if(s == 0) {
331
- rgb.r = rgb.g = rgb.b = v;
332
- } else {
333
- var t1 = v;
334
- var t2 = (255-s)*v/255;
335
- var t3 = (t1-t2)*(h%60)/60;
336
- if(h==360) h = 0;
337
- if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
338
- else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
339
- else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
340
- else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
341
- else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
342
- else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
343
- else {rgb.r=0; rgb.g=0; rgb.b=0}
344
- }
345
- return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
346
- },
347
- RGBToHex = function (rgb) {
348
- var hex = [
349
- rgb.r.toString(16),
350
- rgb.g.toString(16),
351
- rgb.b.toString(16)
352
- ];
353
- $.each(hex, function (nr, val) {
354
- if (val.length == 1) {
355
- hex[nr] = '0' + val;
356
- }
357
- });
358
- return hex.join('');
359
- },
360
- HSBToHex = function (hsb) {
361
- return RGBToHex(HSBToRGB(hsb));
362
- },
363
- restoreOriginal = function () {
364
- var cal = $(this).parent();
365
- var col = cal.data('colorpicker').origColor;
366
- cal.data('colorpicker').color = col;
367
- fillRGBFields(col, cal.get(0));
368
- fillHexFields(col, cal.get(0));
369
- fillHSBFields(col, cal.get(0));
370
- setSelector(col, cal.get(0));
371
- setHue(col, cal.get(0));
372
- setNewColor(col, cal.get(0));
373
- };
374
- return {
375
- init: function (opt) {
376
- opt = $.extend({}, defaults, opt||{});
377
- if (typeof opt.color == 'string') {
378
- opt.color = HexToHSB(opt.color);
379
- } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
380
- opt.color = RGBToHSB(opt.color);
381
- } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
382
- opt.color = fixHSB(opt.color);
383
- } else {
384
- return this;
385
- }
386
- return this.each(function () {
387
- if (!$(this).data('colorpickerId')) {
388
- var options = $.extend({}, opt);
389
- options.origColor = opt.color;
390
- var id = 'collorpicker_' + parseInt(Math.random() * 1000);
391
- $(this).data('colorpickerId', id);
392
- var cal = $(tpl).attr('id', id);
393
- if (options.flat) {
394
- cal.appendTo(this).show();
395
- } else {
396
- cal.appendTo(document.body);
397
- }
398
- options.fields = cal
399
- .find('input')
400
- .bind('keyup', keyDown)
401
- .bind('change', change)
402
- .bind('blur', blur)
403
- .bind('focus', focus);
404
- cal
405
- .find('span').bind('mousedown', downIncrement).end()
406
- .find('>div.colorpicker_current_color').bind('click', restoreOriginal);
407
- options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
408
- options.selectorIndic = options.selector.find('div div');
409
- options.el = this;
410
- options.hue = cal.find('div.colorpicker_hue div');
411
- cal.find('div.colorpicker_hue').bind('mousedown', downHue);
412
- options.newColor = cal.find('div.colorpicker_new_color');
413
- options.currentColor = cal.find('div.colorpicker_current_color');
414
- cal.data('colorpicker', options);
415
- cal.find('div.colorpicker_submit')
416
- .bind('mouseenter', enterSubmit)
417
- .bind('mouseleave', leaveSubmit)
418
- .bind('click', clickSubmit);
419
- fillRGBFields(options.color, cal.get(0));
420
- fillHSBFields(options.color, cal.get(0));
421
- fillHexFields(options.color, cal.get(0));
422
- setHue(options.color, cal.get(0));
423
- setSelector(options.color, cal.get(0));
424
- setCurrentColor(options.color, cal.get(0));
425
- setNewColor(options.color, cal.get(0));
426
- if (options.flat) {
427
- cal.css({
428
- position: 'relative',
429
- display: 'block'
430
- });
431
- } else {
432
- $(this).bind(options.eventName, show);
433
- }
434
- }
435
- });
436
- },
437
- showPicker: function() {
438
- return this.each( function () {
439
- if ($(this).data('colorpickerId')) {
440
- show.apply(this);
441
- }
442
- });
443
- },
444
- hidePicker: function() {
445
- return this.each( function () {
446
- if ($(this).data('colorpickerId')) {
447
- $('#' + $(this).data('colorpickerId')).hide();
448
- }
449
- });
450
- },
451
- setColor: function(col) {
452
- if (typeof col == 'string') {
453
- col = HexToHSB(col);
454
- } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
455
- col = RGBToHSB(col);
456
- } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
457
- col = fixHSB(col);
458
- } else {
459
- return this;
460
- }
461
- return this.each(function(){
462
- if ($(this).data('colorpickerId')) {
463
- var cal = $('#' + $(this).data('colorpickerId'));
464
- cal.data('colorpicker').color = col;
465
- cal.data('colorpicker').origColor = col;
466
- fillRGBFields(col, cal.get(0));
467
- fillHSBFields(col, cal.get(0));
468
- fillHexFields(col, cal.get(0));
469
- setHue(col, cal.get(0));
470
- setSelector(col, cal.get(0));
471
- setCurrentColor(col, cal.get(0));
472
- setNewColor(col, cal.get(0));
473
- }
474
- });
475
- }
476
- };
477
- }();
478
- $.fn.extend({
479
- ColorPicker: ColorPicker.init,
480
- ColorPickerHide: ColorPicker.hidePicker,
481
- ColorPickerShow: ColorPicker.showPicker,
482
- ColorPickerSetColor: ColorPicker.setColor
483
- });
484
  })(jQuery)
1
+ /**
2
+ *
3
+ * Color picker
4
+ * Author: Stefan Petre www.eyecon.ro
5
+ *
6
+ * Dual licensed under the MIT and GPL licenses
7
+ *
8
+ */
9
+ (function ($) {
10
+ var ColorPicker = function () {
11
+ var
12
+ ids = {},
13
+ inAction,
14
+ charMin = 65,
15
+ visible,
16
+ tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
17
+ defaults = {
18
+ eventName: 'click',
19
+ onShow: function () {},
20
+ onBeforeShow: function(){},
21
+ onHide: function () {},
22
+ onChange: function () {},
23
+ onSubmit: function () {},
24
+ color: 'ff0000',
25
+ livePreview: true,
26
+ flat: false
27
+ },
28
+ fillRGBFields = function (hsb, cal) {
29
+ var rgb = HSBToRGB(hsb);
30
+ $(cal).data('colorpicker').fields
31
+ .eq(1).val(rgb.r).end()
32
+ .eq(2).val(rgb.g).end()
33
+ .eq(3).val(rgb.b).end();
34
+ },
35
+ fillHSBFields = function (hsb, cal) {
36
+ $(cal).data('colorpicker').fields
37
+ .eq(4).val(hsb.h).end()
38
+ .eq(5).val(hsb.s).end()
39
+ .eq(6).val(hsb.b).end();
40
+ },
41
+ fillHexFields = function (hsb, cal) {
42
+ $(cal).data('colorpicker').fields
43
+ .eq(0).val(HSBToHex(hsb)).end();
44
+ },
45
+ setSelector = function (hsb, cal) {
46
+ $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
47
+ $(cal).data('colorpicker').selectorIndic.css({
48
+ left: parseInt(150 * hsb.s/100, 10),
49
+ top: parseInt(150 * (100-hsb.b)/100, 10)
50
+ });
51
+ },
52
+ setHue = function (hsb, cal) {
53
+ $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
54
+ },
55
+ setCurrentColor = function (hsb, cal) {
56
+ $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
57
+ },
58
+ setNewColor = function (hsb, cal) {
59
+ $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
60
+ },
61
+ keyDown = function (ev) {
62
+ var pressedKey = ev.charCode || ev.keyCode || -1;
63
+ if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
64
+ return false;
65
+ }
66
+ var cal = $(this).parent().parent();
67
+ if (cal.data('colorpicker').livePreview === true) {
68
+ change.apply(this);
69
+ }
70
+ },
71
+ change = function (ev) {
72
+ var cal = $(this).parent().parent(), col;
73
+ if (this.parentNode.className.indexOf('_hex') > 0) {
74
+ cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
75
+ } else if (this.parentNode.className.indexOf('_hsb') > 0) {
76
+ cal.data('colorpicker').color = col = fixHSB({
77
+ h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
78
+ s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
79
+ b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
80
+ });
81
+ } else {
82
+ cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
83
+ r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
84
+ g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
85
+ b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
86
+ }));
87
+ }
88
+ if (ev) {
89
+ fillRGBFields(col, cal.get(0));
90
+ fillHexFields(col, cal.get(0));
91
+ fillHSBFields(col, cal.get(0));
92
+ }
93
+ setSelector(col, cal.get(0));
94
+ setHue(col, cal.get(0));
95
+ setNewColor(col, cal.get(0));
96
+ cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
97
+ },
98
+ blur = function (ev) {
99
+ var cal = $(this).parent().parent();
100
+ cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
101
+ },
102
+ focus = function () {
103
+ charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
104
+ $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
105
+ $(this).parent().addClass('colorpicker_focus');
106
+ },
107
+ downIncrement = function (ev) {
108
+ var field = $(this).parent().find('input').focus();
109
+ var current = {
110
+ el: $(this).parent().addClass('colorpicker_slider'),
111
+ max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
112
+ y: ev.pageY,
113
+ field: field,
114
+ val: parseInt(field.val(), 10),
115
+ preview: $(this).parent().parent().data('colorpicker').livePreview
116
+ };
117
+ $(document).bind('mouseup', current, upIncrement);
118
+ $(document).bind('mousemove', current, moveIncrement);
119
+ },
120
+ moveIncrement = function (ev) {
121
+ ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
122
+ if (ev.data.preview) {
123
+ change.apply(ev.data.field.get(0), [true]);
124
+ }
125
+ return false;
126
+ },
127
+ upIncrement = function (ev) {
128
+ change.apply(ev.data.field.get(0), [true]);
129
+ ev.data.el.removeClass('colorpicker_slider').find('input').focus();
130
+ $(document).unbind('mouseup', upIncrement);
131
+ $(document).unbind('mousemove', moveIncrement);
132
+ return false;
133
+ },
134
+ downHue = function (ev) {
135
+ var current = {
136
+ cal: $(this).parent(),
137
+ y: $(this).offset().top
138
+ };
139
+ current.preview = current.cal.data('colorpicker').livePreview;
140
+ $(document).bind('mouseup', current, upHue);
141
+ $(document).bind('mousemove', current, moveHue);
142
+ },
143
+ moveHue = function (ev) {
144
+ change.apply(
145
+ ev.data.cal.data('colorpicker')
146
+ .fields
147
+ .eq(4)
148
+ .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
149
+ .get(0),
150
+ [ev.data.preview]
151
+ );
152
+ return false;
153
+ },
154
+ upHue = function (ev) {
155
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
156
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
157
+ $(document).unbind('mouseup', upHue);
158
+ $(document).unbind('mousemove', moveHue);
159
+ return false;
160
+ },
161
+ downSelector = function (ev) {
162
+ var current = {
163
+ cal: $(this).parent(),
164
+ pos: $(this).offset()
165
+ };
166
+ current.preview = current.cal.data('colorpicker').livePreview;
167
+ $(document).bind('mouseup', current, upSelector);
168
+ $(document).bind('mousemove', current, moveSelector);
169
+ },
170
+ moveSelector = function (ev) {
171
+ change.apply(
172
+ ev.data.cal.data('colorpicker')
173
+ .fields
174
+ .eq(6)
175
+ .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
176
+ .end()
177
+ .eq(5)
178
+ .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
179
+ .get(0),
180
+ [ev.data.preview]
181
+ );
182
+ return false;
183
+ },
184
+ upSelector = function (ev) {
185
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
186
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
187
+ $(document).unbind('mouseup', upSelector);
188
+ $(document).unbind('mousemove', moveSelector);
189
+ return false;
190
+ },
191
+ enterSubmit = function (ev) {
192
+ $(this).addClass('colorpicker_focus');
193
+ },
194
+ leaveSubmit = function (ev) {
195
+ $(this).removeClass('colorpicker_focus');
196
+ },
197
+ clickSubmit = function (ev) {
198
+ var cal = $(this).parent();
199
+ var col = cal.data('colorpicker').color;
200
+ cal.data('colorpicker').origColor = col;
201
+ setCurrentColor(col, cal.get(0));
202
+ cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
203
+ },
204
+ show = function (ev) {
205
+ var cal = $('#' + $(this).data('colorpickerId'));
206
+ cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
207
+ var pos = $(this).offset();
208
+ var viewPort = getViewport();
209
+ var top = pos.top + this.offsetHeight;
210
+ var left = pos.left;
211
+ if (top + 176 > viewPort.t + viewPort.h) {
212
+ top -= this.offsetHeight + 176;
213
+ }
214
+ if (left + 356 > viewPort.l + viewPort.w) {
215
+ left -= 356;
216
+ }
217
+ cal.css({left: left + 'px', top: top + 'px'});
218
+ if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
219
+ cal.show();
220
+ }
221
+ $(document).bind('mousedown', {cal: cal}, hide);
222
+ return false;
223
+ },
224
+ hide = function (ev) {
225
+ if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
226
+ if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
227
+ ev.data.cal.hide();
228
+ }
229
+ $(document).unbind('mousedown', hide);
230
+ }
231
+ },
232
+ isChildOf = function(parentEl, el, container) {
233
+ if (parentEl == el) {
234
+ return true;
235
+ }
236
+ if (parentEl.contains) {
237
+ return parentEl.contains(el);
238
+ }
239
+ if ( parentEl.compareDocumentPosition ) {
240
+ return !!(parentEl.compareDocumentPosition(el) & 16);
241
+ }
242
+ var prEl = el.parentNode;
243
+ while(prEl && prEl != container) {
244
+ if (prEl == parentEl)
245
+ return true;
246
+ prEl = prEl.parentNode;
247
+ }
248
+ return false;
249
+ },
250
+ getViewport = function () {
251
+ var m = document.compatMode == 'CSS1Compat';
252
+ return {
253
+ l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
254
+ t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
255
+ w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
256
+ h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
257
+ };
258
+ },
259
+ fixHSB = function (hsb) {
260
+ return {
261
+ h: Math.min(360, Math.max(0, hsb.h)),
262
+ s: Math.min(100, Math.max(0, hsb.s)),
263
+ b: Math.min(100, Math.max(0, hsb.b))
264
+ };
265
+ },
266
+ fixRGB = function (rgb) {
267
+ return {
268
+ r: Math.min(255, Math.max(0, rgb.r)),
269
+ g: Math.min(255, Math.max(0, rgb.g)),
270
+ b: Math.min(255, Math.max(0, rgb.b))
271
+ };
272
+ },
273
+ fixHex = function (hex) {
274
+ var len = 6 - hex.length;
275
+ if (len > 0) {
276
+ var o = [];
277
+ for (var i=0; i<len; i++) {
278
+ o.push('0');
279
+ }
280
+ o.push(hex);
281
+ hex = o.join('');
282
+ }
283
+ return hex;
284
+ },
285
+ HexToRGB = function (hex) {
286
+ var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
287
+ return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
288
+ },
289
+ HexToHSB = function (hex) {
290
+ return RGBToHSB(HexToRGB(hex));
291
+ },
292
+ RGBToHSB = function (rgb) {
293
+ var hsb = {
294
+ h: 0,
295
+ s: 0,
296
+ b: 0
297
+ };
298
+ var min = Math.min(rgb.r, rgb.g, rgb.b);
299
+ var max = Math.max(rgb.r, rgb.g, rgb.b);
300
+ var delta = max - min;
301
+ hsb.b = max;
302
+ if (max != 0) {
303
+
304
+ }
305
+ hsb.s = max != 0 ? 255 * delta / max : 0;
306
+ if (hsb.s != 0) {
307
+ if (rgb.r == max) {
308
+ hsb.h = (rgb.g - rgb.b) / delta;
309
+ } else if (rgb.g == max) {
310
+ hsb.h = 2 + (rgb.b - rgb.r) / delta;
311
+ } else {
312
+ hsb.h = 4 + (rgb.r - rgb.g) / delta;
313
+ }
314
+ } else {
315
+ hsb.h = -1;
316
+ }
317
+ hsb.h *= 60;
318
+ if (hsb.h < 0) {
319
+ hsb.h += 360;
320
+ }
321
+ hsb.s *= 100/255;
322
+ hsb.b *= 100/255;
323
+ return hsb;
324
+ },
325
+ HSBToRGB = function (hsb) {
326
+ var rgb = {};
327
+ var h = Math.round(hsb.h);
328
+ var s = Math.round(hsb.s*255/100);
329
+ var v = Math.round(hsb.b*255/100);
330
+ if(s == 0) {
331
+ rgb.r = rgb.g = rgb.b = v;
332
+ } else {
333
+ var t1 = v;
334
+ var t2 = (255-s)*v/255;
335
+ var t3 = (t1-t2)*(h%60)/60;
336
+ if(h==360) h = 0;
337
+ if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
338
+ else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
339
+ else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
340
+ else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
341
+ else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
342
+ else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
343
+ else {rgb.r=0; rgb.g=0; rgb.b=0}
344
+ }
345
+ return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
346
+ },
347
+ RGBToHex = function (rgb) {
348
+ var hex = [
349
+ rgb.r.toString(16),
350
+ rgb.g.toString(16),
351
+ rgb.b.toString(16)
352
+ ];
353
+ $.each(hex, function (nr, val) {
354
+ if (val.length == 1) {
355
+ hex[nr] = '0' + val;
356
+ }
357
+ });
358
+ return hex.join('');
359
+ },
360
+ HSBToHex = function (hsb) {
361
+ return RGBToHex(HSBToRGB(hsb));
362
+ },
363
+ restoreOriginal = function () {
364
+ var cal = $(this).parent();
365
+ var col = cal.data('colorpicker').origColor;
366
+ cal.data('colorpicker').color = col;
367
+ fillRGBFields(col, cal.get(0));
368
+ fillHexFields(col, cal.get(0));
369
+ fillHSBFields(col, cal.get(0));
370
+ setSelector(col, cal.get(0));
371
+ setHue(col, cal.get(0));
372
+ setNewColor(col, cal.get(0));
373
+ };
374
+ return {
375
+ init: function (opt) {
376
+ opt = $.extend({}, defaults, opt||{});
377
+ if (typeof opt.color == 'string') {
378
+ opt.color = HexToHSB(opt.color);
379
+ } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
380
+ opt.color = RGBToHSB(opt.color);
381
+ } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
382
+ opt.color = fixHSB(opt.color);
383
+ } else {
384
+ return this;
385
+ }
386
+ return this.each(function () {
387
+ if (!$(this).data('colorpickerId')) {
388
+ var options = $.extend({}, opt);
389
+ options.origColor = opt.color;
390
+ var id = 'collorpicker_' + parseInt(Math.random() * 1000);
391
+ $(this).data('colorpickerId', id);
392
+ var cal = $(tpl).attr('id', id);
393
+ if (options.flat) {
394
+ cal.appendTo(this).show();
395
+ } else {
396
+ cal.appendTo(document.body);
397
+ }
398
+ options.fields = cal
399
+ .find('input')
400
+ .bind('keyup', keyDown)
401
+ .bind('change', change)
402
+ .bind('blur', blur)
403
+ .bind('focus', focus);
404
+ cal
405
+ .find('span').bind('mousedown', downIncrement).end()
406
+ .find('>div.colorpicker_current_color').bind('click', restoreOriginal);
407
+ options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
408
+ options.selectorIndic = options.selector.find('div div');
409
+ options.el = this;
410
+ options.hue = cal.find('div.colorpicker_hue div');
411
+ cal.find('div.colorpicker_hue').bind('mousedown', downHue);
412
+ options.newColor = cal.find('div.colorpicker_new_color');
413
+ options.currentColor = cal.find('div.colorpicker_current_color');
414
+ cal.data('colorpicker', options);
415
+ cal.find('div.colorpicker_submit')
416
+ .bind('mouseenter', enterSubmit)
417
+ .bind('mouseleave', leaveSubmit)
418
+ .bind('click', clickSubmit);
419
+ fillRGBFields(options.color, cal.get(0));
420
+ fillHSBFields(options.color, cal.get(0));
421
+ fillHexFields(options.color, cal.get(0));
422
+ setHue(options.color, cal.get(0));
423
+ setSelector(options.color, cal.get(0));
424
+ setCurrentColor(options.color, cal.get(0));
425
+ setNewColor(options.color, cal.get(0));
426
+ if (options.flat) {
427
+ cal.css({
428
+ position: 'relative',
429
+ display: 'block'
430
+ });
431
+ } else {
432
+ $(this).bind(options.eventName, show);
433
+ }
434
+ }
435
+ });
436
+ },
437
+ showPicker: function() {
438
+ return this.each( function () {
439
+ if ($(this).data('colorpickerId')) {
440
+ show.apply(this);
441
+ }
442
+ });
443
+ },
444
+ hidePicker: function() {
445
+ return this.each( function () {
446
+ if ($(this).data('colorpickerId')) {
447
+ $('#' + $(this).data('colorpickerId')).hide();
448
+ }
449
+ });
450
+ },
451
+ setColor: function(col) {
452
+ if (typeof col == 'string') {
453
+ col = HexToHSB(col);
454
+ } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
455
+ col = RGBToHSB(col);
456
+ } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
457
+ col = fixHSB(col);
458
+ } else {
459
+ return this;
460
+ }
461
+ return this.each(function(){
462
+ if ($(this).data('colorpickerId')) {
463
+ var cal = $('#' + $(this).data('colorpickerId'));
464
+ cal.data('colorpicker').color = col;
465
+ cal.data('colorpicker').origColor = col;
466
+ fillRGBFields(col, cal.get(0));
467
+ fillHSBFields(col, cal.get(0));
468
+ fillHexFields(col, cal.get(0));
469
+ setHue(col, cal.get(0));
470
+ setSelector(col, cal.get(0));
471
+ setCurrentColor(col, cal.get(0));
472
+ setNewColor(col, cal.get(0));
473
+ }
474
+ });
475
+ }
476
+ };
477
+ }();
478
+ $.fn.extend({
479
+ ColorPicker: ColorPicker.init,
480
+ ColorPickerHide: ColorPicker.hidePicker,
481
+ ColorPickerShow: ColorPicker.showPicker,
482
+ ColorPickerSetColor: ColorPicker.setColor
483
+ });
484
  })(jQuery)
js/custom-contact-forms-admin-ajax.js CHANGED
@@ -1,254 +1,255 @@
1
-
2
- function print_r(x, max, sep, l) {
3
-
4
- l = l || 0;
5
- max = max || 10;
6
- sep = sep || ' ';
7
-
8
- if (l > max) {
9
- return "[WARNING: Too much recursion]\n";
10
- }
11
-
12
- var
13
- i,
14
- r = '',
15
- t = typeof x,
16
- tab = '';
17
-
18
- if (x === null) {
19
- r += "(null)\n";
20
- } else if (t == 'object') {
21
-
22
- l++;
23
-
24
- for (i = 0; i < l; i++) {
25
- tab += sep;
26
- }
27
-
28
- if (x && x.length) {
29
- t = 'array';
30
- }
31
-
32
- r += '(' + t + ") :\n";
33
-
34
- for (i in x) {
35
- try {
36
- r += tab + '<br />[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
37
- } catch(e) {
38
- return "[ERROR: " + e + "]\n";
39
- }
40
- }
41
-
42
- } else {
43
-
44
- if (t == 'string') {
45
- if (x == '') {
46
- x = '(empty)';
47
- }
48
- }
49
-
50
- r += '(' + t + ') ' + x + "\n";
51
-
52
- }
53
-
54
- return r;
55
-
56
- };
57
-
58
- function getFormFieldValue(field_name, formData) {
59
- for(var i = 0; i < formData.length; i++) {
60
- if (formData[i].name == field_name) {
61
- return formData[i].value;
62
- }
63
- }
64
- return false;
65
- };
66
-
67
- /*function pageselectCallback(page_index, jq){
68
- rows = $j('#form-submissions-hidden > tr')
69
- items_per_page = 5;
70
- max_elem = Math.min((page_index+1) * items_per_page, rows.length);
71
- var new_content = '';
72
- for(var i=page_index*items_per_page;i<max_elem;i++) {
73
- if (rows.eq(i) != null) {
74
- new_content += '<tr class="' + rows.eq(i).attr('class') + '">' + rows.eq(i).html() + '</tr>';
75
- i += 1;
76
- new_content += '<tr class="' + rows.eq(i).attr('class') + '">' + rows.eq(i).html() + '</tr>';
77
- } else i += 1;
78
- }
79
- if (new_content != '' && new_content != null)
80
- $j('#form-submissions-table tbody').empty().append(new_content);
81
- $j('.submission-content').hide();
82
- $j('.submission-content-expand-button').click(function() {
83
- $j(this)
84
- .parent()
85
- .parent()
86
- .parent()
87
- .next()
88
- .toggle();
89
- });
90
- return false;
91
- }
92
-
93
- function initPagination() {
94
- // Create content inside pagination element
95
- var num_entries = $j('#form-submissions-hidden > tr').length;
96
- $j("#form-submissions-pagination").pagination(num_entries, {
97
- callback: pageselectCallback,
98
- items_per_page: 5 // Show only one item per page
99
- });
100
- }*/
101
-
102
- $j.preloadImages(ccfAjax.plugin_dir + "/images/wpspin_light.gif"); // preload loading image
103
- $j(document).ready(function() {
104
-
105
- //initPagination();
106
- $j('.ccf-edit-ajax').attr("action", ccfAjax.url);
107
-
108
- var loading_img = null;
109
- var form_dom = null;
110
- $j('.ccf-edit-ajax').ajaxForm({
111
- data: { action: 'ccf-ajax', nonce: ccfLang.nonce },
112
- beforeSubmit: function(formData, jqForm, options) {
113
- var action_type = getFormFieldValue('object_bulk_action', formData);
114
- //var bulk_apply_button = getFormFieldValue('object_bulk_action', formData);
115
- var attach_button = getFormFieldValue('buttons', formData);
116
- var detach_button = getFormFieldValue('object_bulk_action', formData);
117
- if (action_type == 0) return false;
118
- bulk_button = jqForm.find("input[name=object_bulk_apply]");
119
- form_dom = jqForm;
120
- loading_img = jqForm.find(".loading-img").fadeIn();
121
- return true;
122
- },
123
- success : function(responseText) {
124
- if (responseText.objects) {
125
- for (var i = 0; i < responseText.objects.length; i++) {
126
- var this_object = responseText.objects[i];
127
- if (responseText.object_bulk_action == 'delete') {
128
-
129
- form_dom.find(".row-" + this_object.object_type + "-" + this_object.object_id).hide().remove();
130
- if (this_object.object_type == "style") {
131
- /* delete occurences of this option within style dropdowns. */
132
- var style_inputs = $j(".form_style_input");
133
- style_inputs.each(function() {
134
- this_option = $j(this).find("option[value=" + this_object.object_id + "]");
135
- if (this_option.attr("selected") == "selected")
136
- $j(this).find("option[value=0]").attr("selected", "selected");
137
- this_option.remove();
138
- });
139
- } else if (this_object.object_type == "field" || this_object.object_type == "field_option") {
140
- if (this_object.object_type == "field")
141
- var fields_options_input = $j("select.detach-field");
142
- else
143
- var fields_options_input = $j("select.detach-field-option");
144
- fields_options_input.each(function () {
145
- var this_obj = $j(this);
146
- var this_option = this_obj.find("option[value=" + this_object.object_id + "]");
147
- if (this_option.length >=1 && this_obj.find("option").length <= 1) {
148
- $j("<option>")
149
- .attr("value", "-1")
150
- .text(ccfLang.nothing_attached)
151
- .prependTo(this_obj);
152
- }
153
- this_option.remove();
154
- });
155
- if (this_object.object_type == "field")
156
- fields_options_input = $j("select.attach-field option[value=" + this_object.object_id + "]");
157
- else
158
- fields_options_input = $j("select.attach-field-option option[value=" + this_object.object_id + "]");
159
-
160
- fields_options_input.each(function () {
161
- $j(this).remove();
162
- });
163
- }
164
- } else if (responseText.object_bulk_action == 'edit') {
165
- /* TODO: update field and field option slug dropdowns */
166
- if (responseText.objects[i].object_type == "field" || responseText.objects[i].object_type == "field_option") {
167
-
168
- }
169
- }
170
- }
171
- }
172
- },
173
- error: function(XMLHttpRequest, textStatus, errorThrown) {
174
- debug = fx.initDebugWindow();
175
- $j("<div></div>").html(textStatus + " " + errorThrown).appendTo(debug);
176
- //alert(textStatus + " " + errorThrown);
177
- },
178
- complete: function() {
179
- //j("test").html(data).appendTo(debug);
180
- loading_img.fadeOut();
181
- }
182
- });
183
-
184
- //form_submissions = $j("#form-submissions-table tbody").clone();
185
- //$j("#form-submissions-hidden").html(form_submissions.html());
186
-
187
- $j("span.attach-lang").remove();
188
- $j(".attach-check").each(function(){
189
- var name = $j(this).attr('name');
190
- var html = '<input class="attach-button" type="button" name="' + name + '" value="' + ccfLang.attach_button + '" />';
191
- $j(this).after(html).remove(); // add new, then remove original input
192
- });
193
- $j(".attach-button").live("click", function() {
194
- var object_type = $j(this).parents().find(".object-type").attr("value");
195
- var attach_object_field = $j(this).parents().find(".attach-object:first");
196
- var object_id = attach_object_field.attr("class").split(' ')[0].replace(/[^0-9]*([0-9]*)/, "$1");
197
- var detach_object_field = $j(this).parents().find(".detach-object:first");
198
- var attach_object_id = attach_object_field.attr("value");
199
- var attach_object_slug = attach_object_field.find("option[value=" + attach_object_id + "]:eq(0)").first().text();
200
- pattern = new RegExp('<option value="' + attach_object_id + '">', "i");
201
- str = detach_object_field.html();
202
- if (!str.match(pattern)) {
203
- var save_box = fx.initSaveBox(ccfLang.attaching);
204
- $j.ajax({
205
- type: "POST",
206
- url: ccfAjax.url,
207
- data: "nonce=" + ccfLang.nonce + "&action=ccf-ajax&object_attach=1&attach_object_id=" + attach_object_id + "&object_id=" + object_id + "&object_type=" + object_type,
208
- success: function(data) {
209
- new_option = $j("<option></option>").attr("value", attach_object_id).text(attach_object_slug);
210
- detach_object_field.append(new_option);
211
- detach_object_field.find('option[value=-1]').remove();
212
-
213
- },
214
- error: function() { alert(ccfLang.error); },
215
- complete: function() { $j(".save-box").fadeOut().remove(); }
216
- });
217
- }
218
- });
219
-
220
- $j("span.detach-lang").remove();
221
- $j(".detach-check").each(function(){
222
- var name = $j(this).attr('name');
223
- var html = '<input class="detach-button" type="button" name="' + name + '" value="' + ccfLang.detach_button + '" />';
224
- $j(this).after(html).remove(); // add new, then remove original input
225
- });
226
- $j(".detach-button").live("click", function() {
227
- var object_type = $j(this).parents().find(".object-type").attr("value");
228
- var detach_object_field = $j(this).parents().find(".detach-object:first");
229
- var object_id = detach_object_field.attr("class").split(' ')[0].replace(/[^0-9]*([0-9]*)/, "$1");
230
- var detach_object_id = detach_object_field.attr("value");
231
- if (detach_object_id != "-1") {
232
- var detach_object_slug = detach_object_field.find("option[value=" + detach_object_id + "]:eq(0)").first().text();
233
- var save_box = fx.initSaveBox(ccfLang.detaching);
234
- $j.ajax({
235
- type: "POST",
236
- url: ccfAjax.url,
237
- data: "nonce=" + ccfLang.nonce + "&action=ccf-ajax&object_detach=1&detach_object_id=" + detach_object_id + "&object_id=" + object_id + "&object_type=" + object_type,
238
- success: function(data) {
239
- pattern = new RegExp('<option value="' + detach_object_id + '">.*?<\/option>', "i");
240
- new_options = detach_object_field.html().replace(pattern, '');
241
- if (!new_options.match(/<\/option>/)) new_options = '<option value="-1">Nothing Attached!</option>';
242
- detach_object_field.html(new_options);
243
- },
244
- error: function() { alert(ccfLang.error); },
245
- /*beforeSubmit: function() {
246
- debug = fx.initDebugWindow();
247
- $j("<div></div>").html(textStatus + " " + errorThrown).appendTo(debug);
248
- },*/
249
- complete: function() { $j(".save-box").fadeOut().remove(); }
250
- });
251
- }
252
- });
253
-
 
254
  });
1
+
2
+ function print_r(x, max, sep, l) {
3
+
4
+ l = l || 0;
5
+ max = max || 10;
6
+ sep = sep || ' ';
7
+
8
+ if (l > max) {
9
+ return "[WARNING: Too much recursion]\n";
10
+ }
11
+
12
+ var
13
+ i,
14
+ r = '',
15
+ t = typeof x,
16
+ tab = '';
17
+
18
+ if (x === null) {
19
+ r += "(null)\n";
20
+ } else if (t == 'object') {
21
+
22
+ l++;
23
+
24
+ for (i = 0; i < l; i++) {
25
+ tab += sep;
26
+ }
27
+
28
+ if (x && x.length) {
29
+ t = 'array';
30
+ }
31
+
32
+ r += '(' + t + ") :\n";
33
+
34
+ for (i in x) {
35
+ try {
36
+ r += tab + '<br />[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
37
+ } catch(e) {
38
+ return "[ERROR: " + e + "]\n";
39
+ }
40
+ }
41
+
42
+ } else {
43
+
44
+ if (t == 'string') {
45
+ if (x == '') {
46
+ x = '(empty)';
47
+ }
48
+ }
49
+
50
+ r += '(' + t + ') ' + x + "\n";
51
+
52
+ }
53
+
54
+ return r;
55
+
56
+ };
57
+
58
+ function getFormFieldValue(field_name, formData) {
59
+ for(var i = 0; i < formData.length; i++) {
60
+ if (formData[i].name == field_name) {
61
+ return formData[i].value;
62
+ }
63
+ }
64
+ return false;
65
+ };
66
+
67
+ /*function pageselectCallback(page_index, jq){
68
+ rows = $j('#form-submissions-hidden > tr')
69
+ items_per_page = 5;
70
+ max_elem = Math.min((page_index+1) * items_per_page, rows.length);
71
+ var new_content = '';
72
+ for(var i=page_index*items_per_page;i<max_elem;i++) {
73
+ if (rows.eq(i) != null) {
74
+ new_content += '<tr class="' + rows.eq(i).attr('class') + '">' + rows.eq(i).html() + '</tr>';
75
+ i += 1;
76
+ new_content += '<tr class="' + rows.eq(i).attr('class') + '">' + rows.eq(i).html() + '</tr>';
77
+ } else i += 1;
78
+ }
79
+ if (new_content != '' && new_content != null)
80
+ $j('#form-submissions-table tbody').empty().append(new_content);
81
+ $j('.submission-content').hide();
82
+ $j('.submission-content-expand-button').click(function() {
83
+ $j(this)
84
+ .parent()
85
+ .parent()
86
+ .parent()
87
+ .next()
88
+ .toggle();
89
+ });
90
+ return false;
91
+ }
92
+
93
+ function initPagination() {
94
+ // Create content inside pagination element
95
+ var num_entries = $j('#form-submissions-hidden > tr').length;
96
+ $j("#form-submissions-pagination").pagination(num_entries, {
97
+ callback: pageselectCallback,
98
+ items_per_page: 5 // Show only one item per page
99
+ });
100
+ }*/
101
+
102
+ $j.preloadImages(ccfAjax.plugin_dir + "/images/wpspin_light.gif"); // preload loading image
103
+ $j(document).ready(function() {
104
+
105
+ //initPagination();
106
+ $j('.ccf-edit-ajax').attr("action", ccfAjax.url);
107
+
108
+ var loading_img = null;
109
+ var form_dom = null;
110
+ $j('.ccf-edit-ajax').ajaxForm({
111
+ data: { action: 'ccf-ajax', nonce: ccfLang.nonce },
112
+ beforeSubmit: function(formData, jqForm, options) {
113
+ var action_type = getFormFieldValue('object_bulk_action', formData);
114
+ //var bulk_apply_button = getFormFieldValue('object_bulk_action', formData);
115
+ var attach_button = getFormFieldValue('buttons', formData);
116
+ var detach_button = getFormFieldValue('object_bulk_action', formData);
117
+ if (action_type == 0) return false;
118
+ bulk_button = jqForm.find("input[name=object_bulk_apply]");
119
+ form_dom = jqForm;
120
+ loading_img = jqForm.find(".loading-img").fadeIn();
121
+ return true;
122
+ },
123
+ success : function(responseText) {
124
+ if (responseText.objects) {
125
+ for (var i = 0; i < responseText.objects.length; i++) {
126
+ var this_object = responseText.objects[i];
127
+ if (responseText.object_bulk_action == 'delete') {
128
+
129
+ form_dom.find(".row-" + this_object.object_type + "-" + this_object.object_id).hide().remove();
130
+ if (this_object.object_type == "style") {
131
+ /* delete occurences of this option within style dropdowns. */
132
+ var style_inputs = $j(".form_style_input");
133
+ style_inputs.each(function() {
134
+ this_option = $j(this).find("option[value=" + this_object.object_id + "]");
135
+ if (this_option.attr("selected") == "selected")
136
+ $j(this).find("option[value=0]").attr("selected", "selected");
137
+ this_option.remove();
138
+ });
139
+ } else if (this_object.object_type == "field" || this_object.object_type == "field_option") {
140
+ if (this_object.object_type == "field")
141
+ var fields_options_input = $j("select.detach-field");
142
+ else
143
+ var fields_options_input = $j("select.detach-field-option");
144
+ fields_options_input.each(function () {
145
+ var this_obj = $j(this);
146
+ var this_option = this_obj.find("option[value=" + this_object.object_id + "]");
147
+ if (this_option.length >=1 && this_obj.find("option").length <= 1) {
148
+ $j("<option>")
149
+ .attr("value", "-1")
150
+ .text(ccfLang.nothing_attached)
151
+ .prependTo(this_obj);
152
+ }
153
+ this_option.remove();
154
+ });
155
+ if (this_object.object_type == "field")
156
+ fields_options_input = $j("select.attach-field option[value=" + this_object.object_id + "]");
157
+ else
158
+ fields_options_input = $j("select.attach-field-option option[value=" + this_object.object_id + "]");
159
+
160
+ fields_options_input.each(function () {
161
+ $j(this).remove();
162
+ });
163
+ }
164
+ } else if (responseText.object_bulk_action == 'edit') {
165
+ /* TODO: update field and field option slug dropdowns */
166
+ if (responseText.objects[i].object_type == "field" || responseText.objects[i].object_type == "field_option") {
167
+
168
+ }
169
+ }
170
+ }
171
+ }
172
+ },
173
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
174
+ debug = fx.initDebugWindow();
175
+ $j("<div></div>").html(textStatus + " " + errorThrown).appendTo(debug);
176
+ //alert(textStatus + " " + errorThrown);
177
+ },
178
+ complete: function() {
179
+ //j("test").html(data).appendTo(debug);
180
+ loading_img.fadeOut();
181
+ }
182
+ });
183
+
184
+ //form_submissions = $j("#form-submissions-table tbody").clone();
185
+ //$j("#form-submissions-hidden").html(form_submissions.html());
186
+
187
+ $j("span.attach-lang").remove();
188
+ $j(".attach-check").each(function(){
189
+ var name = $j(this).attr('name');
190
+ var html = '<input class="attach-button" type="button" name="' + name + '" value="' + ccfLang.attach_button + '" />';
191
+ $j(this).after(html).remove(); // add new, then remove original input
192
+ });
193
+ $j(".attach-button").live("click", function() {
194
+ var object_type = $j(this).parents().find(".object-type").attr("value");
195
+ var attach_object_field = $j(this).parents().find(".attach-object:first");
196
+ var object_id = attach_object_field.attr("class").split(' ')[0].replace(/[^0-9]*([0-9]*)/, "$1");
197
+ var detach_object_field = $j(this).parents().find(".detach-object:first");
198
+ var attach_object_id = attach_object_field.attr("value");
199
+ var attach_object_slug = attach_object_field.find("option[value=" + attach_object_id + "]:eq(0)").first().text();
200
+ pattern = new RegExp('<option value="' + attach_object_id + '">', "i");
201
+ str = detach_object_field.html();
202
+ if (!str.match(pattern)) {
203
+ var save_box = fx.initSaveBox(ccfLang.attaching);
204
+ $j.ajax({
205
+ type: "POST",
206
+ url: ccfAjax.url,
207
+ data: "nonce=" + ccfLang.nonce + "&action=ccf-ajax&object_attach=1&attach_object_id=" + attach_object_id + "&object_id=" + object_id + "&object_type=" + object_type,
208
+ success: function(data) {
209
+ new_option = $j("<option></option>").attr("value", attach_object_id).text(attach_object_slug);
210
+ detach_object_field.append(new_option);
211
+ detach_object_field.find('option[value=-1]').remove();
212
+
213
+ },
214
+ error: function() { alert(ccfLang.error); },
215
+ complete: function() { $j(".save-box").fadeOut().remove(); }
216
+ });
217
+ }
218
+ });
219
+
220
+ $j("span.detach-lang").remove();
221
+ $j(".detach-check").each(function(){
222
+ var name = $j(this).attr('name');
223
+ var html = '<input class="detach-button" type="button" name="' + name + '" value="' + ccfLang.detach_button + '" />';
224
+ $j(this).after(html).remove(); // add new, then remove original input
225
+ });
226
+ $j(".detach-button").live("click", function() {
227
+ var object_type = $j(this).parents().find(".object-type").attr("value");
228
+ var detach_object_field = $j(this).parents().find(".detach-object:first");
229
+ var object_id = detach_object_field.attr("class").split(' ')[0].replace(/[^0-9]*([0-9]*)/, "$1");
230
+ var detach_object_id = detach_object_field.attr("value");
231
+ if (detach_object_id != "-1") {
232
+ var detach_object_slug = detach_object_field.find("option[value=" + detach_object_id + "]:eq(0)").first().text();
233
+ var save_box = fx.initSaveBox(ccfLang.detaching);
234
+ $j.ajax({
235
+ type: "POST",
236
+ url: ccfAjax.url,
237
+ data: "nonce=" + ccfLang.nonce + "&action=ccf-ajax&object_detach=1&detach_object_id=" + detach_object_id + "&object_id=" + object_id + "&object_type=" + object_type,
238
+ success: function(data) {
239
+ pattern = new RegExp('<option value="' + detach_object_id + '">.*?<\/option>', "i");
240
+ new_options = detach_object_field.html().replace(pattern, '');
241
+ var patt = /<\/option>/i;
242
+ if (!new_options.match(patt)) new_options = '<option value="-1">Nothing Attached!</option>';
243
+ detach_object_field.html(new_options);
244
+ },
245
+ error: function() { alert(ccfLang.error); },
246
+ /*beforeSubmit: function() {
247
+ debug = fx.initDebugWindow();
248
+ $j("<div></div>").html(textStatus + " " + errorThrown).appendTo(debug);
249
+ },*/
250
+ complete: function() { $j(".save-box").fadeOut().remove(); }
251
+ });
252
+ }
253
+ });
254
+
255
  });
js/custom-contact-forms-admin-inc.js CHANGED
@@ -1,47 +1,47 @@
1
- $j = jQuery.noConflict();
2
-
3
- (function($j) {
4
- var cache = [];
5
- // Arguments are image paths relative to the current page.
6
- $j.preloadImages = function() {
7
- var args_len = arguments.length;
8
- for (var i = args_len; i--;) {
9
- var cacheImage = document.createElement('img');
10
- cacheImage.src = arguments[i];
11
- cache.push(cacheImage);
12
- }
13
- }
14
- })(jQuery)
15
-
16
- var fx = {
17
- "initDebugWindow" : function() {
18
- if ($j(".debug-window").length == 0) {
19
- debug = $j("<div>").addClass("debug-window").appendTo("body");
20
- debug.click(function() { debug.remove(); });
21
- return debug;
22
- } else {
23
- return $j(".debug-window");
24
- }
25
- },
26
-
27
- "initSaveBox" : function(text) {
28
- if ($j(".save-box").length == 0) {
29
- box = $j("<div>").addClass("save-box").appendTo("body");
30
- $j("<a>")
31
- .attr("href", "#")
32
- .addClass("save-box-close-btn")
33
- .html("&times;")
34
- .click(function(event) { event.preventDefault(); $j(".save-box").fadeOut("slow"); })
35
- .appendTo(box);
36
- $j("<p>").html(text + ' <img src="' + ccfAjax.plugin_dir + '/images/wpspin_light.gif" />').appendTo(".save-box");
37
- return box;
38
- } else {
39
- return $j(".save-box");
40
- }
41
- },
42
-
43
- "boxOut": function(event) {
44
- if (event != undefined) event.preventDefault();
45
- $j(".modal-window").fadeOut("slow", function() { $j(this).remove(); });
46
- }
47
  };
1
+ $j = jQuery.noConflict();
2
+
3
+ (function($j) {
4
+ var cache = [];
5
+ // Arguments are image paths relative to the current page.
6
+ $j.preloadImages = function() {
7
+ var args_len = arguments.length;
8
+ for (var i = args_len; i--;) {
9
+ var cacheImage = document.createElement('img');
10
+ cacheImage.src = arguments[i];
11
+ cache.push(cacheImage);
12
+ }
13
+ }
14
+ })(jQuery)
15
+
16
+ var fx = {
17
+ "initDebugWindow" : function() {
18
+ if ($j(".debug-window").length == 0) {
19
+ debug = $j("<div>").addClass("debug-window").appendTo("body");
20
+ debug.click(function() { debug.remove(); });
21
+ return debug;
22
+ } else {
23
+ return $j(".debug-window");
24
+ }
25
+ },
26
+
27
+ "initSaveBox" : function(text) {
28
+ if ($j(".save-box").length == 0) {
29
+ box = $j("<div>").addClass("save-box").appendTo("body");
30
+ $j("<a>")
31
+ .attr("href", "#")
32
+ .addClass("save-box-close-btn")
33
+ .html("&times;")
34
+ .click(function(event) { event.preventDefault(); $j(".save-box").fadeOut("slow"); })
35
+ .appendTo(box);
36
+ $j("<p>").html(text + ' <img src="' + ccfAjax.plugin_dir + '/images/wpspin_light.gif" />').appendTo(".save-box");
37
+ return box;
38
+ } else {
39
+ return $j(".save-box");
40
+ }
41
+ },
42
+
43
+ "boxOut": function(event) {
44
+ if (event != undefined) event.preventDefault();
45
+ $j(".modal-window").fadeOut("slow", function() { $j(this).remove(); });
46
+ }
47
  };
js/custom-contact-forms-dashboard.js CHANGED
@@ -1,17 +1,17 @@
1
- /* Custom Contact Forms Dashboard Javascript */
2
-
3
- $j = jQuery.noConflict();
4
-
5
- $j(document).ready(function() {
6
-
7
- $j(".ccf-view-submission").each(function() {
8
- var submission_window = $j(this).next();
9
- submission_window.dialog({
10
- height: 420,
11
- width:600,
12
- modal: true,
13
- autoOpen: false
14
- });
15
- $j(this).click(function() { submission_window.dialog('open'); });
16
- });
17
  });
1
+ /* Custom Contact Forms Dashboard Javascript */
2
+
3
+ $j = jQuery.noConflict();
4
+
5
+ $j(document).ready(function() {
6
+
7
+ $j(".ccf-view-submission").each(function() {
8
+ var submission_window = $j(this).next();
9
+ submission_window.dialog({
10
+ height: 420,
11
+ width:600,
12
+ modal: true,
13
+ autoOpen: false
14
+ });
15
+ $j(this).click(function() { submission_window.dialog('open'); });
16
+ });
17
  });
js/eye.js CHANGED
@@ -1,34 +1,34 @@
1
- /**
2
- *
3
- * Zoomimage
4
- * Author: Stefan Petre www.eyecon.ro
5
- *
6
- */
7
- (function($){
8
- var EYE = window.EYE = function() {
9
- var _registered = {
10
- init: []
11
- };
12
- return {
13
- init: function() {
14
- $.each(_registered.init, function(nr, fn){
15
- fn.call();
16
- });
17
- },
18
- extend: function(prop) {
19
- for (var i in prop) {
20
- if (prop[i] != undefined) {
21
- this[i] = prop[i];
22
- }
23
- }
24
- },
25
- register: function(fn, type) {
26
- if (!_registered[type]) {
27
- _registered[type] = [];
28
- }
29
- _registered[type].push(fn);
30
- }
31
- };
32
- }();
33
- $(EYE.init);
34
- })(jQuery);
1
+ /**
2
+ *
3
+ * Zoomimage
4
+ * Author: Stefan Petre www.eyecon.ro
5
+ *
6
+ */
7
+ (function($){
8
+ var EYE = window.EYE = function() {
9
+ var _registered = {
10
+ init: []
11
+ };
12
+ return {
13
+ init: function() {
14
+ $.each(_registered.init, function(nr, fn){
15
+ fn.call();
16
+ });
17
+ },
18
+ extend: function(prop) {
19
+ for (var i in prop) {
20
+ if (prop[i] != undefined) {
21
+ this[i] = prop[i];
22
+ }
23
+ }
24
+ },
25
+ register: function(fn, type) {
26
+ if (!_registered[type]) {
27
+ _registered[type] = [];
28
+ }
29
+ _registered[type].push(fn);
30
+ }
31
+ };
32
+ }();
33
+ $(EYE.init);
34
+ })(jQuery);
js/jquery-ui-1.8.4.custom.js CHANGED
@@ -1,1578 +1,1578 @@
1
- /*!
2
- * jQuery UI 1.8.4
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI
9
- */
10
- (function( $, undefined ) {
11
-
12
- // prevent duplicate loading
13
- // this is only a problem because we proxy existing functions
14
- // and we don't want to double proxy them
15
- $.ui = $.ui || {};
16
- if ( $.ui.version ) {
17
- return;
18
- }
19
-
20
- //Helper functions and ui object
21
- $.extend( $.ui, {
22
- version: "1.8.4",
23
-
24
- // $.ui.plugin is deprecated. Use the proxy pattern instead.
25
- plugin: {
26
- add: function( module, option, set ) {
27
- var proto = $.ui[ module ].prototype;
28
- for ( var i in set ) {
29
- proto.plugins[ i ] = proto.plugins[ i ] || [];
30
- proto.plugins[ i ].push( [ option, set[ i ] ] );
31
- }
32
- },
33
- call: function( instance, name, args ) {
34
- var set = instance.plugins[ name ];
35
- if ( !set || !instance.element[ 0 ].parentNode ) {
36
- return;
37
- }
38
-
39
- for ( var i = 0; i < set.length; i++ ) {
40
- if ( instance.options[ set[ i ][ 0 ] ] ) {
41
- set[ i ][ 1 ].apply( instance.element, args );
42
- }
43
- }
44
- }
45
- },
46
-
47
- contains: function( a, b ) {
48
- return document.compareDocumentPosition ?
49
- a.compareDocumentPosition( b ) & 16 :
50
- a !== b && a.contains( b );
51
- },
52
-
53
- hasScroll: function( el, a ) {
54
-
55
- //If overflow is hidden, the element might have extra content, but the user wants to hide it
56
- if ( $( el ).css( "overflow" ) === "hidden") {
57
- return false;
58
- }
59
-
60
- var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
61
- has = false;
62
-
63
- if ( el[ scroll ] > 0 ) {
64
- return true;
65
- }
66
-
67
- // TODO: determine which cases actually cause this to happen
68
- // if the element doesn't have the scroll set, see if it's possible to
69
- // set the scroll
70
- el[ scroll ] = 1;
71
- has = ( el[ scroll ] > 0 );
72
- el[ scroll ] = 0;
73
- return has;
74
- },
75
-
76
- isOverAxis: function( x, reference, size ) {
77
- //Determines when x coordinate is over "b" element axis
78
- return ( x > reference ) && ( x < ( reference + size ) );
79
- },
80
-
81
- isOver: function( y, x, top, left, height, width ) {
82
- //Determines when x, y coordinates is over "b" element
83
- return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
84
- },
85
-
86
- keyCode: {
87
- ALT: 18,
88
- BACKSPACE: 8,
89
- CAPS_LOCK: 20,
90
- COMMA: 188,
91
- COMMAND: 91,
92
- COMMAND_LEFT: 91, // COMMAND
93
- COMMAND_RIGHT: 93,
94
- CONTROL: 17,
95
- DELETE: 46,
96
- DOWN: 40,
97
- END: 35,
98
- ENTER: 13,
99
- ESCAPE: 27,
100
- HOME: 36,
101
- INSERT: 45,
102
- LEFT: 37,
103
- MENU: 93, // COMMAND_RIGHT
104
- NUMPAD_ADD: 107,
105
- NUMPAD_DECIMAL: 110,
106
- NUMPAD_DIVIDE: 111,
107
- NUMPAD_ENTER: 108,
108
- NUMPAD_MULTIPLY: 106,
109
- NUMPAD_SUBTRACT: 109,
110
- PAGE_DOWN: 34,
111
- PAGE_UP: 33,
112
- PERIOD: 190,
113
- RIGHT: 39,
114
- SHIFT: 16,
115
- SPACE: 32,
116
- TAB: 9,
117
- UP: 38,
118
- WINDOWS: 91 // COMMAND
119
- }
120
- });
121
-
122
- //jQuery plugins
123
- $.fn.extend({
124
- _focus: $.fn.focus,
125
- focus: function( delay, fn ) {
126
- return typeof delay === "number" ?
127
- this.each(function() {
128
- var elem = this;
129
- setTimeout(function() {
130
- $( elem ).focus();
131
- if ( fn ) {
132
- fn.call( elem );
133
- }
134
- }, delay );
135
- }) :
136
- this._focus.apply( this, arguments );
137
- },
138
-
139
- enableSelection: function() {
140
- return this
141
- .attr( "unselectable", "off" )
142
- .css( "MozUserSelect", "" );
143
- },
144
-
145
- disableSelection: function() {
146
- return this
147
- .attr( "unselectable", "on" )
148
- .css( "MozUserSelect", "none" );
149
- },
150
-
151
- scrollParent: function() {
152
- var scrollParent;
153
- if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
154
- scrollParent = this.parents().filter(function() {
155
- return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
156
- }).eq(0);
157
- } else {
158
- scrollParent = this.parents().filter(function() {
159
- return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
160
- }).eq(0);
161
- }
162
-
163
- return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
164
- },
165
-
166
- zIndex: function( zIndex ) {
167
- if ( zIndex !== undefined ) {
168
- return this.css( "zIndex", zIndex );
169
- }
170
-
171
- if ( this.length ) {
172
- var elem = $( this[ 0 ] ), position, value;
173
- while ( elem.length && elem[ 0 ] !== document ) {
174
- // Ignore z-index if position is set to a value where z-index is ignored by the browser
175
- // This makes behavior of this function consistent across browsers
176
- // WebKit always returns auto if the element is positioned
177
- position = elem.css( "position" );
178
- if ( position === "absolute" || position === "relative" || position === "fixed" ) {
179
- // IE returns 0 when zIndex is not specified
180
- // other browsers return a string
181
- // we ignore the case of nested elements with an explicit value of 0
182
- // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
183
- value = parseInt( elem.css( "zIndex" ) );
184
- if ( !isNaN( value ) && value != 0 ) {
185
- return value;
186
- }
187
- }
188
- elem = elem.parent();
189
- }
190
- }
191
-
192
- return 0;
193
- }
194
- });
195
-
196
- $.each( [ "Width", "Height" ], function( i, name ) {
197
- var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
198
- type = name.toLowerCase(),
199
- orig = {
200
- innerWidth: $.fn.innerWidth,
201
- innerHeight: $.fn.innerHeight,
202
- outerWidth: $.fn.outerWidth,
203
- outerHeight: $.fn.outerHeight
204
- };
205
-
206
- function reduce( elem, size, border, margin ) {
207
- $.each( side, function() {
208
- size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
209
- if ( border ) {
210
- size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
211
- }
212
- if ( margin ) {
213
- size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
214
- }
215
- });
216
- return size;
217
- }
218
-
219
- $.fn[ "inner" + name ] = function( size ) {
220
- if ( size === undefined ) {
221
- return orig[ "inner" + name ].call( this );
222
- }
223
-
224
- return this.each(function() {
225
- $.style( this, type, reduce( this, size ) + "px" );
226
- });
227
- };
228
-
229
- $.fn[ "outer" + name] = function( size, margin ) {
230
- if ( typeof size !== "number" ) {
231
- return orig[ "outer" + name ].call( this, size );
232
- }
233
-
234
- return this.each(function() {
235
- $.style( this, type, reduce( this, size, true, margin ) + "px" );
236
- });
237
- };
238
- });
239
-
240
- //Additional selectors
241
- function visible( element ) {
242
- return !$( element ).parents().andSelf().filter(function() {
243
- return $.curCSS( this, "visibility" ) === "hidden" ||
244
- $.expr.filters.hidden( this );
245
- }).length;
246
- }
247
-
248
- $.extend( $.expr[ ":" ], {
249
- data: function( elem, i, match ) {
250
- return !!$.data( elem, match[ 3 ] );
251
- },
252
-
253
- focusable: function( element ) {
254
- var nodeName = element.nodeName.toLowerCase(),
255
- tabIndex = $.attr( element, "tabindex" );
256
- if ( "area" === nodeName ) {
257
- var map = element.parentNode,
258
- mapName = map.name,
259
- img;
260
- if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
261
- return false;
262
- }
263
- img = $( "img[usemap=#" + mapName + "]" )[0];
264
- return !!img && visible( img );
265
- }
266
- return ( /input|select|textarea|button|object/.test( nodeName )
267
- ? !element.disabled
268
- : "a" == nodeName
269
- ? element.href || !isNaN( tabIndex )
270
- : !isNaN( tabIndex ))
271
- // the element and all of its ancestors must be visible
272
- && visible( element );
273
- },
274
-
275
- tabbable: function( element ) {
276
- var tabIndex = $.attr( element, "tabindex" );
277
- return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
278
- }
279
- });
280
-
281
- })( jQuery );
282
- /*!
283
- * jQuery UI Widget 1.8.4
284
- *
285
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
286
- * Dual licensed under the MIT or GPL Version 2 licenses.
287
- * http://jquery.org/license
288
- *
289
- * http://docs.jquery.com/UI/Widget
290
- */
291
- (function( $, undefined ) {
292
-
293
- var _remove = $.fn.remove;
294
-
295
- $.fn.remove = function( selector, keepData ) {
296
- return this.each(function() {
297
- if ( !keepData ) {
298
- if ( !selector || $.filter( selector, [ this ] ).length ) {
299
- $( "*", this ).add( [ this ] ).each(function() {
300
- $( this ).triggerHandler( "remove" );
301
- });
302
- }
303
- }
304
- return _remove.call( $(this), selector, keepData );
305
- });
306
- };
307
-
308
- $.widget = function( name, base, prototype ) {
309
- var namespace = name.split( "." )[ 0 ],
310
- fullName;
311
- name = name.split( "." )[ 1 ];
312
- fullName = namespace + "-" + name;
313
-
314
- if ( !prototype ) {
315
- prototype = base;
316
- base = $.Widget;
317
- }
318
-
319
- // create selector for plugin
320
- $.expr[ ":" ][ fullName ] = function( elem ) {
321
- return !!$.data( elem, name );
322
- };
323
-
324
- $[ namespace ] = $[ namespace ] || {};
325
- $[ namespace ][ name ] = function( options, element ) {
326
- // allow instantiation without initializing for simple inheritance
327
- if ( arguments.length ) {
328
- this._createWidget( options, element );
329
- }
330
- };
331
-
332
- var basePrototype = new base();
333
- // we need to make the options hash a property directly on the new instance
334
- // otherwise we'll modify the options hash on the prototype that we're
335
- // inheriting from
336
- // $.each( basePrototype, function( key, val ) {
337
- // if ( $.isPlainObject(val) ) {
338
- // basePrototype[ key ] = $.extend( {}, val );
339
- // }
340
- // });
341
- basePrototype.options = $.extend( true, {}, basePrototype.options );
342
- $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
343
- namespace: namespace,
344
- widgetName: name,
345
- widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
346
- widgetBaseClass: fullName
347
- }, prototype );
348
-
349
- $.widget.bridge( name, $[ namespace ][ name ] );
350
- };
351
-
352
- $.widget.bridge = function( name, object ) {
353
- $.fn[ name ] = function( options ) {
354
- var isMethodCall = typeof options === "string",
355
- args = Array.prototype.slice.call( arguments, 1 ),
356
- returnValue = this;
357
-
358
- // allow multiple hashes to be passed on init
359
- options = !isMethodCall && args.length ?
360
- $.extend.apply( null, [ true, options ].concat(args) ) :
361
- options;
362
-
363
- // prevent calls to internal methods
364
- if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
365
- return returnValue;
366
- }
367
-
368
- if ( isMethodCall ) {
369
- this.each(function() {
370
- var instance = $.data( this, name ),
371
- methodValue = instance && $.isFunction( instance[options] ) ?
372
- instance[ options ].apply( instance, args ) :
373
- instance;
374
- if ( methodValue !== instance && methodValue !== undefined ) {
375
- returnValue = methodValue;
376
- return false;
377
- }
378
- });
379
- } else {
380
- this.each(function() {
381
- var instance = $.data( this, name );
382
- if ( instance ) {
383
- if ( options ) {
384
- instance.option( options );
385
- }
386
- instance._init();
387
- } else {
388
- $.data( this, name, new object( options, this ) );
389
- }
390
- });
391
- }
392
-
393
- return returnValue;
394
- };
395
- };
396
-
397
- $.Widget = function( options, element ) {
398
- // allow instantiation without initializing for simple inheritance
399
- if ( arguments.length ) {
400
- this._createWidget( options, element );
401
- }
402
- };
403
-
404
- $.Widget.prototype = {
405
- widgetName: "widget",
406
- widgetEventPrefix: "",
407
- options: {
408
- disabled: false
409
- },
410
- _createWidget: function( options, element ) {
411
- // $.widget.bridge stores the plugin instance, but we do it anyway
412
- // so that it's stored even before the _create function runs
413
- $.data( element, this.widgetName, this );
414
- this.element = $( element );
415
- this.options = $.extend( true, {},
416
- this.options,
417
- $.metadata && $.metadata.get( element )[ this.widgetName ],
418
- options );
419
-
420
- var self = this;
421
- this.element.bind( "remove." + this.widgetName, function() {
422
- self.destroy();
423
- });
424
-
425
- this._create();
426
- this._init();
427
- },
428
- _create: function() {},
429
- _init: function() {},
430
-
431
- destroy: function() {
432
- this.element
433
- .unbind( "." + this.widgetName )
434
- .removeData( this.widgetName );
435
- this.widget()
436
- .unbind( "." + this.widgetName )
437
- .removeAttr( "aria-disabled" )
438
- .removeClass(
439
- this.widgetBaseClass + "-disabled " +
440
- "ui-state-disabled" );
441
- },
442
-
443
- widget: function() {
444
- return this.element;
445
- },
446
-
447
- option: function( key, value ) {
448
- var options = key,
449
- self = this;
450
-
451
- if ( arguments.length === 0 ) {
452
- // don't return a reference to the internal hash
453
- return $.extend( {}, self.options );
454
- }
455
-
456
- if (typeof key === "string" ) {
457
- if ( value === undefined ) {
458
- return this.options[ key ];
459
- }
460
- options = {};
461
- options[ key ] = value;
462
- }
463
-
464
- $.each( options, function( key, value ) {
465
- self._setOption( key, value );
466
- });
467
-
468
- return self;
469
- },
470
- _setOption: function( key, value ) {
471
- this.options[ key ] = value;
472
-
473
- if ( key === "disabled" ) {
474
- this.widget()
475
- [ value ? "addClass" : "removeClass"](
476
- this.widgetBaseClass + "-disabled" + " " +
477
- "ui-state-disabled" )
478
- .attr( "aria-disabled", value );
479
- }
480
-
481
- return this;
482
- },
483
-
484
- enable: function() {
485
- return this._setOption( "disabled", false );
486
- },
487
- disable: function() {
488
- return this._setOption( "disabled", true );
489
- },
490
-
491
- _trigger: function( type, event, data ) {
492
- var callback = this.options[ type ];
493
-
494
- event = $.Event( event );
495
- event.type = ( type === this.widgetEventPrefix ?
496
- type :
497
- this.widgetEventPrefix + type ).toLowerCase();
498
- data = data || {};
499
-
500
- // copy original event properties over to the new event
501
- // this would happen if we could call $.event.fix instead of $.Event
502
- // but we don't have a way to force an event to be fixed multiple times
503
- if ( event.originalEvent ) {
504
- for ( var i = $.event.props.length, prop; i; ) {
505
- prop = $.event.props[ --i ];
506
- event[ prop ] = event.originalEvent[ prop ];
507
- }
508
- }
509
-
510
- this.element.trigger( event, data );
511
-
512
- return !( $.isFunction(callback) &&
513
- callback.call( this.element[0], event, data ) === false ||
514
- event.isDefaultPrevented() );
515
- }
516
- };
517
-
518
- })( jQuery );
519
- /*
520
- * jQuery UI Position 1.8.4
521
- *
522
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
523
- * Dual licensed under the MIT or GPL Version 2 licenses.
524
- * http://jquery.org/license
525
- *
526
- * http://docs.jquery.com/UI/Position
527
- */
528
- (function( $, undefined ) {
529
-
530
- $.ui = $.ui || {};
531
-
532
- var horizontalPositions = /left|center|right/,
533
- horizontalDefault = "center",
534
- verticalPositions = /top|center|bottom/,
535
- verticalDefault = "center",
536
- _position = $.fn.position,
537
- _offset = $.fn.offset;
538
-
539
- $.fn.position = function( options ) {
540
- if ( !options || !options.of ) {
541
- return _position.apply( this, arguments );
542
- }
543
-
544
- // make a copy, we don't want to modify arguments
545
- options = $.extend( {}, options );
546
-
547
- var target = $( options.of ),
548
- collision = ( options.collision || "flip" ).split( " " ),
549
- offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
550
- targetWidth,
551
- targetHeight,
552
- basePosition;
553
-
554
- if ( options.of.nodeType === 9 ) {
555
- targetWidth = target.width();
556
- targetHeight = target.height();
557
- basePosition = { top: 0, left: 0 };
558
- } else if ( options.of.scrollTo && options.of.document ) {
559
- targetWidth = target.width();
560
- targetHeight = target.height();
561
- basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
562
- } else if ( options.of.preventDefault ) {
563
- // force left top to allow flipping
564
- options.at = "left top";
565
- targetWidth = targetHeight = 0;
566
- basePosition = { top: options.of.pageY, left: options.of.pageX };
567
- } else {
568
- targetWidth = target.outerWidth();
569
- targetHeight = target.outerHeight();
570
- basePosition = target.offset();
571
- }
572
-
573
- // force my and at to have valid horizontal and veritcal positions
574
- // if a value is missing or invalid, it will be converted to center
575
- $.each( [ "my", "at" ], function() {
576
- var pos = ( options[this] || "" ).split( " " );
577
- if ( pos.length === 1) {
578
- pos = horizontalPositions.test( pos[0] ) ?
579
- pos.concat( [verticalDefault] ) :
580
- verticalPositions.test( pos[0] ) ?
581
- [ horizontalDefault ].concat( pos ) :
582
- [ horizontalDefault, verticalDefault ];
583
- }
584
- pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
585
- pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
586
- options[ this ] = pos;
587
- });
588
-
589
- // normalize collision option
590
- if ( collision.length === 1 ) {
591
- collision[ 1 ] = collision[ 0 ];
592
- }
593
-
594
- // normalize offset option
595
- offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
596
- if ( offset.length === 1 ) {
597
- offset[ 1 ] = offset[ 0 ];
598
- }
599
- offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
600
-
601
- if ( options.at[0] === "right" ) {
602
- basePosition.left += targetWidth;
603
- } else if (options.at[0] === horizontalDefault ) {
604
- basePosition.left += targetWidth / 2;
605
- }
606
-
607
- if ( options.at[1] === "bottom" ) {
608
- basePosition.top += targetHeight;
609
- } else if ( options.at[1] === verticalDefault ) {
610
- basePosition.top += targetHeight / 2;
611
- }
612
-
613
- basePosition.left += offset[ 0 ];
614
- basePosition.top += offset[ 1 ];
615
-
616
- return this.each(function() {
617
- var elem = $( this ),
618
- elemWidth = elem.outerWidth(),
619
- elemHeight = elem.outerHeight(),
620
- position = $.extend( {}, basePosition );
621
-
622
- if ( options.my[0] === "right" ) {
623
- position.left -= elemWidth;
624
- } else if ( options.my[0] === horizontalDefault ) {
625
- position.left -= elemWidth / 2;
626
- }
627
-
628
- if ( options.my[1] === "bottom" ) {
629
- position.top -= elemHeight;
630
- } else if ( options.my[1] === verticalDefault ) {
631
- position.top -= elemHeight / 2;
632
- }
633
-
634
- // prevent fractions (see #5280)
635
- position.left = parseInt( position.left );
636
- position.top = parseInt( position.top );
637
-
638
- $.each( [ "left", "top" ], function( i, dir ) {
639
- if ( $.ui.position[ collision[i] ] ) {
640
- $.ui.position[ collision[i] ][ dir ]( position, {
641
- targetWidth: targetWidth,
642
- targetHeight: targetHeight,
643
- elemWidth: elemWidth,
644
- elemHeight: elemHeight,
645
- offset: offset,
646
- my: options.my,
647
- at: options.at
648
- });
649
- }
650
- });
651
-
652
- if ( $.fn.bgiframe ) {
653
- elem.bgiframe();
654
- }
655
- elem.offset( $.extend( position, { using: options.using } ) );
656
- });
657
- };
658
-
659
- $.ui.position = {
660
- fit: {
661
- left: function( position, data ) {
662
- var win = $( window ),
663
- over = position.left + data.elemWidth - win.width() - win.scrollLeft();
664
- position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
665
- },
666
- top: function( position, data ) {
667
- var win = $( window ),
668
- over = position.top + data.elemHeight - win.height() - win.scrollTop();
669
- position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
670
- }
671
- },
672
-
673
- flip: {
674
- left: function( position, data ) {
675
- if ( data.at[0] === "center" ) {
676
- return;
677
- }
678
- var win = $( window ),
679
- over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
680
- myOffset = data.my[ 0 ] === "left" ?
681
- -data.elemWidth :
682
- data.my[ 0 ] === "right" ?
683
- data.elemWidth :
684
- 0,
685
- offset = -2 * data.offset[ 0 ];
686
- position.left += position.left < 0 ?
687
- myOffset + data.targetWidth + offset :
688
- over > 0 ?
689
- myOffset - data.targetWidth + offset :
690
- 0;
691
- },
692
- top: function( position, data ) {
693
- if ( data.at[1] === "center" ) {
694
- return;
695
- }
696
- var win = $( window ),
697
- over = position.top + data.elemHeight - win.height() - win.scrollTop(),
698
- myOffset = data.my[ 1 ] === "top" ?
699
- -data.elemHeight :
700
- data.my[ 1 ] === "bottom" ?
701
- data.elemHeight :
702
- 0,
703
- atOffset = data.at[ 1 ] === "top" ?
704
- data.targetHeight :
705
- -data.targetHeight,
706
- offset = -2 * data.offset[ 1 ];
707
- position.top += position.top < 0 ?
708
- myOffset + data.targetHeight + offset :
709
- over > 0 ?
710
- myOffset + atOffset + offset :
711
- 0;
712
- }
713
- }
714
- };
715
-
716
- // offset setter from jQuery 1.4
717
- if ( !$.offset.setOffset ) {
718
- $.offset.setOffset = function( elem, options ) {
719
- // set position first, in-case top/left are set even on static elem
720
- if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
721
- elem.style.position = "relative";
722
- }
723
- var curElem = $( elem ),
724
- curOffset = curElem.offset(),
725
- curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
726
- curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
727
- props = {
728
- top: (options.top - curOffset.top) + curTop,
729
- left: (options.left - curOffset.left) + curLeft
730
- };
731
-
732
- if ( 'using' in options ) {
733
- options.using.call( elem, props );
734
- } else {
735
- curElem.css( props );
736
- }
737
- };
738
-
739
- $.fn.offset = function( options ) {
740
- var elem = this[ 0 ];
741
- if ( !elem || !elem.ownerDocument ) { return null; }
742
- if ( options ) {
743
- return this.each(function() {
744
- $.offset.setOffset( this, options );
745
- });
746
- }
747
- return _offset.call( this );
748
- };
749
- }
750
-
751
- }( jQuery ));
752
- /*
753
- * jQuery UI Dialog 1.8.4
754
- *
755
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
756
- * Dual licensed under the MIT or GPL Version 2 licenses.
757
- * http://jquery.org/license
758
- *
759
- * http://docs.jquery.com/UI/Dialog
760
- *
761
- * Depends:
762
- * jquery.ui.core.js
763
- * jquery.ui.widget.js
764
- * jquery.ui.button.js
765
- * jquery.ui.draggable.js
766
- * jquery.ui.mouse.js
767
- * jquery.ui.position.js
768
- * jquery.ui.resizable.js
769
- */
770
- (function( $, undefined ) {
771
-
772
- var uiDialogClasses =
773
- 'ui-dialog ' +
774
- 'ui-widget ' +
775
- 'ui-widget-content ' +
776
- 'ui-corner-all ';
777
-
778
- $.widget("ui.dialog", {
779
- options: {
780
- autoOpen: true,
781
- buttons: {},
782
- closeOnEscape: true,
783
- closeText: 'close',
784
- dialogClass: '',
785
- draggable: true,
786
- hide: null,
787
- height: 'auto',
788
- maxHeight: false,
789
- maxWidth: false,
790
- minHeight: 150,
791
- minWidth: 150,
792
- modal: false,
793
- position: {
794
- my: 'center',
795
- at: 'center',
796
- of: window,
797
- collision: 'fit',
798
- // ensure that the titlebar is never outside the document
799
- using: function(pos) {
800
- var topOffset = $(this).css(pos).offset().top;
801
- if (topOffset < 0) {
802
- $(this).css('top', pos.top - topOffset);
803
- }
804
- }
805
- },
806
- resizable: true,
807
- show: null,
808
- stack: true,
809
- title: '',
810
- width: 300,
811
- zIndex: 1000
812
- },
813
-
814
- _create: function() {
815
- this.originalTitle = this.element.attr('title');
816
- // #5742 - .attr() might return a DOMElement
817
- if ( typeof this.originalTitle !== "string" ) {
818
- this.originalTitle = "";
819
- }
820
-
821
- var self = this,
822
- options = self.options,
823
-
824
- title = options.title || self.originalTitle || '&#160;',
825
- titleId = $.ui.dialog.getTitleId(self.element),
826
-
827
- uiDialog = (self.uiDialog = $('<div></div>'))
828
- .appendTo(document.body)
829
- .hide()
830
- .addClass(uiDialogClasses + options.dialogClass)
831
- .css({
832
- zIndex: options.zIndex
833
- })
834
- // setting tabIndex makes the div focusable
835
- // setting outline to 0 prevents a border on focus in Mozilla
836
- .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
837
- if (options.closeOnEscape && event.keyCode &&
838
- event.keyCode === $.ui.keyCode.ESCAPE) {
839
-
840
- self.close(event);
841
- event.preventDefault();
842
- }
843
- })
844
- .attr({
845
- role: 'dialog',
846
- 'aria-labelledby': titleId
847
- })
848
- .mousedown(function(event) {
849
- self.moveToTop(false, event);
850
- }),
851
-
852
- uiDialogContent = self.element
853
- .show()
854
- .removeAttr('title')
855
- .addClass(
856
- 'ui-dialog-content ' +
857
- 'ui-widget-content')
858
- .appendTo(uiDialog),
859
-
860
- uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
861
- .addClass(
862
- 'ui-dialog-titlebar ' +
863
- 'ui-widget-header ' +
864
- 'ui-corner-all ' +
865
- 'ui-helper-clearfix'
866
- )
867
- .prependTo(uiDialog),
868
-
869
- uiDialogTitlebarClose = $('<a href="#"></a>')
870
- .addClass(
871
- 'ui-dialog-titlebar-close ' +
872
- 'ui-corner-all'
873
- )
874
- .attr('role', 'button')
875
- .hover(
876
- function() {
877
- uiDialogTitlebarClose.addClass('ui-state-hover');
878
- },
879
- function() {
880
- uiDialogTitlebarClose.removeClass('ui-state-hover');
881
- }
882
- )
883
- .focus(function() {
884
- uiDialogTitlebarClose.addClass('ui-state-focus');
885
- })
886
- .blur(function() {
887
- uiDialogTitlebarClose.removeClass('ui-state-focus');
888
- })
889
- .click(function(event) {
890
- self.close(event);
891
- return false;
892
- })
893
- .appendTo(uiDialogTitlebar),
894
-
895
- uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
896
- .addClass(
897
- 'ui-icon ' +
898
- 'ui-icon-closethick'
899
- )
900
- .text(options.closeText)
901
- .appendTo(uiDialogTitlebarClose),
902
-
903
- uiDialogTitle = $('<span></span>')
904
- .addClass('ui-dialog-title')
905
- .attr('id', titleId)
906
- .html(title)
907
- .prependTo(uiDialogTitlebar);
908
-
909
- //handling of deprecated beforeclose (vs beforeClose) option
910
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
911
- //TODO: remove in 1.9pre
912
- if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
913
- options.beforeClose = options.beforeclose;
914
- }
915
-
916
- uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
917
-
918
- if (options.draggable && $.fn.draggable) {
919
- self._makeDraggable();
920
- }
921
- if (options.resizable && $.fn.resizable) {
922
- self._makeResizable();
923
- }
924
-
925
- self._createButtons(options.buttons);
926
- self._isOpen = false;
927
-
928
- if ($.fn.bgiframe) {
929
- uiDialog.bgiframe();
930
- }
931
- },
932
-
933
- _init: function() {
934
- if ( this.options.autoOpen ) {
935
- this.open();
936
- }
937
- },
938
-
939
- destroy: function() {
940
- var self = this;
941
-
942
- if (self.overlay) {
943
- self.overlay.destroy();
944
- }
945
- self.uiDialog.hide();
946
- self.element
947
- .unbind('.dialog')
948
- .removeData('dialog')
949
- .removeClass('ui-dialog-content ui-widget-content')
950
- .hide().appendTo('body');
951
- self.uiDialog.remove();
952
-
953
- if (self.originalTitle) {
954
- self.element.attr('title', self.originalTitle);
955
- }
956
-
957
- return self;
958
- },
959
-
960
- widget: function() {
961
- return this.uiDialog;
962
- },
963
-
964
- close: function(event) {
965
- var self = this,
966
- maxZ;
967
-
968
- if (false === self._trigger('beforeClose', event)) {
969
- return;
970
- }
971
-
972
- if (self.overlay) {
973
- self.overlay.destroy();
974
- }
975
- self.uiDialog.unbind('keypress.ui-dialog');
976
-
977
- self._isOpen = false;
978
-
979
- if (self.options.hide) {
980
- self.uiDialog.hide(self.options.hide, function() {
981
- self._trigger('close', event);
982
- });
983
- } else {
984
- self.uiDialog.hide();
985
- self._trigger('close', event);
986
- }
987
-
988
- $.ui.dialog.overlay.resize();
989
-
990
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
991
- if (self.options.modal) {
992
- maxZ = 0;
993
- $('.ui-dialog').each(function() {
994
- if (this !== self.uiDialog[0]) {
995
- maxZ = Math.max(maxZ, $(this).css('z-index'));
996
- }
997
- });
998
- $.ui.dialog.maxZ = maxZ;
999
- }
1000
-
1001
- return self;
1002
- },
1003
-
1004
- isOpen: function() {
1005
- return this._isOpen;
1006
- },
1007
-
1008
- // the force parameter allows us to move modal dialogs to their correct
1009
- // position on open
1010
- moveToTop: function(force, event) {
1011
- var self = this,
1012
- options = self.options,
1013
- saveScroll;
1014
-
1015
- if ((options.modal && !force) ||
1016
- (!options.stack && !options.modal)) {
1017
- return self._trigger('focus', event);
1018
- }
1019
-
1020
- if (options.zIndex > $.ui.dialog.maxZ) {
1021
- $.ui.dialog.maxZ = options.zIndex;
1022
- }
1023
- if (self.overlay) {
1024
- $.ui.dialog.maxZ += 1;
1025
- self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
1026
- }
1027
-
1028
- //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
1029
- // http://ui.jquery.com/bugs/ticket/3193
1030
- saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
1031
- $.ui.dialog.maxZ += 1;
1032
- self.uiDialog.css('z-index', $.ui.dialog.maxZ);
1033
- self.element.attr(saveScroll);
1034
- self._trigger('focus', event);
1035
-
1036
- return self;
1037
- },
1038
-
1039
- open: function() {
1040
- if (this._isOpen) { return; }
1041
-
1042
- var self = this,
1043
- options = self.options,
1044
- uiDialog = self.uiDialog;
1045
-
1046
- self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
1047
- if (uiDialog.next().length) {
1048
- uiDialog.appendTo('body');
1049
- }
1050
- self._size();
1051
- self._position(options.position);
1052
- uiDialog.show(options.show);
1053
- self.moveToTop(true);
1054
-
1055
- // prevent tabbing out of modal dialogs
1056
- if (options.modal) {
1057
- uiDialog.bind('keypress.ui-dialog', function(event) {
1058
- if (event.keyCode !== $.ui.keyCode.TAB) {
1059
- return;
1060
- }
1061
-
1062
- var tabbables = $(':tabbable', this),
1063
- first = tabbables.filter(':first'),
1064
- last = tabbables.filter(':last');
1065
-
1066
- if (event.target === last[0] && !event.shiftKey) {
1067
- first.focus(1);
1068
- return false;
1069
- } else if (event.target === first[0] && event.shiftKey) {
1070
- last.focus(1);
1071
- return false;
1072
- }
1073
- });
1074
- }
1075
-
1076
- // set focus to the first tabbable element in the content area or the first button
1077
- // if there are no tabbable elements, set focus on the dialog itself
1078
- $(self.element.find(':tabbable').get().concat(
1079
- uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
1080
- uiDialog.get()))).eq(0).focus();
1081
-
1082
- self._trigger('open');
1083
- self._isOpen = true;
1084
-
1085
- return self;
1086
- },
1087
-
1088
- _createButtons: function(buttons) {
1089
- var self = this,
1090
- hasButtons = false,
1091
- uiDialogButtonPane = $('<div></div>')
1092
- .addClass(
1093
- 'ui-dialog-buttonpane ' +
1094
- 'ui-widget-content ' +
1095
- 'ui-helper-clearfix'
1096
- ),
1097
- uiButtonSet = $( "<div></div>" )
1098
- .addClass( "ui-dialog-buttonset" )
1099
- .appendTo( uiDialogButtonPane );
1100
-
1101
- // if we already have a button pane, remove it
1102
- self.uiDialog.find('.ui-dialog-buttonpane').remove();
1103
-
1104
- if (typeof buttons === 'object' && buttons !== null) {
1105
- $.each(buttons, function() {
1106
- return !(hasButtons = true);
1107
- });
1108
- }
1109
- if (hasButtons) {
1110
- $.each(buttons, function(name, fn) {
1111
- var button = $('<button type="button"></button>')
1112
- .text(name)
1113
- .click(function() { fn.apply(self.element[0], arguments); })
1114
- .appendTo(uiButtonSet);
1115
- if ($.fn.button) {
1116
- button.button();
1117
- }
1118
- });
1119
- uiDialogButtonPane.appendTo(self.uiDialog);
1120
- }
1121
- },
1122
-
1123
- _makeDraggable: function() {
1124
- var self = this,
1125
- options = self.options,
1126
- doc = $(document),
1127
- heightBeforeDrag;
1128
-
1129
- function filteredUi(ui) {
1130
- return {
1131
- position: ui.position,
1132
- offset: ui.offset
1133
- };
1134
- }
1135
-
1136
- self.uiDialog.draggable({
1137
- cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
1138
- handle: '.ui-dialog-titlebar',
1139
- containment: 'document',
1140
- start: function(event, ui) {
1141
- heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
1142
- $(this).height($(this).height()).addClass("ui-dialog-dragging");
1143
- self._trigger('dragStart', event, filteredUi(ui));
1144
- },
1145
- drag: function(event, ui) {
1146
- self._trigger('drag', event, filteredUi(ui));
1147
- },
1148
- stop: function(event, ui) {
1149
- options.position = [ui.position.left - doc.scrollLeft(),
1150
- ui.position.top - doc.scrollTop()];
1151
- $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
1152
- self._trigger('dragStop', event, filteredUi(ui));
1153
- $.ui.dialog.overlay.resize();
1154
- }
1155
- });
1156
- },
1157
-
1158
- _makeResizable: function(handles) {
1159
- handles = (handles === undefined ? this.options.resizable : handles);
1160
- var self = this,
1161
- options = self.options,
1162
- // .ui-resizable has position: relative defined in the stylesheet
1163
- // but dialogs have to use absolute or fixed positioning
1164
- position = self.uiDialog.css('position'),
1165
- resizeHandles = (typeof handles === 'string' ?
1166
- handles :
1167
- 'n,e,s,w,se,sw,ne,nw'
1168
- );
1169
-
1170
- function filteredUi(ui) {
1171
- return {
1172
- originalPosition: ui.originalPosition,
1173
- originalSize: ui.originalSize,
1174
- position: ui.position,
1175
- size: ui.size
1176
- };
1177
- }
1178
-
1179
- self.uiDialog.resizable({
1180
- cancel: '.ui-dialog-content',
1181
- containment: 'document',
1182
- alsoResize: self.element,
1183
- maxWidth: options.maxWidth,
1184
- maxHeight: options.maxHeight,
1185
- minWidth: options.minWidth,
1186
- minHeight: self._minHeight(),
1187
- handles: resizeHandles,
1188
- start: function(event, ui) {
1189
- $(this).addClass("ui-dialog-resizing");
1190
- self._trigger('resizeStart', event, filteredUi(ui));
1191
- },
1192
- resize: function(event, ui) {
1193
- self._trigger('resize', event, filteredUi(ui));
1194
- },
1195
- stop: function(event, ui) {
1196
- $(this).removeClass("ui-dialog-resizing");
1197
- options.height = $(this).height();
1198
- options.width = $(this).width();
1199
- self._trigger('resizeStop', event, filteredUi(ui));
1200
- $.ui.dialog.overlay.resize();
1201
- }
1202
- })
1203
- .css('position', position)
1204
- .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
1205
- },
1206
-
1207
- _minHeight: function() {
1208
- var options = this.options;
1209
-
1210
- if (options.height === 'auto') {
1211
- return options.minHeight;
1212
- } else {
1213
- return Math.min(options.minHeight, options.height);
1214
- }
1215
- },
1216
-
1217
- _position: function(position) {
1218
- var myAt = [],
1219
- offset = [0, 0],
1220
- isVisible;
1221
-
1222
- if (position) {
1223
- // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
1224
- // if (typeof position == 'string' || $.isArray(position)) {
1225
- // myAt = $.isArray(position) ? position : position.split(' ');
1226
-
1227
- if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
1228
- myAt = position.split ? position.split(' ') : [position[0], position[1]];
1229
- if (myAt.length === 1) {
1230
- myAt[1] = myAt[0];
1231
- }
1232
-
1233
- $.each(['left', 'top'], function(i, offsetPosition) {
1234
- if (+myAt[i] === myAt[i]) {
1235
- offset[i] = myAt[i];
1236
- myAt[i] = offsetPosition;
1237
- }
1238
- });
1239
-
1240
- position = {
1241
- my: myAt.join(" "),
1242
- at: myAt.join(" "),
1243
- offset: offset.join(" ")
1244
- };
1245
- }
1246
-
1247
- position = $.extend({}, $.ui.dialog.prototype.options.position, position);
1248
- } else {
1249
- position = $.ui.dialog.prototype.options.position;
1250
- }
1251
-
1252
- // need to show the dialog to get the actual offset in the position plugin
1253
- isVisible = this.uiDialog.is(':visible');
1254
- if (!isVisible) {
1255
- this.uiDialog.show();
1256
- }
1257
- this.uiDialog
1258
- // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
1259
- .css({ top: 0, left: 0 })
1260
- .position(position);
1261
- if (!isVisible) {
1262
- this.uiDialog.hide();
1263
- }
1264
- },
1265
-
1266
- _setOption: function(key, value){
1267
- var self = this,
1268
- uiDialog = self.uiDialog,
1269
- isResizable = uiDialog.is(':data(resizable)'),
1270
- resize = false;
1271
-
1272
- switch (key) {
1273
- //handling of deprecated beforeclose (vs beforeClose) option
1274
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
1275
- //TODO: remove in 1.9pre
1276
- case "beforeclose":
1277
- key = "beforeClose";
1278
- break;
1279
- case "buttons":
1280
- self._createButtons(value);
1281
- resize = true;
1282
- break;
1283
- case "closeText":
1284
- // convert whatever was passed in to a string, for text() to not throw up
1285
- self.uiDialogTitlebarCloseText.text("" + value);
1286
- break;
1287
- case "dialogClass":
1288
- uiDialog
1289
- .removeClass(self.options.dialogClass)
1290
- .addClass(uiDialogClasses + value);
1291
- break;
1292
- case "disabled":
1293
- if (value) {
1294
- uiDialog.addClass('ui-dialog-disabled');
1295
- } else {
1296
- uiDialog.removeClass('ui-dialog-disabled');
1297
- }
1298
- break;
1299
- case "draggable":
1300
- if (value) {
1301
- self._makeDraggable();
1302
- } else {
1303
- uiDialog.draggable('destroy');
1304
- }
1305
- break;
1306
- case "height":
1307
- resize = true;
1308
- break;
1309
- case "maxHeight":
1310
- if (isResizable) {
1311
- uiDialog.resizable('option', 'maxHeight', value);
1312
- }
1313
- resize = true;
1314
- break;
1315
- case "maxWidth":
1316
- if (isResizable) {
1317
- uiDialog.resizable('option', 'maxWidth', value);
1318
- }
1319
- resize = true;
1320
- break;
1321
- case "minHeight":
1322
- if (isResizable) {
1323
- uiDialog.resizable('option', 'minHeight', value);
1324
- }
1325
- resize = true;
1326
- break;
1327
- case "minWidth":
1328
- if (isResizable) {
1329
- uiDialog.resizable('option', 'minWidth', value);
1330
- }
1331
- resize = true;
1332
- break;
1333
- case "position":
1334
- self._position(value);
1335
- break;
1336
- case "resizable":
1337
- // currently resizable, becoming non-resizable
1338
- if (isResizable && !value) {
1339
- uiDialog.resizable('destroy');
1340
- }
1341
-
1342
- // currently resizable, changing handles
1343
- if (isResizable && typeof value === 'string') {
1344
- uiDialog.resizable('option', 'handles', value);
1345
- }
1346
-
1347
- // currently non-resizable, becoming resizable
1348
- if (!isResizable && value !== false) {
1349
- self._makeResizable(value);
1350
- }
1351
- break;
1352
- case "title":
1353
- // convert whatever was passed in o a string, for html() to not throw up
1354
- $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
1355
- break;
1356
- case "width":
1357
- resize = true;
1358
- break;
1359
- }
1360
-
1361
- $.Widget.prototype._setOption.apply(self, arguments);
1362
- if (resize) {
1363
- self._size();
1364
- }
1365
- },
1366
-
1367
- _size: function() {
1368
- /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
1369
- * divs will both have width and height set, so we need to reset them
1370
- */
1371
- var options = this.options,
1372
- nonContentHeight;
1373
-
1374
- // reset content sizing
1375
- // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
1376
- this.element.css({
1377
- width: 'auto',
1378
- minHeight: 0,
1379
- height: 0
1380
- });
1381
-
1382
- if (options.minWidth > options.width) {
1383
- options.width = options.minWidth;
1384
- }
1385
-
1386
- // reset wrapper sizing
1387
- // determine the height of all the non-content elements
1388
- nonContentHeight = this.uiDialog.css({
1389
- height: 'auto',
1390
- width: options.width
1391
- })
1392
- .height();
1393
-
1394
- this.element
1395
- .css(options.height === 'auto' ? {
1396
- minHeight: Math.max(options.minHeight - nonContentHeight, 0),
1397
- height: 'auto'
1398
- } : {
1399
- minHeight: 0,
1400
- height: Math.max(options.height - nonContentHeight, 0)
1401
- })
1402
- .show();
1403
-
1404
- if (this.uiDialog.is(':data(resizable)')) {
1405
- this.uiDialog.resizable('option', 'minHeight', this._minHeight());
1406
- }
1407
- }
1408
- });
1409
-
1410
- $.extend($.ui.dialog, {
1411
- version: "1.8.4",
1412
-
1413
- uuid: 0,
1414
- maxZ: 0,
1415
-
1416
- getTitleId: function($el) {
1417
- var id = $el.attr('id');
1418
- if (!id) {
1419
- this.uuid += 1;
1420
- id = this.uuid;
1421
- }
1422
- return 'ui-dialog-title-' + id;
1423
- },
1424
-
1425
- overlay: function(dialog) {
1426
- this.$el = $.ui.dialog.overlay.create(dialog);
1427
- }
1428
- });
1429
-
1430
- $.extend($.ui.dialog.overlay, {
1431
- instances: [],
1432
- // reuse old instances due to IE memory leak with alpha transparency (see #5185)
1433
- oldInstances: [],
1434
- maxZ: 0,
1435
- events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
1436
- function(event) { return event + '.dialog-overlay'; }).join(' '),
1437
- create: function(dialog) {
1438
- if (this.instances.length === 0) {
1439
- // prevent use of anchors and inputs
1440
- // we use a setTimeout in case the overlay is created from an
1441
- // event that we're going to be cancelling (see #2804)
1442
- setTimeout(function() {
1443
- // handle $(el).dialog().dialog('close') (see #4065)
1444
- if ($.ui.dialog.overlay.instances.length) {
1445
- $(document).bind($.ui.dialog.overlay.events, function(event) {
1446
- // stop events if the z-index of the target is < the z-index of the overlay
1447
- return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
1448
- });
1449
- }
1450
- }, 1);
1451
-
1452
- // allow closing by pressing the escape key
1453
- $(document).bind('keydown.dialog-overlay', function(event) {
1454
- if (dialog.options.closeOnEscape && event.keyCode &&
1455
- event.keyCode === $.ui.keyCode.ESCAPE) {
1456
-
1457
- dialog.close(event);
1458
- event.preventDefault();
1459
- }
1460
- });
1461
-
1462
- // handle window resize
1463
- $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
1464
- }
1465
-
1466
- var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
1467
- .appendTo(document.body)
1468
- .css({
1469
- width: this.width(),
1470
- height: this.height()
1471
- });
1472
-
1473
- if ($.fn.bgiframe) {
1474
- $el.bgiframe();
1475
- }
1476
-
1477
- this.instances.push($el);
1478
- return $el;
1479
- },
1480
-
1481
- destroy: function($el) {
1482
- this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
1483
-
1484
- if (this.instances.length === 0) {
1485
- $([document, window]).unbind('.dialog-overlay');
1486
- }
1487
-
1488
- $el.remove();
1489
-
1490
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
1491
- var maxZ = 0;
1492
- $.each(this.instances, function() {
1493
- maxZ = Math.max(maxZ, this.css('z-index'));
1494
- });
1495
- this.maxZ = maxZ;
1496
- },
1497
-
1498
- height: function() {
1499
- var scrollHeight,
1500
- offsetHeight;
1501
- // handle IE 6
1502
- if ($.browser.msie && $.browser.version < 7) {
1503
- scrollHeight = Math.max(
1504
- document.documentElement.scrollHeight,
1505
- document.body.scrollHeight
1506
- );
1507
- offsetHeight = Math.max(
1508
- document.documentElement.offsetHeight,
1509
- document.body.offsetHeight
1510
- );
1511
-
1512
- if (scrollHeight < offsetHeight) {
1513
- return $(window).height() + 'px';
1514
- } else {
1515
- return scrollHeight + 'px';
1516
- }
1517
- // handle "good" browsers
1518
- } else {
1519
- return $(document).height() + 'px';
1520
- }
1521
- },
1522
-
1523
- width: function() {
1524
- var scrollWidth,
1525
- offsetWidth;
1526
- // handle IE 6
1527
- if ($.browser.msie && $.browser.version < 7) {
1528
- scrollWidth = Math.max(
1529
- document.documentElement.scrollWidth,
1530
- document.body.scrollWidth
1531
- );
1532
- offsetWidth = Math.max(
1533
- document.documentElement.offsetWidth,
1534
- document.body.offsetWidth
1535
- );
1536
-
1537
- if (scrollWidth < offsetWidth) {
1538
- return $(window).width() + 'px';
1539
- } else {
1540
- return scrollWidth + 'px';
1541
- }
1542
- // handle "good" browsers
1543
- } else {
1544
- return $(document).width() + 'px';
1545
- }
1546
- },
1547
-
1548
- resize: function() {
1549
- /* If the dialog is draggable and the user drags it past the
1550
- * right edge of the window, the document becomes wider so we
1551
- * need to stretch the overlay. If the user then drags the
1552
- * dialog back to the left, the document will become narrower,
1553
- * so we need to shrink the overlay to the appropriate size.
1554
- * This is handled by shrinking the overlay before setting it
1555
- * to the full document size.
1556
- */
1557
- var $overlays = $([]);
1558
- $.each($.ui.dialog.overlay.instances, function() {
1559
- $overlays = $overlays.add(this);
1560
- });
1561
-
1562
- $overlays.css({
1563
- width: 0,
1564
- height: 0
1565
- }).css({
1566
- width: $.ui.dialog.overlay.width(),
1567
- height: $.ui.dialog.overlay.height()
1568
- });
1569
- }
1570
- });
1571
-
1572
- $.extend($.ui.dialog.overlay.prototype, {
1573
- destroy: function() {
1574
- $.ui.dialog.overlay.destroy(this.$el);
1575
- }
1576
- });
1577
-
1578
- }(jQuery));
1
+ /*!
2
+ * jQuery UI 1.8.4
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI
9
+ */
10
+ (function( $, undefined ) {
11
+
12
+ // prevent duplicate loading
13
+ // this is only a problem because we proxy existing functions
14
+ // and we don't want to double proxy them
15
+ $.ui = $.ui || {};
16
+ if ( $.ui.version ) {
17
+ return;
18
+ }
19
+
20
+ //Helper functions and ui object
21
+ $.extend( $.ui, {
22
+ version: "1.8.4",
23
+
24
+ // $.ui.plugin is deprecated. Use the proxy pattern instead.
25
+ plugin: {
26
+ add: function( module, option, set ) {
27
+ var proto = $.ui[ module ].prototype;
28
+ for ( var i in set ) {
29
+ proto.plugins[ i ] = proto.plugins[ i ] || [];
30
+ proto.plugins[ i ].push( [ option, set[ i ] ] );
31
+ }
32
+ },
33
+ call: function( instance, name, args ) {
34
+ var set = instance.plugins[ name ];
35
+ if ( !set || !instance.element[ 0 ].parentNode ) {
36
+ return;
37
+ }
38
+
39
+ for ( var i = 0; i < set.length; i++ ) {
40
+ if ( instance.options[ set[ i ][ 0 ] ] ) {
41
+ set[ i ][ 1 ].apply( instance.element, args );
42
+ }
43
+ }
44
+ }
45
+ },
46
+
47
+ contains: function( a, b ) {
48
+ return document.compareDocumentPosition ?
49
+ a.compareDocumentPosition( b ) & 16 :
50
+ a !== b && a.contains( b );
51
+ },
52
+
53
+ hasScroll: function( el, a ) {
54
+
55
+ //If overflow is hidden, the element might have extra content, but the user wants to hide it
56
+ if ( $( el ).css( "overflow" ) === "hidden") {
57
+ return false;
58
+ }
59
+
60
+ var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
61
+ has = false;
62
+
63
+ if ( el[ scroll ] > 0 ) {
64
+ return true;
65
+ }
66
+
67
+ // TODO: determine which cases actually cause this to happen
68
+ // if the element doesn't have the scroll set, see if it's possible to
69
+ // set the scroll
70
+ el[ scroll ] = 1;
71
+ has = ( el[ scroll ] > 0 );
72
+ el[ scroll ] = 0;
73
+ return has;
74
+ },
75
+
76
+ isOverAxis: function( x, reference, size ) {
77
+ //Determines when x coordinate is over "b" element axis
78
+ return ( x > reference ) && ( x < ( reference + size ) );
79
+ },
80
+
81
+ isOver: function( y, x, top, left, height, width ) {
82
+ //Determines when x, y coordinates is over "b" element
83
+ return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
84
+ },
85
+
86
+ keyCode: {
87
+ ALT: 18,
88
+ BACKSPACE: 8,
89
+ CAPS_LOCK: 20,
90
+ COMMA: 188,
91
+ COMMAND: 91,
92
+ COMMAND_LEFT: 91, // COMMAND
93
+ COMMAND_RIGHT: 93,
94
+ CONTROL: 17,
95
+ DELETE: 46,
96
+ DOWN: 40,
97
+ END: 35,
98
+ ENTER: 13,
99
+ ESCAPE: 27,
100
+ HOME: 36,
101
+ INSERT: 45,
102
+ LEFT: 37,
103
+ MENU: 93, // COMMAND_RIGHT
104
+ NUMPAD_ADD: 107,
105
+ NUMPAD_DECIMAL: 110,
106
+ NUMPAD_DIVIDE: 111,
107
+ NUMPAD_ENTER: 108,
108
+ NUMPAD_MULTIPLY: 106,
109
+ NUMPAD_SUBTRACT: 109,
110
+ PAGE_DOWN: 34,
111
+ PAGE_UP: 33,
112
+ PERIOD: 190,
113
+ RIGHT: 39,
114
+ SHIFT: 16,
115
+ SPACE: 32,
116
+ TAB: 9,
117
+ UP: 38,
118
+ WINDOWS: 91 // COMMAND
119
+ }
120
+ });
121
+
122
+ //jQuery plugins
123
+ $.fn.extend({
124
+ _focus: $.fn.focus,
125
+ focus: function( delay, fn ) {
126
+ return typeof delay === "number" ?
127
+ this.each(function() {
128
+ var elem = this;
129
+ setTimeout(function() {
130
+ $( elem ).focus();
131
+ if ( fn ) {
132
+ fn.call( elem );
133
+ }
134
+ }, delay );
135
+ }) :
136
+ this._focus.apply( this, arguments );
137
+ },
138
+
139
+ enableSelection: function() {
140
+ return this
141
+ .attr( "unselectable", "off" )
142
+ .css( "MozUserSelect", "" );
143
+ },
144
+
145
+ disableSelection: function() {
146
+ return this
147
+ .attr( "unselectable", "on" )
148
+ .css( "MozUserSelect", "none" );
149
+ },
150
+
151
+ scrollParent: function() {
152
+ var scrollParent;
153
+ if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
154
+ scrollParent = this.parents().filter(function() {
155
+ return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
156
+ }).eq(0);
157
+ } else {
158
+ scrollParent = this.parents().filter(function() {
159
+ return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
160
+ }).eq(0);
161
+ }
162
+
163
+ return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
164
+ },
165
+
166
+ zIndex: function( zIndex ) {
167
+ if ( zIndex !== undefined ) {
168
+ return this.css( "zIndex", zIndex );
169
+ }
170
+
171
+ if ( this.length ) {
172
+ var elem = $( this[ 0 ] ), position, value;
173
+ while ( elem.length && elem[ 0 ] !== document ) {
174
+ // Ignore z-index if position is set to a value where z-index is ignored by the browser
175
+ // This makes behavior of this function consistent across browsers
176
+ // WebKit always returns auto if the element is positioned
177
+ position = elem.css( "position" );
178
+ if ( position === "absolute" || position === "relative" || position === "fixed" ) {
179
+ // IE returns 0 when zIndex is not specified
180
+ // other browsers return a string
181
+ // we ignore the case of nested elements with an explicit value of 0
182
+ // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
183
+ value = parseInt( elem.css( "zIndex" ) );
184
+ if ( !isNaN( value ) && value != 0 ) {
185
+ return value;
186
+ }
187
+ }
188
+ elem = elem.parent();
189
+ }
190
+ }
191
+
192
+ return 0;
193
+ }
194
+ });
195
+
196
+ $.each( [ "Width", "Height" ], function( i, name ) {
197
+ var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
198
+ type = name.toLowerCase(),
199
+ orig = {
200
+ innerWidth: $.fn.innerWidth,
201
+ innerHeight: $.fn.innerHeight,
202
+ outerWidth: $.fn.outerWidth,
203
+ outerHeight: $.fn.outerHeight
204
+ };
205
+
206
+ function reduce( elem, size, border, margin ) {
207
+ $.each( side, function() {
208
+ size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
209
+ if ( border ) {
210
+ size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
211
+ }
212
+ if ( margin ) {
213
+ size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
214
+ }
215
+ });
216
+ return size;
217
+ }
218
+
219
+ $.fn[ "inner" + name ] = function( size ) {
220
+ if ( size === undefined ) {
221
+ return orig[ "inner" + name ].call( this );
222
+ }
223
+
224
+ return this.each(function() {
225
+ $.style( this, type, reduce( this, size ) + "px" );
226
+ });
227
+ };
228
+
229
+ $.fn[ "outer" + name] = function( size, margin ) {
230
+ if ( typeof size !== "number" ) {
231
+ return orig[ "outer" + name ].call( this, size );
232
+ }
233
+
234
+ return this.each(function() {
235
+ $.style( this, type, reduce( this, size, true, margin ) + "px" );
236
+ });
237
+ };
238
+ });
239
+
240
+ //Additional selectors
241
+ function visible( element ) {
242
+ return !$( element ).parents().andSelf().filter(function() {
243
+ return $.curCSS( this, "visibility" ) === "hidden" ||
244
+ $.expr.filters.hidden( this );
245
+ }).length;
246
+ }
247
+
248
+ $.extend( $.expr[ ":" ], {
249
+ data: function( elem, i, match ) {
250
+ return !!$.data( elem, match[ 3 ] );
251
+ },
252
+
253
+ focusable: function( element ) {
254
+ var nodeName = element.nodeName.toLowerCase(),
255
+ tabIndex = $.attr( element, "tabindex" );
256
+ if ( "area" === nodeName ) {
257
+ var map = element.parentNode,
258
+ mapName = map.name,
259
+ img;
260
+ if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
261
+ return false;
262
+ }
263
+ img = $( "img[usemap=#" + mapName + "]" )[0];
264
+ return !!img && visible( img );
265
+ }
266
+ return ( /input|select|textarea|button|object/.test( nodeName )
267
+ ? !element.disabled
268
+ : "a" == nodeName
269
+ ? element.href || !isNaN( tabIndex )
270
+ : !isNaN( tabIndex ))
271
+ // the element and all of its ancestors must be visible
272
+ && visible( element );
273
+ },
274
+
275
+ tabbable: function( element ) {
276
+ var tabIndex = $.attr( element, "tabindex" );
277
+ return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
278
+ }
279
+ });
280
+
281
+ })( jQuery );
282
+ /*!
283
+ * jQuery UI Widget 1.8.4
284
+ *
285
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
286
+ * Dual licensed under the MIT or GPL Version 2 licenses.
287
+ * http://jquery.org/license
288
+ *
289
+ * http://docs.jquery.com/UI/Widget
290
+ */
291
+ (function( $, undefined ) {
292
+
293
+ var _remove = $.fn.remove;
294
+
295
+ $.fn.remove = function( selector, keepData ) {
296
+ return this.each(function() {
297
+ if ( !keepData ) {
298
+ if ( !selector || $.filter( selector, [ this ] ).length ) {
299
+ $( "*", this ).add( [ this ] ).each(function() {
300
+ $( this ).triggerHandler( "remove" );
301
+ });
302
+ }
303
+ }
304
+ return _remove.call( $(this), selector, keepData );
305
+ });
306
+ };
307
+
308
+ $.widget = function( name, base, prototype ) {
309
+ var namespace = name.split( "." )[ 0 ],
310
+ fullName;
311
+ name = name.split( "." )[ 1 ];
312
+ fullName = namespace + "-" + name;
313
+
314
+ if ( !prototype ) {
315
+ prototype = base;
316
+ base = $.Widget;
317
+ }
318
+
319
+ // create selector for plugin
320
+ $.expr[ ":" ][ fullName ] = function( elem ) {
321
+ return !!$.data( elem, name );
322
+ };
323
+
324
+ $[ namespace ] = $[ namespace ] || {};
325
+ $[ namespace ][ name ] = function( options, element ) {
326
+ // allow instantiation without initializing for simple inheritance
327
+ if ( arguments.length ) {
328
+ this._createWidget( options, element );
329
+ }
330
+ };
331
+
332
+ var basePrototype = new base();
333
+ // we need to make the options hash a property directly on the new instance
334
+ // otherwise we'll modify the options hash on the prototype that we're
335
+ // inheriting from
336
+ // $.each( basePrototype, function( key, val ) {
337
+ // if ( $.isPlainObject(val) ) {
338
+ // basePrototype[ key ] = $.extend( {}, val );
339
+ // }
340
+ // });
341
+ basePrototype.options = $.extend( true, {}, basePrototype.options );
342
+ $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
343
+ namespace: namespace,
344
+ widgetName: name,
345
+ widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
346
+ widgetBaseClass: fullName
347
+ }, prototype );
348
+
349
+ $.widget.bridge( name, $[ namespace ][ name ] );
350
+ };
351
+
352
+ $.widget.bridge = function( name, object ) {
353
+ $.fn[ name ] = function( options ) {
354
+ var isMethodCall = typeof options === "string",
355
+ args = Array.prototype.slice.call( arguments, 1 ),
356
+ returnValue = this;
357
+
358
+ // allow multiple hashes to be passed on init
359
+ options = !isMethodCall && args.length ?
360
+ $.extend.apply( null, [ true, options ].concat(args) ) :
361
+ options;
362
+
363
+ // prevent calls to internal methods
364
+ if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
365
+ return returnValue;
366
+ }
367
+
368
+ if ( isMethodCall ) {
369
+ this.each(function() {
370
+ var instance = $.data( this, name ),
371
+ methodValue = instance && $.isFunction( instance[options] ) ?
372
+ instance[ options ].apply( instance, args ) :
373
+ instance;
374
+ if ( methodValue !== instance && methodValue !== undefined ) {
375
+ returnValue = methodValue;
376
+ return false;
377
+ }
378
+ });
379
+ } else {
380
+ this.each(function() {
381
+ var instance = $.data( this, name );
382
+ if ( instance ) {
383
+ if ( options ) {
384
+ instance.option( options );
385
+ }
386
+ instance._init();
387
+ } else {
388
+ $.data( this, name, new object( options, this ) );
389
+ }
390
+ });
391
+ }
392
+
393
+ return returnValue;
394
+ };
395
+ };
396
+
397
+ $.Widget = function( options, element ) {
398
+ // allow instantiation without initializing for simple inheritance
399
+ if ( arguments.length ) {
400
+ this._createWidget( options, element );
401
+ }
402
+ };
403
+
404
+ $.Widget.prototype = {
405
+ widgetName: "widget",
406
+ widgetEventPrefix: "",
407
+ options: {
408
+ disabled: false
409
+ },
410
+ _createWidget: function( options, element ) {
411
+ // $.widget.bridge stores the plugin instance, but we do it anyway
412
+ // so that it's stored even before the _create function runs
413
+ $.data( element, this.widgetName, this );
414
+ this.element = $( element );
415
+ this.options = $.extend( true, {},
416
+ this.options,
417
+ $.metadata && $.metadata.get( element )[ this.widgetName ],
418
+ options );
419
+
420
+ var self = this;
421
+ this.element.bind( "remove." + this.widgetName, function() {
422
+ self.destroy();
423
+ });
424
+
425
+ this._create();
426
+ this._init();
427
+ },
428
+ _create: function() {},
429
+ _init: function() {},
430
+
431
+ destroy: function() {
432
+ this.element
433
+ .unbind( "." + this.widgetName )
434
+ .removeData( this.widgetName );
435
+ this.widget()
436
+ .unbind( "." + this.widgetName )
437
+ .removeAttr( "aria-disabled" )
438
+ .removeClass(
439
+ this.widgetBaseClass + "-disabled " +
440
+ "ui-state-disabled" );
441
+ },
442
+
443
+ widget: function() {
444
+ return this.element;
445
+ },
446
+
447
+ option: function( key, value ) {
448
+ var options = key,
449
+ self = this;
450
+
451
+ if ( arguments.length === 0 ) {
452
+ // don't return a reference to the internal hash
453
+ return $.extend( {}, self.options );
454
+ }
455
+
456
+ if (typeof key === "string" ) {
457
+ if ( value === undefined ) {
458
+ return this.options[ key ];
459
+ }
460
+ options = {};
461
+ options[ key ] = value;
462
+ }
463
+
464
+ $.each( options, function( key, value ) {
465
+ self._setOption( key, value );
466
+ });
467
+
468
+ return self;
469
+ },
470
+ _setOption: function( key, value ) {
471
+ this.options[ key ] = value;
472
+
473
+ if ( key === "disabled" ) {
474
+ this.widget()
475
+ [ value ? "addClass" : "removeClass"](
476
+ this.widgetBaseClass + "-disabled" + " " +
477
+ "ui-state-disabled" )
478
+ .attr( "aria-disabled", value );
479
+ }
480
+
481
+ return this;
482
+ },
483
+
484
+ enable: function() {
485
+ return this._setOption( "disabled", false );
486
+ },
487
+ disable: function() {
488
+ return this._setOption( "disabled", true );
489
+ },
490
+
491
+ _trigger: function( type, event, data ) {
492
+ var callback = this.options[ type ];
493
+
494
+ event = $.Event( event );
495
+ event.type = ( type === this.widgetEventPrefix ?
496
+ type :
497
+ this.widgetEventPrefix + type ).toLowerCase();
498
+ data = data || {};
499
+
500
+ // copy original event properties over to the new event
501
+ // this would happen if we could call $.event.fix instead of $.Event
502
+ // but we don't have a way to force an event to be fixed multiple times
503
+ if ( event.originalEvent ) {
504
+ for ( var i = $.event.props.length, prop; i; ) {
505
+ prop = $.event.props[ --i ];
506
+ event[ prop ] = event.originalEvent[ prop ];
507
+ }
508
+ }
509
+
510
+ this.element.trigger( event, data );
511
+
512
+ return !( $.isFunction(callback) &&
513
+ callback.call( this.element[0], event, data ) === false ||
514
+ event.isDefaultPrevented() );
515
+ }
516
+ };
517
+
518
+ })( jQuery );
519
+ /*
520
+ * jQuery UI Position 1.8.4
521
+ *
522
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
523
+ * Dual licensed under the MIT or GPL Version 2 licenses.
524
+ * http://jquery.org/license
525
+ *
526
+ * http://docs.jquery.com/UI/Position
527
+ */
528
+ (function( $, undefined ) {
529
+
530
+ $.ui = $.ui || {};
531
+
532
+ var horizontalPositions = /left|center|right/,
533
+ horizontalDefault = "center",
534
+ verticalPositions = /top|center|bottom/,
535
+ verticalDefault = "center",
536
+ _position = $.fn.position,
537
+ _offset = $.fn.offset;
538
+
539
+ $.fn.position = function( options ) {
540
+ if ( !options || !options.of ) {
541
+ return _position.apply( this, arguments );
542
+ }
543
+
544
+ // make a copy, we don't want to modify arguments
545
+ options = $.extend( {}, options );
546
+
547
+ var target = $( options.of ),
548
+ collision = ( options.collision || "flip" ).split( " " ),
549
+ offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
550
+ targetWidth,
551
+ targetHeight,
552
+ basePosition;
553
+
554
+ if ( options.of.nodeType === 9 ) {
555
+ targetWidth = target.width();
556
+ targetHeight = target.height();
557
+ basePosition = { top: 0, left: 0 };
558
+ } else if ( options.of.scrollTo && options.of.document ) {
559
+ targetWidth = target.width();
560
+ targetHeight = target.height();
561
+ basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
562
+ } else if ( options.of.preventDefault ) {
563
+ // force left top to allow flipping
564
+ options.at = "left top";
565
+ targetWidth = targetHeight = 0;
566
+ basePosition = { top: options.of.pageY, left: options.of.pageX };
567
+ } else {
568
+ targetWidth = target.outerWidth();
569
+ targetHeight = target.outerHeight();
570
+ basePosition = target.offset();
571
+ }
572
+
573
+ // force my and at to have valid horizontal and veritcal positions
574
+ // if a value is missing or invalid, it will be converted to center
575
+ $.each( [ "my", "at" ], function() {
576
+ var pos = ( options[this] || "" ).split( " " );
577
+ if ( pos.length === 1) {
578
+ pos = horizontalPositions.test( pos[0] ) ?
579
+ pos.concat( [verticalDefault] ) :
580
+ verticalPositions.test( pos[0] ) ?
581
+ [ horizontalDefault ].concat( pos ) :
582
+ [ horizontalDefault, verticalDefault ];
583
+ }
584
+ pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
585
+ pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
586
+ options[ this ] = pos;
587
+ });
588
+
589
+ // normalize collision option
590
+ if ( collision.length === 1 ) {
591
+ collision[ 1 ] = collision[ 0 ];
592
+ }
593
+
594
+ // normalize offset option
595
+ offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
596
+ if ( offset.length === 1 ) {
597
+ offset[ 1 ] = offset[ 0 ];
598
+ }
599
+ offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
600
+
601
+ if ( options.at[0] === "right" ) {
602
+ basePosition.left += targetWidth;
603
+ } else if (options.at[0] === horizontalDefault ) {
604
+ basePosition.left += targetWidth / 2;
605
+ }
606
+
607
+ if ( options.at[1] === "bottom" ) {
608
+ basePosition.top += targetHeight;
609
+ } else if ( options.at[1] === verticalDefault ) {
610
+ basePosition.top += targetHeight / 2;
611
+ }
612
+
613
+ basePosition.left += offset[ 0 ];
614
+ basePosition.top += offset[ 1 ];
615
+
616
+ return this.each(function() {
617
+ var elem = $( this ),
618
+ elemWidth = elem.outerWidth(),
619
+ elemHeight = elem.outerHeight(),
620
+ position = $.extend( {}, basePosition );
621
+
622
+ if ( options.my[0] === "right" ) {
623
+ position.left -= elemWidth;
624
+ } else if ( options.my[0] === horizontalDefault ) {
625
+ position.left -= elemWidth / 2;
626
+ }
627
+
628
+ if ( options.my[1] === "bottom" ) {
629
+ position.top -= elemHeight;
630
+ } else if ( options.my[1] === verticalDefault ) {
631
+ position.top -= elemHeight / 2;
632
+ }
633
+
634
+ // prevent fractions (see #5280)
635
+ position.left = parseInt( position.left );
636
+ position.top = parseInt( position.top );
637
+
638
+ $.each( [ "left", "top" ], function( i, dir ) {
639
+ if ( $.ui.position[ collision[i] ] ) {
640
+ $.ui.position[ collision[i] ][ dir ]( position, {
641
+ targetWidth: targetWidth,
642
+ targetHeight: targetHeight,
643
+ elemWidth: elemWidth,
644
+ elemHeight: elemHeight,
645
+ offset: offset,
646
+ my: options.my,
647
+ at: options.at
648
+ });
649
+ }
650
+ });
651
+
652
+ if ( $.fn.bgiframe ) {
653
+ elem.bgiframe();
654
+ }
655
+ elem.offset( $.extend( position, { using: options.using } ) );
656
+ });
657
+ };
658
+
659
+ $.ui.position = {
660
+ fit: {
661
+ left: function( position, data ) {
662
+ var win = $( window ),
663
+ over = position.left + data.elemWidth - win.width() - win.scrollLeft();
664
+ position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
665
+ },
666
+ top: function( position, data ) {
667
+ var win = $( window ),
668
+ over = position.top + data.elemHeight - win.height() - win.scrollTop();
669
+ position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
670
+ }
671
+ },
672
+
673
+ flip: {
674
+ left: function( position, data ) {
675
+ if ( data.at[0] === "center" ) {
676
+ return;
677
+ }
678
+ var win = $( window ),
679
+ over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
680
+ myOffset = data.my[ 0 ] === "left" ?
681
+ -data.elemWidth :
682
+ data.my[ 0 ] === "right" ?
683
+ data.elemWidth :
684
+ 0,
685
+ offset = -2 * data.offset[ 0 ];
686
+ position.left += position.left < 0 ?
687
+ myOffset + data.targetWidth + offset :
688
+ over > 0 ?
689
+ myOffset - data.targetWidth + offset :
690
+ 0;
691
+ },
692
+ top: function( position, data ) {
693
+ if ( data.at[1] === "center" ) {
694
+ return;
695
+ }
696
+ var win = $( window ),
697
+ over = position.top + data.elemHeight - win.height() - win.scrollTop(),
698
+ myOffset = data.my[ 1 ] === "top" ?
699
+ -data.elemHeight :
700
+ data.my[ 1 ] === "bottom" ?
701
+ data.elemHeight :
702
+ 0,
703
+ atOffset = data.at[ 1 ] === "top" ?
704
+ data.targetHeight :
705
+ -data.targetHeight,
706
+ offset = -2 * data.offset[ 1 ];
707
+ position.top += position.top < 0 ?
708
+ myOffset + data.targetHeight + offset :
709
+ over > 0 ?
710
+ myOffset + atOffset + offset :
711
+ 0;
712
+ }
713
+ }
714
+ };
715
+
716
+ // offset setter from jQuery 1.4
717
+ if ( !$.offset.setOffset ) {
718
+ $.offset.setOffset = function( elem, options ) {
719
+ // set position first, in-case top/left are set even on static elem
720
+ if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
721
+ elem.style.position = "relative";
722
+ }
723
+ var curElem = $( elem ),
724
+ curOffset = curElem.offset(),
725
+ curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
726
+ curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
727
+ props = {
728
+ top: (options.top - curOffset.top) + curTop,
729
+ left: (options.left - curOffset.left) + curLeft
730
+ };
731
+
732
+ if ( 'using' in options ) {
733
+ options.using.call( elem, props );
734
+ } else {
735
+ curElem.css( props );
736
+ }
737
+ };
738
+
739
+ $.fn.offset = function( options ) {
740
+ var elem = this[ 0 ];
741
+ if ( !elem || !elem.ownerDocument ) { return null; }
742
+ if ( options ) {
743
+ return this.each(function() {
744
+ $.offset.setOffset( this, options );
745
+ });
746
+ }
747
+ return _offset.call( this );
748
+ };
749
+ }
750
+
751
+ }( jQuery ));
752
+ /*
753
+ * jQuery UI Dialog 1.8.4
754
+ *
755
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
756
+ * Dual licensed under the MIT or GPL Version 2 licenses.
757
+ * http://jquery.org/license
758
+ *
759
+ * http://docs.jquery.com/UI/Dialog
760
+ *
761
+ * Depends:
762
+ * jquery.ui.core.js
763
+ * jquery.ui.widget.js
764
+ * jquery.ui.button.js
765
+ * jquery.ui.draggable.js
766
+ * jquery.ui.mouse.js
767
+ * jquery.ui.position.js
768
+ * jquery.ui.resizable.js
769
+ */
770
+ (function( $, undefined ) {
771
+
772
+ var uiDialogClasses =
773
+ 'ui-dialog ' +
774
+ 'ui-widget ' +
775
+ 'ui-widget-content ' +
776
+ 'ui-corner-all ';
777
+
778
+ $.widget("ui.dialog", {
779
+ options: {
780
+ autoOpen: true,
781
+ buttons: {},
782
+ closeOnEscape: true,
783
+ closeText: 'close',
784
+ dialogClass: '',
785
+ draggable: true,
786
+ hide: null,
787
+ height: 'auto',
788
+ maxHeight: false,
789
+ maxWidth: false,
790
+ minHeight: 150,
791
+ minWidth: 150,
792
+ modal: false,
793
+ position: {
794
+ my: 'center',
795
+ at: 'center',
796
+ of: window,
797
+ collision: 'fit',
798
+ // ensure that the titlebar is never outside the document
799
+ using: function(pos) {
800
+ var topOffset = $(this).css(pos).offset().top;
801
+ if (topOffset < 0) {
802
+ $(this).css('top', pos.top - topOffset);
803
+ }
804
+ }
805
+ },
806
+ resizable: true,
807
+ show: null,
808
+ stack: true,
809
+ title: '',
810
+ width: 300,
811
+ zIndex: 1000
812
+ },
813
+
814
+ _create: function() {
815
+ this.originalTitle = this.element.attr('title');
816
+ // #5742 - .attr() might return a DOMElement
817
+ if ( typeof this.originalTitle !== "string" ) {
818
+ this.originalTitle = "";
819
+ }
820
+
821
+ var self = this,
822
+ options = self.options,
823
+
824
+ title = options.title || self.originalTitle || '&#160;',
825
+ titleId = $.ui.dialog.getTitleId(self.element),
826
+
827
+ uiDialog = (self.uiDialog = $('<div></div>'))
828
+ .appendTo(document.body)
829
+ .hide()
830
+ .addClass(uiDialogClasses + options.dialogClass)
831
+ .css({
832
+ zIndex: options.zIndex
833
+ })
834
+ // setting tabIndex makes the div focusable
835
+ // setting outline to 0 prevents a border on focus in Mozilla
836
+ .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
837
+ if (options.closeOnEscape && event.keyCode &&
838
+ event.keyCode === $.ui.keyCode.ESCAPE) {
839
+
840
+ self.close(event);
841
+ event.preventDefault();
842
+ }
843
+ })
844
+ .attr({
845
+ role: 'dialog',
846
+ 'aria-labelledby': titleId
847
+ })
848
+ .mousedown(function(event) {
849
+ self.moveToTop(false, event);
850
+ }),
851
+
852
+ uiDialogContent = self.element
853
+ .show()
854
+ .removeAttr('title')
855
+ .addClass(
856
+ 'ui-dialog-content ' +
857
+ 'ui-widget-content')
858
+ .appendTo(uiDialog),
859
+
860
+ uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
861
+ .addClass(
862
+ 'ui-dialog-titlebar ' +
863
+ 'ui-widget-header ' +
864
+ 'ui-corner-all ' +
865
+ 'ui-helper-clearfix'
866
+ )
867
+ .prependTo(uiDialog),
868
+
869
+ uiDialogTitlebarClose = $('<a href="#"></a>')
870
+ .addClass(
871
+ 'ui-dialog-titlebar-close ' +
872
+ 'ui-corner-all'
873
+ )
874
+ .attr('role', 'button')
875
+ .hover(
876
+ function() {
877
+ uiDialogTitlebarClose.addClass('ui-state-hover');
878
+ },
879
+ function() {
880
+ uiDialogTitlebarClose.removeClass('ui-state-hover');
881
+ }
882
+ )
883
+ .focus(function() {
884
+ uiDialogTitlebarClose.addClass('ui-state-focus');
885
+ })
886
+ .blur(function() {
887
+ uiDialogTitlebarClose.removeClass('ui-state-focus');
888
+ })
889
+ .click(function(event) {
890
+ self.close(event);
891
+ return false;
892
+ })
893
+ .appendTo(uiDialogTitlebar),
894
+
895
+ uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
896
+ .addClass(
897
+ 'ui-icon ' +
898
+ 'ui-icon-closethick'
899
+ )
900
+ .text(options.closeText)
901
+ .appendTo(uiDialogTitlebarClose),
902
+
903
+ uiDialogTitle = $('<span></span>')
904
+ .addClass('ui-dialog-title')
905
+ .attr('id', titleId)
906
+ .html(title)
907
+ .prependTo(uiDialogTitlebar);
908
+
909
+ //handling of deprecated beforeclose (vs beforeClose) option
910
+ //Ticket #4669 http://dev.jqueryui.com/ticket/4669
911
+ //TODO: remove in 1.9pre
912
+ if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
913
+ options.beforeClose = options.beforeclose;
914
+ }
915
+
916
+ uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
917
+
918
+ if (options.draggable && $.fn.draggable) {
919
+ self._makeDraggable();
920
+ }
921
+ if (options.resizable && $.fn.resizable) {
922
+ self._makeResizable();
923
+ }
924
+
925
+ self._createButtons(options.buttons);
926
+ self._isOpen = false;
927
+
928
+ if ($.fn.bgiframe) {
929
+ uiDialog.bgiframe();
930
+ }
931
+ },
932
+
933
+ _init: function() {
934
+ if ( this.options.autoOpen ) {
935
+ this.open();
936
+ }
937
+ },
938
+
939
+ destroy: function() {
940
+ var self = this;
941
+
942
+ if (self.overlay) {
943
+ self.overlay.destroy();
944
+ }
945
+ self.uiDialog.hide();
946
+ self.element
947
+ .unbind('.dialog')
948
+ .removeData('dialog')
949
+ .removeClass('ui-dialog-content ui-widget-content')
950
+ .hide().appendTo('body');
951
+ self.uiDialog.remove();
952
+
953
+ if (self.originalTitle) {
954
+ self.element.attr('title', self.originalTitle);
955
+ }
956
+
957
+ return self;
958
+ },
959
+
960
+ widget: function() {
961
+ return this.uiDialog;
962
+ },
963
+
964
+ close: function(event) {
965
+ var self = this,
966
+ maxZ;
967
+
968
+ if (false === self._trigger('beforeClose', event)) {
969
+ return;
970
+ }
971
+
972
+ if (self.overlay) {
973
+ self.overlay.destroy();
974
+ }
975
+ self.uiDialog.unbind('keypress.ui-dialog');
976
+
977
+ self._isOpen = false;
978
+
979
+ if (self.options.hide) {
980
+ self.uiDialog.hide(self.options.hide, function() {
981
+ self._trigger('close', event);
982
+ });
983
+ } else {
984
+ self.uiDialog.hide();
985
+ self._trigger('close', event);
986
+ }
987
+
988
+ $.ui.dialog.overlay.resize();
989
+
990
+ // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
991
+ if (self.options.modal) {
992
+ maxZ = 0;
993
+ $('.ui-dialog').each(function() {
994
+ if (this !== self.uiDialog[0]) {
995
+ maxZ = Math.max(maxZ, $(this).css('z-index'));
996
+ }
997
+ });
998
+ $.ui.dialog.maxZ = maxZ;
999
+ }
1000
+
1001
+ return self;
1002
+ },
1003
+
1004
+ isOpen: function() {
1005
+ return this._isOpen;
1006
+ },
1007
+
1008
+ // the force parameter allows us to move modal dialogs to their correct
1009
+ // position on open
1010
+ moveToTop: function(force, event) {
1011
+ var self = this,
1012
+ options = self.options,
1013
+ saveScroll;
1014
+
1015
+ if ((options.modal && !force) ||
1016
+ (!options.stack && !options.modal)) {
1017
+ return self._trigger('focus', event);
1018
+ }
1019
+
1020
+ if (options.zIndex > $.ui.dialog.maxZ) {
1021
+ $.ui.dialog.maxZ = options.zIndex;
1022
+ }
1023
+ if (self.overlay) {
1024
+ $.ui.dialog.maxZ += 1;
1025
+ self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
1026
+ }
1027
+
1028
+ //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
1029
+ // http://ui.jquery.com/bugs/ticket/3193
1030
+ saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
1031
+ $.ui.dialog.maxZ += 1;
1032
+ self.uiDialog.css('z-index', $.ui.dialog.maxZ);
1033
+ self.element.attr(saveScroll);
1034
+ self._trigger('focus', event);
1035
+
1036
+ return self;
1037
+ },
1038
+
1039
+ open: function() {
1040
+ if (this._isOpen) { return; }
1041
+
1042
+ var self = this,
1043
+ options = self.options,
1044
+ uiDialog = self.uiDialog;
1045
+
1046
+ self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
1047
+ if (uiDialog.next().length) {
1048
+ uiDialog.appendTo('body');
1049
+ }
1050
+ self._size();
1051
+ self._position(options.position);
1052
+ uiDialog.show(options.show);
1053
+ self.moveToTop(true);
1054
+
1055
+ // prevent tabbing out of modal dialogs
1056
+ if (options.modal) {
1057
+ uiDialog.bind('keypress.ui-dialog', function(event) {
1058
+ if (event.keyCode !== $.ui.keyCode.TAB) {
1059
+ return;
1060
+ }
1061
+
1062
+ var tabbables = $(':tabbable', this),
1063
+ first = tabbables.filter(':first'),
1064
+ last = tabbables.filter(':last');
1065
+
1066
+ if (event.target === last[0] && !event.shiftKey) {
1067
+ first.focus(1);
1068
+ return false;
1069
+ } else if (event.target === first[0] && event.shiftKey) {
1070
+ last.focus(1);
1071
+ return false;
1072
+ }
1073
+ });
1074
+ }
1075
+
1076
+ // set focus to the first tabbable element in the content area or the first button
1077
+ // if there are no tabbable elements, set focus on the dialog itself
1078
+ $(self.element.find(':tabbable').get().concat(
1079
+ uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
1080
+ uiDialog.get()))).eq(0).focus();
1081
+
1082
+ self._trigger('open');
1083
+ self._isOpen = true;
1084
+
1085
+ return self;
1086
+ },
1087
+
1088
+ _createButtons: function(buttons) {
1089
+ var self = this,
1090
+ hasButtons = false,
1091
+ uiDialogButtonPane = $('<div></div>')
1092
+ .addClass(
1093
+ 'ui-dialog-buttonpane ' +
1094
+ 'ui-widget-content ' +
1095
+ 'ui-helper-clearfix'
1096
+ ),
1097
+ uiButtonSet = $( "<div></div>" )
1098
+ .addClass( "ui-dialog-buttonset" )
1099
+ .appendTo( uiDialogButtonPane );
1100
+
1101
+ // if we already have a button pane, remove it
1102
+ self.uiDialog.find('.ui-dialog-buttonpane').remove();
1103
+
1104
+ if (typeof buttons === 'object' && buttons !== null) {
1105
+ $.each(buttons, function() {
1106
+ return !(hasButtons = true);
1107
+ });
1108
+ }
1109
+ if (hasButtons) {
1110
+ $.each(buttons, function(name, fn) {
1111
+ var button = $('<button type="button"></button>')
1112
+ .text(name)
1113
+ .click(function() { fn.apply(self.element[0], arguments); })
1114
+ .appendTo(uiButtonSet);
1115
+ if ($.fn.button) {
1116
+ button.button();
1117
+ }
1118
+ });
1119
+ uiDialogButtonPane.appendTo(self.uiDialog);
1120
+ }
1121
+ },
1122
+
1123
+ _makeDraggable: function() {
1124
+ var self = this,
1125
+ options = self.options,
1126
+ doc = $(document),
1127
+ heightBeforeDrag;
1128
+
1129
+ function filteredUi(ui) {
1130
+ return {
1131
+ position: ui.position,
1132
+ offset: ui.offset
1133
+ };
1134
+ }
1135
+
1136
+ self.uiDialog.draggable({
1137
+ cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
1138
+ handle: '.ui-dialog-titlebar',
1139
+ containment: 'document',
1140
+ start: function(event, ui) {
1141
+ heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
1142
+ $(this).height($(this).height()).addClass("ui-dialog-dragging");
1143
+ self._trigger('dragStart', event, filteredUi(ui));
1144
+ },
1145
+ drag: function(event, ui) {
1146
+ self._trigger('drag', event, filteredUi(ui));
1147
+ },
1148
+ stop: function(event, ui) {
1149
+ options.position = [ui.position.left - doc.scrollLeft(),
1150
+ ui.position.top - doc.scrollTop()];
1151
+ $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
1152
+ self._trigger('dragStop', event, filteredUi(ui));
1153
+ $.ui.dialog.overlay.resize();
1154
+ }
1155
+ });
1156
+ },
1157
+
1158
+ _makeResizable: function(handles) {
1159
+ handles = (handles === undefined ? this.options.resizable : handles);
1160
+ var self = this,
1161
+ options = self.options,
1162
+ // .ui-resizable has position: relative defined in the stylesheet
1163
+ // but dialogs have to use absolute or fixed positioning
1164
+ position = self.uiDialog.css('position'),
1165
+ resizeHandles = (typeof handles === 'string' ?
1166
+ handles :
1167
+ 'n,e,s,w,se,sw,ne,nw'
1168
+ );
1169
+
1170
+ function filteredUi(ui) {
1171
+ return {
1172
+ originalPosition: ui.originalPosition,
1173
+ originalSize: ui.originalSize,
1174
+ position: ui.position,
1175
+ size: ui.size
1176
+ };
1177
+ }
1178
+
1179
+ self.uiDialog.resizable({
1180
+ cancel: '.ui-dialog-content',
1181
+ containment: 'document',
1182
+ alsoResize: self.element,
1183
+ maxWidth: options.maxWidth,
1184
+ maxHeight: options.maxHeight,
1185
+ minWidth: options.minWidth,
1186
+ minHeight: self._minHeight(),
1187
+ handles: resizeHandles,
1188
+ start: function(event, ui) {
1189
+ $(this).addClass("ui-dialog-resizing");
1190
+ self._trigger('resizeStart', event, filteredUi(ui));
1191
+ },
1192
+ resize: function(event, ui) {
1193
+ self._trigger('resize', event, filteredUi(ui));
1194
+ },
1195
+ stop: function(event, ui) {
1196
+ $(this).removeClass("ui-dialog-resizing");
1197
+ options.height = $(this).height();
1198
+ options.width = $(this).width();
1199
+ self._trigger('resizeStop', event, filteredUi(ui));
1200
+ $.ui.dialog.overlay.resize();
1201
+ }
1202
+ })
1203
+ .css('position', position)
1204
+ .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
1205
+ },
1206
+
1207
+ _minHeight: function() {
1208
+ var options = this.options;
1209
+
1210
+ if (options.height === 'auto') {
1211
+ return options.minHeight;
1212
+ } else {
1213
+ return Math.min(options.minHeight, options.height);
1214
+ }
1215
+ },
1216
+
1217
+ _position: function(position) {
1218
+ var myAt = [],
1219
+ offset = [0, 0],
1220
+ isVisible;
1221
+
1222
+ if (position) {
1223
+ // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
1224
+ // if (typeof position == 'string' || $.isArray(position)) {
1225
+ // myAt = $.isArray(position) ? position : position.split(' ');
1226
+
1227
+ if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
1228
+ myAt = position.split ? position.split(' ') : [position[0], position[1]];
1229
+ if (myAt.length === 1) {
1230
+ myAt[1] = myAt[0];
1231
+ }
1232
+
1233
+ $.each(['left', 'top'], function(i, offsetPosition) {
1234
+ if (+myAt[i] === myAt[i]) {
1235
+ offset[i] = myAt[i];
1236
+ myAt[i] = offsetPosition;
1237
+ }
1238
+ });
1239
+
1240
+ position = {
1241
+ my: myAt.join(" "),
1242
+ at: myAt.join(" "),
1243
+ offset: offset.join(" ")
1244
+ };
1245
+ }
1246
+
1247
+ position = $.extend({}, $.ui.dialog.prototype.options.position, position);
1248
+ } else {
1249
+ position = $.ui.dialog.prototype.options.position;
1250
+ }
1251
+
1252
+ // need to show the dialog to get the actual offset in the position plugin
1253
+ isVisible = this.uiDialog.is(':visible');
1254
+ if (!isVisible) {
1255
+ this.uiDialog.show();
1256
+ }
1257
+ this.uiDialog
1258
+ // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
1259
+ .css({ top: 0, left: 0 })
1260
+ .position(position);
1261
+ if (!isVisible) {
1262
+ this.uiDialog.hide();
1263
+ }
1264
+ },
1265
+
1266
+ _setOption: function(key, value){
1267
+ var self = this,
1268
+ uiDialog = self.uiDialog,
1269
+ isResizable = uiDialog.is(':data(resizable)'),
1270
+ resize = false;
1271
+
1272
+ switch (key) {
1273
+ //handling of deprecated beforeclose (vs beforeClose) option
1274
+ //Ticket #4669 http://dev.jqueryui.com/ticket/4669
1275
+ //TODO: remove in 1.9pre
1276
+ case "beforeclose":
1277
+ key = "beforeClose";
1278
+ break;
1279
+ case "buttons":
1280
+ self._createButtons(value);
1281
+ resize = true;
1282
+ break;
1283
+ case "closeText":
1284
+ // convert whatever was passed in to a string, for text() to not throw up
1285
+ self.uiDialogTitlebarCloseText.text("" + value);
1286
+ break;
1287
+ case "dialogClass":
1288
+ uiDialog
1289
+ .removeClass(self.options.dialogClass)
1290
+ .addClass(uiDialogClasses + value);
1291
+ break;
1292
+ case "disabled":
1293
+ if (value) {
1294
+ uiDialog.addClass('ui-dialog-disabled');
1295
+ } else {
1296
+ uiDialog.removeClass('ui-dialog-disabled');
1297
+ }
1298
+ break;
1299
+ case "draggable":
1300
+ if (value) {
1301
+ self._makeDraggable();
1302
+ } else {
1303
+ uiDialog.draggable('destroy');
1304
+ }
1305
+ break;
1306
+ case "height":
1307
+ resize = true;
1308
+ break;
1309
+ case "maxHeight":
1310
+ if (isResizable) {
1311
+ uiDialog.resizable('option', 'maxHeight', value);
1312
+ }
1313
+ resize = true;
1314
+ break;
1315
+ case "maxWidth":
1316
+ if (isResizable) {
1317
+ uiDialog.resizable('option', 'maxWidth', value);
1318
+ }
1319
+ resize = true;
1320
+ break;
1321
+ case "minHeight":
1322
+ if (isResizable) {
1323
+ uiDialog.resizable('option', 'minHeight', value);
1324
+ }
1325
+ resize = true;
1326
+ break;
1327
+ case "minWidth":
1328
+ if (isResizable) {
1329
+ uiDialog.resizable('option', 'minWidth', value);
1330
+ }
1331
+ resize = true;
1332
+ break;
1333
+ case "position":
1334
+ self._position(value);
1335
+ break;
1336
+ case "resizable":
1337
+ // currently resizable, becoming non-resizable
1338
+ if (isResizable && !value) {
1339
+ uiDialog.resizable('destroy');
1340
+ }
1341
+
1342
+ // currently resizable, changing handles
1343
+ if (isResizable && typeof value === 'string') {
1344
+ uiDialog.resizable('option', 'handles', value);
1345
+ }
1346
+
1347
+ // currently non-resizable, becoming resizable
1348
+ if (!isResizable && value !== false) {
1349
+ self._makeResizable(value);
1350
+ }
1351
+ break;
1352
+ case "title":
1353
+ // convert whatever was passed in o a string, for html() to not throw up
1354
+ $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
1355
+ break;
1356
+ case "width":
1357
+ resize = true;
1358
+ break;
1359
+ }
1360
+
1361
+ $.Widget.prototype._setOption.apply(self, arguments);
1362
+ if (resize) {
1363
+ self._size();
1364
+ }
1365
+ },
1366
+
1367
+ _size: function() {
1368
+ /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
1369
+ * divs will both have width and height set, so we need to reset them
1370
+ */
1371
+ var options = this.options,
1372
+ nonContentHeight;
1373
+
1374
+ // reset content sizing
1375
+ // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
1376
+ this.element.css({
1377
+ width: 'auto',
1378
+ minHeight: 0,
1379
+ height: 0
1380
+ });
1381
+
1382
+ if (options.minWidth > options.width) {
1383
+ options.width = options.minWidth;
1384
+ }
1385
+
1386
+ // reset wrapper sizing
1387
+ // determine the height of all the non-content elements
1388
+ nonContentHeight = this.uiDialog.css({
1389
+ height: 'auto',
1390
+ width: options.width
1391
+ })
1392
+ .height();
1393
+
1394
+ this.element
1395
+ .css(options.height === 'auto' ? {
1396
+ minHeight: Math.max(options.minHeight - nonContentHeight, 0),
1397
+ height: 'auto'
1398
+ } : {
1399
+ minHeight: 0,
1400
+ height: Math.max(options.height - nonContentHeight, 0)
1401
+ })
1402
+ .show();
1403
+
1404
+ if (this.uiDialog.is(':data(resizable)')) {
1405
+ this.uiDialog.resizable('option', 'minHeight', this._minHeight());
1406
+ }
1407
+ }
1408
+ });
1409
+
1410
+ $.extend($.ui.dialog, {
1411
+ version: "1.8.4",
1412
+
1413
+ uuid: 0,
1414
+ maxZ: 0,
1415
+
1416
+ getTitleId: function($el) {
1417
+ var id = $el.attr('id');
1418
+ if (!id) {
1419
+ this.uuid += 1;
1420
+ id = this.uuid;
1421
+ }
1422
+ return 'ui-dialog-title-' + id;
1423
+ },
1424
+
1425
+ overlay: function(dialog) {
1426
+ this.$el = $.ui.dialog.overlay.create(dialog);
1427
+ }
1428
+ });
1429
+
1430
+ $.extend($.ui.dialog.overlay, {
1431
+ instances: [],
1432
+ // reuse old instances due to IE memory leak with alpha transparency (see #5185)
1433
+ oldInstances: [],
1434
+ maxZ: 0,
1435
+ events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
1436
+ function(event) { return event + '.dialog-overlay'; }).join(' '),
1437
+ create: function(dialog) {
1438
+ if (this.instances.length === 0) {
1439
+ // prevent use of anchors and inputs
1440
+ // we use a setTimeout in case the overlay is created from an
1441
+ // event that we're going to be cancelling (see #2804)
1442
+ setTimeout(function() {
1443
+ // handle $(el).dialog().dialog('close') (see #4065)
1444
+ if ($.ui.dialog.overlay.instances.length) {
1445
+ $(document).bind($.ui.dialog.overlay.events, function(event) {
1446
+ // stop events if the z-index of the target is < the z-index of the overlay
1447
+ return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
1448
+ });
1449
+ }
1450
+ }, 1);
1451
+
1452
+ // allow closing by pressing the escape key
1453
+ $(document).bind('keydown.dialog-overlay', function(event) {
1454
+ if (dialog.options.closeOnEscape && event.keyCode &&
1455
+ event.keyCode === $.ui.keyCode.ESCAPE) {
1456
+
1457
+ dialog.close(event);
1458
+ event.preventDefault();
1459
+ }
1460
+ });
1461
+
1462
+ // handle window resize
1463
+ $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
1464
+ }
1465
+
1466
+ var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
1467
+ .appendTo(document.body)
1468
+ .css({
1469
+ width: this.width(),
1470
+ height: this.height()
1471
+ });
1472
+
1473
+ if ($.fn.bgiframe) {
1474
+ $el.bgiframe();
1475
+ }
1476
+
1477
+ this.instances.push($el);
1478
+ return $el;
1479
+ },
1480
+
1481
+ destroy: function($el) {
1482
+ this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
1483
+
1484
+ if (this.instances.length === 0) {
1485
+ $([document, window]).unbind('.dialog-overlay');
1486
+ }
1487
+
1488
+ $el.remove();
1489
+
1490
+ // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
1491
+ var maxZ = 0;
1492
+ $.each(this.instances, function() {
1493
+ maxZ = Math.max(maxZ, this.css('z-index'));
1494
+ });
1495
+ this.maxZ = maxZ;
1496
+ },
1497
+
1498
+ height: function() {
1499
+ var scrollHeight,
1500
+ offsetHeight;
1501
+ // handle IE 6
1502
+ if ($.browser.msie && $.browser.version < 7) {
1503
+ scrollHeight = Math.max(
1504
+ document.documentElement.scrollHeight,
1505
+ document.body.scrollHeight
1506
+ );
1507
+ offsetHeight = Math.max(
1508
+ document.documentElement.offsetHeight,
1509
+ document.body.offsetHeight
1510
+ );
1511
+
1512
+ if (scrollHeight < offsetHeight) {
1513
+ return $(window).height() + 'px';
1514
+ } else {
1515
+ return scrollHeight + 'px';
1516
+ }
1517
+ // handle "good" browsers
1518
+ } else {
1519
+ return $(document).height() + 'px';
1520
+ }
1521
+ },
1522
+
1523
+ width: function() {
1524
+ var scrollWidth,
1525
+ offsetWidth;
1526
+ // handle IE 6
1527
+ if ($.browser.msie && $.browser.version < 7) {
1528
+ scrollWidth = Math.max(
1529
+ document.documentElement.scrollWidth,
1530
+ document.body.scrollWidth
1531
+ );
1532
+ offsetWidth = Math.max(
1533
+ document.documentElement.offsetWidth,
1534
+ document.body.offsetWidth
1535
+ );
1536
+
1537
+ if (scrollWidth < offsetWidth) {
1538
+ return $(window).width() + 'px';
1539
+ } else {
1540
+ return scrollWidth + 'px';
1541
+ }
1542
+ // handle "good" browsers
1543
+ } else {
1544
+ return $(document).width() + 'px';
1545
+ }
1546
+ },
1547
+
1548
+ resize: function() {
1549
+ /* If the dialog is draggable and the user drags it past the
1550
+ * right edge of the window, the document becomes wider so we
1551
+ * need to stretch the overlay. If the user then drags the
1552
+ * dialog back to the left, the document will become narrower,
1553
+ * so we need to shrink the overlay to the appropriate size.
1554
+ * This is handled by shrinking the overlay before setting it
1555
+ * to the full document size.
1556
+ */
1557
+ var $overlays = $([]);
1558
+ $.each($.ui.dialog.overlay.instances, function() {
1559
+ $overlays = $overlays.add(this);
1560
+ });
1561
+
1562
+ $overlays.css({
1563
+ width: 0,
1564
+ height: 0
1565
+ }).css({
1566
+ width: $.ui.dialog.overlay.width(),
1567
+ height: $.ui.dialog.overlay.height()
1568
+ });
1569
+ }
1570
+ });
1571
+
1572
+ $.extend($.ui.dialog.overlay.prototype, {
1573
+ destroy: function() {
1574
+ $.ui.dialog.overlay.destroy(this.$el);
1575
+ }
1576
+ });
1577
+
1578
+ }(jQuery));
js/jquery.bgiframe-2.1.1.js CHANGED
@@ -1,10 +1,10 @@
1
- /* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
2
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
3
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
4
- *
5
- * $LastChangedDate: 2007-07-21 18:45:56 -0500 (Sat, 21 Jul 2007) $
6
- * $Rev: 2447 $
7
- *
8
- * Version 2.1.1
9
- */
10
  (function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);
1
+ /* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
2
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
3
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
4
+ *
5
+ * $LastChangedDate: 2007-07-21 18:45:56 -0500 (Sat, 21 Jul 2007) $
6
+ * $Rev: 2447 $
7
+ *
8
+ * Version 2.1.1
9
+ */
10
  (function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);
js/jquery.form.js ADDED
@@ -0,0 +1,864 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Form Plugin
3
+ * version: 2.80 (25-MAY-2011)
4
+ * @requires jQuery v1.3.2 or later
5
+ *
6
+ * Examples and documentation at: http://malsup.com/jquery/form/
7
+ * Dual licensed under the MIT and GPL licenses:
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ * http://www.gnu.org/licenses/gpl.html
10
+ */
11
+ ;(function($) {
12
+
13
+ /*
14
+ Usage Note:
15
+ -----------
16
+ Do not use both ajaxSubmit and ajaxForm on the same form. These
17
+ functions are intended to be exclusive. Use ajaxSubmit if you want
18
+ to bind your own submit handler to the form. For example,
19
+
20
+ $(document).ready(function() {
21
+ $('#myForm').bind('submit', function(e) {
22
+ e.preventDefault(); // <-- important
23
+ $(this).ajaxSubmit({
24
+ target: '#output'
25
+ });
26
+ });
27
+ });
28
+
29
+ Use ajaxForm when you want the plugin to manage all the event binding
30
+ for you. For example,
31
+
32
+ $(document).ready(function() {
33
+ $('#myForm').ajaxForm({
34
+ target: '#output'
35
+ });
36
+ });
37
+
38
+ When using ajaxForm, the ajaxSubmit function will be invoked for you
39
+ at the appropriate time.
40
+ */
41
+
42
+ /**
43
+ * ajaxSubmit() provides a mechanism for immediately submitting
44
+ * an HTML form using AJAX.
45
+ */
46
+ $.fn.ajaxSubmit = function(options) {
47
+ // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
48
+ if (!this.length) {
49
+ log('ajaxSubmit: skipping submit process - no element selected');
50
+ return this;
51
+ }
52
+
53
+ if (typeof options == 'function') {
54
+ options = { success: options };
55
+ }
56
+
57
+ var action = this.attr('action');
58
+ var url = (typeof action === 'string') ? $.trim(action) : '';
59
+ url = url || window.location.href || '';
60
+ if (url) {
61
+ // clean url (don't include hash vaue)
62
+ url = (url.match(/^([^#]+)/)||[])[1];
63
+ }
64
+
65
+ options = $.extend(true, {
66
+ url: url,
67
+ success: $.ajaxSettings.success,
68
+ type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
69
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
70
+ }, options);
71
+
72
+ // hook for manipulating the form data before it is extracted;
73
+ // convenient for use with rich editors like tinyMCE or FCKEditor
74
+ var veto = {};
75
+ this.trigger('form-pre-serialize', [this, options, veto]);
76
+ if (veto.veto) {
77
+ log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
78
+ return this;
79
+ }
80
+
81
+ // provide opportunity to alter form data before it is serialized
82
+ if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
83
+ log('ajaxSubmit: submit aborted via beforeSerialize callback');
84
+ return this;
85
+ }
86
+
87
+ var n,v,a = this.formToArray(options.semantic);
88
+ if (options.data) {
89
+ options.extraData = options.data;
90
+ for (n in options.data) {
91
+ if(options.data[n] instanceof Array) {
92
+ for (var k in options.data[n]) {
93
+ a.push( { name: n, value: options.data[n][k] } );
94
+ }
95
+ }
96
+ else {
97
+ v = options.data[n];
98
+ v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
99
+ a.push( { name: n, value: v } );
100
+ }
101
+ }
102
+ }
103
+
104
+ // give pre-submit callback an opportunity to abort the submit
105
+ if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
106
+ log('ajaxSubmit: submit aborted via beforeSubmit callback');
107
+ return this;
108
+ }
109
+
110
+ // fire vetoable 'validate' event
111
+ this.trigger('form-submit-validate', [a, this, options, veto]);
112
+ if (veto.veto) {
113
+ log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
114
+ return this;
115
+ }
116
+
117
+ var q = $.param(a);
118
+
119
+ if (options.type.toUpperCase() == 'GET') {
120
+ options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
121
+ options.data = null; // data is null for 'get'
122
+ }
123
+ else {
124
+ options.data = q; // data is the query string for 'post'
125
+ }
126
+
127
+ var $form = this, callbacks = [];
128
+ if (options.resetForm) {
129
+ callbacks.push(function() { $form.resetForm(); });
130
+ }
131
+ if (options.clearForm) {
132
+ callbacks.push(function() { $form.clearForm(); });
133
+ }
134
+
135
+ // perform a load on the target only if dataType is not provided
136
+ if (!options.dataType && options.target) {
137
+ var oldSuccess = options.success || function(){};
138
+ callbacks.push(function(data) {
139
+ var fn = options.replaceTarget ? 'replaceWith' : 'html';
140
+ $(options.target)[fn](data).each(oldSuccess, arguments);
141
+ });
142
+ }
143
+ else if (options.success) {
144
+ callbacks.push(options.success);
145
+ }
146
+
147
+ options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
148
+ var context = options.context || options; // jQuery 1.4+ supports scope context
149
+ for (var i=0, max=callbacks.length; i < max; i++) {
150
+ callbacks[i].apply(context, [data, status, xhr || $form, $form]);
151
+ }
152
+ };
153
+
154
+ // are there files to upload?
155
+ var fileInputs = $('input:file', this).length > 0;
156
+ var mp = 'multipart/form-data';
157
+ var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
158
+
159
+ // options.iframe allows user to force iframe mode
160
+ // 06-NOV-09: now defaulting to iframe mode if file input is detected
161
+ if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
162
+ // hack to fix Safari hang (thanks to Tim Molendijk for this)
163
+ // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
164
+ if (options.closeKeepAlive) {
165
+ $.get(options.closeKeepAlive, function() { fileUpload(a); });
166
+ }
167
+ else {
168
+ fileUpload(a);
169
+ }
170
+ }
171
+ else {
172
+ $.ajax(options);
173
+ }
174
+
175
+ // fire 'notify' event
176
+ this.trigger('form-submit-notify', [this, options]);
177
+ return this;
178
+
179
+
180
+ // private function for handling file uploads (hat tip to YAHOO!)
181
+ function fileUpload(a) {
182
+ var form = $form[0], i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
183
+
184
+ if (a) {
185
+ // ensure that every serialized input is still enabled
186
+ for (i=0; i < a.length; i++) {
187
+ $(form[a[i].name]).attr('disabled', false);
188
+ }
189
+ }
190
+
191
+ if ($(':input[name=submit],:input[id=submit]', form).length) {
192
+ // if there is an input with a name or id of 'submit' then we won't be
193
+ // able to invoke the submit fn on the form (at least not x-browser)
194
+ alert('Error: Form elements must not have name or id of "submit".');
195
+ return;
196
+ }
197
+
198
+ s = $.extend(true, {}, $.ajaxSettings, options);
199
+ s.context = s.context || s;
200
+ id = 'jqFormIO' + (new Date().getTime());
201
+ if (s.iframeTarget) {
202
+ $io = $(s.iframeTarget);
203
+ n = $io.attr('name');
204
+ if (n == null)
205
+ $io.attr('name', id);
206
+ else
207
+ id = n;
208
+ }
209
+ else {
210
+ $io = $('<iframe name="' + id + '" src="'+ s.iframeSrc +'" />');
211
+ $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
212
+ }
213
+ io = $io[0];
214
+
215
+
216
+ xhr = { // mock object
217
+ aborted: 0,
218
+ responseText: null,
219
+ responseXML: null,
220
+ status: 0,
221
+ statusText: 'n/a',
222
+ getAllResponseHeaders: function() {},
223
+ getResponseHeader: function() {},
224
+ setRequestHeader: function() {},
225
+ abort: function(status) {
226
+ var e = (status === 'timeout' ? 'timeout' : 'aborted');
227
+ log('aborting upload... ' + e);
228
+ this.aborted = 1;
229
+ $io.attr('src', s.iframeSrc); // abort op in progress
230
+ xhr.error = e;
231
+ s.error && s.error.call(s.context, xhr, e, e);
232
+ g && $.event.trigger("ajaxError", [xhr, s, e]);
233
+ s.complete && s.complete.call(s.context, xhr, e);
234
+ }
235
+ };
236
+
237
+ g = s.global;
238
+ // trigger ajax global events so that activity/block indicators work like normal
239
+ if (g && ! $.active++) {
240
+ $.event.trigger("ajaxStart");
241
+ }
242
+ if (g) {
243
+ $.event.trigger("ajaxSend", [xhr, s]);
244
+ }
245
+
246
+ if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
247
+ if (s.global) {
248
+ $.active--;
249
+ }
250
+ return;
251
+ }
252
+ if (xhr.aborted) {
253
+ return;
254
+ }
255
+
256
+ // add submitting element to data if we know it
257
+ sub = form.clk;
258
+ if (sub) {
259
+ n = sub.name;
260
+ if (n && !sub.disabled) {
261
+ s.extraData = s.extraData || {};
262
+ s.extraData[n] = sub.value;
263
+ if (sub.type == "image") {
264
+ s.extraData[n+'.x'] = form.clk_x;
265
+ s.extraData[n+'.y'] = form.clk_y;
266
+ }
267
+ }
268
+ }
269
+
270
+ // take a breath so that pending repaints get some cpu time before the upload starts
271
+ function doSubmit() {
272
+ // make sure form attrs are set
273
+ var t = $form.attr('target'), a = $form.attr('action');
274
+
275
+ // update form attrs in IE friendly way
276
+ form.setAttribute('target',id);
277
+ if (form.getAttribute('method') != 'POST') {
278
+ form.setAttribute('method', 'POST');
279
+ }
280
+ if (form.getAttribute('action') != s.url) {
281
+ form.setAttribute('action', s.url);
282
+ }
283
+
284
+ // ie borks in some cases when setting encoding
285
+ if (! s.skipEncodingOverride) {
286
+ $form.attr({
287
+ encoding: 'multipart/form-data',
288
+ enctype: 'multipart/form-data'
289
+ });
290
+ }
291
+
292
+ // support timout
293
+ if (s.timeout) {
294
+ timeoutHandle = setTimeout(function() { timedOut = true; cb(true); }, s.timeout);
295
+ }
296
+
297
+ // add "extra" data to form if provided in options
298
+ var extraInputs = [];
299
+ try {
300
+ if (s.extraData) {
301
+ for (var n in s.extraData) {
302
+ extraInputs.push(
303
+ $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
304
+ .appendTo(form)[0]);
305
+ }
306
+ }
307
+
308
+ if (!s.iframeTarget) {
309
+ // add iframe to doc and submit the form
310
+ $io.appendTo('body');
311
+ io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
312
+ }
313
+ form.submit();
314
+ }
315
+ finally {
316
+ // reset attrs and remove "extra" input elements
317
+ form.setAttribute('action',a);
318
+ if(t) {
319
+ form.setAttribute('target', t);
320
+ } else {
321
+ $form.removeAttr('target');
322
+ }
323
+ $(extraInputs).remove();
324
+ }
325
+ }
326
+
327
+ if (s.forceSync) {
328
+ doSubmit();
329
+ }
330
+ else {
331
+ setTimeout(doSubmit, 10); // this lets dom updates render
332
+ }
333
+
334
+ var data, doc, domCheckCount = 50, callbackProcessed;
335
+
336
+ function cb(e) {
337
+ if (xhr.aborted || callbackProcessed) {
338
+ return;
339
+ }
340
+ if (e === true && xhr) {
341
+ xhr.abort('timeout');
342
+ return;
343
+ }
344
+
345
+ var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
346
+ if (!doc || doc.location.href == s.iframeSrc) {
347
+ // response not received yet
348
+ if (!timedOut)
349
+ return;
350
+ }
351
+ io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
352
+
353
+ var status = 'success', errMsg;
354
+ try {
355
+ if (timedOut) {
356
+ throw 'timeout';
357
+ }
358
+
359
+ var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
360
+ log('isXml='+isXml);
361
+ if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
362
+ if (--domCheckCount) {
363
+ // in some browsers (Opera) the iframe DOM is not always traversable when
364
+ // the onload callback fires, so we loop a bit to accommodate
365
+ log('requeing onLoad callback, DOM not available');
366
+ setTimeout(cb, 250);
367
+ return;
368
+ }
369
+ // let this fall through because server response could be an empty document
370
+ //log('Could not access iframe DOM after mutiple tries.');
371
+ //throw 'DOMException: not available';
372
+ }
373
+
374
+ //log('response detected');
375
+ var docRoot = doc.body ? doc.body : doc.documentElement;
376
+ xhr.responseText = docRoot ? docRoot.innerHTML : null;
377
+ xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
378
+ if (isXml)
379
+ s.dataType = 'xml';
380
+ xhr.getResponseHeader = function(header){
381
+ var headers = {'content-type': s.dataType};
382
+ return headers[header];
383
+ };
384
+ // support for XHR 'status' & 'statusText' emulation :
385
+ if (docRoot) {
386
+ xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
387
+ xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
388
+ }
389
+
390
+ var dt = s.dataType || '';
391
+ var scr = /(json|script|text)/.test(dt.toLowerCase());
392
+ if (scr || s.textarea) {
393
+ // see if user embedded response in textarea
394
+ var ta = doc.getElementsByTagName('textarea')[0];
395
+ if (ta) {
396
+ xhr.responseText = ta.value;
397
+ // support for XHR 'status' & 'statusText' emulation :
398
+ xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
399
+ xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
400
+ }
401
+ else if (scr) {
402
+ // account for browsers injecting pre around json response
403
+ var pre = doc.getElementsByTagName('pre')[0];
404
+ var b = doc.getElementsByTagName('body')[0];
405
+ if (pre) {
406
+ xhr.responseText = pre.textContent ? pre.textContent : pre.innerHTML;
407
+ }
408
+ else if (b) {
409
+ xhr.responseText = b.innerHTML;
410
+ }
411
+ }
412
+ }
413
+ else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
414
+ xhr.responseXML = toXml(xhr.responseText);
415
+ }
416
+
417
+ try {
418
+ data = httpData(xhr, s.dataType, s);
419
+ }
420
+ catch (e) {
421
+ status = 'parsererror';
422
+ xhr.error = errMsg = (e || status);
423
+ }
424
+ }
425
+ catch (e) {
426
+ log('error caught',e);
427
+ status = 'error';
428
+ xhr.error = errMsg = (e || status);
429
+ }
430
+
431
+ if (xhr.aborted) {
432
+ log('upload aborted');
433
+ status = null;
434
+ }
435
+
436
+ if (xhr.status) { // we've set xhr.status
437
+ status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
438
+ }
439
+
440
+ // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
441
+ if (status === 'success') {
442
+ s.success && s.success.call(s.context, data, 'success', xhr);
443
+ g && $.event.trigger("ajaxSuccess", [xhr, s]);
444
+ }
445
+ else if (status) {
446
+ if (errMsg == undefined)
447
+ errMsg = xhr.statusText;
448
+ s.error && s.error.call(s.context, xhr, status, errMsg);
449
+ g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
450
+ }
451
+
452
+ g && $.event.trigger("ajaxComplete", [xhr, s]);
453
+
454
+ if (g && ! --$.active) {
455
+ $.event.trigger("ajaxStop");
456
+ }
457
+
458
+ s.complete && s.complete.call(s.context, xhr, status);
459
+
460
+ callbackProcessed = true;
461
+ if (s.timeout)
462
+ clearTimeout(timeoutHandle);
463
+
464
+ // clean up
465
+ setTimeout(function() {
466
+ if (!s.iframeTarget)
467
+ $io.remove();
468
+ xhr.responseXML = null;
469
+ }, 100);
470
+ }
471
+
472
+ var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
473
+ if (window.ActiveXObject) {
474
+ doc = new ActiveXObject('Microsoft.XMLDOM');
475
+ doc.async = 'false';
476
+ doc.loadXML(s);
477
+ }
478
+ else {
479
+ doc = (new DOMParser()).parseFromString(s, 'text/xml');
480
+ }
481
+ return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
482
+ };
483
+ var parseJSON = $.parseJSON || function(s) {
484
+ return window['eval']('(' + s + ')');
485
+ };
486
+
487
+ var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
488
+
489
+ var ct = xhr.getResponseHeader('content-type') || '',
490
+ xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
491
+ data = xml ? xhr.responseXML : xhr.responseText;
492
+
493
+ if (xml && data.documentElement.nodeName === 'parsererror') {
494
+ $.error && $.error('parsererror');
495
+ }
496
+ if (s && s.dataFilter) {
497
+ data = s.dataFilter(data, type);
498
+ }
499
+ if (typeof data === 'string') {
500
+ if (type === 'json' || !type && ct.indexOf('json') >= 0) {
501
+ data = parseJSON(data);
502
+ } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
503
+ $.globalEval(data);
504
+ }
505
+ }
506
+ return data;
507
+ };
508
+ }
509
+ };
510
+
511
+ /**
512
+ * ajaxForm() provides a mechanism for fully automating form submission.
513
+ *
514
+ * The advantages of using this method instead of ajaxSubmit() are:
515
+ *
516
+ * 1: This method will include coordinates for <input type="image" /> elements (if the element
517
+ * is used to submit the form).
518
+ * 2. This method will include the submit element's name/value data (for the element that was
519
+ * used to submit the form).
520
+ * 3. This method binds the submit() method to the form for you.
521
+ *
522
+ * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
523
+ * passes the options argument along after properly binding events for submit elements and
524
+ * the form itself.
525
+ */
526
+ $.fn.ajaxForm = function(options) {
527
+ // in jQuery 1.3+ we can fix mistakes with the ready state
528
+ if (this.length === 0) {
529
+ var o = { s: this.selector, c: this.context };
530
+ if (!$.isReady && o.s) {
531
+ log('DOM not ready, queuing ajaxForm');
532
+ $(function() {
533
+ $(o.s,o.c).ajaxForm(options);
534
+ });
535
+ return this;
536
+ }
537
+ // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
538
+ log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
539
+ return this;
540
+ }
541
+
542
+ return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
543
+ if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
544
+ e.preventDefault();
545
+ $(this).ajaxSubmit(options);
546
+ }
547
+ }).bind('click.form-plugin', function(e) {
548
+ var target = e.target;
549
+ var $el = $(target);
550
+ if (!($el.is(":submit,input:image"))) {
551
+ // is this a child element of the submit el? (ex: a span within a button)
552
+ var t = $el.closest(':submit');
553
+ if (t.length == 0) {
554
+ return;
555
+ }
556
+ target = t[0];
557
+ }
558
+ var form = this;
559
+ form.clk = target;
560
+ if (target.type == 'image') {
561
+ if (e.offsetX != undefined) {
562
+ form.clk_x = e.offsetX;
563
+ form.clk_y = e.offsetY;
564
+ } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
565
+ var offset = $el.offset();
566
+ form.clk_x = e.pageX - offset.left;
567
+ form.clk_y = e.pageY - offset.top;
568
+ } else {
569
+ form.clk_x = e.pageX - target.offsetLeft;
570
+ form.clk_y = e.pageY - target.offsetTop;
571
+ }
572
+ }
573
+ // clear form vars
574
+ setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
575
+ });
576
+ };
577
+
578
+ // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
579
+ $.fn.ajaxFormUnbind = function() {
580
+ return this.unbind('submit.form-plugin click.form-plugin');
581
+ };
582
+
583
+ /**
584
+ * formToArray() gathers form element data into an array of objects that can
585
+ * be passed to any of the following ajax functions: $.get, $.post, or load.
586
+ * Each object in the array has both a 'name' and 'value' property. An example of
587
+ * an array for a simple login form might be:
588
+ *
589
+ * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
590
+ *
591
+ * It is this array that is passed to pre-submit callback functions provided to the
592
+ * ajaxSubmit() and ajaxForm() methods.
593
+ */
594
+ $.fn.formToArray = function(semantic) {
595
+ var a = [];
596
+ if (this.length === 0) {
597
+ return a;
598
+ }
599
+
600
+ var form = this[0];
601
+ var els = semantic ? form.getElementsByTagName('*') : form.elements;
602
+ if (!els) {
603
+ return a;
604
+ }
605
+
606
+ var i,j,n,v,el,max,jmax;
607
+ for(i=0, max=els.length; i < max; i++) {
608
+ el = els[i];
609
+ n = el.name;
610
+ if (!n) {
611
+ continue;
612
+ }
613
+
614
+ if (semantic && form.clk && el.type == "image") {
615
+ // handle image inputs on the fly when semantic == true
616
+ if(!el.disabled && form.clk == el) {
617
+ a.push({name: n, value: $(el).val()});
618
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
619
+ }
620
+ continue;
621
+ }
622
+
623
+ v = $.fieldValue(el, true);
624
+ if (v && v.constructor == Array) {
625
+ for(j=0, jmax=v.length; j < jmax; j++) {
626
+ a.push({name: n, value: v[j]});
627
+ }
628
+ }
629
+ else if (v !== null && typeof v != 'undefined') {
630
+ a.push({name: n, value: v});
631
+ }
632
+ }
633
+
634
+ if (!semantic && form.clk) {
635
+ // input type=='image' are not found in elements array! handle it here
636
+ var $input = $(form.clk), input = $input[0];
637
+ n = input.name;
638
+ if (n && !input.disabled && input.type == 'image') {
639
+ a.push({name: n, value: $input.val()});
640
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
641
+ }
642
+ }
643
+ return a;
644
+ };
645
+
646
+ /**
647
+ * Serializes form data into a 'submittable' string. This method will return a string
648
+ * in the format: name1=value1&amp;name2=value2
649
+ */
650
+ $.fn.formSerialize = function(semantic) {
651
+ //hand off to jQuery.param for proper encoding
652
+ return $.param(this.formToArray(semantic));
653
+ };
654
+
655
+ /**
656
+ * Serializes all field elements in the jQuery object into a query string.
657
+ * This method will return a string in the format: name1=value1&amp;name2=value2
658
+ */
659
+ $.fn.fieldSerialize = function(successful) {
660
+ var a = [];
661
+ this.each(function() {
662
+ var n = this.name;
663
+ if (!n) {
664
+ return;
665
+ }
666
+ var v = $.fieldValue(this, successful);
667
+ if (v && v.constructor == Array) {
668
+ for (var i=0,max=v.length; i < max; i++) {
669
+ a.push({name: n, value: v[i]});
670
+ }
671
+ }
672
+ else if (v !== null && typeof v != 'undefined') {
673
+ a.push({name: this.name, value: v});
674
+ }
675
+ });
676
+ //hand off to jQuery.param for proper encoding
677
+ return $.param(a);
678
+ };
679
+
680
+ /**
681
+ * Returns the value(s) of the element in the matched set. For example, consider the following form:
682
+ *
683
+ * <form><fieldset>
684
+ * <input name="A" type="text" />
685
+ * <input name="A" type="text" />
686
+ * <input name="B" type="checkbox" value="B1" />
687
+ * <input name="B" type="checkbox" value="B2"/>
688
+ * <input name="C" type="radio" value="C1" />
689
+ * <input name="C" type="radio" value="C2" />
690
+ * </fieldset></form>
691
+ *
692
+ * var v = $(':text').fieldValue();
693
+ * // if no values are entered into the text inputs
694
+ * v == ['','']
695
+ * // if values entered into the text inputs are 'foo' and 'bar'
696
+ * v == ['foo','bar']
697
+ *
698
+ * var v = $(':checkbox').fieldValue();
699
+ * // if neither checkbox is checked
700
+ * v === undefined
701
+ * // if both checkboxes are checked
702
+ * v == ['B1', 'B2']
703
+ *
704
+ * var v = $(':radio').fieldValue();
705
+ * // if neither radio is checked
706
+ * v === undefined
707
+ * // if first radio is checked
708
+ * v == ['C1']
709
+ *
710
+ * The successful argument controls whether or not the field element must be 'successful'
711
+ * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
712
+ * The default value of the successful argument is true. If this value is false the value(s)
713
+ * for each element is returned.
714
+ *
715
+ * Note: This method *always* returns an array. If no valid value can be determined the
716
+ * array will be empty, otherwise it will contain one or more values.
717
+ */
718
+ $.fn.fieldValue = function(successful) {
719
+ for (var val=[], i=0, max=this.length; i < max; i++) {
720
+ var el = this[i];
721
+ var v = $.fieldValue(el, successful);
722
+ if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
723
+ continue;
724
+ }
725
+ v.constructor == Array ? $.merge(val, v) : val.push(v);
726
+ }
727
+ return val;
728
+ };
729
+
730
+ /**
731
+ * Returns the value of the field element.
732
+ */
733
+ $.fieldValue = function(el, successful) {
734
+ var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
735
+ if (successful === undefined) {
736
+ successful = true;
737
+ }
738
+
739
+ if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
740
+ (t == 'checkbox' || t == 'radio') && !el.checked ||
741
+ (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
742
+ tag == 'select' && el.selectedIndex == -1)) {
743
+ return null;
744
+ }
745
+
746
+ if (tag == 'select') {
747
+ var index = el.selectedIndex;
748
+ if (index < 0) {
749
+ return null;
750
+ }
751
+ var a = [], ops = el.options;
752
+ var one = (t == 'select-one');
753
+ var max = (one ? index+1 : ops.length);
754
+ for(var i=(one ? index : 0); i < max; i++) {
755
+ var op = ops[i];
756
+ if (op.selected) {
757
+ var v = op.value;
758
+ if (!v) { // extra pain for IE...
759
+ v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
760
+ }
761
+ if (one) {
762
+ return v;
763
+ }
764
+ a.push(v);
765
+ }
766
+ }
767
+ return a;
768
+ }
769
+ return $(el).val();
770
+ };
771
+
772
+ /**
773
+ * Clears the form data. Takes the following actions on the form's input fields:
774
+ * - input text fields will have their 'value' property set to the empty string
775
+ * - select elements will have their 'selectedIndex' property set to -1
776
+ * - checkbox and radio inputs will have their 'checked' property set to false
777
+ * - inputs of type submit, button, reset, and hidden will *not* be effected
778
+ * - button elements will *not* be effected
779
+ */
780
+ $.fn.clearForm = function() {
781
+ return this.each(function() {
782
+ $('input,select,textarea', this).clearFields();
783
+ });
784
+ };
785
+
786
+ /**
787
+ * Clears the selected form elements.
788
+ */
789
+ $.fn.clearFields = $.fn.clearInputs = function() {
790
+ return this.each(function() {
791
+ var t = this.type, tag = this.tagName.toLowerCase();
792
+ if (t == 'text' || t == 'password' || tag == 'textarea') {
793
+ this.value = '';
794
+ }
795
+ else if (t == 'checkbox' || t == 'radio') {
796
+ this.checked = false;
797
+ }
798
+ else if (tag == 'select') {
799
+ this.selectedIndex = -1;
800
+ }
801
+ });
802
+ };
803
+
804
+ /**
805
+ * Resets the form data. Causes all form elements to be reset to their original value.
806
+ */
807
+ $.fn.resetForm = function() {
808
+ return this.each(function() {
809
+ // guard against an input with the name of 'reset'
810
+ // note that IE reports the reset function as an 'object'
811
+ if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
812
+ this.reset();
813
+ }
814
+ });
815
+ };
816
+
817
+ /**
818
+ * Enables or disables any matching elements.
819
+ */
820
+ $.fn.enable = function(b) {
821
+ if (b === undefined) {
822
+ b = true;
823
+ }
824
+ return this.each(function() {
825
+ this.disabled = !b;
826
+ });
827
+ };
828
+
829
+ /**
830
+ * Checks/unchecks any matching checkboxes or radio buttons and
831
+ * selects/deselects and matching option elements.
832
+ */
833
+ $.fn.selected = function(select) {
834
+ if (select === undefined) {
835
+ select = true;
836
+ }
837
+ return this.each(function() {
838
+ var t = this.type;
839
+ if (t == 'checkbox' || t == 'radio') {
840
+ this.checked = select;
841
+ }
842
+ else if (this.tagName.toLowerCase() == 'option') {
843
+ var $sel = $(this).parent('select');
844
+ if (select && $sel[0] && $sel[0].type == 'select-one') {
845
+ // deselect all other options
846
+ $sel.find('option').selected(false);
847
+ }
848
+ this.selected = select;
849
+ }
850
+ });
851
+ };
852
+
853
+ // helper fn for console logging
854
+ function log() {
855
+ var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
856
+ if (window.console && window.console.log) {
857
+ window.console.log(msg);
858
+ }
859
+ else if (window.opera && window.opera.postError) {
860
+ window.opera.postError(msg);
861
+ }
862
+ };
863
+
864
+ })(jQuery);
js/jquery.tools.min.js CHANGED
@@ -1,269 +1,269 @@
1
- /*
2
- * jQuery Tools 1.2.3 - The missing UI library for the Web
3
- *
4
- * [jquery, toolbox.flashembed, toolbox.history, toolbox.expose, toolbox.mousewheel, tabs, tabs.slideshow, tooltip, tooltip.slide, tooltip.dynamic, scrollable, scrollable.autoscroll, scrollable.navigator, overlay, overlay.apple, dateinput, rangeinput, validator]
5
- *
6
- * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
7
- *
8
- * http://flowplayer.org/tools/
9
- *
10
- * jQuery JavaScript Library v1.4.2
11
- * http://jquery.com/
12
- *
13
- * Copyright 2010, John Resig
14
- * Dual licensed under the MIT or GPL Version 2 licenses.
15
- * http://docs.jquery.com/License
16
- *
17
- * Includes Sizzle.js
18
- * http://sizzlejs.com/
19
- * Copyright 2010, The Dojo Foundation
20
- * Released under the MIT, BSD, and GPL Licenses.
21
- *
22
- * -----
23
- *
24
-
25
-
26
- * jquery.event.wheel.js - rev 1
27
- * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
28
- * Liscensed under the MIT License (MIT-LICENSE.txt)
29
- * http://www.opensource.org/licenses/mit-license.php
30
- * Created: 2008-07-01 | Updated: 2008-07-14
31
- *
32
- * -----
33
- *
34
- * File generated: Sat Jun 12 10:02:29 GMT 2010
35
- */
36
- (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
37
- e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
38
- j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
39
- "&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
40
- true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
41
- Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
42
- (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
43
- a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
44
- "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
45
- function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
46
- c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
47
- L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
48
- "isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
49
- a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
50
- d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
51
- a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
52
- !c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
53
- true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
54
- var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
55
- parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
56
- false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
57
- s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
58
- applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
59
- else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
60
- a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
61
- w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
62
- cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
63
- i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
64
- " ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
65
- this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
66
- e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
67
- c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
68
- a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
69
- function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
70
- k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
71
- C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
72
- null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
73
- e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
74
- f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
75
- if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
76
- fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
77
- d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
78
- "events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
79
- a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
80
- isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
81
- {setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
82
- if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
83
- e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
84
- "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
85
- d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
86
- !a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
87
- toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
88
- u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
89
- function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
90
- if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
91
- e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
92
- t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
93
- g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
94
- for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
95
- 1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
96
- CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
97
- relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
98
- l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
99
- h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
100
- CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
101
- g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
102
- text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
103
- setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
104
- h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
105
- m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
106
- "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
107
- h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
108
- !h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
109
- h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
110
- q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
111
- if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
112
- (function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
113
- function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
114
- gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
115
- c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
116
- {},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
117
- "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
118
- d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
119
- a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
120
- 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
121
- a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
122
- c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
123
- wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
124
- prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
125
- this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
126
- return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
127
- ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
128
- this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
129
- u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
130
- 1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
131
- return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
132
- ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
133
- c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
134
- c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
135
- function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
136
- Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
137
- "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
138
- a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
139
- a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
140
- "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
141
- serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
142
- function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
143
- global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
144
- e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
145
- "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
146
- false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
147
- false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
148
- c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
149
- d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
150
- g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
151
- 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
152
- "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
153
- if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
154
- this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
155
- "olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
156
- animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
157
- j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
158
- this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
159
- "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
160
- c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
161
- this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
162
- this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
163
- e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
164
- c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
165
- function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
166
- this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
167
- k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
168
- f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
169
- a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
170
- c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
171
- d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
172
- f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
173
- "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
174
- e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
175
- (function(){function f(a,b){if(b)for(key in b)if(b.hasOwnProperty(key))a[key]=b[key];return a}function l(a,b){var c=[];for(var d in a)if(a.hasOwnProperty(d))c[d]=b(a[d]);return c}function m(a,b,c){if(e.isSupported(b.version))a.innerHTML=e.getHTML(b,c);else if(b.expressInstall&&e.isSupported([6,65]))a.innerHTML=e.getHTML(f(b,{src:b.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title});else{if(!a.innerHTML.replace(/\s/g,"")){a.innerHTML="<h2>Flash version "+
176
- b.version+" or greater is required</h2><h3>"+(g[0]>0?"Your version is "+g:"You have no flash plugin installed")+"</h3>"+(a.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+k+"'>here</a></p>");if(a.tagName=="A")a.onclick=function(){location.href=k}}if(b.onFail){var d=b.onFail.call(this);if(typeof d=="string")a.innerHTML=d}}if(h)window[b.id]=document.getElementById(b.id);f(this,{getRoot:function(){return a},getOptions:function(){return b},getConf:function(){return c},
177
- getApi:function(){return a.firstChild}})}var h=document.all,k="http://www.adobe.com/go/getflashplayer",n=typeof jQuery=="function",o=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,i={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}});
178
- window.flashembed=function(a,b,c){if(typeof a=="string")a=document.getElementById(a.replace("#",""));if(a){if(typeof b=="string")b={src:b};return new m(a,f(f({},i),b),c)}};var e=f(window.flashembed,{conf:i,getVersion:function(){var a;try{a=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(b){try{var c=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");a=c&&c.GetVariable("$version")}catch(d){}}return(a=o.exec(a))?[a[1],a[3]]:[0,0]},asString:function(a){if(a===null||a===undefined)return null;
179
- var b=typeof a;if(b=="object"&&a.push)b="array";switch(b){case "string":a=a.replace(new RegExp('(["\\\\])',"g"),"\\$1");a=a.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+a+'"';case "array":return"["+l(a,function(d){return e.asString(d)}).join(",")+"]";case "function":return'"function()"';case "object":b=[];for(var c in a)a.hasOwnProperty(c)&&b.push('"'+c+'":'+e.asString(a[c]));return"{"+b.join(",")+"}"}return String(a).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(a,b){a=f({},a);var c='<object width="'+
180
- a.width+'" height="'+a.height+'" id="'+a.id+'" name="'+a.id+'"';if(a.cachebusting)a.src+=(a.src.indexOf("?")!=-1?"&":"?")+Math.random();c+=a.w3c||!h?' data="'+a.src+'" type="application/x-shockwave-flash"':' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';c+=">";if(a.w3c||h)c+='<param name="movie" value="'+a.src+'" />';a.width=a.height=a.id=a.w3c=a.src=null;a.onFail=a.version=a.expressInstall=null;for(var d in a)if(a[d])c+='<param name="'+d+'" value="'+a[d]+'" />';a="";if(b){for(var j in b)if(b[j]){d=
181
- b[j];a+=j+"="+(/function|object/.test(typeof d)?e.asString(d):d)+"&"}a=a.slice(0,-1);c+='<param name="flashvars" value=\''+a+"' />"}c+="</object>";return c},isSupported:function(a){return g[0]>a[0]||g[0]==a[0]&&g[1]>=a[1]}}),g=e.getVersion();if(n){jQuery.tools=jQuery.tools||{version:"1.2.3"};jQuery.tools.flashembed={conf:i};jQuery.fn.flashembed=function(a,b){return this.each(function(){$(this).data("flashembed",flashembed(this,a,b))})}}})();
182
- (function(b){function h(c){if(c){var a=d.contentWindow.document;a.open().close();a.location.hash=c}}var g,d,f,i;b.tools=b.tools||{version:"1.2.3"};b.tools.history={init:function(c){if(!i){if(b.browser.msie&&b.browser.version<"8"){if(!d){d=b("<iframe/>").attr("src","javascript:false;").hide().get(0);b("body").append(d);setInterval(function(){var a=d.contentWindow.document;a=a.location.hash;g!==a&&b.event.trigger("hash",a)},100);h(location.hash||"#")}}else setInterval(function(){var a=location.hash;
183
- a!==g&&b.event.trigger("hash",a)},100);f=!f?c:f.add(c);c.click(function(a){var e=b(this).attr("href");d&&h(e);if(e.slice(0,1)!="#"){location.href="#"+e;return a.preventDefault()}});i=true}}};b(window).bind("hash",function(c,a){a?f.filter(function(){var e=b(this).attr("href");return e==a||e==a.replace("#","")}).trigger("history",[a]):f.eq(0).trigger("history",[a]);g=a;window.location.hash=g});b.fn.history=function(c){b.tools.history.init(this);return this.bind("history",c)}})(jQuery);
184
- (function(b){function k(){if(b.browser.msie){var a=b(document).height(),d=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a-d<20?d:a]}return[b(document).width(),b(document).height()]}function h(a){if(a)return a.call(b.mask)}b.tools=b.tools||{version:"1.2.3"};var l;l=b.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,startOpacity:0,color:"#fff",onLoad:null,
185
- onClose:null}};var c,i,f,g,j;b.mask={load:function(a,d){if(f)return this;if(typeof a=="string")a={color:a};a=a||g;g=a=b.extend(b.extend({},l.conf),a);c=b("#"+a.maskId);if(!c.length){c=b("<div/>").attr("id",a.maskId);b("body").append(c)}var m=k();c.css({position:"absolute",top:0,left:0,width:m[0],height:m[1],display:"none",opacity:a.startOpacity,zIndex:a.zIndex});a.color&&c.css("backgroundColor",a.color);if(h(a.onBeforeLoad)===false)return this;a.closeOnEsc&&b(document).bind("keydown.mask",function(e){e.keyCode==
186
- 27&&b.mask.close(e)});a.closeOnClick&&c.bind("click.mask",function(e){b.mask.close(e)});b(window).bind("resize.mask",function(){b.mask.fit()});if(d&&d.length){j=d.eq(0).css("zIndex");b.each(d,function(){var e=b(this);/relative|absolute|fixed/i.test(e.css("position"))||e.css("position","relative")});i=d.css({zIndex:Math.max(a.zIndex+1,j=="auto"?0:j)})}c.css({display:"block"}).fadeTo(a.loadSpeed,a.opacity,function(){b.mask.fit();h(a.onLoad)});f=true;return this},close:function(){if(f){if(h(g.onBeforeClose)===
187
- false)return this;c.fadeOut(g.closeSpeed,function(){h(g.onClose);i&&i.css({zIndex:j})});b(document).unbind("keydown.mask");c.unbind("click.mask");b(window).unbind("resize.mask");f=false}return this},fit:function(){if(f){var a=k();c.css({width:a[0],height:a[1]})}},getMask:function(){return c},isLoaded:function(){return f},getConf:function(){return g},getExposed:function(){return i}};b.fn.mask=function(a){b.mask.load(a);return this};b.fn.expose=function(a){b.mask.load(a,this);return this}})(jQuery);
188
- (function(b){function c(a){switch(a.type){case "mousemove":return b.extend(a.data,{clientX:a.clientX,clientY:a.clientY,pageX:a.pageX,pageY:a.pageY});case "DOMMouseScroll":b.extend(a,a.data);a.delta=-a.detail/3;break;case "mousewheel":a.delta=a.wheelDelta/120;break}a.type="wheel";return b.event.handle.call(this,a,a.delta)}b.fn.mousewheel=function(a){return this[a?"bind":"trigger"]("wheel",a)};b.event.special.wheel={setup:function(){b.event.add(this,d,c,{})},teardown:function(){b.event.remove(this,
189
- d,c)}};var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"")})(jQuery);
190
- (function(c){function p(e,b,a){var d=this,l=e.add(this),h=e.find(a.tabs),i=b.jquery?b:e.children(b),j;h.length||(h=e.children());i.length||(i=e.parent().find(b));i.length||(i=c(b));c.extend(this,{click:function(f,g){var k=h.eq(f);if(typeof f=="string"&&f.replace("#","")){k=h.filter("[href*="+f.replace("#","")+"]");f=Math.max(h.index(k),0)}if(a.rotate){var n=h.length-1;if(f<0)return d.click(n,g);if(f>n)return d.click(0,g)}if(!k.length){if(j>=0)return d;f=a.initialIndex;k=h.eq(f)}if(f===j)return d;
191
- g=g||c.Event();g.type="onBeforeClick";l.trigger(g,[f]);if(!g.isDefaultPrevented()){o[a.effect].call(d,f,function(){g.type="onClick";l.trigger(g,[f])});j=f;h.removeClass(a.current);k.addClass(a.current);return d}},getConf:function(){return a},getTabs:function(){return h},getPanes:function(){return i},getCurrentPane:function(){return i.eq(j)},getCurrentTab:function(){return h.eq(j)},getIndex:function(){return j},next:function(){return d.click(j+1)},prev:function(){return d.click(j-1)},destroy:function(){h.unbind(a.event).removeClass(a.current);
192
- i.find("a[href^=#]").unbind("click.T");return d}});c.each("onBeforeClick,onClick".split(","),function(f,g){c.isFunction(a[g])&&c(d).bind(g,a[g]);d[g]=function(k){c(d).bind(g,k);return d}});if(a.history&&c.fn.history){c.tools.history.init(h);a.event="history"}h.each(function(f){c(this).bind(a.event,function(g){d.click(f,g);return g.preventDefault()})});i.find("a[href^=#]").bind("click.T",function(f){d.click(c(this).attr("href"),f)});if(location.hash)d.click(location.hash);else if(a.initialIndex===
193
- 0||a.initialIndex>0)d.click(a.initialIndex)}c.tools=c.tools||{version:"1.2.3"};c.tools.tabs={conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",rotate:false,history:false},addEffect:function(e,b){o[e]=b}};var o={"default":function(e,b){this.getPanes().hide().eq(e).show();b.call()},fade:function(e,b){var a=this.getConf(),d=a.fadeOutSpeed,l=this.getPanes();d?l.fadeOut(d):l.hide();l.eq(e).fadeIn(a.fadeInSpeed,b)},slide:function(e,b){this.getPanes().slideUp(200);
194
- this.getPanes().eq(e).slideDown(400,b)},ajax:function(e,b){this.getPanes().eq(0).load(this.getTabs().eq(e).attr("href"),b)}},m;c.tools.tabs.addEffect("horizontal",function(e,b){m||(m=this.getPanes().eq(0).width());this.getCurrentPane().animate({width:0},function(){c(this).hide()});this.getPanes().eq(e).animate({width:m},function(){c(this).show();b.call()})});c.fn.tabs=function(e,b){var a=this.data("tabs");if(a){a.destroy();this.removeData("tabs")}if(c.isFunction(b))b={onBeforeClick:b};b=c.extend({},
195
- c.tools.tabs.conf,b);this.each(function(){a=new p(c(this),e,b);c(this).data("tabs",a)});return b.api?a:this}})(jQuery);
196
- (function(d){function r(g,a){function p(f){var e=d(f);return e.length<2?e:g.parent().find(f)}var c=this,j=g.add(this),b=g.data("tabs"),h,l,m,n=false,o=p(a.next).click(function(){b.next()}),k=p(a.prev).click(function(){b.prev()});d.extend(c,{getTabs:function(){return b},getConf:function(){return a},play:function(){if(!h){var f=d.Event("onBeforePlay");j.trigger(f);if(f.isDefaultPrevented())return c;n=false;h=setInterval(b.next,a.interval);j.trigger("onPlay");b.next()}},pause:function(){if(!h)return c;
197
- var f=d.Event("onBeforePause");j.trigger(f);if(f.isDefaultPrevented())return c;h=clearInterval(h);m=clearInterval(m);j.trigger("onPause")},stop:function(){c.pause();n=true}});d.each("onBeforePlay,onPlay,onBeforePause,onPause".split(","),function(f,e){d.isFunction(a[e])&&c.bind(e,a[e]);c[e]=function(s){return c.bind(e,s)}});if(a.autopause){var t=b.getTabs().add(o).add(k).add(b.getPanes());t.hover(function(){c.pause();l=clearInterval(l)},function(){n||(l=setTimeout(c.play,a.interval))})}if(a.autoplay)m=
198
- setTimeout(c.play,a.interval);else c.stop();a.clickable&&b.getPanes().click(function(){b.next()});if(!b.getConf().rotate){var i=a.disabledClass;b.getIndex()||k.addClass(i);b.onBeforeClick(function(f,e){if(e){k.removeClass(i);e==b.getTabs().length-1?o.addClass(i):o.removeClass(i)}else k.addClass(i)})}}var q;q=d.tools.tabs.slideshow={conf:{next:".forward",prev:".backward",disabledClass:"disabled",autoplay:false,autopause:true,interval:3E3,clickable:true,api:false}};d.fn.slideshow=function(g){var a=
199
- this.data("slideshow");if(a)return a;g=d.extend({},q.conf,g);this.each(function(){a=new r(d(this),g);d(this).data("slideshow",a)});return g.api?a:this}})(jQuery);
200
- (function(f){function p(a,b,c){var h=c.relative?a.position().top:a.offset().top,e=c.relative?a.position().left:a.offset().left,i=c.position[0];h-=b.outerHeight()-c.offset[0];e+=a.outerWidth()+c.offset[1];var j=b.outerHeight()+a.outerHeight();if(i=="center")h+=j/2;if(i=="bottom")h+=j;i=c.position[1];a=b.outerWidth()+a.outerWidth();if(i=="center")e-=a/2;if(i=="left")e-=a;return{top:h,left:e}}function t(a,b){var c=this,h=a.add(c),e,i=0,j=0,m=a.attr("title"),q=n[b.effect],k,r=a.is(":input"),u=r&&a.is(":checkbox, :radio, select, :button, :submit"),
201
- s=a.attr("type"),l=b.events[s]||b.events[r?u?"widget":"input":"def"];if(!q)throw'Nonexistent effect "'+b.effect+'"';l=l.split(/,\s*/);if(l.length!=2)throw"Tooltip: bad events configuration for "+s;a.bind(l[0],function(d){clearTimeout(i);if(b.predelay)j=setTimeout(function(){c.show(d)},b.predelay);else c.show(d)}).bind(l[1],function(d){clearTimeout(j);if(b.delay)i=setTimeout(function(){c.hide(d)},b.delay);else c.hide(d)});if(m&&b.cancelDefault){a.removeAttr("title");a.data("title",m)}f.extend(c,{show:function(d){if(!e){if(m)e=
202
- f(b.layout).addClass(b.tipClass).appendTo(document.body).hide().append(m);else if(b.tip)e=f(b.tip).eq(0);else{e=a.next();e.length||(e=a.parent().next())}if(!e.length)throw"Cannot find tooltip for "+a;}if(c.isShown())return c;e.stop(true,true);var g=p(a,e,b);d=d||f.Event();d.type="onBeforeShow";h.trigger(d,[g]);if(d.isDefaultPrevented())return c;g=p(a,e,b);e.css({position:"absolute",top:g.top,left:g.left});k=true;q[0].call(c,function(){d.type="onShow";k="full";h.trigger(d)});g=b.events.tooltip.split(/,\s*/);
203
- e.bind(g[0],function(){clearTimeout(i);clearTimeout(j)});g[1]&&!a.is("input:not(:checkbox, :radio), textarea")&&e.bind(g[1],function(o){o.relatedTarget!=a[0]&&a.trigger(l[1].split(" ")[0])});return c},hide:function(d){if(!e||!c.isShown())return c;d=d||f.Event();d.type="onBeforeHide";h.trigger(d);if(!d.isDefaultPrevented()){k=false;n[b.effect][1].call(c,function(){d.type="onHide";k=false;h.trigger(d)});return c}},isShown:function(d){return d?k=="full":k},getConf:function(){return b},getTip:function(){return e},
204
- getTrigger:function(){return a}});f.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(d,g){f.isFunction(b[g])&&f(c).bind(g,b[g]);c[g]=function(o){f(c).bind(g,o);return c}})}f.tools=f.tools||{version:"1.2.3"};f.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},
205
- layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,b,c){n[a]=[b,c]}};var n={toggle:[function(a){var b=this.getConf(),c=this.getTip();b=b.opacity;b<1&&c.css({opacity:b});c.show();a.call()},function(a){this.getTip().hide();a.call()}],fade:[function(a){var b=this.getConf();this.getTip().fadeTo(b.fadeInSpeed,b.opacity,a)},function(a){this.getTip().fadeOut(this.getConf().fadeOutSpeed,a)}]};f.fn.tooltip=function(a){var b=this.data("tooltip");if(b)return b;a=f.extend(true,{},f.tools.tooltip.conf,a);
206
- if(typeof a.position=="string")a.position=a.position.split(/,?\s/);this.each(function(){b=new t(f(this),a);f(this).data("tooltip",b)});return a.api?b:this}})(jQuery);
207
- (function(d){var i=d.tools.tooltip;d.extend(i.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!d.browser.msie});var e={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};i.addEffect("slide",function(g){var a=this.getConf(),f=this.getTip(),b=a.slideFade?{opacity:a.opacity}:{},c=e[a.direction]||e.up;b[c[1]]=c[0]+"="+a.slideOffset;a.slideFade&&f.css({opacity:0});f.show().animate(b,a.slideInSpeed,g)},function(g){var a=this.getConf(),f=a.slideOffset,
208
- b=a.slideFade?{opacity:0}:{},c=e[a.direction]||e.up,h=""+c[0];if(a.bounce)h=h=="+"?"-":"+";b[c[1]]=h+"="+f;this.getTip().animate(b,a.slideOutSpeed,function(){d(this).hide();g.call()})})})(jQuery);
209
- (function(g){function j(a){var c=g(window),d=c.width()+c.scrollLeft(),h=c.height()+c.scrollTop();return[a.offset().top<=c.scrollTop(),d<=a.offset().left+a.width(),h<=a.offset().top+a.height(),c.scrollLeft()>=a.offset().left]}function k(a){for(var c=a.length;c--;)if(a[c])return false;return true}var i=g.tools.tooltip;i.dynamic={conf:{classNames:"top right bottom left"}};g.fn.dynamic=function(a){if(typeof a=="number")a={speed:a};a=g.extend({},i.dynamic.conf,a);var c=a.classNames.split(/\s/),d;this.each(function(){var h=
210
- g(this).tooltip().onBeforeShow(function(e,f){e=this.getTip();var b=this.getConf();d||(d=[b.position[0],b.position[1],b.offset[0],b.offset[1],g.extend({},b)]);g.extend(b,d[4]);b.position=[d[0],d[1]];b.offset=[d[2],d[3]];e.css({visibility:"hidden",position:"absolute",top:f.top,left:f.left}).show();f=j(e);if(!k(f)){if(f[2]){g.extend(b,a.top);b.position[0]="top";e.addClass(c[0])}if(f[3]){g.extend(b,a.right);b.position[1]="right";e.addClass(c[1])}if(f[0]){g.extend(b,a.bottom);b.position[0]="bottom";e.addClass(c[2])}if(f[1]){g.extend(b,
211
- a.left);b.position[1]="left";e.addClass(c[3])}if(f[0]||f[2])b.offset[0]*=-1;if(f[1]||f[3])b.offset[1]*=-1}e.css({visibility:"visible"}).hide()});h.onBeforeShow(function(){var e=this.getConf();this.getTip();setTimeout(function(){e.position=[d[0],d[1]];e.offset=[d[2],d[3]]},0)});h.onHide(function(){var e=this.getTip();e.removeClass(a.classNames)});ret=h});return a.api?ret:this}})(jQuery);
212
- (function(e){function n(f,c){var a=e(c);return a.length<2?a:f.parent().find(c)}function t(f,c){var a=this,l=f.add(a),g=f.children(),k=0,m=c.vertical;j||(j=a);if(g.length>1)g=e(c.items,f);e.extend(a,{getConf:function(){return c},getIndex:function(){return k},getSize:function(){return a.getItems().size()},getNaviButtons:function(){return o.add(p)},getRoot:function(){return f},getItemWrap:function(){return g},getItems:function(){return g.children(c.item).not("."+c.clonedClass)},move:function(b,d){return a.seekTo(k+
213
- b,d)},next:function(b){return a.move(1,b)},prev:function(b){return a.move(-1,b)},begin:function(b){return a.seekTo(0,b)},end:function(b){return a.seekTo(a.getSize()-1,b)},focus:function(){return j=a},addItem:function(b){b=e(b);if(c.circular){e(".cloned:last").before(b);e(".cloned:first").replaceWith(b.clone().addClass(c.clonedClass))}else g.append(b);l.trigger("onAddItem",[b]);return a},seekTo:function(b,d,h){if(c.circular&&b===0&&k==-1&&d!==0)return a;if(!c.circular&&b<0||b>a.getSize()||b<-1)return a;
214
- var i=b;if(b.jquery)b=a.getItems().index(b);else i=a.getItems().eq(b);var q=e.Event("onBeforeSeek");if(!h){l.trigger(q,[b,d]);if(q.isDefaultPrevented()||!i.length)return a}i=m?{top:-i.position().top}:{left:-i.position().left};k=b;j=a;if(d===undefined)d=c.speed;g.animate(i,d,c.easing,h||function(){l.trigger("onSeek",[b])});return a}});e.each(["onBeforeSeek","onSeek","onAddItem"],function(b,d){e.isFunction(c[d])&&e(a).bind(d,c[d]);a[d]=function(h){e(a).bind(d,h);return a}});if(c.circular){var r=a.getItems().slice(-1).clone().prependTo(g),
215
- s=a.getItems().eq(1).clone().appendTo(g);r.add(s).addClass(c.clonedClass);a.onBeforeSeek(function(b,d,h){if(!b.isDefaultPrevented())if(d==-1){a.seekTo(r,h,function(){a.end(0)});return b.preventDefault()}else d==a.getSize()&&a.seekTo(s,h,function(){a.begin(0)})});a.seekTo(0,0)}var o=n(f,c.prev).click(function(){a.prev()}),p=n(f,c.next).click(function(){a.next()});!c.circular&&a.getSize()>1&&a.onBeforeSeek(function(b,d){setTimeout(function(){if(!b.isDefaultPrevented()){o.toggleClass(c.disabledClass,
216
- d<=0);p.toggleClass(c.disabledClass,d>=a.getSize()-1)}},1)});c.mousewheel&&e.fn.mousewheel&&f.mousewheel(function(b,d){if(c.mousewheel){a.move(d<0?1:-1,c.wheelSpeed||50);return false}});c.keyboard&&e(document).bind("keydown.scrollable",function(b){if(!(!c.keyboard||b.altKey||b.ctrlKey||e(b.target).is(":input")))if(!(c.keyboard!="static"&&j!=a)){var d=b.keyCode;if(m&&(d==38||d==40)){a.move(d==38?-1:1);return b.preventDefault()}if(!m&&(d==37||d==39)){a.move(d==37?-1:1);return b.preventDefault()}}});
217
- e(a).trigger("onBeforeSeek",[c.initialIndex])}e.tools=e.tools||{version:"1.2.3"};e.tools.scrollable={conf:{activeClass:"active",circular:false,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:true,mousewheel:false,next:".next",prev:".prev",speed:400,vertical:false,wheelSpeed:0}};var j;e.fn.scrollable=function(f){var c=this.data("scrollable");if(c)return c;f=e.extend({},e.tools.scrollable.conf,f);this.each(function(){c=new t(e(this),f);e(this).data("scrollable",
218
- c)});return f.api?c:this}})(jQuery);
219
- (function(c){var g=c.tools.scrollable;g.autoscroll={conf:{autoplay:true,interval:3E3,autopause:true}};c.fn.autoscroll=function(d){if(typeof d=="number")d={interval:d};var b=c.extend({},g.autoscroll.conf,d),h;this.each(function(){var a=c(this).data("scrollable");if(a)h=a;var e,i,f=true;a.play=function(){if(!e){f=false;e=setInterval(function(){a.next()},b.interval);a.next()}};a.pause=function(){e=clearInterval(e)};a.stop=function(){a.pause();f=true};b.autopause&&a.getRoot().add(a.getNaviButtons()).hover(function(){a.pause();
220
- clearInterval(i)},function(){f||(i=setTimeout(a.play,b.interval))});b.autoplay&&setTimeout(a.play,b.interval)});return b.api?h:this}})(jQuery);
221
- (function(d){function p(c,g){var h=d(g);return h.length<2?h:c.parent().find(g)}var m=d.tools.scrollable;m.navigator={conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,idPrefix:null,history:false}};d.fn.navigator=function(c){if(typeof c=="string")c={navi:c};c=d.extend({},m.navigator.conf,c);var g;this.each(function(){function h(a,b,i){e.seekTo(b);if(j){if(location.hash)location.hash=a.attr("href").replace("#","")}else return i.preventDefault()}function f(){return k.find(c.naviItem||
222
- "> *")}function n(a){var b=d("<"+(c.naviItem||"a")+"/>").click(function(i){h(d(this),a,i)}).attr("href","#"+a);a===0&&b.addClass(l);c.indexed&&b.text(a+1);c.idPrefix&&b.attr("id",c.idPrefix+a);return b.appendTo(k)}function o(a,b){a=f().eq(b.replace("#",""));a.length||(a=f().filter("[href="+b+"]"));a.click()}var e=d(this).data("scrollable"),k=p(e.getRoot(),c.navi),q=e.getNaviButtons(),l=c.activeClass,j=c.history&&d.fn.history;if(e)g=e;e.getNaviButtons=function(){return q.add(k)};f().length?f().each(function(a){d(this).click(function(b){h(d(this),
223
- a,b)})}):d.each(e.getItems(),function(a){n(a)});e.onBeforeSeek(function(a,b){setTimeout(function(){if(!a.isDefaultPrevented()){var i=f().eq(b);!a.isDefaultPrevented()&&i.length&&f().removeClass(l).eq(b).addClass(l)}},1)});e.onAddItem(function(a,b){b=n(e.getItems().index(b));j&&b.history(o)});j&&f().history(o)});return c.api?g:this}})(jQuery);
224
- (function(a){function t(d,b){var c=this,i=d.add(c),o=a(window),k,f,m,g=a.tools.expose&&(b.mask||b.expose),n=Math.random().toString().slice(10);if(g){if(typeof g=="string")g={color:g};g.closeOnClick=g.closeOnEsc=false}var p=b.target||d.attr("rel");f=p?a(p):d;if(!f.length)throw"Could not find Overlay: "+p;d&&d.index(f)==-1&&d.click(function(e){c.load(e);return e.preventDefault()});a.extend(c,{load:function(e){if(c.isOpened())return c;var h=q[b.effect];if(!h)throw'Overlay: cannot find effect : "'+b.effect+
225
- '"';b.oneInstance&&a.each(s,function(){this.close(e)});e=e||a.Event();e.type="onBeforeLoad";i.trigger(e);if(e.isDefaultPrevented())return c;m=true;g&&a(f).expose(g);var j=b.top,r=b.left,u=f.outerWidth({margin:true}),v=f.outerHeight({margin:true});if(typeof j=="string")j=j=="center"?Math.max((o.height()-v)/2,0):parseInt(j,10)/100*o.height();if(r=="center")r=Math.max((o.width()-u)/2,0);h[0].call(c,{top:j,left:r},function(){if(m){e.type="onLoad";i.trigger(e)}});g&&b.closeOnClick&&a.mask.getMask().one("click",
226
- c.close);b.closeOnClick&&a(document).bind("click."+n,function(l){a(l.target).parents(f).length||c.close(l)});b.closeOnEsc&&a(document).bind("keydown."+n,function(l){l.keyCode==27&&c.close(l)});return c},close:function(e){if(!c.isOpened())return c;e=e||a.Event();e.type="onBeforeClose";i.trigger(e);if(!e.isDefaultPrevented()){m=false;q[b.effect][1].call(c,function(){e.type="onClose";i.trigger(e)});a(document).unbind("click."+n).unbind("keydown."+n);g&&a.mask.close();return c}},getOverlay:function(){return f},
227
- getTrigger:function(){return d},getClosers:function(){return k},isOpened:function(){return m},getConf:function(){return b}});a.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(e,h){a.isFunction(b[h])&&a(c).bind(h,b[h]);c[h]=function(j){a(c).bind(h,j);return c}});k=f.find(b.close||".close");if(!k.length&&!b.close){k=a('<a class="close"></a>');f.prepend(k)}k.click(function(e){c.close(e)});b.load&&c.load()}a.tools=a.tools||{version:"1.2.3"};a.tools.overlay={addEffect:function(d,
228
- b,c){q[d]=[b,c]},conf:{close:null,closeOnClick:true,closeOnEsc:true,closeSpeed:"fast",effect:"default",fixed:!a.browser.msie||a.browser.version>6,left:"center",load:false,mask:null,oneInstance:true,speed:"normal",target:null,top:"10%"}};var s=[],q={};a.tools.overlay.addEffect("default",function(d,b){var c=this.getConf(),i=a(window);if(!c.fixed){d.top+=i.scrollTop();d.left+=i.scrollLeft()}d.position=c.fixed?"fixed":"absolute";this.getOverlay().css(d).fadeIn(c.speed,b)},function(d){this.getOverlay().fadeOut(this.getConf().closeSpeed,
229
- d)});a.fn.overlay=function(d){var b=this.data("overlay");if(b)return b;if(a.isFunction(d))d={onBeforeLoad:d};d=a.extend(true,{},a.tools.overlay.conf,d);this.each(function(){b=new t(a(this),d);s.push(b);a(this).data("overlay",b)});return d.api?b:this}})(jQuery);
230
- (function(i){function j(b){var d=b.offset();return{top:d.top+b.height()/2,left:d.left+b.width()/2}}var k=i.tools.overlay,f=i(window);i.extend(k.conf,{start:{top:null,left:null},fadeInSpeed:"fast",zIndex:9999});function n(b,d){var a=this.getOverlay(),c=this.getConf(),g=this.getTrigger(),o=this,l=a.outerWidth({margin:true}),h=a.data("img");if(!h){var e=a.css("backgroundImage");if(!e)throw"background-image CSS property not set for overlay";e=e.slice(e.indexOf("(")+1,e.indexOf(")")).replace(/\"/g,"");
231
- a.css("backgroundImage","none");h=i('<img src="'+e+'"/>');h.css({border:0,display:"none"}).width(l);i("body").append(h);a.data("img",h)}e=c.start.top||Math.round(f.height()/2);var m=c.start.left||Math.round(f.width()/2);if(g){g=j(g);e=g.top;m=g.left}h.css({position:"absolute",top:e,left:m,width:0,zIndex:c.zIndex}).show();b.top+=f.scrollTop();b.left+=f.scrollLeft();b.position="absolute";a.css(b);h.animate({top:a.css("top"),left:a.css("left"),width:l},c.speed,function(){if(c.fixed){b.top-=f.scrollTop();
232
- b.left-=f.scrollLeft();b.position="fixed";h.add(a).css(b)}a.css("zIndex",c.zIndex+1).fadeIn(c.fadeInSpeed,function(){o.isOpened()&&!i(this).index(a)?d.call():a.hide()})})}function p(b){var d=this.getOverlay().hide(),a=this.getConf(),c=this.getTrigger();d=d.data("img");var g={top:a.start.top,left:a.start.left,width:0};c&&i.extend(g,j(c));a.fixed&&d.css({position:"absolute"}).animate({top:"+="+f.scrollTop(),left:"+="+f.scrollLeft()},0);d.animate(g,a.closeSpeed,b)}k.addEffect("apple",n,p)})(jQuery);
233
- (function(d){function R(b,c){return 32-(new Date(b,c,32)).getDate()}function S(b,c){b=""+b;for(c=c||2;b.length<c;)b="0"+b;return b}function T(b,c,j){var m=b.getDate(),h=b.getDay(),t=b.getMonth();b=b.getFullYear();var f={d:m,dd:S(m),ddd:B[j].shortDays[h],dddd:B[j].days[h],m:t+1,mm:S(t+1),mmm:B[j].shortMonths[t],mmmm:B[j].months[t],yy:String(b).slice(2),yyyy:b};c=c.replace(X,function(o){return o in f?f[o]:o.slice(1,o.length-1)});return Y.html(c).html()}function y(b){return parseInt(b,10)}function U(b,
234
- c){return b.getFullYear()===c.getFullYear()&&b.getMonth()==c.getMonth()&&b.getDate()==c.getDate()}function C(b){if(b){if(b.constructor==Date)return b;if(typeof b=="string"){var c=b.split("-");if(c.length==3)return new Date(y(c[0]),y(c[1])-1,y(c[2]));if(!/^-?\d+$/.test(b))return;b=y(b)}c=new Date;c.setDate(c.getDate()+b);return c}}function Z(b,c){function j(a,e,g){l=a;D=a.getFullYear();E=a.getMonth();G=a.getDate();g=g||d.Event("api");g.type="change";H.trigger(g,[a]);if(!g.isDefaultPrevented()){b.val(T(a,
235
- e.format,e.lang));b.data("date",a);h.hide(g)}}function m(a){a.type="onShow";H.trigger(a);d(document).bind("keydown.d",function(e){var g=e.keyCode;if(g==8){b.val("");return h.hide(e)}if(g==27)return h.hide(e);if(d(V).index(g)>=0){if(!u){h.show(e);return e.preventDefault()}var i=d("#"+f.weeks+" a"),p=d("."+f.focus),q=i.index(p);p.removeClass(f.focus);if(g==74||g==40)q+=7;else if(g==75||g==38)q-=7;else if(g==76||g==39)q+=1;else if(g==72||g==37)q-=1;if(q==-1){h.addMonth(-1);p=d("#"+f.weeks+" a:last")}else if(q==
236
- 35){h.addMonth();p=d("#"+f.weeks+" a:first")}else p=i.eq(q);p.addClass(f.focus);return e.preventDefault()}if(g==34)return h.addMonth();if(g==33)return h.addMonth(-1);if(g==36)return h.today();if(g==13)d(e.target).is("select")||d("."+f.focus).click();return d([16,17,18,9]).index(g)>=0});d(document).bind("click.d",function(e){var g=e.target;if(!d(g).parents("#"+f.root).length&&g!=b[0]&&(!K||g!=K[0]))h.hide(e)})}var h=this,t=new Date,f=c.css,o=B[c.lang],k=d("#"+f.root),L=k.find("#"+f.title),K,I,J,D,
237
- E,G,l=b.attr("data-value")||c.value||b.val(),r=b.attr("min")||c.min,s=b.attr("max")||c.max,u;l=C(l)||t;r=C(r||c.yearRange[0]*365);s=C(s||c.yearRange[1]*365);if(!o)throw"Dateinput: invalid language: "+c.lang;if(b.attr("type")=="date"){var M=d("<input/>");d.each("name,readonly,disabled,value,required".split(","),function(a,e){M.attr(e,b.attr(e))});b.replaceWith(M);b=M}b.addClass(f.input);var H=b.add(h);if(!k.length){k=d("<div><div><a/><div/><a/></div><div><div/><div/></div></div>").hide().css({position:"absolute"}).attr("id",
238
- f.root);k.children().eq(0).attr("id",f.head).end().eq(1).attr("id",f.body).children().eq(0).attr("id",f.days).end().eq(1).attr("id",f.weeks).end().end().end().find("a").eq(0).attr("id",f.prev).end().eq(1).attr("id",f.next);L=k.find("#"+f.head).find("div").attr("id",f.title);if(c.selectors){var z=d("<select/>").attr("id",f.month),A=d("<select/>").attr("id",f.year);L.append(z.add(A))}for(var $=k.find("#"+f.days),N=0;N<7;N++)$.append(d("<span/>").text(o.shortDays[(N+c.firstDay)%7]));b.after(k)}if(c.trigger)K=
239
- d("<a/>").attr("href","#").addClass(f.trigger).click(function(a){h.show();return a.preventDefault()}).insertAfter(b);var O=k.find("#"+f.weeks);A=k.find("#"+f.year);z=k.find("#"+f.month);d.extend(h,{show:function(a){if(!(b.is("[readonly]")||u)){a=a||d.Event();a.type="onBeforeShow";H.trigger(a);if(!a.isDefaultPrevented()){d.each(W,function(){this.hide()});u=true;z.unbind("change").change(function(){h.setValue(A.val(),d(this).val())});A.unbind("change").change(function(){h.setValue(d(this).val(),z.val())});
240
- I=k.find("#"+f.prev).unbind("click").click(function(){I.hasClass(f.disabled)||h.addMonth(-1);return false});J=k.find("#"+f.next).unbind("click").click(function(){J.hasClass(f.disabled)||h.addMonth();return false});h.setValue(l);var e=b.position();k.css({top:e.top+b.outerHeight({margins:true})+c.offset[0],left:e.left+c.offset[1]});if(c.speed)k.show(c.speed,function(){m(a)});else{k.show();m(a)}return h}}},setValue:function(a,e,g){var i;if(parseInt(e,10)>=-1){a=y(a);e=y(e);g=y(g);i=new Date(a,e,g)}else{i=
241
- a||l;a=i.getFullYear();e=i.getMonth();g=i.getDate()}if(e==-1){e=11;a--}else if(e==12){e=0;a++}if(!u){j(i,c);return h}E=e;D=a;i=new Date(a,e,1-c.firstDay);g=i.getDay();var p=R(a,e),q=R(a,e-1),P;if(c.selectors){z.empty();d.each(o.months,function(v,F){r<new Date(a,v+1,-1)&&s>new Date(a,v,0)&&z.append(d("<option/>").html(F).attr("value",v))});A.empty();for(i=a+c.yearRange[0];i<a+c.yearRange[1];i++)r<new Date(i+1,-1,0)&&s>new Date(i,0,0)&&A.append(d("<option/>").text(i));z.val(e);A.val(a)}else L.html(o.months[e]+
242
- " "+a);O.empty();I.add(J).removeClass(f.disabled);for(var w=0,n,x;w<42;w++){n=d("<a/>");if(w%7===0){P=d("<div/>").addClass(f.week);O.append(P)}if(w<g){n.addClass(f.off);x=q-g+w+1;i=new Date(a,e-1,x)}else if(w>=g+p){n.addClass(f.off);x=w-p-g+1;i=new Date(a,e+1,x)}else{x=w-g+1;i=new Date(a,e,x);if(U(l,i))n.attr("id",f.current).addClass(f.focus);else U(t,i)&&n.attr("id",f.today)}r&&i<r&&n.add(I).addClass(f.disabled);s&&i>s&&n.add(J).addClass(f.disabled);n.attr("href","#"+x).text(x).data("date",i);P.append(n);
243
- n.click(function(v){var F=d(this);if(!F.hasClass(f.disabled)){d("#"+f.current).removeAttr("id");F.attr("id",f.current);j(F.data("date"),c,v)}return false})}f.sunday&&O.find(f.week).each(function(){var v=c.firstDay?7-c.firstDay:0;d(this).children().slice(v,v+1).addClass(f.sunday)});return h},setMin:function(a,e){r=C(a);e&&l<r&&h.setValue(r);return h},setMax:function(a,e){s=C(a);e&&l>s&&h.setValue(s);return h},today:function(){return h.setValue(t)},addDay:function(a){return this.setValue(D,E,G+(a||
244
- 1))},addMonth:function(a){return this.setValue(D,E+(a||1),G)},addYear:function(a){return this.setValue(D+(a||1),E,G)},hide:function(a){if(u){a=a||d.Event();a.type="onHide";H.trigger(a);d(document).unbind("click.d").unbind("keydown.d");if(a.isDefaultPrevented())return;k.hide();u=false}return h},getConf:function(){return c},getInput:function(){return b},getCalendar:function(){return k},getValue:function(a){return a?T(l,a,c.lang):l},isOpen:function(){return u}});d.each(["onBeforeShow","onShow","change",
245
- "onHide"],function(a,e){d.isFunction(c[e])&&d(h).bind(e,c[e]);h[e]=function(g){d(h).bind(e,g);return h}});b.bind("focus click",h.show).keydown(function(a){var e=a.keyCode;if(!u&&d(V).index(e)>=0){h.show(a);return a.preventDefault()}return a.shiftKey||a.ctrlKey||a.altKey||e==9?true:a.preventDefault()});C(b.val())&&j(l,c)}d.tools=d.tools||{version:"1.2.3"};var W=[],Q,V=[75,76,38,39,74,72,40,37],B={};Q=d.tools.dateinput={conf:{format:"mm/dd/yy",selectors:false,yearRange:[-5,5],lang:"en",offset:[0,0],
246
- speed:0,firstDay:0,min:0,max:0,trigger:false,css:{prefix:"cal",input:"date",root:0,head:0,title:0,prev:0,next:0,month:0,year:0,days:0,body:0,weeks:0,today:0,current:0,week:0,off:0,sunday:0,focus:0,disabled:0,trigger:0}},localize:function(b,c){d.each(c,function(j,m){c[j]=m.split(",")});B[b]=c}};Q.localize("en",{months:"January,February,March,April,May,June,July,August,September,October,November,December",shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",days:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",
247
- shortDays:"Sun,Mon,Tue,Wed,Thu,Fri,Sat"});var X=/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g,Y=d("<a/>");d.expr[":"].date=function(b){var c=b.getAttribute("type");return c&&c=="date"||!!d(b).data("dateinput")};d.fn.dateinput=function(b){if(this.data("dateinput"))return this;b=d.extend(true,{},Q.conf,b);d.each(b.css,function(j,m){if(!m&&j!="prefix")b.css[j]=(b.css.prefix||"")+(m||j)});var c;this.each(function(){var j=new Z(d(this),b);W.push(j);j=j.getInput().data("dateinput",j);c=c?c.add(j):j});return c?
248
- c:this}})(jQuery);
249
- (function(e){function F(d,a){a=Math.pow(10,a);return Math.round(d*a)/a}function p(d,a){if(a=parseInt(d.css(a),10))return a;return(d=d[0].currentStyle)&&d.width&&parseInt(d.width,10)}function C(d){return(d=d.data("events"))&&d.onSlide}function G(d,a){function h(c,b,f,j){if(f===undefined)f=b/k*z;else if(j)f-=a.min;if(r)f=Math.round(f/r)*r;if(b===undefined||r)b=f*k/z;if(isNaN(f))return g;b=Math.max(0,Math.min(b,k));f=b/k*z;if(j||!n)f+=a.min;if(n)if(j)b=k-b;else f=a.max-f;f=F(f,t);var q=c.type=="click";
250
- if(D&&l!==undefined&&!q){c.type="onSlide";A.trigger(c,[f,b]);if(c.isDefaultPrevented())return g}j=q?a.speed:0;q=q?function(){c.type="change";A.trigger(c,[f])}:null;if(n){m.animate({top:b},j,q);a.progress&&B.animate({height:k-b+m.width()/2},j)}else{m.animate({left:b},j,q);a.progress&&B.animate({width:b+m.width()/2},j)}l=f;H=b;d.val(f);return g}function s(){if(n=a.vertical||p(i,"height")>p(i,"width")){k=p(i,"height")-p(m,"height");u=i.offset().top+k}else{k=p(i,"width")-p(m,"width");u=i.offset().left}}
251
- function v(){s();g.setValue(a.value||a.min)}var g=this,o=a.css,i=e("<div><div/><a href='#'/></div>").data("rangeinput",g),n,l,u,k,H;d.before(i);var m=i.addClass(o.slider).find("a").addClass(o.handle),B=i.find("div").addClass(o.progress);e.each("min,max,step,value".split(","),function(c,b){c=d.attr(b);if(parseFloat(c))a[b]=parseFloat(c,10)});var z=a.max-a.min,r=a.step=="any"?0:a.step,t=a.precision;if(t===undefined)try{t=r.toString().split(".")[1].length}catch(I){t=0}if(d.attr("type")=="range"){var w=
252
- e("<input/>");e.each("name,readonly,disabled,required".split(","),function(c,b){w.attr(b,d.attr(b))});w.val(a.value);d.replaceWith(w);d=w}d.addClass(o.input);var A=e(g).add(d),D=true;e.extend(g,{getValue:function(){return l},setValue:function(c,b){return h(b||e.Event("api"),undefined,c,true)},getConf:function(){return a},getProgress:function(){return B},getHandle:function(){return m},getInput:function(){return d},step:function(c,b){b=b||e.Event();var f=a.step=="any"?1:a.step;g.setValue(l+f*(c||1),
253
- b)},stepUp:function(c){return g.step(c||1)},stepDown:function(c){return g.step(-c||-1)}});e.each("onSlide,change".split(","),function(c,b){e.isFunction(a[b])&&e(g).bind(b,a[b]);g[b]=function(f){e(g).bind(b,f);return g}});m.drag({drag:false}).bind("dragStart",function(){D=C(e(g))||C(d)}).bind("drag",function(c,b,f){if(d.is(":disabled"))return false;h(c,n?b:f)}).bind("dragEnd",function(c){if(!c.isDefaultPrevented()){c.type="change";A.trigger(c,[l])}}).click(function(c){return c.preventDefault()});i.click(function(c){if(d.is(":disabled")||
254
- c.target==m[0])return c.preventDefault();s();var b=m.width()/2;h(c,n?k-u-b+c.pageY:c.pageX-u-b)});a.keyboard&&d.keydown(function(c){if(!d.attr("readonly")){var b=c.keyCode,f=e([75,76,38,33,39]).index(b)!=-1,j=e([74,72,40,34,37]).index(b)!=-1;if((f||j)&&!(c.shiftKey||c.altKey||c.ctrlKey)){if(f)g.step(b==33?10:1,c);else if(j)g.step(b==34?-10:-1,c);return c.preventDefault()}}});d.blur(function(c){var b=e(this).val();b!==l&&g.setValue(b,c)});e.extend(d[0],{stepUp:g.stepUp,stepDown:g.stepDown});v();k||
255
- e(window).load(v)}e.tools=e.tools||{version:"1.2.3"};var E;E=e.tools.rangeinput={conf:{min:0,max:100,step:"any",steps:0,value:0,precision:undefined,vertical:0,keyboard:true,progress:false,speed:100,css:{input:"range",slider:"slider",progress:"progress",handle:"handle"}}};var x,y;e.fn.drag=function(d){document.ondragstart=function(){return false};d=e.extend({x:true,y:true,drag:true},d);x=x||e(document).bind("mousedown mouseup",function(a){var h=e(a.target);if(a.type=="mousedown"&&h.data("drag")){var s=
256
- h.position(),v=a.pageX-s.left,g=a.pageY-s.top,o=true;x.bind("mousemove.drag",function(i){var n=i.pageX-v;i=i.pageY-g;var l={};if(d.x)l.left=n;if(d.y)l.top=i;if(o){h.trigger("dragStart");o=false}d.drag&&h.css(l);h.trigger("drag",[i,n]);y=h});a.preventDefault()}else try{y&&y.trigger("dragEnd")}finally{x.unbind("mousemove.drag");y=null}});return this.data("drag",true)};e.expr[":"].range=function(d){var a=d.getAttribute("type");return a&&a=="range"||!!e(d).filter("input").data("rangeinput")};e.fn.rangeinput=
257
- function(d){if(this.data("rangeinput"))return this;d=e.extend(true,{},E.conf,d);var a;this.each(function(){var h=new G(e(this),e.extend(true,{},d));h=h.getInput().data("rangeinput",h);a=a?a.add(h):h});return a?a:this}})(jQuery);
258
- (function(d){function v(a,b,c){var k=a.offset().top,f=a.offset().left,l=c.position.split(/,?\s+/),g=l[0];l=l[1];k-=b.outerHeight()-c.offset[0];f+=a.outerWidth()+c.offset[1];c=b.outerHeight()+a.outerHeight();if(g=="center")k+=c/2;if(g=="bottom")k+=c;a=a.outerWidth();if(l=="center")f-=(a+b.outerWidth())/2;if(l=="left")f-=a;return{top:k,left:f}}function w(a){function b(){return this.getAttribute("type")==a}b.key="[type="+a+"]";return b}function s(a,b,c){function k(g,e,j){if(!(!c.grouped&&g.length)){var h;
259
- if(j===false||d.isArray(j)){h=i.messages[e.key||e]||i.messages["*"];h=h[c.lang]||i.messages["*"].en;(e=h.match(/\$\d/g))&&d.isArray(j)&&d.each(e,function(n){h=h.replace(this,j[n])})}else h=j[c.lang]||j;g.push(h)}}var f=this,l=b.add(f);a=a.not(":button, :image, :reset, :submit");d.extend(f,{getConf:function(){return c},getForm:function(){return b},getInputs:function(){return a},invalidate:function(g,e){if(!e){var j=[];d.each(g,function(h,n){h=a.filter("[name="+h+"]");if(h.length){h.trigger("OI",[n]);
260
- j.push({input:h,messages:[n]})}});g=j;e=d.Event()}e.type="onFail";l.trigger(e,[g]);e.isDefaultPrevented()||q[c.effect][0].call(f,g,e);return f},reset:function(g){g=g||a;g.removeClass(c.errorClass).each(function(){var e=d(this).data("msg.el");if(e){e.remove();d(this).data("msg.el",null)}}).unbind(c.errorInputEvent||"");return f},destroy:function(){b.unbind(c.formEvent).unbind("reset.V");a.unbind(c.inputEvent||"").unbind("change.V");return f.reset()},checkValidity:function(g,e){g=g||a;g=g.not(":disabled");
261
- if(!g.length)return true;e=e||d.Event();e.type="onBeforeValidate";l.trigger(e,[g]);if(e.isDefaultPrevented())return e.result;var j=[],h=c.errorInputEvent+".v";g.each(function(){var p=[],m=d(this).unbind(h).data("messages",p);d.each(t,function(){var o=this,r=o[0];if(m.filter(r).length){o=o[1].call(f,m,m.val());if(o!==true){e.type="onBeforeFail";l.trigger(e,[m,r]);if(e.isDefaultPrevented())return false;var u=m.attr(c.messageAttr);if(u){p=[u];return false}else k(p,r,o)}}});if(p.length){j.push({input:m,
262
- messages:p});m.trigger("OI",[p]);c.errorInputEvent&&m.bind(h,function(o){f.checkValidity(m,o)})}if(c.singleError&&j.length)return false});var n=q[c.effect];if(!n)throw'Validator: cannot find effect "'+c.effect+'"';if(j.length){f.invalidate(j,e);return false}else{n[1].call(f,g,e);e.type="onSuccess";l.trigger(e,[g]);g.unbind(h)}return true}});d.each("onBeforeValidate,onBeforeFail,onFail,onSuccess".split(","),function(g,e){d.isFunction(c[e])&&d(f).bind(e,c[e]);f[e]=function(j){d(f).bind(e,j);return f}});
263
- c.formEvent&&b.bind(c.formEvent,function(g){if(!f.checkValidity(null,g))return g.preventDefault()});b.bind("reset.V",function(){f.reset()});a[0]&&a[0].validity&&a.each(function(){this.oninvalid=function(){return false}});if(b[0])b[0].checkValidity=f.checkValidity;c.inputEvent&&a.bind(c.inputEvent,function(g){f.checkValidity(d(this),g)});a.filter(":checkbox, select").filter("[required]").bind("change.V",function(g){var e=d(this);if(this.checked||e.is("select")&&d(this).val())q[c.effect][1].call(f,
264
- e,g)})}d.tools=d.tools||{version:"1.2.3"};var x=/\[type=([a-z]+)\]/,y=/^-?[0-9]*(\.[0-9]+)?$/,z=/^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i,A=/^(https?:\/\/)?([\da-z\.\-]+)\.([a-z\.]{2,6})([\/\w \.\-]*)*\/?$/i,i;i=d.tools.validator={conf:{grouped:false,effect:"default",errorClass:"invalid",inputEvent:null,errorInputEvent:"keyup",formEvent:"submit",lang:"en",message:"<div/>",messageAttr:"data-message",messageClass:"error",offset:[0,0],position:"center right",singleError:false,speed:"normal"},
265
- messages:{"*":{en:"Please correct this value"}},localize:function(a,b){d.each(b,function(c,k){i.messages[c]=i.messages[c]||{};i.messages[c][a]=k})},localizeFn:function(a,b){i.messages[a]=i.messages[a]||{};d.extend(i.messages[a],b)},fn:function(a,b,c){if(d.isFunction(b))c=b;else{if(typeof b=="string")b={en:b};this.messages[a.key||a]=b}if(b=x.exec(a))a=w(b[1]);t.push([a,c])},addEffect:function(a,b,c){q[a]=[b,c]}};var t=[],q={"default":[function(a){var b=this.getConf();d.each(a,function(c,k){c=k.input;
266
- c.addClass(b.errorClass);var f=c.data("msg.el");if(!f){f=d(b.message).addClass(b.messageClass).appendTo(document.body);c.data("msg.el",f)}f.css({visibility:"hidden"}).find("span").remove();d.each(k.messages,function(l,g){d("<span/>").html(g).appendTo(f)});f.outerWidth()==f.parent().width()&&f.add(f.find("p")).css({display:"inline"});k=v(c,f,b);f.css({visibility:"visible",position:"absolute",top:k.top,left:k.left}).fadeIn(b.speed)})},function(a){var b=this.getConf();a.removeClass(b.errorClass).each(function(){var c=
267
- d(this).data("msg.el");c&&c.css({visibility:"hidden"})})}]};d.each("email,url,number".split(","),function(a,b){d.expr[":"][b]=function(c){return c.getAttribute("type")===b}});d.fn.oninvalid=function(a){return this[a?"bind":"trigger"]("OI",a)};i.fn(":email","Please enter a valid email address",function(a,b){return!b||z.test(b)});i.fn(":url","Please enter a valid URL",function(a,b){return!b||A.test(b)});i.fn(":number","Please enter a numeric value.",function(a,b){return y.test(b)});i.fn("[max]","Please enter a value smaller than $1",
268
- function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("max");return parseFloat(b)<=parseFloat(a)?true:[a]});i.fn("[min]","Please enter a value larger than $1",function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("min");return parseFloat(b)>=parseFloat(a)?true:[a]});i.fn("[required]","Please complete this mandatory field.",function(a,b){if(a.is(":checkbox"))return a.is(":checked");return!!b});i.fn("[pattern]",function(a){var b=new RegExp("^"+a.attr("pattern")+"$");
269
- return b.test(a.val())});d.fn.validator=function(a){var b=this.data("validator");if(b){b.destroy();this.removeData("validator")}a=d.extend(true,{},i.conf,a);if(this.is("form"))return this.each(function(){var c=d(this);b=new s(c.find(":input"),c,a);c.data("validator",b)});else{b=new s(this,this.eq(0).closest("form"),a);return this.data("validator",b)}}})(jQuery);
1
+ /*
2
+ * jQuery Tools 1.2.3 - The missing UI library for the Web
3
+ *
4
+ * [jquery, toolbox.flashembed, toolbox.history, toolbox.expose, toolbox.mousewheel, tabs, tabs.slideshow, tooltip, tooltip.slide, tooltip.dynamic, scrollable, scrollable.autoscroll, scrollable.navigator, overlay, overlay.apple, dateinput, rangeinput, validator]
5
+ *
6
+ * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
7
+ *
8
+ * http://flowplayer.org/tools/
9
+ *
10
+ * jQuery JavaScript Library v1.4.2
11
+ * http://jquery.com/
12
+ *
13
+ * Copyright 2010, John Resig
14
+ * Dual licensed under the MIT or GPL Version 2 licenses.
15
+ * http://docs.jquery.com/License
16
+ *
17
+ * Includes Sizzle.js
18
+ * http://sizzlejs.com/
19
+ * Copyright 2010, The Dojo Foundation
20
+ * Released under the MIT, BSD, and GPL Licenses.
21
+ *
22
+ * -----
23
+ *
24
+
25
+
26
+ * jquery.event.wheel.js - rev 1
27
+ * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
28
+ * Liscensed under the MIT License (MIT-LICENSE.txt)
29
+ * http://www.opensource.org/licenses/mit-license.php
30
+ * Created: 2008-07-01 | Updated: 2008-07-14
31
+ *
32
+ * -----
33
+ *
34
+ * File generated: Sat Jun 12 10:02:29 GMT 2010
35
+ */
36
+ (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
37
+ e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
38
+ j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
39
+ "&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
40
+ true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
41
+ Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
42
+ (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
43
+ a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
44
+ "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
45
+ function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
46
+ c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
47
+ L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
48
+ "isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
49
+ a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
50
+ d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
51
+ a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
52
+ !c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
53
+ true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
54
+ var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
55
+ parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
56
+ false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
57
+ s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
58
+ applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
59
+ else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
60
+ a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
61
+ w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
62
+ cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
63
+ i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
64
+ " ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
65
+ this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
66
+ e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
67
+ c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
68
+ a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
69
+ function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
70
+ k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
71
+ C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
72
+ null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
73
+ e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
74
+ f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
75
+ if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
76
+ fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
77
+ d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
78
+ "events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
79
+ a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
80
+ isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
81
+ {setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
82
+ if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
83
+ e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
84
+ "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
85
+ d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
86
+ !a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
87
+ toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
88
+ u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
89
+ function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
90
+ if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
91
+ e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
92
+ t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
93
+ g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
94
+ for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
95
+ 1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
96
+ CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
97
+ relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
98
+ l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
99
+ h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
100
+ CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
101
+ g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
102
+ text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
103
+ setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
104
+ h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
105
+ m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
106
+ "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
107
+ h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
108
+ !h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
109
+ h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
110
+ q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
111
+ if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
112
+ (function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
113
+ function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
114
+ gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
115
+ c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
116
+ {},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
117
+ "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
118
+ d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
119
+ a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
120
+ 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
121
+ a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
122
+ c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
123
+ wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
124
+ prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
125
+ this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
126
+ return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
127
+ ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
128
+ this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
129
+ u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
130
+ 1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
131
+ return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
132
+ ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
133
+ c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
134
+ c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
135
+ function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
136
+ Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
137
+ "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
138
+ a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
139
+ a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
140
+ "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
141
+ serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
142
+ function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
143
+ global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
144
+ e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
145
+ "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
146
+ false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
147
+ false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
148
+ c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
149
+ d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
150
+ g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
151
+ 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
152
+ "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
153
+ if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
154
+ this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
155
+ "olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
156
+ animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
157
+ j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
158
+ this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
159
+ "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
160
+ c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
161
+ this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
162
+ this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
163
+ e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
164
+ c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
165
+ function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
166
+ this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
167
+ k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
168
+ f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
169
+ a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
170
+ c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
171
+ d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
172
+ f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
173
+ "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
174
+ e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
175
+ (function(){function f(a,b){if(b)for(key in b)if(b.hasOwnProperty(key))a[key]=b[key];return a}function l(a,b){var c=[];for(var d in a)if(a.hasOwnProperty(d))c[d]=b(a[d]);return c}function m(a,b,c){if(e.isSupported(b.version))a.innerHTML=e.getHTML(b,c);else if(b.expressInstall&&e.isSupported([6,65]))a.innerHTML=e.getHTML(f(b,{src:b.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title});else{if(!a.innerHTML.replace(/\s/g,"")){a.innerHTML="<h2>Flash version "+
176
+ b.version+" or greater is required</h2><h3>"+(g[0]>0?"Your version is "+g:"You have no flash plugin installed")+"</h3>"+(a.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+k+"'>here</a></p>");if(a.tagName=="A")a.onclick=function(){location.href=k}}if(b.onFail){var d=b.onFail.call(this);if(typeof d=="string")a.innerHTML=d}}if(h)window[b.id]=document.getElementById(b.id);f(this,{getRoot:function(){return a},getOptions:function(){return b},getConf:function(){return c},
177
+ getApi:function(){return a.firstChild}})}var h=document.all,k="http://www.adobe.com/go/getflashplayer",n=typeof jQuery=="function",o=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,i={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}});
178
+ window.flashembed=function(a,b,c){if(typeof a=="string")a=document.getElementById(a.replace("#",""));if(a){if(typeof b=="string")b={src:b};return new m(a,f(f({},i),b),c)}};var e=f(window.flashembed,{conf:i,getVersion:function(){var a;try{a=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(b){try{var c=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");a=c&&c.GetVariable("$version")}catch(d){}}return(a=o.exec(a))?[a[1],a[3]]:[0,0]},asString:function(a){if(a===null||a===undefined)return null;
179
+ var b=typeof a;if(b=="object"&&a.push)b="array";switch(b){case "string":a=a.replace(new RegExp('(["\\\\])',"g"),"\\$1");a=a.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+a+'"';case "array":return"["+l(a,function(d){return e.asString(d)}).join(",")+"]";case "function":return'"function()"';case "object":b=[];for(var c in a)a.hasOwnProperty(c)&&b.push('"'+c+'":'+e.asString(a[c]));return"{"+b.join(",")+"}"}return String(a).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(a,b){a=f({},a);var c='<object width="'+
180
+ a.width+'" height="'+a.height+'" id="'+a.id+'" name="'+a.id+'"';if(a.cachebusting)a.src+=(a.src.indexOf("?")!=-1?"&":"?")+Math.random();c+=a.w3c||!h?' data="'+a.src+'" type="application/x-shockwave-flash"':' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';c+=">";if(a.w3c||h)c+='<param name="movie" value="'+a.src+'" />';a.width=a.height=a.id=a.w3c=a.src=null;a.onFail=a.version=a.expressInstall=null;for(var d in a)if(a[d])c+='<param name="'+d+'" value="'+a[d]+'" />';a="";if(b){for(var j in b)if(b[j]){d=
181
+ b[j];a+=j+"="+(/function|object/.test(typeof d)?e.asString(d):d)+"&"}a=a.slice(0,-1);c+='<param name="flashvars" value=\''+a+"' />"}c+="</object>";return c},isSupported:function(a){return g[0]>a[0]||g[0]==a[0]&&g[1]>=a[1]}}),g=e.getVersion();if(n){jQuery.tools=jQuery.tools||{version:"1.2.3"};jQuery.tools.flashembed={conf:i};jQuery.fn.flashembed=function(a,b){return this.each(function(){$(this).data("flashembed",flashembed(this,a,b))})}}})();
182
+ (function(b){function h(c){if(c){var a=d.contentWindow.document;a.open().close();a.location.hash=c}}var g,d,f,i;b.tools=b.tools||{version:"1.2.3"};b.tools.history={init:function(c){if(!i){if(b.browser.msie&&b.browser.version<"8"){if(!d){d=b("<iframe/>").attr("src","javascript:false;").hide().get(0);b("body").append(d);setInterval(function(){var a=d.contentWindow.document;a=a.location.hash;g!==a&&b.event.trigger("hash",a)},100);h(location.hash||"#")}}else setInterval(function(){var a=location.hash;
183
+ a!==g&&b.event.trigger("hash",a)},100);f=!f?c:f.add(c);c.click(function(a){var e=b(this).attr("href");d&&h(e);if(e.slice(0,1)!="#"){location.href="#"+e;return a.preventDefault()}});i=true}}};b(window).bind("hash",function(c,a){a?f.filter(function(){var e=b(this).attr("href");return e==a||e==a.replace("#","")}).trigger("history",[a]):f.eq(0).trigger("history",[a]);g=a;window.location.hash=g});b.fn.history=function(c){b.tools.history.init(this);return this.bind("history",c)}})(jQuery);
184
+ (function(b){function k(){if(b.browser.msie){var a=b(document).height(),d=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a-d<20?d:a]}return[b(document).width(),b(document).height()]}function h(a){if(a)return a.call(b.mask)}b.tools=b.tools||{version:"1.2.3"};var l;l=b.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,startOpacity:0,color:"#fff",onLoad:null,
185
+ onClose:null}};var c,i,f,g,j;b.mask={load:function(a,d){if(f)return this;if(typeof a=="string")a={color:a};a=a||g;g=a=b.extend(b.extend({},l.conf),a);c=b("#"+a.maskId);if(!c.length){c=b("<div/>").attr("id",a.maskId);b("body").append(c)}var m=k();c.css({position:"absolute",top:0,left:0,width:m[0],height:m[1],display:"none",opacity:a.startOpacity,zIndex:a.zIndex});a.color&&c.css("backgroundColor",a.color);if(h(a.onBeforeLoad)===false)return this;a.closeOnEsc&&b(document).bind("keydown.mask",function(e){e.keyCode==
186
+ 27&&b.mask.close(e)});a.closeOnClick&&c.bind("click.mask",function(e){b.mask.close(e)});b(window).bind("resize.mask",function(){b.mask.fit()});if(d&&d.length){j=d.eq(0).css("zIndex");b.each(d,function(){var e=b(this);/relative|absolute|fixed/i.test(e.css("position"))||e.css("position","relative")});i=d.css({zIndex:Math.max(a.zIndex+1,j=="auto"?0:j)})}c.css({display:"block"}).fadeTo(a.loadSpeed,a.opacity,function(){b.mask.fit();h(a.onLoad)});f=true;return this},close:function(){if(f){if(h(g.onBeforeClose)===
187
+ false)return this;c.fadeOut(g.closeSpeed,function(){h(g.onClose);i&&i.css({zIndex:j})});b(document).unbind("keydown.mask");c.unbind("click.mask");b(window).unbind("resize.mask");f=false}return this},fit:function(){if(f){var a=k();c.css({width:a[0],height:a[1]})}},getMask:function(){return c},isLoaded:function(){return f},getConf:function(){return g},getExposed:function(){return i}};b.fn.mask=function(a){b.mask.load(a);return this};b.fn.expose=function(a){b.mask.load(a,this);return this}})(jQuery);
188
+ (function(b){function c(a){switch(a.type){case "mousemove":return b.extend(a.data,{clientX:a.clientX,clientY:a.clientY,pageX:a.pageX,pageY:a.pageY});case "DOMMouseScroll":b.extend(a,a.data);a.delta=-a.detail/3;break;case "mousewheel":a.delta=a.wheelDelta/120;break}a.type="wheel";return b.event.handle.call(this,a,a.delta)}b.fn.mousewheel=function(a){return this[a?"bind":"trigger"]("wheel",a)};b.event.special.wheel={setup:function(){b.event.add(this,d,c,{})},teardown:function(){b.event.remove(this,
189
+ d,c)}};var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"")})(jQuery);
190
+ (function(c){function p(e,b,a){var d=this,l=e.add(this),h=e.find(a.tabs),i=b.jquery?b:e.children(b),j;h.length||(h=e.children());i.length||(i=e.parent().find(b));i.length||(i=c(b));c.extend(this,{click:function(f,g){var k=h.eq(f);if(typeof f=="string"&&f.replace("#","")){k=h.filter("[href*="+f.replace("#","")+"]");f=Math.max(h.index(k),0)}if(a.rotate){var n=h.length-1;if(f<0)return d.click(n,g);if(f>n)return d.click(0,g)}if(!k.length){if(j>=0)return d;f=a.initialIndex;k=h.eq(f)}if(f===j)return d;
191
+ g=g||c.Event();g.type="onBeforeClick";l.trigger(g,[f]);if(!g.isDefaultPrevented()){o[a.effect].call(d,f,function(){g.type="onClick";l.trigger(g,[f])});j=f;h.removeClass(a.current);k.addClass(a.current);return d}},getConf:function(){return a},getTabs:function(){return h},getPanes:function(){return i},getCurrentPane:function(){return i.eq(j)},getCurrentTab:function(){return h.eq(j)},getIndex:function(){return j},next:function(){return d.click(j+1)},prev:function(){return d.click(j-1)},destroy:function(){h.unbind(a.event).removeClass(a.current);
192
+ i.find("a[href^=#]").unbind("click.T");return d}});c.each("onBeforeClick,onClick".split(","),function(f,g){c.isFunction(a[g])&&c(d).bind(g,a[g]);d[g]=function(k){c(d).bind(g,k);return d}});if(a.history&&c.fn.history){c.tools.history.init(h);a.event="history"}h.each(function(f){c(this).bind(a.event,function(g){d.click(f,g);return g.preventDefault()})});i.find("a[href^=#]").bind("click.T",function(f){d.click(c(this).attr("href"),f)});if(location.hash)d.click(location.hash);else if(a.initialIndex===
193
+ 0||a.initialIndex>0)d.click(a.initialIndex)}c.tools=c.tools||{version:"1.2.3"};c.tools.tabs={conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",rotate:false,history:false},addEffect:function(e,b){o[e]=b}};var o={"default":function(e,b){this.getPanes().hide().eq(e).show();b.call()},fade:function(e,b){var a=this.getConf(),d=a.fadeOutSpeed,l=this.getPanes();d?l.fadeOut(d):l.hide();l.eq(e).fadeIn(a.fadeInSpeed,b)},slide:function(e,b){this.getPanes().slideUp(200);
194
+ this.getPanes().eq(e).slideDown(400,b)},ajax:function(e,b){this.getPanes().eq(0).load(this.getTabs().eq(e).attr("href"),b)}},m;c.tools.tabs.addEffect("horizontal",function(e,b){m||(m=this.getPanes().eq(0).width());this.getCurrentPane().animate({width:0},function(){c(this).hide()});this.getPanes().eq(e).animate({width:m},function(){c(this).show();b.call()})});c.fn.tabs=function(e,b){var a=this.data("tabs");if(a){a.destroy();this.removeData("tabs")}if(c.isFunction(b))b={onBeforeClick:b};b=c.extend({},
195
+ c.tools.tabs.conf,b);this.each(function(){a=new p(c(this),e,b);c(this).data("tabs",a)});return b.api?a:this}})(jQuery);
196
+ (function(d){function r(g,a){function p(f){var e=d(f);return e.length<2?e:g.parent().find(f)}var c=this,j=g.add(this),b=g.data("tabs"),h,l,m,n=false,o=p(a.next).click(function(){b.next()}),k=p(a.prev).click(function(){b.prev()});d.extend(c,{getTabs:function(){return b},getConf:function(){return a},play:function(){if(!h){var f=d.Event("onBeforePlay");j.trigger(f);if(f.isDefaultPrevented())return c;n=false;h=setInterval(b.next,a.interval);j.trigger("onPlay");b.next()}},pause:function(){if(!h)return c;
197
+ var f=d.Event("onBeforePause");j.trigger(f);if(f.isDefaultPrevented())return c;h=clearInterval(h);m=clearInterval(m);j.trigger("onPause")},stop:function(){c.pause();n=true}});d.each("onBeforePlay,onPlay,onBeforePause,onPause".split(","),function(f,e){d.isFunction(a[e])&&c.bind(e,a[e]);c[e]=function(s){return c.bind(e,s)}});if(a.autopause){var t=b.getTabs().add(o).add(k).add(b.getPanes());t.hover(function(){c.pause();l=clearInterval(l)},function(){n||(l=setTimeout(c.play,a.interval))})}if(a.autoplay)m=
198
+ setTimeout(c.play,a.interval);else c.stop();a.clickable&&b.getPanes().click(function(){b.next()});if(!b.getConf().rotate){var i=a.disabledClass;b.getIndex()||k.addClass(i);b.onBeforeClick(function(f,e){if(e){k.removeClass(i);e==b.getTabs().length-1?o.addClass(i):o.removeClass(i)}else k.addClass(i)})}}var q;q=d.tools.tabs.slideshow={conf:{next:".forward",prev:".backward",disabledClass:"disabled",autoplay:false,autopause:true,interval:3E3,clickable:true,api:false}};d.fn.slideshow=function(g){var a=
199
+ this.data("slideshow");if(a)return a;g=d.extend({},q.conf,g);this.each(function(){a=new r(d(this),g);d(this).data("slideshow",a)});return g.api?a:this}})(jQuery);
200
+ (function(f){function p(a,b,c){var h=c.relative?a.position().top:a.offset().top,e=c.relative?a.position().left:a.offset().left,i=c.position[0];h-=b.outerHeight()-c.offset[0];e+=a.outerWidth()+c.offset[1];var j=b.outerHeight()+a.outerHeight();if(i=="center")h+=j/2;if(i=="bottom")h+=j;i=c.position[1];a=b.outerWidth()+a.outerWidth();if(i=="center")e-=a/2;if(i=="left")e-=a;return{top:h,left:e}}function t(a,b){var c=this,h=a.add(c),e,i=0,j=0,m=a.attr("title"),q=n[b.effect],k,r=a.is(":input"),u=r&&a.is(":checkbox, :radio, select, :button, :submit"),
201
+ s=a.attr("type"),l=b.events[s]||b.events[r?u?"widget":"input":"def"];if(!q)throw'Nonexistent effect "'+b.effect+'"';l=l.split(/,\s*/);if(l.length!=2)throw"Tooltip: bad events configuration for "+s;a.bind(l[0],function(d){clearTimeout(i);if(b.predelay)j=setTimeout(function(){c.show(d)},b.predelay);else c.show(d)}).bind(l[1],function(d){clearTimeout(j);if(b.delay)i=setTimeout(function(){c.hide(d)},b.delay);else c.hide(d)});if(m&&b.cancelDefault){a.removeAttr("title");a.data("title",m)}f.extend(c,{show:function(d){if(!e){if(m)e=
202
+ f(b.layout).addClass(b.tipClass).appendTo(document.body).hide().append(m);else if(b.tip)e=f(b.tip).eq(0);else{e=a.next();e.length||(e=a.parent().next())}if(!e.length)throw"Cannot find tooltip for "+a;}if(c.isShown())return c;e.stop(true,true);var g=p(a,e,b);d=d||f.Event();d.type="onBeforeShow";h.trigger(d,[g]);if(d.isDefaultPrevented())return c;g=p(a,e,b);e.css({position:"absolute",top:g.top,left:g.left});k=true;q[0].call(c,function(){d.type="onShow";k="full";h.trigger(d)});g=b.events.tooltip.split(/,\s*/);
203
+ e.bind(g[0],function(){clearTimeout(i);clearTimeout(j)});g[1]&&!a.is("input:not(:checkbox, :radio), textarea")&&e.bind(g[1],function(o){o.relatedTarget!=a[0]&&a.trigger(l[1].split(" ")[0])});return c},hide:function(d){if(!e||!c.isShown())return c;d=d||f.Event();d.type="onBeforeHide";h.trigger(d);if(!d.isDefaultPrevented()){k=false;n[b.effect][1].call(c,function(){d.type="onHide";k=false;h.trigger(d)});return c}},isShown:function(d){return d?k=="full":k},getConf:function(){return b},getTip:function(){return e},
204
+ getTrigger:function(){return a}});f.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(d,g){f.isFunction(b[g])&&f(c).bind(g,b[g]);c[g]=function(o){f(c).bind(g,o);return c}})}f.tools=f.tools||{version:"1.2.3"};f.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},
205
+ layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,b,c){n[a]=[b,c]}};var n={toggle:[function(a){var b=this.getConf(),c=this.getTip();b=b.opacity;b<1&&c.css({opacity:b});c.show();a.call()},function(a){this.getTip().hide();a.call()}],fade:[function(a){var b=this.getConf();this.getTip().fadeTo(b.fadeInSpeed,b.opacity,a)},function(a){this.getTip().fadeOut(this.getConf().fadeOutSpeed,a)}]};f.fn.tooltip=function(a){var b=this.data("tooltip");if(b)return b;a=f.extend(true,{},f.tools.tooltip.conf,a);
206
+ if(typeof a.position=="string")a.position=a.position.split(/,?\s/);this.each(function(){b=new t(f(this),a);f(this).data("tooltip",b)});return a.api?b:this}})(jQuery);
207
+ (function(d){var i=d.tools.tooltip;d.extend(i.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!d.browser.msie});var e={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};i.addEffect("slide",function(g){var a=this.getConf(),f=this.getTip(),b=a.slideFade?{opacity:a.opacity}:{},c=e[a.direction]||e.up;b[c[1]]=c[0]+"="+a.slideOffset;a.slideFade&&f.css({opacity:0});f.show().animate(b,a.slideInSpeed,g)},function(g){var a=this.getConf(),f=a.slideOffset,
208
+ b=a.slideFade?{opacity:0}:{},c=e[a.direction]||e.up,h=""+c[0];if(a.bounce)h=h=="+"?"-":"+";b[c[1]]=h+"="+f;this.getTip().animate(b,a.slideOutSpeed,function(){d(this).hide();g.call()})})})(jQuery);
209
+ (function(g){function j(a){var c=g(window),d=c.width()+c.scrollLeft(),h=c.height()+c.scrollTop();return[a.offset().top<=c.scrollTop(),d<=a.offset().left+a.width(),h<=a.offset().top+a.height(),c.scrollLeft()>=a.offset().left]}function k(a){for(var c=a.length;c--;)if(a[c])return false;return true}var i=g.tools.tooltip;i.dynamic={conf:{classNames:"top right bottom left"}};g.fn.dynamic=function(a){if(typeof a=="number")a={speed:a};a=g.extend({},i.dynamic.conf,a);var c=a.classNames.split(/\s/),d;this.each(function(){var h=
210
+ g(this).tooltip().onBeforeShow(function(e,f){e=this.getTip();var b=this.getConf();d||(d=[b.position[0],b.position[1],b.offset[0],b.offset[1],g.extend({},b)]);g.extend(b,d[4]);b.position=[d[0],d[1]];b.offset=[d[2],d[3]];e.css({visibility:"hidden",position:"absolute",top:f.top,left:f.left}).show();f=j(e);if(!k(f)){if(f[2]){g.extend(b,a.top);b.position[0]="top";e.addClass(c[0])}if(f[3]){g.extend(b,a.right);b.position[1]="right";e.addClass(c[1])}if(f[0]){g.extend(b,a.bottom);b.position[0]="bottom";e.addClass(c[2])}if(f[1]){g.extend(b,
211
+ a.left);b.position[1]="left";e.addClass(c[3])}if(f[0]||f[2])b.offset[0]*=-1;if(f[1]||f[3])b.offset[1]*=-1}e.css({visibility:"visible"}).hide()});h.onBeforeShow(function(){var e=this.getConf();this.getTip();setTimeout(function(){e.position=[d[0],d[1]];e.offset=[d[2],d[3]]},0)});h.onHide(function(){var e=this.getTip();e.removeClass(a.classNames)});ret=h});return a.api?ret:this}})(jQuery);
212
+ (function(e){function n(f,c){var a=e(c);return a.length<2?a:f.parent().find(c)}function t(f,c){var a=this,l=f.add(a),g=f.children(),k=0,m=c.vertical;j||(j=a);if(g.length>1)g=e(c.items,f);e.extend(a,{getConf:function(){return c},getIndex:function(){return k},getSize:function(){return a.getItems().size()},getNaviButtons:function(){return o.add(p)},getRoot:function(){return f},getItemWrap:function(){return g},getItems:function(){return g.children(c.item).not("."+c.clonedClass)},move:function(b,d){return a.seekTo(k+
213
+ b,d)},next:function(b){return a.move(1,b)},prev:function(b){return a.move(-1,b)},begin:function(b){return a.seekTo(0,b)},end:function(b){return a.seekTo(a.getSize()-1,b)},focus:function(){return j=a},addItem:function(b){b=e(b);if(c.circular){e(".cloned:last").before(b);e(".cloned:first").replaceWith(b.clone().addClass(c.clonedClass))}else g.append(b);l.trigger("onAddItem",[b]);return a},seekTo:function(b,d,h){if(c.circular&&b===0&&k==-1&&d!==0)return a;if(!c.circular&&b<0||b>a.getSize()||b<-1)return a;
214
+ var i=b;if(b.jquery)b=a.getItems().index(b);else i=a.getItems().eq(b);var q=e.Event("onBeforeSeek");if(!h){l.trigger(q,[b,d]);if(q.isDefaultPrevented()||!i.length)return a}i=m?{top:-i.position().top}:{left:-i.position().left};k=b;j=a;if(d===undefined)d=c.speed;g.animate(i,d,c.easing,h||function(){l.trigger("onSeek",[b])});return a}});e.each(["onBeforeSeek","onSeek","onAddItem"],function(b,d){e.isFunction(c[d])&&e(a).bind(d,c[d]);a[d]=function(h){e(a).bind(d,h);return a}});if(c.circular){var r=a.getItems().slice(-1).clone().prependTo(g),
215
+ s=a.getItems().eq(1).clone().appendTo(g);r.add(s).addClass(c.clonedClass);a.onBeforeSeek(function(b,d,h){if(!b.isDefaultPrevented())if(d==-1){a.seekTo(r,h,function(){a.end(0)});return b.preventDefault()}else d==a.getSize()&&a.seekTo(s,h,function(){a.begin(0)})});a.seekTo(0,0)}var o=n(f,c.prev).click(function(){a.prev()}),p=n(f,c.next).click(function(){a.next()});!c.circular&&a.getSize()>1&&a.onBeforeSeek(function(b,d){setTimeout(function(){if(!b.isDefaultPrevented()){o.toggleClass(c.disabledClass,
216
+ d<=0);p.toggleClass(c.disabledClass,d>=a.getSize()-1)}},1)});c.mousewheel&&e.fn.mousewheel&&f.mousewheel(function(b,d){if(c.mousewheel){a.move(d<0?1:-1,c.wheelSpeed||50);return false}});c.keyboard&&e(document).bind("keydown.scrollable",function(b){if(!(!c.keyboard||b.altKey||b.ctrlKey||e(b.target).is(":input")))if(!(c.keyboard!="static"&&j!=a)){var d=b.keyCode;if(m&&(d==38||d==40)){a.move(d==38?-1:1);return b.preventDefault()}if(!m&&(d==37||d==39)){a.move(d==37?-1:1);return b.preventDefault()}}});
217
+ e(a).trigger("onBeforeSeek",[c.initialIndex])}e.tools=e.tools||{version:"1.2.3"};e.tools.scrollable={conf:{activeClass:"active",circular:false,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:true,mousewheel:false,next:".next",prev:".prev",speed:400,vertical:false,wheelSpeed:0}};var j;e.fn.scrollable=function(f){var c=this.data("scrollable");if(c)return c;f=e.extend({},e.tools.scrollable.conf,f);this.each(function(){c=new t(e(this),f);e(this).data("scrollable",
218
+ c)});return f.api?c:this}})(jQuery);
219
+ (function(c){var g=c.tools.scrollable;g.autoscroll={conf:{autoplay:true,interval:3E3,autopause:true}};c.fn.autoscroll=function(d){if(typeof d=="number")d={interval:d};var b=c.extend({},g.autoscroll.conf,d),h;this.each(function(){var a=c(this).data("scrollable");if(a)h=a;var e,i,f=true;a.play=function(){if(!e){f=false;e=setInterval(function(){a.next()},b.interval);a.next()}};a.pause=function(){e=clearInterval(e)};a.stop=function(){a.pause();f=true};b.autopause&&a.getRoot().add(a.getNaviButtons()).hover(function(){a.pause();
220
+ clearInterval(i)},function(){f||(i=setTimeout(a.play,b.interval))});b.autoplay&&setTimeout(a.play,b.interval)});return b.api?h:this}})(jQuery);
221
+ (function(d){function p(c,g){var h=d(g);return h.length<2?h:c.parent().find(g)}var m=d.tools.scrollable;m.navigator={conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,idPrefix:null,history:false}};d.fn.navigator=function(c){if(typeof c=="string")c={navi:c};c=d.extend({},m.navigator.conf,c);var g;this.each(function(){function h(a,b,i){e.seekTo(b);if(j){if(location.hash)location.hash=a.attr("href").replace("#","")}else return i.preventDefault()}function f(){return k.find(c.naviItem||
222
+ "> *")}function n(a){var b=d("<"+(c.naviItem||"a")+"/>").click(function(i){h(d(this),a,i)}).attr("href","#"+a);a===0&&b.addClass(l);c.indexed&&b.text(a+1);c.idPrefix&&b.attr("id",c.idPrefix+a);return b.appendTo(k)}function o(a,b){a=f().eq(b.replace("#",""));a.length||(a=f().filter("[href="+b+"]"));a.click()}var e=d(this).data("scrollable"),k=p(e.getRoot(),c.navi),q=e.getNaviButtons(),l=c.activeClass,j=c.history&&d.fn.history;if(e)g=e;e.getNaviButtons=function(){return q.add(k)};f().length?f().each(function(a){d(this).click(function(b){h(d(this),
223
+ a,b)})}):d.each(e.getItems(),function(a){n(a)});e.onBeforeSeek(function(a,b){setTimeout(function(){if(!a.isDefaultPrevented()){var i=f().eq(b);!a.isDefaultPrevented()&&i.length&&f().removeClass(l).eq(b).addClass(l)}},1)});e.onAddItem(function(a,b){b=n(e.getItems().index(b));j&&b.history(o)});j&&f().history(o)});return c.api?g:this}})(jQuery);
224
+ (function(a){function t(d,b){var c=this,i=d.add(c),o=a(window),k,f,m,g=a.tools.expose&&(b.mask||b.expose),n=Math.random().toString().slice(10);if(g){if(typeof g=="string")g={color:g};g.closeOnClick=g.closeOnEsc=false}var p=b.target||d.attr("rel");f=p?a(p):d;if(!f.length)throw"Could not find Overlay: "+p;d&&d.index(f)==-1&&d.click(function(e){c.load(e);return e.preventDefault()});a.extend(c,{load:function(e){if(c.isOpened())return c;var h=q[b.effect];if(!h)throw'Overlay: cannot find effect : "'+b.effect+
225
+ '"';b.oneInstance&&a.each(s,function(){this.close(e)});e=e||a.Event();e.type="onBeforeLoad";i.trigger(e);if(e.isDefaultPrevented())return c;m=true;g&&a(f).expose(g);var j=b.top,r=b.left,u=f.outerWidth({margin:true}),v=f.outerHeight({margin:true});if(typeof j=="string")j=j=="center"?Math.max((o.height()-v)/2,0):parseInt(j,10)/100*o.height();if(r=="center")r=Math.max((o.width()-u)/2,0);h[0].call(c,{top:j,left:r},function(){if(m){e.type="onLoad";i.trigger(e)}});g&&b.closeOnClick&&a.mask.getMask().one("click",
226
+ c.close);b.closeOnClick&&a(document).bind("click."+n,function(l){a(l.target).parents(f).length||c.close(l)});b.closeOnEsc&&a(document).bind("keydown."+n,function(l){l.keyCode==27&&c.close(l)});return c},close:function(e){if(!c.isOpened())return c;e=e||a.Event();e.type="onBeforeClose";i.trigger(e);if(!e.isDefaultPrevented()){m=false;q[b.effect][1].call(c,function(){e.type="onClose";i.trigger(e)});a(document).unbind("click."+n).unbind("keydown."+n);g&&a.mask.close();return c}},getOverlay:function(){return f},
227
+ getTrigger:function(){return d},getClosers:function(){return k},isOpened:function(){return m},getConf:function(){return b}});a.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(e,h){a.isFunction(b[h])&&a(c).bind(h,b[h]);c[h]=function(j){a(c).bind(h,j);return c}});k=f.find(b.close||".close");if(!k.length&&!b.close){k=a('<a class="close"></a>');f.prepend(k)}k.click(function(e){c.close(e)});b.load&&c.load()}a.tools=a.tools||{version:"1.2.3"};a.tools.overlay={addEffect:function(d,
228
+ b,c){q[d]=[b,c]},conf:{close:null,closeOnClick:true,closeOnEsc:true,closeSpeed:"fast",effect:"default",fixed:!a.browser.msie||a.browser.version>6,left:"center",load:false,mask:null,oneInstance:true,speed:"normal",target:null,top:"10%"}};var s=[],q={};a.tools.overlay.addEffect("default",function(d,b){var c=this.getConf(),i=a(window);if(!c.fixed){d.top+=i.scrollTop();d.left+=i.scrollLeft()}d.position=c.fixed?"fixed":"absolute";this.getOverlay().css(d).fadeIn(c.speed,b)},function(d){this.getOverlay().fadeOut(this.getConf().closeSpeed,
229
+ d)});a.fn.overlay=function(d){var b=this.data("overlay");if(b)return b;if(a.isFunction(d))d={onBeforeLoad:d};d=a.extend(true,{},a.tools.overlay.conf,d);this.each(function(){b=new t(a(this),d);s.push(b);a(this).data("overlay",b)});return d.api?b:this}})(jQuery);
230
+ (function(i){function j(b){var d=b.offset();return{top:d.top+b.height()/2,left:d.left+b.width()/2}}var k=i.tools.overlay,f=i(window);i.extend(k.conf,{start:{top:null,left:null},fadeInSpeed:"fast",zIndex:9999});function n(b,d){var a=this.getOverlay(),c=this.getConf(),g=this.getTrigger(),o=this,l=a.outerWidth({margin:true}),h=a.data("img");if(!h){var e=a.css("backgroundImage");if(!e)throw"background-image CSS property not set for overlay";e=e.slice(e.indexOf("(")+1,e.indexOf(")")).replace(/\"/g,"");
231
+ a.css("backgroundImage","none");h=i('<img src="'+e+'"/>');h.css({border:0,display:"none"}).width(l);i("body").append(h);a.data("img",h)}e=c.start.top||Math.round(f.height()/2);var m=c.start.left||Math.round(f.width()/2);if(g){g=j(g);e=g.top;m=g.left}h.css({position:"absolute",top:e,left:m,width:0,zIndex:c.zIndex}).show();b.top+=f.scrollTop();b.left+=f.scrollLeft();b.position="absolute";a.css(b);h.animate({top:a.css("top"),left:a.css("left"),width:l},c.speed,function(){if(c.fixed){b.top-=f.scrollTop();
232
+ b.left-=f.scrollLeft();b.position="fixed";h.add(a).css(b)}a.css("zIndex",c.zIndex+1).fadeIn(c.fadeInSpeed,function(){o.isOpened()&&!i(this).index(a)?d.call():a.hide()})})}function p(b){var d=this.getOverlay().hide(),a=this.getConf(),c=this.getTrigger();d=d.data("img");var g={top:a.start.top,left:a.start.left,width:0};c&&i.extend(g,j(c));a.fixed&&d.css({position:"absolute"}).animate({top:"+="+f.scrollTop(),left:"+="+f.scrollLeft()},0);d.animate(g,a.closeSpeed,b)}k.addEffect("apple",n,p)})(jQuery);
233
+ (function(d){function R(b,c){return 32-(new Date(b,c,32)).getDate()}function S(b,c){b=""+b;for(c=c||2;b.length<c;)b="0"+b;return b}function T(b,c,j){var m=b.getDate(),h=b.getDay(),t=b.getMonth();b=b.getFullYear();var f={d:m,dd:S(m),ddd:B[j].shortDays[h],dddd:B[j].days[h],m:t+1,mm:S(t+1),mmm:B[j].shortMonths[t],mmmm:B[j].months[t],yy:String(b).slice(2),yyyy:b};c=c.replace(X,function(o){return o in f?f[o]:o.slice(1,o.length-1)});return Y.html(c).html()}function y(b){return parseInt(b,10)}function U(b,
234
+ c){return b.getFullYear()===c.getFullYear()&&b.getMonth()==c.getMonth()&&b.getDate()==c.getDate()}function C(b){if(b){if(b.constructor==Date)return b;if(typeof b=="string"){var c=b.split("-");if(c.length==3)return new Date(y(c[0]),y(c[1])-1,y(c[2]));if(!/^-?\d+$/.test(b))return;b=y(b)}c=new Date;c.setDate(c.getDate()+b);return c}}function Z(b,c){function j(a,e,g){l=a;D=a.getFullYear();E=a.getMonth();G=a.getDate();g=g||d.Event("api");g.type="change";H.trigger(g,[a]);if(!g.isDefaultPrevented()){b.val(T(a,
235
+ e.format,e.lang));b.data("date",a);h.hide(g)}}function m(a){a.type="onShow";H.trigger(a);d(document).bind("keydown.d",function(e){var g=e.keyCode;if(g==8){b.val("");return h.hide(e)}if(g==27)return h.hide(e);if(d(V).index(g)>=0){if(!u){h.show(e);return e.preventDefault()}var i=d("#"+f.weeks+" a"),p=d("."+f.focus),q=i.index(p);p.removeClass(f.focus);if(g==74||g==40)q+=7;else if(g==75||g==38)q-=7;else if(g==76||g==39)q+=1;else if(g==72||g==37)q-=1;if(q==-1){h.addMonth(-1);p=d("#"+f.weeks+" a:last")}else if(q==
236
+ 35){h.addMonth();p=d("#"+f.weeks+" a:first")}else p=i.eq(q);p.addClass(f.focus);return e.preventDefault()}if(g==34)return h.addMonth();if(g==33)return h.addMonth(-1);if(g==36)return h.today();if(g==13)d(e.target).is("select")||d("."+f.focus).click();return d([16,17,18,9]).index(g)>=0});d(document).bind("click.d",function(e){var g=e.target;if(!d(g).parents("#"+f.root).length&&g!=b[0]&&(!K||g!=K[0]))h.hide(e)})}var h=this,t=new Date,f=c.css,o=B[c.lang],k=d("#"+f.root),L=k.find("#"+f.title),K,I,J,D,
237
+ E,G,l=b.attr("data-value")||c.value||b.val(),r=b.attr("min")||c.min,s=b.attr("max")||c.max,u;l=C(l)||t;r=C(r||c.yearRange[0]*365);s=C(s||c.yearRange[1]*365);if(!o)throw"Dateinput: invalid language: "+c.lang;if(b.attr("type")=="date"){var M=d("<input/>");d.each("name,readonly,disabled,value,required".split(","),function(a,e){M.attr(e,b.attr(e))});b.replaceWith(M);b=M}b.addClass(f.input);var H=b.add(h);if(!k.length){k=d("<div><div><a/><div/><a/></div><div><div/><div/></div></div>").hide().css({position:"absolute"}).attr("id",
238
+ f.root);k.children().eq(0).attr("id",f.head).end().eq(1).attr("id",f.body).children().eq(0).attr("id",f.days).end().eq(1).attr("id",f.weeks).end().end().end().find("a").eq(0).attr("id",f.prev).end().eq(1).attr("id",f.next);L=k.find("#"+f.head).find("div").attr("id",f.title);if(c.selectors){var z=d("<select/>").attr("id",f.month),A=d("<select/>").attr("id",f.year);L.append(z.add(A))}for(var $=k.find("#"+f.days),N=0;N<7;N++)$.append(d("<span/>").text(o.shortDays[(N+c.firstDay)%7]));b.after(k)}if(c.trigger)K=
239
+ d("<a/>").attr("href","#").addClass(f.trigger).click(function(a){h.show();return a.preventDefault()}).insertAfter(b);var O=k.find("#"+f.weeks);A=k.find("#"+f.year);z=k.find("#"+f.month);d.extend(h,{show:function(a){if(!(b.is("[readonly]")||u)){a=a||d.Event();a.type="onBeforeShow";H.trigger(a);if(!a.isDefaultPrevented()){d.each(W,function(){this.hide()});u=true;z.unbind("change").change(function(){h.setValue(A.val(),d(this).val())});A.unbind("change").change(function(){h.setValue(d(this).val(),z.val())});
240
+ I=k.find("#"+f.prev).unbind("click").click(function(){I.hasClass(f.disabled)||h.addMonth(-1);return false});J=k.find("#"+f.next).unbind("click").click(function(){J.hasClass(f.disabled)||h.addMonth();return false});h.setValue(l);var e=b.position();k.css({top:e.top+b.outerHeight({margins:true})+c.offset[0],left:e.left+c.offset[1]});if(c.speed)k.show(c.speed,function(){m(a)});else{k.show();m(a)}return h}}},setValue:function(a,e,g){var i;if(parseInt(e,10)>=-1){a=y(a);e=y(e);g=y(g);i=new Date(a,e,g)}else{i=
241
+ a||l;a=i.getFullYear();e=i.getMonth();g=i.getDate()}if(e==-1){e=11;a--}else if(e==12){e=0;a++}if(!u){j(i,c);return h}E=e;D=a;i=new Date(a,e,1-c.firstDay);g=i.getDay();var p=R(a,e),q=R(a,e-1),P;if(c.selectors){z.empty();d.each(o.months,function(v,F){r<new Date(a,v+1,-1)&&s>new Date(a,v,0)&&z.append(d("<option/>").html(F).attr("value",v))});A.empty();for(i=a+c.yearRange[0];i<a+c.yearRange[1];i++)r<new Date(i+1,-1,0)&&s>new Date(i,0,0)&&A.append(d("<option/>").text(i));z.val(e);A.val(a)}else L.html(o.months[e]+
242
+ " "+a);O.empty();I.add(J).removeClass(f.disabled);for(var w=0,n,x;w<42;w++){n=d("<a/>");if(w%7===0){P=d("<div/>").addClass(f.week);O.append(P)}if(w<g){n.addClass(f.off);x=q-g+w+1;i=new Date(a,e-1,x)}else if(w>=g+p){n.addClass(f.off);x=w-p-g+1;i=new Date(a,e+1,x)}else{x=w-g+1;i=new Date(a,e,x);if(U(l,i))n.attr("id",f.current).addClass(f.focus);else U(t,i)&&n.attr("id",f.today)}r&&i<r&&n.add(I).addClass(f.disabled);s&&i>s&&n.add(J).addClass(f.disabled);n.attr("href","#"+x).text(x).data("date",i);P.append(n);
243
+ n.click(function(v){var F=d(this);if(!F.hasClass(f.disabled)){d("#"+f.current).removeAttr("id");F.attr("id",f.current);j(F.data("date"),c,v)}return false})}f.sunday&&O.find(f.week).each(function(){var v=c.firstDay?7-c.firstDay:0;d(this).children().slice(v,v+1).addClass(f.sunday)});return h},setMin:function(a,e){r=C(a);e&&l<r&&h.setValue(r);return h},setMax:function(a,e){s=C(a);e&&l>s&&h.setValue(s);return h},today:function(){return h.setValue(t)},addDay:function(a){return this.setValue(D,E,G+(a||
244
+ 1))},addMonth:function(a){return this.setValue(D,E+(a||1),G)},addYear:function(a){return this.setValue(D+(a||1),E,G)},hide:function(a){if(u){a=a||d.Event();a.type="onHide";H.trigger(a);d(document).unbind("click.d").unbind("keydown.d");if(a.isDefaultPrevented())return;k.hide();u=false}return h},getConf:function(){return c},getInput:function(){return b},getCalendar:function(){return k},getValue:function(a){return a?T(l,a,c.lang):l},isOpen:function(){return u}});d.each(["onBeforeShow","onShow","change",
245
+ "onHide"],function(a,e){d.isFunction(c[e])&&d(h).bind(e,c[e]);h[e]=function(g){d(h).bind(e,g);return h}});b.bind("focus click",h.show).keydown(function(a){var e=a.keyCode;if(!u&&d(V).index(e)>=0){h.show(a);return a.preventDefault()}return a.shiftKey||a.ctrlKey||a.altKey||e==9?true:a.preventDefault()});C(b.val())&&j(l,c)}d.tools=d.tools||{version:"1.2.3"};var W=[],Q,V=[75,76,38,39,74,72,40,37],B={};Q=d.tools.dateinput={conf:{format:"mm/dd/yy",selectors:false,yearRange:[-5,5],lang:"en",offset:[0,0],
246
+ speed:0,firstDay:0,min:0,max:0,trigger:false,css:{prefix:"cal",input:"date",root:0,head:0,title:0,prev:0,next:0,month:0,year:0,days:0,body:0,weeks:0,today:0,current:0,week:0,off:0,sunday:0,focus:0,disabled:0,trigger:0}},localize:function(b,c){d.each(c,function(j,m){c[j]=m.split(",")});B[b]=c}};Q.localize("en",{months:"January,February,March,April,May,June,July,August,September,October,November,December",shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",days:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",
247
+ shortDays:"Sun,Mon,Tue,Wed,Thu,Fri,Sat"});var X=/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g,Y=d("<a/>");d.expr[":"].date=function(b){var c=b.getAttribute("type");return c&&c=="date"||!!d(b).data("dateinput")};d.fn.dateinput=function(b){if(this.data("dateinput"))return this;b=d.extend(true,{},Q.conf,b);d.each(b.css,function(j,m){if(!m&&j!="prefix")b.css[j]=(b.css.prefix||"")+(m||j)});var c;this.each(function(){var j=new Z(d(this),b);W.push(j);j=j.getInput().data("dateinput",j);c=c?c.add(j):j});return c?
248
+ c:this}})(jQuery);
249
+ (function(e){function F(d,a){a=Math.pow(10,a);return Math.round(d*a)/a}function p(d,a){if(a=parseInt(d.css(a),10))return a;return(d=d[0].currentStyle)&&d.width&&parseInt(d.width,10)}function C(d){return(d=d.data("events"))&&d.onSlide}function G(d,a){function h(c,b,f,j){if(f===undefined)f=b/k*z;else if(j)f-=a.min;if(r)f=Math.round(f/r)*r;if(b===undefined||r)b=f*k/z;if(isNaN(f))return g;b=Math.max(0,Math.min(b,k));f=b/k*z;if(j||!n)f+=a.min;if(n)if(j)b=k-b;else f=a.max-f;f=F(f,t);var q=c.type=="click";
250
+ if(D&&l!==undefined&&!q){c.type="onSlide";A.trigger(c,[f,b]);if(c.isDefaultPrevented())return g}j=q?a.speed:0;q=q?function(){c.type="change";A.trigger(c,[f])}:null;if(n){m.animate({top:b},j,q);a.progress&&B.animate({height:k-b+m.width()/2},j)}else{m.animate({left:b},j,q);a.progress&&B.animate({width:b+m.width()/2},j)}l=f;H=b;d.val(f);return g}function s(){if(n=a.vertical||p(i,"height")>p(i,"width")){k=p(i,"height")-p(m,"height");u=i.offset().top+k}else{k=p(i,"width")-p(m,"width");u=i.offset().left}}
251
+ function v(){s();g.setValue(a.value||a.min)}var g=this,o=a.css,i=e("<div><div/><a href='#'/></div>").data("rangeinput",g),n,l,u,k,H;d.before(i);var m=i.addClass(o.slider).find("a").addClass(o.handle),B=i.find("div").addClass(o.progress);e.each("min,max,step,value".split(","),function(c,b){c=d.attr(b);if(parseFloat(c))a[b]=parseFloat(c,10)});var z=a.max-a.min,r=a.step=="any"?0:a.step,t=a.precision;if(t===undefined)try{t=r.toString().split(".")[1].length}catch(I){t=0}if(d.attr("type")=="range"){var w=
252
+ e("<input/>");e.each("name,readonly,disabled,required".split(","),function(c,b){w.attr(b,d.attr(b))});w.val(a.value);d.replaceWith(w);d=w}d.addClass(o.input);var A=e(g).add(d),D=true;e.extend(g,{getValue:function(){return l},setValue:function(c,b){return h(b||e.Event("api"),undefined,c,true)},getConf:function(){return a},getProgress:function(){return B},getHandle:function(){return m},getInput:function(){return d},step:function(c,b){b=b||e.Event();var f=a.step=="any"?1:a.step;g.setValue(l+f*(c||1),
253
+ b)},stepUp:function(c){return g.step(c||1)},stepDown:function(c){return g.step(-c||-1)}});e.each("onSlide,change".split(","),function(c,b){e.isFunction(a[b])&&e(g).bind(b,a[b]);g[b]=function(f){e(g).bind(b,f);return g}});m.drag({drag:false}).bind("dragStart",function(){D=C(e(g))||C(d)}).bind("drag",function(c,b,f){if(d.is(":disabled"))return false;h(c,n?b:f)}).bind("dragEnd",function(c){if(!c.isDefaultPrevented()){c.type="change";A.trigger(c,[l])}}).click(function(c){return c.preventDefault()});i.click(function(c){if(d.is(":disabled")||
254
+ c.target==m[0])return c.preventDefault();s();var b=m.width()/2;h(c,n?k-u-b+c.pageY:c.pageX-u-b)});a.keyboard&&d.keydown(function(c){if(!d.attr("readonly")){var b=c.keyCode,f=e([75,76,38,33,39]).index(b)!=-1,j=e([74,72,40,34,37]).index(b)!=-1;if((f||j)&&!(c.shiftKey||c.altKey||c.ctrlKey)){if(f)g.step(b==33?10:1,c);else if(j)g.step(b==34?-10:-1,c);return c.preventDefault()}}});d.blur(function(c){var b=e(this).val();b!==l&&g.setValue(b,c)});e.extend(d[0],{stepUp:g.stepUp,stepDown:g.stepDown});v();k||
255
+ e(window).load(v)}e.tools=e.tools||{version:"1.2.3"};var E;E=e.tools.rangeinput={conf:{min:0,max:100,step:"any",steps:0,value:0,precision:undefined,vertical:0,keyboard:true,progress:false,speed:100,css:{input:"range",slider:"slider",progress:"progress",handle:"handle"}}};var x,y;e.fn.drag=function(d){document.ondragstart=function(){return false};d=e.extend({x:true,y:true,drag:true},d);x=x||e(document).bind("mousedown mouseup",function(a){var h=e(a.target);if(a.type=="mousedown"&&h.data("drag")){var s=
256
+ h.position(),v=a.pageX-s.left,g=a.pageY-s.top,o=true;x.bind("mousemove.drag",function(i){var n=i.pageX-v;i=i.pageY-g;var l={};if(d.x)l.left=n;if(d.y)l.top=i;if(o){h.trigger("dragStart");o=false}d.drag&&h.css(l);h.trigger("drag",[i,n]);y=h});a.preventDefault()}else try{y&&y.trigger("dragEnd")}finally{x.unbind("mousemove.drag");y=null}});return this.data("drag",true)};e.expr[":"].range=function(d){var a=d.getAttribute("type");return a&&a=="range"||!!e(d).filter("input").data("rangeinput")};e.fn.rangeinput=
257
+ function(d){if(this.data("rangeinput"))return this;d=e.extend(true,{},E.conf,d);var a;this.each(function(){var h=new G(e(this),e.extend(true,{},d));h=h.getInput().data("rangeinput",h);a=a?a.add(h):h});return a?a:this}})(jQuery);
258
+ (function(d){function v(a,b,c){var k=a.offset().top,f=a.offset().left,l=c.position.split(/,?\s+/),g=l[0];l=l[1];k-=b.outerHeight()-c.offset[0];f+=a.outerWidth()+c.offset[1];c=b.outerHeight()+a.outerHeight();if(g=="center")k+=c/2;if(g=="bottom")k+=c;a=a.outerWidth();if(l=="center")f-=(a+b.outerWidth())/2;if(l=="left")f-=a;return{top:k,left:f}}function w(a){function b(){return this.getAttribute("type")==a}b.key="[type="+a+"]";return b}function s(a,b,c){function k(g,e,j){if(!(!c.grouped&&g.length)){var h;
259
+ if(j===false||d.isArray(j)){h=i.messages[e.key||e]||i.messages["*"];h=h[c.lang]||i.messages["*"].en;(e=h.match(/\$\d/g))&&d.isArray(j)&&d.each(e,function(n){h=h.replace(this,j[n])})}else h=j[c.lang]||j;g.push(h)}}var f=this,l=b.add(f);a=a.not(":button, :image, :reset, :submit");d.extend(f,{getConf:function(){return c},getForm:function(){return b},getInputs:function(){return a},invalidate:function(g,e){if(!e){var j=[];d.each(g,function(h,n){h=a.filter("[name="+h+"]");if(h.length){h.trigger("OI",[n]);
260
+ j.push({input:h,messages:[n]})}});g=j;e=d.Event()}e.type="onFail";l.trigger(e,[g]);e.isDefaultPrevented()||q[c.effect][0].call(f,g,e);return f},reset:function(g){g=g||a;g.removeClass(c.errorClass).each(function(){var e=d(this).data("msg.el");if(e){e.remove();d(this).data("msg.el",null)}}).unbind(c.errorInputEvent||"");return f},destroy:function(){b.unbind(c.formEvent).unbind("reset.V");a.unbind(c.inputEvent||"").unbind("change.V");return f.reset()},checkValidity:function(g,e){g=g||a;g=g.not(":disabled");
261
+ if(!g.length)return true;e=e||d.Event();e.type="onBeforeValidate";l.trigger(e,[g]);if(e.isDefaultPrevented())return e.result;var j=[],h=c.errorInputEvent+".v";g.each(function(){var p=[],m=d(this).unbind(h).data("messages",p);d.each(t,function(){var o=this,r=o[0];if(m.filter(r).length){o=o[1].call(f,m,m.val());if(o!==true){e.type="onBeforeFail";l.trigger(e,[m,r]);if(e.isDefaultPrevented())return false;var u=m.attr(c.messageAttr);if(u){p=[u];return false}else k(p,r,o)}}});if(p.length){j.push({input:m,
262
+ messages:p});m.trigger("OI",[p]);c.errorInputEvent&&m.bind(h,function(o){f.checkValidity(m,o)})}if(c.singleError&&j.length)return false});var n=q[c.effect];if(!n)throw'Validator: cannot find effect "'+c.effect+'"';if(j.length){f.invalidate(j,e);return false}else{n[1].call(f,g,e);e.type="onSuccess";l.trigger(e,[g]);g.unbind(h)}return true}});d.each("onBeforeValidate,onBeforeFail,onFail,onSuccess".split(","),function(g,e){d.isFunction(c[e])&&d(f).bind(e,c[e]);f[e]=function(j){d(f).bind(e,j);return f}});
263
+ c.formEvent&&b.bind(c.formEvent,function(g){if(!f.checkValidity(null,g))return g.preventDefault()});b.bind("reset.V",function(){f.reset()});a[0]&&a[0].validity&&a.each(function(){this.oninvalid=function(){return false}});if(b[0])b[0].checkValidity=f.checkValidity;c.inputEvent&&a.bind(c.inputEvent,function(g){f.checkValidity(d(this),g)});a.filter(":checkbox, select").filter("[required]").bind("change.V",function(g){var e=d(this);if(this.checked||e.is("select")&&d(this).val())q[c.effect][1].call(f,
264
+ e,g)})}d.tools=d.tools||{version:"1.2.3"};var x=/\[type=([a-z]+)\]/,y=/^-?[0-9]*(\.[0-9]+)?$/,z=/^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i,A=/^(https?:\/\/)?([\da-z\.\-]+)\.([a-z\.]{2,6})([\/\w \.\-]*)*\/?$/i,i;i=d.tools.validator={conf:{grouped:false,effect:"default",errorClass:"invalid",inputEvent:null,errorInputEvent:"keyup",formEvent:"submit",lang:"en",message:"<div/>",messageAttr:"data-message",messageClass:"error",offset:[0,0],position:"center right",singleError:false,speed:"normal"},
265
+ messages:{"*":{en:"Please correct this value"}},localize:function(a,b){d.each(b,function(c,k){i.messages[c]=i.messages[c]||{};i.messages[c][a]=k})},localizeFn:function(a,b){i.messages[a]=i.messages[a]||{};d.extend(i.messages[a],b)},fn:function(a,b,c){if(d.isFunction(b))c=b;else{if(typeof b=="string")b={en:b};this.messages[a.key||a]=b}if(b=x.exec(a))a=w(b[1]);t.push([a,c])},addEffect:function(a,b,c){q[a]=[b,c]}};var t=[],q={"default":[function(a){var b=this.getConf();d.each(a,function(c,k){c=k.input;
266
+ c.addClass(b.errorClass);var f=c.data("msg.el");if(!f){f=d(b.message).addClass(b.messageClass).appendTo(document.body);c.data("msg.el",f)}f.css({visibility:"hidden"}).find("span").remove();d.each(k.messages,function(l,g){d("<span/>").html(g).appendTo(f)});f.outerWidth()==f.parent().width()&&f.add(f.find("p")).css({display:"inline"});k=v(c,f,b);f.css({visibility:"visible",position:"absolute",top:k.top,left:k.left}).fadeIn(b.speed)})},function(a){var b=this.getConf();a.removeClass(b.errorClass).each(function(){var c=
267
+ d(this).data("msg.el");c&&c.css({visibility:"hidden"})})}]};d.each("email,url,number".split(","),function(a,b){d.expr[":"][b]=function(c){return c.getAttribute("type")===b}});d.fn.oninvalid=function(a){return this[a?"bind":"trigger"]("OI",a)};i.fn(":email","Please enter a valid email address",function(a,b){return!b||z.test(b)});i.fn(":url","Please enter a valid URL",function(a,b){return!b||A.test(b)});i.fn(":number","Please enter a numeric value.",function(a,b){return y.test(b)});i.fn("[max]","Please enter a value smaller than $1",
268
+ function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("max");return parseFloat(b)<=parseFloat(a)?true:[a]});i.fn("[min]","Please enter a value larger than $1",function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("min");return parseFloat(b)>=parseFloat(a)?true:[a]});i.fn("[required]","Please complete this mandatory field.",function(a,b){if(a.is(":checkbox"))return a.is(":checked");return!!b});i.fn("[pattern]",function(a){var b=new RegExp("^"+a.attr("pattern")+"$");
269
+ return b.test(a.val())});d.fn.validator=function(a){var b=this.data("validator");if(b){b.destroy();this.removeData("validator")}a=d.extend(true,{},i.conf,a);if(this.is("form"))return this.each(function(){var c=d(this);b=new s(c.find(":input"),c,a);c.data("validator",b)});else{b=new s(this,this.eq(0).closest("form"),a);return this.data("validator",b)}}})(jQuery);
js/jquery.ui.dialog.js CHANGED
@@ -1,827 +1,827 @@
1
- /*
2
- * jQuery UI Dialog 1.8.4
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Dialog
9
- *
10
- * Depends:
11
- * jquery.ui.core.js
12
- * jquery.ui.widget.js
13
- * jquery.ui.button.js
14
- * jquery.ui.draggable.js
15
- * jquery.ui.mouse.js
16
- * jquery.ui.position.js
17
- * jquery.ui.resizable.js
18
- */
19
- (function( $, undefined ) {
20
-
21
- var uiDialogClasses =
22
- 'ui-dialog ' +
23
- 'ui-widget ' +
24
- 'ui-widget-content ' +
25
- 'ui-corner-all ';
26
-
27
- $.widget("ui.dialog", {
28
- options: {
29
- autoOpen: true,
30
- buttons: {},
31
- closeOnEscape: true,
32
- closeText: 'close',
33
- dialogClass: '',
34
- draggable: true,
35
- hide: null,
36
- height: 'auto',
37
- maxHeight: false,
38
- maxWidth: false,
39
- minHeight: 150,
40
- minWidth: 150,
41
- modal: false,
42
- position: {
43
- my: 'center',
44
- at: 'center',
45
- of: window,
46
- collision: 'fit',
47
- // ensure that the titlebar is never outside the document
48
- using: function(pos) {
49
- var topOffset = $(this).css(pos).offset().top;
50
- if (topOffset < 0) {
51
- $(this).css('top', pos.top - topOffset);
52
- }
53
- }
54
- },
55
- resizable: true,
56
- show: null,
57
- stack: true,
58
- title: '',
59
- width: 300,
60
- zIndex: 1000
61
- },
62
-
63
- _create: function() {
64
- this.originalTitle = this.element.attr('title');
65
- // #5742 - .attr() might return a DOMElement
66
- if ( typeof this.originalTitle !== "string" ) {
67
- this.originalTitle = "";
68
- }
69
-
70
- var self = this,
71
- options = self.options,
72
-
73
- title = options.title || self.originalTitle || '&#160;',
74
- titleId = $.ui.dialog.getTitleId(self.element),
75
-
76
- uiDialog = (self.uiDialog = $('<div></div>'))
77
- .appendTo(document.body)
78
- .hide()
79
- .addClass(uiDialogClasses + options.dialogClass)
80
- .css({
81
- zIndex: options.zIndex
82
- })
83
- // setting tabIndex makes the div focusable
84
- // setting outline to 0 prevents a border on focus in Mozilla
85
- .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
86
- if (options.closeOnEscape && event.keyCode &&
87
- event.keyCode === $.ui.keyCode.ESCAPE) {
88
-
89
- self.close(event);
90
- event.preventDefault();
91
- }
92
- })
93
- .attr({
94
- role: 'dialog',
95
- 'aria-labelledby': titleId
96
- })
97
- .mousedown(function(event) {
98
- self.moveToTop(false, event);
99
- }),
100
-
101
- uiDialogContent = self.element
102
- .show()
103
- .removeAttr('title')
104
- .addClass(
105
- 'ui-dialog-content ' +
106
- 'ui-widget-content')
107
- .appendTo(uiDialog),
108
-
109
- uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
110
- .addClass(
111
- 'ui-dialog-titlebar ' +
112
- 'ui-widget-header ' +
113
- 'ui-corner-all ' +
114
- 'ui-helper-clearfix'
115
- )
116
- .prependTo(uiDialog),
117
-
118
- uiDialogTitlebarClose = $('<a href="#"></a>')
119
- .addClass(
120
- 'ui-dialog-titlebar-close ' +
121
- 'ui-corner-all'
122
- )
123
- .attr('role', 'button')
124
- .hover(
125
- function() {
126
- uiDialogTitlebarClose.addClass('ui-state-hover');
127
- },
128
- function() {
129
- uiDialogTitlebarClose.removeClass('ui-state-hover');
130
- }
131
- )
132
- .focus(function() {
133
- uiDialogTitlebarClose.addClass('ui-state-focus');
134
- })
135
- .blur(function() {
136
- uiDialogTitlebarClose.removeClass('ui-state-focus');
137
- })
138
- .click(function(event) {
139
- self.close(event);
140
- return false;
141
- })
142
- .appendTo(uiDialogTitlebar),
143
-
144
- uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
145
- .addClass(
146
- 'ui-icon ' +
147
- 'ui-icon-closethick'
148
- )
149
- .text(options.closeText)
150
- .appendTo(uiDialogTitlebarClose),
151
-
152
- uiDialogTitle = $('<span></span>')
153
- .addClass('ui-dialog-title')
154
- .attr('id', titleId)
155
- .html(title)
156
- .prependTo(uiDialogTitlebar);
157
-
158
- //handling of deprecated beforeclose (vs beforeClose) option
159
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
160
- //TODO: remove in 1.9pre
161
- if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
162
- options.beforeClose = options.beforeclose;
163
- }
164
-
165
- uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
166
-
167
- if (options.draggable && $.fn.draggable) {
168
- self._makeDraggable();
169
- }
170
- if (options.resizable && $.fn.resizable) {
171
- self._makeResizable();
172
- }
173
-
174
- self._createButtons(options.buttons);
175
- self._isOpen = false;
176
-
177
- if ($.fn.bgiframe) {
178
- uiDialog.bgiframe();
179
- }
180
- },
181
-
182
- _init: function() {
183
- if ( this.options.autoOpen ) {
184
- this.open();
185
- }
186
- },
187
-
188
- destroy: function() {
189
- var self = this;
190
-
191
- if (self.overlay) {
192
- self.overlay.destroy();
193
- }
194
- self.uiDialog.hide();
195
- self.element
196
- .unbind('.dialog')
197
- .removeData('dialog')
198
- .removeClass('ui-dialog-content ui-widget-content')
199
- .hide().appendTo('body');
200
- self.uiDialog.remove();
201
-
202
- if (self.originalTitle) {
203
- self.element.attr('title', self.originalTitle);
204
- }
205
-
206
- return self;
207
- },
208
-
209
- widget: function() {
210
- return this.uiDialog;
211
- },
212
-
213
- close: function(event) {
214
- var self = this,
215
- maxZ;
216
-
217
- if (false === self._trigger('beforeClose', event)) {
218
- return;
219
- }
220
-
221
- if (self.overlay) {
222
- self.overlay.destroy();
223
- }
224
- self.uiDialog.unbind('keypress.ui-dialog');
225
-
226
- self._isOpen = false;
227
-
228
- if (self.options.hide) {
229
- self.uiDialog.hide(self.options.hide, function() {
230
- self._trigger('close', event);
231
- });
232
- } else {
233
- self.uiDialog.hide();
234
- self._trigger('close', event);
235
- }
236
-
237
- $.ui.dialog.overlay.resize();
238
-
239
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
240
- if (self.options.modal) {
241
- maxZ = 0;
242
- $('.ui-dialog').each(function() {
243
- if (this !== self.uiDialog[0]) {
244
- maxZ = Math.max(maxZ, $(this).css('z-index'));
245
- }
246
- });
247
- $.ui.dialog.maxZ = maxZ;
248
- }
249
-
250
- return self;
251
- },
252
-
253
- isOpen: function() {
254
- return this._isOpen;
255
- },
256
-
257
- // the force parameter allows us to move modal dialogs to their correct
258
- // position on open
259
- moveToTop: function(force, event) {
260
- var self = this,
261
- options = self.options,
262
- saveScroll;
263
-
264
- if ((options.modal && !force) ||
265
- (!options.stack && !options.modal)) {
266
- return self._trigger('focus', event);
267
- }
268
-
269
- if (options.zIndex > $.ui.dialog.maxZ) {
270
- $.ui.dialog.maxZ = options.zIndex;
271
- }
272
- if (self.overlay) {
273
- $.ui.dialog.maxZ += 1;
274
- self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
275
- }
276
-
277
- //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
278
- // http://ui.jquery.com/bugs/ticket/3193
279
- saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
280
- $.ui.dialog.maxZ += 1;
281
- self.uiDialog.css('z-index', $.ui.dialog.maxZ);
282
- self.element.attr(saveScroll);
283
- self._trigger('focus', event);
284
-
285
- return self;
286
- },
287
-
288
- open: function() {
289
- if (this._isOpen) { return; }
290
-
291
- var self = this,
292
- options = self.options,
293
- uiDialog = self.uiDialog;
294
-
295
- self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
296
- if (uiDialog.next().length) {
297
- uiDialog.appendTo('body');
298
- }
299
- self._size();
300
- self._position(options.position);
301
- uiDialog.show(options.show);
302
- self.moveToTop(true);
303
-
304
- // prevent tabbing out of modal dialogs
305
- if (options.modal) {
306
- uiDialog.bind('keypress.ui-dialog', function(event) {
307
- if (event.keyCode !== $.ui.keyCode.TAB) {
308
- return;
309
- }
310
-
311
- var tabbables = $(':tabbable', this),
312
- first = tabbables.filter(':first'),
313
- last = tabbables.filter(':last');
314
-
315
- if (event.target === last[0] && !event.shiftKey) {
316
- first.focus(1);
317
- return false;
318
- } else if (event.target === first[0] && event.shiftKey) {
319
- last.focus(1);
320
- return false;
321
- }
322
- });
323
- }
324
-
325
- // set focus to the first tabbable element in the content area or the first button
326
- // if there are no tabbable elements, set focus on the dialog itself
327
- $(self.element.find(':tabbable').get().concat(
328
- uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
329
- uiDialog.get()))).eq(0).focus();
330
-
331
- self._trigger('open');
332
- self._isOpen = true;
333
-
334
- return self;
335
- },
336
-
337
- _createButtons: function(buttons) {
338
- var self = this,
339
- hasButtons = false,
340
- uiDialogButtonPane = $('<div></div>')
341
- .addClass(
342
- 'ui-dialog-buttonpane ' +
343
- 'ui-widget-content ' +
344
- 'ui-helper-clearfix'
345
- ),
346
- uiButtonSet = $( "<div></div>" )
347
- .addClass( "ui-dialog-buttonset" )
348
- .appendTo( uiDialogButtonPane );
349
-
350
- // if we already have a button pane, remove it
351
- self.uiDialog.find('.ui-dialog-buttonpane').remove();
352
-
353
- if (typeof buttons === 'object' && buttons !== null) {
354
- $.each(buttons, function() {
355
- return !(hasButtons = true);
356
- });
357
- }
358
- if (hasButtons) {
359
- $.each(buttons, function(name, fn) {
360
- var button = $('<button type="button"></button>')
361
- .text(name)
362
- .click(function() { fn.apply(self.element[0], arguments); })
363
- .appendTo(uiButtonSet);
364
- if ($.fn.button) {
365
- button.button();
366
- }
367
- });
368
- uiDialogButtonPane.appendTo(self.uiDialog);
369
- }
370
- },
371
-
372
- _makeDraggable: function() {
373
- var self = this,
374
- options = self.options,
375
- doc = $(document),
376
- heightBeforeDrag;
377
-
378
- function filteredUi(ui) {
379
- return {
380
- position: ui.position,
381
- offset: ui.offset
382
- };
383
- }
384
-
385
- self.uiDialog.draggable({
386
- cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
387
- handle: '.ui-dialog-titlebar',
388
- containment: 'document',
389
- start: function(event, ui) {
390
- heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
391
- $(this).height($(this).height()).addClass("ui-dialog-dragging");
392
- self._trigger('dragStart', event, filteredUi(ui));
393
- },
394
- drag: function(event, ui) {
395
- self._trigger('drag', event, filteredUi(ui));
396
- },
397
- stop: function(event, ui) {
398
- options.position = [ui.position.left - doc.scrollLeft(),
399
- ui.position.top - doc.scrollTop()];
400
- $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
401
- self._trigger('dragStop', event, filteredUi(ui));
402
- $.ui.dialog.overlay.resize();
403
- }
404
- });
405
- },
406
-
407
- _makeResizable: function(handles) {
408
- handles = (handles === undefined ? this.options.resizable : handles);
409
- var self = this,
410
- options = self.options,
411
- // .ui-resizable has position: relative defined in the stylesheet
412
- // but dialogs have to use absolute or fixed positioning
413
- position = self.uiDialog.css('position'),
414
- resizeHandles = (typeof handles === 'string' ?
415
- handles :
416
- 'n,e,s,w,se,sw,ne,nw'
417
- );
418
-
419
- function filteredUi(ui) {
420
- return {
421
- originalPosition: ui.originalPosition,
422
- originalSize: ui.originalSize,
423
- position: ui.position,
424
- size: ui.size
425
- };
426
- }
427
-
428
- self.uiDialog.resizable({
429
- cancel: '.ui-dialog-content',
430
- containment: 'document',
431
- alsoResize: self.element,
432
- maxWidth: options.maxWidth,
433
- maxHeight: options.maxHeight,
434
- minWidth: options.minWidth,
435
- minHeight: self._minHeight(),
436
- handles: resizeHandles,
437
- start: function(event, ui) {
438
- $(this).addClass("ui-dialog-resizing");
439
- self._trigger('resizeStart', event, filteredUi(ui));
440
- },
441
- resize: function(event, ui) {
442
- self._trigger('resize', event, filteredUi(ui));
443
- },
444
- stop: function(event, ui) {
445
- $(this).removeClass("ui-dialog-resizing");
446
- options.height = $(this).height();
447
- options.width = $(this).width();
448
- self._trigger('resizeStop', event, filteredUi(ui));
449
- $.ui.dialog.overlay.resize();
450
- }
451
- })
452
- .css('position', position)
453
- .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
454
- },
455
-
456
- _minHeight: function() {
457
- var options = this.options;
458
-
459
- if (options.height === 'auto') {
460
- return options.minHeight;
461
- } else {
462
- return Math.min(options.minHeight, options.height);
463
- }
464
- },
465
-
466
- _position: function(position) {
467
- var myAt = [],
468
- offset = [0, 0],
469
- isVisible;
470
-
471
- if (position) {
472
- // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
473
- // if (typeof position == 'string' || $.isArray(position)) {
474
- // myAt = $.isArray(position) ? position : position.split(' ');
475
-
476
- if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
477
- myAt = position.split ? position.split(' ') : [position[0], position[1]];
478
- if (myAt.length === 1) {
479
- myAt[1] = myAt[0];
480
- }
481
-
482
- $.each(['left', 'top'], function(i, offsetPosition) {
483
- if (+myAt[i] === myAt[i]) {
484
- offset[i] = myAt[i];
485
- myAt[i] = offsetPosition;
486
- }
487
- });
488
-
489
- position = {
490
- my: myAt.join(" "),
491
- at: myAt.join(" "),
492
- offset: offset.join(" ")
493
- };
494
- }
495
-
496
- position = $.extend({}, $.ui.dialog.prototype.options.position, position);
497
- } else {
498
- position = $.ui.dialog.prototype.options.position;
499
- }
500
-
501
- // need to show the dialog to get the actual offset in the position plugin
502
- isVisible = this.uiDialog.is(':visible');
503
- if (!isVisible) {
504
- this.uiDialog.show();
505
- }
506
- this.uiDialog
507
- // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
508
- .css({ top: 0, left: 0 })
509
- .position(position);
510
- if (!isVisible) {
511
- this.uiDialog.hide();
512
- }
513
- },
514
-
515
- _setOption: function(key, value){
516
- var self = this,
517
- uiDialog = self.uiDialog,
518
- isResizable = uiDialog.is(':data(resizable)'),
519
- resize = false;
520
-
521
- switch (key) {
522
- //handling of deprecated beforeclose (vs beforeClose) option
523
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
524
- //TODO: remove in 1.9pre
525
- case "beforeclose":
526
- key = "beforeClose";
527
- break;
528
- case "buttons":
529
- self._createButtons(value);
530
- resize = true;
531
- break;
532
- case "closeText":
533
- // convert whatever was passed in to a string, for text() to not throw up
534
- self.uiDialogTitlebarCloseText.text("" + value);
535
- break;
536
- case "dialogClass":
537
- uiDialog
538
- .removeClass(self.options.dialogClass)
539
- .addClass(uiDialogClasses + value);
540
- break;
541
- case "disabled":
542
- if (value) {
543
- uiDialog.addClass('ui-dialog-disabled');
544
- } else {
545
- uiDialog.removeClass('ui-dialog-disabled');
546
- }
547
- break;
548
- case "draggable":
549
- if (value) {
550
- self._makeDraggable();
551
- } else {
552
- uiDialog.draggable('destroy');
553
- }
554
- break;
555
- case "height":
556
- resize = true;
557
- break;
558
- case "maxHeight":
559
- if (isResizable) {
560
- uiDialog.resizable('option', 'maxHeight', value);
561
- }
562
- resize = true;
563
- break;
564
- case "maxWidth":
565
- if (isResizable) {
566
- uiDialog.resizable('option', 'maxWidth', value);
567
- }
568
- resize = true;
569
- break;
570
- case "minHeight":
571
- if (isResizable) {
572
- uiDialog.resizable('option', 'minHeight', value);
573
- }
574
- resize = true;
575
- break;
576
- case "minWidth":
577
- if (isResizable) {
578
- uiDialog.resizable('option', 'minWidth', value);
579
- }
580
- resize = true;
581
- break;
582
- case "position":
583
- self._position(value);
584
- break;
585
- case "resizable":
586
- // currently resizable, becoming non-resizable
587
- if (isResizable && !value) {
588
- uiDialog.resizable('destroy');
589
- }
590
-
591
- // currently resizable, changing handles
592
- if (isResizable && typeof value === 'string') {
593
- uiDialog.resizable('option', 'handles', value);
594
- }
595
-
596
- // currently non-resizable, becoming resizable
597
- if (!isResizable && value !== false) {
598
- self._makeResizable(value);
599
- }
600
- break;
601
- case "title":
602
- // convert whatever was passed in o a string, for html() to not throw up
603
- $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
604
- break;
605
- case "width":
606
- resize = true;
607
- break;
608
- }
609
-
610
- $.Widget.prototype._setOption.apply(self, arguments);
611
- if (resize) {
612
- self._size();
613
- }
614
- },
615
-
616
- _size: function() {
617
- /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
618
- * divs will both have width and height set, so we need to reset them
619
- */
620
- var options = this.options,
621
- nonContentHeight;
622
-
623
- // reset content sizing
624
- // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
625
- this.element.css({
626
- width: 'auto',
627
- minHeight: 0,
628
- height: 0
629
- });
630
-
631
- if (options.minWidth > options.width) {
632
- options.width = options.minWidth;
633
- }
634
-
635
- // reset wrapper sizing
636
- // determine the height of all the non-content elements
637
- nonContentHeight = this.uiDialog.css({
638
- height: 'auto',
639
- width: options.width
640
- })
641
- .height();
642
-
643
- this.element
644
- .css(options.height === 'auto' ? {
645
- minHeight: Math.max(options.minHeight - nonContentHeight, 0),
646
- height: 'auto'
647
- } : {
648
- minHeight: 0,
649
- height: Math.max(options.height - nonContentHeight, 0)
650
- })
651
- .show();
652
-
653
- if (this.uiDialog.is(':data(resizable)')) {
654
- this.uiDialog.resizable('option', 'minHeight', this._minHeight());
655
- }
656
- }
657
- });
658
-
659
- $.extend($.ui.dialog, {
660
- version: "1.8.4",
661
-
662
- uuid: 0,
663
- maxZ: 0,
664
-
665
- getTitleId: function($el) {
666
- var id = $el.attr('id');
667
- if (!id) {
668
- this.uuid += 1;
669
- id = this.uuid;
670
- }
671
- return 'ui-dialog-title-' + id;
672
- },
673
-
674
- overlay: function(dialog) {
675
- this.$el = $.ui.dialog.overlay.create(dialog);
676
- }
677
- });
678
-
679
- $.extend($.ui.dialog.overlay, {
680
- instances: [],
681
- // reuse old instances due to IE memory leak with alpha transparency (see #5185)
682
- oldInstances: [],
683
- maxZ: 0,
684
- events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
685
- function(event) { return event + '.dialog-overlay'; }).join(' '),
686
- create: function(dialog) {
687
- if (this.instances.length === 0) {
688
- // prevent use of anchors and inputs
689
- // we use a setTimeout in case the overlay is created from an
690
- // event that we're going to be cancelling (see #2804)
691
- setTimeout(function() {
692
- // handle $(el).dialog().dialog('close') (see #4065)
693
- if ($.ui.dialog.overlay.instances.length) {
694
- $(document).bind($.ui.dialog.overlay.events, function(event) {
695
- // stop events if the z-index of the target is < the z-index of the overlay
696
- return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
697
- });
698
- }
699
- }, 1);
700
-
701
- // allow closing by pressing the escape key
702
- $(document).bind('keydown.dialog-overlay', function(event) {
703
- if (dialog.options.closeOnEscape && event.keyCode &&
704
- event.keyCode === $.ui.keyCode.ESCAPE) {
705
-
706
- dialog.close(event);
707
- event.preventDefault();
708
- }
709
- });
710
-
711
- // handle window resize
712
- $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
713
- }
714
-
715
- var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
716
- .appendTo(document.body)
717
- .css({
718
- width: this.width(),
719
- height: this.height()
720
- });
721
-
722
- if ($.fn.bgiframe) {
723
- $el.bgiframe();
724
- }
725
-
726
- this.instances.push($el);
727
- return $el;
728
- },
729
-
730
- destroy: function($el) {
731
- this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
732
-
733
- if (this.instances.length === 0) {
734
- $([document, window]).unbind('.dialog-overlay');
735
- }
736
-
737
- $el.remove();
738
-
739
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
740
- var maxZ = 0;
741
- $.each(this.instances, function() {
742
- maxZ = Math.max(maxZ, this.css('z-index'));
743
- });
744
- this.maxZ = maxZ;
745
- },
746
-
747
- height: function() {
748
- var scrollHeight,
749
- offsetHeight;
750
- // handle IE 6
751
- if ($.browser.msie && $.browser.version < 7) {
752
- scrollHeight = Math.max(
753
- document.documentElement.scrollHeight,
754
- document.body.scrollHeight
755
- );
756
- offsetHeight = Math.max(
757
- document.documentElement.offsetHeight,
758
- document.body.offsetHeight
759
- );
760
-
761
- if (scrollHeight < offsetHeight) {
762
- return $(window).height() + 'px';
763
- } else {
764
- return scrollHeight + 'px';
765
- }
766
- // handle "good" browsers
767
- } else {
768
- return $(document).height() + 'px';
769
- }
770
- },
771
-
772
- width: function() {
773
- var scrollWidth,
774
- offsetWidth;
775
- // handle IE 6
776
- if ($.browser.msie && $.browser.version < 7) {
777
- scrollWidth = Math.max(
778
- document.documentElement.scrollWidth,
779
- document.body.scrollWidth
780
- );
781
- offsetWidth = Math.max(
782
- document.documentElement.offsetWidth,
783
- document.body.offsetWidth
784
- );
785
-
786
- if (scrollWidth < offsetWidth) {
787
- return $(window).width() + 'px';
788
- } else {
789
- return scrollWidth + 'px';
790
- }
791
- // handle "good" browsers
792
- } else {
793
- return $(document).width() + 'px';
794
- }
795
- },
796
-
797
- resize: function() {
798
- /* If the dialog is draggable and the user drags it past the
799
- * right edge of the window, the document becomes wider so we
800
- * need to stretch the overlay. If the user then drags the
801
- * dialog back to the left, the document will become narrower,
802
- * so we need to shrink the overlay to the appropriate size.
803
- * This is handled by shrinking the overlay before setting it
804
- * to the full document size.
805
- */
806
- var $overlays = $([]);
807
- $.each($.ui.dialog.overlay.instances, function() {
808
- $overlays = $overlays.add(this);
809
- });
810
-
811
- $overlays.css({
812
- width: 0,
813
- height: 0
814
- }).css({
815
- width: $.ui.dialog.overlay.width(),
816
- height: $.ui.dialog.overlay.height()
817
- });
818
- }
819
- });
820
-
821
- $.extend($.ui.dialog.overlay.prototype, {
822
- destroy: function() {
823
- $.ui.dialog.overlay.destroy(this.$el);
824
- }
825
- });
826
-
827
- }(jQuery));
1
+ /*
2
+ * jQuery UI Dialog 1.8.4
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Dialog
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ * jquery.ui.widget.js
13
+ * jquery.ui.button.js
14
+ * jquery.ui.draggable.js
15
+ * jquery.ui.mouse.js
16
+ * jquery.ui.position.js
17
+ * jquery.ui.resizable.js
18
+ */
19
+ (function( $, undefined ) {
20
+
21
+ var uiDialogClasses =
22
+ 'ui-dialog ' +
23
+ 'ui-widget ' +
24
+ 'ui-widget-content ' +
25
+ 'ui-corner-all ';
26
+
27
+ $.widget("ui.dialog", {
28
+ options: {
29
+ autoOpen: true,
30
+ buttons: {},
31
+ closeOnEscape: true,
32
+ closeText: 'close',
33
+ dialogClass: '',
34
+ draggable: true,
35
+ hide: null,
36
+ height: 'auto',
37
+ maxHeight: false,
38
+ maxWidth: false,
39
+ minHeight: 150,
40
+ minWidth: 150,
41
+ modal: false,
42
+ position: {
43
+ my: 'center',
44
+ at: 'center',
45
+ of: window,
46
+ collision: 'fit',
47
+ // ensure that the titlebar is never outside the document
48
+ using: function(pos) {
49
+ var topOffset = $(this).css(pos).offset().top;
50
+ if (topOffset < 0) {
51
+ $(this).css('top', pos.top - topOffset);
52
+ }
53
+ }
54
+ },
55
+ resizable: true,
56
+ show: null,
57
+ stack: true,
58
+ title: '',
59
+ width: 300,
60
+ zIndex: 1000
61
+ },
62
+
63
+ _create: function() {
64
+ this.originalTitle = this.element.attr('title');
65
+ // #5742 - .attr() might return a DOMElement
66
+ if ( typeof this.originalTitle !== "string" ) {
67
+ this.originalTitle = "";
68
+ }
69
+
70
+ var self = this,
71
+ options = self.options,
72
+
73
+ title = options.title || self.originalTitle || '&#160;',
74
+ titleId = $.ui.dialog.getTitleId(self.element),
75
+
76
+ uiDialog = (self.uiDialog = $('<div></div>'))
77
+ .appendTo(document.body)
78
+ .hide()
79
+ .addClass(uiDialogClasses + options.dialogClass)
80
+ .css({
81
+ zIndex: options.zIndex
82
+ })
83
+ // setting tabIndex makes the div focusable
84
+ // setting outline to 0 prevents a border on focus in Mozilla
85
+ .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
86
+ if (options.closeOnEscape && event.keyCode &&
87
+ event.keyCode === $.ui.keyCode.ESCAPE) {
88
+
89
+ self.close(event);
90
+ event.preventDefault();
91
+ }
92
+ })
93
+ .attr({
94
+ role: 'dialog',
95
+ 'aria-labelledby': titleId
96
+ })
97
+ .mousedown(function(event) {
98
+ self.moveToTop(false, event);
99
+ }),
100
+
101
+ uiDialogContent = self.element
102
+ .show()
103
+ .removeAttr('title')
104
+ .addClass(
105
+ 'ui-dialog-content ' +
106
+ 'ui-widget-content')
107
+ .appendTo(uiDialog),
108
+
109
+ uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
110
+ .addClass(
111
+ 'ui-dialog-titlebar ' +
112
+ 'ui-widget-header ' +
113
+ 'ui-corner-all ' +
114
+ 'ui-helper-clearfix'
115
+ )
116
+ .prependTo(uiDialog),
117
+
118
+ uiDialogTitlebarClose = $('<a href="#"></a>')
119
+ .addClass(
120
+ 'ui-dialog-titlebar-close ' +
121
+ 'ui-corner-all'
122
+ )
123
+ .attr('role', 'button')
124
+ .hover(
125
+ function() {
126
+ uiDialogTitlebarClose.addClass('ui-state-hover');
127
+ },
128
+ function() {
129
+ uiDialogTitlebarClose.removeClass('ui-state-hover');
130
+ }
131
+ )
132
+ .focus(function() {
133
+ uiDialogTitlebarClose.addClass('ui-state-focus');
134
+ })
135
+ .blur(function() {
136
+ uiDialogTitlebarClose.removeClass('ui-state-focus');
137
+ })
138
+ .click(function(event) {
139
+ self.close(event);
140
+ return false;
141
+ })
142
+ .appendTo(uiDialogTitlebar),
143
+
144
+ uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
145
+ .addClass(
146
+ 'ui-icon ' +
147
+ 'ui-icon-closethick'
148
+ )
149
+ .text(options.closeText)
150
+ .appendTo(uiDialogTitlebarClose),
151
+
152
+ uiDialogTitle = $('<span></span>')
153
+ .addClass('ui-dialog-title')
154
+ .attr('id', titleId)
155
+ .html(title)
156
+ .prependTo(uiDialogTitlebar);
157
+
158
+ //handling of deprecated beforeclose (vs beforeClose) option
159
+ //Ticket #4669 http://dev.jqueryui.com/ticket/4669
160
+ //TODO: remove in 1.9pre
161
+ if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
162
+ options.beforeClose = options.beforeclose;
163
+ }
164
+
165
+ uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
166
+
167
+ if (options.draggable && $.fn.draggable) {
168
+ self._makeDraggable();
169
+ }
170
+ if (options.resizable && $.fn.resizable) {
171
+ self._makeResizable();
172
+ }
173
+
174
+ self._createButtons(options.buttons);
175
+ self._isOpen = false;
176
+
177
+ if ($.fn.bgiframe) {
178
+ uiDialog.bgiframe();
179
+ }
180
+ },
181
+
182
+ _init: function() {
183
+ if ( this.options.autoOpen ) {
184
+ this.open();
185
+ }
186
+ },
187
+
188
+ destroy: function() {
189
+ var self = this;
190
+
191
+ if (self.overlay) {
192
+ self.overlay.destroy();
193
+ }
194
+ self.uiDialog.hide();
195
+ self.element
196
+ .unbind('.dialog')
197
+ .removeData('dialog')
198
+ .removeClass('ui-dialog-content ui-widget-content')
199
+ .hide().appendTo('body');
200
+ self.uiDialog.remove();
201
+
202
+ if (self.originalTitle) {
203
+ self.element.attr('title', self.originalTitle);
204
+ }
205
+
206
+ return self;
207
+ },
208
+
209
+ widget: function() {
210
+ return this.uiDialog;
211
+ },
212
+
213
+ close: function(event) {
214
+ var self = this,
215
+ maxZ;
216
+
217
+ if (false === self._trigger('beforeClose', event)) {
218
+ return;
219
+ }
220
+
221
+ if (self.overlay) {
222
+ self.overlay.destroy();
223
+ }
224
+ self.uiDialog.unbind('keypress.ui-dialog');
225
+
226
+ self._isOpen = false;
227
+
228
+ if (self.options.hide) {
229
+ self.uiDialog.hide(self.options.hide, function() {
230
+ self._trigger('close', event);
231
+ });
232
+ } else {
233
+ self.uiDialog.hide();
234
+ self._trigger('close', event);
235
+ }
236
+
237
+ $.ui.dialog.overlay.resize();
238
+
239
+ // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
240
+ if (self.options.modal) {
241
+ maxZ = 0;
242
+ $('.ui-dialog').each(function() {
243
+ if (this !== self.uiDialog[0]) {
244
+ maxZ = Math.max(maxZ, $(this).css('z-index'));
245
+ }
246
+ });
247
+ $.ui.dialog.maxZ = maxZ;
248
+ }
249
+
250
+ return self;
251
+ },
252
+
253
+ isOpen: function() {
254
+ return this._isOpen;
255
+ },
256
+
257
+ // the force parameter allows us to move modal dialogs to their correct
258
+ // position on open
259
+ moveToTop: function(force, event) {
260
+ var self = this,
261
+ options = self.options,
262
+ saveScroll;
263
+
264
+ if ((options.modal && !force) ||
265
+ (!options.stack && !options.modal)) {
266
+ return self._trigger('focus', event);
267
+ }
268
+
269
+ if (options.zIndex > $.ui.dialog.maxZ) {
270
+ $.ui.dialog.maxZ = options.zIndex;
271
+ }
272
+ if (self.overlay) {
273
+ $.ui.dialog.maxZ += 1;
274
+ self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
275
+ }
276
+
277
+ //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
278
+ // http://ui.jquery.com/bugs/ticket/3193
279
+ saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
280
+ $.ui.dialog.maxZ += 1;
281
+ self.uiDialog.css('z-index', $.ui.dialog.maxZ);
282
+ self.element.attr(saveScroll);
283
+ self._trigger('focus', event);
284
+
285
+ return self;
286
+ },
287
+
288
+ open: function() {
289
+ if (this._isOpen) { return; }
290
+
291
+ var self = this,
292
+ options = self.options,
293
+ uiDialog = self.uiDialog;
294
+
295
+ self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
296
+ if (uiDialog.next().length) {
297
+ uiDialog.appendTo('body');
298
+ }
299
+ self._size();
300
+ self._position(options.position);
301
+ uiDialog.show(options.show);
302
+ self.moveToTop(true);
303
+
304
+ // prevent tabbing out of modal dialogs
305
+ if (options.modal) {
306
+ uiDialog.bind('keypress.ui-dialog', function(event) {
307
+ if (event.keyCode !== $.ui.keyCode.TAB) {
308
+ return;
309
+ }
310
+
311
+ var tabbables = $(':tabbable', this),
312
+ first = tabbables.filter(':first'),
313
+ last = tabbables.filter(':last');
314
+
315
+ if (event.target === last[0] && !event.shiftKey) {
316
+ first.focus(1);
317
+ return false;
318
+ } else if (event.target === first[0] && event.shiftKey) {
319
+ last.focus(1);
320
+ return false;
321
+ }
322
+ });
323
+ }
324
+
325
+ // set focus to the first tabbable element in the content area or the first button
326
+ // if there are no tabbable elements, set focus on the dialog itself
327
+ $(self.element.find(':tabbable').get().concat(
328
+ uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
329
+ uiDialog.get()))).eq(0).focus();
330
+
331
+ self._trigger('open');
332
+ self._isOpen = true;
333
+
334
+ return self;
335
+ },
336
+
337
+ _createButtons: function(buttons) {
338
+ var self = this,
339
+ hasButtons = false,
340
+ uiDialogButtonPane = $('<div></div>')
341
+ .addClass(
342
+ 'ui-dialog-buttonpane ' +
343
+ 'ui-widget-content ' +
344
+ 'ui-helper-clearfix'
345
+ ),
346
+ uiButtonSet = $( "<div></div>" )
347
+ .addClass( "ui-dialog-buttonset" )
348
+ .appendTo( uiDialogButtonPane );
349
+
350
+ // if we already have a button pane, remove it
351
+ self.uiDialog.find('.ui-dialog-buttonpane').remove();
352
+
353
+ if (typeof buttons === 'object' && buttons !== null) {
354
+ $.each(buttons, function() {
355
+ return !(hasButtons = true);
356
+ });
357
+ }
358
+ if (hasButtons) {
359
+ $.each(buttons, function(name, fn) {
360
+ var button = $('<button type="button"></button>')
361
+ .text(name)
362
+ .click(function() { fn.apply(self.element[0], arguments); })
363
+ .appendTo(uiButtonSet);
364
+ if ($.fn.button) {
365
+ button.button();
366
+ }
367
+ });
368
+ uiDialogButtonPane.appendTo(self.uiDialog);
369
+ }
370
+ },
371
+
372
+ _makeDraggable: function() {
373
+ var self = this,
374
+ options = self.options,
375
+ doc = $(document),
376
+ heightBeforeDrag;
377
+
378
+ function filteredUi(ui) {
379
+ return {
380
+ position: ui.position,
381
+ offset: ui.offset
382
+ };
383
+ }
384
+
385
+ self.uiDialog.draggable({
386
+ cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
387
+ handle: '.ui-dialog-titlebar',
388
+ containment: 'document',
389
+ start: function(event, ui) {
390
+ heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
391
+ $(this).height($(this).height()).addClass("ui-dialog-dragging");
392
+ self._trigger('dragStart', event, filteredUi(ui));
393
+ },
394
+ drag: function(event, ui) {
395
+ self._trigger('drag', event, filteredUi(ui));
396
+ },
397
+ stop: function(event, ui) {
398
+ options.position = [ui.position.left - doc.scrollLeft(),
399
+ ui.position.top - doc.scrollTop()];
400
+ $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
401
+ self._trigger('dragStop', event, filteredUi(ui));
402
+ $.ui.dialog.overlay.resize();
403
+ }
404
+ });
405
+ },
406
+
407
+ _makeResizable: function(handles) {
408
+ handles = (handles === undefined ? this.options.resizable : handles);
409
+ var self = this,
410
+ options = self.options,
411
+ // .ui-resizable has position: relative defined in the stylesheet
412
+ // but dialogs have to use absolute or fixed positioning
413
+ position = self.uiDialog.css('position'),
414
+ resizeHandles = (typeof handles === 'string' ?
415
+ handles :
416
+ 'n,e,s,w,se,sw,ne,nw'
417
+ );
418
+
419
+ function filteredUi(ui) {
420
+ return {
421
+ originalPosition: ui.originalPosition,
422
+ originalSize: ui.originalSize,
423
+ position: ui.position,
424
+ size: ui.size
425
+ };
426
+ }
427
+
428
+ self.uiDialog.resizable({
429
+ cancel: '.ui-dialog-content',
430
+ containment: 'document',
431
+ alsoResize: self.element,
432
+ maxWidth: options.maxWidth,
433
+ maxHeight: options.maxHeight,
434
+ minWidth: options.minWidth,
435
+ minHeight: self._minHeight(),
436
+ handles: resizeHandles,
437
+ start: function(event, ui) {
438
+ $(this).addClass("ui-dialog-resizing");
439
+ self._trigger('resizeStart', event, filteredUi(ui));
440
+ },
441
+ resize: function(event, ui) {
442
+ self._trigger('resize', event, filteredUi(ui));
443
+ },
444
+ stop: function(event, ui) {
445
+ $(this).removeClass("ui-dialog-resizing");
446
+ options.height = $(this).height();
447
+ options.width = $(this).width();
448
+ self._trigger('resizeStop', event, filteredUi(ui));
449
+ $.ui.dialog.overlay.resize();
450
+ }
451
+ })
452
+ .css('position', position)
453
+ .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
454
+ },
455
+
456
+ _minHeight: function() {
457
+ var options = this.options;
458
+
459
+ if (options.height === 'auto') {
460
+ return options.minHeight;
461
+ } else {
462
+ return Math.min(options.minHeight, options.height);
463
+ }
464
+ },
465
+
466
+ _position: function(position) {
467
+ var myAt = [],
468
+ offset = [0, 0],
469
+ isVisible;
470
+
471
+ if (position) {
472
+ // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
473
+ // if (typeof position == 'string' || $.isArray(position)) {
474
+ // myAt = $.isArray(position) ? position : position.split(' ');
475
+
476
+ if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
477
+ myAt = position.split ? position.split(' ') : [position[0], position[1]];
478
+ if (myAt.length === 1) {
479
+ myAt[1] = myAt[0];
480
+ }
481
+
482
+ $.each(['left', 'top'], function(i, offsetPosition) {
483
+ if (+myAt[i] === myAt[i]) {
484
+ offset[i] = myAt[i];
485
+ myAt[i] = offsetPosition;
486
+ }
487
+ });
488
+
489
+ position = {
490
+ my: myAt.join(" "),
491
+ at: myAt.join(" "),
492
+ offset: offset.join(" ")
493
+ };
494
+ }
495
+
496
+ position = $.extend({}, $.ui.dialog.prototype.options.position, position);
497
+ } else {
498
+ position = $.ui.dialog.prototype.options.position;
499
+ }
500
+
501
+ // need to show the dialog to get the actual offset in the position plugin
502
+ isVisible = this.uiDialog.is(':visible');
503
+ if (!isVisible) {
504
+ this.uiDialog.show();
505
+ }
506
+ this.uiDialog
507
+ // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
508
+ .css({ top: 0, left: 0 })
509
+ .position(position);
510
+ if (!isVisible) {
511
+ this.uiDialog.hide();
512
+ }
513
+ },
514
+
515
+ _setOption: function(key, value){
516
+ var self = this,
517
+ uiDialog = self.uiDialog,
518
+ isResizable = uiDialog.is(':data(resizable)'),
519
+ resize = false;
520
+
521
+ switch (key) {
522
+ //handling of deprecated beforeclose (vs beforeClose) option
523
+ //Ticket #4669 http://dev.jqueryui.com/ticket/4669
524
+ //TODO: remove in 1.9pre
525
+ case "beforeclose":
526
+ key = "beforeClose";
527
+ break;
528
+ case "buttons":
529
+ self._createButtons(value);
530
+ resize = true;
531
+ break;
532
+ case "closeText":
533
+ // convert whatever was passed in to a string, for text() to not throw up
534
+ self.uiDialogTitlebarCloseText.text("" + value);
535
+ break;
536
+ case "dialogClass":
537
+ uiDialog
538
+ .removeClass(self.options.dialogClass)
539
+ .addClass(uiDialogClasses + value);
540
+ break;
541
+ case "disabled":
542
+ if (value) {
543
+ uiDialog.addClass('ui-dialog-disabled');
544
+ } else {
545
+ uiDialog.removeClass('ui-dialog-disabled');
546
+ }
547
+ break;
548
+ case "draggable":
549
+ if (value) {
550
+ self._makeDraggable();
551
+ } else {
552
+ uiDialog.draggable('destroy');
553
+ }
554
+ break;
555
+ case "height":
556
+ resize = true;
557
+ break;
558
+ case "maxHeight":
559
+ if (isResizable) {
560
+ uiDialog.resizable('option', 'maxHeight', value);
561
+ }
562
+ resize = true;
563
+ break;
564
+ case "maxWidth":
565
+ if (isResizable) {
566
+ uiDialog.resizable('option', 'maxWidth', value);
567
+ }
568
+ resize = true;
569
+ break;
570
+ case "minHeight":
571
+ if (isResizable) {
572
+ uiDialog.resizable('option', 'minHeight', value);
573
+ }
574
+ resize = true;
575
+ break;
576
+ case "minWidth":
577
+ if (isResizable) {
578
+ uiDialog.resizable('option', 'minWidth', value);
579
+ }
580
+ resize = true;
581
+ break;
582
+ case "position":
583
+ self._position(value);
584
+ break;
585
+ case "resizable":
586
+ // currently resizable, becoming non-resizable
587
+ if (isResizable && !value) {
588
+ uiDialog.resizable('destroy');
589
+ }
590
+
591
+ // currently resizable, changing handles
592
+ if (isResizable && typeof value === 'string') {
593
+ uiDialog.resizable('option', 'handles', value);
594
+ }
595
+
596
+ // currently non-resizable, becoming resizable
597
+ if (!isResizable && value !== false) {
598
+ self._makeResizable(value);
599
+ }
600
+ break;
601
+ case "title":
602
+ // convert whatever was passed in o a string, for html() to not throw up
603
+ $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
604
+ break;
605
+ case "width":
606
+ resize = true;
607
+ break;
608
+ }
609
+
610
+ $.Widget.prototype._setOption.apply(self, arguments);
611
+ if (resize) {
612
+ self._size();
613
+ }
614
+ },
615
+
616
+ _size: function() {
617
+ /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
618
+ * divs will both have width and height set, so we need to reset them
619
+ */
620
+ var options = this.options,
621
+ nonContentHeight;
622
+
623
+ // reset content sizing
624
+ // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
625
+ this.element.css({
626
+ width: 'auto',
627
+ minHeight: 0,
628
+ height: 0
629
+ });
630
+
631
+ if (options.minWidth > options.width) {
632
+ options.width = options.minWidth;
633
+ }
634
+
635
+ // reset wrapper sizing
636
+ // determine the height of all the non-content elements
637
+ nonContentHeight = this.uiDialog.css({
638
+ height: 'auto',
639
+ width: options.width
640
+ })
641
+ .height();
642
+
643
+ this.element
644
+ .css(options.height === 'auto' ? {
645
+ minHeight: Math.max(options.minHeight - nonContentHeight, 0),
646
+ height: 'auto'
647
+ } : {
648
+ minHeight: 0,
649
+ height: Math.max(options.height - nonContentHeight, 0)
650
+ })
651
+ .show();
652
+
653
+ if (this.uiDialog.is(':data(resizable)')) {
654
+ this.uiDialog.resizable('option', 'minHeight', this._minHeight());
655
+ }
656
+ }
657
+ });
658
+
659
+ $.extend($.ui.dialog, {
660
+ version: "1.8.4",
661
+
662
+ uuid: 0,
663
+ maxZ: 0,
664
+
665
+ getTitleId: function($el) {
666
+ var id = $el.attr('id');
667
+ if (!id) {
668
+ this.uuid += 1;
669
+ id = this.uuid;
670
+ }
671
+ return 'ui-dialog-title-' + id;
672
+ },
673
+
674
+ overlay: function(dialog) {
675
+ this.$el = $.ui.dialog.overlay.create(dialog);
676
+ }
677
+ });
678
+
679
+ $.extend($.ui.dialog.overlay, {
680
+ instances: [],
681
+ // reuse old instances due to IE memory leak with alpha transparency (see #5185)
682
+ oldInstances: [],
683
+ maxZ: 0,
684
+ events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
685
+ function(event) { return event + '.dialog-overlay'; }).join(' '),
686
+ create: function(dialog) {
687
+ if (this.instances.length === 0) {
688
+ // prevent use of anchors and inputs
689
+ // we use a setTimeout in case the overlay is created from an
690
+ // event that we're going to be cancelling (see #2804)
691
+ setTimeout(function() {
692
+ // handle $(el).dialog().dialog('close') (see #4065)
693
+ if ($.ui.dialog.overlay.instances.length) {
694
+ $(document).bind($.ui.dialog.overlay.events, function(event) {
695
+ // stop events if the z-index of the target is < the z-index of the overlay
696
+ return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
697
+ });
698
+ }
699
+ }, 1);
700
+
701
+ // allow closing by pressing the escape key
702
+ $(document).bind('keydown.dialog-overlay', function(event) {
703
+ if (dialog.options.closeOnEscape && event.keyCode &&
704
+ event.keyCode === $.ui.keyCode.ESCAPE) {
705
+
706
+ dialog.close(event);
707
+ event.preventDefault();
708
+ }
709
+ });
710
+
711
+ // handle window resize
712
+ $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
713
+ }
714
+
715
+ var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
716
+ .appendTo(document.body)
717
+ .css({
718
+ width: this.width(),
719
+ height: this.height()
720
+ });
721
+
722
+ if ($.fn.bgiframe) {
723
+ $el.bgiframe();
724
+ }
725
+
726
+ this.instances.push($el);
727
+ return $el;
728
+ },
729
+
730
+ destroy: function($el) {
731
+ this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
732
+
733
+ if (this.instances.length === 0) {
734
+ $([document, window]).unbind('.dialog-overlay');
735
+ }
736
+
737
+ $el.remove();
738
+
739
+ // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
740
+ var maxZ = 0;
741
+ $.each(this.instances, function() {
742
+ maxZ = Math.max(maxZ, this.css('z-index'));
743
+ });
744
+ this.maxZ = maxZ;
745
+ },
746
+
747
+ height: function() {
748
+ var scrollHeight,
749
+ offsetHeight;
750
+ // handle IE 6
751
+ if ($.browser.msie && $.browser.version < 7) {
752
+ scrollHeight = Math.max(
753
+ document.documentElement.scrollHeight,
754
+ document.body.scrollHeight
755
+ );
756
+ offsetHeight = Math.max(
757
+ document.documentElement.offsetHeight,
758
+ document.body.offsetHeight
759
+ );
760
+
761
+ if (scrollHeight < offsetHeight) {
762
+ return $(window).height() + 'px';
763
+ } else {
764
+ return scrollHeight + 'px';
765
+ }
766
+ // handle "good" browsers
767
+ } else {
768
+ return $(document).height() + 'px';
769
+ }
770
+ },
771
+
772
+ width: function() {
773
+ var scrollWidth,
774
+ offsetWidth;
775
+ // handle IE 6
776
+ if ($.browser.msie && $.browser.version < 7) {
777
+ scrollWidth = Math.max(
778
+ document.documentElement.scrollWidth,
779
+ document.body.scrollWidth
780
+ );
781
+ offsetWidth = Math.max(
782
+ document.documentElement.offsetWidth,
783
+ document.body.offsetWidth
784
+ );
785
+
786
+ if (scrollWidth < offsetWidth) {
787
+ return $(window).width() + 'px';
788
+ } else {
789
+ return scrollWidth + 'px';
790
+ }
791
+ // handle "good" browsers
792
+ } else {
793
+ return $(document).width() + 'px';
794
+ }
795
+ },
796
+
797
+ resize: function() {
798
+ /* If the dialog is draggable and the user drags it past the
799
+ * right edge of the window, the document becomes wider so we
800
+ * need to stretch the overlay. If the user then drags the
801
+ * dialog back to the left, the document will become narrower,
802
+ * so we need to shrink the overlay to the appropriate size.
803
+ * This is handled by shrinking the overlay before setting it
804
+ * to the full document size.
805
+ */
806
+ var $overlays = $([]);
807
+ $.each($.ui.dialog.overlay.instances, function() {
808
+ $overlays = $overlays.add(this);
809
+ });
810
+
811
+ $overlays.css({
812
+ width: 0,
813
+ height: 0
814
+ }).css({
815
+ width: $.ui.dialog.overlay.width(),
816
+ height: $.ui.dialog.overlay.height()
817
+ });
818
+ }
819
+ });
820
+
821
+ $.extend($.ui.dialog.overlay.prototype, {
822
+ destroy: function() {
823
+ $.ui.dialog.overlay.destroy(this.$el);
824
+ }
825
+ });
826
+
827
+ }(jQuery));
js/jquery.ui.position.js CHANGED
@@ -1,233 +1,233 @@
1
- /*
2
- * jQuery UI Position 1.8.4
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Position
9
- */
10
- (function( $, undefined ) {
11
-
12
- $.ui = $.ui || {};
13
-
14
- var horizontalPositions = /left|center|right/,
15
- horizontalDefault = "center",
16
- verticalPositions = /top|center|bottom/,
17
- verticalDefault = "center",
18
- _position = $.fn.position,
19
- _offset = $.fn.offset;
20
-
21
- $.fn.position = function( options ) {
22
- if ( !options || !options.of ) {
23
- return _position.apply( this, arguments );
24
- }
25
-
26
- // make a copy, we don't want to modify arguments
27
- options = $.extend( {}, options );
28
-
29
- var target = $( options.of ),
30
- collision = ( options.collision || "flip" ).split( " " ),
31
- offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
32
- targetWidth,
33
- targetHeight,
34
- basePosition;
35
-
36
- if ( options.of.nodeType === 9 ) {
37
- targetWidth = target.width();
38
- targetHeight = target.height();
39
- basePosition = { top: 0, left: 0 };
40
- } else if ( options.of.scrollTo && options.of.document ) {
41
- targetWidth = target.width();
42
- targetHeight = target.height();
43
- basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
44
- } else if ( options.of.preventDefault ) {
45
- // force left top to allow flipping
46
- options.at = "left top";
47
- targetWidth = targetHeight = 0;
48
- basePosition = { top: options.of.pageY, left: options.of.pageX };
49
- } else {
50
- targetWidth = target.outerWidth();
51
- targetHeight = target.outerHeight();
52
- basePosition = target.offset();
53
- }
54
-
55
- // force my and at to have valid horizontal and veritcal positions
56
- // if a value is missing or invalid, it will be converted to center
57
- $.each( [ "my", "at" ], function() {
58
- var pos = ( options[this] || "" ).split( " " );
59
- if ( pos.length === 1) {
60
- pos = horizontalPositions.test( pos[0] ) ?
61
- pos.concat( [verticalDefault] ) :
62
- verticalPositions.test( pos[0] ) ?
63
- [ horizontalDefault ].concat( pos ) :
64
- [ horizontalDefault, verticalDefault ];
65
- }
66
- pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
67
- pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
68
- options[ this ] = pos;
69
- });
70
-
71
- // normalize collision option
72
- if ( collision.length === 1 ) {
73
- collision[ 1 ] = collision[ 0 ];
74
- }
75
-
76
- // normalize offset option
77
- offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
78
- if ( offset.length === 1 ) {
79
- offset[ 1 ] = offset[ 0 ];
80
- }
81
- offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
82
-
83
- if ( options.at[0] === "right" ) {
84
- basePosition.left += targetWidth;
85
- } else if (options.at[0] === horizontalDefault ) {
86
- basePosition.left += targetWidth / 2;
87
- }
88
-
89
- if ( options.at[1] === "bottom" ) {
90
- basePosition.top += targetHeight;
91
- } else if ( options.at[1] === verticalDefault ) {
92
- basePosition.top += targetHeight / 2;
93
- }
94
-
95
- basePosition.left += offset[ 0 ];
96
- basePosition.top += offset[ 1 ];
97
-
98
- return this.each(function() {
99
- var elem = $( this ),
100
- elemWidth = elem.outerWidth(),
101
- elemHeight = elem.outerHeight(),
102
- position = $.extend( {}, basePosition );
103
-
104
- if ( options.my[0] === "right" ) {
105
- position.left -= elemWidth;
106
- } else if ( options.my[0] === horizontalDefault ) {
107
- position.left -= elemWidth / 2;
108
- }
109
-
110
- if ( options.my[1] === "bottom" ) {
111
- position.top -= elemHeight;
112
- } else if ( options.my[1] === verticalDefault ) {
113
- position.top -= elemHeight / 2;
114
- }
115
-
116
- // prevent fractions (see #5280)
117
- position.left = parseInt( position.left );
118
- position.top = parseInt( position.top );
119
-
120
- $.each( [ "left", "top" ], function( i, dir ) {
121
- if ( $.ui.position[ collision[i] ] ) {
122
- $.ui.position[ collision[i] ][ dir ]( position, {
123
- targetWidth: targetWidth,
124
- targetHeight: targetHeight,
125
- elemWidth: elemWidth,
126
- elemHeight: elemHeight,
127
- offset: offset,
128
- my: options.my,
129
- at: options.at
130
- });
131
- }
132
- });
133
-
134
- if ( $.fn.bgiframe ) {
135
- elem.bgiframe();
136
- }
137
- elem.offset( $.extend( position, { using: options.using } ) );
138
- });
139
- };
140
-
141
- $.ui.position = {
142
- fit: {
143
- left: function( position, data ) {
144
- var win = $( window ),
145
- over = position.left + data.elemWidth - win.width() - win.scrollLeft();
146
- position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
147
- },
148
- top: function( position, data ) {
149
- var win = $( window ),
150
- over = position.top + data.elemHeight - win.height() - win.scrollTop();
151
- position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
152
- }
153
- },
154
-
155
- flip: {
156
- left: function( position, data ) {
157
- if ( data.at[0] === "center" ) {
158
- return;
159
- }
160
- var win = $( window ),
161
- over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
162
- myOffset = data.my[ 0 ] === "left" ?
163
- -data.elemWidth :
164
- data.my[ 0 ] === "right" ?
165
- data.elemWidth :
166
- 0,
167
- offset = -2 * data.offset[ 0 ];
168
- position.left += position.left < 0 ?
169
- myOffset + data.targetWidth + offset :
170
- over > 0 ?
171
- myOffset - data.targetWidth + offset :
172
- 0;
173
- },
174
- top: function( position, data ) {
175
- if ( data.at[1] === "center" ) {
176
- return;
177
- }
178
- var win = $( window ),
179
- over = position.top + data.elemHeight - win.height() - win.scrollTop(),
180
- myOffset = data.my[ 1 ] === "top" ?
181
- -data.elemHeight :
182
- data.my[ 1 ] === "bottom" ?
183
- data.elemHeight :
184
- 0,
185
- atOffset = data.at[ 1 ] === "top" ?
186
- data.targetHeight :
187
- -data.targetHeight,
188
- offset = -2 * data.offset[ 1 ];
189
- position.top += position.top < 0 ?
190
- myOffset + data.targetHeight + offset :
191
- over > 0 ?
192
- myOffset + atOffset + offset :
193
- 0;
194
- }
195
- }
196
- };
197
-
198
- // offset setter from jQuery 1.4
199
- if ( !$.offset.setOffset ) {
200
- $.offset.setOffset = function( elem, options ) {
201
- // set position first, in-case top/left are set even on static elem
202
- if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
203
- elem.style.position = "relative";
204
- }
205
- var curElem = $( elem ),
206
- curOffset = curElem.offset(),
207
- curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
208
- curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
209
- props = {
210
- top: (options.top - curOffset.top) + curTop,
211
- left: (options.left - curOffset.left) + curLeft
212
- };
213
-
214
- if ( 'using' in options ) {
215
- options.using.call( elem, props );
216
- } else {
217
- curElem.css( props );
218
- }
219
- };
220
-
221
- $.fn.offset = function( options ) {
222
- var elem = this[ 0 ];
223
- if ( !elem || !elem.ownerDocument ) { return null; }
224
- if ( options ) {
225
- return this.each(function() {
226
- $.offset.setOffset( this, options );
227
- });
228
- }
229
- return _offset.call( this );
230
- };
231
- }
232
-
233
- }( jQuery ));
1
+ /*
2
+ * jQuery UI Position 1.8.4
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Position
9
+ */
10
+ (function( $, undefined ) {
11
+
12
+ $.ui = $.ui || {};
13
+
14
+ var horizontalPositions = /left|center|right/,
15
+ horizontalDefault = "center",
16
+ verticalPositions = /top|center|bottom/,
17
+ verticalDefault = "center",
18
+ _position = $.fn.position,
19
+ _offset = $.fn.offset;
20
+
21
+ $.fn.position = function( options ) {
22
+ if ( !options || !options.of ) {
23
+ return _position.apply( this, arguments );
24
+ }
25
+
26
+ // make a copy, we don't want to modify arguments
27
+ options = $.extend( {}, options );
28
+
29
+ var target = $( options.of ),
30
+ collision = ( options.collision || "flip" ).split( " " ),
31
+ offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
32
+ targetWidth,
33
+ targetHeight,
34
+ basePosition;
35
+
36
+ if ( options.of.nodeType === 9 ) {
37
+ targetWidth = target.width();
38
+ targetHeight = target.height();
39
+ basePosition = { top: 0, left: 0 };
40
+ } else if ( options.of.scrollTo && options.of.document ) {
41
+ targetWidth = target.width();
42
+ targetHeight = target.height();
43
+ basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
44
+ } else if ( options.of.preventDefault ) {
45
+ // force left top to allow flipping
46
+ options.at = "left top";
47
+ targetWidth = targetHeight = 0;
48
+ basePosition = { top: options.of.pageY, left: options.of.pageX };
49
+ } else {
50
+ targetWidth = target.outerWidth();
51
+ targetHeight = target.outerHeight();
52
+ basePosition = target.offset();
53
+ }
54
+
55
+ // force my and at to have valid horizontal and veritcal positions
56
+ // if a value is missing or invalid, it will be converted to center
57
+ $.each( [ "my", "at" ], function() {
58
+ var pos = ( options[this] || "" ).split( " " );
59
+ if ( pos.length === 1) {
60
+ pos = horizontalPositions.test( pos[0] ) ?
61
+ pos.concat( [verticalDefault] ) :
62
+ verticalPositions.test( pos[0] ) ?
63
+ [ horizontalDefault ].concat( pos ) :
64
+ [ horizontalDefault, verticalDefault ];
65
+ }
66
+ pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
67
+ pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
68
+ options[ this ] = pos;
69
+ });
70
+
71
+ // normalize collision option
72
+ if ( collision.length === 1 ) {
73
+ collision[ 1 ] = collision[ 0 ];
74
+ }
75
+
76
+ // normalize offset option
77
+ offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
78
+ if ( offset.length === 1 ) {
79
+ offset[ 1 ] = offset[ 0 ];
80
+ }
81
+ offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
82
+
83
+ if ( options.at[0] === "right" ) {
84
+ basePosition.left += targetWidth;
85
+ } else if (options.at[0] === horizontalDefault ) {
86
+ basePosition.left += targetWidth / 2;
87
+ }
88
+
89
+ if ( options.at[1] === "bottom" ) {
90
+ basePosition.top += targetHeight;
91
+ } else if ( options.at[1] === verticalDefault ) {
92
+ basePosition.top += targetHeight / 2;
93
+ }
94
+
95
+ basePosition.left += offset[ 0 ];
96
+ basePosition.top += offset[ 1 ];
97
+
98
+ return this.each(function() {
99
+ var elem = $( this ),
100
+ elemWidth = elem.outerWidth(),
101
+ elemHeight = elem.outerHeight(),
102
+ position = $.extend( {}, basePosition );
103
+
104
+ if ( options.my[0] === "right" ) {
105
+ position.left -= elemWidth;
106
+ } else if ( options.my[0] === horizontalDefault ) {
107
+ position.left -= elemWidth / 2;
108
+ }
109
+
110
+ if ( options.my[1] === "bottom" ) {
111
+ position.top -= elemHeight;
112
+ } else if ( options.my[1] === verticalDefault ) {
113
+ position.top -= elemHeight / 2;
114
+ }
115
+
116
+ // prevent fractions (see #5280)
117
+ position.left = parseInt( position.left );
118
+ position.top = parseInt( position.top );
119
+
120
+ $.each( [ "left", "top" ], function( i, dir ) {
121
+ if ( $.ui.position[ collision[i] ] ) {
122
+ $.ui.position[ collision[i] ][ dir ]( position, {
123
+ targetWidth: targetWidth,
124
+ targetHeight: targetHeight,
125
+ elemWidth: elemWidth,
126
+ elemHeight: elemHeight,
127
+ offset: offset,
128
+ my: options.my,
129
+ at: options.at
130
+ });
131
+ }
132
+ });
133
+
134
+ if ( $.fn.bgiframe ) {
135
+ elem.bgiframe();
136
+ }
137
+ elem.offset( $.extend( position, { using: options.using } ) );
138
+ });
139
+ };
140
+
141
+ $.ui.position = {
142
+ fit: {
143
+ left: function( position, data ) {
144
+ var win = $( window ),
145
+ over = position.left + data.elemWidth - win.width() - win.scrollLeft();
146
+ position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
147
+ },
148
+ top: function( position, data ) {
149
+ var win = $( window ),
150
+ over = position.top + data.elemHeight - win.height() - win.scrollTop();
151
+ position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
152
+ }
153
+ },
154
+
155
+ flip: {
156
+ left: function( position, data ) {
157
+ if ( data.at[0] === "center" ) {
158
+ return;
159
+ }
160
+ var win = $( window ),
161
+ over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
162
+ myOffset = data.my[ 0 ] === "left" ?
163
+ -data.elemWidth :
164
+ data.my[ 0 ] === "right" ?
165
+ data.elemWidth :
166
+ 0,
167
+ offset = -2 * data.offset[ 0 ];
168
+ position.left += position.left < 0 ?
169
+ myOffset + data.targetWidth + offset :
170
+ over > 0 ?
171
+ myOffset - data.targetWidth + offset :
172
+ 0;
173
+ },
174
+ top: function( position, data ) {
175
+ if ( data.at[1] === "center" ) {
176
+ return;
177
+ }
178
+ var win = $( window ),
179
+ over = position.top + data.elemHeight - win.height() - win.scrollTop(),
180
+ myOffset = data.my[ 1 ] === "top" ?
181
+ -data.elemHeight :
182
+ data.my[ 1 ] === "bottom" ?
183
+ data.elemHeight :
184
+ 0,
185
+ atOffset = data.at[ 1 ] === "top" ?
186
+ data.targetHeight :
187
+ -data.targetHeight,
188
+ offset = -2 * data.offset[ 1 ];
189
+ position.top += position.top < 0 ?
190
+ myOffset + data.targetHeight + offset :
191
+ over > 0 ?
192
+ myOffset + atOffset + offset :
193
+ 0;
194
+ }
195
+ }
196
+ };
197
+
198
+ // offset setter from jQuery 1.4
199
+ if ( !$.offset.setOffset ) {
200
+ $.offset.setOffset = function( elem, options ) {
201
+ // set position first, in-case top/left are set even on static elem
202
+ if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
203
+ elem.style.position = "relative";
204
+ }
205
+ var curElem = $( elem ),
206
+ curOffset = curElem.offset(),
207
+ curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
208
+ curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
209
+ props = {
210
+ top: (options.top - curOffset.top) + curTop,
211
+ left: (options.left - curOffset.left) + curLeft
212
+ };
213
+
214
+ if ( 'using' in options ) {
215
+ options.using.call( elem, props );
216
+ } else {
217
+ curElem.css( props );
218
+ }
219
+ };
220
+
221
+ $.fn.offset = function( options ) {
222
+ var elem = this[ 0 ];
223
+ if ( !elem || !elem.ownerDocument ) { return null; }
224
+ if ( options ) {
225
+ return this.each(function() {
226
+ $.offset.setOffset( this, options );
227
+ });
228
+ }
229
+ return _offset.call( this );
230
+ };
231
+ }
232
+
233
+ }( jQuery ));
js/jquery.ui.widget.js CHANGED
@@ -1,237 +1,237 @@
1
- /*!
2
- * jQuery UI Widget 1.8.4
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Widget
9
- */
10
- (function( $, undefined ) {
11
-
12
- var _remove = $.fn.remove;
13
-
14
- $.fn.remove = function( selector, keepData ) {
15
- return this.each(function() {
16
- if ( !keepData ) {
17
- if ( !selector || $.filter( selector, [ this ] ).length ) {
18
- $( "*", this ).add( [ this ] ).each(function() {
19
- $( this ).triggerHandler( "remove" );
20
- });
21
- }
22
- }
23
- return _remove.call( $(this), selector, keepData );
24
- });
25
- };
26
-
27
- $.widget = function( name, base, prototype ) {
28
- var namespace = name.split( "." )[ 0 ],
29
- fullName;
30
- name = name.split( "." )[ 1 ];
31
- fullName = namespace + "-" + name;
32
-
33
- if ( !prototype ) {
34
- prototype = base;
35
- base = $.Widget;
36
- }
37
-
38
- // create selector for plugin
39
- $.expr[ ":" ][ fullName ] = function( elem ) {
40
- return !!$.data( elem, name );
41
- };
42
-
43
- $[ namespace ] = $[ namespace ] || {};
44
- $[ namespace ][ name ] = function( options, element ) {
45
- // allow instantiation without initializing for simple inheritance
46
- if ( arguments.length ) {
47
- this._createWidget( options, element );
48
- }
49
- };
50
-
51
- var basePrototype = new base();
52
- // we need to make the options hash a property directly on the new instance
53
- // otherwise we'll modify the options hash on the prototype that we're
54
- // inheriting from
55
- // $.each( basePrototype, function( key, val ) {
56
- // if ( $.isPlainObject(val) ) {
57
- // basePrototype[ key ] = $.extend( {}, val );
58
- // }
59
- // });
60
- basePrototype.options = $.extend( true, {}, basePrototype.options );
61
- $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
62
- namespace: namespace,
63
- widgetName: name,
64
- widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
65
- widgetBaseClass: fullName
66
- }, prototype );
67
-
68
- $.widget.bridge( name, $[ namespace ][ name ] );
69
- };
70
-
71
- $.widget.bridge = function( name, object ) {
72
- $.fn[ name ] = function( options ) {
73
- var isMethodCall = typeof options === "string",
74
- args = Array.prototype.slice.call( arguments, 1 ),
75
- returnValue = this;
76
-
77
- // allow multiple hashes to be passed on init
78
- options = !isMethodCall && args.length ?
79
- $.extend.apply( null, [ true, options ].concat(args) ) :
80
- options;
81
-
82
- // prevent calls to internal methods
83
- if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
84
- return returnValue;
85
- }
86
-
87
- if ( isMethodCall ) {
88
- this.each(function() {
89
- var instance = $.data( this, name ),
90
- methodValue = instance && $.isFunction( instance[options] ) ?
91
- instance[ options ].apply( instance, args ) :
92
- instance;
93
- if ( methodValue !== instance && methodValue !== undefined ) {
94
- returnValue = methodValue;
95
- return false;
96
- }
97
- });
98
- } else {
99
- this.each(function() {
100
- var instance = $.data( this, name );
101
- if ( instance ) {
102
- if ( options ) {
103
- instance.option( options );
104
- }
105
- instance._init();
106
- } else {
107
- $.data( this, name, new object( options, this ) );
108
- }
109
- });
110
- }
111
-
112
- return returnValue;
113
- };
114
- };
115
-
116
- $.Widget = function( options, element ) {
117
- // allow instantiation without initializing for simple inheritance
118
- if ( arguments.length ) {
119
- this._createWidget( options, element );
120
- }
121
- };
122
-
123
- $.Widget.prototype = {
124
- widgetName: "widget",
125
- widgetEventPrefix: "",
126
- options: {
127
- disabled: false
128
- },
129
- _createWidget: function( options, element ) {
130
- // $.widget.bridge stores the plugin instance, but we do it anyway
131
- // so that it's stored even before the _create function runs
132
- $.data( element, this.widgetName, this );
133
- this.element = $( element );
134
- this.options = $.extend( true, {},
135
- this.options,
136
- $.metadata && $.metadata.get( element )[ this.widgetName ],
137
- options );
138
-
139
- var self = this;
140
- this.element.bind( "remove." + this.widgetName, function() {
141
- self.destroy();
142
- });
143
-
144
- this._create();
145
- this._init();
146
- },
147
- _create: function() {},
148
- _init: function() {},
149
-
150
- destroy: function() {
151
- this.element
152
- .unbind( "." + this.widgetName )
153
- .removeData( this.widgetName );
154
- this.widget()
155
- .unbind( "." + this.widgetName )
156
- .removeAttr( "aria-disabled" )
157
- .removeClass(
158
- this.widgetBaseClass + "-disabled " +
159
- "ui-state-disabled" );
160
- },
161
-
162
- widget: function() {
163
- return this.element;
164
- },
165
-
166
- option: function( key, value ) {
167
- var options = key,
168
- self = this;
169
-
170
- if ( arguments.length === 0 ) {
171
- // don't return a reference to the internal hash
172
- return $.extend( {}, self.options );
173
- }
174
-
175
- if (typeof key === "string" ) {
176
- if ( value === undefined ) {
177
- return this.options[ key ];
178
- }
179
- options = {};
180
- options[ key ] = value;
181
- }
182
-
183
- $.each( options, function( key, value ) {
184
- self._setOption( key, value );
185
- });
186
-
187
- return self;
188
- },
189
- _setOption: function( key, value ) {
190
- this.options[ key ] = value;
191
-
192
- if ( key === "disabled" ) {
193
- this.widget()
194
- [ value ? "addClass" : "removeClass"](
195
- this.widgetBaseClass + "-disabled" + " " +
196
- "ui-state-disabled" )
197
- .attr( "aria-disabled", value );
198
- }
199
-
200
- return this;
201
- },
202
-
203
- enable: function() {
204
- return this._setOption( "disabled", false );
205
- },
206
- disable: function() {
207
- return this._setOption( "disabled", true );
208
- },
209
-
210
- _trigger: function( type, event, data ) {
211
- var callback = this.options[ type ];
212
-
213
- event = $.Event( event );
214
- event.type = ( type === this.widgetEventPrefix ?
215
- type :
216
- this.widgetEventPrefix + type ).toLowerCase();
217
- data = data || {};
218
-
219
- // copy original event properties over to the new event
220
- // this would happen if we could call $.event.fix instead of $.Event
221
- // but we don't have a way to force an event to be fixed multiple times
222
- if ( event.originalEvent ) {
223
- for ( var i = $.event.props.length, prop; i; ) {
224
- prop = $.event.props[ --i ];
225
- event[ prop ] = event.originalEvent[ prop ];
226
- }
227
- }
228
-
229
- this.element.trigger( event, data );
230
-
231
- return !( $.isFunction(callback) &&
232
- callback.call( this.element[0], event, data ) === false ||
233
- event.isDefaultPrevented() );
234
- }
235
- };
236
-
237
- })( jQuery );
1
+ /*!
2
+ * jQuery UI Widget 1.8.4
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Widget
9
+ */
10
+ (function( $, undefined ) {
11
+
12
+ var _remove = $.fn.remove;
13
+
14
+ $.fn.remove = function( selector, keepData ) {
15
+ return this.each(function() {
16
+ if ( !keepData ) {
17
+ if ( !selector || $.filter( selector, [ this ] ).length ) {
18
+ $( "*", this ).add( [ this ] ).each(function() {
19
+ $( this ).triggerHandler( "remove" );
20
+ });
21
+ }
22
+ }
23
+ return _remove.call( $(this), selector, keepData );
24
+ });
25
+ };
26
+
27
+ $.widget = function( name, base, prototype ) {
28
+ var namespace = name.split( "." )[ 0 ],
29
+ fullName;
30
+ name = name.split( "." )[ 1 ];
31
+ fullName = namespace + "-" + name;
32
+
33
+ if ( !prototype ) {
34
+ prototype = base;
35
+ base = $.Widget;
36
+ }
37
+
38
+ // create selector for plugin
39
+ $.expr[ ":" ][ fullName ] = function( elem ) {
40
+ return !!$.data( elem, name );
41
+ };
42
+
43
+ $[ namespace ] = $[ namespace ] || {};
44
+ $[ namespace ][ name ] = function( options, element ) {
45
+ // allow instantiation without initializing for simple inheritance
46
+ if ( arguments.length ) {
47
+ this._createWidget( options, element );
48
+ }
49
+ };
50
+
51
+ var basePrototype = new base();
52
+ // we need to make the options hash a property directly on the new instance
53
+ // otherwise we'll modify the options hash on the prototype that we're
54
+ // inheriting from
55
+ // $.each( basePrototype, function( key, val ) {
56
+ // if ( $.isPlainObject(val) ) {
57
+ // basePrototype[ key ] = $.extend( {}, val );
58
+ // }
59
+ // });
60
+ basePrototype.options = $.extend( true, {}, basePrototype.options );
61
+ $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
62
+ namespace: namespace,
63
+ widgetName: name,
64
+ widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
65
+ widgetBaseClass: fullName
66
+ }, prototype );
67
+
68
+ $.widget.bridge( name, $[ namespace ][ name ] );
69
+ };
70
+
71
+ $.widget.bridge = function( name, object ) {
72
+ $.fn[ name ] = function( options ) {
73
+ var isMethodCall = typeof options === "string",
74
+ args = Array.prototype.slice.call( arguments, 1 ),
75
+ returnValue = this;
76
+
77
+ // allow multiple hashes to be passed on init
78
+ options = !isMethodCall && args.length ?
79
+ $.extend.apply( null, [ true, options ].concat(args) ) :
80
+ options;
81
+
82
+ // prevent calls to internal methods
83
+ if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
84
+ return returnValue;
85
+ }
86
+
87
+ if ( isMethodCall ) {
88
+ this.each(function() {
89
+ var instance = $.data( this, name ),
90
+ methodValue = instance && $.isFunction( instance[options] ) ?
91
+ instance[ options ].apply( instance, args ) :
92
+ instance;
93
+ if ( methodValue !== instance && methodValue !== undefined ) {
94
+ returnValue = methodValue;
95
+ return false;
96
+ }
97
+ });
98
+ } else {
99
+ this.each(function() {
100
+ var instance = $.data( this, name );
101
+ if ( instance ) {
102
+ if ( options ) {
103
+ instance.option( options );
104
+ }
105
+ instance._init();
106
+ } else {
107
+ $.data( this, name, new object( options, this ) );
108
+ }
109
+ });
110
+ }
111
+
112
+ return returnValue;
113
+ };
114
+ };
115
+
116
+ $.Widget = function( options, element ) {
117
+ // allow instantiation without initializing for simple inheritance
118
+ if ( arguments.length ) {
119
+ this._createWidget( options, element );
120
+ }
121
+ };
122
+
123
+ $.Widget.prototype = {
124
+ widgetName: "widget",
125
+ widgetEventPrefix: "",
126
+ options: {
127
+ disabled: false
128
+ },
129
+ _createWidget: function( options, element ) {
130
+ // $.widget.bridge stores the plugin instance, but we do it anyway
131
+ // so that it's stored even before the _create function runs
132
+ $.data( element, this.widgetName, this );
133
+ this.element = $( element );
134
+ this.options = $.extend( true, {},
135
+ this.options,
136
+ $.metadata && $.metadata.get( element )[ this.widgetName ],
137
+ options );
138
+
139
+ var self = this;
140
+ this.element.bind( "remove." + this.widgetName, function() {
141
+ self.destroy();
142
+ });
143
+
144
+ this._create();
145
+ this._init();
146
+ },
147
+ _create: function() {},
148
+ _init: function() {},
149
+
150
+ destroy: function() {
151
+ this.element
152
+ .unbind( "." + this.widgetName )
153
+ .removeData( this.widgetName );
154
+ this.widget()
155
+ .unbind( "." + this.widgetName )
156
+ .removeAttr( "aria-disabled" )
157
+ .removeClass(
158
+ this.widgetBaseClass + "-disabled " +
159
+ "ui-state-disabled" );
160
+ },
161
+
162
+ widget: function() {
163
+ return this.element;
164
+ },
165
+
166
+ option: function( key, value ) {
167
+ var options = key,
168
+ self = this;
169
+
170
+ if ( arguments.length === 0 ) {
171
+ // don't return a reference to the internal hash
172
+ return $.extend( {}, self.options );
173
+ }
174
+
175
+ if (typeof key === "string" ) {
176
+ if ( value === undefined ) {
177
+ return this.options[ key ];
178
+ }
179
+ options = {};
180
+ options[ key ] = value;
181
+ }
182
+
183
+ $.each( options, function( key, value ) {
184
+ self._setOption( key, value );
185
+ });
186
+
187
+ return self;
188
+ },
189
+ _setOption: function( key, value ) {
190
+ this.options[ key ] = value;
191
+
192
+ if ( key === "disabled" ) {
193
+ this.widget()
194
+ [ value ? "addClass" : "removeClass"](
195
+ this.widgetBaseClass + "-disabled" + " " +
196
+ "ui-state-disabled" )
197
+ .attr( "aria-disabled", value );
198
+ }
199
+
200
+ return this;
201
+ },
202
+
203
+ enable: function() {
204
+ return this._setOption( "disabled", false );
205
+ },
206
+ disable: function() {
207
+ return this._setOption( "disabled", true );
208
+ },
209
+
210
+ _trigger: function( type, event, data ) {
211
+ var callback = this.options[ type ];
212
+
213
+ event = $.Event( event );
214
+ event.type = ( type === this.widgetEventPrefix ?
215
+ type :
216
+ this.widgetEventPrefix + type ).toLowerCase();
217
+ data = data || {};
218
+
219
+ // copy original event properties over to the new event
220
+ // this would happen if we could call $.event.fix instead of $.Event
221
+ // but we don't have a way to force an event to be fixed multiple times
222
+ if ( event.originalEvent ) {
223
+ for ( var i = $.event.props.length, prop; i; ) {
224
+ prop = $.event.props[ --i ];
225
+ event[ prop ] = event.originalEvent[ prop ];
226
+ }
227
+ }
228
+
229
+ this.element.trigger( event, data );
230
+
231
+ return !( $.isFunction(callback) &&
232
+ callback.call( this.element[0], event, data ) === false ||
233
+ event.isDefaultPrevented() );
234
+ }
235
+ };
236
+
237
+ })( jQuery );
js/layout.js CHANGED
@@ -1,45 +1,45 @@
1
- (function($){
2
- var initLayout = function() {
3
- var hash = window.location.hash.replace('#', '');
4
- var currentTab = $('ul.navigationTabs a')
5
- .bind('click', showTab)
6
- .filter('a[rel=' + hash + ']');
7
- if (currentTab.size() == 0) {
8
- currentTab = $('ul.navigationTabs a:first');
9
- }
10
- showTab.apply(currentTab.get(0));
11
- $('#colorpickerHolder2>div').css('position', 'absolute');
12
- var widt = false;
13
- $('#colorSelector2').bind('click', function() {
14
- $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500);
15
- widt = !widt;
16
- });
17
- $('.colorfield').ColorPicker({
18
- onSubmit: function(hsb, hex, rgb, el) {
19
- $(el).val(hex);
20
- $(el).ColorPickerHide();
21
- },
22
- onBeforeShow: function () {
23
- $(this).ColorPickerSetColor(this.value);
24
- }
25
- })
26
- .bind('keyup', function(){
27
- $(this).ColorPickerSetColor(this.value);
28
- });
29
- };
30
-
31
- var showTab = function(e) {
32
- var tabIndex = $('ul.navigationTabs a')
33
- .removeClass('active')
34
- .index(this);
35
- $(this)
36
- .addClass('active')
37
- .blur();
38
- $('div.tab')
39
- .hide()
40
- .eq(tabIndex)
41
- .show();
42
- };
43
-
44
- EYE.register(initLayout, 'init');
45
  })(jQuery)
1
+ (function($){
2
+ var initLayout = function() {
3
+ var hash = window.location.hash.replace('#', '');
4
+ var currentTab = $('ul.navigationTabs a')
5
+ .bind('click', showTab)
6
+ .filter('a[rel=' + hash + ']');
7
+ if (currentTab.size() == 0) {
8
+ currentTab = $('ul.navigationTabs a:first');
9
+ }
10
+ showTab.apply(currentTab.get(0));
11
+ $('#colorpickerHolder2>div').css('position', 'absolute');
12
+ var widt = false;
13
+ $('#colorSelector2').bind('click', function() {
14
+ $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500);
15
+ widt = !widt;
16
+ });
17
+ $('.colorfield').ColorPicker({
18
+ onSubmit: function(hsb, hex, rgb, el) {
19
+ $(el).val(hex);
20
+ $(el).ColorPickerHide();
21
+ },
22
+ onBeforeShow: function () {
23
+ $(this).ColorPickerSetColor(this.value);
24
+ }
25
+ })
26
+ .bind('keyup', function(){
27
+ $(this).ColorPickerSetColor(this.value);
28
+ });
29
+ };
30
+
31
+ var showTab = function(e) {
32
+ var tabIndex = $('ul.navigationTabs a')
33
+ .removeClass('active')
34
+ .index(this);
35
+ $(this)
36
+ .addClass('active')
37
+ .blur();
38
+ $('div.tab')
39
+ .hide()
40
+ .eq(tabIndex)
41
+ .show();
42
+ };
43
+
44
+ EYE.register(initLayout, 'init');
45
  })(jQuery)
js/utils.js CHANGED
@@ -1,252 +1,252 @@
1
- /**
2
- *
3
- * Utilities
4
- * Author: Stefan Petre www.eyecon.ro
5
- *
6
- */
7
- (function($) {
8
- EYE.extend({
9
- getPosition : function(e, forceIt)
10
- {
11
- var x = 0;
12
- var y = 0;
13
- var es = e.style;
14
- var restoreStyles = false;
15
- if (forceIt && jQuery.curCSS(e,'display') == 'none') {
16
- var oldVisibility = es.visibility;
17
- var oldPosition = es.position;
18
- restoreStyles = true;
19
- es.visibility = 'hidden';
20
- es.display = 'block';
21
- es.position = 'absolute';
22
- }
23
- var el = e;
24
- if (el.getBoundingClientRect) { // IE
25
- var box = el.getBoundingClientRect();
26
- x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2;
27
- y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2;
28
- } else {
29
- x = el.offsetLeft;
30
- y = el.offsetTop;
31
- el = el.offsetParent;
32
- if (e != el) {
33
- while (el) {
34
- x += el.offsetLeft;
35
- y += el.offsetTop;
36
- el = el.offsetParent;
37
- }
38
- }
39
- if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) {
40
- x -= document.body.offsetLeft;
41
- y -= document.body.offsetTop;
42
- }
43
- el = e.parentNode;
44
- while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML')
45
- {
46
- if (jQuery.curCSS(el, 'display') != 'inline') {
47
- x -= el.scrollLeft;
48
- y -= el.scrollTop;
49
- }
50
- el = el.parentNode;
51
- }
52
- }
53
- if (restoreStyles == true) {
54
- es.display = 'none';
55
- es.position = oldPosition;
56
- es.visibility = oldVisibility;
57
- }
58
- return {x:x, y:y};
59
- },
60
- getSize : function(e)
61
- {
62
- var w = parseInt(jQuery.curCSS(e,'width'), 10);
63
- var h = parseInt(jQuery.curCSS(e,'height'), 10);
64
- var wb = 0;
65
- var hb = 0;
66
- if (jQuery.curCSS(e, 'display') != 'none') {
67
- wb = e.offsetWidth;
68
- hb = e.offsetHeight;
69
- } else {
70
- var es = e.style;
71
- var oldVisibility = es.visibility;
72
- var oldPosition = es.position;
73
- es.visibility = 'hidden';
74
- es.display = 'block';
75
- es.position = 'absolute';
76
- wb = e.offsetWidth;
77
- hb = e.offsetHeight;
78
- es.display = 'none';
79
- es.position = oldPosition;
80
- es.visibility = oldVisibility;
81
- }
82
- return {w:w, h:h, wb:wb, hb:hb};
83
- },
84
- getClient : function(e)
85
- {
86
- var h, w;
87
- if (e) {
88
- w = e.clientWidth;
89
- h = e.clientHeight;
90
- } else {
91
- var de = document.documentElement;
92
- w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
93
- h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
94
- }
95
- return {w:w,h:h};
96
- },
97
- getScroll : function (e)
98
- {
99
- var t=0, l=0, w=0, h=0, iw=0, ih=0;
100
- if (e && e.nodeName.toLowerCase() != 'body') {
101
- t = e.scrollTop;
102
- l = e.scrollLeft;
103
- w = e.scrollWidth;
104
- h = e.scrollHeight;
105
- } else {
106
- if (document.documentElement) {
107
- t = document.documentElement.scrollTop;
108
- l = document.documentElement.scrollLeft;
109
- w = document.documentElement.scrollWidth;
110
- h = document.documentElement.scrollHeight;
111
- } else if (document.body) {
112
- t = document.body.scrollTop;
113
- l = document.body.scrollLeft;
114
- w = document.body.scrollWidth;
115
- h = document.body.scrollHeight;
116
- }
117
- if (typeof pageYOffset != 'undefined') {
118
- t = pageYOffset;
119
- l = pageXOffset;
120
- }
121
- iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
122
- ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
123
- }
124
- return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
125
- },
126
- getMargins : function(e, toInteger)
127
- {
128
- var t = jQuery.curCSS(e,'marginTop') || '';
129
- var r = jQuery.curCSS(e,'marginRight') || '';
130
- var b = jQuery.curCSS(e,'marginBottom') || '';
131
- var l = jQuery.curCSS(e,'marginLeft') || '';
132
- if (toInteger)
133
- return {
134
- t: parseInt(t, 10)||0,
135
- r: parseInt(r, 10)||0,
136
- b: parseInt(b, 10)||0,
137
- l: parseInt(l, 10)
138
- };
139
- else
140
- return {t: t, r: r, b: b, l: l};
141
- },
142
- getPadding : function(e, toInteger)
143
- {
144
- var t = jQuery.curCSS(e,'paddingTop') || '';
145
- var r = jQuery.curCSS(e,'paddingRight') || '';
146
- var b = jQuery.curCSS(e,'paddingBottom') || '';
147
- var l = jQuery.curCSS(e,'paddingLeft') || '';
148
- if (toInteger)
149
- return {
150
- t: parseInt(t, 10)||0,
151
- r: parseInt(r, 10)||0,
152
- b: parseInt(b, 10)||0,
153
- l: parseInt(l, 10)
154
- };
155
- else
156
- return {t: t, r: r, b: b, l: l};
157
- },
158
- getBorder : function(e, toInteger)
159
- {
160
- var t = jQuery.curCSS(e,'borderTopWidth') || '';
161
- var r = jQuery.curCSS(e,'borderRightWidth') || '';
162
- var b = jQuery.curCSS(e,'borderBottomWidth') || '';
163
- var l = jQuery.curCSS(e,'borderLeftWidth') || '';
164
- if (toInteger)
165
- return {
166
- t: parseInt(t, 10)||0,
167
- r: parseInt(r, 10)||0,
168
- b: parseInt(b, 10)||0,
169
- l: parseInt(l, 10)||0
170
- };
171
- else
172
- return {t: t, r: r, b: b, l: l};
173
- },
174
- traverseDOM : function(nodeEl, func)
175
- {
176
- func(nodeEl);
177
- nodeEl = nodeEl.firstChild;
178
- while(nodeEl){
179
- EYE.traverseDOM(nodeEl, func);
180
- nodeEl = nodeEl.nextSibling;
181
- }
182
- },
183
- getInnerWidth : function(el, scroll) {
184
- var offsetW = el.offsetWidth;
185
- return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth;
186
- },
187
- getInnerHeight : function(el, scroll) {
188
- var offsetH = el.offsetHeight;
189
- return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight;
190
- },
191
- getExtraWidth : function(el) {
192
- if($.boxModel)
193
- return (parseInt($.curCSS(el, 'paddingLeft'))||0)
194
- + (parseInt($.curCSS(el, 'paddingRight'))||0)
195
- + (parseInt($.curCSS(el, 'borderLeftWidth'))||0)
196
- + (parseInt($.curCSS(el, 'borderRightWidth'))||0);
197
- return 0;
198
- },
199
- getExtraHeight : function(el) {
200
- if($.boxModel)
201
- return (parseInt($.curCSS(el, 'paddingTop'))||0)
202
- + (parseInt($.curCSS(el, 'paddingBottom'))||0)
203
- + (parseInt($.curCSS(el, 'borderTopWidth'))||0)
204
- + (parseInt($.curCSS(el, 'borderBottomWidth'))||0);
205
- return 0;
206
- },
207
- isChildOf: function(parentEl, el, container) {
208
- if (parentEl == el) {
209
- return true;
210
- }
211
- if (!el || !el.nodeType || el.nodeType != 1) {
212
- return false;
213
- }
214
- if (parentEl.contains && !$.browser.safari) {
215
- return parentEl.contains(el);
216
- }
217
- if ( parentEl.compareDocumentPosition ) {
218
- return !!(parentEl.compareDocumentPosition(el) & 16);
219
- }
220
- var prEl = el.parentNode;
221
- while(prEl && prEl != container) {
222
- if (prEl == parentEl)
223
- return true;
224
- prEl = prEl.parentNode;
225
- }
226
- return false;
227
- },
228
- centerEl : function(el, axis)
229
- {
230
- var clientScroll = EYE.getScroll();
231
- var size = EYE.getSize(el);
232
- if (!axis || axis == 'vertically')
233
- $(el).css(
234
- {
235
- top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px'
236
- }
237
- );
238
- if (!axis || axis == 'horizontally')
239
- $(el).css(
240
- {
241
- left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px'
242
- }
243
- );
244
- }
245
- });
246
- if (!$.easing.easeout) {
247
- $.easing.easeout = function(p, n, firstNum, delta, duration) {
248
- return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum;
249
- };
250
- }
251
-
252
  })(jQuery);
1
+ /**
2
+ *
3
+ * Utilities
4
+ * Author: Stefan Petre www.eyecon.ro
5
+ *
6
+ */
7
+ (function($) {
8
+ EYE.extend({
9
+ getPosition : function(e, forceIt)
10
+ {
11
+ var x = 0;
12
+ var y = 0;
13
+ var es = e.style;
14
+ var restoreStyles = false;
15
+ if (forceIt && jQuery.curCSS(e,'display') == 'none') {
16
+ var oldVisibility = es.visibility;
17
+ var oldPosition = es.position;
18
+ restoreStyles = true;
19
+ es.visibility = 'hidden';
20
+ es.display = 'block';
21
+ es.position = 'absolute';
22
+ }
23
+ var el = e;
24
+ if (el.getBoundingClientRect) { // IE
25
+ var box = el.getBoundingClientRect();
26
+ x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2;
27
+ y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2;
28
+ } else {
29
+ x = el.offsetLeft;
30
+ y = el.offsetTop;
31
+ el = el.offsetParent;
32
+ if (e != el) {
33
+ while (el) {
34
+ x += el.offsetLeft;
35
+ y += el.offsetTop;
36
+ el = el.offsetParent;
37
+ }
38
+ }
39
+ if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) {
40
+ x -= document.body.offsetLeft;
41
+ y -= document.body.offsetTop;
42
+ }
43
+ el = e.parentNode;
44
+ while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML')
45
+ {
46
+ if (jQuery.curCSS(el, 'display') != 'inline') {
47
+ x -= el.scrollLeft;
48
+ y -= el.scrollTop;
49
+ }
50
+ el = el.parentNode;
51
+ }
52
+ }
53
+ if (restoreStyles == true) {
54
+ es.display = 'none';
55
+ es.position = oldPosition;
56
+ es.visibility = oldVisibility;
57
+ }
58
+ return {x:x, y:y};
59
+ },
60
+ getSize : function(e)
61
+ {
62
+ var w = parseInt(jQuery.curCSS(e,'width'), 10);
63
+ var h = parseInt(jQuery.curCSS(e,'height'), 10);
64
+ var wb = 0;
65
+ var hb = 0;
66
+ if (jQuery.curCSS(e, 'display') != 'none') {
67
+ wb = e.offsetWidth;
68
+ hb = e.offsetHeight;
69
+ } else {
70
+ var es = e.style;
71
+ var oldVisibility = es.visibility;
72
+ var oldPosition = es.position;
73
+ es.visibility = 'hidden';
74
+ es.display = 'block';
75
+ es.position = 'absolute';
76
+ wb = e.offsetWidth;
77
+ hb = e.offsetHeight;
78
+ es.display = 'none';
79
+ es.position = oldPosition;
80
+ es.visibility = oldVisibility;
81
+ }
82
+ return {w:w, h:h, wb:wb, hb:hb};
83
+ },
84
+ getClient : function(e)
85
+ {
86
+ var h, w;
87
+ if (e) {
88
+ w = e.clientWidth;
89
+ h = e.clientHeight;
90
+ } else {
91
+ var de = document.documentElement;
92
+ w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
93
+ h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
94
+ }
95
+ return {w:w,h:h};
96
+ },
97
+ getScroll : function (e)
98
+ {
99
+ var t=0, l=0, w=0, h=0, iw=0, ih=0;
100
+ if (e && e.nodeName.toLowerCase() != 'body') {
101
+ t = e.scrollTop;
102
+ l = e.scrollLeft;
103
+ w = e.scrollWidth;
104
+ h = e.scrollHeight;
105
+ } else {
106
+ if (document.documentElement) {
107
+ t = document.documentElement.scrollTop;
108
+ l = document.documentElement.scrollLeft;
109
+ w = document.documentElement.scrollWidth;
110
+ h = document.documentElement.scrollHeight;
111
+ } else if (document.body) {
112
+ t = document.body.scrollTop;
113
+ l = document.body.scrollLeft;
114
+ w = document.body.scrollWidth;
115
+ h = document.body.scrollHeight;
116
+ }
117
+ if (typeof pageYOffset != 'undefined') {
118
+ t = pageYOffset;
119
+ l = pageXOffset;
120
+ }
121
+ iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
122
+ ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
123
+ }
124
+ return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
125
+ },
126
+ getMargins : function(e, toInteger)
127
+ {
128
+ var t = jQuery.curCSS(e,'marginTop') || '';
129
+ var r = jQuery.curCSS(e,'marginRight') || '';
130
+ var b = jQuery.curCSS(e,'marginBottom') || '';
131
+ var l = jQuery.curCSS(e,'marginLeft') || '';
132
+ if (toInteger)
133
+ return {
134
+ t: parseInt(t, 10)||0,
135
+ r: parseInt(r, 10)||0,
136
+ b: parseInt(b, 10)||0,
137
+ l: parseInt(l, 10)
138
+ };
139
+ else
140
+ return {t: t, r: r, b: b, l: l};
141
+ },
142
+ getPadding : function(e, toInteger)
143
+ {
144
+ var t = jQuery.curCSS(e,'paddingTop') || '';
145
+ var r = jQuery.curCSS(e,'paddingRight') || '';
146
+ var b = jQuery.curCSS(e,'paddingBottom') || '';
147
+ var l = jQuery.curCSS(e,'paddingLeft') || '';
148
+ if (toInteger)
149
+ return {
150
+ t: parseInt(t, 10)||0,
151
+ r: parseInt(r, 10)||0,
152
+ b: parseInt(b, 10)||0,
153
+ l: parseInt(l, 10)
154
+ };
155
+ else
156
+ return {t: t, r: r, b: b, l: l};
157
+ },
158
+ getBorder : function(e, toInteger)
159
+ {
160
+ var t = jQuery.curCSS(e,'borderTopWidth') || '';
161
+ var r = jQuery.curCSS(e,'borderRightWidth') || '';
162
+ var b = jQuery.curCSS(e,'borderBottomWidth') || '';
163
+ var l = jQuery.curCSS(e,'borderLeftWidth') || '';
164
+ if (toInteger)
165
+ return {
166
+ t: parseInt(t, 10)||0,
167
+ r: parseInt(r, 10)||0,
168
+ b: parseInt(b, 10)||0,
169
+ l: parseInt(l, 10)||0
170
+ };
171
+ else
172
+ return {t: t, r: r, b: b, l: l};
173
+ },
174
+ traverseDOM : function(nodeEl, func)
175
+ {
176
+ func(nodeEl);
177
+ nodeEl = nodeEl.firstChild;
178
+ while(nodeEl){
179
+ EYE.traverseDOM(nodeEl, func);
180
+ nodeEl = nodeEl.nextSibling;
181
+ }
182
+ },
183
+ getInnerWidth : function(el, scroll) {
184
+ var offsetW = el.offsetWidth;
185
+ return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth;
186
+ },
187
+ getInnerHeight : function(el, scroll) {
188
+ var offsetH = el.offsetHeight;
189
+ return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight;
190
+ },
191
+ getExtraWidth : function(el) {
192
+ if($.boxModel)
193
+ return (parseInt($.curCSS(el, 'paddingLeft'))||0)
194
+ + (parseInt($.curCSS(el, 'paddingRight'))||0)
195
+ + (parseInt($.curCSS(el, 'borderLeftWidth'))||0)
196
+ + (parseInt($.curCSS(el, 'borderRightWidth'))||0);
197
+ return 0;
198
+ },
199
+ getExtraHeight : function(el) {
200
+ if($.boxModel)
201
+ return (parseInt($.curCSS(el, 'paddingTop'))||0)
202
+ + (parseInt($.curCSS(el, 'paddingBottom'))||0)
203
+ + (parseInt($.curCSS(el, 'borderTopWidth'))||0)
204
+ + (parseInt($.curCSS(el, 'borderBottomWidth'))||0);
205
+ return 0;
206
+ },
207
+ isChildOf: function(parentEl, el, container) {
208
+ if (parentEl == el) {
209
+ return true;
210
+ }
211
+ if (!el || !el.nodeType || el.nodeType != 1) {
212
+ return false;
213
+ }
214
+ if (parentEl.contains && !$.browser.safari) {
215
+ return parentEl.contains(el);
216
+ }
217
+ if ( parentEl.compareDocumentPosition ) {
218
+ return !!(parentEl.compareDocumentPosition(el) & 16);
219
+ }
220
+ var prEl = el.parentNode;
221
+ while(prEl && prEl != container) {
222
+ if (prEl == parentEl)
223
+ return true;
224
+ prEl = prEl.parentNode;
225
+ }
226
+ return false;
227
+ },
228
+ centerEl : function(el, axis)
229
+ {
230
+ var clientScroll = EYE.getScroll();
231
+ var size = EYE.getSize(el);
232
+ if (!axis || axis == 'vertically')
233
+ $(el).css(
234
+ {
235
+ top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px'
236
+ }
237
+ );
238
+ if (!axis || axis == 'horizontally')
239
+ $(el).css(
240
+ {
241
+ left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px'
242
+ }
243
+ );
244
+ }
245
+ });
246
+ if (!$.easing.easeout) {
247
+ $.easing.easeout = function(p, n, firstNum, delta, duration) {
248
+ return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum;
249
+ };
250
+ }
251
+
252
  })(jQuery);
modules/export/custom-contact-forms-export.php CHANGED
@@ -1,146 +1,146 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- if (!class_exists('CustomContactFormsExport')) {
8
- class CustomContactFormsExport extends CustomContactFormsDB {
9
-
10
- var $last_export_content;
11
- var $last_export_file;
12
- var $exports_path;
13
- var $option_name;
14
-
15
- function CustomContactFormsExport($option_name) {
16
- $this->exports_path = CCF_BASE_PATH . 'export/';
17
- $this->option_name = $option_name;
18
- }
19
-
20
- function exportAll($backup_options = true) {
21
- $out = '';
22
- foreach ($GLOBALS['ccf_tables_array'] as $table)
23
- $out .= $this->exportTable($table);
24
- if ($backup_options) {
25
- $out .= "\n" . $this->generateOptionsUpdateQuery() . "\n";
26
- }
27
- $this->last_export_content = $out;
28
- return $out;
29
- }
30
-
31
- function exportTable($table) {
32
- $out = '';
33
- $data = parent::selectAllFromTable($table, ARRAY_A);
34
- foreach ($data as $row) {
35
- $no_insert = 0;
36
- $cols = '';
37
- $vals = '';
38
- foreach ($row as $k => $v) {
39
- $v = str_replace(';', '\;', $v);
40
- $cols .= "$k, ";
41
- $vals .= "'$v', ";
42
- }
43
- $vals = substr($vals, 0, strlen($vals) - 2);
44
- $cols = substr($cols, 0, strlen($cols) - 2);
45
- $statement = 'INSERT INTO `' . $table . '` (' . $cols . ') VALUES (' . $this->escapeSemiColons($vals) . ');';
46
- $statement = $statement . "\n\n";
47
- $out .= $statement;
48
- }
49
- return $out;
50
- }
51
-
52
- function exportToFile($export_content = NULL) {
53
- if ($export_content == NULL) $export_content = $this->getLastExportContent();
54
- $export_file = "ccf-export-" . strtolower(date('j-M-Y--h-i-s')) . '.sql';
55
- if (($export_handle = @fopen($this->getExportsPath() . $export_file, 'w')) == false)
56
- return false;
57
- $comment = '## ' . __('Custom Contact Forms Export File', 'custom-contact-forms') . "\n";
58
- $comment .= '## '. __('It is recommended that you do not edit this file. The order of the', 'custom-contact-forms') . "\n";
59
- $comment .= '## ' . __('queries is important if you intend to use this file through the CCF', 'custom-contact-forms') . "\n";
60
- $comment .= '## ' . __('exporter. The query to update general settings MUST be the last query', 'custom-contact-forms') . "\n";
61
- $comment .= '## ' . __('in this file.', 'custom-contact-forms') . "\n\n";
62
- fwrite($export_handle, $comment . $export_content);
63
- fclose($export_handle);
64
- $this->last_export_file = $export_file;
65
- return $export_file;
66
- }
67
-
68
- function getExportsPath() {
69
- return $this->exports_path;
70
- }
71
-
72
- function getLastExportContent() {
73
- return $this->last_export_content;
74
- }
75
-
76
- function importFromFile($file, $settings = array('mode' => 'clear_import', 'import_general_settings' => false, 'import_forms' => true,'import_fields' => true, 'import_field_options' => true, 'import_styles' => true, 'import_saved_submissions' => false)) {
77
- $path = CCF_BASE_PATH. 'import/';
78
- $file_name = basename(time() . $file['name']);
79
- if (move_uploaded_file($file['tmp_name'], $path . $file_name)) {
80
- $data = file_get_contents($path . $file_name);
81
- $data = preg_replace('/^#.*?[\n\r]*$/ims', '', $data);
82
- $commands = $this->parseMultiQuery($data);
83
- $errors = 0;
84
- if ($settings['mode'] == 'clear_import') parent::emptyAllTables();
85
- foreach($commands as $command) {
86
-
87
- if (preg_match('/^[\s]*UPDATE/is', $command)) {
88
- if ($settings['import_general_settings'])
89
- if (!parent::query($command)) $errors++;
90
- } elseif (preg_match('/^[\s]*INSERT INTO/is', $command)) {
91
- $table_name = $this->extractTableFromQuery($command);
92
- $no_query = 0;
93
- if ($settings['import_forms'] == 0) if ($table_name == CCF_FORMS_TABLE) $no_query = 1;
94
- if ($settings['import_fields'] == 0) if ($table_name == CCF_FIELDS_TABLE) $no_query = 1;
95
- if ($settings['import_field_options'] == 0) if ($table_name == CCF_FIELD_OPTIONS_TABLE) $no_query = 1;
96
- if ($settings['import_styles'] == 0) if ($table_name == CCF_STYLES_TABLE) $no_query = 1;
97
- if ($settings['import_saved_submissions'] == 0) if ($table_name == CCF_USER_DATA_TABLE) $no_query = 1;
98
- if ($no_query == 0) {
99
- if (!parent::query($command)) $errors++;
100
- }
101
- }
102
- }
103
- ccf_utils::load_module('db/custom-contact-forms-activate-db.php');
104
- CustomContactFormsActivateDB::insertFixedFields();
105
- parent::serializeAllFormFields();
106
- parent::serializeAllFieldOptions();
107
- return ($errors == 0) ? true : $errors;
108
- }
109
- return false;
110
- }
111
-
112
- function parseMultiQuery($sql, $unescape_semicolons = true, $replace_table_prefix = true) {
113
- if (empty($sql)) return false;
114
- $prefix = ccf_utils::getWPTablePrefix();
115
- $commands = preg_split('/\);[\n\r]*/ims', $sql);
116
- foreach ($commands as $k => $v) {
117
- if (preg_match('/^[\s]*INSERT INTO/is', $v)) $commands[$k] = $v . ')';
118
- if ($unescape_semicolons)
119
- $commands[$k] = $this->unescapeSemiColons($commands[$k]);
120
- if ($replace_table_prefix)
121
- $commands[$k] = preg_replace('/^([a-zA-Z0-9 \s]+?)`.+?customcontactforms_(.+?)`/is', '$1 `' . $prefix . 'customcontactforms_$2`', $commands[$k]);
122
- }
123
- return $commands;
124
- }
125
-
126
- function generateOptionsUpdateQuery($option_name = NULL) {
127
- if ($option_name == NULL) $option_name = $this->option_name;
128
- $prefix = ccf_utils::getWPTablePrefix();
129
- $options = serialize(get_option($option_name));
130
- return 'UPDATE `' . $prefix . "options` SET `option_value`='$options' WHERE `option_name`='$option_name';";
131
- }
132
-
133
- function extractTableFromQuery($query) {
134
- return preg_replace('/^[\s]*?INSERT INTO[\s]*?`(.*?)`.*/is', '$1', $query);
135
- }
136
-
137
- function escapeSemiColons($value) {
138
- return str_replace(';', '\;', $value);
139
- }
140
-
141
- function unescapeSemiColons($value) {
142
- return str_replace('\;', ';', $value);
143
- }
144
- }
145
- }
146
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ if (!class_exists('CustomContactFormsExport')) {
8
+ class CustomContactFormsExport extends CustomContactFormsDB {
9
+
10
+ var $last_export_content;
11
+ var $last_export_file;
12
+ var $exports_path;
13
+ var $option_name;
14
+
15
+ function CustomContactFormsExport($option_name) {
16
+ $this->exports_path = CCF_BASE_PATH . 'export/';
17
+ $this->option_name = $option_name;
18
+ }
19
+
20
+ function exportAll($backup_options = true) {
21
+ $out = '';
22
+ foreach ($GLOBALS['ccf_tables_array'] as $table)
23
+ $out .= $this->exportTable($table);
24
+ if ($backup_options) {
25
+ $out .= "\n" . $this->generateOptionsUpdateQuery() . "\n";
26
+ }
27
+ $this->last_export_content = $out;
28
+ return $out;
29
+ }
30
+
31
+ function exportTable($table) {
32
+ $out = '';
33
+ $data = parent::selectAllFromTable($table, ARRAY_A);
34
+ foreach ($data as $row) {
35
+ $no_insert = 0;
36
+ $cols = '';
37
+ $vals = '';
38
+ foreach ($row as $k => $v) {
39
+ $v = str_replace(';', '\;', $v);
40
+ $cols .= "$k, ";
41
+ $vals .= "'$v', ";
42
+ }
43
+ $vals = substr($vals, 0, strlen($vals) - 2);
44
+ $cols = substr($cols, 0, strlen($cols) - 2);
45
+ $statement = 'INSERT INTO `' . $table . '` (' . $cols . ') VALUES (' . $this->escapeSemiColons($vals) . ');';
46
+ $statement = $statement . "\n\n";
47
+ $out .= $statement;
48
+ }
49
+ return $out;
50
+ }
51
+
52
+ function exportToFile($export_content = NULL) {
53
+ if ($export_content == NULL) $export_content = $this->getLastExportContent();
54
+ $export_file = "ccf-export-" . strtolower(date('j-M-Y--h-i-s')) . '.sql';
55
+ if (($export_handle = @fopen($this->getExportsPath() . $export_file, 'w')) == false)
56
+ return false;
57
+ $comment = '## ' . __('Custom Contact Forms Export File', 'custom-contact-forms') . "\n";
58
+ $comment .= '## '. __('It is recommended that you do not edit this file. The order of the', 'custom-contact-forms') . "\n";
59
+ $comment .= '## ' . __('queries is important if you intend to use this file through the CCF', 'custom-contact-forms') . "\n";
60
+ $comment .= '## ' . __('exporter. The query to update general settings MUST be the last query', 'custom-contact-forms') . "\n";
61
+ $comment .= '## ' . __('in this file.', 'custom-contact-forms') . "\n\n";
62
+ fwrite($export_handle, $comment . $export_content);
63
+ fclose($export_handle);
64
+ $this->last_export_file = $export_file;
65
+ return $export_file;
66
+ }
67
+
68
+ function getExportsPath() {
69
+ return $this->exports_path;
70
+ }
71
+
72
+ function getLastExportContent() {
73
+ return $this->last_export_content;
74
+ }
75
+
76
+ function importFromFile($file, $settings = array('mode' => 'clear_import', 'import_general_settings' => false, 'import_forms' => true,'import_fields' => true, 'import_field_options' => true, 'import_styles' => true, 'import_saved_submissions' => false)) {
77
+ $path = CCF_BASE_PATH. 'import/';
78
+ $file_name = basename(time() . $file['name']);
79
+ if (move_uploaded_file($file['tmp_name'], $path . $file_name)) {
80
+ $data = file_get_contents($path . $file_name);
81
+ $data = preg_replace('/^#.*?[\n\r]*$/ims', '', $data);
82
+ $commands = $this->parseMultiQuery($data);
83
+ $errors = 0;
84
+ if ($settings['mode'] == 'clear_import') parent::emptyAllTables();
85
+ foreach($commands as $command) {
86
+
87
+ if (preg_match('/^[\s]*UPDATE/is', $command)) {
88
+ if ($settings['import_general_settings'])
89
+ if (!parent::query($command)) $errors++;
90
+ } elseif (preg_match('/^[\s]*INSERT INTO/is', $command)) {
91
+ $table_name = $this->extractTableFromQuery($command);
92
+ $no_query = 0;
93
+ if ($settings['import_forms'] == 0) if ($table_name == CCF_FORMS_TABLE) $no_query = 1;
94
+ if ($settings['import_fields'] == 0) if ($table_name == CCF_FIELDS_TABLE) $no_query = 1;
95
+ if ($settings['import_field_options'] == 0) if ($table_name == CCF_FIELD_OPTIONS_TABLE) $no_query = 1;
96
+ if ($settings['import_styles'] == 0) if ($table_name == CCF_STYLES_TABLE) $no_query = 1;
97
+ if ($settings['import_saved_submissions'] == 0) if ($table_name == CCF_USER_DATA_TABLE) $no_query = 1;
98
+ if ($no_query == 0) {
99
+ if (!parent::query($command)) $errors++;
100
+ }
101
+ }
102
+ }
103
+ ccf_utils::load_module('db/custom-contact-forms-activate-db.php');
104
+ CustomContactFormsActivateDB::insertFixedFields();
105
+ parent::serializeAllFormFields();
106
+ parent::serializeAllFieldOptions();
107
+ return ($errors == 0) ? true : $errors;
108
+ }
109
+ return false;
110
+ }
111
+
112
+ function parseMultiQuery($sql, $unescape_semicolons = true, $replace_table_prefix = true) {
113
+ if (empty($sql)) return false;
114
+ $prefix = ccf_utils::getWPTablePrefix();
115
+ $commands = preg_split('/\);[\n\r]*/ims', $sql);
116
+ foreach ($commands as $k => $v) {
117
+ if (preg_match('/^[\s]*INSERT INTO/is', $v)) $commands[$k] = $v . ')';
118
+ if ($unescape_semicolons)
119
+ $commands[$k] = $this->unescapeSemiColons($commands[$k]);
120
+ if ($replace_table_prefix)
121
+ $commands[$k] = preg_replace('/^([a-zA-Z0-9 \s]+?)`.+?customcontactforms_(.+?)`/is', '$1 `' . $prefix . 'customcontactforms_$2`', $commands[$k]);
122
+ }
123
+ return $commands;
124
+ }
125
+
126
+ function generateOptionsUpdateQuery($option_name = NULL) {
127
+ if ($option_name == NULL) $option_name = $this->option_name;
128
+ $prefix = ccf_utils::getWPTablePrefix();
129
+ $options = serialize(get_option($option_name));
130
+ return 'UPDATE `' . $prefix . "options` SET `option_value`='$options' WHERE `option_name`='$option_name';";
131
+ }
132
+
133
+ function extractTableFromQuery($query) {
134
+ return preg_replace('/^[\s]*?INSERT INTO[\s]*?`(.*?)`.*/is', '$1', $query);
135
+ }
136
+
137
+ function escapeSemiColons($value) {
138
+ return str_replace(';', '\;', $value);
139
+ }
140
+
141
+ function unescapeSemiColons($value) {
142
+ return str_replace('\;', ';', $value);
143
+ }
144
+ }
145
+ }
146
  ?>
modules/export/custom-contact-forms-user-data.php CHANGED
@@ -1,100 +1,100 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- if (!class_exists('CustomContactFormsUserData')) {
8
- class CustomContactFormsUserData {
9
- var $form_id = NULL;
10
- var $data_time = NULL;
11
- var $data_array = NULL;
12
- var $encoded_data = NULL;
13
- var $form_page = NULL;
14
- function CustomContactFormsUserData($param_array) {
15
- if (isset($param_array['form_id']))
16
- $this->setFormID($param_array['form_id']);
17
-
18
- if (isset($param_array['data_time']))
19
- $this->setDataTime($param_array['data_time']);
20
-
21
- if (isset($param_array['form_page']))
22
- $this->setFormPage($param_array['form_page']);
23
-
24
- if (isset($param_array['data_array'])) {
25
- $this->setDataArray($param_array['data_array']);
26
- $this->encodeData();
27
- }
28
-
29
- if (isset($param_array['encoded_data'])) {
30
- $this->setEncodedData($param_array['encoded_data']);
31
- $this->decodeData();
32
- }
33
- }
34
-
35
- function encodeData() {
36
- $data_array = $this->getDataArray();
37
- $encoded_data = '';
38
- foreach ($data_array as $key => $value) {
39
- $key = ccf_utils::encodeOption($key);
40
- $value = ccf_utils::encodeOption($value);
41
- $encoded_data .= 's:'.strlen($key).':"'.$key.'";';
42
- $encoded_data .= 's:'.strlen($value).':"'.$value.'";';
43
- }
44
- $this->setEncodedData($encoded_data);
45
- }
46
-
47
-
48
- function decodeData() {
49
- $data = $this->getEncodedData();
50
- $data_array = array();
51
- while (!empty($data)) {
52
- $key_length = $this->strstrb($data, ':"');
53
- $key_length = str_replace('s:', '', $key_length);
54
- $piece_length = 6 + strlen($key_length) + (int) $key_length;
55
- $key = substr($data, (4 + strlen($key_length)), (int) $key_length);
56
- $data = substr($data, $piece_length);
57
- $value_length = $this->strstrb($data, ':"');
58
- $value_length = str_replace('s:', '', $value_length);
59
- $piece_length = 6 + strlen($value_length) + (int) $value_length;
60
- $value = substr($data, (4 + strlen($value_length)), (int) $value_length);
61
- $data = substr($data, $piece_length);
62
- $data_array[$key] = $value;
63
- }
64
- $this->setDataArray($data_array);
65
- }
66
-
67
- function strstrb($h, $n){
68
- return array_shift(explode($n, $h, 2));
69
- }
70
-
71
- /* Getters and Setters */
72
- function setFormID($form_id) { $this->form_id = $form_id; }
73
- function setFormPage($form_page) { $this->form_page = $form_page; }
74
- function setDataTime($data_time) { $this->data_time = $data_time; }
75
- function setDataArray($data_array) { $this->data_array = $data_array; }
76
- function setEncodedData($encoded_data) { $this->encoded_data = $encoded_data; }
77
- function getFormID() { return $this->form_id; }
78
- function getFormPage() { return $this->form_page; }
79
- function getDataTime() { return $this->data_time; }
80
- function getDataArray() { return $this->data_array; }
81
- function getEncodedData() { return $this->encoded_data; }
82
-
83
- /* Debug function */
84
-
85
- function printAll() {
86
- ?><div style="margin-left:30px;">
87
- <b>BEGIN User Data Object</b><br />
88
- ---------------------------------<br />
89
- Form ID: <?php echo $this->getFormID(); ?><br />
90
- Form Page: <?php echo $this->getFormPage(); ?><br />
91
- Data Time: <?php echo $this->getDataTime(); ?><br />
92
- Data Array: <?php print_r($this->getDataArray()); ?><br />
93
- Encoded Array: <?php print_r($this->getEncodedData()); ?><br />
94
- ---------------------------------<br />
95
- <b>END User Data Object</b></div>
96
- <?php
97
- }
98
- }
99
- }
100
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ if (!class_exists('CustomContactFormsUserData')) {
8
+ class CustomContactFormsUserData {
9
+ var $form_id = NULL;
10
+ var $data_time = NULL;
11
+ var $data_array = NULL;
12
+ var $encoded_data = NULL;
13
+ var $form_page = NULL;
14
+ function CustomContactFormsUserData($param_array) {
15
+ if (isset($param_array['form_id']))
16
+ $this->setFormID($param_array['form_id']);
17
+
18
+ if (isset($param_array['data_time']))
19
+ $this->setDataTime($param_array['data_time']);
20
+
21
+ if (isset($param_array['form_page']))
22
+ $this->setFormPage($param_array['form_page']);
23
+
24
+ if (isset($param_array['data_array'])) {
25
+ $this->setDataArray($param_array['data_array']);
26
+ $this->encodeData();
27
+ }
28
+
29
+ if (isset($param_array['encoded_data'])) {
30
+ $this->setEncodedData($param_array['encoded_data']);
31
+ $this->decodeData();
32
+ }
33
+ }
34
+
35
+ function encodeData() {
36
+ $data_array = $this->getDataArray();
37
+ $encoded_data = '';
38
+ foreach ($data_array as $key => $value) {
39
+ $key = ccf_utils::encodeOption($key);
40
+ $value = ccf_utils::encodeOption($value);
41
+ $encoded_data .= 's:'.strlen($key).':"'.$key.'";';
42
+ $encoded_data .= 's:'.strlen($value).':"'.$value.'";';
43
+ }
44
+ $this->setEncodedData($encoded_data);
45
+ }
46
+
47
+
48
+ function decodeData() {
49
+ $data = $this->getEncodedData();
50
+ $data_array = array();
51
+ while (!empty($data)) {
52
+ $key_length = $this->strstrb($data, ':"');
53
+ $key_length = str_replace('s:', '', $key_length);
54
+ $piece_length = 6 + strlen($key_length) + (int) $key_length;
55
+ $key = substr($data, (4 + strlen($key_length)), (int) $key_length);
56
+ $data = substr($data, $piece_length);
57
+ $value_length = $this->strstrb($data, ':"');
58
+ $value_length = str_replace('s:', '', $value_length);
59
+ $piece_length = 6 + strlen($value_length) + (int) $value_length;
60
+ $value = substr($data, (4 + strlen($value_length)), (int) $value_length);
61
+ $data = substr($data, $piece_length);
62
+ $data_array[$key] = $value;
63
+ }
64
+ $this->setDataArray($data_array);
65
+ }
66
+
67
+ function strstrb($h, $n){
68
+ return array_shift(explode($n, $h, 2));
69
+ }
70
+
71
+ /* Getters and Setters */
72
+ function setFormID($form_id) { $this->form_id = $form_id; }
73
+ function setFormPage($form_page) { $this->form_page = $form_page; }
74
+ function setDataTime($data_time) { $this->data_time = $data_time; }
75
+ function setDataArray($data_array) { $this->data_array = $data_array; }
76
+ function setEncodedData($encoded_data) { $this->encoded_data = $encoded_data; }
77
+ function getFormID() { return $this->form_id; }
78
+ function getFormPage() { return $this->form_page; }
79
+ function getDataTime() { return $this->data_time; }
80
+ function getDataArray() { return $this->data_array; }
81
+ function getEncodedData() { return $this->encoded_data; }
82
+
83
+ /* Debug function */
84
+
85
+ function printAll() {
86
+ ?><div style="margin-left:30px;">
87
+ <b>BEGIN User Data Object</b><br />
88
+ ---------------------------------<br />
89
+ Form ID: <?php echo $this->getFormID(); ?><br />
90
+ Form Page: <?php echo $this->getFormPage(); ?><br />
91
+ Data Time: <?php echo $this->getDataTime(); ?><br />
92
+ Data Array: <?php print_r($this->getDataArray()); ?><br />
93
+ Encoded Array: <?php print_r($this->getEncodedData()); ?><br />
94
+ ---------------------------------<br />
95
+ <b>END User Data Object</b></div>
96
+ <?php
97
+ }
98
+ }
99
+ }
100
  ?>
modules/extra_fields/countries_field.php CHANGED
@@ -1,47 +1,47 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- if (!class_exists('ccf_countries_field')) {
8
- class ccf_countries_field {
9
- var $field_code;
10
-
11
- function ccf_countries_field($class = NULL, $id = NULL, $initial_value = NULL, $field_instructions = NULL) {
12
- $this->field_code = '';
13
- $class_attr = ($class == NULL) ? '' : $class;
14
- $id_attr = ($id == NULL) ? '' : ' id="'.$id.'" ';
15
- if ($field_instructions == NULL) {
16
- $instructions_attr = '';
17
- $tooltip_class = '';
18
- } else {
19
- $instructions_attr = ' title="'.$field_instructions.'" ';
20
- $tooltip_class = 'ccf_tooltip_field';
21
- }
22
- $this->field_code .= '<select name="allCountries" class="'.tooltip_class.' ' . $class_attr . '" ' . $id_attr . $instructions_attr . '>' . "\n";
23
- $countries = array('Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica', 'Antigua And Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia And Herzegowina', 'Botswana',
24
- 'Bouvet Island', 'Brazil', 'British Indian Ocean Territory', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', "Cote D'Ivoire",
25
- 'Croatia (Hrvatska)', 'Cuba', 'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'East Timor', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia', 'Falkland Islands (Malvinas)', 'Faroe Islands', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories', 'Gabon',
26
- 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Heard And Mc Donald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary', 'Icel And', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy',
27
- 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', "Korea, Dem People'S Republic", 'Korea, Republic Of', 'Kuwait', 'Kyrgyzstan', "Lao People'S Dem Republic", 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macau', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali',
28
- 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia, Federated States', 'Moldova, Republic Of', 'Monaco', 'Mongolia', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'Netherlands Ant Illes', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island',
29
- 'Northern Mariana Islands', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn', 'Poland', 'Portugal', 'Puerto Rico', 'Qatar', 'Reunion', 'Romania', 'Russian Federation', 'Rwanda', 'Saint K Itts And Nevis', 'Saint Lucia', 'Saint Vincent, The Grenadines', 'Samoa', 'San Marino', 'Sao Tome And Principe', 'Saudi Arabia', 'Senegal',
30
- 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia , S Sandwich Is.', 'Spain', 'Sri Lanka', 'St. Helena', 'St. Pierre And Miquelon', 'Sudan', 'Suriname', 'Svalbard, Jan Mayen Islands', 'Sw Aziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic', 'Taiwan', 'Tajikistan', 'Tanzania, United Republic Of',
31
- 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad And Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks And Caicos Islands', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States', 'United States Minor Is.', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Viet Nam', 'Virgin Islands (British)', 'Virgin Islands (US)', 'Wallis And Futuna Islands',
32
- 'Western Sahara', 'Yemen', 'Yugoslavia', 'Zaire', 'Zambia', 'Zimbabwe');
33
- foreach ($countries as $country) {
34
- if ($initial_value != NULL && $country == $initial_value)
35
- $this->field_code .= '<option selected="selected">' . $country . '</option>' . "\n";
36
- else
37
- $this->field_code .= '<option>' . $country . '</option>' . "\n";
38
- }
39
- $this->field_code .= '</select>';
40
- }
41
-
42
- function getCode() {
43
- return $this->field_code;
44
- }
45
- }
46
- }
47
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ if (!class_exists('ccf_countries_field')) {
8
+ class ccf_countries_field {
9
+ var $field_code;
10
+
11
+ function ccf_countries_field($class = NULL, $id = NULL, $initial_value = NULL, $field_instructions = NULL) {
12
+ $this->field_code = '';
13
+ $class_attr = ($class == NULL) ? '' : $class;
14
+ $id_attr = ($id == NULL) ? '' : ' id="'.$id.'" ';
15
+ if ($field_instructions == NULL) {
16
+ $instructions_attr = '';
17
+ $tooltip_class = '';
18
+ } else {
19
+ $instructions_attr = ' title="'.$field_instructions.'" ';
20
+ $tooltip_class = 'ccf_tooltip_field';
21
+ }
22
+ $this->field_code .= '<select name="allCountries" class="'.tooltip_class.' ' . $class_attr . '" ' . $id_attr . $instructions_attr . '>' . "\n";
23
+ $countries = array('Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica', 'Antigua And Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia And Herzegowina', 'Botswana',
24
+ 'Bouvet Island', 'Brazil', 'British Indian Ocean Territory', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', "Cote D'Ivoire",
25
+ 'Croatia (Hrvatska)', 'Cuba', 'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'East Timor', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia', 'Falkland Islands (Malvinas)', 'Faroe Islands', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories', 'Gabon',
26
+ 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Heard And Mc Donald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary', 'Icel And', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy',
27
+ 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', "Korea, Dem People'S Republic", 'Korea, Republic Of', 'Kuwait', 'Kyrgyzstan', "Lao People'S Dem Republic", 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macau', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali',
28
+ 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia, Federated States', 'Moldova, Republic Of', 'Monaco', 'Mongolia', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'Netherlands Ant Illes', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island',
29
+ 'Northern Mariana Islands', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn', 'Poland', 'Portugal', 'Puerto Rico', 'Qatar', 'Reunion', 'Romania', 'Russian Federation', 'Rwanda', 'Saint K Itts And Nevis', 'Saint Lucia', 'Saint Vincent, The Grenadines', 'Samoa', 'San Marino', 'Sao Tome And Principe', 'Saudi Arabia', 'Senegal',
30
+ 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia , S Sandwich Is.', 'Spain', 'Sri Lanka', 'St. Helena', 'St. Pierre And Miquelon', 'Sudan', 'Suriname', 'Svalbard, Jan Mayen Islands', 'Sw Aziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic', 'Taiwan', 'Tajikistan', 'Tanzania, United Republic Of',
31
+ 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad And Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks And Caicos Islands', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States', 'United States Minor Is.', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Viet Nam', 'Virgin Islands (British)', 'Virgin Islands (US)', 'Wallis And Futuna Islands',
32
+ 'Western Sahara', 'Yemen', 'Yugoslavia', 'Zaire', 'Zambia', 'Zimbabwe');
33
+ foreach ($countries as $country) {
34
+ if ($initial_value != NULL && $country == $initial_value)
35
+ $this->field_code .= '<option selected="selected">' . $country . '</option>' . "\n";
36
+ else
37
+ $this->field_code .= '<option>' . $country . '</option>' . "\n";
38
+ }
39
+ $this->field_code .= '</select>';
40
+ }
41
+
42
+ function getCode() {
43
+ return $this->field_code;
44
+ }
45
+ }
46
+ }
47
  ?>
modules/extra_fields/states_field.php CHANGED
@@ -1,43 +1,43 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- if (!class_exists('ccf_states_field')) {
8
- class ccf_states_field {
9
- var $field_code;
10
-
11
- function ccf_states_field($class = NULL, $id = NULL, $initial_value = NULL, $field_instructions = NULL) {
12
- $this->field_code = '';
13
- $class_attr = ($class == NULL) ? '' : $class;
14
- $id_attr = ($id == NULL) ? '' : ' id="'.$id.'" ';
15
- if ($field_instructions == NULL) {
16
- $instructions_attr = '';
17
- $tooltip_class = '';
18
- } else {
19
- $instructions_attr = ' title="'.$field_instructions.'" ';
20
- $tooltip_class = 'ccf_tooltip_field';
21
- }
22
- $this->field_code .= '<select name="usaStates" class="'.tooltip_class.' ' . $class_attr . '" ' . $id_attr . $instructions_attr . '>' . "\n";
23
- $states = array('Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida',
24
- 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
25
- 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska',
26
- 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
27
- 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas',
28
- 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming');
29
- foreach ($states as $state) {
30
- if ($initial_value != NULL && $state == $initial_value)
31
- $this->field_code .= '<option selected="selected">' . $state . '</option>' . "\n";
32
- else
33
- $this->field_code .= '<option>' . $state . '</option>' . "\n";
34
- }
35
- $this->field_code .= '</select>';
36
- }
37
-
38
- function getCode() {
39
- return $this->field_code;
40
- }
41
- }
42
- }
43
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ if (!class_exists('ccf_states_field')) {
8
+ class ccf_states_field {
9
+ var $field_code;
10
+
11
+ function ccf_states_field($class = NULL, $id = NULL, $initial_value = NULL, $field_instructions = NULL) {
12
+ $this->field_code = '';
13
+ $class_attr = ($class == NULL) ? '' : $class;
14
+ $id_attr = ($id == NULL) ? '' : ' id="'.$id.'" ';
15
+ if ($field_instructions == NULL) {
16
+ $instructions_attr = '';
17
+ $tooltip_class = '';
18
+ } else {
19
+ $instructions_attr = ' title="'.$field_instructions.'" ';
20
+ $tooltip_class = 'ccf_tooltip_field';
21
+ }
22
+ $this->field_code .= '<select name="usaStates" class="'.tooltip_class.' ' . $class_attr . '" ' . $id_attr . $instructions_attr . '>' . "\n";
23
+ $states = array('Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida',
24
+ 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
25
+ 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska',
26
+ 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
27
+ 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas',
28
+ 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming');
29
+ foreach ($states as $state) {
30
+ if ($initial_value != NULL && $state == $initial_value)
31
+ $this->field_code .= '<option selected="selected">' . $state . '</option>' . "\n";
32
+ else
33
+ $this->field_code .= '<option>' . $state . '</option>' . "\n";
34
+ }
35
+ $this->field_code .= '</select>';
36
+ }
37
+
38
+ function getCode() {
39
+ return $this->field_code;
40
+ }
41
+ }
42
+ }
43
  ?>
modules/images/custom-contact-forms-images.php CHANGED
@@ -1,23 +1,23 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
-
8
- if (!class_exists('CustomContactFormsImages')) {
9
- class CustomContactFormsImages {
10
- function createImageWithText($str){
11
- $image = imagecreate(96,24);
12
- $src = imagecreatefrompng('images/gd' . rand(1, 4) . '.png');
13
- $textcolor = imagecolorallocate($src, 10, 0, 0);
14
- imagestring($src, 14, 5, 1, $str, $textcolor);
15
- imagecopyresampled($image, $src, 0, 0, 0, 0, 96, 24, 63, 18);
16
- imagepng($image);
17
- imagedestroy($image);
18
- imagedestroy($src);
19
- return $str;
20
- }
21
- }
22
- }
23
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+
8
+ if (!class_exists('CustomContactFormsImages')) {
9
+ class CustomContactFormsImages {
10
+ function createImageWithText($str){
11
+ $image = imagecreate(96,24);
12
+ $src = imagecreatefrompng('images/gd' . rand(1, 4) . '.png');
13
+ $textcolor = imagecolorallocate($src, 10, 0, 0);
14
+ imagestring($src, 14, 5, 1, $str, $textcolor);
15
+ imagecopyresampled($image, $src, 0, 0, 0, 0, 96, 24, 63, 18);
16
+ imagepng($image);
17
+ imagedestroy($image);
18
+ imagedestroy($src);
19
+ return $str;
20
+ }
21
+ }
22
+ }
23
  ?>
modules/widget/custom-contact-forms-widget.php CHANGED
@@ -1,60 +1,60 @@
1
- <?php
2
- /*
3
- Custom Contact Forms Plugin
4
- By Taylor Lovett - http://www.taylorlovett.com
5
- Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
- */
7
- if (!class_exists('CustomContactFormsWidget')) {
8
- class CustomContactFormsWidget extends WP_Widget {
9
- function CustomContactFormsWidget() {
10
- $widget_ops = array('description' => __('Add a customized contact form to your sidebar.', 'custom-contact-forms'));
11
- $this->WP_Widget('custom-contact-forms', 'Custom Contact Forms', $widget_ops);
12
- }
13
-
14
-
15
- function widget($args, $instance) {
16
- global $custom_contact_front;
17
- $admin_option = $custom_contact_front->getAdminOptions();
18
- $form_id = intval($instance['form_id']);
19
- if ((is_front_page() and $admin_option['show_widget_home'] != 1) or (is_single() and $admin_option['show_widget_singles'] != 1) or
20
- (is_page() and $admin_option['show_widget_pages'] != 1) or (is_category() and $admin_option['show_widget_categories'] != 1) or
21
- (is_archive() and $admin_option['show_widget_archives'] != 1))
22
- return false;
23
- if (empty($form_id) or $form_id < 1) return false;
24
- extract($args);
25
- $form_object = $custom_contact_front->selectForm($form_id);
26
- echo $before_widget . $before_title . $form_object->form_title . $after_title;
27
- echo $custom_contact_front->getFormCode($form_object, true);
28
- echo $after_widget;
29
-
30
- }
31
-
32
- function update($new_instance, $old_instance) {
33
- $instance = $old_instance;
34
- $instance['form_id'] = $new_instance['form_id'];
35
- return $instance;
36
- }
37
-
38
- function form($instance) {
39
- global $custom_contact_admin;
40
- $forms = $custom_contact_admin->selectAllForms();
41
- $form_id = esc_attr($instance['form_id']);
42
- ?>
43
- <p><label for="<?php echo $this->get_field_id('form_id'); ?>">
44
- <?php _e('Choose a Form:', 'custom-contact-forms'); ?><br />
45
- <select id="<?php echo $this->get_field_id('form_id'); ?>" name="<?php echo $this->get_field_name('form_id'); ?>">
46
- <?php
47
- foreach ($forms as $form) {
48
- ?>
49
- <option <?php if ($form_id == $form->id) echo 'selected="selected"'?> value="<?php echo $form->id; ?>"><?php echo $form->form_slug; ?></option>
50
- <?php
51
- }
52
- ?>
53
- </select>
54
- </label></p>
55
- <p><a href="options-general.php?page=custom-contact-forms#create-forms"><?php _e('Create a Form', 'custom-contact-forms'); ?></a></p>
56
- <?php
57
- }
58
- }
59
- }
60
  ?>
1
+ <?php
2
+ /*
3
+ Custom Contact Forms Plugin
4
+ By Taylor Lovett - http://www.taylorlovett.com
5
+ Plugin URL: http://www.taylorlovett.com/wordpress-plugins
6
+ */
7
+ if (!class_exists('CustomContactFormsWidget')) {
8
+ class CustomContactFormsWidget extends WP_Widget {
9
+ function CustomContactFormsWidget() {
10
+ $widget_ops = array('description' => __('Add a customized contact form to your sidebar.', 'custom-contact-forms'));
11
+ $this->WP_Widget('custom-contact-forms', 'Custom Contact Forms', $widget_ops);
12
+ }
13
+
14
+
15
+ function widget($args, $instance) {
16
+ global $custom_contact_front;
17
+ $admin_option = $custom_contact_front->getAdminOptions();
18
+ $form_id = intval($instance['form_id']);
19
+ if ((is_front_page() and $admin_option['show_widget_home'] != 1) or (is_single() and $admin_option['show_widget_singles'] != 1) or
20
+ (is_page() and $admin_option['show_widget_pages'] != 1) or (is_category() and $admin_option['show_widget_categories'] != 1) or
21
+ (is_archive() and $admin_option['show_widget_archives'] != 1))
22
+ return false;
23
+ if (empty($form_id) or $form_id < 1) return false;
24
+ extract($args);
25
+ $form_object = $custom_contact_front->selectForm($form_id);
26
+ echo $before_widget . $before_title . $form_object->form_title . $after_title;
27
+ echo $custom_contact_front->getFormCode($form_object, true);
28
+ echo $after_widget;
29
+
30
+ }
31
+
32
+ function update($new_instance, $old_instance) {
33
+ $instance = $old_instance;
34
+ $instance['form_id'] = $new_instance['form_id'];
35
+ return $instance;
36
+ }
37
+
38
+ function form($instance) {
39
+ global $custom_contact_admin;
40
+ $forms = $custom_contact_admin->selectAllForms();
41
+ $form_id = esc_attr($instance['form_id']);
42
+ ?>
43
+ <p><label for="<?php echo $this->get_field_id('form_id'); ?>">
44
+ <?php _e('Choose a Form:', 'custom-contact-forms'); ?><br />
45
+ <select id="<?php echo $this->get_field_id('form_id'); ?>" name="<?php echo $this->get_field_name('form_id'); ?>">
46
+ <?php
47
+ foreach ($forms as $form) {
48
+ ?>
49
+ <option <?php if ($form_id == $form->id) echo 'selected="selected"'?> value="<?php echo $form->id; ?>"><?php echo $form->form_slug; ?></option>
50
+ <?php
51
+ }
52
+ ?>
53
+ </select>
54
+ </label></p>
55
+ <p><a href="options-general.php?page=custom-contact-forms#create-forms"><?php _e('Create a Form', 'custom-contact-forms'); ?></a></p>
56
+ <?php
57
+ }
58
+ }
59
+ }
60
  ?>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.taylorlovett.com
4
  Tags: contact form, web form, custom contact form, custom forms, captcha form, contact fields, form mailers
5
  Requires at least: 2.8.1
6
  Tested up to: 3.1.3
7
- Stable tag: 4.6.0.0
8
 
9
  Gauranteed to be the most customizable and intuitive contact form plugin for Wordpress.
10
 
@@ -14,7 +14,7 @@ Guaranteed to be 1000X more customizable and intuitive than Fast Secure Contact
14
 
15
  Special Features:
16
  ------------------
17
- Custom Contact Forms 4.5.3 will revolutionize the idea of a Wordpress plugin.
18
 
19
  * __NEW__ Saved Form Submission dashboard widget!
20
  * __NEW__ - All form submissions saved and displayed in admin panel as well as emailed to you
@@ -108,6 +108,10 @@ http://www.taylorlovett.com/wordpress-plugins
108
  = I can't figure out how to insert a form into a page or post. Help! =
109
  * Find the form in the Form Manager, a snippet of code will be displaed that looks like [customcontact form=1]. Replace 1 with the ID for the specific form you want to use and insert the snippet into a page or post. You're done!
110
 
 
 
 
 
111
  = I'm not receiving any emails =
112
  * Check that the "Email Form Submissions" option is set to yes in General Settings.
113
  * Try filling out a form with the "Use Wordpress Mail Function" option set to "No".
@@ -135,6 +139,10 @@ We are planning to add popover forms and file attachments soon.
135
  Visit http://www.taylorlovett.com/wordpress-plugins for screenshots. Right now all the screenshots are from Version 1, thus are quite out-dated. Install the plugin to see what it looks like. You won't regret it. I promise!
136
 
137
  == Changelog ==
 
 
 
 
138
  = 4.6.0.0 =
139
  * custom-contact-forms.php - Dependencies included differently, new general setting options
140
  * custom-contact-forms-admin.php - New field type (Date), guidelines inserted in to all pages, new general settings
4
  Tags: contact form, web form, custom contact form, custom forms, captcha form, contact fields, form mailers
5
  Requires at least: 2.8.1
6
  Tested up to: 3.1.3
7
+ Stable tag: 4.6.0.1
8
 
9
  Gauranteed to be the most customizable and intuitive contact form plugin for Wordpress.
10
 
14
 
15
  Special Features:
16
  ------------------
17
+ Custom Contact Forms 4.6 will revolutionize the idea of a Wordpress plugin.
18
 
19
  * __NEW__ Saved Form Submission dashboard widget!
20
  * __NEW__ - All form submissions saved and displayed in admin panel as well as emailed to you
108
  = I can't figure out how to insert a form into a page or post. Help! =
109
  * Find the form in the Form Manager, a snippet of code will be displaed that looks like [customcontact form=1]. Replace 1 with the ID for the specific form you want to use and insert the snippet into a page or post. You're done!
110
 
111
+ = How can I include jQuery and CSS files only on pages that display a form? =
112
+ * First go to general settings, set "Restrict Frontend JS and CSS to Form Pages Only" to "Yes".
113
+ * Now go to the Form Manager, within each of your forms there is a field called "Form Pages". Add the post or page id's where you plan to use that form to the "Form Pages" field.
114
+
115
  = I'm not receiving any emails =
116
  * Check that the "Email Form Submissions" option is set to yes in General Settings.
117
  * Try filling out a form with the "Use Wordpress Mail Function" option set to "No".
139
  Visit http://www.taylorlovett.com/wordpress-plugins for screenshots. Right now all the screenshots are from Version 1, thus are quite out-dated. Install the plugin to see what it looks like. You won't regret it. I promise!
140
 
141
  == Changelog ==
142
+ = 4.6.0.1 =
143
+ * custom-contact-forms-admin.php - -1 bug fixed in IE
144
+ * js/jquery.form.js - Updated jquery forms plugin fixes huge IE bug
145
+
146
  = 4.6.0.0 =
147
  * custom-contact-forms.php - Dependencies included differently, new general setting options
148
  * custom-contact-forms-admin.php - New field type (Date), guidelines inserted in to all pages, new general settings