Smooth Slider - Version 2.8.8

Version Description

If you have Smooth Slider 2.6 or plus, kindly update to 2.6.3 for proper height calcualtion for responsiveness.

= Before Upgrading =

  • Note the Title and Content fonts on your old Smooth Slider.
  • Go to 'Settings' panel and 'Save Changes'.
  • Recheck the Slider Title, Post Title and the Slider Content fonts on the Settings Panel.

Get older versions

Download this release

Release Info

Developer internet techies
Plugin Icon 128x128 Smooth Slider
Version 2.8.8
Comparing to
See all releases

Code changes from version 2.8.7 to 2.8.8

css/jqueryui/1.8.2/themes/smoothness/jquery-ui.css ADDED
@@ -0,0 +1,489 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI CSS Framework
3
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
4
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
+ */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden { display: none; }
10
+ .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
11
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
12
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
13
+ .ui-helper-clearfix { display: inline-block; }
14
+ /* required comment for clearfix to work in Opera \*/
15
+ * html .ui-helper-clearfix { height:1%; }
16
+ .ui-helper-clearfix { display:block; }
17
+ /* end clearfix */
18
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
19
+
20
+
21
+ /* Interaction Cues
22
+ ----------------------------------*/
23
+ .ui-state-disabled { cursor: default !important; }
24
+
25
+
26
+ /* Icons
27
+ ----------------------------------*/
28
+
29
+ /* states and images */
30
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
31
+
32
+
33
+ /* Misc visuals
34
+ ----------------------------------*/
35
+
36
+ /* Overlays */
37
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
38
+
39
+
40
+ /*
41
+ * jQuery UI CSS Framework
42
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
43
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
44
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
45
+ */
46
+
47
+
48
+ /* Component containers
49
+ ----------------------------------*/
50
+ .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
51
+ .ui-widget .ui-widget { font-size: 1em; }
52
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
53
+ .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
54
+ .ui-widget-content a { color: #222222; }
55
+ .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
56
+ .ui-widget-header a { color: #222222; }
57
+
58
+ /* Interaction states
59
+ ----------------------------------*/
60
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
61
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
62
+ .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; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
63
+ .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
64
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
65
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
66
+ .ui-widget :active { outline: none; }
67
+
68
+ /* Interaction Cues
69
+ ----------------------------------*/
70
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
71
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
72
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
73
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
74
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
75
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
76
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
77
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
78
+
79
+ /* Icons
80
+ ----------------------------------*/
81
+
82
+ /* states and images */
83
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
84
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
85
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
86
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
87
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
88
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
89
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
90
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
91
+
92
+ /* positioning */
93
+ .ui-icon-carat-1-n { background-position: 0 0; }
94
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
95
+ .ui-icon-carat-1-e { background-position: -32px 0; }
96
+ .ui-icon-carat-1-se { background-position: -48px 0; }
97
+ .ui-icon-carat-1-s { background-position: -64px 0; }
98
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
99
+ .ui-icon-carat-1-w { background-position: -96px 0; }
100
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
101
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
102
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
103
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
104
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
105
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
106
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
107
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
108
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
109
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
110
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
111
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
112
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
113
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
114
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
115
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
116
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
117
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
118
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
119
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
120
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
121
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
122
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
123
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
124
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
125
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
126
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
127
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
128
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
129
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
130
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
131
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
132
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
133
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
134
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
135
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
136
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
137
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
138
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
139
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
140
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
141
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
142
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
143
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
144
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
145
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
146
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
147
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
148
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
149
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
150
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
151
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
152
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
153
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
154
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
155
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
156
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
157
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
158
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
159
+ .ui-icon-extlink { background-position: -32px -80px; }
160
+ .ui-icon-newwin { background-position: -48px -80px; }
161
+ .ui-icon-refresh { background-position: -64px -80px; }
162
+ .ui-icon-shuffle { background-position: -80px -80px; }
163
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
164
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
165
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
166
+ .ui-icon-folder-open { background-position: -16px -96px; }
167
+ .ui-icon-document { background-position: -32px -96px; }
168
+ .ui-icon-document-b { background-position: -48px -96px; }
169
+ .ui-icon-note { background-position: -64px -96px; }
170
+ .ui-icon-mail-closed { background-position: -80px -96px; }
171
+ .ui-icon-mail-open { background-position: -96px -96px; }
172
+ .ui-icon-suitcase { background-position: -112px -96px; }
173
+ .ui-icon-comment { background-position: -128px -96px; }
174
+ .ui-icon-person { background-position: -144px -96px; }
175
+ .ui-icon-print { background-position: -160px -96px; }
176
+ .ui-icon-trash { background-position: -176px -96px; }
177
+ .ui-icon-locked { background-position: -192px -96px; }
178
+ .ui-icon-unlocked { background-position: -208px -96px; }
179
+ .ui-icon-bookmark { background-position: -224px -96px; }
180
+ .ui-icon-tag { background-position: -240px -96px; }
181
+ .ui-icon-home { background-position: 0 -112px; }
182
+ .ui-icon-flag { background-position: -16px -112px; }
183
+ .ui-icon-calendar { background-position: -32px -112px; }
184
+ .ui-icon-cart { background-position: -48px -112px; }
185
+ .ui-icon-pencil { background-position: -64px -112px; }
186
+ .ui-icon-clock { background-position: -80px -112px; }
187
+ .ui-icon-disk { background-position: -96px -112px; }
188
+ .ui-icon-calculator { background-position: -112px -112px; }
189
+ .ui-icon-zoomin { background-position: -128px -112px; }
190
+ .ui-icon-zoomout { background-position: -144px -112px; }
191
+ .ui-icon-search { background-position: -160px -112px; }
192
+ .ui-icon-wrench { background-position: -176px -112px; }
193
+ .ui-icon-gear { background-position: -192px -112px; }
194
+ .ui-icon-heart { background-position: -208px -112px; }
195
+ .ui-icon-star { background-position: -224px -112px; }
196
+ .ui-icon-link { background-position: -240px -112px; }
197
+ .ui-icon-cancel { background-position: 0 -128px; }
198
+ .ui-icon-plus { background-position: -16px -128px; }
199
+ .ui-icon-plusthick { background-position: -32px -128px; }
200
+ .ui-icon-minus { background-position: -48px -128px; }
201
+ .ui-icon-minusthick { background-position: -64px -128px; }
202
+ .ui-icon-close { background-position: -80px -128px; }
203
+ .ui-icon-closethick { background-position: -96px -128px; }
204
+ .ui-icon-key { background-position: -112px -128px; }
205
+ .ui-icon-lightbulb { background-position: -128px -128px; }
206
+ .ui-icon-scissors { background-position: -144px -128px; }
207
+ .ui-icon-clipboard { background-position: -160px -128px; }
208
+ .ui-icon-copy { background-position: -176px -128px; }
209
+ .ui-icon-contact { background-position: -192px -128px; }
210
+ .ui-icon-image { background-position: -208px -128px; }
211
+ .ui-icon-video { background-position: -224px -128px; }
212
+ .ui-icon-script { background-position: -240px -128px; }
213
+ .ui-icon-alert { background-position: 0 -144px; }
214
+ .ui-icon-info { background-position: -16px -144px; }
215
+ .ui-icon-notice { background-position: -32px -144px; }
216
+ .ui-icon-help { background-position: -48px -144px; }
217
+ .ui-icon-check { background-position: -64px -144px; }
218
+ .ui-icon-bullet { background-position: -80px -144px; }
219
+ .ui-icon-radio-off { background-position: -96px -144px; }
220
+ .ui-icon-radio-on { background-position: -112px -144px; }
221
+ .ui-icon-pin-w { background-position: -128px -144px; }
222
+ .ui-icon-pin-s { background-position: -144px -144px; }
223
+ .ui-icon-play { background-position: 0 -160px; }
224
+ .ui-icon-pause { background-position: -16px -160px; }
225
+ .ui-icon-seek-next { background-position: -32px -160px; }
226
+ .ui-icon-seek-prev { background-position: -48px -160px; }
227
+ .ui-icon-seek-end { background-position: -64px -160px; }
228
+ .ui-icon-seek-start { background-position: -80px -160px; }
229
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
230
+ .ui-icon-seek-first { background-position: -80px -160px; }
231
+ .ui-icon-stop { background-position: -96px -160px; }
232
+ .ui-icon-eject { background-position: -112px -160px; }
233
+ .ui-icon-volume-off { background-position: -128px -160px; }
234
+ .ui-icon-volume-on { background-position: -144px -160px; }
235
+ .ui-icon-power { background-position: 0 -176px; }
236
+ .ui-icon-signal-diag { background-position: -16px -176px; }
237
+ .ui-icon-signal { background-position: -32px -176px; }
238
+ .ui-icon-battery-0 { background-position: -48px -176px; }
239
+ .ui-icon-battery-1 { background-position: -64px -176px; }
240
+ .ui-icon-battery-2 { background-position: -80px -176px; }
241
+ .ui-icon-battery-3 { background-position: -96px -176px; }
242
+ .ui-icon-circle-plus { background-position: 0 -192px; }
243
+ .ui-icon-circle-minus { background-position: -16px -192px; }
244
+ .ui-icon-circle-close { background-position: -32px -192px; }
245
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
246
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
247
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
248
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
249
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
250
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
251
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
252
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
253
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
254
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
255
+ .ui-icon-circle-check { background-position: -208px -192px; }
256
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
257
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
258
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
259
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
260
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
261
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
262
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
263
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
264
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
265
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
266
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
267
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
268
+
269
+
270
+ /* Misc visuals
271
+ ----------------------------------*/
272
+
273
+ /* Corner radius */
274
+ .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
275
+ .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
276
+ .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
277
+ .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
278
+ .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
279
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
280
+ .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
281
+ .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
282
+ .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
283
+
284
+ /* Overlays */
285
+ .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
286
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
287
+ ----------------------------------*/
288
+ .ui-resizable { position: relative;}
289
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
290
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
291
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
292
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
293
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
294
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
295
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
296
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
297
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
298
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable
299
+ ----------------------------------*/
300
+ .ui-selectable-helper { border:1px dotted black }
301
+ /* Accordion
302
+ ----------------------------------*/
303
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
304
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
305
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
306
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
307
+ /* IE7-/Win - Fix extra vertical space in lists */
308
+ .ui-accordion a { zoom: 1; }
309
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
310
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
311
+ .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; }
312
+ .ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete
313
+ ----------------------------------*/
314
+ .ui-autocomplete { position: absolute; cursor: default; }
315
+ .ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
316
+
317
+ /* workarounds */
318
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
319
+
320
+ /* Menu
321
+ ----------------------------------*/
322
+ .ui-menu {
323
+ list-style:none;
324
+ padding: 2px;
325
+ margin: 0;
326
+ display:block;
327
+ }
328
+ .ui-menu .ui-menu {
329
+ margin-top: -3px;
330
+ }
331
+ .ui-menu .ui-menu-item {
332
+ margin:0;
333
+ padding: 0;
334
+ zoom: 1;
335
+ float: left;
336
+ clear: left;
337
+ width: 100%;
338
+ }
339
+ .ui-menu .ui-menu-item a {
340
+ text-decoration:none;
341
+ display:block;
342
+ padding:.2em .4em;
343
+ line-height:1.5;
344
+ zoom:1;
345
+ }
346
+ .ui-menu .ui-menu-item a.ui-state-hover,
347
+ .ui-menu .ui-menu-item a.ui-state-active {
348
+ font-weight: normal;
349
+ margin: -1px;
350
+ }
351
+ /* Button
352
+ ----------------------------------*/
353
+
354
+ .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 */
355
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
356
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
357
+ .ui-button-icons-only { width: 3.4em; }
358
+ button.ui-button-icons-only { width: 3.7em; }
359
+
360
+ /*button text element */
361
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
362
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
363
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
364
+ .ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
365
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
366
+ /* no icon support for input elements, provide padding by default */
367
+ input.ui-button { padding: .4em 1em; }
368
+
369
+ /*button icon element(s) */
370
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
371
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
372
+ .ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
373
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
374
+
375
+ /*button sets*/
376
+ .ui-buttonset { margin-right: 7px; }
377
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
378
+
379
+ /* workarounds */
380
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
381
+
382
+
383
+
384
+
385
+
386
+ /* Dialog
387
+ ----------------------------------*/
388
+ .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
389
+ .ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; }
390
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; }
391
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
392
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
393
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
394
+ .ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
395
+ .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; }
396
+ .ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
397
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
398
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
399
+ /* Slider
400
+ ----------------------------------*/
401
+ .ui-slider { position: relative; text-align: left; }
402
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
403
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
404
+
405
+ .ui-slider-horizontal { height: .8em; }
406
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
407
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
408
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
409
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
410
+
411
+ .ui-slider-vertical { width: .8em; height: 100px; }
412
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
413
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
414
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
415
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
416
+ ----------------------------------*/
417
+ .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") */
418
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
419
+ .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; }
420
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
421
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
422
+ .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; }
423
+ .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... */
424
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
425
+ .ui-tabs .ui-tabs-hide { display: none !important; }
426
+ /* Datepicker
427
+ ----------------------------------*/
428
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; }
429
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
430
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
431
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
432
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
433
+ .ui-datepicker .ui-datepicker-next { right:2px; }
434
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
435
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
436
+ .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; }
437
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
438
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
439
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
440
+ .ui-datepicker select.ui-datepicker-month,
441
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
442
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
443
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
444
+ .ui-datepicker td { border: 0; padding: 1px; }
445
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
446
+ .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; }
447
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
448
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
449
+
450
+ /* with multiple calendars */
451
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
452
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
453
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
454
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
455
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
456
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
457
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
458
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
459
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
460
+ .ui-datepicker-row-break { clear:both; width:100%; }
461
+
462
+ /* RTL support */
463
+ .ui-datepicker-rtl { direction: rtl; }
464
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
465
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
466
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
467
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
468
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
469
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
470
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
471
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
472
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
473
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
474
+
475
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
476
+ .ui-datepicker-cover {
477
+ display: none; /*sorry for IE5*/
478
+ display/**/: block; /*sorry for IE5*/
479
+ position: absolute; /*must have*/
480
+ z-index: -1; /*must have*/
481
+ filter: mask(); /*must have*/
482
+ top: -4px; /*must have*/
483
+ left: -4px; /*must have*/
484
+ width: 200px; /*must have*/
485
+ height: 200px; /*must have*/
486
+ }/* Progressbar
487
+ ----------------------------------*/
488
+ .ui-progressbar { height:2em; text-align: left; }
489
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
css/smooth-slider.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "utf-8";
2
+ /* CSS Document
3
+ Author:Tejaswini
4
+ Website:http://www.clickonf5.org
5
+ */
6
+ #smooth_sldr div,#smooth_sldr p,#smooth_sldr li,#smooth_sldr span,#smooth_sldr img,#smooth_sldr h2,#smooth_sldr ul{list-style:none;background:transparent;vertical-align:baseline;}
7
+ #smooth_sldr div{display:block;}
8
+ #smooth_sldr span{display:inline;}
9
+ #smooth_sldr{overflow:hidden;margin: 10px auto;line-height:18px;}
10
+ #smooth_sldr a{text-decoration:none;}
11
+ #smooth_sldr_items{width:100%;}
12
+ #smooth_sldr_body{width:100%;}
13
+ #smooth_sliderc{position:relative;text-align:justify;}
14
+ #smooth_sliderc .smooth_sliderb{position:absolute;/*dont change this value*/left:0;top:0;}
15
+ .smooth_slideri{padding-right:10px;overflow:hidden;line-height:18px;}
16
+ .sldr_title{margin:0;}
17
+ #smooth_sldr_body h2{clear:none;display:block;padding:0px;}
18
+ .slider_item {padding-left:1px;}
19
+ #smooth_sldr_body p.more a{text-decoration:underline;float:right;}
20
+ #smooth_sldr_body p.more a:hover{text-decoration:none;}
21
+ #smooth_sliderc_nav{float:left;width:70%;overflow:hidden;padding:0;margin:2px 0 0 0;}
22
+ a.smooth_sliderc_nav{margin:0 5px 0 0;display:block;float:left;background-repeat:no-repeat;background-position:center;}
23
+ #smooth_sliderc_nav li{float:left;margin:0 5px 0 0;display:block;background-color:transparent;line-height:14px;}
24
+ #smooth_sliderc_nav li a{display:block;padding:1px 5px 1px 5px;outline:none;}
25
+ .sldrbr{line-height:1px;}
26
+ .sldrlink{clear:both;display:block;font-size:8px;float:right;margin-top:-8px;font-family:Verdana, Helvetica, sans-serif;}
27
+ .sldrlink a{color:#333333;}
28
+
css/styles/default.css ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "utf-8";
2
+ /* CSS Document
3
+ Author:Tejaswini
4
+ Website:http://www.clickonf5.org
5
+ */
6
+ #smooth_sldr div,#smooth_sldr p,#smooth_sldr li,#smooth_sldr span,#smooth_sldr img,#smooth_sldr h2,#smooth_sldr ul{list-style:none;background:transparent;vertical-align:baseline;}
7
+ #smooth_sldr div{display:block;}
8
+ #smooth_sldr span{display:inline;}
9
+ #smooth_sldr{overflow:hidden;margin: 10px auto;line-height:18px;}
10
+ #smooth_sldr a{text-decoration:none;}
11
+ #smooth_sldr_items{width:100%;}
12
+ #smooth_sldr_body{width:100%;}
13
+ #smooth_sliderc{position:relative;text-align:justify;}
14
+ #smooth_sliderc .smooth_sliderb{position:absolute;/*dont change this value*/left:0;top:0;}
15
+ .smooth_slideri{padding-right:10px;overflow:hidden;line-height:18px;}
16
+ .sldr_title{margin:0;}
17
+ #smooth_sldr_body h2{clear:none;display:block;padding:0px;}
18
+ .slider_item {padding-left:1px;}
19
+ #smooth_sldr_body p.more a{text-decoration:underline;float:right;}
20
+ #smooth_sldr_body p.more a:hover{text-decoration:none;}
21
+ #smooth_sliderc_nav{float:left;width:70%;overflow:hidden;padding:0;margin:2px 0 0 0;}
22
+ a.smooth_sliderc_nav{margin:0 5px 0 0;display:block;float:left;background-repeat:no-repeat;background-position:center;}
23
+ #smooth_sliderc_nav li{float:left;margin:0 5px 0 0;display:block;background-color:transparent;line-height:14px;}
24
+ #smooth_sliderc_nav li a{display:block;padding:1px 5px 1px 5px;outline:none;}
25
+ .sldrbr{line-height:1px;}
26
+ .sldrlink{display:block;font-size:8px;float:right;font-family:Verdana, Helvetica, sans-serif;}
27
+ .sldrlink a{color:#333333;}
28
+ .sldr_clearlt{display:block;visibility:hidden;clear:left;height:0;content:".";}
29
+ .sldr_clearrt{display:block;visibility:hidden;clear:right;height:0;content:".";}
css/styles/sample.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "utf-8";
2
+ /* CSS Document
3
+ Author:Tejaswini
4
+ Website:http://www.clickonf5.org
5
+ IMPORTANT!! Change the name of this file, to avoid losing your changes in future upgrades
6
+ */
7
+ /*This is the CSS always needed for Smooth Slider, you would not need to change it */
8
+ #smooth_sldr div,#smooth_sldr p,#smooth_sldr li,#smooth_sldr span,#smooth_sldr img,#smooth_sldr h2,#smooth_sldr ul{list-style:none;background:transparent;vertical-align:baseline;}
9
+ #smooth_sldr div{display:block;}
10
+ #smooth_sldr span{display:inline;}
11
+ #smooth_sldr{overflow:hidden;margin: 10px auto;line-height:18px;}
12
+ #smooth_sldr a{text-decoration:none;}
13
+ #smooth_sldr_items{width:100%;}
14
+ #smooth_sldr_body{width:100%;}
15
+ #smooth_sliderc{position:relative;text-align:justify;}
16
+ #smooth_sliderc .smooth_sliderb{position:absolute;/*dont change this value*/left:0;top:0;}
17
+ .smooth_slideri{padding-right:10px;overflow:hidden;line-height:18px;}
18
+ .sldr_title{margin:0;}
19
+ #smooth_sldr_body h2{clear:none;display:block;padding:0px;}
20
+ .slider_item {padding-left:1px;}
21
+ #smooth_sldr_body p.more a{text-decoration:underline;float:right;}
22
+ #smooth_sldr_body p.more a:hover{text-decoration:none;}
23
+ #smooth_sliderc_nav{float:left;width:70%;overflow:hidden;padding:0;margin:2px 0 0 0;}
24
+ a.smooth_sliderc_nav{margin:0 5px 0 0;display:block;float:left;background-repeat:no-repeat;background-position:center;}
25
+ #smooth_sliderc_nav li{float:left;margin:0 5px 0 0;display:block;background-color:transparent;line-height:14px;}
26
+ #smooth_sliderc_nav li a{display:block;padding:1px 5px 1px 5px;outline:none;}
27
+ .sldrbr{line-height:1px;}
28
+ .sldrlink{clear:both;display:block;font-size:8px;float:right;margin-top:-8px;font-family:Verdana, Helvetica, sans-serif;}
29
+ .sldrlink a{color:#333333;}
30
+
31
+ /*This is the CSS that needs to be changed to enter custom settings (Similar to settings panel)
32
+ To create these settings, I would suggest you to make changes to Smooth Slider settings, to get the slider as you wish, then go to the head of the page where the slider is displayed, you would get the below kind of css, you just need to paste it here. Then again you can revert back the Smooth Slider default settings on the settings page. Just a trick :)
33
+ */
34
+ #smooth_sldr{width:495px;height:185px;background-color:#ccc;border:0px solid #999999;} /* Change the width and height of the slider here*/
35
+ #smooth_sldr_items{padding:10px 18px 0px 26px;}
36
+ #smooth_sliderc{width:451px;height:145px;} /* You need to alter these values retaining the difference with slider height and width*/
37
+ .smooth_slideri{width:441px;height:145px;} /* You need to alter these values retaining the difference with slider height and width*/
38
+ .sldr_title{font-family:Verdana, Arial, Helvetica, sans-serif;font-size:18px;font-weight:normal;font-style:normal;color:#43454c;}
39
+ #smooth_sldr_body h2{line-height:17px;font-family:Arial, Arial, Helvetica, sans-serif;font-size:14px;font-weight:bold;font-style:normal;color:#81423f;margin:0px 0 5px 0;}#smooth_sldr_body h2 a{color:#81423f;}
40
+ #smooth_sldr_body span{font-family:Arial, Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;font-style:normal;color:#333333;}
41
+ .smooth_slider_thumbnail{float:left;margin:0px 5px 0 0px;max-height:130px;border:0px solid #000000;}
42
+ #smooth_sldr_body p.more a{color:#81423f;font-family:Arial, Arial, Helvetica, sans-serif;font-size:12px;}
43
+ #smooth_sliderc_nav li{border:1px solid #333333;font-size:12px;font-family:Arial, Arial, Helvetica, sans-serif;}
44
+ #smooth_sliderc_nav li a{color:#81423f;}.sldrlink{padding-right:40px;}
45
+ .sldrlink a{color:#333333;}
images/button_next.png ADDED
Binary file
images/button_prev.png ADDED
Binary file
images/elegantthemes.gif ADDED
Binary file
images/hostgator.gif ADDED
Binary file
images/logo.png ADDED
Binary file
images/slidervilla-728.jpg ADDED
Binary file
images/slidervilla-ad1.jpg ADDED
Binary file
images/smooth_slider_logo.png ADDED
Binary file
includes/smooth-slider-functions.php CHANGED
@@ -217,7 +217,7 @@ add_action( 'wp_ajax_smooth_update_review_me', 'smooth_update_review_me' );
217
  function smooth_update_review_me() {
218
  $smooth_slider=array();
219
  $smooth_slider = get_option('smooth_slider_options');
220
- $reviewme=(isset($_POST['reviewme']))?($_POST['reviewme']):(strtotime("now"));
221
  if($reviewme>0){
222
  $updated_reviewme=$smooth_slider['reviewme']=strtotime("+1 week", $reviewme);
223
  }
217
  function smooth_update_review_me() {
218
  $smooth_slider=array();
219
  $smooth_slider = get_option('smooth_slider_options');
220
+ $reviewme=(isset($_POST['reviewme']))?( sanitize_text_field($_POST['reviewme']) ):(strtotime("now"));
221
  if($reviewme>0){
222
  $updated_reviewme=$smooth_slider['reviewme']=strtotime("+1 week", $reviewme);
223
  }
js/jcycle.js ADDED
@@ -0,0 +1,1543 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Cycle Plugin (with Transition Definitions)
3
+ * Examples and documentation at: http://jquery.malsup.com/cycle/
4
+ * Copyright (c) 2007-2013 M. Alsup
5
+ * Version: 3.0.3 (11-JUL-2013)
6
+ * Dual licensed under the MIT and GPL licenses.
7
+ * http://jquery.malsup.com/license.html
8
+ * Requires: jQuery v1.7.1 or later
9
+ */
10
+ ;(function($, undefined) {
11
+ "use strict";
12
+
13
+ var ver = '3.0.3';
14
+
15
+ function debug(s) {
16
+ if ($.fn.cycle.debug)
17
+ log(s);
18
+ }
19
+ function log() {
20
+ /*global console */
21
+ if (window.console && console.log)
22
+ console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
23
+ }
24
+ $.expr[':'].paused = function(el) {
25
+ return el.cyclePause;
26
+ };
27
+
28
+
29
+ // the options arg can be...
30
+ // a number - indicates an immediate transition should occur to the given slide index
31
+ // a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
32
+ // an object - properties to control the slideshow
33
+ //
34
+ // the arg2 arg can be...
35
+ // the name of an fx (only used in conjunction with a numeric value for 'options')
36
+ // the value true (only used in first arg == 'resume') and indicates
37
+ // that the resume should occur immediately (not wait for next timeout)
38
+
39
+ $.fn.cycle = function(options, arg2) {
40
+ var o = { s: this.selector, c: this.context };
41
+
42
+ // in 1.3+ we can fix mistakes with the ready state
43
+ if (this.length === 0 && options != 'stop') {
44
+ if (!$.isReady && o.s) {
45
+ log('DOM not ready, queuing slideshow');
46
+ $(function() {
47
+ $(o.s,o.c).cycle(options,arg2);
48
+ });
49
+ return this;
50
+ }
51
+ // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
52
+ log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
53
+ return this;
54
+ }
55
+
56
+ // iterate the matched nodeset
57
+ return this.each(function() {
58
+ var opts = handleArguments(this, options, arg2);
59
+ if (opts === false)
60
+ return;
61
+
62
+ opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
63
+
64
+ // stop existing slideshow for this container (if there is one)
65
+ if (this.cycleTimeout)
66
+ clearTimeout(this.cycleTimeout);
67
+ this.cycleTimeout = this.cyclePause = 0;
68
+ this.cycleStop = 0; // issue #108
69
+
70
+ var $cont = $(this);
71
+ var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
72
+ var els = $slides.get();
73
+
74
+ if (els.length < 2) {
75
+ log('terminating; too few slides: ' + els.length);
76
+ return;
77
+ }
78
+
79
+ var opts2 = buildOptions($cont, $slides, els, opts, o);
80
+ if (opts2 === false)
81
+ return;
82
+
83
+ var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards);
84
+
85
+ // if it's an auto slideshow, kick it off
86
+ if (startTime) {
87
+ startTime += (opts2.delay || 0);
88
+ if (startTime < 10)
89
+ startTime = 10;
90
+ debug('first timeout: ' + startTime);
91
+ this.cycleTimeout = setTimeout(function(){go(els,opts2,0,!opts.backwards);}, startTime);
92
+ }
93
+ });
94
+ };
95
+
96
+ function triggerPause(cont, byHover, onPager) {
97
+ var opts = $(cont).data('cycle.opts');
98
+ if (!opts)
99
+ return;
100
+ var paused = !!cont.cyclePause;
101
+ if (paused && opts.paused)
102
+ opts.paused(cont, opts, byHover, onPager);
103
+ else if (!paused && opts.resumed)
104
+ opts.resumed(cont, opts, byHover, onPager);
105
+ }
106
+
107
+ // process the args that were passed to the plugin fn
108
+ function handleArguments(cont, options, arg2) {
109
+ if (cont.cycleStop === undefined)
110
+ cont.cycleStop = 0;
111
+ if (options === undefined || options === null)
112
+ options = {};
113
+ if (options.constructor == String) {
114
+ switch(options) {
115
+ case 'destroy':
116
+ case 'stop':
117
+ var opts = $(cont).data('cycle.opts');
118
+ if (!opts)
119
+ return false;
120
+ cont.cycleStop++; // callbacks look for change
121
+ if (cont.cycleTimeout)
122
+ clearTimeout(cont.cycleTimeout);
123
+ cont.cycleTimeout = 0;
124
+ if (opts.elements)
125
+ $(opts.elements).stop();
126
+ $(cont).removeData('cycle.opts');
127
+ if (options == 'destroy')
128
+ destroy(cont, opts);
129
+ return false;
130
+ case 'toggle':
131
+ cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
132
+ checkInstantResume(cont.cyclePause, arg2, cont);
133
+ triggerPause(cont);
134
+ return false;
135
+ case 'pause':
136
+ cont.cyclePause = 1;
137
+ triggerPause(cont);
138
+ return false;
139
+ case 'resume':
140
+ cont.cyclePause = 0;
141
+ checkInstantResume(false, arg2, cont);
142
+ triggerPause(cont);
143
+ return false;
144
+ case 'prev':
145
+ case 'next':
146
+ opts = $(cont).data('cycle.opts');
147
+ if (!opts) {
148
+ log('options not found, "prev/next" ignored');
149
+ return false;
150
+ }
151
+ if (typeof arg2 == 'string')
152
+ opts.oneTimeFx = arg2;
153
+ $.fn.cycle[options](opts);
154
+ return false;
155
+ default:
156
+ options = { fx: options };
157
+ }
158
+ return options;
159
+ }
160
+ else if (options.constructor == Number) {
161
+ // go to the requested slide
162
+ var num = options;
163
+ options = $(cont).data('cycle.opts');
164
+ if (!options) {
165
+ log('options not found, can not advance slide');
166
+ return false;
167
+ }
168
+ if (num < 0 || num >= options.elements.length) {
169
+ log('invalid slide index: ' + num);
170
+ return false;
171
+ }
172
+ options.nextSlide = num;
173
+ if (cont.cycleTimeout) {
174
+ clearTimeout(cont.cycleTimeout);
175
+ cont.cycleTimeout = 0;
176
+ }
177
+ if (typeof arg2 == 'string')
178
+ options.oneTimeFx = arg2;
179
+ go(options.elements, options, 1, num >= options.currSlide);
180
+ return false;
181
+ }
182
+ return options;
183
+
184
+ function checkInstantResume(isPaused, arg2, cont) {
185
+ if (!isPaused && arg2 === true) { // resume now!
186
+ var options = $(cont).data('cycle.opts');
187
+ if (!options) {
188
+ log('options not found, can not resume');
189
+ return false;
190
+ }
191
+ if (cont.cycleTimeout) {
192
+ clearTimeout(cont.cycleTimeout);
193
+ cont.cycleTimeout = 0;
194
+ }
195
+ go(options.elements, options, 1, !options.backwards);
196
+ }
197
+ }
198
+ }
199
+
200
+ function removeFilter(el, opts) {
201
+ if (!$.support.opacity && opts.cleartype && el.style.filter) {
202
+ try { el.style.removeAttribute('filter'); }
203
+ catch(smother) {} // handle old opera versions
204
+ }
205
+ }
206
+
207
+ // unbind event handlers
208
+ function destroy(cont, opts) {
209
+ if (opts.next)
210
+ $(opts.next).unbind(opts.prevNextEvent);
211
+ if (opts.prev)
212
+ $(opts.prev).unbind(opts.prevNextEvent);
213
+
214
+ if (opts.pager || opts.pagerAnchorBuilder)
215
+ $.each(opts.pagerAnchors || [], function() {
216
+ this.unbind().remove();
217
+ });
218
+ opts.pagerAnchors = null;
219
+ $(cont).unbind('mouseenter.cycle mouseleave.cycle');
220
+ if (opts.destroy) // callback
221
+ opts.destroy(opts);
222
+ }
223
+
224
+ // one-time initialization
225
+ function buildOptions($cont, $slides, els, options, o) {
226
+ var startingSlideSpecified;
227
+ // support metadata plugin (v1.0 and v2.0)
228
+ var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
229
+ var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;
230
+ if (meta)
231
+ opts = $.extend(opts, meta);
232
+ if (opts.autostop)
233
+ opts.countdown = opts.autostopCount || els.length;
234
+
235
+ var cont = $cont[0];
236
+ $cont.data('cycle.opts', opts);
237
+ opts.$cont = $cont;
238
+ opts.stopCount = cont.cycleStop;
239
+ opts.elements = els;
240
+ opts.before = opts.before ? [opts.before] : [];
241
+ opts.after = opts.after ? [opts.after] : [];
242
+
243
+ // push some after callbacks
244
+ if (!$.support.opacity && opts.cleartype)
245
+ opts.after.push(function() { removeFilter(this, opts); });
246
+ if (opts.continuous)
247
+ opts.after.push(function() { go(els,opts,0,!opts.backwards); });
248
+
249
+ saveOriginalOpts(opts);
250
+
251
+ // clearType corrections
252
+ if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
253
+ clearTypeFix($slides);
254
+
255
+ // container requires non-static position so that slides can be position within
256
+ if ($cont.css('position') == 'static')
257
+ $cont.css('position', 'relative');
258
+ if (opts.width)
259
+ $cont.width(opts.width);
260
+ if (opts.height && opts.height != 'auto')
261
+ $cont.height(opts.height);
262
+
263
+ if (opts.startingSlide !== undefined) {
264
+ opts.startingSlide = parseInt(opts.startingSlide,10);
265
+ if (opts.startingSlide >= els.length || opts.startSlide < 0)
266
+ opts.startingSlide = 0; // catch bogus input
267
+ else
268
+ startingSlideSpecified = true;
269
+ }
270
+ else if (opts.backwards)
271
+ opts.startingSlide = els.length - 1;
272
+ else
273
+ opts.startingSlide = 0;
274
+
275
+ // if random, mix up the slide array
276
+ if (opts.random) {
277
+ opts.randomMap = [];
278
+ for (var i = 0; i < els.length; i++)
279
+ opts.randomMap.push(i);
280
+ opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
281
+ if (startingSlideSpecified) {
282
+ // try to find the specified starting slide and if found set start slide index in the map accordingly
283
+ for ( var cnt = 0; cnt < els.length; cnt++ ) {
284
+ if ( opts.startingSlide == opts.randomMap[cnt] ) {
285
+ opts.randomIndex = cnt;
286
+ }
287
+ }
288
+ }
289
+ else {
290
+ opts.randomIndex = 1;
291
+ opts.startingSlide = opts.randomMap[1];
292
+ }
293
+ }
294
+ else if (opts.startingSlide >= els.length)
295
+ opts.startingSlide = 0; // catch bogus input
296
+ opts.currSlide = opts.startingSlide || 0;
297
+ var first = opts.startingSlide;
298
+
299
+ // set position and zIndex on all the slides
300
+ $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
301
+ var z;
302
+ if (opts.backwards)
303
+ z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
304
+ else
305
+ z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
306
+ $(this).css('z-index', z);
307
+ });
308
+
309
+ // make sure first slide is visible
310
+ $(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
311
+ removeFilter(els[first], opts);
312
+
313
+ // stretch slides
314
+ if (opts.fit) {
315
+ if (!opts.aspect) {
316
+ if (opts.width)
317
+ $slides.width(opts.width);
318
+ if (opts.height && opts.height != 'auto')
319
+ $slides.height(opts.height);
320
+ } else {
321
+ $slides.each(function(){
322
+ var $slide = $(this);
323
+ var ratio = (opts.aspect === true) ? $slide.width()/$slide.height() : opts.aspect;
324
+ if( opts.width && $slide.width() != opts.width ) {
325
+ $slide.width( opts.width );
326
+ $slide.height( opts.width / ratio );
327
+ }
328
+
329
+ if( opts.height && $slide.height() < opts.height ) {
330
+ $slide.height( opts.height );
331
+ $slide.width( opts.height * ratio );
332
+ }
333
+ });
334
+ }
335
+ }
336
+
337
+ if (opts.center && ((!opts.fit) || opts.aspect)) {
338
+ $slides.each(function(){
339
+ var $slide = $(this);
340
+ $slide.css({
341
+ "margin-left": opts.width ?
342
+ ((opts.width - $slide.width()) / 2) + "px" :
343
+ 0,
344
+ "margin-top": opts.height ?
345
+ ((opts.height - $slide.height()) / 2) + "px" :
346
+ 0
347
+ });
348
+ });
349
+ }
350
+
351
+ if (opts.center && !opts.fit && !opts.slideResize) {
352
+ $slides.each(function(){
353
+ var $slide = $(this);
354
+ $slide.css({
355
+ "margin-left": opts.width ? ((opts.width - $slide.width()) / 2) + "px" : 0,
356
+ "margin-top": opts.height ? ((opts.height - $slide.height()) / 2) + "px" : 0
357
+ });
358
+ });
359
+ }
360
+
361
+ // stretch container
362
+ var reshape = (opts.containerResize || opts.containerResizeHeight) && $cont.innerHeight() < 1;
363
+ if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
364
+ var maxw = 0, maxh = 0;
365
+ for(var j=0; j < els.length; j++) {
366
+ var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
367
+ if (!w) w = e.offsetWidth || e.width || $e.attr('width');
368
+ if (!h) h = e.offsetHeight || e.height || $e.attr('height');
369
+ maxw = w > maxw ? w : maxw;
370
+ maxh = h > maxh ? h : maxh;
371
+ }
372
+ if (opts.containerResize && maxw > 0 && maxh > 0)
373
+ $cont.css({width:maxw+'px',height:maxh+'px'});
374
+ if (opts.containerResizeHeight && maxh > 0)
375
+ $cont.css({height:maxh+'px'});
376
+ }
377
+
378
+ var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
379
+ if (opts.pause)
380
+ $cont.bind('mouseenter.cycle', function(){
381
+ pauseFlag = true;
382
+ this.cyclePause++;
383
+ triggerPause(cont, true);
384
+ }).bind('mouseleave.cycle', function(){
385
+ if (pauseFlag)
386
+ this.cyclePause--;
387
+ triggerPause(cont, true);
388
+ });
389
+
390
+ if (supportMultiTransitions(opts) === false)
391
+ return false;
392
+
393
+ // apparently a lot of people use image slideshows without height/width attributes on the images.
394
+ // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
395
+ var requeue = false;
396
+ options.requeueAttempts = options.requeueAttempts || 0;
397
+ $slides.each(function() {
398
+ // try to get height/width of each slide
399
+ var $el = $(this);
400
+ this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
401
+ this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
402
+
403
+ if ( $el.is('img') ) {
404
+ var loading = (this.cycleH === 0 && this.cycleW === 0 && !this.complete);
405
+ // don't requeue for images that are still loading but have a valid size
406
+ if (loading) {
407
+ if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
408
+ log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
409
+ setTimeout(function() {$(o.s,o.c).cycle(options);}, opts.requeueTimeout);
410
+ requeue = true;
411
+ return false; // break each loop
412
+ }
413
+ else {
414
+ log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
415
+ }
416
+ }
417
+ }
418
+ return true;
419
+ });
420
+
421
+ if (requeue)
422
+ return false;
423
+
424
+ opts.cssBefore = opts.cssBefore || {};
425
+ opts.cssAfter = opts.cssAfter || {};
426
+ opts.cssFirst = opts.cssFirst || {};
427
+ opts.animIn = opts.animIn || {};
428
+ opts.animOut = opts.animOut || {};
429
+
430
+ $slides.not(':eq('+first+')').css(opts.cssBefore);
431
+ $($slides[first]).css(opts.cssFirst);
432
+
433
+ if (opts.timeout) {
434
+ opts.timeout = parseInt(opts.timeout,10);
435
+ // ensure that timeout and speed settings are sane
436
+ if (opts.speed.constructor == String)
437
+ opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed,10);
438
+ if (!opts.sync)
439
+ opts.speed = opts.speed / 2;
440
+
441
+ var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
442
+ while((opts.timeout - opts.speed) < buffer) // sanitize timeout
443
+ opts.timeout += opts.speed;
444
+ }
445
+ if (opts.easing)
446
+ opts.easeIn = opts.easeOut = opts.easing;
447
+ if (!opts.speedIn)
448
+ opts.speedIn = opts.speed;
449
+ if (!opts.speedOut)
450
+ opts.speedOut = opts.speed;
451
+
452
+ opts.slideCount = els.length;
453
+ opts.currSlide = opts.lastSlide = first;
454
+ if (opts.random) {
455
+ if (++opts.randomIndex == els.length)
456
+ opts.randomIndex = 0;
457
+ opts.nextSlide = opts.randomMap[opts.randomIndex];
458
+ }
459
+ else if (opts.backwards)
460
+ opts.nextSlide = opts.startingSlide === 0 ? (els.length-1) : opts.startingSlide-1;
461
+ else
462
+ opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
463
+
464
+ // run transition init fn
465
+ if (!opts.multiFx) {
466
+ var init = $.fn.cycle.transitions[opts.fx];
467
+ if ($.isFunction(init))
468
+ init($cont, $slides, opts);
469
+ else if (opts.fx != 'custom' && !opts.multiFx) {
470
+ log('unknown transition: ' + opts.fx,'; slideshow terminating');
471
+ return false;
472
+ }
473
+ }
474
+
475
+ // fire artificial events
476
+ var e0 = $slides[first];
477
+ if (!opts.skipInitializationCallbacks) {
478
+ if (opts.before.length)
479
+ opts.before[0].apply(e0, [e0, e0, opts, true]);
480
+ if (opts.after.length)
481
+ opts.after[0].apply(e0, [e0, e0, opts, true]);
482
+ }
483
+ if (opts.next)
484
+ $(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});
485
+ if (opts.prev)
486
+ $(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});
487
+ if (opts.pager || opts.pagerAnchorBuilder)
488
+ buildPager(els,opts);
489
+
490
+ exposeAddSlide(opts, els);
491
+
492
+ return opts;
493
+ }
494
+
495
+ // save off original opts so we can restore after clearing state
496
+ function saveOriginalOpts(opts) {
497
+ opts.original = { before: [], after: [] };
498
+ opts.original.cssBefore = $.extend({}, opts.cssBefore);
499
+ opts.original.cssAfter = $.extend({}, opts.cssAfter);
500
+ opts.original.animIn = $.extend({}, opts.animIn);
501
+ opts.original.animOut = $.extend({}, opts.animOut);
502
+ $.each(opts.before, function() { opts.original.before.push(this); });
503
+ $.each(opts.after, function() { opts.original.after.push(this); });
504
+ }
505
+
506
+ function supportMultiTransitions(opts) {
507
+ var i, tx, txs = $.fn.cycle.transitions;
508
+ // look for multiple effects
509
+ if (opts.fx.indexOf(',') > 0) {
510
+ opts.multiFx = true;
511
+ opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
512
+ // discard any bogus effect names
513
+ for (i=0; i < opts.fxs.length; i++) {
514
+ var fx = opts.fxs[i];
515
+ tx = txs[fx];
516
+ if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
517
+ log('discarding unknown transition: ',fx);
518
+ opts.fxs.splice(i,1);
519
+ i--;
520
+ }
521
+ }
522
+ // if we have an empty list then we threw everything away!
523
+ if (!opts.fxs.length) {
524
+ log('No valid transitions named; slideshow terminating.');
525
+ return false;
526
+ }
527
+ }
528
+ else if (opts.fx == 'all') { // auto-gen the list of transitions
529
+ opts.multiFx = true;
530
+ opts.fxs = [];
531
+ for (var p in txs) {
532
+ if (txs.hasOwnProperty(p)) {
533
+ tx = txs[p];
534
+ if (txs.hasOwnProperty(p) && $.isFunction(tx))
535
+ opts.fxs.push(p);
536
+ }
537
+ }
538
+ }
539
+ if (opts.multiFx && opts.randomizeEffects) {
540
+ // munge the fxs array to make effect selection random
541
+ var r1 = Math.floor(Math.random() * 20) + 30;
542
+ for (i = 0; i < r1; i++) {
543
+ var r2 = Math.floor(Math.random() * opts.fxs.length);
544
+ opts.fxs.push(opts.fxs.splice(r2,1)[0]);
545
+ }
546
+ debug('randomized fx sequence: ',opts.fxs);
547
+ }
548
+ return true;
549
+ }
550
+
551
+ // provide a mechanism for adding slides after the slideshow has started
552
+ function exposeAddSlide(opts, els) {
553
+ opts.addSlide = function(newSlide, prepend) {
554
+ var $s = $(newSlide), s = $s[0];
555
+ if (!opts.autostopCount)
556
+ opts.countdown++;
557
+ els[prepend?'unshift':'push'](s);
558
+ if (opts.els)
559
+ opts.els[prepend?'unshift':'push'](s); // shuffle needs this
560
+ opts.slideCount = els.length;
561
+
562
+ // add the slide to the random map and resort
563
+ if (opts.random) {
564
+ opts.randomMap.push(opts.slideCount-1);
565
+ opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
566
+ }
567
+
568
+ $s.css('position','absolute');
569
+ $s[prepend?'prependTo':'appendTo'](opts.$cont);
570
+
571
+ if (prepend) {
572
+ opts.currSlide++;
573
+ opts.nextSlide++;
574
+ }
575
+
576
+ if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
577
+ clearTypeFix($s);
578
+
579
+ if (opts.fit && opts.width)
580
+ $s.width(opts.width);
581
+ if (opts.fit && opts.height && opts.height != 'auto')
582
+ $s.height(opts.height);
583
+ s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
584
+ s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
585
+
586
+ $s.css(opts.cssBefore);
587
+
588
+ if (opts.pager || opts.pagerAnchorBuilder)
589
+ $.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
590
+
591
+ if ($.isFunction(opts.onAddSlide))
592
+ opts.onAddSlide($s);
593
+ else
594
+ $s.hide(); // default behavior
595
+ };
596
+ }
597
+
598
+ // reset internal state; we do this on every pass in order to support multiple effects
599
+ $.fn.cycle.resetState = function(opts, fx) {
600
+ fx = fx || opts.fx;
601
+ opts.before = []; opts.after = [];
602
+ opts.cssBefore = $.extend({}, opts.original.cssBefore);
603
+ opts.cssAfter = $.extend({}, opts.original.cssAfter);
604
+ opts.animIn = $.extend({}, opts.original.animIn);
605
+ opts.animOut = $.extend({}, opts.original.animOut);
606
+ opts.fxFn = null;
607
+ $.each(opts.original.before, function() { opts.before.push(this); });
608
+ $.each(opts.original.after, function() { opts.after.push(this); });
609
+
610
+ // re-init
611
+ var init = $.fn.cycle.transitions[fx];
612
+ if ($.isFunction(init))
613
+ init(opts.$cont, $(opts.elements), opts);
614
+ };
615
+
616
+ // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
617
+ function go(els, opts, manual, fwd) {
618
+ var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
619
+
620
+ // opts.busy is true if we're in the middle of an animation
621
+ if (manual && opts.busy && opts.manualTrump) {
622
+ // let manual transitions requests trump active ones
623
+ debug('manualTrump in go(), stopping active transition');
624
+ $(els).stop(true,true);
625
+ opts.busy = 0;
626
+ clearTimeout(p.cycleTimeout);
627
+ }
628
+
629
+ // don't begin another timeout-based transition if there is one active
630
+ if (opts.busy) {
631
+ debug('transition active, ignoring new tx request');
632
+ return;
633
+ }
634
+
635
+
636
+ // stop cycling if we have an outstanding stop request
637
+ if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
638
+ return;
639
+
640
+ // check to see if we should stop cycling based on autostop options
641
+ if (!manual && !p.cyclePause && !opts.bounce &&
642
+ ((opts.autostop && (--opts.countdown <= 0)) ||
643
+ (opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
644
+ if (opts.end)
645
+ opts.end(opts);
646
+ return;
647
+ }
648
+
649
+ // if slideshow is paused, only transition on a manual trigger
650
+ var changed = false;
651
+ if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
652
+ changed = true;
653
+ var fx = opts.fx;
654
+ // keep trying to get the slide size if we don't have it yet
655
+ curr.cycleH = curr.cycleH || $(curr).height();
656
+ curr.cycleW = curr.cycleW || $(curr).width();
657
+ next.cycleH = next.cycleH || $(next).height();
658
+ next.cycleW = next.cycleW || $(next).width();
659
+
660
+ // support multiple transition types
661
+ if (opts.multiFx) {
662
+ if (fwd && (opts.lastFx === undefined || ++opts.lastFx >= opts.fxs.length))
663
+ opts.lastFx = 0;
664
+ else if (!fwd && (opts.lastFx === undefined || --opts.lastFx < 0))
665
+ opts.lastFx = opts.fxs.length - 1;
666
+ fx = opts.fxs[opts.lastFx];
667
+ }
668
+
669
+ // one-time fx overrides apply to: $('div').cycle(3,'zoom');
670
+ if (opts.oneTimeFx) {
671
+ fx = opts.oneTimeFx;
672
+ opts.oneTimeFx = null;
673
+ }
674
+
675
+ $.fn.cycle.resetState(opts, fx);
676
+
677
+ // run the before callbacks
678
+ if (opts.before.length)
679
+ $.each(opts.before, function(i,o) {
680
+ if (p.cycleStop != opts.stopCount) return;
681
+ o.apply(next, [curr, next, opts, fwd]);
682
+ });
683
+
684
+ // stage the after callacks
685
+ var after = function() {
686
+ opts.busy = 0;
687
+ $.each(opts.after, function(i,o) {
688
+ if (p.cycleStop != opts.stopCount) return;
689
+ o.apply(next, [curr, next, opts, fwd]);
690
+ });
691
+ if (!p.cycleStop) {
692
+ // queue next transition
693
+ queueNext();
694
+ }
695
+ };
696
+
697
+ debug('tx firing('+fx+'); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
698
+
699
+ // get ready to perform the transition
700
+ opts.busy = 1;
701
+ if (opts.fxFn) // fx function provided?
702
+ opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
703
+ else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
704
+ $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
705
+ else
706
+ $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
707
+ }
708
+ else {
709
+ queueNext();
710
+ }
711
+
712
+ if (changed || opts.nextSlide == opts.currSlide) {
713
+ // calculate the next slide
714
+ var roll;
715
+ opts.lastSlide = opts.currSlide;
716
+ if (opts.random) {
717
+ opts.currSlide = opts.nextSlide;
718
+ if (++opts.randomIndex == els.length) {
719
+ opts.randomIndex = 0;
720
+ opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
721
+ }
722
+ opts.nextSlide = opts.randomMap[opts.randomIndex];
723
+ if (opts.nextSlide == opts.currSlide)
724
+ opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
725
+ }
726
+ else if (opts.backwards) {
727
+ roll = (opts.nextSlide - 1) < 0;
728
+ if (roll && opts.bounce) {
729
+ opts.backwards = !opts.backwards;
730
+ opts.nextSlide = 1;
731
+ opts.currSlide = 0;
732
+ }
733
+ else {
734
+ opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
735
+ opts.currSlide = roll ? 0 : opts.nextSlide+1;
736
+ }
737
+ }
738
+ else { // sequence
739
+ roll = (opts.nextSlide + 1) == els.length;
740
+ if (roll && opts.bounce) {
741
+ opts.backwards = !opts.backwards;
742
+ opts.nextSlide = els.length-2;
743
+ opts.currSlide = els.length-1;
744
+ }
745
+ else {
746
+ opts.nextSlide = roll ? 0 : opts.nextSlide+1;
747
+ opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
748
+ }
749
+ }
750
+ }
751
+ if (changed && opts.pager)
752
+ opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
753
+
754
+ function queueNext() {
755
+ // stage the next transition
756
+ var ms = 0, timeout = opts.timeout;
757
+ if (opts.timeout && !opts.continuous) {
758
+ ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
759
+ if (opts.fx == 'shuffle')
760
+ ms -= opts.speedOut;
761
+ }
762
+ else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
763
+ ms = 10;
764
+ if (ms > 0)
765
+ p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, !opts.backwards); }, ms);
766
+ }
767
+ }
768
+
769
+ // invoked after transition
770
+ $.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
771
+ $(pager).each(function() {
772
+ $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
773
+ });
774
+ };
775
+
776
+ // calculate timeout value for current transition
777
+ function getTimeout(curr, next, opts, fwd) {
778
+ if (opts.timeoutFn) {
779
+ // call user provided calc fn
780
+ var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
781
+ while (opts.fx != 'none' && (t - opts.speed) < 250) // sanitize timeout
782
+ t += opts.speed;
783
+ debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
784
+ if (t !== false)
785
+ return t;
786
+ }
787
+ return opts.timeout;
788
+ }
789
+
790
+ // expose next/prev function, caller must pass in state
791
+ $.fn.cycle.next = function(opts) { advance(opts,1); };
792
+ $.fn.cycle.prev = function(opts) { advance(opts,0);};
793
+
794
+ // advance slide forward or back
795
+ function advance(opts, moveForward) {
796
+ var val = moveForward ? 1 : -1;
797
+ var els = opts.elements;
798
+ var p = opts.$cont[0], timeout = p.cycleTimeout;
799
+ if (timeout) {
800
+ clearTimeout(timeout);
801
+ p.cycleTimeout = 0;
802
+ }
803
+ if (opts.random && val < 0) {
804
+ // move back to the previously display slide
805
+ opts.randomIndex--;
806
+ if (--opts.randomIndex == -2)
807
+ opts.randomIndex = els.length-2;
808
+ else if (opts.randomIndex == -1)
809
+ opts.randomIndex = els.length-1;
810
+ opts.nextSlide = opts.randomMap[opts.randomIndex];
811
+ }
812
+ else if (opts.random) {
813
+ opts.nextSlide = opts.randomMap[opts.randomIndex];
814
+ }
815
+ else {
816
+ opts.nextSlide = opts.currSlide + val;
817
+ if (opts.nextSlide < 0) {
818
+ if (opts.nowrap) return false;
819
+ opts.nextSlide = els.length - 1;
820
+ }
821
+ else if (opts.nextSlide >= els.length) {
822
+ if (opts.nowrap) return false;
823
+ opts.nextSlide = 0;
824
+ }
825
+ }
826
+
827
+ var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
828
+ if ($.isFunction(cb))
829
+ cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
830
+ go(els, opts, 1, moveForward);
831
+ return false;
832
+ }
833
+
834
+ function buildPager(els, opts) {
835
+ var $p = $(opts.pager);
836
+ $.each(els, function(i,o) {
837
+ $.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
838
+ });
839
+ opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
840
+ }
841
+
842
+ $.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
843
+ var a;
844
+ if ($.isFunction(opts.pagerAnchorBuilder)) {
845
+ a = opts.pagerAnchorBuilder(i,el);
846
+ debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
847
+ }
848
+ else
849
+ a = '<a href="#">'+(i+1)+'</a>';
850
+
851
+ if (!a)
852
+ return;
853
+ var $a = $(a);
854
+ // don't reparent if anchor is in the dom
855
+ if ($a.parents('body').length === 0) {
856
+ var arr = [];
857
+ if ($p.length > 1) {
858
+ $p.each(function() {
859
+ var $clone = $a.clone(true);
860
+ $(this).append($clone);
861
+ arr.push($clone[0]);
862
+ });
863
+ $a = $(arr);
864
+ }
865
+ else {
866
+ $a.appendTo($p);
867
+ }
868
+ }
869
+
870
+ opts.pagerAnchors = opts.pagerAnchors || [];
871
+ opts.pagerAnchors.push($a);
872
+
873
+ var pagerFn = function(e) {
874
+ e.preventDefault();
875
+ opts.nextSlide = i;
876
+ var p = opts.$cont[0], timeout = p.cycleTimeout;
877
+ if (timeout) {
878
+ clearTimeout(timeout);
879
+ p.cycleTimeout = 0;
880
+ }
881
+ var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
882
+ if ($.isFunction(cb))
883
+ cb(opts.nextSlide, els[opts.nextSlide]);
884
+ go(els,opts,1,opts.currSlide < i); // trigger the trans
885
+ // return false; // <== allow bubble
886
+ };
887
+
888
+ if ( /mouseenter|mouseover/i.test(opts.pagerEvent) ) {
889
+ $a.hover(pagerFn, function(){/* no-op */} );
890
+ }
891
+ else {
892
+ $a.bind(opts.pagerEvent, pagerFn);
893
+ }
894
+
895
+ if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
896
+ $a.bind('click.cycle', function(){return false;}); // suppress click
897
+
898
+ var cont = opts.$cont[0];
899
+ var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
900
+ if (opts.pauseOnPagerHover) {
901
+ $a.hover(
902
+ function() {
903
+ pauseFlag = true;
904
+ cont.cyclePause++;
905
+ triggerPause(cont,true,true);
906
+ }, function() {
907
+ if (pauseFlag)
908
+ cont.cyclePause--;
909
+ triggerPause(cont,true,true);
910
+ }
911
+ );
912
+ }
913
+ };
914
+
915
+ // helper fn to calculate the number of slides between the current and the next
916
+ $.fn.cycle.hopsFromLast = function(opts, fwd) {
917
+ var hops, l = opts.lastSlide, c = opts.currSlide;
918
+ if (fwd)
919
+ hops = c > l ? c - l : opts.slideCount - l;
920
+ else
921
+ hops = c < l ? l - c : l + opts.slideCount - c;
922
+ return hops;
923
+ };
924
+
925
+ // fix clearType problems in ie6 by setting an explicit bg color
926
+ // (otherwise text slides look horrible during a fade transition)
927
+ function clearTypeFix($slides) {
928
+ debug('applying clearType background-color hack');
929
+ function hex(s) {
930
+ s = parseInt(s,10).toString(16);
931
+ return s.length < 2 ? '0'+s : s;
932
+ }
933
+ function getBg(e) {
934
+ for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
935
+ var v = $.css(e,'background-color');
936
+ if (v && v.indexOf('rgb') >= 0 ) {
937
+ var rgb = v.match(/\d+/g);
938
+ return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
939
+ }
940
+ if (v && v != 'transparent')
941
+ return v;
942
+ }
943
+ return '#ffffff';
944
+ }
945
+ $slides.each(function() { $(this).css('background-color', getBg(this)); });
946
+ }
947
+
948
+ // reset common props before the next transition
949
+ $.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
950
+ $(opts.elements).not(curr).hide();
951
+ if (typeof opts.cssBefore.opacity == 'undefined')
952
+ opts.cssBefore.opacity = 1;
953
+ opts.cssBefore.display = 'block';
954
+ if (opts.slideResize && w !== false && next.cycleW > 0)
955
+ opts.cssBefore.width = next.cycleW;
956
+ if (opts.slideResize && h !== false && next.cycleH > 0)
957
+ opts.cssBefore.height = next.cycleH;
958
+ opts.cssAfter = opts.cssAfter || {};
959
+ opts.cssAfter.display = 'none';
960
+ $(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
961
+ $(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
962
+ };
963
+
964
+ // the actual fn for effecting a transition
965
+ $.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
966
+ var $l = $(curr), $n = $(next);
967
+ var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut, animInDelay = opts.animInDelay, animOutDelay = opts.animOutDelay;
968
+ $n.css(opts.cssBefore);
969
+ if (speedOverride) {
970
+ if (typeof speedOverride == 'number')
971
+ speedIn = speedOut = speedOverride;
972
+ else
973
+ speedIn = speedOut = 1;
974
+ easeIn = easeOut = null;
975
+ }
976
+ var fn = function() {
977
+ $n.delay(animInDelay).animate(opts.animIn, speedIn, easeIn, function() {
978
+ cb();
979
+ });
980
+ };
981
+ $l.delay(animOutDelay).animate(opts.animOut, speedOut, easeOut, function() {
982
+ $l.css(opts.cssAfter);
983
+ if (!opts.sync)
984
+ fn();
985
+ });
986
+ if (opts.sync) fn();
987
+ };
988
+
989
+ // transition definitions - only fade is defined here, transition pack defines the rest
990
+ $.fn.cycle.transitions = {
991
+ fade: function($cont, $slides, opts) {
992
+ $slides.not(':eq('+opts.currSlide+')').css('opacity',0);
993
+ opts.before.push(function(curr,next,opts) {
994
+ $.fn.cycle.commonReset(curr,next,opts);
995
+ opts.cssBefore.opacity = 0;
996
+ });
997
+ opts.animIn = { opacity: 1 };
998
+ opts.animOut = { opacity: 0 };
999
+ opts.cssBefore = { top: 0, left: 0 };
1000
+ }
1001
+ };
1002
+
1003
+ $.fn.cycle.ver = function() { return ver; };
1004
+
1005
+ // override these globally if you like (they are all optional)
1006
+ $.fn.cycle.defaults = {
1007
+ activePagerClass: 'activeSlide', // class name used for the active pager link
1008
+ after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
1009
+ allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
1010
+ animIn: null, // properties that define how the slide animates in
1011
+ animInDelay: 0, // allows delay before next slide transitions in
1012
+ animOut: null, // properties that define how the slide animates out
1013
+ animOutDelay: 0, // allows delay before current slide transitions out
1014
+ aspect: false, // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option)
1015
+ autostop: 0, // true to end slideshow after X transitions (where X == slide count)
1016
+ autostopCount: 0, // number of transitions (optionally used with autostop to define X)
1017
+ backwards: false, // true to start slideshow at last slide and move backwards through the stack
1018
+ before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
1019
+ center: null, // set to true to have cycle add top/left margin to each slide (use with width and height options)
1020
+ cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE)
1021
+ cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
1022
+ containerResize: 1, // resize container to fit largest slide
1023
+ containerResizeHeight: 0, // resize containers height to fit the largest slide but leave the width dynamic
1024
+ continuous: 0, // true to start next transition immediately after current one completes
1025
+ cssAfter: null, // properties that defined the state of the slide after transitioning out
1026
+ cssBefore: null, // properties that define the initial state of the slide before transitioning in
1027
+ delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
1028
+ easeIn: null, // easing for "in" transition
1029
+ easeOut: null, // easing for "out" transition
1030
+ easing: null, // easing method for both in and out transitions
1031
+ end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
1032
+ fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
1033
+ fit: 0, // force slides to fit container
1034
+ fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
1035
+ fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
1036
+ height: 'auto', // container height (if the 'fit' option is true, the slides will be set to this height as well)
1037
+ manualTrump: true, // causes manual transition to stop an active transition instead of being ignored
1038
+ metaAttr: 'cycle', // data- attribute that holds the option data for the slideshow
1039
+ next: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide
1040
+ nowrap: 0, // true to prevent slideshow from wrapping
1041
+ onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
1042
+ onPrevNextEvent: null, // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
1043
+ pager: null, // element, jQuery object, or jQuery selector string for the element to use as pager container
1044
+ pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement)
1045
+ pagerEvent: 'click.cycle', // name of event which drives the pager navigation
1046
+ pause: 0, // true to enable "pause on hover"
1047
+ pauseOnPagerHover: 0, // true to pause when hovering over pager link
1048
+ prev: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide
1049
+ prevNextEvent: 'click.cycle',// event which drives the manual transition to the previous or next slide
1050
+ random: 0, // true for random, false for sequence (not applicable to shuffle fx)
1051
+ randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random
1052
+ requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
1053
+ requeueTimeout: 250, // ms delay for requeue
1054
+ rev: 0, // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle)
1055
+ shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 }
1056
+ skipInitializationCallbacks: false, // set to true to disable the first before/after callback that occurs prior to any transition
1057
+ slideExpr: null, // expression for selecting slides (if something other than all children is required)
1058
+ slideResize: 1, // force slide width/height to fixed size before every transition
1059
+ speed: 1000, // speed of the transition (any valid fx speed value)
1060
+ speedIn: null, // speed of the 'in' transition
1061
+ speedOut: null, // speed of the 'out' transition
1062
+ startingSlide: undefined,// zero-based index of the first slide to be displayed
1063
+ sync: 1, // true if in/out transitions should occur simultaneously
1064
+ timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
1065
+ timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)
1066
+ updateActivePagerLink: null,// callback fn invoked to update the active pager link (adds/removes activePagerClass style)
1067
+ width: null // container width (if the 'fit' option is true, the slides will be set to this width as well)
1068
+ };
1069
+
1070
+ })(jQuery);
1071
+
1072
+
1073
+ /*!
1074
+ * jQuery Cycle Plugin Transition Definitions
1075
+ * This script is a plugin for the jQuery Cycle Plugin
1076
+ * Examples and documentation at: http://malsup.com/jquery/cycle/
1077
+ * Copyright (c) 2007-2010 M. Alsup
1078
+ * Version: 2.73
1079
+ * Dual licensed under the MIT and GPL licenses:
1080
+ * http://www.opensource.org/licenses/mit-license.php
1081
+ * http://www.gnu.org/licenses/gpl.html
1082
+ */
1083
+ (function($) {
1084
+ "use strict";
1085
+
1086
+ //
1087
+ // These functions define slide initialization and properties for the named
1088
+ // transitions. To save file size feel free to remove any of these that you
1089
+ // don't need.
1090
+ //
1091
+ $.fn.cycle.transitions.none = function($cont, $slides, opts) {
1092
+ opts.fxFn = function(curr,next,opts,after){
1093
+ $(next).show();
1094
+ $(curr).hide();
1095
+ after();
1096
+ };
1097
+ };
1098
+
1099
+ // not a cross-fade, fadeout only fades out the top slide
1100
+ $.fn.cycle.transitions.fadeout = function($cont, $slides, opts) {
1101
+ $slides.not(':eq('+opts.currSlide+')').css({ display: 'block', 'opacity': 1 });
1102
+ opts.before.push(function(curr,next,opts,w,h,rev) {
1103
+ $(curr).css('zIndex',opts.slideCount + (rev !== true ? 1 : 0));
1104
+ $(next).css('zIndex',opts.slideCount + (rev !== true ? 0 : 1));
1105
+ });
1106
+ opts.animIn.opacity = 1;
1107
+ opts.animOut.opacity = 0;
1108
+ opts.cssBefore.opacity = 1;
1109
+ opts.cssBefore.display = 'block';
1110
+ opts.cssAfter.zIndex = 0;
1111
+ };
1112
+
1113
+ // scrollUp/Down/Left/Right
1114
+ $.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
1115
+ $cont.css('overflow','hidden');
1116
+ opts.before.push($.fn.cycle.commonReset);
1117
+ var h = $cont.height();
1118
+ opts.cssBefore.top = h;
1119
+ opts.cssBefore.left = 0;
1120
+ opts.cssFirst.top = 0;
1121
+ opts.animIn.top = 0;
1122
+ opts.animOut.top = -h;
1123
+ };
1124
+ $.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
1125
+ $cont.css('overflow','hidden');
1126
+ opts.before.push($.fn.cycle.commonReset);
1127
+ var h = $cont.height();
1128
+ opts.cssFirst.top = 0;
1129
+ opts.cssBefore.top = -h;
1130
+ opts.cssBefore.left = 0;
1131
+ opts.animIn.top = 0;
1132
+ opts.animOut.top = h;
1133
+ };
1134
+ $.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
1135
+ $cont.css('overflow','hidden');
1136
+ opts.before.push($.fn.cycle.commonReset);
1137
+ var w = $cont.width();
1138
+ opts.cssFirst.left = 0;
1139
+ opts.cssBefore.left = w;
1140
+ opts.cssBefore.top = 0;
1141
+ opts.animIn.left = 0;
1142
+ opts.animOut.left = 0-w;
1143
+ };
1144
+ $.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
1145
+ $cont.css('overflow','hidden');
1146
+ opts.before.push($.fn.cycle.commonReset);
1147
+ var w = $cont.width();
1148
+ opts.cssFirst.left = 0;
1149
+ opts.cssBefore.left = -w;
1150
+ opts.cssBefore.top = 0;
1151
+ opts.animIn.left = 0;
1152
+ opts.animOut.left = w;
1153
+ };
1154
+ $.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
1155
+ $cont.css('overflow','hidden').width();
1156
+ opts.before.push(function(curr, next, opts, fwd) {
1157
+ if (opts.rev)
1158
+ fwd = !fwd;
1159
+ $.fn.cycle.commonReset(curr,next,opts);
1160
+ opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
1161
+ opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
1162
+ });
1163
+ opts.cssFirst.left = 0;
1164
+ opts.cssBefore.top = 0;
1165
+ opts.animIn.left = 0;
1166
+ opts.animOut.top = 0;
1167
+ };
1168
+ $.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
1169
+ $cont.css('overflow','hidden');
1170
+ opts.before.push(function(curr, next, opts, fwd) {
1171
+ if (opts.rev)
1172
+ fwd = !fwd;
1173
+ $.fn.cycle.commonReset(curr,next,opts);
1174
+ opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
1175
+ opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
1176
+ });
1177
+ opts.cssFirst.top = 0;
1178
+ opts.cssBefore.left = 0;
1179
+ opts.animIn.top = 0;
1180
+ opts.animOut.left = 0;
1181
+ };
1182
+
1183
+ // slideX/slideY
1184
+ $.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
1185
+ opts.before.push(function(curr, next, opts) {
1186
+ $(opts.elements).not(curr).hide();
1187
+ $.fn.cycle.commonReset(curr,next,opts,false,true);
1188
+ opts.animIn.width = next.cycleW;
1189
+ });
1190
+ opts.cssBefore.left = 0;
1191
+ opts.cssBefore.top = 0;
1192
+ opts.cssBefore.width = 0;
1193
+ opts.animIn.width = 'show';
1194
+ opts.animOut.width = 0;
1195
+ };
1196
+ $.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
1197
+ opts.before.push(function(curr, next, opts) {
1198
+ $(opts.elements).not(curr).hide();
1199
+ $.fn.cycle.commonReset(curr,next,opts,true,false);
1200
+ opts.animIn.height = next.cycleH;
1201
+ });
1202
+ opts.cssBefore.left = 0;
1203
+ opts.cssBefore.top = 0;
1204
+ opts.cssBefore.height = 0;
1205
+ opts.animIn.height = 'show';
1206
+ opts.animOut.height = 0;
1207
+ };
1208
+
1209
+ // shuffle
1210
+ $.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
1211
+ var i, w = $cont.css('overflow', 'visible').width();
1212
+ $slides.css({left: 0, top: 0});
1213
+ opts.before.push(function(curr,next,opts) {
1214
+ $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1215
+ });
1216
+ // only adjust speed once!
1217
+ if (!opts.speedAdjusted) {
1218
+ opts.speed = opts.speed / 2; // shuffle has 2 transitions
1219
+ opts.speedAdjusted = true;
1220
+ }
1221
+ opts.random = 0;
1222
+ opts.shuffle = opts.shuffle || {left:-w, top:15};
1223
+ opts.els = [];
1224
+ for (i=0; i < $slides.length; i++)
1225
+ opts.els.push($slides[i]);
1226
+
1227
+ for (i=0; i < opts.currSlide; i++)
1228
+ opts.els.push(opts.els.shift());
1229
+
1230
+ // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
1231
+ opts.fxFn = function(curr, next, opts, cb, fwd) {
1232
+ if (opts.rev)
1233
+ fwd = !fwd;
1234
+ var $el = fwd ? $(curr) : $(next);
1235
+ $(next).css(opts.cssBefore);
1236
+ var count = opts.slideCount;
1237
+ $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
1238
+ var hops = $.fn.cycle.hopsFromLast(opts, fwd);
1239
+ for (var k=0; k < hops; k++) {
1240
+ if (fwd)
1241
+ opts.els.push(opts.els.shift());
1242
+ else
1243
+ opts.els.unshift(opts.els.pop());
1244
+ }
1245
+ if (fwd) {
1246
+ for (var i=0, len=opts.els.length; i < len; i++)
1247
+ $(opts.els[i]).css('z-index', len-i+count);
1248
+ }
1249
+ else {
1250
+ var z = $(curr).css('z-index');
1251
+ $el.css('z-index', parseInt(z,10)+1+count);
1252
+ }
1253
+ $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
1254
+ $(fwd ? this : curr).hide();
1255
+ if (cb) cb();
1256
+ });
1257
+ });
1258
+ };
1259
+ $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
1260
+ };
1261
+
1262
+ // turnUp/Down/Left/Right
1263
+ $.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
1264
+ opts.before.push(function(curr, next, opts) {
1265
+ $.fn.cycle.commonReset(curr,next,opts,true,false);
1266
+ opts.cssBefore.top = next.cycleH;
1267
+ opts.animIn.height = next.cycleH;
1268
+ opts.animOut.width = next.cycleW;
1269
+ });
1270
+ opts.cssFirst.top = 0;
1271
+ opts.cssBefore.left = 0;
1272
+ opts.cssBefore.height = 0;
1273
+ opts.animIn.top = 0;
1274
+ opts.animOut.height = 0;
1275
+ };
1276
+ $.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
1277
+ opts.before.push(function(curr, next, opts) {
1278
+ $.fn.cycle.commonReset(curr,next,opts,true,false);
1279
+ opts.animIn.height = next.cycleH;
1280
+ opts.animOut.top = curr.cycleH;
1281
+ });
1282
+ opts.cssFirst.top = 0;
1283
+ opts.cssBefore.left = 0;
1284
+ opts.cssBefore.top = 0;
1285
+ opts.cssBefore.height = 0;
1286
+ opts.animOut.height = 0;
1287
+ };
1288
+ $.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
1289
+ opts.before.push(function(curr, next, opts) {
1290
+ $.fn.cycle.commonReset(curr,next,opts,false,true);
1291
+ opts.cssBefore.left = next.cycleW;
1292
+ opts.animIn.width = next.cycleW;
1293
+ });
1294
+ opts.cssBefore.top = 0;
1295
+ opts.cssBefore.width = 0;
1296
+ opts.animIn.left = 0;
1297
+ opts.animOut.width = 0;
1298
+ };
1299
+ $.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
1300
+ opts.before.push(function(curr, next, opts) {
1301
+ $.fn.cycle.commonReset(curr,next,opts,false,true);
1302
+ opts.animIn.width = next.cycleW;
1303
+ opts.animOut.left = curr.cycleW;
1304
+ });
1305
+ $.extend(opts.cssBefore, { top: 0, left: 0, width: 0 });
1306
+ opts.animIn.left = 0;
1307
+ opts.animOut.width = 0;
1308
+ };
1309
+
1310
+ // zoom
1311
+ $.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
1312
+ opts.before.push(function(curr, next, opts) {
1313
+ $.fn.cycle.commonReset(curr,next,opts,false,false,true);
1314
+ opts.cssBefore.top = next.cycleH/2;
1315
+ opts.cssBefore.left = next.cycleW/2;
1316
+ $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
1317
+ $.extend(opts.animOut, { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 });
1318
+ });
1319
+ opts.cssFirst.top = 0;
1320
+ opts.cssFirst.left = 0;
1321
+ opts.cssBefore.width = 0;
1322
+ opts.cssBefore.height = 0;
1323
+ };
1324
+
1325
+ // fadeZoom
1326
+ $.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
1327
+ opts.before.push(function(curr, next, opts) {
1328
+ $.fn.cycle.commonReset(curr,next,opts,false,false);
1329
+ opts.cssBefore.left = next.cycleW/2;
1330
+ opts.cssBefore.top = next.cycleH/2;
1331
+ $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
1332
+ });
1333
+ opts.cssBefore.width = 0;
1334
+ opts.cssBefore.height = 0;
1335
+ opts.animOut.opacity = 0;
1336
+ };
1337
+
1338
+ // blindX
1339
+ $.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
1340
+ var w = $cont.css('overflow','hidden').width();
1341
+ opts.before.push(function(curr, next, opts) {
1342
+ $.fn.cycle.commonReset(curr,next,opts);
1343
+ opts.animIn.width = next.cycleW;
1344
+ opts.animOut.left = curr.cycleW;
1345
+ });
1346
+ opts.cssBefore.left = w;
1347
+ opts.cssBefore.top = 0;
1348
+ opts.animIn.left = 0;
1349
+ opts.animOut.left = w;
1350
+ };
1351
+ // blindY
1352
+ $.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
1353
+ var h = $cont.css('overflow','hidden').height();
1354
+ opts.before.push(function(curr, next, opts) {
1355
+ $.fn.cycle.commonReset(curr,next,opts);
1356
+ opts.animIn.height = next.cycleH;
1357
+ opts.animOut.top = curr.cycleH;
1358
+ });
1359
+ opts.cssBefore.top = h;
1360
+ opts.cssBefore.left = 0;
1361
+ opts.animIn.top = 0;
1362
+ opts.animOut.top = h;
1363
+ };
1364
+ // blindZ
1365
+ $.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
1366
+ var h = $cont.css('overflow','hidden').height();
1367
+ var w = $cont.width();
1368
+ opts.before.push(function(curr, next, opts) {
1369
+ $.fn.cycle.commonReset(curr,next,opts);
1370
+ opts.animIn.height = next.cycleH;
1371
+ opts.animOut.top = curr.cycleH;
1372
+ });
1373
+ opts.cssBefore.top = h;
1374
+ opts.cssBefore.left = w;
1375
+ opts.animIn.top = 0;
1376
+ opts.animIn.left = 0;
1377
+ opts.animOut.top = h;
1378
+ opts.animOut.left = w;
1379
+ };
1380
+
1381
+ // growX - grow horizontally from centered 0 width
1382
+ $.fn.cycle.transitions.growX = function($cont, $slides, opts) {
1383
+ opts.before.push(function(curr, next, opts) {
1384
+ $.fn.cycle.commonReset(curr,next,opts,false,true);
1385
+ opts.cssBefore.left = this.cycleW/2;
1386
+ opts.animIn.left = 0;
1387
+ opts.animIn.width = this.cycleW;
1388
+ opts.animOut.left = 0;
1389
+ });
1390
+ opts.cssBefore.top = 0;
1391
+ opts.cssBefore.width = 0;
1392
+ };
1393
+ // growY - grow vertically from centered 0 height
1394
+ $.fn.cycle.transitions.growY = function($cont, $slides, opts) {
1395
+ opts.before.push(function(curr, next, opts) {
1396
+ $.fn.cycle.commonReset(curr,next,opts,true,false);
1397
+ opts.cssBefore.top = this.cycleH/2;
1398
+ opts.animIn.top = 0;
1399
+ opts.animIn.height = this.cycleH;
1400
+ opts.animOut.top = 0;
1401
+ });
1402
+ opts.cssBefore.height = 0;
1403
+ opts.cssBefore.left = 0;
1404
+ };
1405
+
1406
+ // curtainX - squeeze in both edges horizontally
1407
+ $.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
1408
+ opts.before.push(function(curr, next, opts) {
1409
+ $.fn.cycle.commonReset(curr,next,opts,false,true,true);
1410
+ opts.cssBefore.left = next.cycleW/2;
1411
+ opts.animIn.left = 0;
1412
+ opts.animIn.width = this.cycleW;
1413
+ opts.animOut.left = curr.cycleW/2;
1414
+ opts.animOut.width = 0;
1415
+ });
1416
+ opts.cssBefore.top = 0;
1417
+ opts.cssBefore.width = 0;
1418
+ };
1419
+ // curtainY - squeeze in both edges vertically
1420
+ $.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
1421
+ opts.before.push(function(curr, next, opts) {
1422
+ $.fn.cycle.commonReset(curr,next,opts,true,false,true);
1423
+ opts.cssBefore.top = next.cycleH/2;
1424
+ opts.animIn.top = 0;
1425
+ opts.animIn.height = next.cycleH;
1426
+ opts.animOut.top = curr.cycleH/2;
1427
+ opts.animOut.height = 0;
1428
+ });
1429
+ opts.cssBefore.height = 0;
1430
+ opts.cssBefore.left = 0;
1431
+ };
1432
+
1433
+ // cover - curr slide covered by next slide
1434
+ $.fn.cycle.transitions.cover = function($cont, $slides, opts) {
1435
+ var d = opts.direction || 'left';
1436
+ var w = $cont.css('overflow','hidden').width();
1437
+ var h = $cont.height();
1438
+ opts.before.push(function(curr, next, opts) {
1439
+ $.fn.cycle.commonReset(curr,next,opts);
1440
+ opts.cssAfter.display = '';
1441
+ if (d == 'right')
1442
+ opts.cssBefore.left = -w;
1443
+ else if (d == 'up')
1444
+ opts.cssBefore.top = h;
1445
+ else if (d == 'down')
1446
+ opts.cssBefore.top = -h;
1447
+ else
1448
+ opts.cssBefore.left = w;
1449
+ });
1450
+ opts.animIn.left = 0;
1451
+ opts.animIn.top = 0;
1452
+ opts.cssBefore.top = 0;
1453
+ opts.cssBefore.left = 0;
1454
+ };
1455
+
1456
+ // uncover - curr slide moves off next slide
1457
+ $.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
1458
+ var d = opts.direction || 'left';
1459
+ var w = $cont.css('overflow','hidden').width();
1460
+ var h = $cont.height();
1461
+ opts.before.push(function(curr, next, opts) {
1462
+ $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1463
+ if (d == 'right')
1464
+ opts.animOut.left = w;
1465
+ else if (d == 'up')
1466
+ opts.animOut.top = -h;
1467
+ else if (d == 'down')
1468
+ opts.animOut.top = h;
1469
+ else
1470
+ opts.animOut.left = -w;
1471
+ });
1472
+ opts.animIn.left = 0;
1473
+ opts.animIn.top = 0;
1474
+ opts.cssBefore.top = 0;
1475
+ opts.cssBefore.left = 0;
1476
+ };
1477
+
1478
+ // toss - move top slide and fade away
1479
+ $.fn.cycle.transitions.toss = function($cont, $slides, opts) {
1480
+ var w = $cont.css('overflow','visible').width();
1481
+ var h = $cont.height();
1482
+ opts.before.push(function(curr, next, opts) {
1483
+ $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1484
+ // provide default toss settings if animOut not provided
1485
+ if (!opts.animOut.left && !opts.animOut.top)
1486
+ $.extend(opts.animOut, { left: w*2, top: -h/2, opacity: 0 });
1487
+ else
1488
+ opts.animOut.opacity = 0;
1489
+ });
1490
+ opts.cssBefore.left = 0;
1491
+ opts.cssBefore.top = 0;
1492
+ opts.animIn.left = 0;
1493
+ };
1494
+
1495
+ // wipe - clip animation
1496
+ $.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
1497
+ var w = $cont.css('overflow','hidden').width();
1498
+ var h = $cont.height();
1499
+ opts.cssBefore = opts.cssBefore || {};
1500
+ var clip;
1501
+ if (opts.clip) {
1502
+ if (/l2r/.test(opts.clip))
1503
+ clip = 'rect(0px 0px '+h+'px 0px)';
1504
+ else if (/r2l/.test(opts.clip))
1505
+ clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
1506
+ else if (/t2b/.test(opts.clip))
1507
+ clip = 'rect(0px '+w+'px 0px 0px)';
1508
+ else if (/b2t/.test(opts.clip))
1509
+ clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
1510
+ else if (/zoom/.test(opts.clip)) {
1511
+ var top = parseInt(h/2,10);
1512
+ var left = parseInt(w/2,10);
1513
+ clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
1514
+ }
1515
+ }
1516
+
1517
+ opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
1518
+
1519
+ var d = opts.cssBefore.clip.match(/(\d+)/g);
1520
+ var t = parseInt(d[0],10), r = parseInt(d[1],10), b = parseInt(d[2],10), l = parseInt(d[3],10);
1521
+
1522
+ opts.before.push(function(curr, next, opts) {
1523
+ if (curr == next) return;
1524
+ var $curr = $(curr), $next = $(next);
1525
+ $.fn.cycle.commonReset(curr,next,opts,true,true,false);
1526
+ opts.cssAfter.display = 'block';
1527
+
1528
+ var step = 1, count = parseInt((opts.speedIn / 13),10) - 1;
1529
+ (function f() {
1530
+ var tt = t ? t - parseInt(step * (t/count),10) : 0;
1531
+ var ll = l ? l - parseInt(step * (l/count),10) : 0;
1532
+ var bb = b < h ? b + parseInt(step * ((h-b)/count || 1),10) : h;
1533
+ var rr = r < w ? r + parseInt(step * ((w-r)/count || 1),10) : w;
1534
+ $next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
1535
+ (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
1536
+ })();
1537
+ });
1538
+ $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
1539
+ opts.animIn = { left: 0 };
1540
+ opts.animOut = { left: 0 };
1541
+ };
1542
+
1543
+ })(jQuery);
readme.txt CHANGED
@@ -1,43 +1,43 @@
1
  === Smooth Slider ===
2
  Contributors: internet techies, slidervilla, tejaswini
3
- Donate link: http://www.clickonf5.org/go/smooth-slider/
4
  Tags: best slider plugin, carousel, carousel slider, coin slider, content slider, content slideshow, custom video slider, flex slider, free video slider, free video slideshow, Horizontal slider, Image Rotator, image slider, image slideshow, javascript slider, javascript slideshow, jquery slider, jquery slideshow, Photo Slider, posts slider, responsive slider, responsive slideshow, sidebar, slide, slide show, slider, slider plugin, slider widget, slides, slideshow,slideshow manager, slideshow plugin, vertical slider, video slider, video slideshow,vimeo slideshow, vimeo slider, widget slider, widget slideshow, wordpress slider, wordpress slideshow, wp slider, youtube slider, youtube slideshow, post slider, fullscreen Slider, css3 slider, responsive image slider, banner slider, social slider, cycle slider, text slider, revolution slider, thumbnail slider, touch slider, sliders, parallax slider, coinslider, featured-content-slider, image, images, picture, pictures, picture slider, responsive, shortcode, widget, vertical slides, autoplay, auto, jquery, rotate, flexslider, gallery, photo gallery, javascript, rotator, wordpress picture slider, wordpress responsive slider, animation, best slider, fullwidth slider, mobile slider, swipe, layer, layer slider, product slider, mp3, video
5
- Requires at least: 3.0
6
- Tested up to: 4.8
7
- Stable tag: 2.8.7
8
  License: GPLv2 or later
9
 
10
  Free WordPress Slider Plugin to Create Image Slider, Post Slider, Content Slider, Video Slideshow with Responsive Design
11
 
12
  == Description ==
13
 
14
- WordPress allows to create variety of content for a website. To make the site look more engaging to visitors and utilize the web-page real estate, it is recommended to use sliders or carousels. Web is full of free and premium slideshow creators either using a page builder or with some JavaScript libraries. Unlike those, <a href="http://slidervilla.com/smooth-slider/" rel="friend" title="Smooth Slider">Smooth Slider</a> is specially designed for WordPress CMS and allows you to create variety of sliders like Posts Slider, Image Slider with uploaded images from Media Library, WordPress Page Slider, Video Slider, Pure Image Gallery etc. With the option to choose image placement in left, right or center, you can easily change the layout. Mobile friendly auto adjusted design makes Smooth Slider one of the best free WordPress responsive slider plugin. Plugin has been written by Tejaswini and the team at <a href="http://slidervilla.com/" rel="friend" title="Best WordPress Slider Store">SliderVilla - Best WordPress Slider Store</a>.
15
 
16
  > <strong>Premium WordPress Sliders</strong><br>
17
 
18
  > Apart from Smooth Slider, SliderVilla is having 19+ Free and Premium WordPress Sliders plugins. It is only place with so many ready designs for different requirements and needs. Pick a slider as per your design requirement and feature need. Premium sliders on SliderVilla comes with lot many extra features.
19
- > For example, <a href="http://slidervilla.com/placid/" rel="friend" title="Placid Slider">Placid Slider</a> is the best Logo and Brand Slider WordPress plugin. If you are looking for an elegant Image Gallery for WordPress, checkout <a href="http://slidervilla.com/foto-slider/" rel="friend" title="Foto Slider">Foto Slider</a>
20
- > of SliderVilla. Similarly, Pointelle Slider is a WordPress Content Slider best suitable as Homepage Slider. All these premium sliders are not just well integrated > with WordPress, but also comes with WooCommerce, Events Manager, The Events Calendar integrations. One can <a href="http://slidervilla.com/blog/2016/09/create-carousel-events-calendar-wordpress-plugin-data/">build Events Slider</a>, <a href="http://slidervilla.com/blog/2016/09/embed-woocommerce-product-slider-cart/">Products Slider</a>, Facebook Album
21
- > Slider, <a href="http://slidervilla.com/blog/2016/09/add-flickr-image-album-slider-wordpress/">Flickr Image Gallery</a>, RSS Feed Slider, Category and Tag Slider, Custom Post Type Slider, YouTube Auto Fetch Video Slider, Instagram Slider and many more.
22
 
23
- > <a href="http://slidervilla.com/">Visit SliderVilla</a>, the largest WordPress Slider Store.
24
 
25
  > <strong>Smooth Slider Pro</strong><br>
26
 
27
- > <a href="http://slidervilla.com/roster/">Roster Slider</a> of SliderVilla is the premium version of Smooth Slider plugin. You can create unlimited sliders with separate designs using Roster. It comes with 3
28
  > extra skins to make the sliders look even more elegant and design rich. Apart from that, All integrations and type of sliders are possible with Roster Slider
29
  > WordPress plugin.
30
 
31
  > <strong>Live Support & Priority Support</strong><br>
32
 
33
  > SliderVilla Support team is committed towards all users of our slider plugins including free sliders. If you are not getting reply on the support threads on
34
- > repository forum, please feel free to visit SliderVilla and get priority support using Live Chat or by <a href="http://slidervilla.com/contact-us/">submitting a ticket</a>.
35
 
36
 
37
 
38
  = Create Responsive WordPress Slider =
39
 
40
- Once you create a new slider by adding posts to Smooth Slider, you can preview the complete slider on settings page. It allows you to customize the typography, transition speed, effect, background color, slider width and height etc. before embedding the slider. You can directly preview an <a href="http://slidervilla.com/blog/2015/12/dynamically-fetched-latest-posts-slider-wordpress/">Auto Fetched Recent Posts Slider</a> and Category Slider on the setting page.
41
 
42
  = Change Slide Link URL =
43
 
@@ -90,13 +90,13 @@ With Add-ons, you can extend the functionality of Smooth Slider WordPress plugin
90
  For more information, check the following articles
91
 
92
  * Complete <a href="http://guides.slidervilla.com/smooth-slider/">Documentation of Smooth Slider</a>
93
- * <a href="http://slidervilla.com/sliders-list-view/">Browser Premium Sliders of SliderVilla</a>
94
  * Once Slider is Installed, <a href="https://sanjeevmishra.com/make-wordpress-sites-load-faster-than-rediff-com/">Optimize the Site to Make it Fast</a>
95
- * Checkout <a href="http://slidervilla.com/blog/" rel="friend">WordPress Slider Blog</a> for Tutorials, Howtos and more
96
  * Follow us on <a href="https://www.facebook.com/slidervilla">Facebook</a> and <a href="https://twitter.com/slidervilla">Twitter</a>
97
 
98
  = List of Premium Sliders =
99
- = <a href="http://slidervilla.com/sliders-list-view/" rel="friend" title="Premium WordPress Sliders">19+ Premium WordPress Sliders</a> =
100
 
101
  * Create Unlimited Settings Panels
102
  * Created Unlimited Custom Sliders
@@ -116,16 +116,16 @@ For more information, check the following articles
116
 
117
  Checkout Few Premium WordPress Responsive Sliders such as,
118
 
119
- * Placid Slider - <a href="http://slidervilla.com/placid/" rel="friend" title="Best Logo and Client Brand Slider">Best Logo and Client Brand Slider</a>
120
- * Pointelle Slider - <a href="http://slidervilla.com/pointelle/" rel="friend" title="Best WordPress Slider Design for Homepage">Best WordPress Slider Design for Homepage</a>
121
- * Glam Slider - <a href="http://slidervilla.com/glam/" rel="friend" title="Full Page Slider with Partial Visible Slides">Full Page Slider with Partial Visible Slides</a>
122
- * Featured Slider - <a href="http://slidervilla.com/featured-slider/" rel="friend" title="Awesome WordPress Slider to Show Featured Content">Awesome WordPress Slider to Show Featured Content</a>
123
- * Listic Slider - <a href="http://slidervilla.com/listic/" rel="friend" title="Best List View Slider for WordPress">Best List View Slider for WordPress</a>
124
- * Roster Slider - <a href="http://slidervilla.com/roster/" rel="friend" title="Best Horizontal Carousal for WordPress">Best Horizontal Carousal for WordPress</a>
125
- * Pinwheel Slider - <a href="http://slidervilla.com/pinwheel/" rel="friend" title="Ultimate rotator with responsive design">Ultimate rotator with responsive design</a>
126
- * Akkord Slider - <a href="http://slidervilla.com/akkord/" rel="friend" title="Premium Accordion Slider for WordPress">Premium Accordion Slider for WordPress</a>
127
- * Foto Slider - <a href="http://slidervilla.com/foto-slider/" rel="friend" title="Best Gallery View Slider for WordPress">Best Gallery View Slider for WordPress</a>
128
- and <a href="http://slidervilla.com/sliders-list-view/">many more</a>
129
 
130
 
131
  == Installation ==
@@ -217,6 +217,10 @@ Check the other FAQs on Smooth [Slider Documetation on SliderVilla](http://guide
217
 
218
  == Changelog ==
219
 
 
 
 
 
220
  Version 2.8.7 (07/15/2017)
221
 
222
  1. Fix - Expiry date issue with non-English WordPress installations.
1
  === Smooth Slider ===
2
  Contributors: internet techies, slidervilla, tejaswini
3
+ Donate link: http://www.clickonf5.org/go/smooth-slider/
4
  Tags: best slider plugin, carousel, carousel slider, coin slider, content slider, content slideshow, custom video slider, flex slider, free video slider, free video slideshow, Horizontal slider, Image Rotator, image slider, image slideshow, javascript slider, javascript slideshow, jquery slider, jquery slideshow, Photo Slider, posts slider, responsive slider, responsive slideshow, sidebar, slide, slide show, slider, slider plugin, slider widget, slides, slideshow,slideshow manager, slideshow plugin, vertical slider, video slider, video slideshow,vimeo slideshow, vimeo slider, widget slider, widget slideshow, wordpress slider, wordpress slideshow, wp slider, youtube slider, youtube slideshow, post slider, fullscreen Slider, css3 slider, responsive image slider, banner slider, social slider, cycle slider, text slider, revolution slider, thumbnail slider, touch slider, sliders, parallax slider, coinslider, featured-content-slider, image, images, picture, pictures, picture slider, responsive, shortcode, widget, vertical slides, autoplay, auto, jquery, rotate, flexslider, gallery, photo gallery, javascript, rotator, wordpress picture slider, wordpress responsive slider, animation, best slider, fullwidth slider, mobile slider, swipe, layer, layer slider, product slider, mp3, video
5
+ Requires at least: 4.0
6
+ Tested up to: 4.9.8
7
+ Stable tag: 2.8.8
8
  License: GPLv2 or later
9
 
10
  Free WordPress Slider Plugin to Create Image Slider, Post Slider, Content Slider, Video Slideshow with Responsive Design
11
 
12
  == Description ==
13
 
14
+ WordPress allows to create variety of content for a website. To make the site look more engaging to visitors and utilize the web-page real estate, it is recommended to use sliders or carousels. Web is full of free and premium slideshow creators either using a page builder or with some JavaScript libraries. Unlike those, <a href="https://slidervilla.com//smooth-slider/" rel="friend" title="Smooth Slider">Smooth Slider</a> is specially designed for WordPress CMS and allows you to create variety of sliders like Posts Slider, Image Slider with uploaded images from Media Library, WordPress Page Slider, Video Slider, Pure Image Gallery etc. With the option to choose image placement in left, right or center, you can easily change the layout. Mobile friendly auto adjusted design makes Smooth Slider one of the best free WordPress responsive slider plugin. Plugin has been written by Tejaswini and the team at <a href="https://slidervilla.com//" rel="friend" title="Best WordPress Slider Store">SliderVilla - Best WordPress Slider Store</a>.
15
 
16
  > <strong>Premium WordPress Sliders</strong><br>
17
 
18
  > Apart from Smooth Slider, SliderVilla is having 19+ Free and Premium WordPress Sliders plugins. It is only place with so many ready designs for different requirements and needs. Pick a slider as per your design requirement and feature need. Premium sliders on SliderVilla comes with lot many extra features.
19
+ > For example, <a href="https://slidervilla.com//placid/" rel="friend" title="Placid Slider">Placid Slider</a> is the best Logo and Brand Slider WordPress plugin. If you are looking for an elegant Image Gallery for WordPress, checkout <a href="https://slidervilla.com//foto-slider/" rel="friend" title="Foto Slider">Foto Slider</a>
20
+ > of SliderVilla. Similarly, Pointelle Slider is a WordPress Content Slider best suitable as Homepage Slider. All these premium sliders are not just well integrated > with WordPress, but also comes with WooCommerce, Events Manager, The Events Calendar integrations. One can <a href="https://slidervilla.com//blog/2016/09/create-carousel-events-calendar-wordpress-plugin-data/">build Events Slider</a>, <a href="https://slidervilla.com//blog/2016/09/embed-woocommerce-product-slider-cart/">Products Slider</a>, Facebook Album
21
+ > Slider, <a href="https://slidervilla.com//blog/2016/09/add-flickr-image-album-slider-wordpress/">Flickr Image Gallery</a>, RSS Feed Slider, Category and Tag Slider, Custom Post Type Slider, YouTube Auto Fetch Video Slider, Instagram Slider and many more.
22
 
23
+ > <a href="https://slidervilla.com//">Visit SliderVilla</a>, the largest WordPress Slider Store.
24
 
25
  > <strong>Smooth Slider Pro</strong><br>
26
 
27
+ > <a href="https://slidervilla.com//roster/">Roster Slider</a> of SliderVilla is the premium version of Smooth Slider plugin. You can create unlimited sliders with separate designs using Roster. It comes with 3
28
  > extra skins to make the sliders look even more elegant and design rich. Apart from that, All integrations and type of sliders are possible with Roster Slider
29
  > WordPress plugin.
30
 
31
  > <strong>Live Support & Priority Support</strong><br>
32
 
33
  > SliderVilla Support team is committed towards all users of our slider plugins including free sliders. If you are not getting reply on the support threads on
34
+ > repository forum, please feel free to visit SliderVilla and get priority support using Live Chat or by <a href="https://slidervilla.com//contact-us/">submitting a ticket</a>.
35
 
36
 
37
 
38
  = Create Responsive WordPress Slider =
39
 
40
+ Once you create a new slider by adding posts to Smooth Slider, you can preview the complete slider on settings page. It allows you to customize the typography, transition speed, effect, background color, slider width and height etc. before embedding the slider. You can directly preview an <a href="https://slidervilla.com//blog/2015/12/dynamically-fetched-latest-posts-slider-wordpress/">Auto Fetched Recent Posts Slider</a> and Category Slider on the setting page.
41
 
42
  = Change Slide Link URL =
43
 
90
  For more information, check the following articles
91
 
92
  * Complete <a href="http://guides.slidervilla.com/smooth-slider/">Documentation of Smooth Slider</a>
93
+ * <a href="https://slidervilla.com//sliders-list-view/">Browser Premium Sliders of SliderVilla</a>
94
  * Once Slider is Installed, <a href="https://sanjeevmishra.com/make-wordpress-sites-load-faster-than-rediff-com/">Optimize the Site to Make it Fast</a>
95
+ * Checkout <a href="https://slidervilla.com//blog/" rel="friend">WordPress Slider Blog</a> for Tutorials, Howtos and more
96
  * Follow us on <a href="https://www.facebook.com/slidervilla">Facebook</a> and <a href="https://twitter.com/slidervilla">Twitter</a>
97
 
98
  = List of Premium Sliders =
99
+ = <a href="https://slidervilla.com//sliders-list-view/" rel="friend" title="Premium WordPress Sliders">19+ Premium WordPress Sliders</a> =
100
 
101
  * Create Unlimited Settings Panels
102
  * Created Unlimited Custom Sliders
116
 
117
  Checkout Few Premium WordPress Responsive Sliders such as,
118
 
119
+ * Placid Slider - <a href="https://slidervilla.com//placid/" rel="friend" title="Best Logo and Client Brand Slider">Best Logo and Client Brand Slider</a>
120
+ * Pointelle Slider - <a href="https://slidervilla.com//pointelle/" rel="friend" title="Best WordPress Slider Design for Homepage">Best WordPress Slider Design for Homepage</a>
121
+ * Glam Slider - <a href="https://slidervilla.com//glam/" rel="friend" title="Full Page Slider with Partial Visible Slides">Full Page Slider with Partial Visible Slides</a>
122
+ * Featured Slider - <a href="https://slidervilla.com//featured-slider/" rel="friend" title="Awesome WordPress Slider to Show Featured Content">Awesome WordPress Slider to Show Featured Content</a>
123
+ * Listic Slider - <a href="https://slidervilla.com//listic/" rel="friend" title="Best List View Slider for WordPress">Best List View Slider for WordPress</a>
124
+ * Roster Slider - <a href="https://slidervilla.com//roster/" rel="friend" title="Best Horizontal Carousal for WordPress">Best Horizontal Carousal for WordPress</a>
125
+ * Pinwheel Slider - <a href="https://slidervilla.com//pinwheel/" rel="friend" title="Ultimate rotator with responsive design">Ultimate rotator with responsive design</a>
126
+ * Akkord Slider - <a href="https://slidervilla.com//akkord/" rel="friend" title="Premium Accordion Slider for WordPress">Premium Accordion Slider for WordPress</a>
127
+ * Foto Slider - <a href="https://slidervilla.com//foto-slider/" rel="friend" title="Best Gallery View Slider for WordPress">Best Gallery View Slider for WordPress</a>
128
+ and <a href="https://slidervilla.com//sliders-list-view/">many more</a>
129
 
130
 
131
  == Installation ==
217
 
218
  == Changelog ==
219
 
220
+ Version 2.8.8 (12/04/2018)
221
+
222
+ 1. Fix - User input sanitization as per WordPress standards
223
+
224
  Version 2.8.7 (07/15/2017)
225
 
226
  1. Fix - Expiry date issue with non-English WordPress installations.
settings/settings.php CHANGED
@@ -1010,21 +1010,21 @@ jQuery('#saveResult').html("<div id='popup'><div class='modal_shortcode'>Quick E
1010
  <div class="postbox" style="margin:10px 0;">
1011
  <div class="inside">
1012
  <div style="margin:10px auto;">
1013
- <a href="http://slidervilla.com" title="Premium WordPress Slider Plugins" target="_blank"><img src="<?php echo smooth_slider_plugin_url('images/banner-premium.png');?>" alt="Premium WordPress Slider Plugins" width="100%" /></a>
1014
  </div>
1015
- <p><a href="http://slidervilla.com/" title="Recommended WordPress Sliders" target="_blank">SliderVilla slider plugins</a> are feature rich and stylish plugins to embed a nice looking featured content slider in your existing or new theme template. 100% customization options available on WordPress Settings page of the plugin.</p>
1016
- <p><strong>Stylish Sliders, <a href="http://slidervilla.com/blog/testimonials/" target="_blank">Happy Customers</a>!</strong></p>
1017
- <p><a href="http://slidervilla.com/" title="Recommended WordPress Sliders" target="_blank">For more info visit SliderVilla</a></p>
1018
  </div></div>
1019
 
1020
  <div class="postbox">
1021
  <h3 class="hndle"><span><?php _e('About this Plugin:','smooth-slider'); ?></span></h3>
1022
  <div class="inside">
1023
  <ul>
1024
- <li><a href="http://slidervilla.com/smooth-slider" title="<?php _e('Smooth Slider Homepage','smooth-slider'); ?>" ><?php _e('Plugin Homepage','smooth-slider'); ?></a></li>
1025
  <li><a href="http://wordpress.org/support/plugin/smooth-slider" title="<?php _e('Support Forum for Smooth Slider','smooth-slider'); ?>
1026
  " ><?php _e('Support Forum','smooth-slider'); ?></a></li>
1027
- <li><a href="http://slidervilla.com/about-us/" title="<?php _e('Smooth Slider Author Page','smooth-slider'); ?>" ><?php _e('About the Author','smooth-slider'); ?></a></li>
1028
  <li><a href="http://www.clickonf5.org/go/smooth-slider/" title="<?php _e('Donate if you liked the plugin and support in enhancing Smooth Slider and creating new plugins','smooth-slider'); ?>" ><?php _e('Donate with Paypal','smooth-slider'); ?></a></li>
1029
  <li><strong>Current Version: <?php echo SMOOTH_SLIDER_VER;?></strong></li>
1030
  </ul>
1010
  <div class="postbox" style="margin:10px 0;">
1011
  <div class="inside">
1012
  <div style="margin:10px auto;">
1013
+ <a href="https://slidervilla.com/" title="Premium WordPress Slider Plugins" target="_blank"><img src="<?php echo smooth_slider_plugin_url('images/banner-premium.png');?>" alt="Premium WordPress Slider Plugins" width="100%" /></a>
1014
  </div>
1015
+ <p><a href="https://slidervilla.com//" title="Recommended WordPress Sliders" target="_blank">SliderVilla slider plugins</a> are feature rich and stylish plugins to embed a nice looking featured content slider in your existing or new theme template. 100% customization options available on WordPress Settings page of the plugin.</p>
1016
+ <p><strong>Stylish Sliders, <a href="https://slidervilla.com//blog/testimonials/" target="_blank">Happy Customers</a>!</strong></p>
1017
+ <p><a href="https://slidervilla.com//" title="Recommended WordPress Sliders" target="_blank">For more info visit SliderVilla</a></p>
1018
  </div></div>
1019
 
1020
  <div class="postbox">
1021
  <h3 class="hndle"><span><?php _e('About this Plugin:','smooth-slider'); ?></span></h3>
1022
  <div class="inside">
1023
  <ul>
1024
+ <li><a href="https://slidervilla.com//smooth-slider" title="<?php _e('Smooth Slider Homepage','smooth-slider'); ?>" ><?php _e('Plugin Homepage','smooth-slider'); ?></a></li>
1025
  <li><a href="http://wordpress.org/support/plugin/smooth-slider" title="<?php _e('Support Forum for Smooth Slider','smooth-slider'); ?>
1026
  " ><?php _e('Support Forum','smooth-slider'); ?></a></li>
1027
+ <li><a href="https://slidervilla.com//about-us/" title="<?php _e('Smooth Slider Author Page','smooth-slider'); ?>" ><?php _e('About the Author','smooth-slider'); ?></a></li>
1028
  <li><a href="http://www.clickonf5.org/go/smooth-slider/" title="<?php _e('Donate if you liked the plugin and support in enhancing Smooth Slider and creating new plugins','smooth-slider'); ?>" ><?php _e('Donate with Paypal','smooth-slider'); ?></a></li>
1029
  <li><strong>Current Version: <?php echo SMOOTH_SLIDER_VER;?></strong></li>
1030
  </ul>
settings/sliders.php CHANGED
@@ -1,17 +1,24 @@
1
  <?php // This function displays the page content for the Smooth Slider Options submenu
2
  function smooth_slider_create_multiple_sliders() {
 
3
  global $smooth_slider;
4
  ?>
5
  <div class="wrap smooth_sliders_create" id="smooth_sliders_create" style="clear:both;">
6
  <h2 style="float:left;"><?php _e('Sliders Created','smooth-slider'); ?></h2>
7
  <?php
8
  if (isset($_POST['remove_posts_slider'])) {
 
 
 
 
 
9
  if (isset($_POST['slider_posts']) ) {
10
  global $wpdb, $table_prefix;
11
  $table_name = $table_prefix.SLIDER_TABLE;
12
- $current_slider = isset($_POST['current_slider_id'])?$_POST['current_slider_id']:'';
13
  $current_slider = intval($current_slider);
14
  foreach ( $_POST['slider_posts'] as $post_id=>$val ) {
 
15
  $wpdb->query(
16
  $wpdb->prepare(
17
  "
@@ -28,7 +35,7 @@ if (isset($_POST['remove_posts_slider'])) {
28
  if ($_POST['remove_all'] == __('Remove All at Once','smooth-slider')) {
29
  global $wpdb, $table_prefix;
30
  $table_name = $table_prefix.SLIDER_TABLE;
31
- $current_slider = isset($_POST['current_slider_id'])?$_POST['current_slider_id']:'';
32
  $current_slider = intval($current_slider);
33
  if(is_slider_on_slider_table($current_slider)) {
34
  $wpdb->delete( $table_name, array( 'slider_id' => $current_slider ), array( '%d' ) );
@@ -37,8 +44,8 @@ if (isset($_POST['remove_posts_slider'])) {
37
  }
38
  if (isset ($_POST['remove_all'])) {
39
  if ($_POST['remove_all'] == __('Delete Slider','smooth-slider')) {
40
- $slider_id = isset($_POST['current_slider_id'])?$_POST['current_slider_id']:'';
41
- $slider_id = intval($slider_id);
42
 
43
  global $wpdb, $table_prefix;
44
  $slider_table = $table_prefix.SLIDER_TABLE;
@@ -54,9 +61,15 @@ if (isset($_POST['remove_posts_slider'])) {
54
  $wpdb->delete( $slider_postmeta, array( 'slider_id' => $slider_id ), array( '%d' ) );
55
  }
56
  }
57
- }
 
58
  }
59
  if (isset($_POST['create_new_slider'])) {
 
 
 
 
 
60
  $slider_name = sanitize_text_field( $_POST['new_slider_name'] );
61
  global $wpdb,$table_prefix;
62
  $slider_meta = $table_prefix.SLIDER_META;
@@ -68,13 +81,19 @@ if (isset($_POST['create_new_slider'])) {
68
  $slider_name
69
  )
70
  );
 
71
  }
72
  if (isset($_POST['reorder_posts_slider'])) {
 
 
 
 
 
73
  $i=1;
74
  global $wpdb, $table_prefix;
75
  $table_name = $table_prefix.SLIDER_TABLE;
76
  foreach ($_POST['order'] as $slide_order) {
77
- $slide_order = intval($slide_order);
78
  $wpdb->update(
79
  $table_name,
80
  array(
@@ -88,11 +107,17 @@ if (isset($_POST['reorder_posts_slider'])) {
88
  );
89
  $i++;
90
  }
 
91
  }
92
  /*Added for rename slider-2.6-start*/
93
  if ((isset ($_POST['rename_slider'])) and ($_POST['rename_slider'] == __('Rename','smooth-slider'))) {
 
 
 
 
 
94
  $slider_name = sanitize_text_field( $_POST['rename_slider_to'] );
95
- $slider_id = isset($_POST['current_slider_id'])?$_POST['current_slider_id']:'';
96
  $slider_id = intval($slider_id);
97
  if( !empty($slider_name) ) {
98
  global $wpdb,$table_prefix;
@@ -109,19 +134,26 @@ if ((isset ($_POST['rename_slider'])) and ($_POST['rename_slider'] == __('Rename
109
  array( '%d' )
110
  );
111
  }
 
112
  }
113
  /*Added for rename slider-2.6-end*/
114
 
115
  /* Added for upload media save-2.6 */
116
  if ( isset($_POST['addSave']) and ($_POST['addSave']=='Save') ) {
 
 
 
 
 
117
  $images=(isset($_POST['imgID']))?$_POST['imgID']:array();
118
- $slider_id = isset($_POST['current_slider_id'])?$_POST['current_slider_id']:'';
119
  $slider_id = intval($slider_id);
120
  $ids=array_reverse($images);
121
  global $wpdb,$table_prefix;
122
  foreach($ids as $id){
123
- $title=(isset($_POST['title'][$id]))?esc_html($_POST['title'][$id]):'';
124
- $desc=(isset($_POST['desc'][$id]))?esc_html($_POST['desc'][$id]):'';
 
125
  $link=(isset($_POST['link'][$id]))?sanitize_text_field($_POST['link'][$id]):'';
126
  $nolink=(isset($_POST['nolink'][$id]))?sanitize_text_field($_POST['nolink'][$id]):'';
127
  $attachment = array(
@@ -147,6 +179,7 @@ if ( isset($_POST['addSave']) and ($_POST['addSave']=='Save') ) {
147
  );
148
  }
149
  }
 
150
  }
151
  /* upload media end 2.6 */
152
  ?>
@@ -185,6 +218,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
185
  </div>
186
  <input type="hidden" name="current_slider_id" value="<?php echo $slider['slider_id'];?>" />
187
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
 
188
  </form>
189
  </div>
190
  <!-- Add bulk images end 2.6-->
@@ -239,6 +273,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
239
  ?>
240
  </tbody></table>
241
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
 
242
  </form>
243
 
244
 
@@ -279,6 +314,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
279
  ?>
280
  </div>
281
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
 
282
  </form>
283
  <!-- Added for rename slider -start -->
284
  <h3 class="sub-heading" style="margin:40px 0px 5px 0;"><?php _e('Rename Slider','smooth-slider'); ?></h3>
@@ -294,6 +330,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
294
 
295
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
296
  <input type="hidden" name="smooth_slider_options[reviewme]" id="smooth_reviewme" value="<?php echo $smooth_slider['reviewme']; ?>" />
 
297
 
298
  </form>
299
 
@@ -327,7 +364,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
327
  <input name="new_slider_name" class="regular-text code" value="" style="clear:both;" />
328
 
329
  <div class="submit"><input type="submit" value="<?php _e('Create New','smooth-slider'); ?>" name="create_new" /></div>
330
-
331
  </form>
332
  </div>
333
  <?php }?>
@@ -341,10 +378,10 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
341
  <h3 class="hndle"><span><?php _e('About this Plugin:','smooth-slider'); ?></span></h3>
342
  <div class="inside">
343
  <ul>
344
- <li><a href="http://slidervilla.com/smooth-slider" title="<?php _e('Smooth Slider Homepage','smooth-slider'); ?>" ><?php _e('Plugin Homepage','smooth-slider'); ?></a></li>
345
  <li><a href="http://wordpress.org/support/plugin/smooth-slider" title="<?php _e('Support Forum for Smooth Slider','smooth-slider'); ?>
346
  " ><?php _e('Support Forum','smooth-slider'); ?></a></li>
347
- <li><a href="http://slidervilla.com/about-us/" title="<?php _e('Smooth Slider Author Page','smooth-slider'); ?>" ><?php _e('About the Author','smooth-slider'); ?></a></li>
348
  <li><a href="http://www.clickonf5.org/go/smooth-slider/" title="<?php _e('Donate if you liked the plugin and support in enhancing Smooth Slider and creating new plugins','smooth-slider'); ?>" ><?php _e('Donate with Paypal','smooth-slider'); ?></a></li>
349
  <li><strong>Current Version: <?php echo SMOOTH_SLIDER_VER;?></strong></li>
350
  </ul>
@@ -355,7 +392,7 @@ wp_enqueue_script( 'media-uploader', smooth_slider_plugin_url( 'js/media-uploade
355
 
356
  <div class="inside">
357
  <div style="margin:10px auto;">
358
- <a href="http://slidervilla.com" title="Premium WordPress Slider Plugins" target="_blank"><img src="<?php echo smooth_slider_plugin_url('images/banner-premium.png');?>" alt="Premium WordPress Slider Plugins" width="100%" /></a>
359
  </div>
360
  </div></div>
361
 
1
  <?php // This function displays the page content for the Smooth Slider Options submenu
2
  function smooth_slider_create_multiple_sliders() {
3
+
4
  global $smooth_slider;
5
  ?>
6
  <div class="wrap smooth_sliders_create" id="smooth_sliders_create" style="clear:both;">
7
  <h2 style="float:left;"><?php _e('Sliders Created','smooth-slider'); ?></h2>
8
  <?php
9
  if (isset($_POST['remove_posts_slider'])) {
10
+ $nonce = $_POST['SSliderIP'];
11
+ if ( ! wp_verify_nonce( $nonce, 'SSliderNonce' ) ) :
12
+ // This nonce is not valid.
13
+ die( 'You are not authorized to remove slides!' );
14
+ else :
15
  if (isset($_POST['slider_posts']) ) {
16
  global $wpdb, $table_prefix;
17
  $table_name = $table_prefix.SLIDER_TABLE;
18
+ $current_slider = isset($_POST['current_slider_id'])?sanitize_text_field( $_POST['current_slider_id'] ):'';
19
  $current_slider = intval($current_slider);
20
  foreach ( $_POST['slider_posts'] as $post_id=>$val ) {
21
+ $post_id=intval( sanitize_text_field($post_id) );
22
  $wpdb->query(
23
  $wpdb->prepare(
24
  "
35
  if ($_POST['remove_all'] == __('Remove All at Once','smooth-slider')) {
36
  global $wpdb, $table_prefix;
37
  $table_name = $table_prefix.SLIDER_TABLE;
38
+ $current_slider = isset($_POST['current_slider_id'])?sanitize_text_field( $_POST['current_slider_id'] ):'';
39
  $current_slider = intval($current_slider);
40
  if(is_slider_on_slider_table($current_slider)) {
41
  $wpdb->delete( $table_name, array( 'slider_id' => $current_slider ), array( '%d' ) );
44
  }
45
  if (isset ($_POST['remove_all'])) {
46
  if ($_POST['remove_all'] == __('Delete Slider','smooth-slider')) {
47
+ $slider_id = isset($_POST['current_slider_id'])?sanitize_text_field( $_POST['current_slider_id'] ):'';
48
+ $slider_id = intval($slider_id);
49
 
50
  global $wpdb, $table_prefix;
51
  $slider_table = $table_prefix.SLIDER_TABLE;
61
  $wpdb->delete( $slider_postmeta, array( 'slider_id' => $slider_id ), array( '%d' ) );
62
  }
63
  }
64
+ }
65
+ endif;
66
  }
67
  if (isset($_POST['create_new_slider'])) {
68
+ $nonce = $_POST['SSliderIP'];
69
+ if ( ! wp_verify_nonce( $nonce, 'SSliderNonce' ) ) :
70
+ // This nonce is not valid.
71
+ die( 'You are not authorized to create new slider!' );
72
+ else :
73
  $slider_name = sanitize_text_field( $_POST['new_slider_name'] );
74
  global $wpdb,$table_prefix;
75
  $slider_meta = $table_prefix.SLIDER_META;
81
  $slider_name
82
  )
83
  );
84
+ endif;
85
  }
86
  if (isset($_POST['reorder_posts_slider'])) {
87
+ $nonce = $_POST['SSliderIP'];
88
+ if ( ! wp_verify_nonce( $nonce, 'SSliderNonce' ) ) :
89
+ // This nonce is not valid.
90
+ die( 'You are not authorized to reorder slides!' );
91
+ else :
92
  $i=1;
93
  global $wpdb, $table_prefix;
94
  $table_name = $table_prefix.SLIDER_TABLE;
95
  foreach ($_POST['order'] as $slide_order) {
96
+ $slide_order = intval( sanitize_text_field($slide_order) );
97
  $wpdb->update(
98
  $table_name,
99
  array(
107
  );
108
  $i++;
109
  }
110
+ endif;
111
  }
112
  /*Added for rename slider-2.6-start*/
113
  if ((isset ($_POST['rename_slider'])) and ($_POST['rename_slider'] == __('Rename','smooth-slider'))) {
114
+ $nonce = $_POST['SSliderIP'];
115
+ if ( ! wp_verify_nonce( $nonce, 'SSliderNonce' ) ) :
116
+ // This nonce is not valid.
117
+ die( 'You are not authorized to rename slider!' );
118
+ else :
119
  $slider_name = sanitize_text_field( $_POST['rename_slider_to'] );
120
+ $slider_id = isset($_POST['current_slider_id'])?sanitize_text_field( $_POST['current_slider_id'] ):'';
121
  $slider_id = intval($slider_id);
122
  if( !empty($slider_name) ) {
123
  global $wpdb,$table_prefix;
134
  array( '%d' )
135
  );
136
  }
137
+ endif;
138
  }
139
  /*Added for rename slider-2.6-end*/
140
 
141
  /* Added for upload media save-2.6 */
142
  if ( isset($_POST['addSave']) and ($_POST['addSave']=='Save') ) {
143
+ $nonce = $_POST['SSliderIP'];
144
+ if ( ! wp_verify_nonce( $nonce, 'SSliderNonce' ) ) :
145
+ // This nonce is not valid.
146
+ die( 'You are not authorized to upload media files!' );
147
+ else :
148
  $images=(isset($_POST['imgID']))?$_POST['imgID']:array();
149
+ $slider_id = isset($_POST['current_slider_id'])?sanitize_text_field($_POST['current_slider_id']):'';
150
  $slider_id = intval($slider_id);
151
  $ids=array_reverse($images);
152
  global $wpdb,$table_prefix;
153
  foreach($ids as $id){
154
+ $id = intval($id);
155
+ $title=(isset($_POST['title'][$id]))?sanitize_title($_POST['title'][$id]):'';
156
+ $desc=(isset($_POST['desc'][$id]))?wp_filter_post_kses($_POST['desc'][$id]):'';
157
  $link=(isset($_POST['link'][$id]))?sanitize_text_field($_POST['link'][$id]):'';
158
  $nolink=(isset($_POST['nolink'][$id]))?sanitize_text_field($_POST['nolink'][$id]):'';
159
  $attachment = array(
179
  );
180
  }
181
  }
182
+ endif;
183
  }
184
  /* upload media end 2.6 */
185
  ?>
218
  </div>
219
  <input type="hidden" name="current_slider_id" value="<?php echo $slider['slider_id'];?>" />
220
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
221
+ <input type="hidden" name="SSliderIP" id="SSliderIP" value="<?php echo wp_create_nonce('SSliderNonce');?>" />
222
  </form>
223
  </div>
224
  <!-- Add bulk images end 2.6-->
273
  ?>
274
  </tbody></table>
275
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
276
+ <input type="hidden" name="SSliderIP" id="SSliderIP" value="<?php echo wp_create_nonce('SSliderNonce');?>" />
277
  </form>
278
 
279
 
314
  ?>
315
  </div>
316
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
317
+ <input type="hidden" name="SSliderIP" id="SSliderIP" value="<?php echo wp_create_nonce('SSliderNonce');?>" />
318
  </form>
319
  <!-- Added for rename slider -start -->
320
  <h3 class="sub-heading" style="margin:40px 0px 5px 0;"><?php _e('Rename Slider','smooth-slider'); ?></h3>
330
 
331
  <input type="hidden" name="active_tab" class="smooth_activetab" value="0" />
332
  <input type="hidden" name="smooth_slider_options[reviewme]" id="smooth_reviewme" value="<?php echo $smooth_slider['reviewme']; ?>" />
333
+ <input type="hidden" name="SSliderIP" id="SSliderIP" value="<?php echo wp_create_nonce('SSliderNonce');?>" />
334
 
335
  </form>
336
 
364
  <input name="new_slider_name" class="regular-text code" value="" style="clear:both;" />
365
 
366
  <div class="submit"><input type="submit" value="<?php _e('Create New','smooth-slider'); ?>" name="create_new" /></div>
367
+ <input type="hidden" name="SSliderIP" id="SSliderIP" value="<?php echo wp_create_nonce('SSliderNonce');?>" />
368
  </form>
369
  </div>
370
  <?php }?>
378
  <h3 class="hndle"><span><?php _e('About this Plugin:','smooth-slider'); ?></span></h3>
379
  <div class="inside">
380
  <ul>
381
+ <li><a href="https://slidervilla.com//smooth-slider" title="<?php _e('Smooth Slider Homepage','smooth-slider'); ?>" ><?php _e('Plugin Homepage','smooth-slider'); ?></a></li>
382
  <li><a href="http://wordpress.org/support/plugin/smooth-slider" title="<?php _e('Support Forum for Smooth Slider','smooth-slider'); ?>
383
  " ><?php _e('Support Forum','smooth-slider'); ?></a></li>
384
+ <li><a href="https://slidervilla.com//about-us/" title="<?php _e('Smooth Slider Author Page','smooth-slider'); ?>" ><?php _e('About the Author','smooth-slider'); ?></a></li>
385
  <li><a href="http://www.clickonf5.org/go/smooth-slider/" title="<?php _e('Donate if you liked the plugin and support in enhancing Smooth Slider and creating new plugins','smooth-slider'); ?>" ><?php _e('Donate with Paypal','smooth-slider'); ?></a></li>
386
  <li><strong>Current Version: <?php echo SMOOTH_SLIDER_VER;?></strong></li>
387
  </ul>
392
 
393
  <div class="inside">
394
  <div style="margin:10px auto;">
395
+ <a href="https://slidervilla.com/" title="Premium WordPress Slider Plugins" target="_blank"><img src="<?php echo smooth_slider_plugin_url('images/banner-premium.png');?>" alt="Premium WordPress Slider Plugins" width="100%" /></a>
396
  </div>
397
  </div></div>
398
 
slider_versions/smooth_1.php CHANGED
@@ -255,7 +255,7 @@ if ( is_admin() ){ // admin actions
255
  if ( isset($_GET['page']) && ('smooth-slider-admin' == $_GET['page'] or 'smooth-slider-settings' == $_GET['page'])) {
256
  $smooth_slider_curr=get_option('smooth_slider_options');
257
  $active_tab=(isset($smooth_slider_curr['active_tab']))?$smooth_slider_curr['active_tab']:0;
258
- if ( isset($_GET['page']) && ('smooth-slider-admin' == $_GET['page']) ){ if(isset($_POST['active_tab']) ) $active_tab=$_POST['active_tab'];else $active_tab = 0;}
259
  if(empty($active_tab)){$active_tab=0;}
260
  ?>
261
  <script type="text/javascript">
255
  if ( isset($_GET['page']) && ('smooth-slider-admin' == $_GET['page'] or 'smooth-slider-settings' == $_GET['page'])) {
256
  $smooth_slider_curr=get_option('smooth_slider_options');
257
  $active_tab=(isset($smooth_slider_curr['active_tab']))?$smooth_slider_curr['active_tab']:0;
258
+ if ( isset($_GET['page']) && ('smooth-slider-admin' == $_GET['page']) ){ if(isset($_POST['active_tab']) ) $active_tab=sanitize_text_field($_POST['active_tab']);else $active_tab = 0;}
259
  if(empty($active_tab)){$active_tab=0;}
260
  ?>
261
  <script type="text/javascript">
smooth-slider.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /*
3
  Plugin Name: Smooth Slider
4
- Plugin URI: http://slidervilla.com/smooth-slider/
5
  Description: Smooth slider adds a responsive featured content on image slider using shortcode, widget and template tags. Create and embed featured content slider, recent post slider, category slider in less than 60 seconds.
6
- Version: 2.8.7
7
  Author: SliderVilla
8
  Text Domain: smooth-slider
9
- Author URI: http://slidervilla.com/
10
  Wordpress version supported: 3.5 and above
11
  */
12
 
13
- /* Copyright 2009-2017 SliderVilla (email : support@slidervilla.com)
14
 
15
  This program is free software; you can redistribute it and/or modify
16
  it under the terms of the GNU General Public License as published by
@@ -26,17 +26,17 @@ Wordpress version supported: 3.5 and above
26
  along with this program; if not, write to the Free Software
27
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28
  */
29
- //Please visit Plugin page http://slidervilla.com/smooth-slider/ for Changelog
30
  //on activation
31
  //defined global variables and constants here
32
  global $smooth_slider,$default_slider,$smooth_db_version,$default_smooth_slider_settings;
33
  $smooth_slider = get_option('smooth_slider_options');
34
- $smooth_db_version='2.8.7'; //current version of smooth slider database
35
  define('SLIDER_TABLE','smooth_slider'); //Slider TABLE NAME
36
  define('PREV_SLIDER_TABLE','slider'); //Slider TABLE NAME
37
  define('SLIDER_META','smooth_slider_meta'); //Meta TABLE NAME
38
  define('SLIDER_POST_META','smooth_slider_postmeta'); //Meta TABLE NAME
39
- define("SMOOTH_SLIDER_VER","2.8.7",false);//Current Version of Smooth Slider
40
  if ( ! defined( 'SMOOTH_SLIDER_PLUGIN_BASENAME' ) )
41
  define( 'SMOOTH_SLIDER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
42
  if ( ! defined( 'SMOOTH_SLIDER_CSS_DIR' ) ){
@@ -395,7 +395,7 @@ function remove_from_slider($post_id) {
395
  if (!wp_verify_nonce($_POST['sldr-verify'], 'SmoothSlider'))
396
  return $post_id;
397
 
398
- if(empty($_POST['smooth-slider']) and is_post_on_any_slider($post_id)) {
399
  $wpdb->delete( $table_name, array( 'post_id' => $post_id ), array( '%d' ) );
400
  }
401
 
@@ -524,7 +524,7 @@ function add_to_slider_checkbox() {
524
  /* Post Meta Box Style */
525
  wp_enqueue_style( 'smooth-meta-box', smooth_slider_plugin_url( 'css/smooth-meta-box.css' ), false, SMOOTH_SLIDER_VER, 'all');
526
  wp_enqueue_script( 'jquery-ui-datepicker', false,array('jquery','jQuery-ui-core'),SMOOTH_SLIDER_VER, true);
527
- wp_enqueue_style('jquery-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
528
  $dtpicker = smooth_dateformat_PHP_to_jQueryUI($wpDateFormat);
529
  ?>
530
  <?php /* start tab 2.6 */ ?>
@@ -654,7 +654,7 @@ function add_to_slider_checkbox() {
654
  ?>
655
  </select> </td></tr>
656
 
657
- <input type="hidden" name="sldr-verify" id="sldr-verify" value="<?php echo wp_create_nonce('SmoothSlider');?>" />
658
  <tr valign="top">
659
  <th scope="row"><label for="sslider_thumbnail"><?php _e('Custom Thumbnail Image(url)','smooth-slider'); ?></label></th>
660
  <td><input type="text" name="sslider_thumbnail" class="sslider_thumbnail" value="<?php echo $sslider_thumbnail;?>" size="50" />
1
  <?php
2
  /*
3
  Plugin Name: Smooth Slider
4
+ Plugin URI: https://slidervilla.com//smooth-slider/
5
  Description: Smooth slider adds a responsive featured content on image slider using shortcode, widget and template tags. Create and embed featured content slider, recent post slider, category slider in less than 60 seconds.
6
+ Version: 2.8.8
7
  Author: SliderVilla
8
  Text Domain: smooth-slider
9
+ Author URI: https://slidervilla.com//
10
  Wordpress version supported: 3.5 and above
11
  */
12
 
13
+ /* Copyright 2009-2018 SliderVilla (email : support@slidervilla.com)
14
 
15
  This program is free software; you can redistribute it and/or modify
16
  it under the terms of the GNU General Public License as published by
26
  along with this program; if not, write to the Free Software
27
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28
  */
29
+ //Please visit Plugin page https://slidervilla.com//smooth-slider/ for Changelog
30
  //on activation
31
  //defined global variables and constants here
32
  global $smooth_slider,$default_slider,$smooth_db_version,$default_smooth_slider_settings;
33
  $smooth_slider = get_option('smooth_slider_options');
34
+ $smooth_db_version='2.8.8'; //current version of smooth slider database
35
  define('SLIDER_TABLE','smooth_slider'); //Slider TABLE NAME
36
  define('PREV_SLIDER_TABLE','slider'); //Slider TABLE NAME
37
  define('SLIDER_META','smooth_slider_meta'); //Meta TABLE NAME
38
  define('SLIDER_POST_META','smooth_slider_postmeta'); //Meta TABLE NAME
39
+ define("SMOOTH_SLIDER_VER","2.8.8",false);//Current Version of Smooth Slider
40
  if ( ! defined( 'SMOOTH_SLIDER_PLUGIN_BASENAME' ) )
41
  define( 'SMOOTH_SLIDER_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
42
  if ( ! defined( 'SMOOTH_SLIDER_CSS_DIR' ) ){
395
  if (!wp_verify_nonce($_POST['sldr-verify'], 'SmoothSlider'))
396
  return $post_id;
397
 
398
+ if(empty($_POST['smooth-slider']) and is_post_on_any_slider($post_id)) {
399
  $wpdb->delete( $table_name, array( 'post_id' => $post_id ), array( '%d' ) );
400
  }
401
 
524
  /* Post Meta Box Style */
525
  wp_enqueue_style( 'smooth-meta-box', smooth_slider_plugin_url( 'css/smooth-meta-box.css' ), false, SMOOTH_SLIDER_VER, 'all');
526
  wp_enqueue_script( 'jquery-ui-datepicker', false,array('jquery','jQuery-ui-core'),SMOOTH_SLIDER_VER, true);
527
+ wp_enqueue_style('jquery-style', smooth_slider_plugin_url( 'css/jqueryui/1.8.2/themes/smoothness/jquery-ui.css') );
528
  $dtpicker = smooth_dateformat_PHP_to_jQueryUI($wpDateFormat);
529
  ?>
530
  <?php /* start tab 2.6 */ ?>
654
  ?>
655
  </select> </td></tr>
656
 
657
+ <input type="hidden" name="sldr-verify" id="sldr-verify" value="<?php echo wp_create_nonce('SmoothSlider');?>" />
658
  <tr valign="top">
659
  <th scope="row"><label for="sslider_thumbnail"><?php _e('Custom Thumbnail Image(url)','smooth-slider'); ?></label></th>
660
  <td><input type="text" name="sslider_thumbnail" class="sslider_thumbnail" value="<?php echo $sslider_thumbnail;?>" size="50" />