Version Description
- 2015-01-26 =
What's in it for you?
- Fix for zup upload (Niko Strijbol)
- More visual upgrade message (Niko Strijbol)
- Preserve gallery's manual sort order in nggtags shortcode (Frank P. Walentynowicz)
- Add a description field when adding a gallery (Niko Strijbol)
- Show ID when editing a gallery (Niko Strijbol)
- Fix for long album names (Niko Strijbol)
- Update and fix translations (Niko Strijbol)
- Improved Wordpress Integration (Niko Strijbol)
- Image manipulation corrections (Frank P. Walentynowicz)
- Fix manual sort (Niko Strijbol)
- Fixes for multiuser (Niko Strijbol)
- Slideshow Flash retired, replaced with CSS slideshow (Niko Strijbol)
- Code refactoring and optimization (Fernando Zorrilla S.M.)
- Adding QUnit for Javascript Unit testing (Fernando Zorrilla S.M.)
VERY IMPORTANT: Read ON!
NextCellent Gallery provides backward compatibility for older NextGEN until version 1.9.13 .
this plugin will gracefully deactivate if detects NextGEN is working (any version) to avoid compatibility issues.
Please remember to READ THE FAQ!!! Issues for failing to read the FAQ will be IGNORED!!!
If you like it, please spread the word and rate it accordingly. I guess a lot of annoyed users can take advantage of NextCellent. Thank you!
WE APPRECIATE YOUR FEEDBACK. Be our voice and comment it!!!!
Download this release
Release Info
Developer | WPReady |
Plugin | NextCellent Gallery – NextGEN Legacy |
Version | 1.9.25 |
Comparing to | |
See all releases |
Code changes from version 1.9.23 to 1.9.25
- admin/addgallery.php +8 -2
- admin/admin.php +396 -289
- admin/album.php +4 -4
- admin/css/nggadmin.css +2 -0
- admin/functions.php +37 -33
- admin/install.php +16 -22
- admin/js/jquery.MultiFile.js +0 -535
- admin/js/jquery.MultiFile.pack.js +0 -11
- admin/js/swfupload.handler.js +0 -153
- admin/manage-images.php +16 -5
- admin/manage-sort.php +9 -13
- admin/rotate.php +2 -2
- admin/settings.php +122 -167
- admin/upgrade.php +124 -60
- admin/wpmu.php +53 -26
- css/Black_Minimalism.css +36 -17
- css/framework-min.css +2 -0
- css/framework.css +3437 -0
- css/hovereffect.css +36 -18
- css/ngg_dkret3.css +37 -18
- css/ngg_k2.css +37 -18
- css/ngg_shadow.css +36 -17
- css/ngg_shadow2.css +36 -17
- css/nggallery.css +32 -14
- css/qunit-1.16.0.css +264 -0
- js/jquery.cycle.all.js +0 -1491
- js/jquery.cycle.all.min.js +0 -1
- js/ngg.js +15 -1
- js/ngg.slideshow.js +0 -138
- js/ngg.slideshow.min.js +0 -1
- js/nxc.main.js +20 -0
- js/nxc.test.js +584 -0
- js/owl.carousel.js +3069 -0
- js/owl.carousel.min.js +2 -0
- js/qunit-1.16.0.js +2819 -0
- lang/nggallery-fi.mo +0 -0
- lang/nggallery-fi.po +1487 -9488
admin/addgallery.php
CHANGED
@@ -35,8 +35,9 @@ class nggAddGallery {
|
|
35 |
wp_die(__('Cheatin’ uh?'));
|
36 |
|
37 |
$newgallery = esc_attr( $_POST['galleryname']);
|
|
|
38 |
if ( !empty($newgallery) )
|
39 |
-
nggAdmin::create_gallery($newgallery, $defaultpath);
|
40 |
}
|
41 |
|
42 |
if ( isset($_POST['zipupload']) ){
|
@@ -379,6 +380,11 @@ class nggAddGallery {
|
|
379 |
<?php } ?>
|
380 |
<p class="description"><?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _</p></td>
|
381 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
382 |
<?php do_action('ngg_add_new_gallery_form'); ?>
|
383 |
</table>
|
384 |
<div class="submit"><input class="button-primary" type="submit" name= "addgallery" value="<?php _e('Add gallery', 'nggallery') ;?>"/></div>
|
@@ -423,7 +429,7 @@ class nggAddGallery {
|
|
423 |
<br /><?php if ( (is_multisite()) && wpmu_enable_function('wpmuQuotaCheck') ) display_space_usage(); ?></td>
|
424 |
</tr>
|
425 |
</table>
|
426 |
-
<div class="submit"><input class="button-primary" onclick="
|
427 |
</form>
|
428 |
<?php
|
429 |
}
|
35 |
wp_die(__('Cheatin’ uh?'));
|
36 |
|
37 |
$newgallery = esc_attr( $_POST['galleryname']);
|
38 |
+
$description = esc_attr( $_POST['gallerydesc']);
|
39 |
if ( !empty($newgallery) )
|
40 |
+
nggAdmin::create_gallery($newgallery, $defaultpath, true, $description);
|
41 |
}
|
42 |
|
43 |
if ( isset($_POST['zipupload']) ){
|
380 |
<?php } ?>
|
381 |
<p class="description"><?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _</p></td>
|
382 |
</tr>
|
383 |
+
<tr>
|
384 |
+
<th scope="row"><?php _e('Description', 'nggallery') ;?>:</th>
|
385 |
+
<td><textarea name="gallerydesc" id="gallerydesc" cols="50" rows="3"></textarea>
|
386 |
+
<p class="description"><?php _e('Add a description. This is optional and can be changed later.', 'nggallery') ;?></p></td>
|
387 |
+
</tr>
|
388 |
<?php do_action('ngg_add_new_gallery_form'); ?>
|
389 |
</table>
|
390 |
<div class="submit"><input class="button-primary" type="submit" name= "addgallery" value="<?php _e('Add gallery', 'nggallery') ;?>"/></div>
|
429 |
<br /><?php if ( (is_multisite()) && wpmu_enable_function('wpmuQuotaCheck') ) display_space_usage(); ?></td>
|
430 |
</tr>
|
431 |
</table>
|
432 |
+
<div class="submit"><input class="button-primary" onclick="checkZipFile()" type="submit" name= "zipupload" value="<?php _e('Start upload', 'nggallery') ;?>"/></div>
|
433 |
</form>
|
434 |
<?php
|
435 |
}
|
admin/admin.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* nggAdminPanel - Admin Section for NextGEN Gallery
|
4 |
*
|
@@ -7,31 +8,28 @@
|
|
7 |
*
|
8 |
* @since 1.0.0
|
9 |
*/
|
10 |
-
class nggAdminPanel{
|
11 |
|
12 |
// constructor
|
13 |
function __construct() {
|
14 |
|
15 |
// Add the admin menu
|
16 |
-
add_action( 'admin_menu', array
|
17 |
-
|
18 |
-
add_action( 'network_admin_menu', array (&$this, 'add_network_admin_menu') );
|
19 |
|
20 |
// Add the script and style files
|
21 |
-
add_action('admin_print_scripts', array(&$this, 'load_scripts') );
|
22 |
-
add_action('admin_print_styles', array(&$this, 'load_styles') );
|
23 |
|
24 |
// Try to detect plugins that embed their own jQuery and jQuery UI
|
25 |
// libraries and load them in NGG's admin pages
|
26 |
-
add_action('admin_enqueue_scripts', array(&$this, 'buffer_scripts'), 0);
|
27 |
-
add_action('admin_print_scripts', array(&$this, 'output_scripts'), PHP_INT_MAX);
|
28 |
|
29 |
-
|
30 |
-
add_filter('contextual_help', array(&$this, 'show_help'), 10, 2);
|
31 |
-
add_filter('current_screen', array(&$this, 'edit_current_screen'));
|
32 |
|
33 |
-
|
34 |
-
|
35 |
|
36 |
}
|
37 |
|
@@ -39,65 +37,66 @@ class nggAdminPanel{
|
|
39 |
* If a NGG page is being requested, we buffer any rendering of <script>
|
40 |
* tags to detect conflicts and remove them if need be
|
41 |
*/
|
42 |
-
function buffer_scripts()
|
43 |
-
{
|
44 |
// Is this a NGG admin page?
|
45 |
-
if (isset($_REQUEST['page']) && strpos($_REQUEST['page']
|
46 |
ob_start();
|
47 |
}
|
48 |
}
|
49 |
|
50 |
-
function output_scripts()
|
51 |
-
{
|
52 |
// Is this a NGG admin page?
|
53 |
-
if (isset($_REQUEST['page']) && strpos($_REQUEST['page']
|
54 |
-
$plugin_folder
|
55 |
-
$skipjs_count
|
56 |
-
$html
|
57 |
ob_end_clean();
|
58 |
|
59 |
-
if (!defined('NGG_JQUERY_CONFLICT_DETECTION')) {
|
60 |
-
define('NGG_JQUERY_CONFLICT_DETECTION',
|
61 |
}
|
62 |
|
63 |
-
if (NGG_JQUERY_CONFLICT_DETECTION) {
|
64 |
// Detect custom jQuery script
|
65 |
-
if (preg_match_all("/<script.*wp-content.*jquery[-_\.](min\.)?js.*<\script>/", $html, $matches, PREG_SET_ORDER)) {
|
66 |
-
foreach ($matches as $match) {
|
67 |
-
$old_script = array_shift($match);
|
68 |
-
if (strpos($old_script, NGGFOLDER) ===
|
69 |
-
$html = str_replace($old_script, '', $html);
|
|
|
70 |
}
|
71 |
}
|
72 |
|
73 |
// Detect custom jQuery UI script and remove
|
74 |
-
if (preg_match_all("/<script.*wp-content.*jquery[-_\.]ui.*<\/script>/", $html, $matches, PREG_SET_ORDER)) {
|
75 |
-
$detected_jquery_ui =
|
76 |
-
foreach ($matches as $match) {
|
77 |
-
$old_script = array_shift($match);
|
78 |
-
if (strpos($old_script, NGGFOLDER) ===
|
79 |
-
$html = str_replace($old_script, '', $html);
|
|
|
80 |
}
|
81 |
}
|
82 |
|
83 |
-
if (isset($_REQUEST['skipjs'])) {
|
84 |
-
foreach ($_REQUEST['skipjs'] as $js) {
|
85 |
-
$js = preg_quote($js);
|
86 |
-
if (preg_match_all("#<script.*{$js}.*</script>#", $html, $matches, PREG_SET_ORDER)) {
|
87 |
-
foreach ($matches as $match) {
|
88 |
-
$old_script = array_shift($match);
|
89 |
-
if (strpos($old_script, NGGFOLDER) ===
|
90 |
-
$html = str_replace($old_script, '', $html);
|
|
|
91 |
}
|
92 |
}
|
93 |
}
|
94 |
-
$skipjs_count = count($_REQUEST['skipjs']);
|
95 |
}
|
96 |
|
97 |
|
98 |
// Use WordPress built-in version of jQuery
|
99 |
-
$jquery_url = includes_url('js/jquery/jquery.js');
|
100 |
-
$html
|
101 |
"<script type='text/javascript' src='{$jquery_url}'></script>\n",
|
102 |
"<script type='text/javascript'>
|
103 |
window.onerror = function(msg, url, line){
|
@@ -113,158 +112,180 @@ class nggAdminPanel{
|
|
113 |
return true;
|
114 |
};</script>\n",
|
115 |
$html
|
116 |
-
));
|
117 |
}
|
118 |
|
119 |
echo $html;
|
120 |
}
|
121 |
}
|
122 |
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
-
add_submenu_page( NGGFOLDER , __('Overview', 'nggallery'), __('Overview', 'nggallery'), 'NextGEN Gallery overview', NGGFOLDER, array (&$this, 'show_menu'));
|
131 |
-
add_submenu_page( NGGFOLDER , __('Add Gallery / Images', 'nggallery'), __('Add Gallery / Images', 'nggallery'), 'NextGEN Upload images', 'nggallery-add-gallery', array (&$this, 'show_menu'));
|
132 |
-
add_submenu_page( NGGFOLDER , __('Galleries', 'nggallery'), __('Galleries', 'nggallery'), 'NextGEN Manage gallery', 'nggallery-manage-gallery', array (&$this, 'show_menu'));
|
133 |
-
add_submenu_page( NGGFOLDER , __('Albums', 'nggallery'), __('Albums', 'nggallery'), 'NextGEN Edit album', 'nggallery-manage-album', array (&$this, 'show_menu'));
|
134 |
-
add_submenu_page( NGGFOLDER , __('Tags', 'nggallery'), __('Tags', 'nggallery'), 'NextGEN Manage tags', 'nggallery-tags', array (&$this, 'show_menu'));
|
135 |
-
add_submenu_page( NGGFOLDER , __('Settings', 'nggallery'), __('Settings', 'nggallery'), 'NextGEN Change options', 'nggallery-options', array (&$this, 'show_menu'));
|
136 |
-
if ( wpmu_enable_function('wpmuStyle') )
|
137 |
-
add_submenu_page( NGGFOLDER , __('Style', 'nggallery'), __('Style', 'nggallery'), 'NextGEN Change style', 'nggallery-style', array (&$this, 'show_menu'));
|
138 |
-
if ( wpmu_enable_function('wpmuRoles') || is_super_admin() )
|
139 |
-
add_submenu_page( NGGFOLDER , __('Roles', 'nggallery'), __('Roles', 'nggallery'), 'activate_plugins', 'nggallery-roles', array (&$this, 'show_menu'));
|
140 |
-
add_submenu_page( NGGFOLDER , __('About this Gallery', 'nggallery'), __('About', 'nggallery'), 'NextGEN Gallery overview', 'nggallery-about', array (&$this, 'show_menu'));
|
141 |
-
|
142 |
-
if ( !is_multisite() || is_super_admin() )
|
143 |
-
add_submenu_page( NGGFOLDER , __('Reset / Uninstall', 'nggallery'), __('Reset / Uninstall', 'nggallery'), 'activate_plugins', 'nggallery-setup', array (&$this, 'show_menu'));
|
144 |
|
145 |
//register the column fields
|
146 |
$this->register_columns();
|
147 |
}
|
148 |
|
149 |
// integrate the network menu
|
150 |
-
function add_network_admin_menu()
|
|
|
|
|
|
|
|
|
|
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
add_submenu_page( NGGFOLDER , __('Reset / Uninstall', 'nggallery'), __('Reset / Uninstall', 'nggallery'), 'activate_plugins', 'nggallery-setup', array (&$this, 'show_menu'));
|
155 |
}
|
156 |
-
|
157 |
-
/**
|
158 |
-
* Adding NextGEN Gallery to the Admin bar
|
159 |
-
*
|
160 |
-
* @since 1.9.0
|
161 |
-
*
|
162 |
-
* @return void
|
163 |
-
*/
|
164 |
-
|
165 |
-
function admin_bar_menu() {
|
166 |
-
// If the current user can't write posts, this is all of no use, so let's not output an admin menu
|
167 |
-
if ( !current_user_can('NextGEN Gallery overview') )
|
168 |
-
return;
|
169 |
-
|
170 |
-
global $wp_admin_bar;
|
171 |
-
|
172 |
-
$wp_admin_bar->add_menu( array( 'id' => 'ngg-menu', 'title' => __( 'Gallery' ), 'href' => admin_url('admin.php?page='. NGGFOLDER) ) );
|
173 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-overview', 'title' => __('Overview', 'nggallery'), 'href' => admin_url('admin.php?page='. NGGFOLDER) ) );
|
174 |
-
if ( current_user_can('NextGEN Upload images') )
|
175 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-add-gallery', 'title' => __('Add Gallery / Images', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-add-gallery') ) );
|
176 |
-
if ( current_user_can('NextGEN Manage gallery') )
|
177 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-manage-gallery', 'title' => __('Gallery', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-manage-gallery') ) );
|
178 |
-
if ( current_user_can('NextGEN Edit album') )
|
179 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-manage-album', 'title' => __( 'Albums', 'nggallery' ), 'href' => admin_url('admin.php?page=nggallery-manage-album') ) );
|
180 |
-
if ( current_user_can('NextGEN Manage tags') )
|
181 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-tags', 'title' => __('Tags', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-tags') ) );
|
182 |
-
if ( current_user_can('NextGEN Change options') )
|
183 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-options', 'title' => __('Settings', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-options') ) );
|
184 |
-
if ( wpmu_enable_function('wpmuStyle') && ( current_user_can('NextGEN Change style') ))
|
185 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-style', 'title' => __('Style', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-style') ) );
|
186 |
-
$wp_admin_bar->add_menu( array( 'parent' => 'ngg-menu', 'id' => 'ngg-menu-about', 'title' => __('About', 'nggallery'), 'href' => admin_url('admin.php?page=nggallery-about') ) );
|
187 |
-
}
|
188 |
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
nggallery_wpmu_setup();
|
194 |
-
|
195 |
|
196 |
// load the script for the defined page and load only this code
|
197 |
-
|
198 |
function show_menu() {
|
199 |
|
200 |
global $ngg;
|
201 |
-
|
202 |
-
|
203 |
-
if( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
|
204 |
-
include_once ( dirname (__FILE__) . '/functions.php' );
|
205 |
-
include_once ( dirname (__FILE__) . '/upgrade.php' );
|
206 |
-
nggallery_upgrade_page();
|
207 |
-
return;
|
208 |
-
}
|
209 |
|
210 |
// Set installation date
|
211 |
-
if( empty($ngg->options['installDate']) ) {
|
212 |
$ngg->options['installDate'] = time();
|
213 |
-
update_option('ngg_options', $ngg->options);
|
214 |
}
|
215 |
|
216 |
-
|
217 |
case "nggallery-add-gallery" :
|
218 |
-
include_once
|
219 |
-
include_once
|
220 |
$ngg->addgallery_page = new nggAddGallery ();
|
221 |
$ngg->addgallery_page->controller();
|
222 |
break;
|
223 |
case "nggallery-manage-gallery" :
|
224 |
-
include_once
|
225 |
-
include_once
|
226 |
// Initate the Manage Gallery page
|
227 |
$ngg->manage_page = new nggManageGallery ();
|
228 |
// Render the output now, because you cannot access a object during the constructor is not finished
|
229 |
$ngg->manage_page->controller();
|
230 |
break;
|
231 |
case "nggallery-manage-album" :
|
232 |
-
include_once
|
233 |
$ngg->manage_album = new nggManageAlbum ();
|
234 |
$ngg->manage_album->controller();
|
235 |
break;
|
236 |
case "nggallery-options" :
|
237 |
-
include_once
|
238 |
$ngg->option_page = new nggOptions ();
|
239 |
$ngg->option_page->controller();
|
240 |
break;
|
241 |
case "nggallery-tags" :
|
242 |
-
include_once
|
243 |
break;
|
244 |
case "nggallery-style" :
|
245 |
-
include_once
|
246 |
$ngg->nggallery_style = new NGG_Style ();
|
247 |
$ngg->nggallery_style->controller();
|
248 |
break;
|
249 |
case "nggallery-setup" :
|
250 |
-
include_once
|
251 |
nggallery_admin_setup();
|
252 |
break;
|
253 |
case "nggallery-roles" :
|
254 |
-
include_once
|
255 |
nggallery_admin_roles();
|
256 |
break;
|
257 |
case "nggallery-import" :
|
258 |
-
include_once
|
259 |
nggallery_admin_import();
|
260 |
break;
|
261 |
case "nggallery-about" :
|
262 |
-
include_once
|
263 |
nggallery_admin_about();
|
264 |
break;
|
265 |
case "nggallery" :
|
266 |
default :
|
267 |
-
include_once
|
268 |
nggallery_admin_overview();
|
269 |
break;
|
270 |
}
|
@@ -274,52 +295,54 @@ class nggAdminPanel{
|
|
274 |
global $wp_version;
|
275 |
|
276 |
// no need to go on if it's not a plugin page
|
277 |
-
if( !isset($_GET['page']) )
|
278 |
return;
|
|
|
279 |
|
280 |
-
wp_register_script('ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array('jquery'), '1.4.1');
|
281 |
-
wp_localize_script('ngg-ajax', 'nggAjaxSetup', array(
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
) );
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
'invalid_filetype' => __('This file type is not allowed. Please try another.'),
|
297 |
-
'not_an_image' => __('This file is not an image. Please try another.'),
|
298 |
-
'image_memory_exceeded' => __('Memory exceeded. Please try another smaller file.'),
|
299 |
-
'image_dimensions_exceeded' => __('This is larger than the maximum size. Please try another.'),
|
300 |
-
'default_error' => __('An error occurred in the upload. Please try again later.'),
|
301 |
-
'missing_upload_url' => __('There was a configuration error. Please contact the server administrator.'),
|
302 |
-
'upload_limit_exceeded' => __('You may only upload 1 file.'),
|
303 |
-
'http_error' => __('HTTP error.'),
|
304 |
-
'upload_failed' => __('Upload failed.'),
|
305 |
-
'io_error' => __('IO error.'),
|
306 |
-
'security_error' => __('Security error.'),
|
307 |
-
'file_cancelled' => __('File canceled.'),
|
308 |
-
'upload_stopped' => __('Upload stopped.'),
|
309 |
-
'dismiss' => __('Dismiss'),
|
310 |
-
'crunching' => __('Crunching…'),
|
311 |
-
'deleted' => __('moved to the trash.'),
|
312 |
-
'error_uploading' => __('“%s” has failed to upload due to an error'),
|
313 |
-
'no_gallery' => __('You didn\'t select a gallery!','nggallery')
|
314 |
-
) );
|
315 |
-
wp_register_script('ngg-progressbar', NGGALLERY_URLPATH .'admin/js/ngg.progressbar.js', array('jquery'), '2.0.1');
|
316 |
-
wp_register_script('jquery-ui-autocomplete', NGGALLERY_URLPATH .'admin/js/jquery.ui.autocomplete.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.8.15');
|
317 |
-
|
318 |
-
switch ($_GET['page']) {
|
319 |
case NGGFOLDER :
|
320 |
wp_enqueue_script( 'postbox' );
|
321 |
add_thickbox();
|
322 |
-
|
323 |
case "nggallery-manage-gallery" :
|
324 |
wp_enqueue_script( 'postbox' );
|
325 |
wp_enqueue_script( 'ngg-ajax' );
|
@@ -327,162 +350,244 @@ class nggAdminPanel{
|
|
327 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
328 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
329 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
case "nggallery-manage-album" :
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
case "nggallery-options" :
|
345 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
346 |
-
|
347 |
-
|
348 |
case "nggallery-add-gallery" :
|
349 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
350 |
wp_enqueue_script( 'ngg-plupload-handler' );
|
351 |
wp_enqueue_script( 'ngg-ajax' );
|
352 |
wp_enqueue_script( 'ngg-progressbar' );
|
353 |
-
|
354 |
-
wp_enqueue_script( 'jqueryFileTree', NGGALLERY_URLPATH .'admin/js/jqueryFileTree/jqueryFileTree.js', array('jquery'), '1.0.1' );
|
355 |
-
|
356 |
case "nggallery-style" :
|
357 |
wp_enqueue_script( 'codepress' );
|
358 |
-
|
359 |
|
360 |
}
|
361 |
}
|
362 |
|
|
|
|
|
|
|
363 |
function load_styles() {
|
364 |
-
|
365 |
-
|
366 |
-
wp_register_style( '
|
367 |
-
wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH .'admin/css/jquery.ui.css', false, '1.8.5', 'screen' );
|
368 |
|
369 |
-
|
370 |
-
if( !isset($_GET['page']) )
|
371 |
return;
|
|
|
372 |
|
373 |
-
switch ($_GET['page']) {
|
374 |
case NGGFOLDER :
|
375 |
wp_enqueue_style( 'thickbox' );
|
376 |
case "nggallery-about" :
|
377 |
wp_enqueue_style( 'nggadmin' );
|
378 |
-
|
379 |
-
if ( !defined('IS_WP_3_3') )
|
380 |
-
wp_admin_css( 'css/dashboard' );
|
381 |
-
break;
|
382 |
case "nggallery-add-gallery" :
|
383 |
wp_enqueue_style( 'ngg-jqueryui' );
|
384 |
-
wp_enqueue_style( 'jqueryFileTree', NGGALLERY_URLPATH .'admin/js/jqueryFileTree/jqueryFileTree.css', false, '1.0.1', 'screen' );
|
385 |
-
break;
|
386 |
case "nggallery-options" :
|
387 |
-
wp_enqueue_style( 'nggtabs', NGGALLERY_URLPATH .'admin/css/jquery.ui.tabs.css', false, '2.5.0', 'screen' );
|
388 |
wp_enqueue_style( 'nggadmin' );
|
389 |
-
|
|
|
390 |
case "nggallery-manage-gallery" :
|
391 |
-
|
392 |
-
|
393 |
case "nggallery-roles" :
|
394 |
-
break;
|
395 |
case "nggallery-manage-album" :
|
396 |
wp_enqueue_style( 'ngg-jqueryui' );
|
397 |
wp_enqueue_style( 'nggadmin' );
|
398 |
-
|
399 |
case "nggallery-tags" :
|
400 |
-
wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, '2.6.1', 'screen' );
|
401 |
break;
|
402 |
case "nggallery-style" :
|
403 |
-
|
404 |
-
}
|
405 |
-
}
|
406 |
-
|
407 |
-
function show_help($help, $screen) {
|
408 |
-
|
409 |
-
// since WP3.0 it's an object
|
410 |
-
if ( is_object($screen) )
|
411 |
-
$screen = $screen->id;
|
412 |
-
|
413 |
-
$link = '';
|
414 |
-
// menu title is localized...
|
415 |
-
$i18n = strtolower ( _n( 'Gallery', 'Galleries', 1, 'nggallery' ) );
|
416 |
-
|
417 |
-
switch ($screen) {
|
418 |
-
case 'toplevel_page_' . NGGFOLDER :
|
419 |
-
$link = __('<a href="http://www.wpgetready.com" target="_blank">Introduction</a>', 'nggallery');
|
420 |
-
break;
|
421 |
-
case "{$i18n}_page_nggallery-about" :
|
422 |
-
$link = __('<a href="http://www.nextgen-gallery.com/languages" target="_blank">Languages</a>', 'nggallery');
|
423 |
-
break;
|
424 |
-
}
|
425 |
-
|
426 |
-
if ( !empty($link) ) {
|
427 |
-
$help = '<h5>' . __('Get help with NextCellent Gallery', 'nggallery') . '</h5>';
|
428 |
-
$help .= '<div class="metabox-prefs">';
|
429 |
-
$help .= $link;
|
430 |
-
$help .= "</div>\n";
|
431 |
-
$help .= '<h5>' . __('More Help & Info', 'nggallery') . '</h5>';
|
432 |
-
$help .= '<div class="metabox-prefs">';
|
433 |
-
$help .= __('<a href="http://wordpress.org/tags/nextcellent-gallery-nextgen-legacy" target="_blank">Support Forums</a>', 'nggallery');
|
434 |
-
$help .= ' | <a href="http://wordpress.org/plugins/nextcellent-gallery-nextgen-legacy/" target="_blank">' . __('Download latest version', 'nggallery') . '</a>';
|
435 |
-
$help .= "</div>\n";
|
436 |
}
|
437 |
-
|
438 |
-
return $help;
|
439 |
}
|
440 |
|
441 |
-
/**
|
442 |
-
* New wrapper for WordPress 3.3, so contextual help will be added to the admin bar
|
443 |
-
* Rework this see http://wpdevel.wordpress.com/2011/12/06/help-and-screen-api-changes-in-3-3/
|
444 |
-
*
|
445 |
-
* @since 1.9.0
|
446 |
-
* @param object $screen
|
447 |
-
* @return void
|
448 |
-
*/
|
449 |
-
function add_contextual_help($screen) {
|
450 |
-
|
451 |
-
$help = $this->show_help('', $screen);
|
452 |
-
//add_contextual_help( $screen, $help );
|
453 |
-
}
|
454 |
-
|
455 |
/**
|
456 |
-
*
|
|
|
|
|
457 |
*
|
458 |
-
|
459 |
-
*
|
460 |
-
* @return object $screen
|
461 |
*/
|
462 |
-
function edit_current_screen($screen) {
|
463 |
-
|
464 |
-
if ( is_string($screen) )
|
465 |
-
$screen = convert_to_screen($screen);
|
466 |
|
467 |
// menu title is localized, so we need to change the toplevel name
|
468 |
-
$i18n = strtolower
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
|
470 |
-
|
|
|
|
|
|
|
|
|
|
|
471 |
case "{$i18n}_page_nggallery-manage-gallery" :
|
472 |
// we would like to have screen option only at the manage images / gallery page
|
473 |
-
if ( isset ($_POST['
|
474 |
-
$screen = $screen;
|
475 |
-
else if ( (isset($_GET['mode']) && $_GET['mode'] == 'edit') || isset ($_POST['backToGallery']) )
|
476 |
$screen->base = $screen->id = 'nggallery-manage-images';
|
477 |
-
else
|
478 |
-
$screen = $screen;
|
479 |
-
else
|
480 |
$screen->base = $screen->id = 'nggallery-manage-gallery';
|
481 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
482 |
}
|
483 |
|
484 |
-
|
485 |
-
|
|
|
|
|
|
|
|
|
486 |
|
487 |
return $screen;
|
488 |
}
|
@@ -493,21 +598,23 @@ class nggAdminPanel{
|
|
493 |
* @return void
|
494 |
*/
|
495 |
function register_columns() {
|
496 |
-
include_once
|
497 |
|
498 |
-
$wp_list_table = new _NGG_Images_List_Table('nggallery-manage-images');
|
499 |
|
500 |
-
include_once
|
501 |
|
502 |
-
$wp_list_table = new _NGG_Galleries_List_Table('nggallery-manage-gallery');
|
503 |
}
|
504 |
}
|
505 |
|
506 |
-
function wpmu_enable_function($value) {
|
507 |
-
if (is_multisite()) {
|
508 |
-
$ngg_options = get_site_option('ngg_options');
|
509 |
-
|
|
|
510 |
}
|
|
|
511 |
// if this is not WPMU, enable it !
|
512 |
return true;
|
513 |
}
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* nggAdminPanel - Admin Section for NextGEN Gallery
|
5 |
*
|
8 |
*
|
9 |
* @since 1.0.0
|
10 |
*/
|
11 |
+
class nggAdminPanel {
|
12 |
|
13 |
// constructor
|
14 |
function __construct() {
|
15 |
|
16 |
// Add the admin menu
|
17 |
+
add_action( 'admin_menu', array( &$this, 'add_menu' ) );
|
18 |
+
add_action( 'network_admin_menu', array( &$this, 'add_network_admin_menu' ) );
|
|
|
19 |
|
20 |
// Add the script and style files
|
21 |
+
add_action( 'admin_print_scripts', array( &$this, 'load_scripts' ) );
|
22 |
+
add_action( 'admin_print_styles', array( &$this, 'load_styles' ) );
|
23 |
|
24 |
// Try to detect plugins that embed their own jQuery and jQuery UI
|
25 |
// libraries and load them in NGG's admin pages
|
26 |
+
add_action( 'admin_enqueue_scripts', array( &$this, 'buffer_scripts' ), 0 );
|
27 |
+
add_action( 'admin_print_scripts', array( &$this, 'output_scripts' ), PHP_INT_MAX );
|
28 |
|
29 |
+
add_filter( 'current_screen', array( &$this, 'edit_current_screen' ) );
|
|
|
|
|
30 |
|
31 |
+
// Add WPML hook to register description / alt text for translation
|
32 |
+
add_action( 'ngg_image_updated', array( 'nggGallery', 'RegisterString' ) );
|
33 |
|
34 |
}
|
35 |
|
37 |
* If a NGG page is being requested, we buffer any rendering of <script>
|
38 |
* tags to detect conflicts and remove them if need be
|
39 |
*/
|
40 |
+
function buffer_scripts() {
|
|
|
41 |
// Is this a NGG admin page?
|
42 |
+
if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], 'nggallery' ) !== false ) {
|
43 |
ob_start();
|
44 |
}
|
45 |
}
|
46 |
|
47 |
+
function output_scripts() {
|
|
|
48 |
// Is this a NGG admin page?
|
49 |
+
if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], 'nggallery' ) !== false ) {
|
50 |
+
$plugin_folder = NGGFOLDER;
|
51 |
+
$skipjs_count = 0;
|
52 |
+
$html = ob_get_contents();
|
53 |
ob_end_clean();
|
54 |
|
55 |
+
if ( ! defined( 'NGG_JQUERY_CONFLICT_DETECTION' ) ) {
|
56 |
+
define( 'NGG_JQUERY_CONFLICT_DETECTION', true );
|
57 |
}
|
58 |
|
59 |
+
if ( NGG_JQUERY_CONFLICT_DETECTION ) {
|
60 |
// Detect custom jQuery script
|
61 |
+
if ( preg_match_all( "/<script.*wp-content.*jquery[-_\.](min\.)?js.*<\script>/", $html, $matches, PREG_SET_ORDER ) ) {
|
62 |
+
foreach ( $matches as $match ) {
|
63 |
+
$old_script = array_shift( $match );
|
64 |
+
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
65 |
+
$html = str_replace( $old_script, '', $html );
|
66 |
+
}
|
67 |
}
|
68 |
}
|
69 |
|
70 |
// Detect custom jQuery UI script and remove
|
71 |
+
if ( preg_match_all( "/<script.*wp-content.*jquery[-_\.]ui.*<\/script>/", $html, $matches, PREG_SET_ORDER ) ) {
|
72 |
+
$detected_jquery_ui = true;
|
73 |
+
foreach ( $matches as $match ) {
|
74 |
+
$old_script = array_shift( $match );
|
75 |
+
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
76 |
+
$html = str_replace( $old_script, '', $html );
|
77 |
+
}
|
78 |
}
|
79 |
}
|
80 |
|
81 |
+
if ( isset( $_REQUEST['skipjs'] ) ) {
|
82 |
+
foreach ( $_REQUEST['skipjs'] as $js ) {
|
83 |
+
$js = preg_quote( $js );
|
84 |
+
if ( preg_match_all( "#<script.*{$js}.*</script>#", $html, $matches, PREG_SET_ORDER ) ) {
|
85 |
+
foreach ( $matches as $match ) {
|
86 |
+
$old_script = array_shift( $match );
|
87 |
+
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
88 |
+
$html = str_replace( $old_script, '', $html );
|
89 |
+
}
|
90 |
}
|
91 |
}
|
92 |
}
|
93 |
+
$skipjs_count = count( $_REQUEST['skipjs'] );
|
94 |
}
|
95 |
|
96 |
|
97 |
// Use WordPress built-in version of jQuery
|
98 |
+
$jquery_url = includes_url( 'js/jquery/jquery.js' );
|
99 |
+
$html = implode( '', array(
|
100 |
"<script type='text/javascript' src='{$jquery_url}'></script>\n",
|
101 |
"<script type='text/javascript'>
|
102 |
window.onerror = function(msg, url, line){
|
112 |
return true;
|
113 |
};</script>\n",
|
114 |
$html
|
115 |
+
) );
|
116 |
}
|
117 |
|
118 |
echo $html;
|
119 |
}
|
120 |
}
|
121 |
|
122 |
+
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Enable dash icons for WP latest versions. See https://developer.wordpress.org/resource/dashicons/#format-gallery
|
126 |
+
* @param $wp_version defaults to current WP version
|
127 |
+
* @return string
|
128 |
+
*/
|
129 |
+
|
130 |
+
function get_icon_gallery($wp_version='') {
|
131 |
+
if (empty($wp_version)) {
|
132 |
+
$wp_version= get_bloginfo( 'version' ) ; //get WP Version
|
133 |
+
}
|
134 |
+
if ( $wp_version >= 3.8 ) {
|
135 |
+
return 'dashicons-format-gallery'; //new style
|
136 |
+
}
|
137 |
+
//older style
|
138 |
+
return path_join( NGGALLERY_URLPATH, 'admin/images/nextgen_16_color.png' );
|
139 |
+
}
|
140 |
+
/**
|
141 |
+
* Integrate the menu
|
142 |
+
*
|
143 |
+
*/
|
144 |
+
function add_menu() {
|
145 |
+
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ),
|
146 |
+
'NextGEN Gallery overview', NGGFOLDER, array(&$this,'show_menu'), $this->get_icon_gallery());
|
147 |
+
|
148 |
+
add_submenu_page( NGGFOLDER, __( 'Overview', 'nggallery' ), __( 'Overview', 'nggallery' ), 'NextGEN Gallery overview',
|
149 |
+
NGGFOLDER, array(&$this,'show_menu' ) );
|
150 |
+
|
151 |
+
add_submenu_page( NGGFOLDER, __( 'Add Gallery / Images', 'nggallery' ), __( 'Add Gallery / Images', 'nggallery' ), 'NextGEN Upload images' , 'nggallery-add-gallery',
|
152 |
+
array( &$this, 'show_menu' ) );
|
153 |
+
|
154 |
+
add_submenu_page( NGGFOLDER, __( 'Galleries', 'nggallery' ) , __( 'Galleries', 'nggallery' ) , 'NextGEN Manage gallery', 'nggallery-manage-gallery',
|
155 |
+
array( &$this, 'show_menu' ) );
|
156 |
+
|
157 |
+
add_submenu_page( NGGFOLDER, __( 'Albums', 'nggallery' ) , __( 'Albums', 'nggallery' ) , 'NextGEN Edit album' , 'nggallery-manage-album',
|
158 |
+
array( &$this, 'show_menu' ) );
|
159 |
+
|
160 |
+
add_submenu_page( NGGFOLDER, __( 'Tags', 'nggallery' ) , __( 'Tags', 'nggallery' ) , 'NextGEN Manage tags' , 'nggallery-tags',
|
161 |
+
array( &$this, 'show_menu' ) );
|
162 |
+
|
163 |
+
add_submenu_page( NGGFOLDER, __( 'Settings', 'nggallery' ) , __( 'Settings', 'nggallery' ) , 'NextGEN Change options', 'nggallery-options',
|
164 |
+
array( &$this, 'show_menu' ) );
|
165 |
+
|
166 |
+
if ( wpmu_enable_function( 'wpmuStyle' ) ) {
|
167 |
+
add_submenu_page( NGGFOLDER, __( 'Style', 'nggallery' ), __( 'Style', 'nggallery' ), 'NextGEN Change style', 'nggallery-style',
|
168 |
+
array( &$this, 'show_menu' ) );
|
169 |
+
}
|
170 |
+
if ( wpmu_enable_function( 'wpmuRoles' ) || is_super_admin() ) {
|
171 |
+
add_submenu_page( NGGFOLDER, __( 'Roles', 'nggallery' ), __( 'Roles', 'nggallery' ), 'activate_plugins', 'nggallery-roles',
|
172 |
+
array( &$this, 'show_menu' ) );
|
173 |
+
}
|
174 |
+
add_submenu_page( NGGFOLDER, __( 'About this Gallery', 'nggallery' ) , __( 'About', 'nggallery' ) , 'NextGEN Gallery overview', 'nggallery-about',
|
175 |
+
array( &$this, 'show_menu' ) );
|
176 |
+
|
177 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
178 |
+
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ), 'activate_plugins', 'nggallery-setup',
|
179 |
+
array( &$this, 'show_menu' ) );
|
180 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
|
182 |
//register the column fields
|
183 |
$this->register_columns();
|
184 |
}
|
185 |
|
186 |
// integrate the network menu
|
187 |
+
function add_network_admin_menu() {
|
188 |
+
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ), 'nggallery-wpmu',
|
189 |
+
NGGFOLDER, array(&$this,'show_network_settings'), $this->get_icon_gallery() );
|
190 |
+
|
191 |
+
add_submenu_page( NGGFOLDER, __( 'Network settings', 'nggallery' ), __( 'Network settings', 'nggallery' ), 'nggallery-wpmu',
|
192 |
+
NGGFOLDER, array(&$this, 'show_network_settings' ) );
|
193 |
|
194 |
+
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ), 'activate_plugins',
|
195 |
+
'nggallery-setup', array(&$this, 'show_menu') );
|
|
|
196 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
+
/**
|
199 |
+
* Maybe show an upgrade page.
|
200 |
+
*/
|
201 |
+
private function show_upgrade_page() {
|
202 |
+
|
203 |
+
global $ngg;
|
204 |
+
|
205 |
+
// check for upgrade and show upgrade screen
|
206 |
+
if ( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
|
207 |
+
include_once( dirname( __FILE__ ) . '/functions.php' );
|
208 |
+
include_once( dirname( __FILE__ ) . '/upgrade.php' );
|
209 |
+
nggallery_upgrade_page();
|
210 |
+
|
211 |
+
exit;
|
212 |
+
}
|
213 |
+
}
|
214 |
+
|
215 |
+
// show the network page
|
216 |
+
function show_network_settings() {
|
217 |
+
$this->show_upgrade_page();
|
218 |
+
include_once( dirname( __FILE__ ) . '/style.php' );
|
219 |
+
include_once( dirname( __FILE__ ) . '/wpmu.php' );
|
220 |
nggallery_wpmu_setup();
|
221 |
+
}
|
222 |
|
223 |
// load the script for the defined page and load only this code
|
224 |
+
//20140515: removed donation code (not in use)
|
225 |
function show_menu() {
|
226 |
|
227 |
global $ngg;
|
228 |
+
|
229 |
+
$this->show_upgrade_page();
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
|
231 |
// Set installation date
|
232 |
+
if ( empty( $ngg->options['installDate'] ) ) {
|
233 |
$ngg->options['installDate'] = time();
|
234 |
+
update_option( 'ngg_options', $ngg->options );
|
235 |
}
|
236 |
|
237 |
+
switch ( $_GET['page'] ) {
|
238 |
case "nggallery-add-gallery" :
|
239 |
+
include_once( dirname( __FILE__ ) . '/functions.php' ); // admin functions
|
240 |
+
include_once( dirname( __FILE__ ) . '/addgallery.php' ); // nggallery_admin_add_gallery
|
241 |
$ngg->addgallery_page = new nggAddGallery ();
|
242 |
$ngg->addgallery_page->controller();
|
243 |
break;
|
244 |
case "nggallery-manage-gallery" :
|
245 |
+
include_once( dirname( __FILE__ ) . '/functions.php' ); // admin functions
|
246 |
+
include_once( dirname( __FILE__ ) . '/manage.php' ); // nggallery_admin_manage_gallery
|
247 |
// Initate the Manage Gallery page
|
248 |
$ngg->manage_page = new nggManageGallery ();
|
249 |
// Render the output now, because you cannot access a object during the constructor is not finished
|
250 |
$ngg->manage_page->controller();
|
251 |
break;
|
252 |
case "nggallery-manage-album" :
|
253 |
+
include_once( dirname( __FILE__ ) . '/album.php' ); // nggallery_admin_manage_album
|
254 |
$ngg->manage_album = new nggManageAlbum ();
|
255 |
$ngg->manage_album->controller();
|
256 |
break;
|
257 |
case "nggallery-options" :
|
258 |
+
include_once( dirname( __FILE__ ) . '/settings.php' ); // nggallery_admin_options
|
259 |
$ngg->option_page = new nggOptions ();
|
260 |
$ngg->option_page->controller();
|
261 |
break;
|
262 |
case "nggallery-tags" :
|
263 |
+
include_once( dirname( __FILE__ ) . '/tags.php' ); // nggallery_admin_tags
|
264 |
break;
|
265 |
case "nggallery-style" :
|
266 |
+
include_once( dirname( __FILE__ ) . '/style.php' ); // nggallery_admin_style
|
267 |
$ngg->nggallery_style = new NGG_Style ();
|
268 |
$ngg->nggallery_style->controller();
|
269 |
break;
|
270 |
case "nggallery-setup" :
|
271 |
+
include_once( dirname( __FILE__ ) . '/setup.php' ); // nggallery_admin_setup
|
272 |
nggallery_admin_setup();
|
273 |
break;
|
274 |
case "nggallery-roles" :
|
275 |
+
include_once( dirname( __FILE__ ) . '/roles.php' ); // nggallery_admin_roles
|
276 |
nggallery_admin_roles();
|
277 |
break;
|
278 |
case "nggallery-import" :
|
279 |
+
include_once( dirname( __FILE__ ) . '/myimport.php' ); // nggallery_admin_import
|
280 |
nggallery_admin_import();
|
281 |
break;
|
282 |
case "nggallery-about" :
|
283 |
+
include_once( dirname( __FILE__ ) . '/about.php' ); // nggallery_admin_about
|
284 |
nggallery_admin_about();
|
285 |
break;
|
286 |
case "nggallery" :
|
287 |
default :
|
288 |
+
include_once( dirname( __FILE__ ) . '/overview.php' ); // nggallery_admin_overview
|
289 |
nggallery_admin_overview();
|
290 |
break;
|
291 |
}
|
295 |
global $wp_version;
|
296 |
|
297 |
// no need to go on if it's not a plugin page
|
298 |
+
if ( ! isset( $_GET['page'] ) ) {
|
299 |
return;
|
300 |
+
}
|
301 |
|
302 |
+
wp_register_script( 'ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array( 'jquery' ), '1.4.1' );
|
303 |
+
wp_localize_script( 'ngg-ajax', 'nggAjaxSetup', array(
|
304 |
+
'url' => admin_url( 'admin-ajax.php' ),
|
305 |
+
'action' => 'ngg_ajax_operation',
|
306 |
+
'operation' => '',
|
307 |
+
'nonce' => wp_create_nonce( 'ngg-ajax' ),
|
308 |
+
'ids' => '',
|
309 |
+
'permission' => __( 'You do not have the correct permission', 'nggallery' ),
|
310 |
+
'error' => __( 'Unexpected Error', 'nggallery' ),
|
311 |
+
'failure' => __( 'A failure occurred', 'nggallery' )
|
312 |
+
) );
|
313 |
+
wp_register_script( 'ngg-plupload-handler', NGGALLERY_URLPATH . 'admin/js/plupload.handler.js', array( 'plupload-all' ), '0.0.1' );
|
314 |
+
wp_localize_script( 'ngg-plupload-handler', 'pluploadL10n', array(
|
315 |
+
'queue_limit_exceeded' => __( 'You have attempted to queue too many files.' ),
|
316 |
+
'file_exceeds_size_limit' => __( 'This file exceeds the maximum upload size for this site.' ),
|
317 |
+
'zero_byte_file' => __( 'This file is empty. Please try another.' ),
|
318 |
+
'invalid_filetype' => __( 'This file type is not allowed. Please try another.' ),
|
319 |
+
'not_an_image' => __( 'This file is not an image. Please try another.' ),
|
320 |
+
'image_memory_exceeded' => __( 'Memory exceeded. Please try another smaller file.' ),
|
321 |
+
'image_dimensions_exceeded' => __( 'This is larger than the maximum size. Please try another.' ),
|
322 |
+
'default_error' => __( 'An error occurred in the upload. Please try again later.' ),
|
323 |
+
'missing_upload_url' => __( 'There was a configuration error. Please contact the server administrator.' ),
|
324 |
+
'upload_limit_exceeded' => __( 'You may only upload 1 file.' ),
|
325 |
+
'http_error' => __( 'HTTP error.' ),
|
326 |
+
'upload_failed' => __( 'Upload failed.' ),
|
327 |
+
'io_error' => __( 'IO error.' ),
|
328 |
+
'security_error' => __( 'Security error.' ),
|
329 |
+
'file_cancelled' => __( 'File canceled.' ),
|
330 |
+
'upload_stopped' => __( 'Upload stopped.' ),
|
331 |
+
'dismiss' => __( 'Dismiss' ),
|
332 |
+
'crunching' => __( 'Crunching…' ),
|
333 |
+
'deleted' => __( 'moved to the trash.' ),
|
334 |
+
'error_uploading' => __( '“%s” has failed to upload due to an error' ),
|
335 |
+
'no_gallery' => __( 'You didn\'t select a gallery!', 'nggallery' )
|
336 |
) );
|
337 |
+
wp_register_script( 'ngg-progressbar', NGGALLERY_URLPATH . 'admin/js/ngg.progressbar.js', array( 'jquery' ), '2.0.1' );
|
338 |
+
wp_register_script( 'jquery-ui-autocomplete', NGGALLERY_URLPATH . 'admin/js/jquery.ui.autocomplete.min.js',
|
339 |
+
array('jquery-ui-core','jquery-ui-widget'), '1.8.15' );
|
340 |
+
|
341 |
+
switch ( $_GET['page'] ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
case NGGFOLDER :
|
343 |
wp_enqueue_script( 'postbox' );
|
344 |
add_thickbox();
|
345 |
+
break;
|
346 |
case "nggallery-manage-gallery" :
|
347 |
wp_enqueue_script( 'postbox' );
|
348 |
wp_enqueue_script( 'ngg-ajax' );
|
350 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
351 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
352 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
353 |
+
wp_register_script( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.js', false, '1.3.2' );
|
354 |
+
wp_localize_script( 'shutter', 'shutterSettings', array(
|
355 |
+
'msgLoading' => __( 'L O A D I N G', 'nggallery' ),
|
356 |
+
'msgClose' => __( 'Click to Close', 'nggallery' ),
|
357 |
+
'imageCount' => '1'
|
358 |
+
) );
|
359 |
+
wp_enqueue_script( 'shutter' );
|
360 |
+
break;
|
361 |
case "nggallery-manage-album" :
|
362 |
+
wp_enqueue_script( 'jquery-ui-autocomplete' );
|
363 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
364 |
+
wp_enqueue_script( 'jquery-ui-sortable' );
|
365 |
+
wp_enqueue_script( 'ngg-autocomplete', NGGALLERY_URLPATH . 'admin/js/ngg.autocomplete.js', array( 'jquery-ui-autocomplete' ), '1.0.1' );
|
366 |
+
break;
|
367 |
case "nggallery-options" :
|
368 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
369 |
+
wp_enqueue_script( 'wp-color-picker' );
|
370 |
+
break;
|
371 |
case "nggallery-add-gallery" :
|
372 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
373 |
wp_enqueue_script( 'ngg-plupload-handler' );
|
374 |
wp_enqueue_script( 'ngg-ajax' );
|
375 |
wp_enqueue_script( 'ngg-progressbar' );
|
376 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
377 |
+
wp_enqueue_script( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.js', array( 'jquery' ), '1.0.1' );
|
378 |
+
break;
|
379 |
case "nggallery-style" :
|
380 |
wp_enqueue_script( 'codepress' );
|
381 |
+
break;
|
382 |
|
383 |
}
|
384 |
}
|
385 |
|
386 |
+
/**
|
387 |
+
* Load the icon for the navigation menu
|
388 |
+
*/
|
389 |
function load_styles() {
|
390 |
+
wp_enqueue_style ( 'nggmenu' , NGGALLERY_URLPATH . 'admin/css/menu.css', array() );
|
391 |
+
wp_register_style( 'nggadmin' , NGGALLERY_URLPATH . 'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
|
392 |
+
wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH . 'admin/css/jquery.ui.css', false, '1.8.5', 'screen' );
|
|
|
393 |
|
394 |
+
// no need to go on if it's not a plugin page
|
395 |
+
if ( ! isset( $_GET['page'] ) ) {
|
396 |
return;
|
397 |
+
}
|
398 |
|
399 |
+
switch ( $_GET['page'] ) {
|
400 |
case NGGFOLDER :
|
401 |
wp_enqueue_style( 'thickbox' );
|
402 |
case "nggallery-about" :
|
403 |
wp_enqueue_style( 'nggadmin' );
|
404 |
+
break;
|
|
|
|
|
|
|
405 |
case "nggallery-add-gallery" :
|
406 |
wp_enqueue_style( 'ngg-jqueryui' );
|
407 |
+
wp_enqueue_style( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.css', false, '1.0.1', 'screen' );
|
|
|
408 |
case "nggallery-options" :
|
409 |
+
wp_enqueue_style( 'nggtabs', NGGALLERY_URLPATH . 'admin/css/jquery.ui.tabs.css', false, '2.5.0', 'screen' );
|
410 |
wp_enqueue_style( 'nggadmin' );
|
411 |
+
wp_enqueue_style( 'wp-color-picker' );
|
412 |
+
break;
|
413 |
case "nggallery-manage-gallery" :
|
414 |
+
wp_enqueue_style( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.css', false, '1.3.2', 'screen' );
|
415 |
+
wp_enqueue_style( 'datepicker', NGGALLERY_URLPATH . 'admin/css/jquery.ui.datepicker.css', false, '1.8.2', 'screen' );
|
416 |
case "nggallery-roles" :
|
|
|
417 |
case "nggallery-manage-album" :
|
418 |
wp_enqueue_style( 'ngg-jqueryui' );
|
419 |
wp_enqueue_style( 'nggadmin' );
|
420 |
+
break;
|
421 |
case "nggallery-tags" :
|
422 |
+
wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH . 'admin/css/tags-admin.css', false, '2.6.1', 'screen' );
|
423 |
break;
|
424 |
case "nggallery-style" :
|
425 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
}
|
|
|
|
|
427 |
}
|
428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
/**
|
430 |
+
* Add help and options to the correct screens
|
431 |
+
*
|
432 |
+
* @since 1.9.24
|
433 |
*
|
434 |
+
* @param object $screen The current screen.
|
435 |
+
*
|
436 |
+
* @return object $screen The current screen.
|
437 |
*/
|
438 |
+
function edit_current_screen( $screen ) {
|
|
|
|
|
|
|
439 |
|
440 |
// menu title is localized, so we need to change the toplevel name
|
441 |
+
$i18n = strtolower( __( 'Galleries', 'nggallery' ) );
|
442 |
+
|
443 |
+
switch ( $screen->id ) {
|
444 |
+
case 'toplevel_page_' . NGGFOLDER :
|
445 |
+
//The tab content
|
446 |
+
$help = '<p>' . __( 'Welcome to your NextCellent Dashboard! This screen gives you all kinds of information about NextCellent at glance. You can get help for any screen by clicking the Help tab in the upper corner.' ) . '</p>';
|
447 |
+
//Add the tab
|
448 |
+
$screen->add_help_tab( array(
|
449 |
+
'id' => $screen->id . '-welcome',
|
450 |
+
'title' => 'Overview',
|
451 |
+
'content' => $help
|
452 |
+
) );
|
453 |
+
|
454 |
+
//The tab content
|
455 |
+
$help = '<p>' . __( 'The boxes on your overview screen are:', 'nggallery' ) . '</p>';
|
456 |
+
$help .= '<p><strong>' . __( 'At a Glance', 'nggallery' ) . '</strong> - ' . __( 'Shows some general information about your site, such as the number of pictures, albums and galleries.', 'nggallery' ) . '</p>';
|
457 |
+
$help .= '<p><strong>' . __( 'Latest News', 'nggallery' ) . '</strong> - ' . __( 'The latest NextCellent news.', 'nggallery' ) . '</p>';
|
458 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
459 |
+
$help .= '<p><strong>' . __( 'Related plugins', 'nggallery' ) . '</strong> - ' . __( 'Shows plugins that extend NextCellent.', 'nggallery' ) . ' <strong>' . __( 'Pay attention', 'nggallery' ) . '</strong>: ' . __( 'third parties plugins that are compatible with NGG may not be 100% compatible with NextCellent Gallery!', 'nggallery' ) . '</p>';
|
460 |
+
}
|
461 |
+
$help .= '<p><strong>' . __( 'Help me help YOU!', 'nggallery' ) . '</strong> - ' . __( 'Shows general information about he plugin and some links.', 'nggallery' ) . '</p>';
|
462 |
+
if ( ! ( get_locale() == 'en_US' ) ) {
|
463 |
+
$help .= '<p><strong>' . __( 'Translation', 'nggallery' ) . '</strong> - ' . __( 'View information about the current translation.' ) . '</p>';
|
464 |
+
}
|
465 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
466 |
+
$help .= '<p><strong>' . __( 'Server Settings', 'nggallery' ) . '</strong> - ' . __( 'Show all the server settings!.', 'nggallery' ) . '</p>';
|
467 |
+
$help .= '<p><strong>' . __( 'Plugin Check', 'nggallery' ) . '</strong> - ' . __( 'Check if there are known errors in your installation.', 'nggallery' ) . '</p>';
|
468 |
+
}
|
469 |
+
//Add the tab
|
470 |
+
$screen->add_help_tab( array(
|
471 |
+
'id' => $screen->id . '-content',
|
472 |
+
'title' => 'Content',
|
473 |
+
'content' => $help
|
474 |
+
) );
|
475 |
+
break;
|
476 |
+
case "{$i18n}_page_nggallery-add-gallery" :
|
477 |
+
|
478 |
+
global $nggdb;
|
479 |
+
$gallerylist = $nggdb->find_all_galleries( 'gid', 'DESC' ); //look for galleries
|
480 |
+
|
481 |
+
$help = '<p>' . __( 'On this page you can add galleries and pictures to those galleries.', 'nggallery' ) . '</p>';
|
482 |
+
if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) {
|
483 |
+
$help .= '<p><strong>' . __( 'New gallery', 'nggallery' ) . '</strong> - ' . __( 'Add new galleries to NextCellent.', 'nggallery' ) . '</p>';
|
484 |
+
}
|
485 |
+
if ( empty ( $gallerylist ) ) {
|
486 |
+
$help .= '<p><strong>' . __( 'You must add a gallery before adding images!', 'nggallery' ) . '</strong>';
|
487 |
+
} else {
|
488 |
+
$help .= '<p><strong>' . __( 'Images', 'nggallery' ) . '</strong> - ' . __( 'Add new images to a gallery.', 'nggallery' ) . '</p>';
|
489 |
+
}
|
490 |
+
if ( wpmu_enable_function( 'wpmuZipUpload' ) && nggGallery::current_user_can( 'NextGEN Upload a zip' ) && ! empty ( $gallerylist ) ) {
|
491 |
+
$help .= '<p><strong>' . __( 'ZIP file', 'nggallery' ) . '</strong> - ' . __( 'Add images from a ZIP file.', 'nggallery' ) . '</p>';
|
492 |
+
}
|
493 |
+
if ( wpmu_enable_function( 'wpmuImportFolder' ) && nggGallery::current_user_can( 'NextGEN Import image folder' ) ) {
|
494 |
+
$help .= '<p><strong>' . __( 'Import folder', 'nggallery' ) . '</strong> - ' . __( 'Import a folder from the server as a new gallery.', 'nggallery' ) . '</p>';
|
495 |
+
}
|
496 |
|
497 |
+
$screen->add_help_tab( array(
|
498 |
+
'id' => $screen->id . '-general',
|
499 |
+
'title' => 'Add things',
|
500 |
+
'content' => $help
|
501 |
+
) );
|
502 |
+
break;
|
503 |
case "{$i18n}_page_nggallery-manage-gallery" :
|
504 |
// we would like to have screen option only at the manage images / gallery page
|
505 |
+
if ( ( isset( $_GET['mode'] ) && $_GET['mode'] == 'edit' ) || isset ( $_POST['backToGallery'] ) ) {
|
|
|
|
|
506 |
$screen->base = $screen->id = 'nggallery-manage-images';
|
507 |
+
} else {
|
|
|
|
|
508 |
$screen->base = $screen->id = 'nggallery-manage-gallery';
|
509 |
+
}
|
510 |
+
|
511 |
+
$help = '<p>' . __( 'Manage your images and galleries.', 'nggallery' ) . '</p>';
|
512 |
+
|
513 |
+
$screen->add_help_tab( array(
|
514 |
+
'id' => $screen->id . '-general',
|
515 |
+
'title' => 'Manage everything',
|
516 |
+
'content' => $help
|
517 |
+
) );
|
518 |
+
break;
|
519 |
+
case "{$i18n}_page_nggallery-manage-album" :
|
520 |
+
$help = '<p>' . __( 'Organize your galleries into albums.', 'nggallery' ) . '</p><p>' . __( 'First select an album from the dropdown and then drag the galleries you want to add or remove from the selected album.', 'nggallery' ) . '</p>';
|
521 |
+
|
522 |
+
$screen->add_help_tab( array(
|
523 |
+
'id' => $screen->id . '-general',
|
524 |
+
'title' => 'Organize everything',
|
525 |
+
'content' => $help
|
526 |
+
) );
|
527 |
+
break;
|
528 |
+
case "{$i18n}_page_nggallery-tags" :
|
529 |
+
$help = '<p>' . __( 'Organize your pictures with tags.', 'nggallery' ) . '</p><p>' . __( 'Rename, delete and edit tags. Use the rename function to merge tags.', 'nggallery' ) . '</p>';
|
530 |
+
|
531 |
+
$screen->add_help_tab( array(
|
532 |
+
'id' => $screen->id . '-general',
|
533 |
+
'title' => 'Organize pictures',
|
534 |
+
'content' => $help
|
535 |
+
) );
|
536 |
+
break;
|
537 |
+
case "{$i18n}_page_nggallery-options" :
|
538 |
+
$help = '<p>' . __( 'Edit all of NextCellent\'s options. The options are sorted in multiple categories.', 'nggallery' ) . '</p>';
|
539 |
+
$help .= '<p><strong>' . __( 'General', 'nggallery' ) . '</strong> - ' . __( 'General NextCellent options. Contains options for permalinks and related images.', 'nggallery' ) . '</p>';
|
540 |
+
$help .= '<p><strong>' . __( 'Images', 'nggallery' ) . '</strong> - ' . __( 'All image-related options. Also contains options for thumbnails.', 'nggallery' ) . '</p>';
|
541 |
+
$help .= '<p><strong>' . __( 'Gallery', 'nggallery' ) . '</strong> - ' . __( 'Everything about galleries. From sorting options to the number of images, it\'s all in here.', 'nggallery' ) . '</p>';
|
542 |
+
$help .= '<p><strong>' . __( 'Effects', 'nggallery' ) . '</strong> - ' . __( 'Make your gallery look beautiful.', 'nggallery' ) . '</p>';
|
543 |
+
$help .= '<p><strong>' . __( 'Watermark', 'nggallery' ) . '</strong> - ' . __( 'Who doesn\'t want theft-proof images?', 'nggallery' ) . '</p>';
|
544 |
+
$help .= '<p><strong>' . __( 'Slideshow', 'nggallery' ) . '</strong> - ' . __( 'Edit options for the slideshow.', 'nggallery' ) . '</p>';
|
545 |
+
$help .= '<p>' . __( 'Don\'t forget to press save!', 'nggallery' ) . '</p>';
|
546 |
+
|
547 |
+
$screen->add_help_tab( array(
|
548 |
+
'id' => $screen->id . '-general',
|
549 |
+
'title' => 'Edit options',
|
550 |
+
'content' => $help
|
551 |
+
) );
|
552 |
+
break;
|
553 |
+
case "{$i18n}_page_nggallery-style" :
|
554 |
+
$help = '<p>' . __( 'You can edit the css file to adjust how your gallery looks.', 'nggallery' ) . '</p>';
|
555 |
+
$help .= '<p>' . __( 'When you save an edited file, NextCellent automatically saves it as a copy in the folder ngg_styles. This protects your changes from upgrades.', 'nggallery' ) . '</p>';
|
556 |
+
|
557 |
+
$screen->add_help_tab( array(
|
558 |
+
'id' => $screen->id . '-general',
|
559 |
+
'title' => 'Style your gallery',
|
560 |
+
'content' => $help
|
561 |
+
) );
|
562 |
+
break;
|
563 |
+
case "{$i18n}_page_nggallery-roles" :
|
564 |
+
$help = '<p>' . __( 'You can assign the lowest user role that has access to a certain feature. Needless to say, all greater user roles will also have access to that feature.', 'nggallery' ) . '</p>';
|
565 |
+
$help .= '<p>' . __( 'NextCellent also works with various plugins that extend the default roles capabilities.', 'nggallery' ) . '</p>';
|
566 |
+
|
567 |
+
$screen->add_help_tab( array(
|
568 |
+
'id' => $screen->id . '-general',
|
569 |
+
'title' => 'Grant permissions',
|
570 |
+
'content' => $help
|
571 |
+
) );
|
572 |
+
break;
|
573 |
+
case "{$i18n}_page_nggallery-setup" :
|
574 |
+
$help = '<p>' . __( 'If \'someone\' messed with your settings (yeah, definitely not you), you can reset them here.', 'nggallery' ) . '</p>';
|
575 |
+
$help .= '<p><b>' . __( 'Attention!', 'nggallery' ) . '</b> ' . __( 'You should not use the Uninstall Plugin button, unless you know what you\'re doing! It should never be necessary to press it.', 'nggallery' ) . '</p>';
|
576 |
+
|
577 |
+
$screen->add_help_tab( array(
|
578 |
+
'id' => $screen->id . '-general',
|
579 |
+
'title' => 'Reset',
|
580 |
+
'content' => $help
|
581 |
+
) );
|
582 |
+
break;
|
583 |
}
|
584 |
|
585 |
+
//Set the sidebar (same on all pages)
|
586 |
+
$screen->set_help_sidebar(
|
587 |
+
'<p><strong>' . __( 'For more information:', 'nggallery' ) . '</strong></p>' .
|
588 |
+
'<p><a href="http://codex.wordpress.org/Plugins_Editor_Screen" target="_blank">' . __( 'Support Forums', 'nggallery' ) . '</a></p>' .
|
589 |
+
'<p><a href="https://bitbucket.org/wpgetready/nextcellent" target="_blank">' . __( 'Source Code', 'nggallery' ) . '</a></p>'
|
590 |
+
);
|
591 |
|
592 |
return $screen;
|
593 |
}
|
598 |
* @return void
|
599 |
*/
|
600 |
function register_columns() {
|
601 |
+
include_once( dirname( __FILE__ ) . '/manage-images.php' );
|
602 |
|
603 |
+
$wp_list_table = new _NGG_Images_List_Table( 'nggallery-manage-images' );
|
604 |
|
605 |
+
include_once( dirname( __FILE__ ) . '/manage-galleries.php' );
|
606 |
|
607 |
+
$wp_list_table = new _NGG_Galleries_List_Table( 'nggallery-manage-gallery' );
|
608 |
}
|
609 |
}
|
610 |
|
611 |
+
function wpmu_enable_function( $value ) {
|
612 |
+
if ( is_multisite() ) {
|
613 |
+
$ngg_options = get_site_option( 'ngg_options' );
|
614 |
+
|
615 |
+
return $ngg_options[ $value ];
|
616 |
}
|
617 |
+
|
618 |
// if this is not WPMU, enable it !
|
619 |
return true;
|
620 |
}
|
admin/album.php
CHANGED
@@ -377,7 +377,7 @@ function showDialog() {
|
|
377 |
$album = $this->albums[$this->currentID];
|
378 |
?>
|
379 |
<div class="widget-top">
|
380 |
-
<h3><?php esc_html_e('Album ID', 'nggallery'); ?> <?php echo $album->id . '
|
381 |
</div>
|
382 |
<div id="galleryContainer" class="widget-holder target">
|
383 |
<?php
|
@@ -544,9 +544,9 @@ function showDialog() {
|
|
544 |
</div>
|
545 |
<div class="itemContent">
|
546 |
' . $preview_image . '
|
547 |
-
<p><strong>' . __('Name', 'nggallery') . '
|
548 |
-
<p><strong>' . __('Title', 'nggallery') . '
|
549 |
-
<p><strong>' . __('Page', 'nggallery'). '
|
550 |
' . apply_filters('ngg_display_album_item_content', '', $obj) . '
|
551 |
</div>
|
552 |
</div>
|
377 |
$album = $this->albums[$this->currentID];
|
378 |
?>
|
379 |
<div class="widget-top">
|
380 |
+
<h3><?php esc_html_e('Album ID', 'nggallery'); ?> <?php echo $album->id . ': ' . esc_html( $album->name ); ?> </h3>
|
381 |
</div>
|
382 |
<div id="galleryContainer" class="widget-holder target">
|
383 |
<?php
|
544 |
</div>
|
545 |
<div class="itemContent">
|
546 |
' . $preview_image . '
|
547 |
+
<p><strong>' . __('Name', 'nggallery') . ': </strong>' . esc_html ( nggGallery::i18n( $obj['name'] ) ). '</p>
|
548 |
+
<p><strong>' . __('Title', 'nggallery') . ': </strong>' . esc_html ( nggGallery::i18n( $obj['title'] ) ) . '</p>
|
549 |
+
<p><strong>' . __('Page', 'nggallery'). ': </strong>' . esc_html ( nggGallery::i18n( $obj['pagenname'] ) ) . '</p>
|
550 |
' . apply_filters('ngg_display_album_item_content', '', $obj) . '
|
551 |
</div>
|
552 |
</div>
|
admin/css/nggadmin.css
CHANGED
@@ -344,6 +344,8 @@ div .innerhandle {
|
|
344 |
border: 0;
|
345 |
margin: 0;
|
346 |
padding: 0;
|
|
|
|
|
347 |
}
|
348 |
|
349 |
.inlinepicture
|
344 |
border: 0;
|
345 |
margin: 0;
|
346 |
padding: 0;
|
347 |
+
overflow-x: hidden;
|
348 |
+
text-overflow: ellipsis;
|
349 |
}
|
350 |
|
351 |
.inlinepicture
|
admin/functions.php
CHANGED
@@ -13,33 +13,35 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
13 |
class nggAdmin{
|
14 |
|
15 |
/**
|
16 |
-
*
|
17 |
-
*
|
18 |
-
*
|
19 |
-
* @param string $
|
20 |
-
* @param string $defaultpath
|
21 |
-
* @param bool $output
|
22 |
-
* @
|
|
|
|
|
|
|
|
|
23 |
*/
|
24 |
-
|
|
|
25 |
|
26 |
global $user_ID;
|
27 |
|
28 |
-
//
|
29 |
-
|
30 |
-
|
31 |
-
//cleanup pathname
|
32 |
-
$name = sanitize_file_name( sanitize_title($title) );
|
33 |
$name = apply_filters('ngg_gallery_name', $name);
|
34 |
-
|
35 |
-
$
|
36 |
-
|
37 |
-
// No gallery name ?
|
38 |
-
if ( empty($name) ) {
|
39 |
if ($output) nggGallery::show_error( __('No valid gallery name!', 'nggallery') );
|
40 |
return false;
|
41 |
}
|
42 |
-
|
|
|
|
|
|
|
43 |
// check for main folder
|
44 |
if ( !is_dir($nggRoot) ) {
|
45 |
if ( !wp_mkdir_p( $nggRoot ) ) {
|
@@ -58,30 +60,31 @@ class nggAdmin{
|
|
58 |
return false;
|
59 |
}
|
60 |
|
61 |
-
// 1. Check for existing folder
|
62 |
-
if ( is_dir(
|
63 |
$suffix = 1;
|
64 |
do {
|
65 |
$alt_name = substr ($name, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "_$suffix";
|
66 |
-
$dir_check = is_dir(
|
67 |
$suffix++;
|
68 |
} while ( $dir_check );
|
69 |
$name = $alt_name;
|
70 |
}
|
71 |
// define relative path to gallery inside wp root folder
|
72 |
$nggpath = $defaultpath . $name;
|
73 |
-
|
74 |
// 2. Create new gallery folder
|
75 |
-
|
|
|
76 |
$txt = __('Unable to create directory ', 'nggallery') . esc_html( $nggpath ) . '!<br />';
|
77 |
|
78 |
// 3. Check folder permission
|
79 |
-
if ( !is_writeable(
|
80 |
$txt .= __('Directory', 'nggallery').' <strong>' . esc_html( $nggpath ) . '</strong> '.__('is not writeable !', 'nggallery').'<br />';
|
81 |
|
82 |
// 4. Now create thumbnail folder inside
|
83 |
-
if ( !is_dir(
|
84 |
-
if ( !wp_mkdir_p (
|
85 |
$txt .= __('Unable to create directory ', 'nggallery').' <strong>' . esc_html( $nggpath ) . '/thumbs !</strong>';
|
86 |
}
|
87 |
|
@@ -96,15 +99,16 @@ class nggAdmin{
|
|
96 |
if ( !empty($txt) ) {
|
97 |
if (SAFE_MODE) {
|
98 |
// for safe_mode , better delete folder, both folder must be created manually
|
99 |
-
@rmdir(
|
100 |
-
@rmdir(
|
101 |
}
|
102 |
if ($output) nggGallery::show_error($txt);
|
103 |
return false;
|
104 |
}
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
108 |
// here you can inject a custom function
|
109 |
do_action('ngg_created_new_gallery', $galleryID);
|
110 |
|
@@ -119,7 +123,7 @@ class nggAdmin{
|
|
119 |
$message .= __('Edit gallery','nggallery');
|
120 |
$message .= '</a>';
|
121 |
|
122 |
-
|
123 |
}
|
124 |
return true;
|
125 |
}
|
13 |
class nggAdmin{
|
14 |
|
15 |
/**
|
16 |
+
* Create a new gallery in a new folder
|
17 |
+
*
|
18 |
+
*
|
19 |
+
* @param string $title The gallery name.
|
20 |
+
* @param string $defaultpath The path where the gallery should be added.
|
21 |
+
* @param bool $output (optional) If the function should show an error messsage or not.
|
22 |
+
* @param string $description (optional) The gallery description.
|
23 |
+
*
|
24 |
+
* @since 1.9.24 Added the description parameter.
|
25 |
+
*
|
26 |
+
* @return bool|int True if successful, otherwise false.$galleryID if is successful and output = false)
|
27 |
*/
|
28 |
+
|
29 |
+
static function create_gallery($title, $defaultpath, $output = true, $description = '') {
|
30 |
|
31 |
global $user_ID;
|
32 |
|
33 |
+
get_currentuserinfo(); //get current user ID & sets global object $current_user
|
34 |
+
$name = sanitize_file_name( sanitize_title($title) ); //cleanup pathname
|
|
|
|
|
|
|
35 |
$name = apply_filters('ngg_gallery_name', $name);
|
36 |
+
|
37 |
+
if ( empty($name) ) { // No gallery name ?
|
|
|
|
|
|
|
38 |
if ($output) nggGallery::show_error( __('No valid gallery name!', 'nggallery') );
|
39 |
return false;
|
40 |
}
|
41 |
+
|
42 |
+
$txt = '';
|
43 |
+
$nggRoot = WINABSPATH . $defaultpath;
|
44 |
+
|
45 |
// check for main folder
|
46 |
if ( !is_dir($nggRoot) ) {
|
47 |
if ( !wp_mkdir_p( $nggRoot ) ) {
|
60 |
return false;
|
61 |
}
|
62 |
|
63 |
+
// 1. Check for existing folder, if it already exists, create new one with suffix
|
64 |
+
if ( is_dir($nggRoot . $name ) && !(SAFE_MODE) ) {
|
65 |
$suffix = 1;
|
66 |
do {
|
67 |
$alt_name = substr ($name, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "_$suffix";
|
68 |
+
$dir_check = is_dir($nggRoot . $alt_name );
|
69 |
$suffix++;
|
70 |
} while ( $dir_check );
|
71 |
$name = $alt_name;
|
72 |
}
|
73 |
// define relative path to gallery inside wp root folder
|
74 |
$nggpath = $defaultpath . $name;
|
75 |
+
$win_nggpath = WINABSPATH . $nggpath;
|
76 |
// 2. Create new gallery folder
|
77 |
+
|
78 |
+
if ( !wp_mkdir_p ($win_nggpath) )
|
79 |
$txt = __('Unable to create directory ', 'nggallery') . esc_html( $nggpath ) . '!<br />';
|
80 |
|
81 |
// 3. Check folder permission
|
82 |
+
if ( !is_writeable($win_nggpath) )
|
83 |
$txt .= __('Directory', 'nggallery').' <strong>' . esc_html( $nggpath ) . '</strong> '.__('is not writeable !', 'nggallery').'<br />';
|
84 |
|
85 |
// 4. Now create thumbnail folder inside
|
86 |
+
if ( !is_dir($win_nggpath . '/thumbs') ) {
|
87 |
+
if ( !wp_mkdir_p ( $win_nggpath . '/thumbs') )
|
88 |
$txt .= __('Unable to create directory ', 'nggallery').' <strong>' . esc_html( $nggpath ) . '/thumbs !</strong>';
|
89 |
}
|
90 |
|
99 |
if ( !empty($txt) ) {
|
100 |
if (SAFE_MODE) {
|
101 |
// for safe_mode , better delete folder, both folder must be created manually
|
102 |
+
@rmdir($win_nggpath . '/thumbs');
|
103 |
+
@rmdir($win_nggpath);
|
104 |
}
|
105 |
if ($output) nggGallery::show_error($txt);
|
106 |
return false;
|
107 |
}
|
108 |
+
|
109 |
+
//clean the description and add the gallery
|
110 |
+
$description = nggGallery::suppress_injection($description);
|
111 |
+
$galleryID = nggdb::add_gallery($title, $nggpath, $description, 0, 0, $user_ID );
|
112 |
// here you can inject a custom function
|
113 |
do_action('ngg_created_new_gallery', $galleryID);
|
114 |
|
123 |
$message .= __('Edit gallery','nggallery');
|
124 |
$message .= '</a>';
|
125 |
|
126 |
+
nggGallery::show_message($message);
|
127 |
}
|
128 |
return true;
|
129 |
}
|
admin/install.php
CHANGED
@@ -133,6 +133,7 @@ function ngg_default_options() {
|
|
133 |
$ngg_options['imageMagickDir'] = '/usr/local/bin/'; // default path to ImageMagick
|
134 |
$ngg_options['useMediaRSS'] = false; // activate the global Media RSS file
|
135 |
$ngg_options['usePicLens'] = false; // activate the PicLens Link for galleries
|
|
|
136 |
|
137 |
// Tags / categories
|
138 |
$ngg_options['activateTags'] = false; // append related images
|
@@ -153,7 +154,7 @@ function ngg_default_options() {
|
|
153 |
$ngg_options['imgAutoResize'] = false; // Resize after upload
|
154 |
|
155 |
// Gallery Settings
|
156 |
-
$ngg_options['galImages'] =
|
157 |
$ngg_options['galPagedGalleries'] = 0; // Number of galleries per page (in a album)
|
158 |
$ngg_options['galColumns'] = 0; // Number of columns for the gallery
|
159 |
$ngg_options['galShowSlide'] = true; // Show slideshow
|
@@ -183,27 +184,20 @@ function ngg_default_options() {
|
|
183 |
$ngg_options['wmColor'] = '000000'; // Font Color
|
184 |
$ngg_options['wmOpaque'] = '100'; // Font Opaque
|
185 |
|
186 |
-
//
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
$ngg_options['
|
191 |
-
$ngg_options['
|
192 |
-
$ngg_options['
|
193 |
-
$ngg_options['
|
194 |
-
|
195 |
-
|
196 |
-
$ngg_options['
|
197 |
-
$ngg_options['
|
198 |
-
$ngg_options['
|
199 |
-
$ngg_options['
|
200 |
-
$ngg_options['irRotatetime'] = 10;
|
201 |
-
$ngg_options['irTransition'] = 'random';
|
202 |
-
$ngg_options['irKenburns'] = false;
|
203 |
-
$ngg_options['irBackcolor'] = '000000';
|
204 |
-
$ngg_options['irFrontcolor'] = 'FFFFFF';
|
205 |
-
$ngg_options['irLightcolor'] = 'CC0000';
|
206 |
-
$ngg_options['irScreencolor'] = '000000';
|
207 |
|
208 |
// CSS Style
|
209 |
$ngg_options['activateCSS'] = true; // activate the CSS file
|
133 |
$ngg_options['imageMagickDir'] = '/usr/local/bin/'; // default path to ImageMagick
|
134 |
$ngg_options['useMediaRSS'] = false; // activate the global Media RSS file
|
135 |
$ngg_options['usePicLens'] = false; // activate the PicLens Link for galleries
|
136 |
+
$ngg_options['silentUpdate'] = false; //If the database should be updated silently.
|
137 |
|
138 |
// Tags / categories
|
139 |
$ngg_options['activateTags'] = false; // append related images
|
154 |
$ngg_options['imgAutoResize'] = false; // Resize after upload
|
155 |
|
156 |
// Gallery Settings
|
157 |
+
$ngg_options['galImages'] = 20; // Number of images per page
|
158 |
$ngg_options['galPagedGalleries'] = 0; // Number of galleries per page (in a album)
|
159 |
$ngg_options['galColumns'] = 0; // Number of columns for the gallery
|
160 |
$ngg_options['galShowSlide'] = true; // Show slideshow
|
184 |
$ngg_options['wmColor'] = '000000'; // Font Color
|
185 |
$ngg_options['wmOpaque'] = '100'; // Font Opaque
|
186 |
|
187 |
+
// Slideshow settings
|
188 |
+
$ngg_options['slideFx'] = 'fadeIn'; //The effect
|
189 |
+
$ngg_options['irWidth'] = 320; //Width (in px)
|
190 |
+
$ngg_options['irHeight'] = 240; //Height (in px)
|
191 |
+
$ngg_options['irAutoDim'] = true; //Automatically set the dimensions.
|
192 |
+
$ngg_options['irRotatetime'] = 3; //Duration (in seconds)
|
193 |
+
$ngg_options['irLoop'] = true; //Loop or not
|
194 |
+
$ngg_options['irDrag'] = true; //Enable drag or not
|
195 |
+
$ngg_options['irNavigation'] = false; //Show navigation
|
196 |
+
$ngg_options['irNavigationDots'] = false; //Show navigation dots
|
197 |
+
$ngg_options['irAutoplay'] = true; //Autoplay
|
198 |
+
$ngg_options['irAutoplayHover'] = true; //Pause on hover
|
199 |
+
$ngg_options['irNumber'] = 20; //Number of images when random or latest
|
200 |
+
$ngg_options['irClick'] = true; //Go to next on click.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
// CSS Style
|
203 |
$ngg_options['activateCSS'] = true; // activate the CSS file
|
admin/js/jquery.MultiFile.js
DELETED
@@ -1,535 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
### jQuery Multiple File Upload Plugin v1.46 - 2009-05-12 ###
|
3 |
-
* Home: http://www.fyneworks.com/jquery/multiple-file-upload/
|
4 |
-
* Code: http://code.google.com/p/jquery-multifile-plugin/
|
5 |
-
*
|
6 |
-
* Dual licensed under the MIT and GPL licenses:
|
7 |
-
* http://www.opensource.org/licenses/mit-license.php
|
8 |
-
* http://www.gnu.org/licenses/gpl.html
|
9 |
-
###
|
10 |
-
*/
|
11 |
-
|
12 |
-
/*# AVOID COLLISIONS #*/
|
13 |
-
;if(window.jQuery) (function($){
|
14 |
-
/*# AVOID COLLISIONS #*/
|
15 |
-
|
16 |
-
// plugin initialization
|
17 |
-
$.fn.MultiFile = function(options){
|
18 |
-
if(this.length==0) return this; // quick fail
|
19 |
-
|
20 |
-
// Handle API methods
|
21 |
-
if(typeof arguments[0]=='string'){
|
22 |
-
// Perform API methods on individual elements
|
23 |
-
if(this.length>1){
|
24 |
-
var args = arguments;
|
25 |
-
return this.each(function(){
|
26 |
-
$.fn.MultiFile.apply($(this), args);
|
27 |
-
});
|
28 |
-
};
|
29 |
-
// Invoke API method handler
|
30 |
-
$.fn.MultiFile[arguments[0]].apply(this, $.makeArray(arguments).slice(1) || []);
|
31 |
-
// Quick exit...
|
32 |
-
return this;
|
33 |
-
};
|
34 |
-
|
35 |
-
// Initialize options for this call
|
36 |
-
var options = $.extend(
|
37 |
-
{}/* new object */,
|
38 |
-
$.fn.MultiFile.options/* default options */,
|
39 |
-
options || {} /* just-in-time options */
|
40 |
-
);
|
41 |
-
|
42 |
-
// Empty Element Fix!!!
|
43 |
-
// this code will automatically intercept native form submissions
|
44 |
-
// and disable empty file elements
|
45 |
-
$('form')
|
46 |
-
.not('MultiFile-intercepted')
|
47 |
-
.addClass('MultiFile-intercepted')
|
48 |
-
.submit($.fn.MultiFile.disableEmpty);
|
49 |
-
|
50 |
-
//### http://plugins.jquery.com/node/1363
|
51 |
-
// utility method to integrate this plugin with others...
|
52 |
-
if($.fn.MultiFile.options.autoIntercept){
|
53 |
-
$.fn.MultiFile.intercept( $.fn.MultiFile.options.autoIntercept /* array of methods to intercept */ );
|
54 |
-
$.fn.MultiFile.options.autoIntercept = null; /* only run this once */
|
55 |
-
};
|
56 |
-
|
57 |
-
// loop through each matched element
|
58 |
-
this
|
59 |
-
.not('.MultiFile-applied')
|
60 |
-
.addClass('MultiFile-applied')
|
61 |
-
.each(function(){
|
62 |
-
//#####################################################################
|
63 |
-
// MAIN PLUGIN FUNCTIONALITY - START
|
64 |
-
//#####################################################################
|
65 |
-
|
66 |
-
// BUG 1251 FIX: http://plugins.jquery.com/project/comments/add/1251
|
67 |
-
// variable group_count would repeat itself on multiple calls to the plugin.
|
68 |
-
// this would cause a conflict with multiple elements
|
69 |
-
// changes scope of variable to global so id will be unique over n calls
|
70 |
-
window.MultiFile = (window.MultiFile || 0) + 1;
|
71 |
-
var group_count = window.MultiFile;
|
72 |
-
|
73 |
-
// Copy parent attributes - Thanks to Jonas Wagner
|
74 |
-
// we will use this one to create new input elements
|
75 |
-
var MultiFile = {e:this, E:$(this), clone:$(this).clone()};
|
76 |
-
|
77 |
-
//===
|
78 |
-
|
79 |
-
//# USE CONFIGURATION
|
80 |
-
if(typeof options=='number') options = {max:options};
|
81 |
-
var o = $.extend({},
|
82 |
-
$.fn.MultiFile.options,
|
83 |
-
options || {},
|
84 |
-
($.metadata? MultiFile.E.metadata(): ($.meta?MultiFile.E.data():null)) || {}, /* metadata options */
|
85 |
-
{} /* internals */
|
86 |
-
);
|
87 |
-
// limit number of files that can be selected?
|
88 |
-
if(!(o.max>0) /*IsNull(MultiFile.max)*/){
|
89 |
-
o.max = MultiFile.E.attr('maxlength');
|
90 |
-
if(!(o.max>0) /*IsNull(MultiFile.max)*/){
|
91 |
-
o.max = (String(MultiFile.e.className.match(/\b(max|limit)\-([0-9]+)\b/gi) || ['']).match(/[0-9]+/gi) || [''])[0];
|
92 |
-
if(!(o.max>0)) o.max = -1;
|
93 |
-
else o.max = String(o.max).match(/[0-9]+/gi)[0];
|
94 |
-
}
|
95 |
-
};
|
96 |
-
o.max = new Number(o.max);
|
97 |
-
// limit extensions?
|
98 |
-
o.accept = o.accept || MultiFile.E.attr('accept') || '';
|
99 |
-
if(!o.accept){
|
100 |
-
o.accept = (MultiFile.e.className.match(/\b(accept\-[\w\|]+)\b/gi)) || '';
|
101 |
-
o.accept = new String(o.accept).replace(/^(accept|ext)\-/i,'');
|
102 |
-
};
|
103 |
-
|
104 |
-
//===
|
105 |
-
|
106 |
-
// APPLY CONFIGURATION
|
107 |
-
$.extend(MultiFile, o || {});
|
108 |
-
MultiFile.STRING = $.extend({},$.fn.MultiFile.options.STRING,MultiFile.STRING);
|
109 |
-
|
110 |
-
//===
|
111 |
-
|
112 |
-
//#########################################
|
113 |
-
// PRIVATE PROPERTIES/METHODS
|
114 |
-
$.extend(MultiFile, {
|
115 |
-
n: 0, // How many elements are currently selected?
|
116 |
-
slaves: [], files: [],
|
117 |
-
instanceKey: MultiFile.e.id || 'MultiFile'+String(group_count), // Instance Key?
|
118 |
-
generateID: function(z){ return MultiFile.instanceKey + (z>0 ?'_F'+String(z):''); },
|
119 |
-
trigger: function(event, element){
|
120 |
-
var handler = MultiFile[event], value = $(element).attr('value');
|
121 |
-
if(handler){
|
122 |
-
var returnValue = handler(element, value, MultiFile);
|
123 |
-
if( returnValue!=null ) return returnValue;
|
124 |
-
}
|
125 |
-
return true;
|
126 |
-
}
|
127 |
-
});
|
128 |
-
|
129 |
-
//===
|
130 |
-
|
131 |
-
// Setup dynamic regular expression for extension validation
|
132 |
-
// - thanks to John-Paul Bader: http://smyck.de/2006/08/11/javascript-dynamic-regular-expresions/
|
133 |
-
if(String(MultiFile.accept).length>1){
|
134 |
-
MultiFile.accept = MultiFile.accept.replace(/\W+/g,'|').replace(/^\W|\W$/g,'');
|
135 |
-
MultiFile.rxAccept = new RegExp('\\.('+(MultiFile.accept?MultiFile.accept:'')+')$','gi');
|
136 |
-
};
|
137 |
-
|
138 |
-
//===
|
139 |
-
|
140 |
-
// Create wrapper to hold our file list
|
141 |
-
MultiFile.wrapID = MultiFile.instanceKey+'_wrap'; // Wrapper ID?
|
142 |
-
MultiFile.E.wrap('<div class="MultiFile-wrap" id="'+MultiFile.wrapID+'"></div>');
|
143 |
-
MultiFile.wrapper = $('#'+MultiFile.wrapID+'');
|
144 |
-
|
145 |
-
//===
|
146 |
-
|
147 |
-
// MultiFile MUST have a name - default: file1[], file2[], file3[]
|
148 |
-
MultiFile.e.name = MultiFile.e.name || 'file'+ group_count +'[]';
|
149 |
-
|
150 |
-
//===
|
151 |
-
|
152 |
-
if(!MultiFile.list){
|
153 |
-
// Create a wrapper for the list
|
154 |
-
// * OPERA BUG: NO_MODIFICATION_ALLOWED_ERR ('list' is a read-only property)
|
155 |
-
// this change allows us to keep the files in the order they were selected
|
156 |
-
MultiFile.wrapper.append( '<div class="MultiFile-list" id="'+MultiFile.wrapID+'_list"></div>' );
|
157 |
-
MultiFile.list = $('#'+MultiFile.wrapID+'_list');
|
158 |
-
};
|
159 |
-
MultiFile.list = $(MultiFile.list);
|
160 |
-
|
161 |
-
//===
|
162 |
-
|
163 |
-
// Bind a new element
|
164 |
-
MultiFile.addSlave = function( slave, slave_count ){
|
165 |
-
//if(window.console) console.log('MultiFile.addSlave',slave_count);
|
166 |
-
|
167 |
-
// Keep track of how many elements have been displayed
|
168 |
-
MultiFile.n++;
|
169 |
-
// Add reference to master element
|
170 |
-
slave.MultiFile = MultiFile;
|
171 |
-
|
172 |
-
// BUG FIX: http://plugins.jquery.com/node/1495
|
173 |
-
// Clear identifying properties from clones
|
174 |
-
if(slave_count>0) slave.id = slave.name = '';
|
175 |
-
|
176 |
-
// Define element's ID and name (upload components need this!)
|
177 |
-
//slave.id = slave.id || MultiFile.generateID(slave_count);
|
178 |
-
if(slave_count>0) slave.id = MultiFile.generateID(slave_count);
|
179 |
-
//FIX for: http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=23
|
180 |
-
|
181 |
-
// 2008-Apr-29: New customizable naming convention (see url below)
|
182 |
-
// http://groups.google.com/group/jquery-dev/browse_frm/thread/765c73e41b34f924#
|
183 |
-
slave.name = String(MultiFile.namePattern
|
184 |
-
/*master name*/.replace(/\$name/gi,$(MultiFile.clone).attr('name'))
|
185 |
-
/*master id */.replace(/\$id/gi, $(MultiFile.clone).attr('id'))
|
186 |
-
/*group count*/.replace(/\$g/gi, group_count)//(group_count>0?group_count:''))
|
187 |
-
/*slave count*/.replace(/\$i/gi, slave_count)//(slave_count>0?slave_count:''))
|
188 |
-
);
|
189 |
-
|
190 |
-
// If we've reached maximum number, disable input slave
|
191 |
-
if( (MultiFile.max > 0) && ((MultiFile.n-1) > (MultiFile.max)) )//{ // MultiFile.n Starts at 1, so subtract 1 to find true count
|
192 |
-
slave.disabled = true;
|
193 |
-
//};
|
194 |
-
|
195 |
-
// Remember most recent slave
|
196 |
-
MultiFile.current = MultiFile.slaves[slave_count] = slave;
|
197 |
-
|
198 |
-
// We'll use jQuery from now on
|
199 |
-
slave = $(slave);
|
200 |
-
|
201 |
-
// Clear value
|
202 |
-
slave.val('').attr('value','')[0].value = '';
|
203 |
-
|
204 |
-
// Stop plugin initializing on slaves
|
205 |
-
slave.addClass('MultiFile-applied');
|
206 |
-
|
207 |
-
// Triggered when a file is selected
|
208 |
-
slave.change(function(){
|
209 |
-
//if(window.console) console.log('MultiFile.slave.change',slave_count);
|
210 |
-
|
211 |
-
// Lose focus to stop IE7 firing onchange again
|
212 |
-
$(this).blur();
|
213 |
-
|
214 |
-
//# Trigger Event! onFileSelect
|
215 |
-
if(!MultiFile.trigger('onFileSelect', this, MultiFile)) return false;
|
216 |
-
//# End Event!
|
217 |
-
|
218 |
-
//# Retrive value of selected file from element
|
219 |
-
var ERROR = '', v = String(this.value || ''/*.attr('value)*/);
|
220 |
-
|
221 |
-
// check extension
|
222 |
-
if(MultiFile.accept && v && !v.match(MultiFile.rxAccept))//{
|
223 |
-
ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));
|
224 |
-
//}
|
225 |
-
//};
|
226 |
-
|
227 |
-
// Disallow duplicates
|
228 |
-
for(var f in MultiFile.slaves)//{
|
229 |
-
if(MultiFile.slaves[f] && MultiFile.slaves[f]!=this)//{
|
230 |
-
//console.log(MultiFile.slaves[f],MultiFile.slaves[f].value);
|
231 |
-
if(MultiFile.slaves[f].value==v)//{
|
232 |
-
ERROR = MultiFile.STRING.duplicate.replace('$file', v.match(/[^\/\\]+$/gi));
|
233 |
-
//};
|
234 |
-
//};
|
235 |
-
//};
|
236 |
-
|
237 |
-
// Create a new file input element
|
238 |
-
var newEle = $(MultiFile.clone).clone();// Copy parent attributes - Thanks to Jonas Wagner
|
239 |
-
//# Let's remember which input we've generated so
|
240 |
-
// we can disable the empty ones before submission
|
241 |
-
// See: http://plugins.jquery.com/node/1495
|
242 |
-
newEle.addClass('MultiFile');
|
243 |
-
|
244 |
-
// Handle error
|
245 |
-
if(ERROR!=''){
|
246 |
-
// Handle error
|
247 |
-
MultiFile.error(ERROR);
|
248 |
-
|
249 |
-
// 2007-06-24: BUG FIX - Thanks to Adrian Wr�bel <adrian [dot] wrobel [at] gmail.com>
|
250 |
-
// Ditch the trouble maker and add a fresh new element
|
251 |
-
MultiFile.n--;
|
252 |
-
MultiFile.addSlave(newEle[0], slave_count);
|
253 |
-
slave.parent().prepend(newEle);
|
254 |
-
slave.remove();
|
255 |
-
return false;
|
256 |
-
};
|
257 |
-
|
258 |
-
// Hide this element (NB: display:none is evil!)
|
259 |
-
$(this).css({ position:'absolute', top: '-3000px' });
|
260 |
-
|
261 |
-
// Add new element to the form
|
262 |
-
slave.after(newEle);
|
263 |
-
|
264 |
-
// Update list
|
265 |
-
MultiFile.addToList( this, slave_count );
|
266 |
-
|
267 |
-
// Bind functionality
|
268 |
-
MultiFile.addSlave( newEle[0], slave_count+1 );
|
269 |
-
|
270 |
-
//# Trigger Event! afterFileSelect
|
271 |
-
if(!MultiFile.trigger('afterFileSelect', this, MultiFile)) return false;
|
272 |
-
//# End Event!
|
273 |
-
|
274 |
-
}); // slave.change()
|
275 |
-
|
276 |
-
// Save control to element
|
277 |
-
$(slave).data('MultiFile', MultiFile);
|
278 |
-
|
279 |
-
};// MultiFile.addSlave
|
280 |
-
// Bind a new element
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
// Add a new file to the list
|
285 |
-
MultiFile.addToList = function( slave, slave_count ){
|
286 |
-
//if(window.console) console.log('MultiFile.addToList',slave_count);
|
287 |
-
|
288 |
-
//# Trigger Event! onFileAppend
|
289 |
-
if(!MultiFile.trigger('onFileAppend', slave, MultiFile)) return false;
|
290 |
-
//# End Event!
|
291 |
-
|
292 |
-
// Create label elements
|
293 |
-
var
|
294 |
-
r = $('<div class="MultiFile-label"></div>'),
|
295 |
-
v = String(slave.value || ''/*.attr('value)*/),
|
296 |
-
a = $('<span class="MultiFile-title" title="'+MultiFile.STRING.selected.replace('$file', v)+'">'+MultiFile.STRING.file.replace('$file', v.match(/[^\/\\]+$/gi)[0])+'</span>'),
|
297 |
-
b = $('<a class="MultiFile-remove" href="#'+MultiFile.wrapID+'">'+MultiFile.STRING.remove+'</a>');
|
298 |
-
|
299 |
-
// Insert label
|
300 |
-
MultiFile.list.append(
|
301 |
-
r.append(b, ' ', a)
|
302 |
-
);
|
303 |
-
|
304 |
-
b
|
305 |
-
.click(function(){
|
306 |
-
|
307 |
-
//# Trigger Event! onFileRemove
|
308 |
-
if(!MultiFile.trigger('onFileRemove', slave, MultiFile)) return false;
|
309 |
-
//# End Event!
|
310 |
-
|
311 |
-
MultiFile.n--;
|
312 |
-
MultiFile.current.disabled = false;
|
313 |
-
|
314 |
-
// Remove element, remove label, point to current
|
315 |
-
MultiFile.slaves[slave_count] = null;
|
316 |
-
$(slave).remove();
|
317 |
-
$(this).parent().remove();
|
318 |
-
|
319 |
-
// Show most current element again (move into view) and clear selection
|
320 |
-
$(MultiFile.current).css({ position:'', top: '' });
|
321 |
-
$(MultiFile.current).reset().val('').attr('value', '')[0].value = '';
|
322 |
-
|
323 |
-
//# Trigger Event! afterFileRemove
|
324 |
-
if(!MultiFile.trigger('afterFileRemove', slave, MultiFile)) return false;
|
325 |
-
//# End Event!
|
326 |
-
|
327 |
-
return false;
|
328 |
-
});
|
329 |
-
|
330 |
-
//# Trigger Event! afterFileAppend
|
331 |
-
if(!MultiFile.trigger('afterFileAppend', slave, MultiFile)) return false;
|
332 |
-
//# End Event!
|
333 |
-
|
334 |
-
}; // MultiFile.addToList
|
335 |
-
// Add element to selected files list
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
// Bind functionality to the first element
|
340 |
-
if(!MultiFile.MultiFile) MultiFile.addSlave(MultiFile.e, 0);
|
341 |
-
|
342 |
-
// Increment control count
|
343 |
-
//MultiFile.I++; // using window.MultiFile
|
344 |
-
MultiFile.n++;
|
345 |
-
|
346 |
-
// Save control to element
|
347 |
-
MultiFile.E.data('MultiFile', MultiFile);
|
348 |
-
|
349 |
-
|
350 |
-
//#####################################################################
|
351 |
-
// MAIN PLUGIN FUNCTIONALITY - END
|
352 |
-
//#####################################################################
|
353 |
-
}); // each element
|
354 |
-
};
|
355 |
-
|
356 |
-
/*--------------------------------------------------------*/
|
357 |
-
|
358 |
-
/*
|
359 |
-
### Core functionality and API ###
|
360 |
-
*/
|
361 |
-
$.extend($.fn.MultiFile, {
|
362 |
-
/**
|
363 |
-
* This method removes all selected files
|
364 |
-
*
|
365 |
-
* Returns a jQuery collection of all affected elements.
|
366 |
-
*
|
367 |
-
* @name reset
|
368 |
-
* @type jQuery
|
369 |
-
* @cat Plugins/MultiFile
|
370 |
-
* @author Diego A. (http://www.fyneworks.com/)
|
371 |
-
*
|
372 |
-
* @example $.fn.MultiFile.reset();
|
373 |
-
*/
|
374 |
-
reset: function(){
|
375 |
-
var settings = $(this).data('MultiFile');
|
376 |
-
//if(settings) settings.wrapper.find('a.MultiFile-remove').click();
|
377 |
-
if(settings) settings.list.find('a.MultiFile-remove').click();
|
378 |
-
return $(this);
|
379 |
-
},
|
380 |
-
|
381 |
-
|
382 |
-
/**
|
383 |
-
* This utility makes it easy to disable all 'empty' file elements in the document before submitting a form.
|
384 |
-
* It marks the affected elements so they can be easily re-enabled after the form submission or validation.
|
385 |
-
*
|
386 |
-
* Returns a jQuery collection of all affected elements.
|
387 |
-
*
|
388 |
-
* @name disableEmpty
|
389 |
-
* @type jQuery
|
390 |
-
* @cat Plugins/MultiFile
|
391 |
-
* @author Diego A. (http://www.fyneworks.com/)
|
392 |
-
*
|
393 |
-
* @example $.fn.MultiFile.disableEmpty();
|
394 |
-
* @param String class (optional) A string specifying a class to be applied to all affected elements - Default: 'mfD'.
|
395 |
-
*/
|
396 |
-
disableEmpty: function(klass){ klass = (typeof(klass)=='string'?klass:'')||'mfD';
|
397 |
-
var o = [];
|
398 |
-
$('input:file.MultiFile').each(function(){ if($(this).val()=='') o[o.length] = this; });
|
399 |
-
return $(o).each(function(){ this.disabled = true }).addClass(klass);
|
400 |
-
},
|
401 |
-
|
402 |
-
|
403 |
-
/**
|
404 |
-
* This method re-enables 'empty' file elements that were disabled (and marked) with the $.fn.MultiFile.disableEmpty method.
|
405 |
-
*
|
406 |
-
* Returns a jQuery collection of all affected elements.
|
407 |
-
*
|
408 |
-
* @name reEnableEmpty
|
409 |
-
* @type jQuery
|
410 |
-
* @cat Plugins/MultiFile
|
411 |
-
* @author Diego A. (http://www.fyneworks.com/)
|
412 |
-
*
|
413 |
-
* @example $.fn.MultiFile.reEnableEmpty();
|
414 |
-
* @param String klass (optional) A string specifying the class that was used to mark affected elements - Default: 'mfD'.
|
415 |
-
*/
|
416 |
-
reEnableEmpty: function(klass){ klass = (typeof(klass)=='string'?klass:'')||'mfD';
|
417 |
-
return $('input:file.'+klass).removeClass(klass).each(function(){ this.disabled = false });
|
418 |
-
},
|
419 |
-
|
420 |
-
|
421 |
-
/**
|
422 |
-
* This method will intercept other jQuery plugins and disable empty file input elements prior to form submission
|
423 |
-
*
|
424 |
-
|
425 |
-
* @name intercept
|
426 |
-
* @cat Plugins/MultiFile
|
427 |
-
* @author Diego A. (http://www.fyneworks.com/)
|
428 |
-
*
|
429 |
-
* @example $.fn.MultiFile.intercept();
|
430 |
-
* @param Array methods (optional) Array of method names to be intercepted
|
431 |
-
*/
|
432 |
-
intercepted: {},
|
433 |
-
intercept: function(methods, context, args){
|
434 |
-
var method, value; args = args || [];
|
435 |
-
if(args.constructor.toString().indexOf("Array")<0) args = [ args ];
|
436 |
-
if(typeof(methods)=='function'){
|
437 |
-
$.fn.MultiFile.disableEmpty();
|
438 |
-
value = methods.apply(context || window, args);
|
439 |
-
//SEE-http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=27
|
440 |
-
setTimeout(function(){ $.fn.MultiFile.reEnableEmpty() },1000);
|
441 |
-
return value;
|
442 |
-
};
|
443 |
-
if(methods.constructor.toString().indexOf("Array")<0) methods = [methods];
|
444 |
-
for(var i=0;i<methods.length;i++){
|
445 |
-
method = methods[i]+''; // make sure that we have a STRING
|
446 |
-
if(method) (function(method){ // make sure that method is ISOLATED for the interception
|
447 |
-
$.fn.MultiFile.intercepted[method] = $.fn[method] || function(){};
|
448 |
-
$.fn[method] = function(){
|
449 |
-
$.fn.MultiFile.disableEmpty();
|
450 |
-
value = $.fn.MultiFile.intercepted[method].apply(this, arguments);
|
451 |
-
//SEE-http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=27
|
452 |
-
setTimeout(function(){ $.fn.MultiFile.reEnableEmpty() },1000);
|
453 |
-
return value;
|
454 |
-
}; // interception
|
455 |
-
})(method); // MAKE SURE THAT method IS ISOLATED for the interception
|
456 |
-
};// for each method
|
457 |
-
}
|
458 |
-
});
|
459 |
-
|
460 |
-
/*--------------------------------------------------------*/
|
461 |
-
|
462 |
-
/*
|
463 |
-
### Default Settings ###
|
464 |
-
eg.: You can override default control like this:
|
465 |
-
$.fn.MultiFile.options.accept = 'gif|jpg';
|
466 |
-
*/
|
467 |
-
$.fn.MultiFile.options = { //$.extend($.fn.MultiFile, { options: {
|
468 |
-
accept: '', // accepted file extensions
|
469 |
-
max: -1, // maximum number of selectable files
|
470 |
-
|
471 |
-
// name to use for newly created elements
|
472 |
-
namePattern: '$name', // same name by default (which creates an array)
|
473 |
-
|
474 |
-
// STRING: collection lets you show messages in different languages
|
475 |
-
STRING: {
|
476 |
-
remove:'x',
|
477 |
-
denied:'You cannot select a $ext file.\nTry again...',
|
478 |
-
file:'$file',
|
479 |
-
selected:'File selected: $file',
|
480 |
-
duplicate:'This file has already been selected:\n$file'
|
481 |
-
},
|
482 |
-
|
483 |
-
// name of methods that should be automcatically intercepted so the plugin can disable
|
484 |
-
// extra file elements that are empty before execution and automatically re-enable them afterwards
|
485 |
-
autoIntercept: [ 'submit', 'ajaxSubmit', 'ajaxForm', 'validate' /* array of methods to intercept */ ],
|
486 |
-
|
487 |
-
// error handling function
|
488 |
-
error: function(s){
|
489 |
-
/*
|
490 |
-
ERROR! blockUI is not currently working in IE
|
491 |
-
if($.blockUI){
|
492 |
-
$.blockUI({
|
493 |
-
message: s.replace(/\n/gi,'<br/>'),
|
494 |
-
css: {
|
495 |
-
border:'none', padding:'15px', size:'12.0pt',
|
496 |
-
backgroundColor:'#900', color:'#fff',
|
497 |
-
opacity:'.8','-webkit-border-radius': '10px','-moz-border-radius': '10px'
|
498 |
-
}
|
499 |
-
});
|
500 |
-
window.setTimeout($.unblockUI, 2000);
|
501 |
-
}
|
502 |
-
else//{// save a byte!
|
503 |
-
*/
|
504 |
-
alert(s);
|
505 |
-
//}// save a byte!
|
506 |
-
}
|
507 |
-
}; //} });
|
508 |
-
|
509 |
-
/*--------------------------------------------------------*/
|
510 |
-
|
511 |
-
/*
|
512 |
-
### Additional Methods ###
|
513 |
-
Required functionality outside the plugin's scope
|
514 |
-
*/
|
515 |
-
|
516 |
-
// Native input reset method - because this alone doesn't always work: $(element).val('').attr('value', '')[0].value = '';
|
517 |
-
$.fn.reset = function(){ return this.each(function(){ try{ this.reset(); }catch(e){} }); };
|
518 |
-
|
519 |
-
/*--------------------------------------------------------*/
|
520 |
-
|
521 |
-
/*
|
522 |
-
### Default implementation ###
|
523 |
-
The plugin will attach itself to file inputs
|
524 |
-
with the class 'multi' when the page loads
|
525 |
-
*/
|
526 |
-
$(function(){
|
527 |
-
//$("input:file.multi").MultiFile();
|
528 |
-
$("input[type=file].multi").MultiFile();
|
529 |
-
});
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
/*# AVOID COLLISIONS #*/
|
534 |
-
})(jQuery);
|
535 |
-
/*# AVOID COLLISIONS #*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/jquery.MultiFile.pack.js
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
### jQuery Multiple File Upload Plugin v1.46 - 2009-05-12 ###
|
3 |
-
* Home: http://www.fyneworks.com/jquery/multiple-file-upload/
|
4 |
-
* Code: http://code.google.com/p/jquery-multifile-plugin/
|
5 |
-
*
|
6 |
-
* Dual licensed under the MIT and GPL licenses:
|
7 |
-
* http://www.opensource.org/licenses/mit-license.php
|
8 |
-
* http://www.gnu.org/licenses/gpl.html
|
9 |
-
###
|
10 |
-
*/
|
11 |
-
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';3(U.1u)(6($){$.7.2=6(h){3(5.V==0)8 5;3(T S[0]==\'19\'){3(5.V>1){m i=S;8 5.M(6(){$.7.2.13($(5),i)})};$.7.2[S[0]].13(5,$.1N(S).27(1)||[]);8 5};m h=$.N({},$.7.2.F,h||{});$(\'2d\').1B(\'2-R\').Q(\'2-R\').1n($.7.2.Z);3($.7.2.F.15){$.7.2.1M($.7.2.F.15);$.7.2.F.15=10};5.1B(\'.2-1e\').Q(\'2-1e\').M(6(){U.2=(U.2||0)+1;m e=U.2;m g={e:5,E:$(5),L:$(5).L()};3(T h==\'21\')h={l:h};m o=$.N({},$.7.2.F,h||{},($.1m?g.E.1m():($.1S?g.E.17():10))||{},{});3(!(o.l>0)){o.l=g.E.D(\'28\');3(!(o.l>0)){o.l=(u(g.e.1D.B(/\\b(l|23)\\-([0-9]+)\\b/q)||[\'\']).B(/[0-9]+/q)||[\'\'])[0];3(!(o.l>0))o.l=-1;2b o.l=u(o.l).B(/[0-9]+/q)[0]}};o.l=18 2f(o.l);o.j=o.j||g.E.D(\'j\')||\'\';3(!o.j){o.j=(g.e.1D.B(/\\b(j\\-[\\w\\|]+)\\b/q))||\'\';o.j=18 u(o.j).t(/^(j|1d)\\-/i,\'\')};$.N(g,o||{});g.A=$.N({},$.7.2.F.A,g.A);$.N(g,{n:0,J:[],2c:[],1c:g.e.I||\'2\'+u(e),1i:6(z){8 g.1c+(z>0?\'1Z\'+u(z):\'\')},G:6(a,b){m c=g[a],k=$(b).D(\'k\');3(c){m d=c(b,k,g);3(d!=10)8 d}8 1a}});3(u(g.j).V>1){g.j=g.j.t(/\\W+/g,\'|\').t(/^\\W|\\W$/g,\'\');g.1k=18 2t(\'\\\\.(\'+(g.j?g.j:\'\')+\')$\',\'q\')};g.O=g.1c+\'1P\';g.E.1l(\'<P X="2-1l" I="\'+g.O+\'"></P>\');g.1q=$(\'#\'+g.O+\'\');g.e.H=g.e.H||\'p\'+e+\'[]\';3(!g.K){g.1q.1g(\'<P X="2-K" I="\'+g.O+\'1F"></P>\');g.K=$(\'#\'+g.O+\'1F\')};g.K=$(g.K);g.16=6(c,d){g.n++;c.2=g;3(d>0)c.I=c.H=\'\';3(d>0)c.I=g.1i(d);c.H=u(g.1j.t(/\\$H/q,$(g.L).D(\'H\')).t(/\\$I/q,$(g.L).D(\'I\')).t(/\\$g/q,e).t(/\\$i/q,d));3((g.l>0)&&((g.n-1)>(g.l)))c.14=1a;g.Y=g.J[d]=c;c=$(c);c.1b(\'\').D(\'k\',\'\')[0].k=\'\';c.Q(\'2-1e\');c.1V(6(){$(5).1X();3(!g.G(\'1Y\',5,g))8 y;m a=\'\',v=u(5.k||\'\');3(g.j&&v&&!v.B(g.1k))a=g.A.1o.t(\'$1d\',u(v.B(/\\.\\w{1,4}$/q)));1p(m f 2a g.J)3(g.J[f]&&g.J[f]!=5)3(g.J[f].k==v)a=g.A.1r.t(\'$p\',v.B(/[^\\/\\\\]+$/q));m b=$(g.L).L();b.Q(\'2\');3(a!=\'\'){g.1s(a);g.n--;g.16(b[0],d);c.1t().2e(b);c.C();8 y};$(5).1v({1w:\'1O\',1x:\'-1Q\'});c.1R(b);g.1y(5,d);g.16(b[0],d+1);3(!g.G(\'1T\',5,g))8 y});$(c).17(\'2\',g)};g.1y=6(c,d){3(!g.G(\'1U\',c,g))8 y;m r=$(\'<P X="2-1W"></P>\'),v=u(c.k||\'\'),a=$(\'<1z X="2-1A" 1A="\'+g.A.12.t(\'$p\',v)+\'">\'+g.A.p.t(\'$p\',v.B(/[^\\/\\\\]+$/q)[0])+\'</1z>\'),b=$(\'<a X="2-C" 2y="#\'+g.O+\'">\'+g.A.C+\'</a>\');g.K.1g(r.1g(b,\' \',a));b.1C(6(){3(!g.G(\'22\',c,g))8 y;g.n--;g.Y.14=y;g.J[d]=10;$(c).C();$(5).1t().C();$(g.Y).1v({1w:\'\',1x:\'\'});$(g.Y).11().1b(\'\').D(\'k\',\'\')[0].k=\'\';3(!g.G(\'24\',c,g))8 y;8 y});3(!g.G(\'25\',c,g))8 y};3(!g.2)g.16(g.e,0);g.n++;g.E.17(\'2\',g)})};$.N($.7.2,{11:6(){m a=$(5).17(\'2\');3(a)a.K.26(\'a.2-C\').1C();8 $(5)},Z:6(a){a=(T(a)==\'19\'?a:\'\')||\'1E\';m o=[];$(\'1h:p.2\').M(6(){3($(5).1b()==\'\')o[o.V]=5});8 $(o).M(6(){5.14=1a}).Q(a)},1f:6(a){a=(T(a)==\'19\'?a:\'\')||\'1E\';8 $(\'1h:p.\'+a).29(a).M(6(){5.14=y})},R:{},1M:6(b,c,d){m e,k;d=d||[];3(d.1G.1H().1I("1J")<0)d=[d];3(T(b)==\'6\'){$.7.2.Z();k=b.13(c||U,d);1K(6(){$.7.2.1f()},1L);8 k};3(b.1G.1H().1I("1J")<0)b=[b];1p(m i=0;i<b.V;i++){e=b[i]+\'\';3(e)(6(a){$.7.2.R[a]=$.7[a]||6(){};$.7[a]=6(){$.7.2.Z();k=$.7.2.R[a].13(5,S);1K(6(){$.7.2.1f()},1L);8 k}})(e)}}});$.7.2.F={j:\'\',l:-1,1j:\'$H\',A:{C:\'x\',1o:\'2g 2h 2i a $1d p.\\2j 2k...\',p:\'$p\',12:\'2l 12: $p\',1r:\'2m p 2n 2o 2p 12:\\n$p\'},15:[\'1n\',\'2q\',\'2r\',\'2s\'],1s:6(s){2u(s)}};$.7.11=6(){8 5.M(6(){2v{5.11()}2w(e){}})};$(6(){$("1h[2x=p].20").2()})})(1u);',62,159,'||MultiFile|if||this|function|fn|return|||||||||||accept|value|max|var|||file|gi|||replace|String||||false||STRING|match|remove|attr||options|trigger|name|id|slaves|list|clone|each|extend|wrapID|div|addClass|intercepted|arguments|typeof|window|length||class|current|disableEmpty|null|reset|selected|apply|disabled|autoIntercept|addSlave|data|new|string|true|val|instanceKey|ext|applied|reEnableEmpty|append|input|generateID|namePattern|rxAccept|wrap|metadata|submit|denied|for|wrapper|duplicate|error|parent|jQuery|css|position|top|addToList|span|title|not|click|className|mfD|_list|constructor|toString|indexOf|Array|setTimeout|1000|intercept|makeArray|absolute|_wrap|3000px|after|meta|afterFileSelect|onFileAppend|change|label|blur|onFileSelect|_F|multi|number|onFileRemove|limit|afterFileRemove|afterFileAppend|find|slice|maxlength|removeClass|in|else|files|form|prepend|Number|You|cannot|select|nTry|again|File|This|has|already|been|ajaxSubmit|ajaxForm|validate|RegExp|alert|try|catch|type|href'.split('|'),0,{}))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/swfupload.handler.js
DELETED
@@ -1,153 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* NextGEN Gallery - SWFUpload Handler
|
3 |
-
* http://www.nextgen-gallery.com/
|
4 |
-
*
|
5 |
-
* Built on top of the swfupload library
|
6 |
-
* http://swfupload.org version 2.2.0
|
7 |
-
*
|
8 |
-
* version 1.0.3
|
9 |
-
*/
|
10 |
-
|
11 |
-
// on load change the upload to swfupload
|
12 |
-
function initSWFUpload() {
|
13 |
-
jQuery(function() {
|
14 |
-
jQuery("#uploadimage_btn").after("<input class='button-primary' type='button' name='uploadimage' id='swfupload_btn' value='" + ngg_swf_upload.customSettings.upload + "' />")
|
15 |
-
.remove();
|
16 |
-
jQuery("#swfupload_btn").click( function() { submitFiles(); } );
|
17 |
-
jQuery("#imagefiles")
|
18 |
-
.after("<div id='uploadQueue'></div>")
|
19 |
-
.after("<input id='imagefiles' type='button' class='button-secondary uploadform' value='" + ngg_swf_upload.customSettings.browse + "' />")
|
20 |
-
.after("<input type='text' id='txtFileName' readonly='readonly' />")
|
21 |
-
.remove();
|
22 |
-
jQuery("#imagefiles").click( function() { fileBrowse(); } );
|
23 |
-
});
|
24 |
-
}
|
25 |
-
|
26 |
-
// call the upload dialog
|
27 |
-
function fileBrowse() {
|
28 |
-
jQuery("#txtFileName").val("");
|
29 |
-
ngg_swf_upload.cancelUpload();
|
30 |
-
ngg_swf_upload.selectFiles();
|
31 |
-
}
|
32 |
-
|
33 |
-
// called when a file is added
|
34 |
-
function fileQueued(fileObj) {
|
35 |
-
filesize = " (" + Math.round(fileObj.size/1024) + " kB) ";
|
36 |
-
jQuery("#txtFileName").val(fileObj.name);
|
37 |
-
jQuery("#uploadQueue")
|
38 |
-
.append("<div id='" + fileObj.id + "' class='nggUploadItem'> [<a href='javascript:removeFile(\"" + fileObj.id + "\");'>" + ngg_swf_upload.customSettings.remove + "</a>] " + fileObj.name + filesize + "</div>")
|
39 |
-
.children("div:last").slideDown("slow")
|
40 |
-
.end();
|
41 |
-
}
|
42 |
-
|
43 |
-
// start the upload
|
44 |
-
function submitFiles() {
|
45 |
-
// check if a gallery is selected
|
46 |
-
if (jQuery('#galleryselect').val() > "0") {
|
47 |
-
nggProgressBar.init(nggAjaxOptions);
|
48 |
-
// get old post_params
|
49 |
-
post_params = ngg_swf_upload.getSetting("post_params");
|
50 |
-
// update the selected gallery in the post_params
|
51 |
-
post_params['galleryselect'] = jQuery('#galleryselect').val();
|
52 |
-
ngg_swf_upload.setPostParams(post_params);
|
53 |
-
ngg_swf_upload.startUpload();
|
54 |
-
} else {
|
55 |
-
jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"-1\">");
|
56 |
-
jQuery("#uploadimage_form").submit();
|
57 |
-
}
|
58 |
-
}
|
59 |
-
|
60 |
-
// called when a file will be removed
|
61 |
-
function removeFile(fileID) {
|
62 |
-
ngg_swf_upload.cancelUpload(fileID);
|
63 |
-
jQuery("#" + fileID).hide("slow");
|
64 |
-
jQuery("#" + fileID).remove();
|
65 |
-
}
|
66 |
-
|
67 |
-
// called before the uploads start
|
68 |
-
function uploadStart(fileObj) {
|
69 |
-
nggProgressBar.init(nggAjaxOptions);
|
70 |
-
return true;
|
71 |
-
}
|
72 |
-
|
73 |
-
// called during the upload progress
|
74 |
-
function uploadProgress(fileObj, bytesLoaded) {
|
75 |
-
var percent = Math.ceil((bytesLoaded / fileObj.size) * 100);
|
76 |
-
nggProgressBar.increase( percent );
|
77 |
-
jQuery("#progressbar span").text(percent + "% - " + fileObj.name);
|
78 |
-
}
|
79 |
-
|
80 |
-
// called when the file is uploaded
|
81 |
-
function uploadComplete(fileObj) {
|
82 |
-
jQuery("#" + fileObj.id).hide("slow");
|
83 |
-
jQuery("#" + fileObj.id).remove();
|
84 |
-
if ( ngg_swf_upload.getStats().files_queued == 0) {
|
85 |
-
nggProgressBar.finished();
|
86 |
-
jQuery("#uploadimage_form").submit();
|
87 |
-
}
|
88 |
-
}
|
89 |
-
|
90 |
-
// called when all files are uploaded
|
91 |
-
function uploadSuccess(fileObj, server_data) {
|
92 |
-
// Show any error message
|
93 |
-
if (server_data != 0){
|
94 |
-
nggProgressBar.addNote("<strong>ERROR</strong>: " + fileObj.name + " : " + server_data);
|
95 |
-
}
|
96 |
-
// Upload the next file until queue is empty
|
97 |
-
if ( ngg_swf_upload.getStats().files_queued > 0) {
|
98 |
-
ngg_swf_upload.startUpload();
|
99 |
-
} else {
|
100 |
-
// server_data could be add as hidden field
|
101 |
-
jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"" + server_data + "\">");
|
102 |
-
}
|
103 |
-
}
|
104 |
-
|
105 |
-
// called on error
|
106 |
-
function uploadError(fileObj, error_code, message) {
|
107 |
-
var error_name = "";
|
108 |
-
switch(error_code) {
|
109 |
-
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
|
110 |
-
error_name = "HTTP ERROR";
|
111 |
-
break;
|
112 |
-
case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
|
113 |
-
error_name = "MISSING UPLOAD URL";
|
114 |
-
break;
|
115 |
-
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
|
116 |
-
error_name = "IO FAILURE";
|
117 |
-
break;
|
118 |
-
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
|
119 |
-
error_name = "SECURITY ERROR";
|
120 |
-
break;
|
121 |
-
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
|
122 |
-
error_name = "UPLOAD LIMIT EXCEEDED";
|
123 |
-
break;
|
124 |
-
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
|
125 |
-
error_name = "UPLOAD FAILED";
|
126 |
-
break;
|
127 |
-
case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
|
128 |
-
error_name = "SPECIFIED FILE ID NOT FOUND";
|
129 |
-
break;
|
130 |
-
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
|
131 |
-
error_name = "FILE VALIDATION FAILED";
|
132 |
-
break;
|
133 |
-
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
|
134 |
-
error_name = "FILE CANCELLED";
|
135 |
-
return;
|
136 |
-
break;
|
137 |
-
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
|
138 |
-
error_name = "FILE STOPPED";
|
139 |
-
break;
|
140 |
-
default:
|
141 |
-
error_name = "UNKNOWN";
|
142 |
-
break;
|
143 |
-
}
|
144 |
-
nggProgressBar.addNote("<strong>ERROR " + error_name + " </strong>: " + fileObj.name + " : " + message);
|
145 |
-
jQuery("#" + fileObj.id).hide("slow");
|
146 |
-
jQuery("#" + fileObj.id).remove();
|
147 |
-
if ( ngg_swf_upload.getStats().files_queued > 0) {
|
148 |
-
ngg_swf_upload.startUpload();
|
149 |
-
} else {
|
150 |
-
jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"" + error_name + "\">");
|
151 |
-
jQuery("#uploadimage_form").submit();
|
152 |
-
}
|
153 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/manage-images.php
CHANGED
@@ -272,7 +272,7 @@ jQuery(document).ready( function() {
|
|
272 |
<div id="poststuff">
|
273 |
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
|
274 |
<div id="gallerydiv" class="postbox <?php echo postbox_classes('gallerydiv', 'ngg-manage-gallery'); ?>" >
|
275 |
-
<h3><?php _e('Gallery settings', 'nggallery') ?><small> (<?php _e('Click here for more settings', 'nggallery') ?>)</small></h3>
|
276 |
<div class="inside">
|
277 |
<table class="form-table" id="gallery-properties">
|
278 |
<tr>
|
@@ -331,7 +331,8 @@ jQuery(document).ready( function() {
|
|
331 |
</tr>
|
332 |
<?php if(current_user_can( 'publish_pages' )) : ?>
|
333 |
<tr>
|
334 |
-
<td
|
|
|
335 |
<td align="right"><label for="parent_id"><?php _e('Create new page', 'nggallery') ?>:</label></td>
|
336 |
<td align="left">
|
337 |
<select name="parent_id" id="parent_id" style="width:95%">
|
@@ -383,9 +384,19 @@ jQuery(document).ready( function() {
|
|
383 |
</select>
|
384 |
<input class="button-secondary" type="submit" name="showThickbox" value="<?php _e('Apply', 'nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
|
385 |
|
386 |
-
<?php
|
387 |
-
|
388 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
|
390 |
<input type="submit" name="updatepictures" class="button-primary action" value="<?php _e('Save Changes', 'nggallery');?>" />
|
391 |
</div>
|
272 |
<div id="poststuff">
|
273 |
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
|
274 |
<div id="gallerydiv" class="postbox <?php echo postbox_classes('gallerydiv', 'ngg-manage-gallery'); ?>" >
|
275 |
+
<h3 class="hndle"><?php _e('Gallery settings', 'nggallery') ?><small> (<?php _e('Click here for more settings', 'nggallery') ?>)</small></h3>
|
276 |
<div class="inside">
|
277 |
<table class="form-table" id="gallery-properties">
|
278 |
<tr>
|
331 |
</tr>
|
332 |
<?php if(current_user_can( 'publish_pages' )) : ?>
|
333 |
<tr>
|
334 |
+
<td align="left"><?php _e('Gallery ID', 'nggallery') ?>:</td>
|
335 |
+
<td align="right"><?php echo $gallery->gid; ?></td>
|
336 |
<td align="right"><label for="parent_id"><?php _e('Create new page', 'nggallery') ?>:</label></td>
|
337 |
<td align="left">
|
338 |
<select name="parent_id" id="parent_id" style="width:95%">
|
384 |
</select>
|
385 |
<input class="button-secondary" type="submit" name="showThickbox" value="<?php _e('Apply', 'nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
|
386 |
|
387 |
+
<?php
|
388 |
+
if ((!$is_search)) {
|
389 |
+
$disabled =""; $title="";
|
390 |
+
|
391 |
+
if ($ngg->options['galSort'] != "sortorder") {
|
392 |
+
//Disable sort button and provide feedback why is disabled
|
393 |
+
$disabled ="disabled";
|
394 |
+
$title = "title='" . __('To enable manual Sort set Custom Order Sort.See Settings->Gallery Settings->Sort Options', 'nggallery') . "'";
|
395 |
+
}
|
396 |
+
$button="<input class='button-secondary' type='submit' $disabled $title name='sortGallery' value='" . __('Sort gallery', 'nggallery') ."' />";
|
397 |
+
echo $button;
|
398 |
+
}
|
399 |
+
?>
|
400 |
|
401 |
<input type="submit" name="updatepictures" class="button-primary action" value="<?php _e('Save Changes', 'nggallery');?>" />
|
402 |
</div>
|
admin/manage-sort.php
CHANGED
@@ -14,10 +14,12 @@ function nggallery_sortorder($galleryID = 0){
|
|
14 |
|
15 |
if (isset ($_POST['updateSortorder'])) {
|
16 |
check_admin_referer('ngg_updatesortorder');
|
17 |
-
|
18 |
-
|
|
|
19 |
if (is_array($sortArray)){
|
20 |
$neworder = array();
|
|
|
21 |
foreach($sortArray as $pid) {
|
22 |
$pid = substr($pid, 4); // get id from "pid-x"
|
23 |
$neworder[] = (int) $pid;
|
@@ -58,19 +60,13 @@ function nggallery_sortorder($galleryID = 0){
|
|
58 |
?>
|
59 |
<script type="text/javascript">
|
60 |
// seralize the ImageOrder
|
61 |
-
function saveImageOrder()
|
62 |
-
|
63 |
-
var serial =
|
64 |
-
var
|
65 |
-
|
66 |
-
if(objects[no].className=='imageBox' || objects[no].className=='imageBoxHighlighted'){
|
67 |
-
if (serial.length > 0) serial = serial + '&'
|
68 |
-
serial = serial + "sortArray[]=" + objects[no].id;
|
69 |
-
}
|
70 |
}
|
71 |
jQuery('input[name=sortorder]').val(serial);
|
72 |
-
// debug( 'This is the new order of the images(IDs) : <br>' + orderString );
|
73 |
-
|
74 |
}
|
75 |
jQuery(document).ready(function($) {
|
76 |
$(".jqui-sortable").sortable({items: 'div.imageBox'});
|
14 |
|
15 |
if (isset ($_POST['updateSortorder'])) {
|
16 |
check_admin_referer('ngg_updatesortorder');
|
17 |
+
|
18 |
+
// get variable new sortorder
|
19 |
+
$sortArray = explode(",", $_POST['sortorder']);
|
20 |
if (is_array($sortArray)){
|
21 |
$neworder = array();
|
22 |
+
|
23 |
foreach($sortArray as $pid) {
|
24 |
$pid = substr($pid, 4); // get id from "pid-x"
|
25 |
$neworder[] = (int) $pid;
|
60 |
?>
|
61 |
<script type="text/javascript">
|
62 |
// seralize the ImageOrder
|
63 |
+
function saveImageOrder() {
|
64 |
+
var objects = document.getElementsByClassName('imageBox');
|
65 |
+
var serial = objects[0].id;
|
66 |
+
for( var no=1; no < objects.length; no++) {
|
67 |
+
serial += "," + objects[no].id;
|
|
|
|
|
|
|
|
|
68 |
}
|
69 |
jQuery('input[name=sortorder]').val(serial);
|
|
|
|
|
70 |
}
|
71 |
jQuery(document).ready(function($) {
|
72 |
$(".jqui-sortable").sortable({items: 'div.imageBox'});
|
admin/rotate.php
CHANGED
@@ -80,8 +80,8 @@ $preview_image = trailingslashit( home_url() ) . 'index.php?callback=image&
|
|
80 |
<td style="min-width: 160px;">
|
81 |
<input type="radio" name="ra" value="cw" /><?php esc_html_e('90° clockwise', 'nggallery'); ?><br />
|
82 |
<input type="radio" name="ra" value="ccw" /><?php esc_html_e('90° anticlockwise', 'nggallery'); ?><br />
|
83 |
-
<input type="radio" name="ra" value="fv" /><?php esc_html_e('Flip
|
84 |
-
<input type="radio" name="ra" value="fh" /><?php esc_html_e('Flip
|
85 |
</td>
|
86 |
</tr>
|
87 |
<tr>
|
80 |
<td style="min-width: 160px;">
|
81 |
<input type="radio" name="ra" value="cw" /><?php esc_html_e('90° clockwise', 'nggallery'); ?><br />
|
82 |
<input type="radio" name="ra" value="ccw" /><?php esc_html_e('90° anticlockwise', 'nggallery'); ?><br />
|
83 |
+
<input type="radio" name="ra" value="fv" /><?php esc_html_e('Flip horizontally', 'nggallery'); ?><br />
|
84 |
+
<input type="radio" name="ra" value="fh" /><?php esc_html_e('Flip vertically', 'nggallery'); ?>
|
85 |
</td>
|
86 |
</tr>
|
87 |
<tr>
|
admin/settings.php
CHANGED
@@ -3,7 +3,9 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
3 |
|
4 |
/**
|
5 |
* Rebuild slugs for albums, galleries and images via AJAX request
|
6 |
-
*
|
|
|
|
|
7 |
* @sine 1.7.0
|
8 |
* @access internal
|
9 |
*/
|
@@ -97,6 +99,8 @@ jQuery(document).ready(function($) {
|
|
97 |
}
|
98 |
}
|
99 |
|
|
|
|
|
100 |
class nggOptions {
|
101 |
|
102 |
/**
|
@@ -126,12 +130,6 @@ class nggOptions {
|
|
126 |
$old_state = $ngg->options['usePermalinks'];
|
127 |
$old_slug = $ngg->options['permalinkSlug'];
|
128 |
|
129 |
-
if ( isset($_POST['irDetect']) ) {
|
130 |
-
check_admin_referer('ngg_settings');
|
131 |
-
$ngg->options['irURL'] = ngg_search_imagerotator();
|
132 |
-
update_option('ngg_options', $ngg->options);
|
133 |
-
}
|
134 |
-
|
135 |
if ( isset($_POST['updateoption']) ) {
|
136 |
check_admin_referer('ngg_settings');
|
137 |
// get the hidden option fields, taken from WP core
|
@@ -141,7 +139,18 @@ class nggOptions {
|
|
141 |
if ($options) {
|
142 |
foreach ($options as $option) {
|
143 |
$option = trim($option);
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
// $value = sanitize_option($option, $value); // This does stripslashes on those that need it
|
146 |
$ngg->options[$option] = $value;
|
147 |
}
|
@@ -196,7 +205,7 @@ class nggOptions {
|
|
196 |
|
197 |
/**
|
198 |
* Render the page content
|
199 |
-
*
|
200 |
* @return void
|
201 |
*/
|
202 |
function controller() {
|
@@ -241,9 +250,9 @@ class nggOptions {
|
|
241 |
jQuery("#thumbCode").val(effectcode);
|
242 |
};
|
243 |
|
244 |
-
function
|
245 |
-
|
246 |
-
};
|
247 |
</script>
|
248 |
<div class="wrap ngg-wrap">
|
249 |
<?php screen_icon( 'nextgen-gallery' ); ?>
|
@@ -303,16 +312,21 @@ class nggOptions {
|
|
303 |
<h3><?php esc_html_e('General settings','nggallery'); ?></h3>
|
304 |
<form name="generaloptions" method="post" action="<?php echo $this->filepath; ?>">
|
305 |
<?php wp_nonce_field('ngg_settings') ?>
|
306 |
-
<input type="hidden" name="page_options" value="gallerypath,deleteImg,useMediaRSS,usePicLens,usePermalinks,permalinkSlug,graphicLibrary,imageMagickDir,activateTags,appendType,maxImages" />
|
307 |
<table class="form-table ngg-options">
|
308 |
<tr valign="top">
|
309 |
<th align="left"><?php esc_html_e('Gallery path','nggallery'); ?></th>
|
310 |
<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="text" class="regular-text code" name="gallerypath" value="<?php echo $ngg->options['gallerypath']; ?>" />
|
311 |
<p class="description"><?php esc_html_e('This is the default path for all galleries','nggallery') ?></p></td>
|
312 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
313 |
<tr valign="top">
|
314 |
<th align="left"><?php esc_html_e('Image files','nggallery'); ?></th>
|
315 |
-
<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="checkbox" name="deleteImg" value="
|
316 |
<?php esc_html_e('Delete files when removing a gallery from the database','nggallery'); ?></td>
|
317 |
</tr>
|
318 |
<tr>
|
@@ -325,12 +339,12 @@ class nggOptions {
|
|
325 |
</tr>
|
326 |
<tr>
|
327 |
<th align="left"><?php esc_html_e('Media RSS feed','nggallery'); ?></th>
|
328 |
-
<td><input type="checkbox" name="useMediaRSS" value="
|
329 |
<span><?php esc_html_e('Add a RSS feed to you blog header. Useful for CoolIris/PicLens','nggallery') ?></span></td>
|
330 |
</tr>
|
331 |
<tr>
|
332 |
<th align="left"><?php esc_html_e('PicLens/CoolIris','nggallery'); ?> (<a href="http://www.cooliris.com">CoolIris</a>)</th>
|
333 |
-
<td><input type="checkbox" name="usePicLens" value="
|
334 |
<?php esc_html_e('Include support for PicLens and CoolIris','nggallery') ?>
|
335 |
<p class="description"><?php esc_html_e('When activated, JavaScript is added to your site footer. Make sure that wp_footer is called in your theme.','nggallery') ?></p></td>
|
336 |
</td>
|
@@ -340,7 +354,7 @@ class nggOptions {
|
|
340 |
<table class="form-table ngg-options">
|
341 |
<tr valign="top">
|
342 |
<th align="left"><?php esc_html_e('Use permalinks','nggallery'); ?></th>
|
343 |
-
<td><input type="checkbox" name="usePermalinks" value="
|
344 |
<?php esc_html_e('Adds a static link to all images','nggallery'); ?>
|
345 |
<p class="description"><?php esc_html_e('When activating this option, you need to update your permalink structure once','nggallery'); ?></p></td>
|
346 |
</tr>
|
@@ -359,7 +373,7 @@ class nggOptions {
|
|
359 |
<table class="form-table ngg-options">
|
360 |
<tr>
|
361 |
<th valign="top"><?php esc_html_e('Add related images','nggallery'); ?></th>
|
362 |
-
<td><input name="activateTags" type="checkbox" value="
|
363 |
<?php esc_html_e('This will add related images to every post','nggallery'); ?>
|
364 |
</td>
|
365 |
</tr>
|
@@ -405,12 +419,12 @@ class nggOptions {
|
|
405 |
</tr>
|
406 |
<tr>
|
407 |
<th valign="top"><?php esc_html_e('Backup original','nggallery'); ?></th>
|
408 |
-
<td><input type="checkbox" name="imgBackup" value="
|
409 |
<span><?php esc_html_e('Create a backup for the resized images','nggallery'); ?></span></td>
|
410 |
</tr>
|
411 |
<tr>
|
412 |
<th valign="top"><?php esc_html_e('Automatically resize','nggallery'); ?></th>
|
413 |
-
<td><input type="checkbox" name="imgAutoResize" value="1"<?php
|
414 |
<span><?php esc_html_e('Automatically resize images on upload.','nggallery') ?></span></td>
|
415 |
</tr>
|
416 |
</table>
|
@@ -429,7 +443,7 @@ class nggOptions {
|
|
429 |
</tr>
|
430 |
<tr valign="top">
|
431 |
<th align="left"><?php esc_html_e('Fixed size','nggallery'); ?></th>
|
432 |
-
<td><input type="checkbox" name="thumbfix" value="
|
433 |
<?php esc_html_e('This will ignore the aspect ratio, so no portrait thumbnails','nggallery') ?></td>
|
434 |
</tr>
|
435 |
<tr valign="top">
|
@@ -461,7 +475,7 @@ class nggOptions {
|
|
461 |
<table class="form-table ngg-options">
|
462 |
<tr>
|
463 |
<th valign="top"><?php esc_html_e('Inline gallery','nggallery') ?></th>
|
464 |
-
<td><input name="galNoPages" type="checkbox" value="
|
465 |
<?php esc_html_e('Galleries will not be shown on a subpage, but on the same page.','nggallery') ?>
|
466 |
</td>
|
467 |
</tr>
|
@@ -481,7 +495,7 @@ class nggOptions {
|
|
481 |
</tr>
|
482 |
<tr>
|
483 |
<th valign="top"><?php esc_html_e('Slideshow','nggallery'); ?></th>
|
484 |
-
<td><input name="galShowSlide" type="checkbox" value="
|
485 |
<input type="text" class="regular-text" name="galTextSlide" value="<?php echo $ngg->options['galTextSlide'] ?>" />
|
486 |
<input type="text" name="galTextGallery" value="<?php echo $ngg->options['galTextGallery'] ?>" class="regular-text"/>
|
487 |
<p class="description"> <?php esc_html_e('This is the text the visitors will have to click to switch between display modes.','nggallery'); ?></p>
|
@@ -496,20 +510,20 @@ class nggOptions {
|
|
496 |
</tr>
|
497 |
<tr>
|
498 |
<th valign="top"><?php esc_html_e('ImageBrowser','nggallery'); ?></th>
|
499 |
-
<td><input name="galImgBrowser" type="checkbox" value="
|
500 |
<?php esc_html_e('Use ImageBrowser instead of another effect.', 'nggallery'); ?>
|
501 |
</td>
|
502 |
</tr>
|
503 |
<tr>
|
504 |
<th valign="top"><?php esc_html_e('Hidden images','nggallery'); ?></th>
|
505 |
-
<td><input name="galHiddenImg" type="checkbox" value="
|
506 |
<?php esc_html_e('Loads all images for the modal window, when pagination is used (like Thickbox, Lightbox etc.).','nggallery'); ?>
|
507 |
<p class="description"> <?php esc_html_e('Note: this increases the page load (possibly a lot)', 'nggallery'); ?>
|
508 |
</td>
|
509 |
</tr>
|
510 |
<tr>
|
511 |
<th valign="top"><?php esc_html_e('AJAX pagination','nggallery'); ?></th>
|
512 |
-
<td><input name="galAjaxNav" type="checkbox" value="
|
513 |
<?php esc_html_e('Use AJAX pagination to browse images without reloading the page.','nggallery'); ?>
|
514 |
<p class="description"><?php esc_html_e('Note: works only in combination with the Shutter effect.', 'nggallery'); ?> </p>
|
515 |
</td>
|
@@ -576,11 +590,13 @@ class nggOptions {
|
|
576 |
|
577 |
function tab_watermark() {
|
578 |
|
579 |
-
global $
|
580 |
|
581 |
// take the first image as sample
|
582 |
-
|
583 |
-
|
|
|
|
|
584 |
|
585 |
?>
|
586 |
<!-- Watermark settings -->
|
@@ -665,8 +681,7 @@ class nggOptions {
|
|
665 |
</tr>
|
666 |
<tr>
|
667 |
<th><?php esc_html_e('Color','nggallery') ?></th>
|
668 |
-
<td><input class="picker" type="text"
|
669 |
-
<input type="text" size="1" readonly="readonly" id="previewText" style="background-color: #<?php echo $ngg->options['wmColor']; ?>" /> <?php esc_html_e('(hex w/o #)','nggallery') ?></td>
|
670 |
</tr>
|
671 |
<tr>
|
672 |
<th valign="top"><?php esc_html_e('Text','nggallery') ?></th>
|
@@ -690,146 +705,89 @@ class nggOptions {
|
|
690 |
<!-- Slideshow settings -->
|
691 |
<form name="player_options" method="POST" action="<?php echo $this->filepath.'#slideshow'; ?>" >
|
692 |
<?php wp_nonce_field('ngg_settings'); ?>
|
693 |
-
<input type="hidden" name="page_options" value="slideFx,
|
694 |
<h3><?php esc_html_e('Slideshow','nggallery'); ?></h3>
|
695 |
<table class="form-table ngg-options">
|
696 |
<tr>
|
697 |
-
<th><?php esc_html_e('
|
698 |
-
|
699 |
-
<input type="number" step="1" min="0" class="small-text" name="irWidth" value="<?php echo $ngg->options['irWidth']; ?>" />
|
700 |
-
<label for="irHeight"><?php esc_html_e('Height','nggallery') ?></label>
|
701 |
-
<input type="number" step="1" min="0" class="small-text" name="irHeight" value="<?php echo $ngg->options['irHeight']; ?>" />
|
702 |
-
</td>
|
703 |
</tr>
|
704 |
<tr>
|
705 |
-
<th><?php esc_html_e('
|
706 |
-
<td
|
|
|
|
|
|
|
|
|
|
|
707 |
</tr>
|
708 |
<tr>
|
709 |
<th><?php esc_html_e('Transition / Fade effect','nggallery') ?></th>
|
710 |
<td>
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
722 |
</td>
|
723 |
</tr>
|
724 |
-
|
725 |
-
<h3><?php esc_html_e('Settings for the JW Image Rotator','nggallery') ?></h3>
|
726 |
-
<p><?php esc_html_e('NextCellent Gallery flash slideshows use the JW Image Rotator Version 3.17 by', 'nggallery') ;?> <a target='_blank' href='http://www.longtailvideo.com/players/jw-image-rotator/'>Long Tail Video</a>.
|
727 |
-
<?php esc_html_e('Press the button below to search for it automatically. For earlier versions of NextCellent Gallery, you\'ll need to
|
728 |
-
upload the file manually to the', 'nggallery') ;?> <a href='http://codex.wordpress.org/Uploading_Files' target='_blank'>WordPress Uploads directory</a>.</p>
|
729 |
-
<?php if (empty($ngg->options['irURL']) && ($ngg->options['enableIR'] == '1')) { ?>
|
730 |
-
<div id="message" class="error inline">
|
731 |
-
<p>
|
732 |
-
<?php esc_html_e('The path to JW Image Rotator is not defined, the slideshow will not work.','nggallery'); ?><br />
|
733 |
-
<?php esc_html_e('Press the button below to search for the file.','nggallery'); ?></p>
|
734 |
-
</div>
|
735 |
-
<?php }?>
|
736 |
-
<table class="form-table ngg-options">
|
737 |
-
<tr>
|
738 |
-
<th><?php esc_html_e('Enable flash slideshow','nggallery') ?></th>
|
739 |
-
<td><input name="enableIR" type="checkbox" value="1" <?php checked('1', $ngg->options['enableIR']); ?> />
|
740 |
-
<span><?php esc_html_e('Integrate the flash based slideshow for all flash supported devices','nggallery') ?></span></td>
|
741 |
-
</tr>
|
742 |
-
<tr>
|
743 |
-
<th><?php esc_html_e('Path to the JW Image Rotator (URL)','nggallery') ?></th>
|
744 |
-
<td>
|
745 |
-
<input type="text" class="regular-text code" id="irURL" name="irURL" value="<?php echo $ngg->options['irURL']; ?>" />
|
746 |
-
<input type="submit" name="irDetect" class="button-secondary" value="<?php esc_html_e('Search now','nggallery') ;?> »"/>
|
747 |
-
<br /><span><?php esc_html_e('Press the button below to search for the JW Image Rotator','nggallery') ?></span>
|
748 |
-
</td>
|
749 |
-
</tr>
|
750 |
-
<tr>
|
751 |
-
<th><?php esc_html_e('Shuffle mode','nggallery') ?></th>
|
752 |
-
<td><input name="irShuffle" type="checkbox" value="1" <?php checked('1', $ngg->options['irShuffle']); ?> /></td>
|
753 |
-
</tr>
|
754 |
<tr>
|
755 |
-
<th><?php esc_html_e('
|
756 |
-
<td><input
|
757 |
</tr>
|
758 |
<tr>
|
759 |
-
<th><?php esc_html_e('
|
760 |
-
<td><input
|
761 |
</tr>
|
762 |
<tr>
|
763 |
-
<th><?php esc_html_e('
|
764 |
-
<td><input
|
765 |
</tr>
|
766 |
<tr>
|
767 |
-
<th><?php esc_html_e('
|
768 |
-
<td><input
|
769 |
-
<span><?php esc_html_e('You can change the logo at the watermark settings','nggallery') ?></span></td>
|
770 |
</tr>
|
771 |
<tr>
|
772 |
-
<th><?php esc_html_e('
|
773 |
-
<td>
|
774 |
-
<select size="1" name="irOverstretch">
|
775 |
-
<option value="true" <?php selected('true', $ngg->options['irOverstretch']); ?> ><?php esc_html_e('true', 'nggallery') ;?></option>
|
776 |
-
<option value="false" <?php selected('false', $ngg->options['irOverstretch']); ?> ><?php esc_html_e('false', 'nggallery') ;?></option>
|
777 |
-
<option value="fit" <?php selected('fit', $ngg->options['irOverstretch']); ?> ><?php esc_html_e('fit', 'nggallery') ;?></option>
|
778 |
-
<option value="none" <?php selected('none', $ngg->options['irOverstretch']); ?> ><?php esc_html_e('none', 'nggallery') ;?></option>
|
779 |
-
</select>
|
780 |
-
</td>
|
781 |
-
</tr>
|
782 |
-
<tr>
|
783 |
-
<th><?php esc_html_e('Transition / Fade effect','nggallery') ?></th>
|
784 |
-
<td>
|
785 |
-
<select size="1" name="irTransition">
|
786 |
-
<option value="fade" <?php selected('fade', $ngg->options['irTransition']); ?> ><?php esc_html_e('fade', 'nggallery') ;?></option>
|
787 |
-
<option value="bgfade" <?php selected('bgfade', $ngg->options['irTransition']); ?> ><?php esc_html_e('bgfade', 'nggallery') ;?></option>
|
788 |
-
<option value="slowfade" <?php selected('slowfade', $ngg->options['irTransition']); ?> ><?php esc_html_e('slowfade', 'nggallery') ;?></option>
|
789 |
-
<option value="circles" <?php selected('circles', $ngg->options['irTransition']); ?> ><?php esc_html_e('circles', 'nggallery') ;?></option>
|
790 |
-
<option value="bubbles" <?php selected('bubbles', $ngg->options['irTransition']); ?> ><?php esc_html_e('bubbles', 'nggallery') ;?></option>
|
791 |
-
<option value="blocks" <?php selected('blocks', $ngg->options['irTransition']); ?> ><?php esc_html_e('blocks', 'nggallery') ;?></option>
|
792 |
-
<option value="fluids" <?php selected('fluids', $ngg->options['irTransition']); ?> ><?php esc_html_e('fluids', 'nggallery') ;?></option>
|
793 |
-
<option value="flash" <?php selected('flash', $ngg->options['irTransition']); ?> ><?php esc_html_e('flash', 'nggallery') ;?></option>
|
794 |
-
<option value="lines" <?php selected('lines', $ngg->options['irTransition']); ?> ><?php esc_html_e('lines', 'nggallery') ;?></option>
|
795 |
-
<option value="random" <?php selected('random', $ngg->options['irTransition']); ?> ><?php esc_html_e('random', 'nggallery') ;?></option>
|
796 |
-
</select>
|
797 |
-
</td>
|
798 |
-
</tr>
|
799 |
-
<tr>
|
800 |
-
<th><?php esc_html_e('Use slow zooming effect','nggallery') ?></th>
|
801 |
-
<td><input name="irKenburns" type="checkbox" value="1" <?php checked('1', $ngg->options['irKenburns']); ?> /></td>
|
802 |
-
</tr>
|
803 |
-
<tr>
|
804 |
-
<th><?php esc_html_e('Background Color','nggallery') ?></th>
|
805 |
-
<td><input class="picker" type="text" size="6" maxlength="6" id="irBackcolor" name="irBackcolor" onchange="setcolor('#previewBack', this.value)" value="<?php echo $ngg->options['irBackcolor'] ?>" />
|
806 |
-
<input type="text" size="1" readonly="readonly" id="previewBack" style="background-color: #<?php echo $ngg->options['irBackcolor'] ?>" /></td>
|
807 |
-
</tr>
|
808 |
-
<tr>
|
809 |
-
<th><?php esc_html_e('Texts / Buttons Color','nggallery') ?></th>
|
810 |
-
<td><input class="picker" type="text" size="6" maxlength="6" id="irFrontcolor" name="irFrontcolor" onchange="setcolor('#previewFront', this.value)" value="<?php echo $ngg->options['irFrontcolor'] ?>" />
|
811 |
-
<input type="text" size="1" readonly="readonly" id="previewFront" style="background-color: #<?php echo $ngg->options['irFrontcolor'] ?>" /></td>
|
812 |
</tr>
|
813 |
<tr>
|
814 |
-
<th><?php esc_html_e('
|
815 |
-
<td><input
|
816 |
-
<input type="text" size="1" readonly="readonly" id="previewLight" style="background-color: #<?php echo $ngg->options['irLightcolor'] ?>" /></td>
|
817 |
</tr>
|
818 |
<tr>
|
819 |
-
<th><?php esc_html_e('
|
820 |
-
<td><input
|
821 |
-
<input type="text" size="1" readonly="readonly" id="previewScreen" style="background-color: #<?php echo $ngg->options['irScreencolor'] ?>" /></td>
|
822 |
</tr>
|
823 |
<tr>
|
824 |
-
<th><?php esc_html_e('
|
825 |
-
<td><input type="
|
826 |
</tr>
|
827 |
<tr>
|
828 |
-
<th
|
829 |
-
<td
|
830 |
-
|
|
|
|
|
831 |
</tr>
|
832 |
-
|
833 |
<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php esc_attr_e('Save Changes') ;?>"/></div>
|
834 |
</form>
|
835 |
<?php
|
@@ -868,36 +826,33 @@ function ngg_get_TTFfont() {
|
|
868 |
return $ttf_fonts;
|
869 |
}
|
870 |
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
// This should be the new place
|
881 |
-
if ( file_exists( $upload['basedir'] . '/imagerotator.swf' ) )
|
882 |
-
return $upload['baseurl'] . '/imagerotator.swf';
|
883 |
|
884 |
-
|
885 |
-
if ( $path = $wpdb->get_var( "SELECT guid FROM {$wpdb->posts} WHERE guid LIKE '%imagerotator.swf%'" ) )
|
886 |
-
return $path;
|
887 |
|
888 |
-
|
889 |
-
|
890 |
-
|
|
|
|
|
891 |
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
|
900 |
-
return
|
901 |
}
|
902 |
|
903 |
/**********************************************************/
|
3 |
|
4 |
/**
|
5 |
* Rebuild slugs for albums, galleries and images via AJAX request
|
6 |
+
* 20150124 FZSM: A class only for one method (and is not the constructor) needs to be improved.
|
7 |
+
* 20150124 FZSM: suggested rule: One file, one class...
|
8 |
+
* 20150124: function called statically when is not...
|
9 |
* @sine 1.7.0
|
10 |
* @access internal
|
11 |
*/
|
99 |
}
|
100 |
}
|
101 |
|
102 |
+
//20150124 FZSM: Suggested rule: no class should call a spaghuetti code directly...
|
103 |
+
|
104 |
class nggOptions {
|
105 |
|
106 |
/**
|
130 |
$old_state = $ngg->options['usePermalinks'];
|
131 |
$old_slug = $ngg->options['permalinkSlug'];
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
if ( isset($_POST['updateoption']) ) {
|
134 |
check_admin_referer('ngg_settings');
|
135 |
// get the hidden option fields, taken from WP core
|
139 |
if ($options) {
|
140 |
foreach ($options as $option) {
|
141 |
$option = trim($option);
|
142 |
+
$value = false;
|
143 |
+
if ( isset( $_POST[ $option ] ) ) {
|
144 |
+
$value = trim( $_POST[ $option ] );
|
145 |
+
if ($value === "true") {
|
146 |
+
$value = true;
|
147 |
+
}
|
148 |
+
|
149 |
+
if ( is_numeric( $value ) ) {
|
150 |
+
$value = (int) $value;
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
// $value = sanitize_option($option, $value); // This does stripslashes on those that need it
|
155 |
$ngg->options[$option] = $value;
|
156 |
}
|
205 |
|
206 |
/**
|
207 |
* Render the page content
|
208 |
+
* 20150124:FZSM: there should be a cleaner way to handle this, instead making dynamic functions and actions.
|
209 |
* @return void
|
210 |
*/
|
211 |
function controller() {
|
250 |
jQuery("#thumbCode").val(effectcode);
|
251 |
};
|
252 |
|
253 |
+
jQuery(document).ready(function($){
|
254 |
+
$('.picker').wpColorPicker();
|
255 |
+
});
|
256 |
</script>
|
257 |
<div class="wrap ngg-wrap">
|
258 |
<?php screen_icon( 'nextgen-gallery' ); ?>
|
312 |
<h3><?php esc_html_e('General settings','nggallery'); ?></h3>
|
313 |
<form name="generaloptions" method="post" action="<?php echo $this->filepath; ?>">
|
314 |
<?php wp_nonce_field('ngg_settings') ?>
|
315 |
+
<input type="hidden" name="page_options" value="gallerypath,silentUpgrade,deleteImg,useMediaRSS,usePicLens,usePermalinks,permalinkSlug,graphicLibrary,imageMagickDir,activateTags,appendType,maxImages" />
|
316 |
<table class="form-table ngg-options">
|
317 |
<tr valign="top">
|
318 |
<th align="left"><?php esc_html_e('Gallery path','nggallery'); ?></th>
|
319 |
<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="text" class="regular-text code" name="gallerypath" value="<?php echo $ngg->options['gallerypath']; ?>" />
|
320 |
<p class="description"><?php esc_html_e('This is the default path for all galleries','nggallery') ?></p></td>
|
321 |
</tr>
|
322 |
+
<tr>
|
323 |
+
<th align="left"><?php esc_html_e('Silent database upgrade','nggallery'); ?></th>
|
324 |
+
<td><input type="checkbox" name="silentUpgrade" value="true" <?php checked( true, $ngg->options['silentUpgrade']); ?> />
|
325 |
+
<label for="silentUpgrade"><?php esc_html_e('Update the database without notice.','nggallery') ?></label></td>
|
326 |
+
</tr>
|
327 |
<tr valign="top">
|
328 |
<th align="left"><?php esc_html_e('Image files','nggallery'); ?></th>
|
329 |
+
<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="checkbox" name="deleteImg" value="true" <?php checked(true, $ngg->options['deleteImg']); ?> />
|
330 |
<?php esc_html_e('Delete files when removing a gallery from the database','nggallery'); ?></td>
|
331 |
</tr>
|
332 |
<tr>
|
339 |
</tr>
|
340 |
<tr>
|
341 |
<th align="left"><?php esc_html_e('Media RSS feed','nggallery'); ?></th>
|
342 |
+
<td><input type="checkbox" name="useMediaRSS" value="true" <?php checked(true, $ngg->options['useMediaRSS']); ?> />
|
343 |
<span><?php esc_html_e('Add a RSS feed to you blog header. Useful for CoolIris/PicLens','nggallery') ?></span></td>
|
344 |
</tr>
|
345 |
<tr>
|
346 |
<th align="left"><?php esc_html_e('PicLens/CoolIris','nggallery'); ?> (<a href="http://www.cooliris.com">CoolIris</a>)</th>
|
347 |
+
<td><input type="checkbox" name="usePicLens" value="true" <?php checked(true, $ngg->options['usePicLens']); ?> />
|
348 |
<?php esc_html_e('Include support for PicLens and CoolIris','nggallery') ?>
|
349 |
<p class="description"><?php esc_html_e('When activated, JavaScript is added to your site footer. Make sure that wp_footer is called in your theme.','nggallery') ?></p></td>
|
350 |
</td>
|
354 |
<table class="form-table ngg-options">
|
355 |
<tr valign="top">
|
356 |
<th align="left"><?php esc_html_e('Use permalinks','nggallery'); ?></th>
|
357 |
+
<td><input type="checkbox" name="usePermalinks" value="true" <?php checked(true, $ngg->options['usePermalinks']); ?> />
|
358 |
<?php esc_html_e('Adds a static link to all images','nggallery'); ?>
|
359 |
<p class="description"><?php esc_html_e('When activating this option, you need to update your permalink structure once','nggallery'); ?></p></td>
|
360 |
</tr>
|
373 |
<table class="form-table ngg-options">
|
374 |
<tr>
|
375 |
<th valign="top"><?php esc_html_e('Add related images','nggallery'); ?></th>
|
376 |
+
<td><input name="activateTags" type="checkbox" value="true" <?php checked(true, $ngg->options['activateTags']); ?> />
|
377 |
<?php esc_html_e('This will add related images to every post','nggallery'); ?>
|
378 |
</td>
|
379 |
</tr>
|
419 |
</tr>
|
420 |
<tr>
|
421 |
<th valign="top"><?php esc_html_e('Backup original','nggallery'); ?></th>
|
422 |
+
<td><input type="checkbox" name="imgBackup" value="true" <?php checked(true, $ngg->options['imgBackup']); ?> />
|
423 |
<span><?php esc_html_e('Create a backup for the resized images','nggallery'); ?></span></td>
|
424 |
</tr>
|
425 |
<tr>
|
426 |
<th valign="top"><?php esc_html_e('Automatically resize','nggallery'); ?></th>
|
427 |
+
<td><input type="checkbox" name="imgAutoResize" value="1" <?php checked(true, $ngg->options['imgAutoResize']); ?> />
|
428 |
<span><?php esc_html_e('Automatically resize images on upload.','nggallery') ?></span></td>
|
429 |
</tr>
|
430 |
</table>
|
443 |
</tr>
|
444 |
<tr valign="top">
|
445 |
<th align="left"><?php esc_html_e('Fixed size','nggallery'); ?></th>
|
446 |
+
<td><input type="checkbox" name="thumbfix" value="true" <?php checked(true, $ngg->options['thumbfix']); ?> />
|
447 |
<?php esc_html_e('This will ignore the aspect ratio, so no portrait thumbnails','nggallery') ?></td>
|
448 |
</tr>
|
449 |
<tr valign="top">
|
475 |
<table class="form-table ngg-options">
|
476 |
<tr>
|
477 |
<th valign="top"><?php esc_html_e('Inline gallery','nggallery') ?></th>
|
478 |
+
<td><input name="galNoPages" type="checkbox" value="true" <?php checked(true, $ngg->options['galNoPages']); ?> />
|
479 |
<?php esc_html_e('Galleries will not be shown on a subpage, but on the same page.','nggallery') ?>
|
480 |
</td>
|
481 |
</tr>
|
495 |
</tr>
|
496 |
<tr>
|
497 |
<th valign="top"><?php esc_html_e('Slideshow','nggallery'); ?></th>
|
498 |
+
<td><input name="galShowSlide" type="checkbox" value="true" <?php checked(true, $ngg->options['galShowSlide']); ?> /> <?php esc_html_e('Enable slideshow','nggallery'); ?><br/><?php esc_html_e('Text to show:','nggallery'); ?>
|
499 |
<input type="text" class="regular-text" name="galTextSlide" value="<?php echo $ngg->options['galTextSlide'] ?>" />
|
500 |
<input type="text" name="galTextGallery" value="<?php echo $ngg->options['galTextGallery'] ?>" class="regular-text"/>
|
501 |
<p class="description"> <?php esc_html_e('This is the text the visitors will have to click to switch between display modes.','nggallery'); ?></p>
|
510 |
</tr>
|
511 |
<tr>
|
512 |
<th valign="top"><?php esc_html_e('ImageBrowser','nggallery'); ?></th>
|
513 |
+
<td><input name="galImgBrowser" type="checkbox" value="true" <?php checked(true, $ngg->options['galImgBrowser']); ?> />
|
514 |
<?php esc_html_e('Use ImageBrowser instead of another effect.', 'nggallery'); ?>
|
515 |
</td>
|
516 |
</tr>
|
517 |
<tr>
|
518 |
<th valign="top"><?php esc_html_e('Hidden images','nggallery'); ?></th>
|
519 |
+
<td><input name="galHiddenImg" type="checkbox" value="true" <?php checked(true, $ngg->options['galHiddenImg']); ?> />
|
520 |
<?php esc_html_e('Loads all images for the modal window, when pagination is used (like Thickbox, Lightbox etc.).','nggallery'); ?>
|
521 |
<p class="description"> <?php esc_html_e('Note: this increases the page load (possibly a lot)', 'nggallery'); ?>
|
522 |
</td>
|
523 |
</tr>
|
524 |
<tr>
|
525 |
<th valign="top"><?php esc_html_e('AJAX pagination','nggallery'); ?></th>
|
526 |
+
<td><input name="galAjaxNav" type="checkbox" value="true" <?php checked(true, $ngg->options['galAjaxNav']); ?> />
|
527 |
<?php esc_html_e('Use AJAX pagination to browse images without reloading the page.','nggallery'); ?>
|
528 |
<p class="description"><?php esc_html_e('Note: works only in combination with the Shutter effect.', 'nggallery'); ?> </p>
|
529 |
</td>
|
590 |
|
591 |
function tab_watermark() {
|
592 |
|
593 |
+
global $ngg;
|
594 |
|
595 |
// take the first image as sample
|
596 |
+
$image_array = nggdb::find_last_images(0, 1);
|
597 |
+
$ngg_image = $image_array[0];
|
598 |
+
$imageID = $ngg_image->pid;
|
599 |
+
$imageURL = $imageURL = '<img src="' . home_url( 'index.php' ) . '?callback=image&pid=' . intval( $imageID ) . '&mode=watermark&width=300&height=250" />';
|
600 |
|
601 |
?>
|
602 |
<!-- Watermark settings -->
|
681 |
</tr>
|
682 |
<tr>
|
683 |
<th><?php esc_html_e('Color','nggallery') ?></th>
|
684 |
+
<td><input class="picker" type="text" id="wmColor" name="wmColor" value="<?php echo $ngg->options['wmColor'] ?>" />
|
|
|
685 |
</tr>
|
686 |
<tr>
|
687 |
<th valign="top"><?php esc_html_e('Text','nggallery') ?></th>
|
705 |
<!-- Slideshow settings -->
|
706 |
<form name="player_options" method="POST" action="<?php echo $this->filepath.'#slideshow'; ?>" >
|
707 |
<?php wp_nonce_field('ngg_settings'); ?>
|
708 |
+
<input type="hidden" name="page_options" value="irAutoDim,slideFx,irWidth,irHeight,irRotatetime,irLoop,irDrag,irNavigation,irNavigationDots,irAutoplay,irAutoplayTimeout,irAutoplayHover,irNumber,irClick" />
|
709 |
<h3><?php esc_html_e('Slideshow','nggallery'); ?></h3>
|
710 |
<table class="form-table ngg-options">
|
711 |
<tr>
|
712 |
+
<th><?php esc_html_e('Fit to space','nggallery') ?></th>
|
713 |
+
<td><input type="checkbox" name="irAutoDim" value="true" <?php checked( true, $ngg->options['irAutoDim']); ?>" /><label for="irAutoDim"><?php _e( "Let the slideshow fit in the available space.", 'nggallery'); ?></label></td>
|
|
|
|
|
|
|
|
|
714 |
</tr>
|
715 |
<tr>
|
716 |
+
<th><?php esc_html_e('Default size','nggallery') ?></th>
|
717 |
+
<td>
|
718 |
+
<label for="irWidth"><?php esc_html_e('Width','nggallery') ?></label>
|
719 |
+
<input <?php if($ngg->options['irAutoDim']) echo "readonly"; ?> type="number" step="1" min="0" class="small-text" name="irWidth" value="<?php echo $ngg->options['irWidth']; ?>" />
|
720 |
+
<label for="irHeight"><?php esc_html_e('Height','nggallery') ?></label>
|
721 |
+
<input <?php if($ngg->options['irAutoDim']) echo "readonly"; ?> type="number" step="1" min="0" class="small-text" name="irHeight" value="<?php echo $ngg->options['irHeight']; ?>" />
|
722 |
+
</td>
|
723 |
</tr>
|
724 |
<tr>
|
725 |
<th><?php esc_html_e('Transition / Fade effect','nggallery') ?></th>
|
726 |
<td>
|
727 |
+
<select size="1" name="slideFx"><?php
|
728 |
+
|
729 |
+
$options = array(
|
730 |
+
__( 'Attention Seekers', 'nggallery' ) => array( "bounce", "flash", "pulse", "rubberBand", "shake", "swing", "tada", "wobble"),
|
731 |
+
__( 'Bouncing Entrances', 'nggallery' ) => array( "bounceIn", "bounceInDown", "bounceInLeft", "bounceInRight", "bounceInUp" ),
|
732 |
+
__( 'Fading Entrances', 'nggallery' ) => array( "fadeIn", "fadeInDown", "fadeInDownBig", "fadeInLeft", "fadeInLeftBig", "fadeInRight", "fadeInRightBig", "fadeInUp", "fadeInUpBig"),
|
733 |
+
__( 'Fading Exits', 'nggallery' ) => array( "fadeOut", "fadeOutDown", "fadeOutDownBig", "fadeOutLeft", "fadeOutLeftBig", "fadeOutRight", "fadeOutRightBig", "fadeOutUp", "fadeOutUpBig"),
|
734 |
+
__( 'Flippers', 'nggallery' ) => array( "flip", "flipInX", "flipInY", "flipOutX", "flipOutY" ),
|
735 |
+
__( 'Lightspeed', 'nggallery' ) => array( "lightSpeedIn", "lightSpeedOut"),
|
736 |
+
__( 'Rotating Entrances', 'nggallery' ) => array( "rotateIn", "rotateInDownLeft", "rotateInDownRight", "rotateInUpLeft", "rotateInUpRight" ),
|
737 |
+
__( 'Rotating Exits', 'nggallery' ) => array( "rotateOut", "rotateOutDownLeft", "rotateOutDownRight", "rotateOutUpLeft", "rotateOutUpRight" ),
|
738 |
+
__( 'Specials', 'nggallery' ) => array( "hinge", "rollIn", "rollOut" ),
|
739 |
+
__( 'Zoom Entrances', 'nggallery' ) => array( "zoomIn", "zoomInDown", "zoomInLeft", "zoomInRight", "zoomInUp" )
|
740 |
+
);
|
741 |
+
|
742 |
+
foreach( $options as $option => $val ) {
|
743 |
+
echo convert_to_optgroup( $val, $option );
|
744 |
+
}
|
745 |
+
?>
|
746 |
+
</select>
|
747 |
+
<p class="description"><?php _e("These effects are powered by"); ?> <strong>animate.css</strong>. <a target="_blank" href="http://daneden.github.io/animate.css/"><?php _e("Click here for examples of all effects and to learn more."); ?></a></p>
|
748 |
</td>
|
749 |
</tr>
|
750 |
+
<!-- NEW ONES; TO ADD -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
751 |
<tr>
|
752 |
+
<th><?php esc_html_e('Loop','nggallery') ?></th>
|
753 |
+
<td><input type="checkbox" name="irLoop" value="true" <?php checked( true, $ngg->options['irLoop']); ?>" /><label for="irLoop"><?php _e( "Infinity loop. Duplicate last and first items to get loop illusion.", 'nggallery'); ?></label></td>
|
754 |
</tr>
|
755 |
<tr>
|
756 |
+
<th><?php esc_html_e('Mouse/touch drag','nggallery') ?></th>
|
757 |
+
<td><input type="checkbox" name="irDrag" value="true" <?php checked( true, $ngg->options['irDrag']); ?>" /><label for="irDrag"><?php _e( "Enable dragging with the mouse (or touch).", 'nggallery'); ?></label></td>
|
758 |
</tr>
|
759 |
<tr>
|
760 |
+
<th><?php esc_html_e('Previous / Next','nggallery') ?></th>
|
761 |
+
<td><input type="checkbox" name="irNavigation" value="true" <?php checked( true, $ngg->options['irNavigation']); ?> /><label for="irNavigation"><?php _e( "Show next/previous buttons.", 'nggallery'); ?></label></td>
|
762 |
</tr>
|
763 |
<tr>
|
764 |
+
<th><?php esc_html_e('Show dots','nggallery') ?></th>
|
765 |
+
<td><input type="checkbox" name="irNavigationDots" value="true" <?php checked( true, $ngg->options['irNavigationDots']); ?> /><label for="irNavigationDots"><?php _e( "Show dots for each image.", 'nggallery'); ?></label></td>
|
|
|
766 |
</tr>
|
767 |
<tr>
|
768 |
+
<th><?php esc_html_e('Autoplay','nggallery') ?></th>
|
769 |
+
<td><input type="checkbox" name="irAutoplay" value="true" <?php checked( true, $ngg->options['irAutoplay']); ?> /><label for="irAutoplay"><?php _e( "Automatically play the images.", 'nggallery'); ?></label></td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
770 |
</tr>
|
771 |
<tr>
|
772 |
+
<th><?php esc_html_e('Duration','nggallery') ?></th>
|
773 |
+
<td><input <?php if(!$ngg->options['irAutoplay']) echo "readonly"; ?> type="number" type="number" step="1" min="0" class="small-text" name="irRotatetime" value="<?php echo $ngg->options['irRotatetime'] ?>" /> <label for="irRotatetime"><?php esc_html_e('sec.', 'nggallery') ;?></label></td>
|
|
|
774 |
</tr>
|
775 |
<tr>
|
776 |
+
<th><?php esc_html_e('Pause on hover','nggallery') ?></th>
|
777 |
+
<td><input <?php if(!$ngg->options['irAutoplay']) echo "readonly"; ?> type="checkbox" name="irAutoplayHover" value="true" <?php checked( true, $ngg->options['irAutoplayHover']); ?> /><label for="irAutoplayHover"><?php _e( "Pause when hovering over the slideshow.", 'nggallery'); ?></label></td>
|
|
|
778 |
</tr>
|
779 |
<tr>
|
780 |
+
<th><?php esc_html_e('Click for next','nggallery') ?></th>
|
781 |
+
<td><input type="checkbox" name="irClick" value="true" <?php checked( true, $ngg->options['irClick']); ?> /><label for="irClick"><?php _e( "Click to go to the next image.", 'nggallery'); ?></label></td>
|
782 |
</tr>
|
783 |
<tr>
|
784 |
+
<th><?php esc_html_e('Number of images','nggallery') ?></th>
|
785 |
+
<td>
|
786 |
+
<input type="number" type="number" step="1" min="1" class="small-text" name="irNumber" value="<?php echo $ngg->options['irNumber'] ?>" /> <label for="irNumber"><?php esc_html_e('images', 'nggallery') ;?></label>
|
787 |
+
<p class="description"><?php _e( "Number of images to display when using random or latest.", 'nggallery'); ?></p>
|
788 |
+
</td>
|
789 |
</tr>
|
790 |
+
</table>
|
791 |
<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php esc_attr_e('Save Changes') ;?>"/></div>
|
792 |
</form>
|
793 |
<?php
|
826 |
return $ttf_fonts;
|
827 |
}
|
828 |
|
829 |
+
/**
|
830 |
+
* Convert an array of options to a html dropdown group.
|
831 |
+
* 20150124: To improve: a class calling a function outside the class... should be fixed.
|
832 |
+
* @param $data array The option values (and display).
|
833 |
+
* @param $title string (optional) The label of the optgroup.
|
834 |
+
*
|
835 |
+
* @return string The output.
|
836 |
+
*/
|
837 |
+
function convert_to_optgroup( $data, $title = null) {
|
|
|
|
|
|
|
838 |
|
839 |
+
global $ngg;
|
|
|
|
|
840 |
|
841 |
+
if ( is_null($title) ) {
|
842 |
+
$out = null;
|
843 |
+
} else {
|
844 |
+
$out = '<optgroup label="' . $title . '">';
|
845 |
+
}
|
846 |
|
847 |
+
foreach( $data as $option) {
|
848 |
+
$out .= '<option value="' . $option . '" ' . selected( $option, $ngg->options['slideFx'] ) . '>' . $option . '</option>';
|
849 |
+
}
|
850 |
|
851 |
+
if ( !is_null( $title ) ) {
|
852 |
+
$out .= '</optgroup>';
|
853 |
+
}
|
854 |
|
855 |
+
return $out;
|
856 |
}
|
857 |
|
858 |
/**********************************************************/
|
admin/upgrade.php
CHANGED
@@ -1,92 +1,156 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
-
*
|
5 |
-
* @return Success message
|
6 |
*/
|
7 |
function ngg_upgrade() {
|
8 |
-
|
9 |
-
global $wpdb, $user_ID
|
10 |
|
11 |
// get the current user ID
|
12 |
get_currentuserinfo();
|
13 |
-
|
14 |
-
|
15 |
-
$wpdb->nggpictures
|
16 |
-
$wpdb->nggallery
|
17 |
-
$wpdb->nggalbum
|
18 |
-
|
19 |
-
|
20 |
-
if( $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->nggpictures'" ) ) {
|
21 |
-
|
22 |
-
echo __('Upgrading database…', 'nggallery');
|
23 |
$wpdb->show_errors();
|
24 |
|
25 |
$installed_ver = get_option( 'ngg_db_version' );
|
26 |
-
|
|
|
27 |
// v1.8.1 -> v1.8.2
|
28 |
-
if (version_compare($installed_ver, '1.8.2', '<')) {
|
29 |
-
|
30 |
-
$ngg_options = get_option('ngg_options');
|
31 |
-
|
32 |
//update them
|
33 |
-
$ngg_options['CSSfile']
|
34 |
-
|
35 |
//save them
|
36 |
-
update_option('ngg_options', $ngg_options);
|
37 |
-
}
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
// update the database version
|
40 |
update_option( "ngg_db_version", NGG_DBVERSION );
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
$nggRewrite->flush();
|
45 |
-
return;
|
46 |
}
|
47 |
-
|
48 |
-
echo __('Could not find NextCellent Gallery database tables, upgrade failed!', 'nggallery');
|
49 |
-
|
50 |
-
return;
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
-
*
|
55 |
-
*
|
56 |
-
* @return Upgrade Message
|
57 |
*/
|
58 |
function nggallery_upgrade_page() {
|
59 |
-
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
62 |
if ( isset($_GET['upgrade']) && $_GET['upgrade'] == 'now') {
|
63 |
-
|
64 |
return;
|
65 |
}
|
66 |
-
?>
|
67 |
-
<div class="wrap">
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
<?php
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
-
*
|
78 |
-
*
|
79 |
-
* @param
|
80 |
-
* @return void
|
81 |
*/
|
82 |
-
function
|
83 |
-
?>
|
84 |
-
<div class="wrap">
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
<?php
|
91 |
}
|
|
|
92 |
?>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Upgrade the NextCellent database.
|
4 |
+
* @throws Exception If the database could not be found.
|
|
|
5 |
*/
|
6 |
function ngg_upgrade() {
|
7 |
+
|
8 |
+
global $wpdb, $user_ID;
|
9 |
|
10 |
// get the current user ID
|
11 |
get_currentuserinfo();
|
12 |
+
|
13 |
+
// in multisite environment the pointer $wpdb->nggpictures need to be set again
|
14 |
+
$wpdb->nggpictures = $wpdb->prefix . 'ngg_pictures';
|
15 |
+
$wpdb->nggallery = $wpdb->prefix . 'ngg_gallery';
|
16 |
+
$wpdb->nggalbum = $wpdb->prefix . 'ngg_album';
|
17 |
+
|
18 |
+
// Be sure that the tables exist, avoid case sensitive : http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
|
19 |
+
if ( $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->nggpictures'" ) ) {
|
20 |
+
|
|
|
21 |
$wpdb->show_errors();
|
22 |
|
23 |
$installed_ver = get_option( 'ngg_db_version' );
|
24 |
+
$ngg_options = get_option( 'ngg_options' );
|
25 |
+
|
26 |
// v1.8.1 -> v1.8.2
|
27 |
+
if ( version_compare( $installed_ver, '1.8.2', '<' ) ) {
|
28 |
+
|
|
|
|
|
29 |
//update them
|
30 |
+
$ngg_options['CSSfile'] = NGGALLERY_ABSPATH . 'css/nggallery.css';
|
31 |
+
|
32 |
//save them
|
33 |
+
update_option( 'ngg_options', $ngg_options );
|
34 |
+
}
|
35 |
+
|
36 |
+
// v1.8.2 -> v1.8.3
|
37 |
+
if ( version_compare( $installed_ver, '1.8.3', '<' ) ) {
|
38 |
+
|
39 |
+
$booleans = array(
|
40 |
+
'deleteImg',
|
41 |
+
'swfUpload',
|
42 |
+
'usePermalinks',
|
43 |
+
'useMediaRSS',
|
44 |
+
'usePicLens',
|
45 |
+
'activateTags',
|
46 |
+
'thumbfix',
|
47 |
+
'imgBackup',
|
48 |
+
'imgAutoResize',
|
49 |
+
'galImages',
|
50 |
+
'galShowSlide',
|
51 |
+
'galNoPages',
|
52 |
+
'galImgBrowser',
|
53 |
+
'galHiddenImg',
|
54 |
+
'galAjaxNav'
|
55 |
+
);
|
56 |
+
|
57 |
+
foreach ( $booleans as $value ) {
|
58 |
+
//Convert strings to primitive types in database to booleans
|
59 |
+
if ( $ngg_options[ $value ] === "1" ) {
|
60 |
+
$ngg_options[ $value ] = true;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
$ngg_options['galImages'] = (int) $ngg_options['galImages'];
|
65 |
+
|
66 |
+
|
67 |
+
//Add new slideshow parameters
|
68 |
+
$ngg_options['irLoop'] = true;
|
69 |
+
$ngg_options['irDrag'] = true;
|
70 |
+
$ngg_options['irNavigation'] = false;
|
71 |
+
$ngg_options['irNavigationDots'] = false;
|
72 |
+
$ngg_options['irAutoplay'] = true;
|
73 |
+
$ngg_options['irAutoDim'] = false;
|
74 |
+
$ngg_options['irAutoplayHover'] = true;
|
75 |
+
$ngg_options['irNumber'] = 20;
|
76 |
+
$ngg_options['irClick'] = true;
|
77 |
+
$ngg_options['silentUpgrade'] = false;
|
78 |
+
|
79 |
+
//Convert color
|
80 |
+
$ngg_options['wmColor'] = '#' . $ngg_options['wmColor'];
|
81 |
+
|
82 |
+
//Delete the old ones
|
83 |
+
unset( $ngg_options['enableIR'], $ngg_options['irURL'], $ngg_options['irXHTMLvalid'], $ngg_options['irAudio'], $ngg_options['irShuffle'], $ngg_options['irLinkfromdisplay'], $ngg_options['irShownavigation'], $ngg_options['irShowicons'], $ngg_options['irWatermark'], $ngg_options['irOverstretch'], $ngg_options['irTransition'], $ngg_options['irKenburns'], $ngg_options['irBackcolor'], $ngg_options['irFrontcolor'], $ngg_options['irLightcolor'], $ngg_options['irScreencolor'] );
|
84 |
+
|
85 |
+
//Update the options.
|
86 |
+
update_option( 'ngg_options', $ngg_options );
|
87 |
+
|
88 |
+
}
|
89 |
+
|
90 |
// update the database version
|
91 |
update_option( "ngg_db_version", NGG_DBVERSION );
|
92 |
+
|
93 |
+
} else {
|
94 |
+
throw new Exception( __( 'Could not find NextCellent Gallery database tables, upgrade failed!', 'nggallery' ) );
|
|
|
|
|
95 |
}
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
+
* Show the first step to update the database.
|
|
|
|
|
100 |
*/
|
101 |
function nggallery_upgrade_page() {
|
102 |
+
|
103 |
+
$filepath = admin_url() . 'admin.php?page=' . $_GET['page']; //default upgrade path
|
104 |
+
if ( is_network_admin() ) { //unless if it is network administrator...
|
105 |
+
$filepath = network_admin_url() . 'admin.php?page=' . $_GET['page'];
|
106 |
+
}
|
107 |
+
|
108 |
if ( isset($_GET['upgrade']) && $_GET['upgrade'] == 'now') {
|
109 |
+
doing_update_output($filepath);
|
110 |
return;
|
111 |
}
|
112 |
+
?>
|
113 |
+
<div class="wrap">
|
114 |
+
<h2><?php _e( 'Upgrade NextCellent Gallery', 'nggallery' ); ?></h2>
|
115 |
+
|
116 |
+
<p><?php _e( 'You\'re upgrading from an older version. To enable the newest features, we sometimes need to do a database upgrade.', 'nggallery' ); ?></p>
|
117 |
+
|
118 |
+
<p class="description">
|
119 |
+
<span style="margin-right:5px;" class="dashicons dashicons-info"></span>
|
120 |
+
<?php _e( 'Normally you should be able to downgrade without any problems, but if you really want to play safe, you should make a backup of your database.', 'nggallery' ); ?>
|
121 |
+
</p>
|
122 |
+
<br/>
|
123 |
+
<a class="button button-primary"
|
124 |
+
href="<?php echo $filepath; ?>&upgrade=now"><?php _e( 'Start upgrade now', 'nggallery' ); ?></a>
|
125 |
+
</div>
|
126 |
<?php
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
+
* Actually update the database, with a UI.
|
131 |
+
*
|
132 |
+
* @param $filepath string The URL to the overview page.
|
|
|
133 |
*/
|
134 |
+
function doing_update_output( $filepath ) {
|
135 |
+
?>
|
136 |
+
<div class="wrap">
|
137 |
+
<h2><?php _e( 'Upgrade NextCellent Gallery', 'nggallery' ); ?></h2>
|
138 |
+
|
139 |
+
<p><?php
|
140 |
+
try {
|
141 |
+
echo __( 'Upgrading database…', 'nggallery' );
|
142 |
+
ngg_upgrade();
|
143 |
+
echo '<span class="dashicons dashicons-yes"></span><br />';
|
144 |
+
} catch ( ErrorException $e ) {
|
145 |
+
echo __( "Oh no! Something went wrong while updating the database", 'nggallery' ) . ": " . $e;
|
146 |
+
}
|
147 |
+
?></p>
|
148 |
+
|
149 |
+
<p class="finished"><?php _e( 'Upgrade complete.', 'nggallery' ); ?></p>
|
150 |
+
<br/><a class="finished button button-primary"
|
151 |
+
href="<?php echo $filepath; ?>"><?php _e( 'Continue to NextCellent', 'nggallery' ); ?></a>
|
152 |
+
</div>
|
153 |
<?php
|
154 |
}
|
155 |
+
|
156 |
?>
|
admin/wpmu.php
CHANGED
@@ -40,6 +40,32 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
40 |
update_site_option('ngg_options', $ngg_options);
|
41 |
}
|
42 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
// message windows
|
45 |
if( !empty($messagetext) ) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
|
@@ -54,39 +80,39 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
54 |
<table class="form-table">
|
55 |
<tr valign="top">
|
56 |
<th align="left"><?php _e('Gallery path','nggallery') ?></th>
|
57 |
-
<td><input type="text" size="50" name="gallerypath" value="<?php echo $ngg_options['gallerypath']; ?>"
|
58 |
-
|
59 |
-
<?php echo str_replace('%s', '<code>wp-content/blogs.dir/%BLOG_ID%/files/</code>', __('The default setting should be %s', 'nggallery'));
|
60 |
</td>
|
61 |
</tr>
|
62 |
<tr>
|
63 |
<th valign="top"><?php _e('Enable upload quota check','nggallery') ?>:</th>
|
64 |
-
<td><input name="wpmuQuotaCheck" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuQuotaCheck']); ?> />
|
65 |
-
|
66 |
</td>
|
67 |
</tr>
|
68 |
<tr>
|
69 |
<th valign="top"><?php _e('Enable zip upload option','nggallery') ?>:</th>
|
70 |
-
<td><input name="wpmuZipUpload" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuZipUpload']); ?> />
|
71 |
-
|
72 |
</td>
|
73 |
</tr>
|
74 |
<tr>
|
75 |
<th valign="top"><?php _e('Enable import function','nggallery') ?>:</th>
|
76 |
-
<td><input name="wpmuImportFolder" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuImportFolder']); ?> />
|
77 |
-
|
78 |
</td>
|
79 |
</tr>
|
80 |
<tr>
|
81 |
<th valign="top"><?php _e('Enable style selection','nggallery') ?>:</th>
|
82 |
-
<td><input name="wpmuStyle" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuStyle']); ?> />
|
83 |
-
|
84 |
</td>
|
85 |
</tr>
|
86 |
<tr>
|
87 |
<th valign="top"><?php _e('Enable roles/capabilities','nggallery') ?>:</th>
|
88 |
-
<td><input name="wpmuRoles" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuRoles']); ?> />
|
89 |
-
|
90 |
</td>
|
91 |
</tr>
|
92 |
<tr>
|
@@ -94,24 +120,25 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
94 |
<td>
|
95 |
<select name="wpmuCSSfile">
|
96 |
<?php
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
$css_name = esc_attr($css_name);
|
106 |
-
echo "\n\t<option value=\"$key\" $selected>$css_name</option>";
|
107 |
}
|
|
|
|
|
108 |
?>
|
109 |
-
</select
|
110 |
-
|
|
|
111 |
</td>
|
112 |
</tr>
|
113 |
</table>
|
114 |
-
<
|
115 |
</form>
|
116 |
</div>
|
117 |
|
40 |
update_site_option('ngg_options', $ngg_options);
|
41 |
}
|
42 |
*/
|
43 |
+
|
44 |
+
global $ngg;
|
45 |
+
|
46 |
+
//the directions containing the css files
|
47 |
+
if ( file_exists(NGG_CONTENT_DIR . "/ngg_styles") ) {
|
48 |
+
$dir = array(NGGALLERY_ABSPATH . "css", NGG_CONTENT_DIR . "/ngg_styles");
|
49 |
+
} else {
|
50 |
+
$dir = array(NGGALLERY_ABSPATH . "css");
|
51 |
+
}
|
52 |
+
|
53 |
+
//support for legacy location (in theme folder)
|
54 |
+
if ( $theme_css_exists = file_exists (get_stylesheet_directory() . "/nggallery.css") ) {
|
55 |
+
$act_cssfile = get_stylesheet_directory() . "/nggallery.css";
|
56 |
+
}
|
57 |
+
|
58 |
+
//if someone uses the filter, don't display this page.
|
59 |
+
if ( !$theme_css_exists && $set_css_file = nggGallery::get_theme_css_file() ) {
|
60 |
+
nggGallery::show_error( __('Your CSS file is set by a theme or another plugin.','nggallery') . "<br><br>" . __('This CSS file will be applied:','nggallery') . "<br>" . $set_css_file);
|
61 |
+
return;
|
62 |
+
}
|
63 |
+
|
64 |
+
//load all files
|
65 |
+
if ( !isset($act_cssfile) ) {
|
66 |
+
$csslist = NGG_Style::ngg_get_cssfiles($dir);
|
67 |
+
$act_cssfile = $ngg->options['CSSfile'];
|
68 |
+
}
|
69 |
|
70 |
// message windows
|
71 |
if( !empty($messagetext) ) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
|
80 |
<table class="form-table">
|
81 |
<tr valign="top">
|
82 |
<th align="left"><?php _e('Gallery path','nggallery') ?></th>
|
83 |
+
<td><input type="text" size="50" name="gallerypath" value="<?php echo $ngg_options['gallerypath']; ?>" />
|
84 |
+
<p class="description"><?php _e('This is the default path for all blogs. With the placeholder %BLOG_ID% you can organize the folder structure better.','nggallery') ?>
|
85 |
+
<?php echo str_replace('%s', '<code>wp-content/blogs.dir/%BLOG_ID%/files/</code>', __('The default setting should be %s', 'nggallery')); ?>.</p>
|
86 |
</td>
|
87 |
</tr>
|
88 |
<tr>
|
89 |
<th valign="top"><?php _e('Enable upload quota check','nggallery') ?>:</th>
|
90 |
+
<td><input name="wpmuQuotaCheck" id="wpmuQuotaCheck" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuQuotaCheck']); ?> />
|
91 |
+
<label for="wpmuQuotaCheck"><?php _e('Should work if the gallery is bellow the blog.dir','nggallery') ?></label>
|
92 |
</td>
|
93 |
</tr>
|
94 |
<tr>
|
95 |
<th valign="top"><?php _e('Enable zip upload option','nggallery') ?>:</th>
|
96 |
+
<td><input name="wpmuZipUpload" id="wpmuZipUpload" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuZipUpload']); ?> />
|
97 |
+
<label for="wpmuZipUpload"><?php _e('Allow users to upload zip folders.','nggallery') ?></label>
|
98 |
</td>
|
99 |
</tr>
|
100 |
<tr>
|
101 |
<th valign="top"><?php _e('Enable import function','nggallery') ?>:</th>
|
102 |
+
<td><input name="wpmuImportFolder" id="wpmuImportFolder" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuImportFolder']); ?> />
|
103 |
+
<label for="wpmuImportFolder"><?php _e('Allow users to import images folders from the server.','nggallery') ?></label>
|
104 |
</td>
|
105 |
</tr>
|
106 |
<tr>
|
107 |
<th valign="top"><?php _e('Enable style selection','nggallery') ?>:</th>
|
108 |
+
<td><input name="wpmuStyle" id="wpmuStyle" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuStyle']); ?> />
|
109 |
+
<label for="wpmuStyle"><?php _e('Allow users to choose a style for the gallery.','nggallery') ?></label>
|
110 |
</td>
|
111 |
</tr>
|
112 |
<tr>
|
113 |
<th valign="top"><?php _e('Enable roles/capabilities','nggallery') ?>:</th>
|
114 |
+
<td><input name="wpmuRoles" id="wpmuRoles" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuRoles']); ?> />
|
115 |
+
<label for="wpmuRoles"><?php _e('Allow users to change the roles for other blog authors.','nggallery') ?></label>
|
116 |
</td>
|
117 |
</tr>
|
118 |
<tr>
|
120 |
<td>
|
121 |
<select name="wpmuCSSfile">
|
122 |
<?php
|
123 |
+
foreach ($csslist as $file) {
|
124 |
+
$a_cssfile = NGG_Style::ngg_get_cssfiles_data($file);
|
125 |
+
$css_name = esc_attr( $a_cssfile['Name'] );
|
126 |
+
$css_folder = esc_attr( $a_cssfile['Folder'] );
|
127 |
+
if ($file == $act_cssfile) {
|
128 |
+
$selected = " selected='selected'";
|
129 |
+
} else {
|
130 |
+
$selected = '';
|
|
|
|
|
131 |
}
|
132 |
+
echo "\n\t<option value=\"$file\" $selected>$css_name ($css_folder)</option>";
|
133 |
+
}
|
134 |
?>
|
135 |
+
</select>
|
136 |
+
<p class="description"><?php _e('Choose the default style for the galleries.','nggallery') ?></p>
|
137 |
+
<p class="description"><?php _e('Note: between brackets is the folder in which the file is.','nggallery') ?></p>
|
138 |
</td>
|
139 |
</tr>
|
140 |
</table>
|
141 |
+
<input class="button-primary button" type="submit" name="updateoption" value="<?php _e('Update') ;?>"/>
|
142 |
</form>
|
143 |
</div>
|
144 |
|
css/Black_Minimalism.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/*
|
2 |
CSS Name: Black Minimalism Theme
|
3 |
Description: For Black Minimalism Theme
|
4 |
-
Author:
|
5 |
-
Version: 1.
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
@@ -61,12 +61,12 @@ it's only a template design
|
|
61 |
/* ----------- Album Styles Compact -------------*/
|
62 |
|
63 |
.ngg-album-compact {
|
64 |
-
float:left;
|
65 |
-
height:180px;
|
66 |
padding-right:6px !important;
|
67 |
-
margin:0px !important;
|
68 |
text-align:left;
|
69 |
-
width:120px;
|
|
|
|
|
70 |
}
|
71 |
|
72 |
.ngg-album-compactbox {
|
@@ -246,23 +246,42 @@ it's only a template design
|
|
246 |
.ngg-slideshow {
|
247 |
overflow:hidden;
|
248 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
}
|
250 |
|
251 |
-
.
|
252 |
-
|
|
|
253 |
}
|
254 |
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
}
|
261 |
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
margin:auto !important;
|
266 |
}
|
267 |
|
268 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: Black Minimalism Theme
|
3 |
Description: For Black Minimalism Theme
|
4 |
+
Author: NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
61 |
/* ----------- Album Styles Compact -------------*/
|
62 |
|
63 |
.ngg-album-compact {
|
|
|
|
|
64 |
padding-right:6px !important;
|
65 |
+
margin:0px !important;
|
66 |
text-align:left;
|
67 |
+
width:120px;
|
68 |
+
display:inline-block;
|
69 |
+
vertical-align:top;
|
70 |
}
|
71 |
|
72 |
.ngg-album-compactbox {
|
246 |
.ngg-slideshow {
|
247 |
overflow:hidden;
|
248 |
position: relative;
|
249 |
+
margin-left: auto;
|
250 |
+
margin-right: auto;
|
251 |
+
}
|
252 |
+
|
253 |
+
.rs-slideshow {
|
254 |
+
position: relative;
|
255 |
+
}
|
256 |
+
|
257 |
+
.rs-slideshow .slide-container {
|
258 |
+
height: 100%;
|
259 |
+
left: 0;
|
260 |
+
overflow: hidden;
|
261 |
+
position: absolute;
|
262 |
+
top: 0;
|
263 |
+
width: 100%;
|
264 |
+
}
|
265 |
+
|
266 |
+
.rs-slideshow .slide-container img {
|
267 |
+
position: absolute;
|
268 |
}
|
269 |
|
270 |
+
.rs-controls a,
|
271 |
+
.rs-index-list li {
|
272 |
+
float: left;
|
273 |
}
|
274 |
|
275 |
+
.rs-controls ul{
|
276 |
+
float: left;
|
277 |
+
list-style: none;
|
278 |
+
width: auto;
|
279 |
+
margin: 0;
|
280 |
}
|
281 |
|
282 |
+
/* Hide the slide data container */
|
283 |
+
.rs-slideshow .slides {
|
284 |
+
display: none;
|
|
|
285 |
}
|
286 |
|
287 |
/* ----------- Single picture -------------*/
|
css/framework-min.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/* NextCellent CSS Framework */
|
2 |
+
.ngg-gallery-thumbnail{float:left}.ngg-gallery-thumbnail span{display:block}.ngg-clear{clear:both;float:none}.ngg-navigation{clear:both}.owl-carousel .animated{-webkit-animation-duration:1000ms;animation-duration:1000ms;-webkit-animation-fill-mode:both;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{-webkit-transition:height 500ms ease-in-out;-moz-transition:height 500ms ease-in-out;-ms-transition:height 500ms ease-in-out;-o-transition:height 500ms ease-in-out;transition:height 500ms ease-in-out}.owl-carousel{display:none;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0px,0,0)}.owl-carousel .owl-controls .owl-dot,.owl-carousel .owl-controls .owl-nav .owl-next,.owl-carousel .owl-controls .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loaded{display:block}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel .owl-refresh .owl-item{display:none}.owl-carousel .owl-item{position:relative;min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-item img{display:block;width:100%;-webkit-transform-style:preserve-3d}.owl-carousel.owl-text-select-on .owl-item{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.owl-carousel .owl-grab{cursor:move;cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.no-js .owl-carousel{display:block}.owl-carousel .owl-item .owl-lazy{opacity:0;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-item img{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;-webkit-transition:scale 100ms ease;-moz-transition:scale 100ms ease;-ms-transition:scale 100ms ease;-o-transition:scale 100ms ease;transition:scale 100ms ease}.owl-carousel .owl-video-play-icon:hover{-webkit-transition:scale(1.3,1.3);-moz-transition:scale(1.3,1.3);-ms-transition:scale(1.3,1.3);-o-transition:scale(1.3,1.3);transition:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;-webkit-background-size:contain;-moz-background-size:contain;-o-background-size:contain;background-size:contain;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-video-frame{position:relative;z-index:1}.ngg-singlepic{display:block}.ngg-left{float:left}.ngg-right{float:right}.ngg-center{margin-left:auto!important;margin-right:auto!important}.ngg-related-gallery{overflow:hidden}.ngg-related-gallery img{float:left}.brick img{transition:1s;opacity:0;width:100%!important;height:auto!important}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}
|
css/framework.css
ADDED
@@ -0,0 +1,3437 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
This is some basic css needed for some display types to work.
|
3 |
+
This file is loaded first, so you can easily override it.
|
4 |
+
|
5 |
+
*/
|
6 |
+
|
7 |
+
/* ----------- Gallery style -------------*/
|
8 |
+
|
9 |
+
.ngg-gallery-thumbnail {
|
10 |
+
float: left;
|
11 |
+
}
|
12 |
+
|
13 |
+
.ngg-gallery-thumbnail span {
|
14 |
+
display:block;
|
15 |
+
}
|
16 |
+
|
17 |
+
.ngg-clear {
|
18 |
+
clear: both;
|
19 |
+
float: none;
|
20 |
+
}
|
21 |
+
|
22 |
+
/* ----------- Gallery navigation -------------*/
|
23 |
+
|
24 |
+
.ngg-navigation {
|
25 |
+
clear:both;
|
26 |
+
}
|
27 |
+
|
28 |
+
/* ----------- Owl Slideshow -------------*/
|
29 |
+
.owl-carousel .animated {
|
30 |
+
-webkit-animation-duration: 1000ms;
|
31 |
+
animation-duration: 1000ms;
|
32 |
+
-webkit-animation-fill-mode: both;
|
33 |
+
animation-fill-mode: both;
|
34 |
+
}
|
35 |
+
.owl-carousel .owl-animated-in {
|
36 |
+
z-index: 0;
|
37 |
+
}
|
38 |
+
.owl-carousel .owl-animated-out {
|
39 |
+
z-index: 1;
|
40 |
+
}
|
41 |
+
.owl-carousel .fadeOut {
|
42 |
+
-webkit-animation-name: fadeOut;
|
43 |
+
animation-name: fadeOut;
|
44 |
+
}
|
45 |
+
|
46 |
+
@-webkit-keyframes fadeOut {
|
47 |
+
0% {
|
48 |
+
opacity: 1;
|
49 |
+
}
|
50 |
+
|
51 |
+
100% {
|
52 |
+
opacity: 0;
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
56 |
+
@keyframes fadeOut {
|
57 |
+
0% {
|
58 |
+
opacity: 1;
|
59 |
+
}
|
60 |
+
|
61 |
+
100% {
|
62 |
+
opacity: 0;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/*
|
67 |
+
* Owl Carousel - Auto Height Plugin
|
68 |
+
*/
|
69 |
+
.owl-height {
|
70 |
+
-webkit-transition: height 500ms ease-in-out;
|
71 |
+
-moz-transition: height 500ms ease-in-out;
|
72 |
+
-ms-transition: height 500ms ease-in-out;
|
73 |
+
-o-transition: height 500ms ease-in-out;
|
74 |
+
transition: height 500ms ease-in-out;
|
75 |
+
}
|
76 |
+
|
77 |
+
/*
|
78 |
+
* Core Owl Carousel CSS File
|
79 |
+
*/
|
80 |
+
.owl-carousel {
|
81 |
+
display: none;
|
82 |
+
width: 100%;
|
83 |
+
-webkit-tap-highlight-color: transparent;
|
84 |
+
/* position relative and z-index fix webkit rendering fonts issue */
|
85 |
+
position: relative;
|
86 |
+
z-index: 1;
|
87 |
+
}
|
88 |
+
.owl-carousel .owl-stage {
|
89 |
+
position: relative;
|
90 |
+
-ms-touch-action: pan-Y;
|
91 |
+
}
|
92 |
+
.owl-carousel .owl-stage:after {
|
93 |
+
content: ".";
|
94 |
+
display: block;
|
95 |
+
clear: both;
|
96 |
+
visibility: hidden;
|
97 |
+
line-height: 0;
|
98 |
+
height: 0;
|
99 |
+
}
|
100 |
+
.owl-carousel .owl-stage-outer {
|
101 |
+
position: relative;
|
102 |
+
overflow: hidden;
|
103 |
+
/* fix for flashing background */
|
104 |
+
-webkit-transform: translate3d(0px, 0px, 0px);
|
105 |
+
}
|
106 |
+
.owl-carousel .owl-controls .owl-nav .owl-prev,
|
107 |
+
.owl-carousel .owl-controls .owl-nav .owl-next,
|
108 |
+
.owl-carousel .owl-controls .owl-dot {
|
109 |
+
cursor: pointer;
|
110 |
+
cursor: hand;
|
111 |
+
-webkit-user-select: none;
|
112 |
+
-khtml-user-select: none;
|
113 |
+
-moz-user-select: none;
|
114 |
+
-ms-user-select: none;
|
115 |
+
user-select: none;
|
116 |
+
}
|
117 |
+
.owl-carousel.owl-loaded {
|
118 |
+
display: block;
|
119 |
+
}
|
120 |
+
.owl-carousel.owl-loading {
|
121 |
+
opacity: 0;
|
122 |
+
display: block;
|
123 |
+
}
|
124 |
+
|
125 |
+
.owl-carousel.owl-hidden {
|
126 |
+
opacity: 0;
|
127 |
+
}
|
128 |
+
.owl-carousel .owl-refresh .owl-item {
|
129 |
+
display: none;
|
130 |
+
}
|
131 |
+
.owl-carousel .owl-item {
|
132 |
+
position: relative;
|
133 |
+
min-height: 1px;
|
134 |
+
float: left;
|
135 |
+
-webkit-backface-visibility: hidden;
|
136 |
+
-webkit-tap-highlight-color: transparent;
|
137 |
+
-webkit-touch-callout: none;
|
138 |
+
-webkit-user-select: none;
|
139 |
+
-moz-user-select: none;
|
140 |
+
-ms-user-select: none;
|
141 |
+
user-select: none;
|
142 |
+
}
|
143 |
+
.owl-carousel .owl-item img {
|
144 |
+
display: block;
|
145 |
+
width: 100%;
|
146 |
+
-webkit-transform-style: preserve-3d;
|
147 |
+
}
|
148 |
+
.owl-carousel.owl-text-select-on .owl-item {
|
149 |
+
-webkit-user-select: auto;
|
150 |
+
-moz-user-select: auto;
|
151 |
+
-ms-user-select: auto;
|
152 |
+
user-select: auto;
|
153 |
+
}
|
154 |
+
.owl-carousel .owl-grab {
|
155 |
+
cursor: move;
|
156 |
+
cursor: -webkit-grab;
|
157 |
+
cursor: -o-grab;
|
158 |
+
cursor: -ms-grab;
|
159 |
+
cursor: grab;
|
160 |
+
}
|
161 |
+
.owl-carousel.owl-rtl {
|
162 |
+
direction: rtl;
|
163 |
+
}
|
164 |
+
.owl-carousel.owl-rtl .owl-item {
|
165 |
+
float: right;
|
166 |
+
}
|
167 |
+
|
168 |
+
/* No Js */
|
169 |
+
.no-js .owl-carousel {
|
170 |
+
display: block;
|
171 |
+
}
|
172 |
+
|
173 |
+
/*
|
174 |
+
* Owl Carousel - Lazy Load Plugin
|
175 |
+
*/
|
176 |
+
.owl-carousel .owl-item .owl-lazy {
|
177 |
+
opacity: 0;
|
178 |
+
-webkit-transition: opacity 400ms ease;
|
179 |
+
-moz-transition: opacity 400ms ease;
|
180 |
+
-ms-transition: opacity 400ms ease;
|
181 |
+
-o-transition: opacity 400ms ease;
|
182 |
+
transition: opacity 400ms ease;
|
183 |
+
}
|
184 |
+
.owl-carousel .owl-item img {
|
185 |
+
transform-style: preserve-3d;
|
186 |
+
}
|
187 |
+
|
188 |
+
/*
|
189 |
+
* Owl Carousel - Video Plugin
|
190 |
+
*/
|
191 |
+
.owl-carousel .owl-video-wrapper {
|
192 |
+
position: relative;
|
193 |
+
height: 100%;
|
194 |
+
background: #000;
|
195 |
+
}
|
196 |
+
.owl-carousel .owl-video-play-icon {
|
197 |
+
position: absolute;
|
198 |
+
height: 80px;
|
199 |
+
width: 80px;
|
200 |
+
left: 50%;
|
201 |
+
top: 50%;
|
202 |
+
margin-left: -40px;
|
203 |
+
margin-top: -40px;
|
204 |
+
background: url("owl.video.play.png") no-repeat;
|
205 |
+
cursor: pointer;
|
206 |
+
z-index: 1;
|
207 |
+
-webkit-backface-visibility: hidden;
|
208 |
+
-webkit-transition: scale 100ms ease;
|
209 |
+
-moz-transition: scale 100ms ease;
|
210 |
+
-ms-transition: scale 100ms ease;
|
211 |
+
-o-transition: scale 100ms ease;
|
212 |
+
transition: scale 100ms ease;
|
213 |
+
}
|
214 |
+
.owl-carousel .owl-video-play-icon:hover {
|
215 |
+
-webkit-transition: scale(1.3, 1.3);
|
216 |
+
-moz-transition: scale(1.3, 1.3);
|
217 |
+
-ms-transition: scale(1.3, 1.3);
|
218 |
+
-o-transition: scale(1.3, 1.3);
|
219 |
+
transition: scale(1.3, 1.3);
|
220 |
+
}
|
221 |
+
.owl-carousel .owl-video-playing .owl-video-tn,
|
222 |
+
.owl-carousel .owl-video-playing .owl-video-play-icon {
|
223 |
+
display: none;
|
224 |
+
}
|
225 |
+
.owl-carousel .owl-video-tn {
|
226 |
+
opacity: 0;
|
227 |
+
height: 100%;
|
228 |
+
background-position: center center;
|
229 |
+
background-repeat: no-repeat;
|
230 |
+
-webkit-background-size: contain;
|
231 |
+
-moz-background-size: contain;
|
232 |
+
-o-background-size: contain;
|
233 |
+
background-size: contain;
|
234 |
+
-webkit-transition: opacity 400ms ease;
|
235 |
+
-moz-transition: opacity 400ms ease;
|
236 |
+
-ms-transition: opacity 400ms ease;
|
237 |
+
-o-transition: opacity 400ms ease;
|
238 |
+
transition: opacity 400ms ease;
|
239 |
+
}
|
240 |
+
.owl-carousel .owl-video-frame {
|
241 |
+
position: relative;
|
242 |
+
z-index: 1;
|
243 |
+
}
|
244 |
+
|
245 |
+
/* ----------- Single picture -------------*/
|
246 |
+
.ngg-singlepic {
|
247 |
+
display:block;
|
248 |
+
}
|
249 |
+
|
250 |
+
.ngg-left {
|
251 |
+
float: left;
|
252 |
+
}
|
253 |
+
|
254 |
+
.ngg-right {
|
255 |
+
float: right;
|
256 |
+
}
|
257 |
+
|
258 |
+
.ngg-center {
|
259 |
+
margin-left: auto !important;
|
260 |
+
margin-right: auto !important;
|
261 |
+
}
|
262 |
+
|
263 |
+
/* ----------- Related images -------------*/
|
264 |
+
.ngg-related-gallery {
|
265 |
+
overflow:hidden;
|
266 |
+
}
|
267 |
+
.ngg-related-gallery img {
|
268 |
+
float: left;
|
269 |
+
}
|
270 |
+
|
271 |
+
/* ----------- Masonry style -------------*/
|
272 |
+
|
273 |
+
/* The transitions when the image is loaded. These are CSS3 transitions. */
|
274 |
+
.brick img {
|
275 |
+
transition: 1s;
|
276 |
+
opacity: 0;
|
277 |
+
width: 100% !important;
|
278 |
+
height: auto !important;
|
279 |
+
}
|
280 |
+
|
281 |
+
/*!
|
282 |
+
Animate.css - http://daneden.me/animate
|
283 |
+
Licensed under the MIT license - http://opensource.org/licenses/MIT
|
284 |
+
|
285 |
+
Copyright (c) 2014 Daniel Eden
|
286 |
+
*/
|
287 |
+
|
288 |
+
.animated {
|
289 |
+
-webkit-animation-duration: 1s;
|
290 |
+
animation-duration: 1s;
|
291 |
+
-webkit-animation-fill-mode: both;
|
292 |
+
animation-fill-mode: both;
|
293 |
+
}
|
294 |
+
|
295 |
+
.animated.infinite {
|
296 |
+
-webkit-animation-iteration-count: infinite;
|
297 |
+
animation-iteration-count: infinite;
|
298 |
+
}
|
299 |
+
|
300 |
+
.animated.hinge {
|
301 |
+
-webkit-animation-duration: 2s;
|
302 |
+
animation-duration: 2s;
|
303 |
+
}
|
304 |
+
|
305 |
+
@-webkit-keyframes bounce {
|
306 |
+
0%, 20%, 53%, 80%, 100% {
|
307 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
308 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
309 |
+
-webkit-transform: translate3d(0,0,0);
|
310 |
+
transform: translate3d(0,0,0);
|
311 |
+
}
|
312 |
+
|
313 |
+
40%, 43% {
|
314 |
+
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
315 |
+
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
316 |
+
-webkit-transform: translate3d(0, -30px, 0);
|
317 |
+
transform: translate3d(0, -30px, 0);
|
318 |
+
}
|
319 |
+
|
320 |
+
70% {
|
321 |
+
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
322 |
+
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
323 |
+
-webkit-transform: translate3d(0, -15px, 0);
|
324 |
+
transform: translate3d(0, -15px, 0);
|
325 |
+
}
|
326 |
+
|
327 |
+
90% {
|
328 |
+
-webkit-transform: translate3d(0,-4px,0);
|
329 |
+
transform: translate3d(0,-4px,0);
|
330 |
+
}
|
331 |
+
}
|
332 |
+
|
333 |
+
@keyframes bounce {
|
334 |
+
0%, 20%, 53%, 80%, 100% {
|
335 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
336 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
337 |
+
-webkit-transform: translate3d(0,0,0);
|
338 |
+
transform: translate3d(0,0,0);
|
339 |
+
}
|
340 |
+
|
341 |
+
40%, 43% {
|
342 |
+
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
343 |
+
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
344 |
+
-webkit-transform: translate3d(0, -30px, 0);
|
345 |
+
transform: translate3d(0, -30px, 0);
|
346 |
+
}
|
347 |
+
|
348 |
+
70% {
|
349 |
+
-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
350 |
+
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
351 |
+
-webkit-transform: translate3d(0, -15px, 0);
|
352 |
+
transform: translate3d(0, -15px, 0);
|
353 |
+
}
|
354 |
+
|
355 |
+
90% {
|
356 |
+
-webkit-transform: translate3d(0,-4px,0);
|
357 |
+
transform: translate3d(0,-4px,0);
|
358 |
+
}
|
359 |
+
}
|
360 |
+
|
361 |
+
.bounce {
|
362 |
+
-webkit-animation-name: bounce;
|
363 |
+
animation-name: bounce;
|
364 |
+
-webkit-transform-origin: center bottom;
|
365 |
+
-ms-transform-origin: center bottom;
|
366 |
+
transform-origin: center bottom;
|
367 |
+
}
|
368 |
+
|
369 |
+
@-webkit-keyframes flash {
|
370 |
+
0%, 50%, 100% {
|
371 |
+
opacity: 1;
|
372 |
+
}
|
373 |
+
|
374 |
+
25%, 75% {
|
375 |
+
opacity: 0;
|
376 |
+
}
|
377 |
+
}
|
378 |
+
|
379 |
+
@keyframes flash {
|
380 |
+
0%, 50%, 100% {
|
381 |
+
opacity: 1;
|
382 |
+
}
|
383 |
+
|
384 |
+
25%, 75% {
|
385 |
+
opacity: 0;
|
386 |
+
}
|
387 |
+
}
|
388 |
+
|
389 |
+
.flash {
|
390 |
+
-webkit-animation-name: flash;
|
391 |
+
animation-name: flash;
|
392 |
+
}
|
393 |
+
|
394 |
+
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
395 |
+
|
396 |
+
@-webkit-keyframes pulse {
|
397 |
+
0% {
|
398 |
+
-webkit-transform: scale3d(1, 1, 1);
|
399 |
+
transform: scale3d(1, 1, 1);
|
400 |
+
}
|
401 |
+
|
402 |
+
50% {
|
403 |
+
-webkit-transform: scale3d(1.05, 1.05, 1.05);
|
404 |
+
transform: scale3d(1.05, 1.05, 1.05);
|
405 |
+
}
|
406 |
+
|
407 |
+
100% {
|
408 |
+
-webkit-transform: scale3d(1, 1, 1);
|
409 |
+
transform: scale3d(1, 1, 1);
|
410 |
+
}
|
411 |
+
}
|
412 |
+
|
413 |
+
@keyframes pulse {
|
414 |
+
0% {
|
415 |
+
-webkit-transform: scale3d(1, 1, 1);
|
416 |
+
transform: scale3d(1, 1, 1);
|
417 |
+
}
|
418 |
+
|
419 |
+
50% {
|
420 |
+
-webkit-transform: scale3d(1.05, 1.05, 1.05);
|
421 |
+
transform: scale3d(1.05, 1.05, 1.05);
|
422 |
+
}
|
423 |
+
|
424 |
+
100% {
|
425 |
+
-webkit-transform: scale3d(1, 1, 1);
|
426 |
+
transform: scale3d(1, 1, 1);
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
430 |
+
.pulse {
|
431 |
+
-webkit-animation-name: pulse;
|
432 |
+
animation-name: pulse;
|
433 |
+
}
|
434 |
+
|
435 |
+
@-webkit-keyframes rubberBand {
|
436 |
+
0% {
|
437 |
+
-webkit-transform: scale3d(1, 1, 1);
|
438 |
+
transform: scale3d(1, 1, 1);
|
439 |
+
}
|
440 |
+
|
441 |
+
30% {
|
442 |
+
-webkit-transform: scale3d(1.25, 0.75, 1);
|
443 |
+
transform: scale3d(1.25, 0.75, 1);
|
444 |
+
}
|
445 |
+
|
446 |
+
40% {
|
447 |
+
-webkit-transform: scale3d(0.75, 1.25, 1);
|
448 |
+
transform: scale3d(0.75, 1.25, 1);
|
449 |
+
}
|
450 |
+
|
451 |
+
50% {
|
452 |
+
-webkit-transform: scale3d(1.15, 0.85, 1);
|
453 |
+
transform: scale3d(1.15, 0.85, 1);
|
454 |
+
}
|
455 |
+
|
456 |
+
65% {
|
457 |
+
-webkit-transform: scale3d(.95, 1.05, 1);
|
458 |
+
transform: scale3d(.95, 1.05, 1);
|
459 |
+
}
|
460 |
+
|
461 |
+
75% {
|
462 |
+
-webkit-transform: scale3d(1.05, .95, 1);
|
463 |
+
transform: scale3d(1.05, .95, 1);
|
464 |
+
}
|
465 |
+
|
466 |
+
100% {
|
467 |
+
-webkit-transform: scale3d(1, 1, 1);
|
468 |
+
transform: scale3d(1, 1, 1);
|
469 |
+
}
|
470 |
+
}
|
471 |
+
|
472 |
+
@keyframes rubberBand {
|
473 |
+
0% {
|
474 |
+
-webkit-transform: scale3d(1, 1, 1);
|
475 |
+
transform: scale3d(1, 1, 1);
|
476 |
+
}
|
477 |
+
|
478 |
+
30% {
|
479 |
+
-webkit-transform: scale3d(1.25, 0.75, 1);
|
480 |
+
transform: scale3d(1.25, 0.75, 1);
|
481 |
+
}
|
482 |
+
|
483 |
+
40% {
|
484 |
+
-webkit-transform: scale3d(0.75, 1.25, 1);
|
485 |
+
transform: scale3d(0.75, 1.25, 1);
|
486 |
+
}
|
487 |
+
|
488 |
+
50% {
|
489 |
+
-webkit-transform: scale3d(1.15, 0.85, 1);
|
490 |
+
transform: scale3d(1.15, 0.85, 1);
|
491 |
+
}
|
492 |
+
|
493 |
+
65% {
|
494 |
+
-webkit-transform: scale3d(.95, 1.05, 1);
|
495 |
+
transform: scale3d(.95, 1.05, 1);
|
496 |
+
}
|
497 |
+
|
498 |
+
75% {
|
499 |
+
-webkit-transform: scale3d(1.05, .95, 1);
|
500 |
+
transform: scale3d(1.05, .95, 1);
|
501 |
+
}
|
502 |
+
|
503 |
+
100% {
|
504 |
+
-webkit-transform: scale3d(1, 1, 1);
|
505 |
+
transform: scale3d(1, 1, 1);
|
506 |
+
}
|
507 |
+
}
|
508 |
+
|
509 |
+
.rubberBand {
|
510 |
+
-webkit-animation-name: rubberBand;
|
511 |
+
animation-name: rubberBand;
|
512 |
+
}
|
513 |
+
|
514 |
+
@-webkit-keyframes shake {
|
515 |
+
0%, 100% {
|
516 |
+
-webkit-transform: translate3d(0, 0, 0);
|
517 |
+
transform: translate3d(0, 0, 0);
|
518 |
+
}
|
519 |
+
|
520 |
+
10%, 30%, 50%, 70%, 90% {
|
521 |
+
-webkit-transform: translate3d(-10px, 0, 0);
|
522 |
+
transform: translate3d(-10px, 0, 0);
|
523 |
+
}
|
524 |
+
|
525 |
+
20%, 40%, 60%, 80% {
|
526 |
+
-webkit-transform: translate3d(10px, 0, 0);
|
527 |
+
transform: translate3d(10px, 0, 0);
|
528 |
+
}
|
529 |
+
}
|
530 |
+
|
531 |
+
@keyframes shake {
|
532 |
+
0%, 100% {
|
533 |
+
-webkit-transform: translate3d(0, 0, 0);
|
534 |
+
transform: translate3d(0, 0, 0);
|
535 |
+
}
|
536 |
+
|
537 |
+
10%, 30%, 50%, 70%, 90% {
|
538 |
+
-webkit-transform: translate3d(-10px, 0, 0);
|
539 |
+
transform: translate3d(-10px, 0, 0);
|
540 |
+
}
|
541 |
+
|
542 |
+
20%, 40%, 60%, 80% {
|
543 |
+
-webkit-transform: translate3d(10px, 0, 0);
|
544 |
+
transform: translate3d(10px, 0, 0);
|
545 |
+
}
|
546 |
+
}
|
547 |
+
|
548 |
+
.shake {
|
549 |
+
-webkit-animation-name: shake;
|
550 |
+
animation-name: shake;
|
551 |
+
}
|
552 |
+
|
553 |
+
@-webkit-keyframes swing {
|
554 |
+
20% {
|
555 |
+
-webkit-transform: rotate3d(0, 0, 1, 15deg);
|
556 |
+
transform: rotate3d(0, 0, 1, 15deg);
|
557 |
+
}
|
558 |
+
|
559 |
+
40% {
|
560 |
+
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
561 |
+
transform: rotate3d(0, 0, 1, -10deg);
|
562 |
+
}
|
563 |
+
|
564 |
+
60% {
|
565 |
+
-webkit-transform: rotate3d(0, 0, 1, 5deg);
|
566 |
+
transform: rotate3d(0, 0, 1, 5deg);
|
567 |
+
}
|
568 |
+
|
569 |
+
80% {
|
570 |
+
-webkit-transform: rotate3d(0, 0, 1, -5deg);
|
571 |
+
transform: rotate3d(0, 0, 1, -5deg);
|
572 |
+
}
|
573 |
+
|
574 |
+
100% {
|
575 |
+
-webkit-transform: rotate3d(0, 0, 1, 0deg);
|
576 |
+
transform: rotate3d(0, 0, 1, 0deg);
|
577 |
+
}
|
578 |
+
}
|
579 |
+
|
580 |
+
@keyframes swing {
|
581 |
+
20% {
|
582 |
+
-webkit-transform: rotate3d(0, 0, 1, 15deg);
|
583 |
+
transform: rotate3d(0, 0, 1, 15deg);
|
584 |
+
}
|
585 |
+
|
586 |
+
40% {
|
587 |
+
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
588 |
+
transform: rotate3d(0, 0, 1, -10deg);
|
589 |
+
}
|
590 |
+
|
591 |
+
60% {
|
592 |
+
-webkit-transform: rotate3d(0, 0, 1, 5deg);
|
593 |
+
transform: rotate3d(0, 0, 1, 5deg);
|
594 |
+
}
|
595 |
+
|
596 |
+
80% {
|
597 |
+
-webkit-transform: rotate3d(0, 0, 1, -5deg);
|
598 |
+
transform: rotate3d(0, 0, 1, -5deg);
|
599 |
+
}
|
600 |
+
|
601 |
+
100% {
|
602 |
+
-webkit-transform: rotate3d(0, 0, 1, 0deg);
|
603 |
+
transform: rotate3d(0, 0, 1, 0deg);
|
604 |
+
}
|
605 |
+
}
|
606 |
+
|
607 |
+
.swing {
|
608 |
+
-webkit-transform-origin: top center;
|
609 |
+
-ms-transform-origin: top center;
|
610 |
+
transform-origin: top center;
|
611 |
+
-webkit-animation-name: swing;
|
612 |
+
animation-name: swing;
|
613 |
+
}
|
614 |
+
|
615 |
+
@-webkit-keyframes tada {
|
616 |
+
0% {
|
617 |
+
-webkit-transform: scale3d(1, 1, 1);
|
618 |
+
transform: scale3d(1, 1, 1);
|
619 |
+
}
|
620 |
+
|
621 |
+
10%, 20% {
|
622 |
+
-webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
|
623 |
+
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
|
624 |
+
}
|
625 |
+
|
626 |
+
30%, 50%, 70%, 90% {
|
627 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
628 |
+
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
629 |
+
}
|
630 |
+
|
631 |
+
40%, 60%, 80% {
|
632 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
633 |
+
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
634 |
+
}
|
635 |
+
|
636 |
+
100% {
|
637 |
+
-webkit-transform: scale3d(1, 1, 1);
|
638 |
+
transform: scale3d(1, 1, 1);
|
639 |
+
}
|
640 |
+
}
|
641 |
+
|
642 |
+
@keyframes tada {
|
643 |
+
0% {
|
644 |
+
-webkit-transform: scale3d(1, 1, 1);
|
645 |
+
transform: scale3d(1, 1, 1);
|
646 |
+
}
|
647 |
+
|
648 |
+
10%, 20% {
|
649 |
+
-webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
|
650 |
+
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
|
651 |
+
}
|
652 |
+
|
653 |
+
30%, 50%, 70%, 90% {
|
654 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
655 |
+
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
656 |
+
}
|
657 |
+
|
658 |
+
40%, 60%, 80% {
|
659 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
660 |
+
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
661 |
+
}
|
662 |
+
|
663 |
+
100% {
|
664 |
+
-webkit-transform: scale3d(1, 1, 1);
|
665 |
+
transform: scale3d(1, 1, 1);
|
666 |
+
}
|
667 |
+
}
|
668 |
+
|
669 |
+
.tada {
|
670 |
+
-webkit-animation-name: tada;
|
671 |
+
animation-name: tada;
|
672 |
+
}
|
673 |
+
|
674 |
+
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
675 |
+
|
676 |
+
@-webkit-keyframes wobble {
|
677 |
+
0% {
|
678 |
+
-webkit-transform: none;
|
679 |
+
transform: none;
|
680 |
+
}
|
681 |
+
|
682 |
+
15% {
|
683 |
+
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
684 |
+
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
685 |
+
}
|
686 |
+
|
687 |
+
30% {
|
688 |
+
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
689 |
+
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
690 |
+
}
|
691 |
+
|
692 |
+
45% {
|
693 |
+
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
694 |
+
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
695 |
+
}
|
696 |
+
|
697 |
+
60% {
|
698 |
+
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
699 |
+
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
700 |
+
}
|
701 |
+
|
702 |
+
75% {
|
703 |
+
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
704 |
+
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
705 |
+
}
|
706 |
+
|
707 |
+
100% {
|
708 |
+
-webkit-transform: none;
|
709 |
+
transform: none;
|
710 |
+
}
|
711 |
+
}
|
712 |
+
|
713 |
+
@keyframes wobble {
|
714 |
+
0% {
|
715 |
+
-webkit-transform: none;
|
716 |
+
transform: none;
|
717 |
+
}
|
718 |
+
|
719 |
+
15% {
|
720 |
+
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
721 |
+
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
722 |
+
}
|
723 |
+
|
724 |
+
30% {
|
725 |
+
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
726 |
+
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
727 |
+
}
|
728 |
+
|
729 |
+
45% {
|
730 |
+
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
731 |
+
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
732 |
+
}
|
733 |
+
|
734 |
+
60% {
|
735 |
+
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
736 |
+
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
737 |
+
}
|
738 |
+
|
739 |
+
75% {
|
740 |
+
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
741 |
+
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
742 |
+
}
|
743 |
+
|
744 |
+
100% {
|
745 |
+
-webkit-transform: none;
|
746 |
+
transform: none;
|
747 |
+
}
|
748 |
+
}
|
749 |
+
|
750 |
+
.wobble {
|
751 |
+
-webkit-animation-name: wobble;
|
752 |
+
animation-name: wobble;
|
753 |
+
}
|
754 |
+
|
755 |
+
@-webkit-keyframes bounceIn {
|
756 |
+
0%, 20%, 40%, 60%, 80%, 100% {
|
757 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
758 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
759 |
+
}
|
760 |
+
|
761 |
+
0% {
|
762 |
+
opacity: 0;
|
763 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
764 |
+
transform: scale3d(.3, .3, .3);
|
765 |
+
}
|
766 |
+
|
767 |
+
20% {
|
768 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
769 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
770 |
+
}
|
771 |
+
|
772 |
+
40% {
|
773 |
+
-webkit-transform: scale3d(.9, .9, .9);
|
774 |
+
transform: scale3d(.9, .9, .9);
|
775 |
+
}
|
776 |
+
|
777 |
+
60% {
|
778 |
+
opacity: 1;
|
779 |
+
-webkit-transform: scale3d(1.03, 1.03, 1.03);
|
780 |
+
transform: scale3d(1.03, 1.03, 1.03);
|
781 |
+
}
|
782 |
+
|
783 |
+
80% {
|
784 |
+
-webkit-transform: scale3d(.97, .97, .97);
|
785 |
+
transform: scale3d(.97, .97, .97);
|
786 |
+
}
|
787 |
+
|
788 |
+
100% {
|
789 |
+
opacity: 1;
|
790 |
+
-webkit-transform: scale3d(1, 1, 1);
|
791 |
+
transform: scale3d(1, 1, 1);
|
792 |
+
}
|
793 |
+
}
|
794 |
+
|
795 |
+
@keyframes bounceIn {
|
796 |
+
0%, 20%, 40%, 60%, 80%, 100% {
|
797 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
798 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
799 |
+
}
|
800 |
+
|
801 |
+
0% {
|
802 |
+
opacity: 0;
|
803 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
804 |
+
transform: scale3d(.3, .3, .3);
|
805 |
+
}
|
806 |
+
|
807 |
+
20% {
|
808 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
809 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
810 |
+
}
|
811 |
+
|
812 |
+
40% {
|
813 |
+
-webkit-transform: scale3d(.9, .9, .9);
|
814 |
+
transform: scale3d(.9, .9, .9);
|
815 |
+
}
|
816 |
+
|
817 |
+
60% {
|
818 |
+
opacity: 1;
|
819 |
+
-webkit-transform: scale3d(1.03, 1.03, 1.03);
|
820 |
+
transform: scale3d(1.03, 1.03, 1.03);
|
821 |
+
}
|
822 |
+
|
823 |
+
80% {
|
824 |
+
-webkit-transform: scale3d(.97, .97, .97);
|
825 |
+
transform: scale3d(.97, .97, .97);
|
826 |
+
}
|
827 |
+
|
828 |
+
100% {
|
829 |
+
opacity: 1;
|
830 |
+
-webkit-transform: scale3d(1, 1, 1);
|
831 |
+
transform: scale3d(1, 1, 1);
|
832 |
+
}
|
833 |
+
}
|
834 |
+
|
835 |
+
.bounceIn {
|
836 |
+
-webkit-animation-name: bounceIn;
|
837 |
+
animation-name: bounceIn;
|
838 |
+
-webkit-animation-duration: .75s;
|
839 |
+
animation-duration: .75s;
|
840 |
+
}
|
841 |
+
|
842 |
+
@-webkit-keyframes bounceInDown {
|
843 |
+
0%, 60%, 75%, 90%, 100% {
|
844 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
845 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
846 |
+
}
|
847 |
+
|
848 |
+
0% {
|
849 |
+
opacity: 0;
|
850 |
+
-webkit-transform: translate3d(0, -3000px, 0);
|
851 |
+
transform: translate3d(0, -3000px, 0);
|
852 |
+
}
|
853 |
+
|
854 |
+
60% {
|
855 |
+
opacity: 1;
|
856 |
+
-webkit-transform: translate3d(0, 25px, 0);
|
857 |
+
transform: translate3d(0, 25px, 0);
|
858 |
+
}
|
859 |
+
|
860 |
+
75% {
|
861 |
+
-webkit-transform: translate3d(0, -10px, 0);
|
862 |
+
transform: translate3d(0, -10px, 0);
|
863 |
+
}
|
864 |
+
|
865 |
+
90% {
|
866 |
+
-webkit-transform: translate3d(0, 5px, 0);
|
867 |
+
transform: translate3d(0, 5px, 0);
|
868 |
+
}
|
869 |
+
|
870 |
+
100% {
|
871 |
+
-webkit-transform: none;
|
872 |
+
transform: none;
|
873 |
+
}
|
874 |
+
}
|
875 |
+
|
876 |
+
@keyframes bounceInDown {
|
877 |
+
0%, 60%, 75%, 90%, 100% {
|
878 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
879 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
880 |
+
}
|
881 |
+
|
882 |
+
0% {
|
883 |
+
opacity: 0;
|
884 |
+
-webkit-transform: translate3d(0, -3000px, 0);
|
885 |
+
transform: translate3d(0, -3000px, 0);
|
886 |
+
}
|
887 |
+
|
888 |
+
60% {
|
889 |
+
opacity: 1;
|
890 |
+
-webkit-transform: translate3d(0, 25px, 0);
|
891 |
+
transform: translate3d(0, 25px, 0);
|
892 |
+
}
|
893 |
+
|
894 |
+
75% {
|
895 |
+
-webkit-transform: translate3d(0, -10px, 0);
|
896 |
+
transform: translate3d(0, -10px, 0);
|
897 |
+
}
|
898 |
+
|
899 |
+
90% {
|
900 |
+
-webkit-transform: translate3d(0, 5px, 0);
|
901 |
+
transform: translate3d(0, 5px, 0);
|
902 |
+
}
|
903 |
+
|
904 |
+
100% {
|
905 |
+
-webkit-transform: none;
|
906 |
+
transform: none;
|
907 |
+
}
|
908 |
+
}
|
909 |
+
|
910 |
+
.bounceInDown {
|
911 |
+
-webkit-animation-name: bounceInDown;
|
912 |
+
animation-name: bounceInDown;
|
913 |
+
}
|
914 |
+
|
915 |
+
@-webkit-keyframes bounceInLeft {
|
916 |
+
0%, 60%, 75%, 90%, 100% {
|
917 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
918 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
919 |
+
}
|
920 |
+
|
921 |
+
0% {
|
922 |
+
opacity: 0;
|
923 |
+
-webkit-transform: translate3d(-3000px, 0, 0);
|
924 |
+
transform: translate3d(-3000px, 0, 0);
|
925 |
+
}
|
926 |
+
|
927 |
+
60% {
|
928 |
+
opacity: 1;
|
929 |
+
-webkit-transform: translate3d(25px, 0, 0);
|
930 |
+
transform: translate3d(25px, 0, 0);
|
931 |
+
}
|
932 |
+
|
933 |
+
75% {
|
934 |
+
-webkit-transform: translate3d(-10px, 0, 0);
|
935 |
+
transform: translate3d(-10px, 0, 0);
|
936 |
+
}
|
937 |
+
|
938 |
+
90% {
|
939 |
+
-webkit-transform: translate3d(5px, 0, 0);
|
940 |
+
transform: translate3d(5px, 0, 0);
|
941 |
+
}
|
942 |
+
|
943 |
+
100% {
|
944 |
+
-webkit-transform: none;
|
945 |
+
transform: none;
|
946 |
+
}
|
947 |
+
}
|
948 |
+
|
949 |
+
@keyframes bounceInLeft {
|
950 |
+
0%, 60%, 75%, 90%, 100% {
|
951 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
952 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
953 |
+
}
|
954 |
+
|
955 |
+
0% {
|
956 |
+
opacity: 0;
|
957 |
+
-webkit-transform: translate3d(-3000px, 0, 0);
|
958 |
+
transform: translate3d(-3000px, 0, 0);
|
959 |
+
}
|
960 |
+
|
961 |
+
60% {
|
962 |
+
opacity: 1;
|
963 |
+
-webkit-transform: translate3d(25px, 0, 0);
|
964 |
+
transform: translate3d(25px, 0, 0);
|
965 |
+
}
|
966 |
+
|
967 |
+
75% {
|
968 |
+
-webkit-transform: translate3d(-10px, 0, 0);
|
969 |
+
transform: translate3d(-10px, 0, 0);
|
970 |
+
}
|
971 |
+
|
972 |
+
90% {
|
973 |
+
-webkit-transform: translate3d(5px, 0, 0);
|
974 |
+
transform: translate3d(5px, 0, 0);
|
975 |
+
}
|
976 |
+
|
977 |
+
100% {
|
978 |
+
-webkit-transform: none;
|
979 |
+
transform: none;
|
980 |
+
}
|
981 |
+
}
|
982 |
+
|
983 |
+
.bounceInLeft {
|
984 |
+
-webkit-animation-name: bounceInLeft;
|
985 |
+
animation-name: bounceInLeft;
|
986 |
+
}
|
987 |
+
|
988 |
+
@-webkit-keyframes bounceInRight {
|
989 |
+
0%, 60%, 75%, 90%, 100% {
|
990 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
991 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
992 |
+
}
|
993 |
+
|
994 |
+
0% {
|
995 |
+
opacity: 0;
|
996 |
+
-webkit-transform: translate3d(3000px, 0, 0);
|
997 |
+
transform: translate3d(3000px, 0, 0);
|
998 |
+
}
|
999 |
+
|
1000 |
+
60% {
|
1001 |
+
opacity: 1;
|
1002 |
+
-webkit-transform: translate3d(-25px, 0, 0);
|
1003 |
+
transform: translate3d(-25px, 0, 0);
|
1004 |
+
}
|
1005 |
+
|
1006 |
+
75% {
|
1007 |
+
-webkit-transform: translate3d(10px, 0, 0);
|
1008 |
+
transform: translate3d(10px, 0, 0);
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
90% {
|
1012 |
+
-webkit-transform: translate3d(-5px, 0, 0);
|
1013 |
+
transform: translate3d(-5px, 0, 0);
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
100% {
|
1017 |
+
-webkit-transform: none;
|
1018 |
+
transform: none;
|
1019 |
+
}
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
@keyframes bounceInRight {
|
1023 |
+
0%, 60%, 75%, 90%, 100% {
|
1024 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1025 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
0% {
|
1029 |
+
opacity: 0;
|
1030 |
+
-webkit-transform: translate3d(3000px, 0, 0);
|
1031 |
+
transform: translate3d(3000px, 0, 0);
|
1032 |
+
}
|
1033 |
+
|
1034 |
+
60% {
|
1035 |
+
opacity: 1;
|
1036 |
+
-webkit-transform: translate3d(-25px, 0, 0);
|
1037 |
+
transform: translate3d(-25px, 0, 0);
|
1038 |
+
}
|
1039 |
+
|
1040 |
+
75% {
|
1041 |
+
-webkit-transform: translate3d(10px, 0, 0);
|
1042 |
+
transform: translate3d(10px, 0, 0);
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
90% {
|
1046 |
+
-webkit-transform: translate3d(-5px, 0, 0);
|
1047 |
+
transform: translate3d(-5px, 0, 0);
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
100% {
|
1051 |
+
-webkit-transform: none;
|
1052 |
+
transform: none;
|
1053 |
+
}
|
1054 |
+
}
|
1055 |
+
|
1056 |
+
.bounceInRight {
|
1057 |
+
-webkit-animation-name: bounceInRight;
|
1058 |
+
animation-name: bounceInRight;
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
@-webkit-keyframes bounceInUp {
|
1062 |
+
0%, 60%, 75%, 90%, 100% {
|
1063 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1064 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
0% {
|
1068 |
+
opacity: 0;
|
1069 |
+
-webkit-transform: translate3d(0, 3000px, 0);
|
1070 |
+
transform: translate3d(0, 3000px, 0);
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
60% {
|
1074 |
+
opacity: 1;
|
1075 |
+
-webkit-transform: translate3d(0, -20px, 0);
|
1076 |
+
transform: translate3d(0, -20px, 0);
|
1077 |
+
}
|
1078 |
+
|
1079 |
+
75% {
|
1080 |
+
-webkit-transform: translate3d(0, 10px, 0);
|
1081 |
+
transform: translate3d(0, 10px, 0);
|
1082 |
+
}
|
1083 |
+
|
1084 |
+
90% {
|
1085 |
+
-webkit-transform: translate3d(0, -5px, 0);
|
1086 |
+
transform: translate3d(0, -5px, 0);
|
1087 |
+
}
|
1088 |
+
|
1089 |
+
100% {
|
1090 |
+
-webkit-transform: translate3d(0, 0, 0);
|
1091 |
+
transform: translate3d(0, 0, 0);
|
1092 |
+
}
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
@keyframes bounceInUp {
|
1096 |
+
0%, 60%, 75%, 90%, 100% {
|
1097 |
+
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1098 |
+
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
0% {
|
1102 |
+
opacity: 0;
|
1103 |
+
-webkit-transform: translate3d(0, 3000px, 0);
|
1104 |
+
transform: translate3d(0, 3000px, 0);
|
1105 |
+
}
|
1106 |
+
|
1107 |
+
60% {
|
1108 |
+
opacity: 1;
|
1109 |
+
-webkit-transform: translate3d(0, -20px, 0);
|
1110 |
+
transform: translate3d(0, -20px, 0);
|
1111 |
+
}
|
1112 |
+
|
1113 |
+
75% {
|
1114 |
+
-webkit-transform: translate3d(0, 10px, 0);
|
1115 |
+
transform: translate3d(0, 10px, 0);
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
90% {
|
1119 |
+
-webkit-transform: translate3d(0, -5px, 0);
|
1120 |
+
transform: translate3d(0, -5px, 0);
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
100% {
|
1124 |
+
-webkit-transform: translate3d(0, 0, 0);
|
1125 |
+
transform: translate3d(0, 0, 0);
|
1126 |
+
}
|
1127 |
+
}
|
1128 |
+
|
1129 |
+
.bounceInUp {
|
1130 |
+
-webkit-animation-name: bounceInUp;
|
1131 |
+
animation-name: bounceInUp;
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
@-webkit-keyframes bounceOut {
|
1135 |
+
20% {
|
1136 |
+
-webkit-transform: scale3d(.9, .9, .9);
|
1137 |
+
transform: scale3d(.9, .9, .9);
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
50%, 55% {
|
1141 |
+
opacity: 1;
|
1142 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
1143 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
1144 |
+
}
|
1145 |
+
|
1146 |
+
100% {
|
1147 |
+
opacity: 0;
|
1148 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
1149 |
+
transform: scale3d(.3, .3, .3);
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
@keyframes bounceOut {
|
1154 |
+
20% {
|
1155 |
+
-webkit-transform: scale3d(.9, .9, .9);
|
1156 |
+
transform: scale3d(.9, .9, .9);
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
50%, 55% {
|
1160 |
+
opacity: 1;
|
1161 |
+
-webkit-transform: scale3d(1.1, 1.1, 1.1);
|
1162 |
+
transform: scale3d(1.1, 1.1, 1.1);
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
100% {
|
1166 |
+
opacity: 0;
|
1167 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
1168 |
+
transform: scale3d(.3, .3, .3);
|
1169 |
+
}
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
.bounceOut {
|
1173 |
+
-webkit-animation-name: bounceOut;
|
1174 |
+
animation-name: bounceOut;
|
1175 |
+
-webkit-animation-duration: .75s;
|
1176 |
+
animation-duration: .75s;
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
@-webkit-keyframes bounceOutDown {
|
1180 |
+
20% {
|
1181 |
+
-webkit-transform: translate3d(0, 10px, 0);
|
1182 |
+
transform: translate3d(0, 10px, 0);
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
40%, 45% {
|
1186 |
+
opacity: 1;
|
1187 |
+
-webkit-transform: translate3d(0, -20px, 0);
|
1188 |
+
transform: translate3d(0, -20px, 0);
|
1189 |
+
}
|
1190 |
+
|
1191 |
+
100% {
|
1192 |
+
opacity: 0;
|
1193 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1194 |
+
transform: translate3d(0, 2000px, 0);
|
1195 |
+
}
|
1196 |
+
}
|
1197 |
+
|
1198 |
+
@keyframes bounceOutDown {
|
1199 |
+
20% {
|
1200 |
+
-webkit-transform: translate3d(0, 10px, 0);
|
1201 |
+
transform: translate3d(0, 10px, 0);
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
40%, 45% {
|
1205 |
+
opacity: 1;
|
1206 |
+
-webkit-transform: translate3d(0, -20px, 0);
|
1207 |
+
transform: translate3d(0, -20px, 0);
|
1208 |
+
}
|
1209 |
+
|
1210 |
+
100% {
|
1211 |
+
opacity: 0;
|
1212 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1213 |
+
transform: translate3d(0, 2000px, 0);
|
1214 |
+
}
|
1215 |
+
}
|
1216 |
+
|
1217 |
+
.bounceOutDown {
|
1218 |
+
-webkit-animation-name: bounceOutDown;
|
1219 |
+
animation-name: bounceOutDown;
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
@-webkit-keyframes bounceOutLeft {
|
1223 |
+
20% {
|
1224 |
+
opacity: 1;
|
1225 |
+
-webkit-transform: translate3d(20px, 0, 0);
|
1226 |
+
transform: translate3d(20px, 0, 0);
|
1227 |
+
}
|
1228 |
+
|
1229 |
+
100% {
|
1230 |
+
opacity: 0;
|
1231 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1232 |
+
transform: translate3d(-2000px, 0, 0);
|
1233 |
+
}
|
1234 |
+
}
|
1235 |
+
|
1236 |
+
@keyframes bounceOutLeft {
|
1237 |
+
20% {
|
1238 |
+
opacity: 1;
|
1239 |
+
-webkit-transform: translate3d(20px, 0, 0);
|
1240 |
+
transform: translate3d(20px, 0, 0);
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
100% {
|
1244 |
+
opacity: 0;
|
1245 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1246 |
+
transform: translate3d(-2000px, 0, 0);
|
1247 |
+
}
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
.bounceOutLeft {
|
1251 |
+
-webkit-animation-name: bounceOutLeft;
|
1252 |
+
animation-name: bounceOutLeft;
|
1253 |
+
}
|
1254 |
+
|
1255 |
+
@-webkit-keyframes bounceOutRight {
|
1256 |
+
20% {
|
1257 |
+
opacity: 1;
|
1258 |
+
-webkit-transform: translate3d(-20px, 0, 0);
|
1259 |
+
transform: translate3d(-20px, 0, 0);
|
1260 |
+
}
|
1261 |
+
|
1262 |
+
100% {
|
1263 |
+
opacity: 0;
|
1264 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1265 |
+
transform: translate3d(2000px, 0, 0);
|
1266 |
+
}
|
1267 |
+
}
|
1268 |
+
|
1269 |
+
@keyframes bounceOutRight {
|
1270 |
+
20% {
|
1271 |
+
opacity: 1;
|
1272 |
+
-webkit-transform: translate3d(-20px, 0, 0);
|
1273 |
+
transform: translate3d(-20px, 0, 0);
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
100% {
|
1277 |
+
opacity: 0;
|
1278 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1279 |
+
transform: translate3d(2000px, 0, 0);
|
1280 |
+
}
|
1281 |
+
}
|
1282 |
+
|
1283 |
+
.bounceOutRight {
|
1284 |
+
-webkit-animation-name: bounceOutRight;
|
1285 |
+
animation-name: bounceOutRight;
|
1286 |
+
}
|
1287 |
+
|
1288 |
+
@-webkit-keyframes bounceOutUp {
|
1289 |
+
20% {
|
1290 |
+
-webkit-transform: translate3d(0, -10px, 0);
|
1291 |
+
transform: translate3d(0, -10px, 0);
|
1292 |
+
}
|
1293 |
+
|
1294 |
+
40%, 45% {
|
1295 |
+
opacity: 1;
|
1296 |
+
-webkit-transform: translate3d(0, 20px, 0);
|
1297 |
+
transform: translate3d(0, 20px, 0);
|
1298 |
+
}
|
1299 |
+
|
1300 |
+
100% {
|
1301 |
+
opacity: 0;
|
1302 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1303 |
+
transform: translate3d(0, -2000px, 0);
|
1304 |
+
}
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
@keyframes bounceOutUp {
|
1308 |
+
20% {
|
1309 |
+
-webkit-transform: translate3d(0, -10px, 0);
|
1310 |
+
transform: translate3d(0, -10px, 0);
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
40%, 45% {
|
1314 |
+
opacity: 1;
|
1315 |
+
-webkit-transform: translate3d(0, 20px, 0);
|
1316 |
+
transform: translate3d(0, 20px, 0);
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
100% {
|
1320 |
+
opacity: 0;
|
1321 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1322 |
+
transform: translate3d(0, -2000px, 0);
|
1323 |
+
}
|
1324 |
+
}
|
1325 |
+
|
1326 |
+
.bounceOutUp {
|
1327 |
+
-webkit-animation-name: bounceOutUp;
|
1328 |
+
animation-name: bounceOutUp;
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
@-webkit-keyframes fadeIn {
|
1332 |
+
0% {opacity: 0;}
|
1333 |
+
100% {opacity: 1;}
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
@keyframes fadeIn {
|
1337 |
+
0% {opacity: 0;}
|
1338 |
+
100% {opacity: 1;}
|
1339 |
+
}
|
1340 |
+
|
1341 |
+
.fadeIn {
|
1342 |
+
-webkit-animation-name: fadeIn;
|
1343 |
+
animation-name: fadeIn;
|
1344 |
+
}
|
1345 |
+
|
1346 |
+
@-webkit-keyframes fadeInDown {
|
1347 |
+
0% {
|
1348 |
+
opacity: 0;
|
1349 |
+
-webkit-transform: translate3d(0, -100%, 0);
|
1350 |
+
transform: translate3d(0, -100%, 0);
|
1351 |
+
}
|
1352 |
+
|
1353 |
+
100% {
|
1354 |
+
opacity: 1;
|
1355 |
+
-webkit-transform: none;
|
1356 |
+
transform: none;
|
1357 |
+
}
|
1358 |
+
}
|
1359 |
+
|
1360 |
+
@keyframes fadeInDown {
|
1361 |
+
0% {
|
1362 |
+
opacity: 0;
|
1363 |
+
-webkit-transform: translate3d(0, -100%, 0);
|
1364 |
+
transform: translate3d(0, -100%, 0);
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
100% {
|
1368 |
+
opacity: 1;
|
1369 |
+
-webkit-transform: none;
|
1370 |
+
transform: none;
|
1371 |
+
}
|
1372 |
+
}
|
1373 |
+
|
1374 |
+
.fadeInDown {
|
1375 |
+
-webkit-animation-name: fadeInDown;
|
1376 |
+
animation-name: fadeInDown;
|
1377 |
+
}
|
1378 |
+
|
1379 |
+
@-webkit-keyframes fadeInDownBig {
|
1380 |
+
0% {
|
1381 |
+
opacity: 0;
|
1382 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1383 |
+
transform: translate3d(0, -2000px, 0);
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
100% {
|
1387 |
+
opacity: 1;
|
1388 |
+
-webkit-transform: none;
|
1389 |
+
transform: none;
|
1390 |
+
}
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
@keyframes fadeInDownBig {
|
1394 |
+
0% {
|
1395 |
+
opacity: 0;
|
1396 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1397 |
+
transform: translate3d(0, -2000px, 0);
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
100% {
|
1401 |
+
opacity: 1;
|
1402 |
+
-webkit-transform: none;
|
1403 |
+
transform: none;
|
1404 |
+
}
|
1405 |
+
}
|
1406 |
+
|
1407 |
+
.fadeInDownBig {
|
1408 |
+
-webkit-animation-name: fadeInDownBig;
|
1409 |
+
animation-name: fadeInDownBig;
|
1410 |
+
}
|
1411 |
+
|
1412 |
+
@-webkit-keyframes fadeInLeft {
|
1413 |
+
0% {
|
1414 |
+
opacity: 0;
|
1415 |
+
-webkit-transform: translate3d(-100%, 0, 0);
|
1416 |
+
transform: translate3d(-100%, 0, 0);
|
1417 |
+
}
|
1418 |
+
|
1419 |
+
100% {
|
1420 |
+
opacity: 1;
|
1421 |
+
-webkit-transform: none;
|
1422 |
+
transform: none;
|
1423 |
+
}
|
1424 |
+
}
|
1425 |
+
|
1426 |
+
@keyframes fadeInLeft {
|
1427 |
+
0% {
|
1428 |
+
opacity: 0;
|
1429 |
+
-webkit-transform: translate3d(-100%, 0, 0);
|
1430 |
+
transform: translate3d(-100%, 0, 0);
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
100% {
|
1434 |
+
opacity: 1;
|
1435 |
+
-webkit-transform: none;
|
1436 |
+
transform: none;
|
1437 |
+
}
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
.fadeInLeft {
|
1441 |
+
-webkit-animation-name: fadeInLeft;
|
1442 |
+
animation-name: fadeInLeft;
|
1443 |
+
}
|
1444 |
+
|
1445 |
+
@-webkit-keyframes fadeInLeftBig {
|
1446 |
+
0% {
|
1447 |
+
opacity: 0;
|
1448 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1449 |
+
transform: translate3d(-2000px, 0, 0);
|
1450 |
+
}
|
1451 |
+
|
1452 |
+
100% {
|
1453 |
+
opacity: 1;
|
1454 |
+
-webkit-transform: none;
|
1455 |
+
transform: none;
|
1456 |
+
}
|
1457 |
+
}
|
1458 |
+
|
1459 |
+
@keyframes fadeInLeftBig {
|
1460 |
+
0% {
|
1461 |
+
opacity: 0;
|
1462 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1463 |
+
transform: translate3d(-2000px, 0, 0);
|
1464 |
+
}
|
1465 |
+
|
1466 |
+
100% {
|
1467 |
+
opacity: 1;
|
1468 |
+
-webkit-transform: none;
|
1469 |
+
transform: none;
|
1470 |
+
}
|
1471 |
+
}
|
1472 |
+
|
1473 |
+
.fadeInLeftBig {
|
1474 |
+
-webkit-animation-name: fadeInLeftBig;
|
1475 |
+
animation-name: fadeInLeftBig;
|
1476 |
+
}
|
1477 |
+
|
1478 |
+
@-webkit-keyframes fadeInRight {
|
1479 |
+
0% {
|
1480 |
+
opacity: 0;
|
1481 |
+
-webkit-transform: translate3d(100%, 0, 0);
|
1482 |
+
transform: translate3d(100%, 0, 0);
|
1483 |
+
}
|
1484 |
+
|
1485 |
+
100% {
|
1486 |
+
opacity: 1;
|
1487 |
+
-webkit-transform: none;
|
1488 |
+
transform: none;
|
1489 |
+
}
|
1490 |
+
}
|
1491 |
+
|
1492 |
+
@keyframes fadeInRight {
|
1493 |
+
0% {
|
1494 |
+
opacity: 0;
|
1495 |
+
-webkit-transform: translate3d(100%, 0, 0);
|
1496 |
+
transform: translate3d(100%, 0, 0);
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
100% {
|
1500 |
+
opacity: 1;
|
1501 |
+
-webkit-transform: none;
|
1502 |
+
transform: none;
|
1503 |
+
}
|
1504 |
+
}
|
1505 |
+
|
1506 |
+
.fadeInRight {
|
1507 |
+
-webkit-animation-name: fadeInRight;
|
1508 |
+
animation-name: fadeInRight;
|
1509 |
+
}
|
1510 |
+
|
1511 |
+
@-webkit-keyframes fadeInRightBig {
|
1512 |
+
0% {
|
1513 |
+
opacity: 0;
|
1514 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1515 |
+
transform: translate3d(2000px, 0, 0);
|
1516 |
+
}
|
1517 |
+
|
1518 |
+
100% {
|
1519 |
+
opacity: 1;
|
1520 |
+
-webkit-transform: none;
|
1521 |
+
transform: none;
|
1522 |
+
}
|
1523 |
+
}
|
1524 |
+
|
1525 |
+
@keyframes fadeInRightBig {
|
1526 |
+
0% {
|
1527 |
+
opacity: 0;
|
1528 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1529 |
+
transform: translate3d(2000px, 0, 0);
|
1530 |
+
}
|
1531 |
+
|
1532 |
+
100% {
|
1533 |
+
opacity: 1;
|
1534 |
+
-webkit-transform: none;
|
1535 |
+
transform: none;
|
1536 |
+
}
|
1537 |
+
}
|
1538 |
+
|
1539 |
+
.fadeInRightBig {
|
1540 |
+
-webkit-animation-name: fadeInRightBig;
|
1541 |
+
animation-name: fadeInRightBig;
|
1542 |
+
}
|
1543 |
+
|
1544 |
+
@-webkit-keyframes fadeInUp {
|
1545 |
+
0% {
|
1546 |
+
opacity: 0;
|
1547 |
+
-webkit-transform: translate3d(0, 100%, 0);
|
1548 |
+
transform: translate3d(0, 100%, 0);
|
1549 |
+
}
|
1550 |
+
|
1551 |
+
100% {
|
1552 |
+
opacity: 1;
|
1553 |
+
-webkit-transform: none;
|
1554 |
+
transform: none;
|
1555 |
+
}
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
@keyframes fadeInUp {
|
1559 |
+
0% {
|
1560 |
+
opacity: 0;
|
1561 |
+
-webkit-transform: translate3d(0, 100%, 0);
|
1562 |
+
transform: translate3d(0, 100%, 0);
|
1563 |
+
}
|
1564 |
+
|
1565 |
+
100% {
|
1566 |
+
opacity: 1;
|
1567 |
+
-webkit-transform: none;
|
1568 |
+
transform: none;
|
1569 |
+
}
|
1570 |
+
}
|
1571 |
+
|
1572 |
+
.fadeInUp {
|
1573 |
+
-webkit-animation-name: fadeInUp;
|
1574 |
+
animation-name: fadeInUp;
|
1575 |
+
}
|
1576 |
+
|
1577 |
+
@-webkit-keyframes fadeInUpBig {
|
1578 |
+
0% {
|
1579 |
+
opacity: 0;
|
1580 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1581 |
+
transform: translate3d(0, 2000px, 0);
|
1582 |
+
}
|
1583 |
+
|
1584 |
+
100% {
|
1585 |
+
opacity: 1;
|
1586 |
+
-webkit-transform: none;
|
1587 |
+
transform: none;
|
1588 |
+
}
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
@keyframes fadeInUpBig {
|
1592 |
+
0% {
|
1593 |
+
opacity: 0;
|
1594 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1595 |
+
transform: translate3d(0, 2000px, 0);
|
1596 |
+
}
|
1597 |
+
|
1598 |
+
100% {
|
1599 |
+
opacity: 1;
|
1600 |
+
-webkit-transform: none;
|
1601 |
+
transform: none;
|
1602 |
+
}
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
.fadeInUpBig {
|
1606 |
+
-webkit-animation-name: fadeInUpBig;
|
1607 |
+
animation-name: fadeInUpBig;
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
@-webkit-keyframes fadeOut {
|
1611 |
+
0% {opacity: 1;}
|
1612 |
+
100% {opacity: 0;}
|
1613 |
+
}
|
1614 |
+
|
1615 |
+
@keyframes fadeOut {
|
1616 |
+
0% {opacity: 1;}
|
1617 |
+
100% {opacity: 0;}
|
1618 |
+
}
|
1619 |
+
|
1620 |
+
.fadeOut {
|
1621 |
+
-webkit-animation-name: fadeOut;
|
1622 |
+
animation-name: fadeOut;
|
1623 |
+
}
|
1624 |
+
|
1625 |
+
@-webkit-keyframes fadeOutDown {
|
1626 |
+
0% {
|
1627 |
+
opacity: 1;
|
1628 |
+
}
|
1629 |
+
|
1630 |
+
100% {
|
1631 |
+
opacity: 0;
|
1632 |
+
-webkit-transform: translate3d(0, 100%, 0);
|
1633 |
+
transform: translate3d(0, 100%, 0);
|
1634 |
+
}
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
@keyframes fadeOutDown {
|
1638 |
+
0% {
|
1639 |
+
opacity: 1;
|
1640 |
+
}
|
1641 |
+
|
1642 |
+
100% {
|
1643 |
+
opacity: 0;
|
1644 |
+
-webkit-transform: translate3d(0, 100%, 0);
|
1645 |
+
transform: translate3d(0, 100%, 0);
|
1646 |
+
}
|
1647 |
+
}
|
1648 |
+
|
1649 |
+
.fadeOutDown {
|
1650 |
+
-webkit-animation-name: fadeOutDown;
|
1651 |
+
animation-name: fadeOutDown;
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
@-webkit-keyframes fadeOutDownBig {
|
1655 |
+
0% {
|
1656 |
+
opacity: 1;
|
1657 |
+
}
|
1658 |
+
|
1659 |
+
100% {
|
1660 |
+
opacity: 0;
|
1661 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1662 |
+
transform: translate3d(0, 2000px, 0);
|
1663 |
+
}
|
1664 |
+
}
|
1665 |
+
|
1666 |
+
@keyframes fadeOutDownBig {
|
1667 |
+
0% {
|
1668 |
+
opacity: 1;
|
1669 |
+
}
|
1670 |
+
|
1671 |
+
100% {
|
1672 |
+
opacity: 0;
|
1673 |
+
-webkit-transform: translate3d(0, 2000px, 0);
|
1674 |
+
transform: translate3d(0, 2000px, 0);
|
1675 |
+
}
|
1676 |
+
}
|
1677 |
+
|
1678 |
+
.fadeOutDownBig {
|
1679 |
+
-webkit-animation-name: fadeOutDownBig;
|
1680 |
+
animation-name: fadeOutDownBig;
|
1681 |
+
}
|
1682 |
+
|
1683 |
+
@-webkit-keyframes fadeOutLeft {
|
1684 |
+
0% {
|
1685 |
+
opacity: 1;
|
1686 |
+
}
|
1687 |
+
|
1688 |
+
100% {
|
1689 |
+
opacity: 0;
|
1690 |
+
-webkit-transform: translate3d(-100%, 0, 0);
|
1691 |
+
transform: translate3d(-100%, 0, 0);
|
1692 |
+
}
|
1693 |
+
}
|
1694 |
+
|
1695 |
+
@keyframes fadeOutLeft {
|
1696 |
+
0% {
|
1697 |
+
opacity: 1;
|
1698 |
+
}
|
1699 |
+
|
1700 |
+
100% {
|
1701 |
+
opacity: 0;
|
1702 |
+
-webkit-transform: translate3d(-100%, 0, 0);
|
1703 |
+
transform: translate3d(-100%, 0, 0);
|
1704 |
+
}
|
1705 |
+
}
|
1706 |
+
|
1707 |
+
.fadeOutLeft {
|
1708 |
+
-webkit-animation-name: fadeOutLeft;
|
1709 |
+
animation-name: fadeOutLeft;
|
1710 |
+
}
|
1711 |
+
|
1712 |
+
@-webkit-keyframes fadeOutLeftBig {
|
1713 |
+
0% {
|
1714 |
+
opacity: 1;
|
1715 |
+
}
|
1716 |
+
|
1717 |
+
100% {
|
1718 |
+
opacity: 0;
|
1719 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1720 |
+
transform: translate3d(-2000px, 0, 0);
|
1721 |
+
}
|
1722 |
+
}
|
1723 |
+
|
1724 |
+
@keyframes fadeOutLeftBig {
|
1725 |
+
0% {
|
1726 |
+
opacity: 1;
|
1727 |
+
}
|
1728 |
+
|
1729 |
+
100% {
|
1730 |
+
opacity: 0;
|
1731 |
+
-webkit-transform: translate3d(-2000px, 0, 0);
|
1732 |
+
transform: translate3d(-2000px, 0, 0);
|
1733 |
+
}
|
1734 |
+
}
|
1735 |
+
|
1736 |
+
.fadeOutLeftBig {
|
1737 |
+
-webkit-animation-name: fadeOutLeftBig;
|
1738 |
+
animation-name: fadeOutLeftBig;
|
1739 |
+
}
|
1740 |
+
|
1741 |
+
@-webkit-keyframes fadeOutRight {
|
1742 |
+
0% {
|
1743 |
+
opacity: 1;
|
1744 |
+
}
|
1745 |
+
|
1746 |
+
100% {
|
1747 |
+
opacity: 0;
|
1748 |
+
-webkit-transform: translate3d(100%, 0, 0);
|
1749 |
+
transform: translate3d(100%, 0, 0);
|
1750 |
+
}
|
1751 |
+
}
|
1752 |
+
|
1753 |
+
@keyframes fadeOutRight {
|
1754 |
+
0% {
|
1755 |
+
opacity: 1;
|
1756 |
+
}
|
1757 |
+
|
1758 |
+
100% {
|
1759 |
+
opacity: 0;
|
1760 |
+
-webkit-transform: translate3d(100%, 0, 0);
|
1761 |
+
transform: translate3d(100%, 0, 0);
|
1762 |
+
}
|
1763 |
+
}
|
1764 |
+
|
1765 |
+
.fadeOutRight {
|
1766 |
+
-webkit-animation-name: fadeOutRight;
|
1767 |
+
animation-name: fadeOutRight;
|
1768 |
+
}
|
1769 |
+
|
1770 |
+
@-webkit-keyframes fadeOutRightBig {
|
1771 |
+
0% {
|
1772 |
+
opacity: 1;
|
1773 |
+
}
|
1774 |
+
|
1775 |
+
100% {
|
1776 |
+
opacity: 0;
|
1777 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1778 |
+
transform: translate3d(2000px, 0, 0);
|
1779 |
+
}
|
1780 |
+
}
|
1781 |
+
|
1782 |
+
@keyframes fadeOutRightBig {
|
1783 |
+
0% {
|
1784 |
+
opacity: 1;
|
1785 |
+
}
|
1786 |
+
|
1787 |
+
100% {
|
1788 |
+
opacity: 0;
|
1789 |
+
-webkit-transform: translate3d(2000px, 0, 0);
|
1790 |
+
transform: translate3d(2000px, 0, 0);
|
1791 |
+
}
|
1792 |
+
}
|
1793 |
+
|
1794 |
+
.fadeOutRightBig {
|
1795 |
+
-webkit-animation-name: fadeOutRightBig;
|
1796 |
+
animation-name: fadeOutRightBig;
|
1797 |
+
}
|
1798 |
+
|
1799 |
+
@-webkit-keyframes fadeOutUp {
|
1800 |
+
0% {
|
1801 |
+
opacity: 1;
|
1802 |
+
}
|
1803 |
+
|
1804 |
+
100% {
|
1805 |
+
opacity: 0;
|
1806 |
+
-webkit-transform: translate3d(0, -100%, 0);
|
1807 |
+
transform: translate3d(0, -100%, 0);
|
1808 |
+
}
|
1809 |
+
}
|
1810 |
+
|
1811 |
+
@keyframes fadeOutUp {
|
1812 |
+
0% {
|
1813 |
+
opacity: 1;
|
1814 |
+
}
|
1815 |
+
|
1816 |
+
100% {
|
1817 |
+
opacity: 0;
|
1818 |
+
-webkit-transform: translate3d(0, -100%, 0);
|
1819 |
+
transform: translate3d(0, -100%, 0);
|
1820 |
+
}
|
1821 |
+
}
|
1822 |
+
|
1823 |
+
.fadeOutUp {
|
1824 |
+
-webkit-animation-name: fadeOutUp;
|
1825 |
+
animation-name: fadeOutUp;
|
1826 |
+
}
|
1827 |
+
|
1828 |
+
@-webkit-keyframes fadeOutUpBig {
|
1829 |
+
0% {
|
1830 |
+
opacity: 1;
|
1831 |
+
}
|
1832 |
+
|
1833 |
+
100% {
|
1834 |
+
opacity: 0;
|
1835 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1836 |
+
transform: translate3d(0, -2000px, 0);
|
1837 |
+
}
|
1838 |
+
}
|
1839 |
+
|
1840 |
+
@keyframes fadeOutUpBig {
|
1841 |
+
0% {
|
1842 |
+
opacity: 1;
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
100% {
|
1846 |
+
opacity: 0;
|
1847 |
+
-webkit-transform: translate3d(0, -2000px, 0);
|
1848 |
+
transform: translate3d(0, -2000px, 0);
|
1849 |
+
}
|
1850 |
+
}
|
1851 |
+
|
1852 |
+
.fadeOutUpBig {
|
1853 |
+
-webkit-animation-name: fadeOutUpBig;
|
1854 |
+
animation-name: fadeOutUpBig;
|
1855 |
+
}
|
1856 |
+
|
1857 |
+
@-webkit-keyframes flip {
|
1858 |
+
0% {
|
1859 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
|
1860 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
|
1861 |
+
-webkit-animation-timing-function: ease-out;
|
1862 |
+
animation-timing-function: ease-out;
|
1863 |
+
}
|
1864 |
+
|
1865 |
+
40% {
|
1866 |
+
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
|
1867 |
+
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
|
1868 |
+
-webkit-animation-timing-function: ease-out;
|
1869 |
+
animation-timing-function: ease-out;
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
50% {
|
1873 |
+
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
|
1874 |
+
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
|
1875 |
+
-webkit-animation-timing-function: ease-in;
|
1876 |
+
animation-timing-function: ease-in;
|
1877 |
+
}
|
1878 |
+
|
1879 |
+
80% {
|
1880 |
+
-webkit-transform: perspective(400px) scale3d(.95, .95, .95);
|
1881 |
+
transform: perspective(400px) scale3d(.95, .95, .95);
|
1882 |
+
-webkit-animation-timing-function: ease-in;
|
1883 |
+
animation-timing-function: ease-in;
|
1884 |
+
}
|
1885 |
+
|
1886 |
+
100% {
|
1887 |
+
-webkit-transform: perspective(400px);
|
1888 |
+
transform: perspective(400px);
|
1889 |
+
-webkit-animation-timing-function: ease-in;
|
1890 |
+
animation-timing-function: ease-in;
|
1891 |
+
}
|
1892 |
+
}
|
1893 |
+
|
1894 |
+
@keyframes flip {
|
1895 |
+
0% {
|
1896 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
|
1897 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
|
1898 |
+
-webkit-animation-timing-function: ease-out;
|
1899 |
+
animation-timing-function: ease-out;
|
1900 |
+
}
|
1901 |
+
|
1902 |
+
40% {
|
1903 |
+
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
|
1904 |
+
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
|
1905 |
+
-webkit-animation-timing-function: ease-out;
|
1906 |
+
animation-timing-function: ease-out;
|
1907 |
+
}
|
1908 |
+
|
1909 |
+
50% {
|
1910 |
+
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
|
1911 |
+
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
|
1912 |
+
-webkit-animation-timing-function: ease-in;
|
1913 |
+
animation-timing-function: ease-in;
|
1914 |
+
}
|
1915 |
+
|
1916 |
+
80% {
|
1917 |
+
-webkit-transform: perspective(400px) scale3d(.95, .95, .95);
|
1918 |
+
transform: perspective(400px) scale3d(.95, .95, .95);
|
1919 |
+
-webkit-animation-timing-function: ease-in;
|
1920 |
+
animation-timing-function: ease-in;
|
1921 |
+
}
|
1922 |
+
|
1923 |
+
100% {
|
1924 |
+
-webkit-transform: perspective(400px);
|
1925 |
+
transform: perspective(400px);
|
1926 |
+
-webkit-animation-timing-function: ease-in;
|
1927 |
+
animation-timing-function: ease-in;
|
1928 |
+
}
|
1929 |
+
}
|
1930 |
+
|
1931 |
+
.animated.flip {
|
1932 |
+
-webkit-backface-visibility: visible;
|
1933 |
+
backface-visibility: visible;
|
1934 |
+
-webkit-animation-name: flip;
|
1935 |
+
animation-name: flip;
|
1936 |
+
}
|
1937 |
+
|
1938 |
+
@-webkit-keyframes flipInX {
|
1939 |
+
0% {
|
1940 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
1941 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
1942 |
+
-webkit-transition-timing-function: ease-in;
|
1943 |
+
transition-timing-function: ease-in;
|
1944 |
+
opacity: 0;
|
1945 |
+
}
|
1946 |
+
|
1947 |
+
40% {
|
1948 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
1949 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
1950 |
+
-webkit-transition-timing-function: ease-in;
|
1951 |
+
transition-timing-function: ease-in;
|
1952 |
+
}
|
1953 |
+
|
1954 |
+
60% {
|
1955 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
1956 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
1957 |
+
opacity: 1;
|
1958 |
+
}
|
1959 |
+
|
1960 |
+
80% {
|
1961 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
1962 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
1963 |
+
}
|
1964 |
+
|
1965 |
+
100% {
|
1966 |
+
-webkit-transform: perspective(400px);
|
1967 |
+
transform: perspective(400px);
|
1968 |
+
}
|
1969 |
+
}
|
1970 |
+
|
1971 |
+
@keyframes flipInX {
|
1972 |
+
0% {
|
1973 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
1974 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
1975 |
+
-webkit-transition-timing-function: ease-in;
|
1976 |
+
transition-timing-function: ease-in;
|
1977 |
+
opacity: 0;
|
1978 |
+
}
|
1979 |
+
|
1980 |
+
40% {
|
1981 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
1982 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
1983 |
+
-webkit-transition-timing-function: ease-in;
|
1984 |
+
transition-timing-function: ease-in;
|
1985 |
+
}
|
1986 |
+
|
1987 |
+
60% {
|
1988 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
1989 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
1990 |
+
opacity: 1;
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
80% {
|
1994 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
1995 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
1996 |
+
}
|
1997 |
+
|
1998 |
+
100% {
|
1999 |
+
-webkit-transform: perspective(400px);
|
2000 |
+
transform: perspective(400px);
|
2001 |
+
}
|
2002 |
+
}
|
2003 |
+
|
2004 |
+
.flipInX {
|
2005 |
+
-webkit-backface-visibility: visible !important;
|
2006 |
+
backface-visibility: visible !important;
|
2007 |
+
-webkit-animation-name: flipInX;
|
2008 |
+
animation-name: flipInX;
|
2009 |
+
}
|
2010 |
+
|
2011 |
+
@-webkit-keyframes flipInY {
|
2012 |
+
0% {
|
2013 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2014 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2015 |
+
-webkit-transition-timing-function: ease-in;
|
2016 |
+
transition-timing-function: ease-in;
|
2017 |
+
opacity: 0;
|
2018 |
+
}
|
2019 |
+
|
2020 |
+
40% {
|
2021 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
|
2022 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
|
2023 |
+
-webkit-transition-timing-function: ease-in;
|
2024 |
+
transition-timing-function: ease-in;
|
2025 |
+
}
|
2026 |
+
|
2027 |
+
60% {
|
2028 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
|
2029 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
|
2030 |
+
opacity: 1;
|
2031 |
+
}
|
2032 |
+
|
2033 |
+
80% {
|
2034 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
|
2035 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
|
2036 |
+
}
|
2037 |
+
|
2038 |
+
100% {
|
2039 |
+
-webkit-transform: perspective(400px);
|
2040 |
+
transform: perspective(400px);
|
2041 |
+
}
|
2042 |
+
}
|
2043 |
+
|
2044 |
+
@keyframes flipInY {
|
2045 |
+
0% {
|
2046 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2047 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2048 |
+
-webkit-transition-timing-function: ease-in;
|
2049 |
+
transition-timing-function: ease-in;
|
2050 |
+
opacity: 0;
|
2051 |
+
}
|
2052 |
+
|
2053 |
+
40% {
|
2054 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
|
2055 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
|
2056 |
+
-webkit-transition-timing-function: ease-in;
|
2057 |
+
transition-timing-function: ease-in;
|
2058 |
+
}
|
2059 |
+
|
2060 |
+
60% {
|
2061 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
|
2062 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
|
2063 |
+
opacity: 1;
|
2064 |
+
}
|
2065 |
+
|
2066 |
+
80% {
|
2067 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
|
2068 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
|
2069 |
+
}
|
2070 |
+
|
2071 |
+
100% {
|
2072 |
+
-webkit-transform: perspective(400px);
|
2073 |
+
transform: perspective(400px);
|
2074 |
+
}
|
2075 |
+
}
|
2076 |
+
|
2077 |
+
.flipInY {
|
2078 |
+
-webkit-backface-visibility: visible !important;
|
2079 |
+
backface-visibility: visible !important;
|
2080 |
+
-webkit-animation-name: flipInY;
|
2081 |
+
animation-name: flipInY;
|
2082 |
+
}
|
2083 |
+
|
2084 |
+
@-webkit-keyframes flipOutX {
|
2085 |
+
0% {
|
2086 |
+
-webkit-transform: perspective(400px);
|
2087 |
+
transform: perspective(400px);
|
2088 |
+
}
|
2089 |
+
|
2090 |
+
30% {
|
2091 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
2092 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
2093 |
+
opacity: 1;
|
2094 |
+
}
|
2095 |
+
|
2096 |
+
100% {
|
2097 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
2098 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
2099 |
+
opacity: 0;
|
2100 |
+
}
|
2101 |
+
}
|
2102 |
+
|
2103 |
+
@keyframes flipOutX {
|
2104 |
+
0% {
|
2105 |
+
-webkit-transform: perspective(400px);
|
2106 |
+
transform: perspective(400px);
|
2107 |
+
}
|
2108 |
+
|
2109 |
+
30% {
|
2110 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
2111 |
+
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
2112 |
+
opacity: 1;
|
2113 |
+
}
|
2114 |
+
|
2115 |
+
100% {
|
2116 |
+
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
2117 |
+
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
2118 |
+
opacity: 0;
|
2119 |
+
}
|
2120 |
+
}
|
2121 |
+
|
2122 |
+
.flipOutX {
|
2123 |
+
-webkit-animation-name: flipOutX;
|
2124 |
+
animation-name: flipOutX;
|
2125 |
+
-webkit-animation-duration: .75s;
|
2126 |
+
animation-duration: .75s;
|
2127 |
+
-webkit-backface-visibility: visible !important;
|
2128 |
+
backface-visibility: visible !important;
|
2129 |
+
}
|
2130 |
+
|
2131 |
+
@-webkit-keyframes flipOutY {
|
2132 |
+
0% {
|
2133 |
+
-webkit-transform: perspective(400px);
|
2134 |
+
transform: perspective(400px);
|
2135 |
+
}
|
2136 |
+
|
2137 |
+
30% {
|
2138 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
|
2139 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
|
2140 |
+
opacity: 1;
|
2141 |
+
}
|
2142 |
+
|
2143 |
+
100% {
|
2144 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2145 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2146 |
+
opacity: 0;
|
2147 |
+
}
|
2148 |
+
}
|
2149 |
+
|
2150 |
+
@keyframes flipOutY {
|
2151 |
+
0% {
|
2152 |
+
-webkit-transform: perspective(400px);
|
2153 |
+
transform: perspective(400px);
|
2154 |
+
}
|
2155 |
+
|
2156 |
+
30% {
|
2157 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
|
2158 |
+
transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
|
2159 |
+
opacity: 1;
|
2160 |
+
}
|
2161 |
+
|
2162 |
+
100% {
|
2163 |
+
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2164 |
+
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
2165 |
+
opacity: 0;
|
2166 |
+
}
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
.flipOutY {
|
2170 |
+
-webkit-backface-visibility: visible !important;
|
2171 |
+
backface-visibility: visible !important;
|
2172 |
+
-webkit-animation-name: flipOutY;
|
2173 |
+
animation-name: flipOutY;
|
2174 |
+
-webkit-animation-duration: .75s;
|
2175 |
+
animation-duration: .75s;
|
2176 |
+
}
|
2177 |
+
|
2178 |
+
@-webkit-keyframes lightSpeedIn {
|
2179 |
+
0% {
|
2180 |
+
-webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
|
2181 |
+
transform: translate3d(100%, 0, 0) skewX(-30deg);
|
2182 |
+
opacity: 0;
|
2183 |
+
}
|
2184 |
+
|
2185 |
+
60% {
|
2186 |
+
-webkit-transform: skewX(20deg);
|
2187 |
+
transform: skewX(20deg);
|
2188 |
+
opacity: 1;
|
2189 |
+
}
|
2190 |
+
|
2191 |
+
80% {
|
2192 |
+
-webkit-transform: skewX(-5deg);
|
2193 |
+
transform: skewX(-5deg);
|
2194 |
+
opacity: 1;
|
2195 |
+
}
|
2196 |
+
|
2197 |
+
100% {
|
2198 |
+
-webkit-transform: none;
|
2199 |
+
transform: none;
|
2200 |
+
opacity: 1;
|
2201 |
+
}
|
2202 |
+
}
|
2203 |
+
|
2204 |
+
@keyframes lightSpeedIn {
|
2205 |
+
0% {
|
2206 |
+
-webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
|
2207 |
+
transform: translate3d(100%, 0, 0) skewX(-30deg);
|
2208 |
+
opacity: 0;
|
2209 |
+
}
|
2210 |
+
|
2211 |
+
60% {
|
2212 |
+
-webkit-transform: skewX(20deg);
|
2213 |
+
transform: skewX(20deg);
|
2214 |
+
opacity: 1;
|
2215 |
+
}
|
2216 |
+
|
2217 |
+
80% {
|
2218 |
+
-webkit-transform: skewX(-5deg);
|
2219 |
+
transform: skewX(-5deg);
|
2220 |
+
opacity: 1;
|
2221 |
+
}
|
2222 |
+
|
2223 |
+
100% {
|
2224 |
+
-webkit-transform: none;
|
2225 |
+
transform: none;
|
2226 |
+
opacity: 1;
|
2227 |
+
}
|
2228 |
+
}
|
2229 |
+
|
2230 |
+
.lightSpeedIn {
|
2231 |
+
-webkit-animation-name: lightSpeedIn;
|
2232 |
+
animation-name: lightSpeedIn;
|
2233 |
+
-webkit-animation-timing-function: ease-out;
|
2234 |
+
animation-timing-function: ease-out;
|
2235 |
+
}
|
2236 |
+
|
2237 |
+
@-webkit-keyframes lightSpeedOut {
|
2238 |
+
0% {
|
2239 |
+
opacity: 1;
|
2240 |
+
}
|
2241 |
+
|
2242 |
+
100% {
|
2243 |
+
-webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
|
2244 |
+
transform: translate3d(100%, 0, 0) skewX(30deg);
|
2245 |
+
opacity: 0;
|
2246 |
+
}
|
2247 |
+
}
|
2248 |
+
|
2249 |
+
@keyframes lightSpeedOut {
|
2250 |
+
0% {
|
2251 |
+
opacity: 1;
|
2252 |
+
}
|
2253 |
+
|
2254 |
+
100% {
|
2255 |
+
-webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
|
2256 |
+
transform: translate3d(100%, 0, 0) skewX(30deg);
|
2257 |
+
opacity: 0;
|
2258 |
+
}
|
2259 |
+
}
|
2260 |
+
|
2261 |
+
.lightSpeedOut {
|
2262 |
+
-webkit-animation-name: lightSpeedOut;
|
2263 |
+
animation-name: lightSpeedOut;
|
2264 |
+
-webkit-animation-timing-function: ease-in;
|
2265 |
+
animation-timing-function: ease-in;
|
2266 |
+
}
|
2267 |
+
|
2268 |
+
@-webkit-keyframes rotateIn {
|
2269 |
+
0% {
|
2270 |
+
-webkit-transform-origin: center;
|
2271 |
+
transform-origin: center;
|
2272 |
+
-webkit-transform: rotate3d(0, 0, 1, -200deg);
|
2273 |
+
transform: rotate3d(0, 0, 1, -200deg);
|
2274 |
+
opacity: 0;
|
2275 |
+
}
|
2276 |
+
|
2277 |
+
100% {
|
2278 |
+
-webkit-transform-origin: center;
|
2279 |
+
transform-origin: center;
|
2280 |
+
-webkit-transform: none;
|
2281 |
+
transform: none;
|
2282 |
+
opacity: 1;
|
2283 |
+
}
|
2284 |
+
}
|
2285 |
+
|
2286 |
+
@keyframes rotateIn {
|
2287 |
+
0% {
|
2288 |
+
-webkit-transform-origin: center;
|
2289 |
+
transform-origin: center;
|
2290 |
+
-webkit-transform: rotate3d(0, 0, 1, -200deg);
|
2291 |
+
transform: rotate3d(0, 0, 1, -200deg);
|
2292 |
+
opacity: 0;
|
2293 |
+
}
|
2294 |
+
|
2295 |
+
100% {
|
2296 |
+
-webkit-transform-origin: center;
|
2297 |
+
transform-origin: center;
|
2298 |
+
-webkit-transform: none;
|
2299 |
+
transform: none;
|
2300 |
+
opacity: 1;
|
2301 |
+
}
|
2302 |
+
}
|
2303 |
+
|
2304 |
+
.rotateIn {
|
2305 |
+
-webkit-animation-name: rotateIn;
|
2306 |
+
animation-name: rotateIn;
|
2307 |
+
}
|
2308 |
+
|
2309 |
+
@-webkit-keyframes rotateInDownLeft {
|
2310 |
+
0% {
|
2311 |
+
-webkit-transform-origin: left bottom;
|
2312 |
+
transform-origin: left bottom;
|
2313 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2314 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2315 |
+
opacity: 0;
|
2316 |
+
}
|
2317 |
+
|
2318 |
+
100% {
|
2319 |
+
-webkit-transform-origin: left bottom;
|
2320 |
+
transform-origin: left bottom;
|
2321 |
+
-webkit-transform: none;
|
2322 |
+
transform: none;
|
2323 |
+
opacity: 1;
|
2324 |
+
}
|
2325 |
+
}
|
2326 |
+
|
2327 |
+
@keyframes rotateInDownLeft {
|
2328 |
+
0% {
|
2329 |
+
-webkit-transform-origin: left bottom;
|
2330 |
+
transform-origin: left bottom;
|
2331 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2332 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2333 |
+
opacity: 0;
|
2334 |
+
}
|
2335 |
+
|
2336 |
+
100% {
|
2337 |
+
-webkit-transform-origin: left bottom;
|
2338 |
+
transform-origin: left bottom;
|
2339 |
+
-webkit-transform: none;
|
2340 |
+
transform: none;
|
2341 |
+
opacity: 1;
|
2342 |
+
}
|
2343 |
+
}
|
2344 |
+
|
2345 |
+
.rotateInDownLeft {
|
2346 |
+
-webkit-animation-name: rotateInDownLeft;
|
2347 |
+
animation-name: rotateInDownLeft;
|
2348 |
+
}
|
2349 |
+
|
2350 |
+
@-webkit-keyframes rotateInDownRight {
|
2351 |
+
0% {
|
2352 |
+
-webkit-transform-origin: right bottom;
|
2353 |
+
transform-origin: right bottom;
|
2354 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2355 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2356 |
+
opacity: 0;
|
2357 |
+
}
|
2358 |
+
|
2359 |
+
100% {
|
2360 |
+
-webkit-transform-origin: right bottom;
|
2361 |
+
transform-origin: right bottom;
|
2362 |
+
-webkit-transform: none;
|
2363 |
+
transform: none;
|
2364 |
+
opacity: 1;
|
2365 |
+
}
|
2366 |
+
}
|
2367 |
+
|
2368 |
+
@keyframes rotateInDownRight {
|
2369 |
+
0% {
|
2370 |
+
-webkit-transform-origin: right bottom;
|
2371 |
+
transform-origin: right bottom;
|
2372 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2373 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2374 |
+
opacity: 0;
|
2375 |
+
}
|
2376 |
+
|
2377 |
+
100% {
|
2378 |
+
-webkit-transform-origin: right bottom;
|
2379 |
+
transform-origin: right bottom;
|
2380 |
+
-webkit-transform: none;
|
2381 |
+
transform: none;
|
2382 |
+
opacity: 1;
|
2383 |
+
}
|
2384 |
+
}
|
2385 |
+
|
2386 |
+
.rotateInDownRight {
|
2387 |
+
-webkit-animation-name: rotateInDownRight;
|
2388 |
+
animation-name: rotateInDownRight;
|
2389 |
+
}
|
2390 |
+
|
2391 |
+
@-webkit-keyframes rotateInUpLeft {
|
2392 |
+
0% {
|
2393 |
+
-webkit-transform-origin: left bottom;
|
2394 |
+
transform-origin: left bottom;
|
2395 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2396 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2397 |
+
opacity: 0;
|
2398 |
+
}
|
2399 |
+
|
2400 |
+
100% {
|
2401 |
+
-webkit-transform-origin: left bottom;
|
2402 |
+
transform-origin: left bottom;
|
2403 |
+
-webkit-transform: none;
|
2404 |
+
transform: none;
|
2405 |
+
opacity: 1;
|
2406 |
+
}
|
2407 |
+
}
|
2408 |
+
|
2409 |
+
@keyframes rotateInUpLeft {
|
2410 |
+
0% {
|
2411 |
+
-webkit-transform-origin: left bottom;
|
2412 |
+
transform-origin: left bottom;
|
2413 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2414 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2415 |
+
opacity: 0;
|
2416 |
+
}
|
2417 |
+
|
2418 |
+
100% {
|
2419 |
+
-webkit-transform-origin: left bottom;
|
2420 |
+
transform-origin: left bottom;
|
2421 |
+
-webkit-transform: none;
|
2422 |
+
transform: none;
|
2423 |
+
opacity: 1;
|
2424 |
+
}
|
2425 |
+
}
|
2426 |
+
|
2427 |
+
.rotateInUpLeft {
|
2428 |
+
-webkit-animation-name: rotateInUpLeft;
|
2429 |
+
animation-name: rotateInUpLeft;
|
2430 |
+
}
|
2431 |
+
|
2432 |
+
@-webkit-keyframes rotateInUpRight {
|
2433 |
+
0% {
|
2434 |
+
-webkit-transform-origin: right bottom;
|
2435 |
+
transform-origin: right bottom;
|
2436 |
+
-webkit-transform: rotate3d(0, 0, 1, -90deg);
|
2437 |
+
transform: rotate3d(0, 0, 1, -90deg);
|
2438 |
+
opacity: 0;
|
2439 |
+
}
|
2440 |
+
|
2441 |
+
100% {
|
2442 |
+
-webkit-transform-origin: right bottom;
|
2443 |
+
transform-origin: right bottom;
|
2444 |
+
-webkit-transform: none;
|
2445 |
+
transform: none;
|
2446 |
+
opacity: 1;
|
2447 |
+
}
|
2448 |
+
}
|
2449 |
+
|
2450 |
+
@keyframes rotateInUpRight {
|
2451 |
+
0% {
|
2452 |
+
-webkit-transform-origin: right bottom;
|
2453 |
+
transform-origin: right bottom;
|
2454 |
+
-webkit-transform: rotate3d(0, 0, 1, -90deg);
|
2455 |
+
transform: rotate3d(0, 0, 1, -90deg);
|
2456 |
+
opacity: 0;
|
2457 |
+
}
|
2458 |
+
|
2459 |
+
100% {
|
2460 |
+
-webkit-transform-origin: right bottom;
|
2461 |
+
transform-origin: right bottom;
|
2462 |
+
-webkit-transform: none;
|
2463 |
+
transform: none;
|
2464 |
+
opacity: 1;
|
2465 |
+
}
|
2466 |
+
}
|
2467 |
+
|
2468 |
+
.rotateInUpRight {
|
2469 |
+
-webkit-animation-name: rotateInUpRight;
|
2470 |
+
animation-name: rotateInUpRight;
|
2471 |
+
}
|
2472 |
+
|
2473 |
+
@-webkit-keyframes rotateOut {
|
2474 |
+
0% {
|
2475 |
+
-webkit-transform-origin: center;
|
2476 |
+
transform-origin: center;
|
2477 |
+
opacity: 1;
|
2478 |
+
}
|
2479 |
+
|
2480 |
+
100% {
|
2481 |
+
-webkit-transform-origin: center;
|
2482 |
+
transform-origin: center;
|
2483 |
+
-webkit-transform: rotate3d(0, 0, 1, 200deg);
|
2484 |
+
transform: rotate3d(0, 0, 1, 200deg);
|
2485 |
+
opacity: 0;
|
2486 |
+
}
|
2487 |
+
}
|
2488 |
+
|
2489 |
+
@keyframes rotateOut {
|
2490 |
+
0% {
|
2491 |
+
-webkit-transform-origin: center;
|
2492 |
+
transform-origin: center;
|
2493 |
+
opacity: 1;
|
2494 |
+
}
|
2495 |
+
|
2496 |
+
100% {
|
2497 |
+
-webkit-transform-origin: center;
|
2498 |
+
transform-origin: center;
|
2499 |
+
-webkit-transform: rotate3d(0, 0, 1, 200deg);
|
2500 |
+
transform: rotate3d(0, 0, 1, 200deg);
|
2501 |
+
opacity: 0;
|
2502 |
+
}
|
2503 |
+
}
|
2504 |
+
|
2505 |
+
.rotateOut {
|
2506 |
+
-webkit-animation-name: rotateOut;
|
2507 |
+
animation-name: rotateOut;
|
2508 |
+
}
|
2509 |
+
|
2510 |
+
@-webkit-keyframes rotateOutDownLeft {
|
2511 |
+
0% {
|
2512 |
+
-webkit-transform-origin: left bottom;
|
2513 |
+
transform-origin: left bottom;
|
2514 |
+
opacity: 1;
|
2515 |
+
}
|
2516 |
+
|
2517 |
+
100% {
|
2518 |
+
-webkit-transform-origin: left bottom;
|
2519 |
+
transform-origin: left bottom;
|
2520 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2521 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2522 |
+
opacity: 0;
|
2523 |
+
}
|
2524 |
+
}
|
2525 |
+
|
2526 |
+
@keyframes rotateOutDownLeft {
|
2527 |
+
0% {
|
2528 |
+
-webkit-transform-origin: left bottom;
|
2529 |
+
transform-origin: left bottom;
|
2530 |
+
opacity: 1;
|
2531 |
+
}
|
2532 |
+
|
2533 |
+
100% {
|
2534 |
+
-webkit-transform-origin: left bottom;
|
2535 |
+
transform-origin: left bottom;
|
2536 |
+
-webkit-transform: rotate3d(0, 0, 1, 45deg);
|
2537 |
+
transform: rotate3d(0, 0, 1, 45deg);
|
2538 |
+
opacity: 0;
|
2539 |
+
}
|
2540 |
+
}
|
2541 |
+
|
2542 |
+
.rotateOutDownLeft {
|
2543 |
+
-webkit-animation-name: rotateOutDownLeft;
|
2544 |
+
animation-name: rotateOutDownLeft;
|
2545 |
+
}
|
2546 |
+
|
2547 |
+
@-webkit-keyframes rotateOutDownRight {
|
2548 |
+
0% {
|
2549 |
+
-webkit-transform-origin: right bottom;
|
2550 |
+
transform-origin: right bottom;
|
2551 |
+
opacity: 1;
|
2552 |
+
}
|
2553 |
+
|
2554 |
+
100% {
|
2555 |
+
-webkit-transform-origin: right bottom;
|
2556 |
+
transform-origin: right bottom;
|
2557 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2558 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2559 |
+
opacity: 0;
|
2560 |
+
}
|
2561 |
+
}
|
2562 |
+
|
2563 |
+
@keyframes rotateOutDownRight {
|
2564 |
+
0% {
|
2565 |
+
-webkit-transform-origin: right bottom;
|
2566 |
+
transform-origin: right bottom;
|
2567 |
+
opacity: 1;
|
2568 |
+
}
|
2569 |
+
|
2570 |
+
100% {
|
2571 |
+
-webkit-transform-origin: right bottom;
|
2572 |
+
transform-origin: right bottom;
|
2573 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2574 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2575 |
+
opacity: 0;
|
2576 |
+
}
|
2577 |
+
}
|
2578 |
+
|
2579 |
+
.rotateOutDownRight {
|
2580 |
+
-webkit-animation-name: rotateOutDownRight;
|
2581 |
+
animation-name: rotateOutDownRight;
|
2582 |
+
}
|
2583 |
+
|
2584 |
+
@-webkit-keyframes rotateOutUpLeft {
|
2585 |
+
0% {
|
2586 |
+
-webkit-transform-origin: left bottom;
|
2587 |
+
transform-origin: left bottom;
|
2588 |
+
opacity: 1;
|
2589 |
+
}
|
2590 |
+
|
2591 |
+
100% {
|
2592 |
+
-webkit-transform-origin: left bottom;
|
2593 |
+
transform-origin: left bottom;
|
2594 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2595 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2596 |
+
opacity: 0;
|
2597 |
+
}
|
2598 |
+
}
|
2599 |
+
|
2600 |
+
@keyframes rotateOutUpLeft {
|
2601 |
+
0% {
|
2602 |
+
-webkit-transform-origin: left bottom;
|
2603 |
+
transform-origin: left bottom;
|
2604 |
+
opacity: 1;
|
2605 |
+
}
|
2606 |
+
|
2607 |
+
100% {
|
2608 |
+
-webkit-transform-origin: left bottom;
|
2609 |
+
transform-origin: left bottom;
|
2610 |
+
-webkit-transform: rotate3d(0, 0, 1, -45deg);
|
2611 |
+
transform: rotate3d(0, 0, 1, -45deg);
|
2612 |
+
opacity: 0;
|
2613 |
+
}
|
2614 |
+
}
|
2615 |
+
|
2616 |
+
.rotateOutUpLeft {
|
2617 |
+
-webkit-animation-name: rotateOutUpLeft;
|
2618 |
+
animation-name: rotateOutUpLeft;
|
2619 |
+
}
|
2620 |
+
|
2621 |
+
@-webkit-keyframes rotateOutUpRight {
|
2622 |
+
0% {
|
2623 |
+
-webkit-transform-origin: right bottom;
|
2624 |
+
transform-origin: right bottom;
|
2625 |
+
opacity: 1;
|
2626 |
+
}
|
2627 |
+
|
2628 |
+
100% {
|
2629 |
+
-webkit-transform-origin: right bottom;
|
2630 |
+
transform-origin: right bottom;
|
2631 |
+
-webkit-transform: rotate3d(0, 0, 1, 90deg);
|
2632 |
+
transform: rotate3d(0, 0, 1, 90deg);
|
2633 |
+
opacity: 0;
|
2634 |
+
}
|
2635 |
+
}
|
2636 |
+
|
2637 |
+
@keyframes rotateOutUpRight {
|
2638 |
+
0% {
|
2639 |
+
-webkit-transform-origin: right bottom;
|
2640 |
+
transform-origin: right bottom;
|
2641 |
+
opacity: 1;
|
2642 |
+
}
|
2643 |
+
|
2644 |
+
100% {
|
2645 |
+
-webkit-transform-origin: right bottom;
|
2646 |
+
transform-origin: right bottom;
|
2647 |
+
-webkit-transform: rotate3d(0, 0, 1, 90deg);
|
2648 |
+
transform: rotate3d(0, 0, 1, 90deg);
|
2649 |
+
opacity: 0;
|
2650 |
+
}
|
2651 |
+
}
|
2652 |
+
|
2653 |
+
.rotateOutUpRight {
|
2654 |
+
-webkit-animation-name: rotateOutUpRight;
|
2655 |
+
animation-name: rotateOutUpRight;
|
2656 |
+
}
|
2657 |
+
|
2658 |
+
@-webkit-keyframes hinge {
|
2659 |
+
0% {
|
2660 |
+
-webkit-transform-origin: top left;
|
2661 |
+
transform-origin: top left;
|
2662 |
+
-webkit-animation-timing-function: ease-in-out;
|
2663 |
+
animation-timing-function: ease-in-out;
|
2664 |
+
}
|
2665 |
+
|
2666 |
+
20%, 60% {
|
2667 |
+
-webkit-transform: rotate3d(0, 0, 1, 80deg);
|
2668 |
+
transform: rotate3d(0, 0, 1, 80deg);
|
2669 |
+
-webkit-transform-origin: top left;
|
2670 |
+
transform-origin: top left;
|
2671 |
+
-webkit-animation-timing-function: ease-in-out;
|
2672 |
+
animation-timing-function: ease-in-out;
|
2673 |
+
}
|
2674 |
+
|
2675 |
+
40%, 80% {
|
2676 |
+
-webkit-transform: rotate3d(0, 0, 1, 60deg);
|
2677 |
+
transform: rotate3d(0, 0, 1, 60deg);
|
2678 |
+
-webkit-transform-origin: top left;
|
2679 |
+
transform-origin: top left;
|
2680 |
+
-webkit-animation-timing-function: ease-in-out;
|
2681 |
+
animation-timing-function: ease-in-out;
|
2682 |
+
opacity: 1;
|
2683 |
+
}
|
2684 |
+
|
2685 |
+
100% {
|
2686 |
+
-webkit-transform: translate3d(0, 700px, 0);
|
2687 |
+
transform: translate3d(0, 700px, 0);
|
2688 |
+
opacity: 0;
|
2689 |
+
}
|
2690 |
+
}
|
2691 |
+
|
2692 |
+
@keyframes hinge {
|
2693 |
+
0% {
|
2694 |
+
-webkit-transform-origin: top left;
|
2695 |
+
transform-origin: top left;
|
2696 |
+
-webkit-animation-timing-function: ease-in-out;
|
2697 |
+
animation-timing-function: ease-in-out;
|
2698 |
+
}
|
2699 |
+
|
2700 |
+
20%, 60% {
|
2701 |
+
-webkit-transform: rotate3d(0, 0, 1, 80deg);
|
2702 |
+
transform: rotate3d(0, 0, 1, 80deg);
|
2703 |
+
-webkit-transform-origin: top left;
|
2704 |
+
transform-origin: top left;
|
2705 |
+
-webkit-animation-timing-function: ease-in-out;
|
2706 |
+
animation-timing-function: ease-in-out;
|
2707 |
+
}
|
2708 |
+
|
2709 |
+
40%, 80% {
|
2710 |
+
-webkit-transform: rotate3d(0, 0, 1, 60deg);
|
2711 |
+
transform: rotate3d(0, 0, 1, 60deg);
|
2712 |
+
-webkit-transform-origin: top left;
|
2713 |
+
transform-origin: top left;
|
2714 |
+
-webkit-animation-timing-function: ease-in-out;
|
2715 |
+
animation-timing-function: ease-in-out;
|
2716 |
+
opacity: 1;
|
2717 |
+
}
|
2718 |
+
|
2719 |
+
100% {
|
2720 |
+
-webkit-transform: translate3d(0, 700px, 0);
|
2721 |
+
transform: translate3d(0, 700px, 0);
|
2722 |
+
opacity: 0;
|
2723 |
+
}
|
2724 |
+
}
|
2725 |
+
|
2726 |
+
.hinge {
|
2727 |
+
-webkit-animation-name: hinge;
|
2728 |
+
animation-name: hinge;
|
2729 |
+
}
|
2730 |
+
|
2731 |
+
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
2732 |
+
|
2733 |
+
@-webkit-keyframes rollIn {
|
2734 |
+
0% {
|
2735 |
+
opacity: 0;
|
2736 |
+
-webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
|
2737 |
+
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
|
2738 |
+
}
|
2739 |
+
|
2740 |
+
100% {
|
2741 |
+
opacity: 1;
|
2742 |
+
-webkit-transform: none;
|
2743 |
+
transform: none;
|
2744 |
+
}
|
2745 |
+
}
|
2746 |
+
|
2747 |
+
@keyframes rollIn {
|
2748 |
+
0% {
|
2749 |
+
opacity: 0;
|
2750 |
+
-webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
|
2751 |
+
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
|
2752 |
+
}
|
2753 |
+
|
2754 |
+
100% {
|
2755 |
+
opacity: 1;
|
2756 |
+
-webkit-transform: none;
|
2757 |
+
transform: none;
|
2758 |
+
}
|
2759 |
+
}
|
2760 |
+
|
2761 |
+
.rollIn {
|
2762 |
+
-webkit-animation-name: rollIn;
|
2763 |
+
animation-name: rollIn;
|
2764 |
+
}
|
2765 |
+
|
2766 |
+
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
2767 |
+
|
2768 |
+
@-webkit-keyframes rollOut {
|
2769 |
+
0% {
|
2770 |
+
opacity: 1;
|
2771 |
+
}
|
2772 |
+
|
2773 |
+
100% {
|
2774 |
+
opacity: 0;
|
2775 |
+
-webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
|
2776 |
+
transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
|
2777 |
+
}
|
2778 |
+
}
|
2779 |
+
|
2780 |
+
@keyframes rollOut {
|
2781 |
+
0% {
|
2782 |
+
opacity: 1;
|
2783 |
+
}
|
2784 |
+
|
2785 |
+
100% {
|
2786 |
+
opacity: 0;
|
2787 |
+
-webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
|
2788 |
+
transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
|
2789 |
+
}
|
2790 |
+
}
|
2791 |
+
|
2792 |
+
.rollOut {
|
2793 |
+
-webkit-animation-name: rollOut;
|
2794 |
+
animation-name: rollOut;
|
2795 |
+
}
|
2796 |
+
|
2797 |
+
@-webkit-keyframes zoomIn {
|
2798 |
+
0% {
|
2799 |
+
opacity: 0;
|
2800 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
2801 |
+
transform: scale3d(.3, .3, .3);
|
2802 |
+
}
|
2803 |
+
|
2804 |
+
50% {
|
2805 |
+
opacity: 1;
|
2806 |
+
}
|
2807 |
+
}
|
2808 |
+
|
2809 |
+
@keyframes zoomIn {
|
2810 |
+
0% {
|
2811 |
+
opacity: 0;
|
2812 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
2813 |
+
transform: scale3d(.3, .3, .3);
|
2814 |
+
}
|
2815 |
+
|
2816 |
+
50% {
|
2817 |
+
opacity: 1;
|
2818 |
+
}
|
2819 |
+
}
|
2820 |
+
|
2821 |
+
.zoomIn {
|
2822 |
+
-webkit-animation-name: zoomIn;
|
2823 |
+
animation-name: zoomIn;
|
2824 |
+
}
|
2825 |
+
|
2826 |
+
@-webkit-keyframes zoomInDown {
|
2827 |
+
0% {
|
2828 |
+
opacity: 0;
|
2829 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
|
2830 |
+
transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
|
2831 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2832 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2833 |
+
}
|
2834 |
+
|
2835 |
+
60% {
|
2836 |
+
opacity: 1;
|
2837 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
2838 |
+
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
2839 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2840 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2841 |
+
}
|
2842 |
+
}
|
2843 |
+
|
2844 |
+
@keyframes zoomInDown {
|
2845 |
+
0% {
|
2846 |
+
opacity: 0;
|
2847 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
|
2848 |
+
transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
|
2849 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2850 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2851 |
+
}
|
2852 |
+
|
2853 |
+
60% {
|
2854 |
+
opacity: 1;
|
2855 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
2856 |
+
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
2857 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2858 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2859 |
+
}
|
2860 |
+
}
|
2861 |
+
|
2862 |
+
.zoomInDown {
|
2863 |
+
-webkit-animation-name: zoomInDown;
|
2864 |
+
animation-name: zoomInDown;
|
2865 |
+
}
|
2866 |
+
|
2867 |
+
@-webkit-keyframes zoomInLeft {
|
2868 |
+
0% {
|
2869 |
+
opacity: 0;
|
2870 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
|
2871 |
+
transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
|
2872 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2873 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2874 |
+
}
|
2875 |
+
|
2876 |
+
60% {
|
2877 |
+
opacity: 1;
|
2878 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
|
2879 |
+
transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
|
2880 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2881 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2882 |
+
}
|
2883 |
+
}
|
2884 |
+
|
2885 |
+
@keyframes zoomInLeft {
|
2886 |
+
0% {
|
2887 |
+
opacity: 0;
|
2888 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
|
2889 |
+
transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
|
2890 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2891 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2892 |
+
}
|
2893 |
+
|
2894 |
+
60% {
|
2895 |
+
opacity: 1;
|
2896 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
|
2897 |
+
transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
|
2898 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2899 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2900 |
+
}
|
2901 |
+
}
|
2902 |
+
|
2903 |
+
.zoomInLeft {
|
2904 |
+
-webkit-animation-name: zoomInLeft;
|
2905 |
+
animation-name: zoomInLeft;
|
2906 |
+
}
|
2907 |
+
|
2908 |
+
@-webkit-keyframes zoomInRight {
|
2909 |
+
0% {
|
2910 |
+
opacity: 0;
|
2911 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
|
2912 |
+
transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
|
2913 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2914 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2915 |
+
}
|
2916 |
+
|
2917 |
+
60% {
|
2918 |
+
opacity: 1;
|
2919 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
|
2920 |
+
transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
|
2921 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2922 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2923 |
+
}
|
2924 |
+
}
|
2925 |
+
|
2926 |
+
@keyframes zoomInRight {
|
2927 |
+
0% {
|
2928 |
+
opacity: 0;
|
2929 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
|
2930 |
+
transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
|
2931 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2932 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2933 |
+
}
|
2934 |
+
|
2935 |
+
60% {
|
2936 |
+
opacity: 1;
|
2937 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
|
2938 |
+
transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
|
2939 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2940 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2941 |
+
}
|
2942 |
+
}
|
2943 |
+
|
2944 |
+
.zoomInRight {
|
2945 |
+
-webkit-animation-name: zoomInRight;
|
2946 |
+
animation-name: zoomInRight;
|
2947 |
+
}
|
2948 |
+
|
2949 |
+
@-webkit-keyframes zoomInUp {
|
2950 |
+
0% {
|
2951 |
+
opacity: 0;
|
2952 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
|
2953 |
+
transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
|
2954 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2955 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2956 |
+
}
|
2957 |
+
|
2958 |
+
60% {
|
2959 |
+
opacity: 1;
|
2960 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
2961 |
+
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
2962 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2963 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2964 |
+
}
|
2965 |
+
}
|
2966 |
+
|
2967 |
+
@keyframes zoomInUp {
|
2968 |
+
0% {
|
2969 |
+
opacity: 0;
|
2970 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
|
2971 |
+
transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
|
2972 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2973 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
2974 |
+
}
|
2975 |
+
|
2976 |
+
60% {
|
2977 |
+
opacity: 1;
|
2978 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
2979 |
+
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
2980 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2981 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
2982 |
+
}
|
2983 |
+
}
|
2984 |
+
|
2985 |
+
.zoomInUp {
|
2986 |
+
-webkit-animation-name: zoomInUp;
|
2987 |
+
animation-name: zoomInUp;
|
2988 |
+
}
|
2989 |
+
|
2990 |
+
@-webkit-keyframes zoomOut {
|
2991 |
+
0% {
|
2992 |
+
opacity: 1;
|
2993 |
+
}
|
2994 |
+
|
2995 |
+
50% {
|
2996 |
+
opacity: 0;
|
2997 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
2998 |
+
transform: scale3d(.3, .3, .3);
|
2999 |
+
}
|
3000 |
+
|
3001 |
+
100% {
|
3002 |
+
opacity: 0;
|
3003 |
+
}
|
3004 |
+
}
|
3005 |
+
|
3006 |
+
@keyframes zoomOut {
|
3007 |
+
0% {
|
3008 |
+
opacity: 1;
|
3009 |
+
}
|
3010 |
+
|
3011 |
+
50% {
|
3012 |
+
opacity: 0;
|
3013 |
+
-webkit-transform: scale3d(.3, .3, .3);
|
3014 |
+
transform: scale3d(.3, .3, .3);
|
3015 |
+
}
|
3016 |
+
|
3017 |
+
100% {
|
3018 |
+
opacity: 0;
|
3019 |
+
}
|
3020 |
+
}
|
3021 |
+
|
3022 |
+
.zoomOut {
|
3023 |
+
-webkit-animation-name: zoomOut;
|
3024 |
+
animation-name: zoomOut;
|
3025 |
+
}
|
3026 |
+
|
3027 |
+
@-webkit-keyframes zoomOutDown {
|
3028 |
+
40% {
|
3029 |
+
opacity: 1;
|
3030 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
3031 |
+
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
3032 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3033 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3034 |
+
}
|
3035 |
+
|
3036 |
+
100% {
|
3037 |
+
opacity: 0;
|
3038 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
|
3039 |
+
transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
|
3040 |
+
-webkit-transform-origin: center bottom;
|
3041 |
+
transform-origin: center bottom;
|
3042 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3043 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3044 |
+
}
|
3045 |
+
}
|
3046 |
+
|
3047 |
+
@keyframes zoomOutDown {
|
3048 |
+
40% {
|
3049 |
+
opacity: 1;
|
3050 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
3051 |
+
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
3052 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3053 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3054 |
+
}
|
3055 |
+
|
3056 |
+
100% {
|
3057 |
+
opacity: 0;
|
3058 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
|
3059 |
+
transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
|
3060 |
+
-webkit-transform-origin: center bottom;
|
3061 |
+
transform-origin: center bottom;
|
3062 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3063 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3064 |
+
}
|
3065 |
+
}
|
3066 |
+
|
3067 |
+
.zoomOutDown {
|
3068 |
+
-webkit-animation-name: zoomOutDown;
|
3069 |
+
animation-name: zoomOutDown;
|
3070 |
+
}
|
3071 |
+
|
3072 |
+
@-webkit-keyframes zoomOutLeft {
|
3073 |
+
40% {
|
3074 |
+
opacity: 1;
|
3075 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
|
3076 |
+
transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
|
3077 |
+
}
|
3078 |
+
|
3079 |
+
100% {
|
3080 |
+
opacity: 0;
|
3081 |
+
-webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
|
3082 |
+
transform: scale(.1) translate3d(-2000px, 0, 0);
|
3083 |
+
-webkit-transform-origin: left center;
|
3084 |
+
transform-origin: left center;
|
3085 |
+
}
|
3086 |
+
}
|
3087 |
+
|
3088 |
+
@keyframes zoomOutLeft {
|
3089 |
+
40% {
|
3090 |
+
opacity: 1;
|
3091 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
|
3092 |
+
transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
|
3093 |
+
}
|
3094 |
+
|
3095 |
+
100% {
|
3096 |
+
opacity: 0;
|
3097 |
+
-webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
|
3098 |
+
transform: scale(.1) translate3d(-2000px, 0, 0);
|
3099 |
+
-webkit-transform-origin: left center;
|
3100 |
+
transform-origin: left center;
|
3101 |
+
}
|
3102 |
+
}
|
3103 |
+
|
3104 |
+
.zoomOutLeft {
|
3105 |
+
-webkit-animation-name: zoomOutLeft;
|
3106 |
+
animation-name: zoomOutLeft;
|
3107 |
+
}
|
3108 |
+
|
3109 |
+
@-webkit-keyframes zoomOutRight {
|
3110 |
+
40% {
|
3111 |
+
opacity: 1;
|
3112 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
|
3113 |
+
transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
|
3114 |
+
}
|
3115 |
+
|
3116 |
+
100% {
|
3117 |
+
opacity: 0;
|
3118 |
+
-webkit-transform: scale(.1) translate3d(2000px, 0, 0);
|
3119 |
+
transform: scale(.1) translate3d(2000px, 0, 0);
|
3120 |
+
-webkit-transform-origin: right center;
|
3121 |
+
transform-origin: right center;
|
3122 |
+
}
|
3123 |
+
}
|
3124 |
+
|
3125 |
+
@keyframes zoomOutRight {
|
3126 |
+
40% {
|
3127 |
+
opacity: 1;
|
3128 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
|
3129 |
+
transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
|
3130 |
+
}
|
3131 |
+
|
3132 |
+
100% {
|
3133 |
+
opacity: 0;
|
3134 |
+
-webkit-transform: scale(.1) translate3d(2000px, 0, 0);
|
3135 |
+
transform: scale(.1) translate3d(2000px, 0, 0);
|
3136 |
+
-webkit-transform-origin: right center;
|
3137 |
+
transform-origin: right center;
|
3138 |
+
}
|
3139 |
+
}
|
3140 |
+
|
3141 |
+
.zoomOutRight {
|
3142 |
+
-webkit-animation-name: zoomOutRight;
|
3143 |
+
animation-name: zoomOutRight;
|
3144 |
+
}
|
3145 |
+
|
3146 |
+
@-webkit-keyframes zoomOutUp {
|
3147 |
+
40% {
|
3148 |
+
opacity: 1;
|
3149 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
3150 |
+
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
3151 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3152 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3153 |
+
}
|
3154 |
+
|
3155 |
+
100% {
|
3156 |
+
opacity: 0;
|
3157 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
|
3158 |
+
transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
|
3159 |
+
-webkit-transform-origin: center bottom;
|
3160 |
+
transform-origin: center bottom;
|
3161 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3162 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3163 |
+
}
|
3164 |
+
}
|
3165 |
+
|
3166 |
+
@keyframes zoomOutUp {
|
3167 |
+
40% {
|
3168 |
+
opacity: 1;
|
3169 |
+
-webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
3170 |
+
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
3171 |
+
-webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3172 |
+
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
3173 |
+
}
|
3174 |
+
|
3175 |
+
100% {
|
3176 |
+
opacity: 0;
|
3177 |
+
-webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
|
3178 |
+
transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
|
3179 |
+
-webkit-transform-origin: center bottom;
|
3180 |
+
transform-origin: center bottom;
|
3181 |
+
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3182 |
+
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
3183 |
+
}
|
3184 |
+
}
|
3185 |
+
|
3186 |
+
.zoomOutUp {
|
3187 |
+
-webkit-animation-name: zoomOutUp;
|
3188 |
+
animation-name: zoomOutUp;
|
3189 |
+
}
|
3190 |
+
|
3191 |
+
@-webkit-keyframes slideInDown {
|
3192 |
+
0% {
|
3193 |
+
-webkit-transform: translateY(-100%);
|
3194 |
+
transform: translateY(-100%);
|
3195 |
+
visibility: visible;
|
3196 |
+
}
|
3197 |
+
|
3198 |
+
100% {
|
3199 |
+
-webkit-transform: translateY(0);
|
3200 |
+
transform: translateY(0);
|
3201 |
+
}
|
3202 |
+
}
|
3203 |
+
|
3204 |
+
@keyframes slideInDown {
|
3205 |
+
0% {
|
3206 |
+
-webkit-transform: translateY(-100%);
|
3207 |
+
transform: translateY(-100%);
|
3208 |
+
visibility: visible;
|
3209 |
+
}
|
3210 |
+
|
3211 |
+
100% {
|
3212 |
+
-webkit-transform: translateY(0);
|
3213 |
+
transform: translateY(0);
|
3214 |
+
}
|
3215 |
+
}
|
3216 |
+
|
3217 |
+
.slideInDown {
|
3218 |
+
-webkit-animation-name: slideInDown;
|
3219 |
+
animation-name: slideInDown;
|
3220 |
+
}
|
3221 |
+
|
3222 |
+
@-webkit-keyframes slideInLeft {
|
3223 |
+
0% {
|
3224 |
+
-webkit-transform: translateX(-100%);
|
3225 |
+
transform: translateX(-100%);
|
3226 |
+
visibility: visible;
|
3227 |
+
}
|
3228 |
+
|
3229 |
+
100% {
|
3230 |
+
-webkit-transform: translateX(0);
|
3231 |
+
transform: translateX(0);
|
3232 |
+
}
|
3233 |
+
}
|
3234 |
+
|
3235 |
+
@keyframes slideInLeft {
|
3236 |
+
0% {
|
3237 |
+
-webkit-transform: translateX(-100%);
|
3238 |
+
transform: translateX(-100%);
|
3239 |
+
visibility: visible;
|
3240 |
+
}
|
3241 |
+
|
3242 |
+
100% {
|
3243 |
+
-webkit-transform: translateX(0);
|
3244 |
+
transform: translateX(0);
|
3245 |
+
}
|
3246 |
+
}
|
3247 |
+
|
3248 |
+
.slideInLeft {
|
3249 |
+
-webkit-animation-name: slideInLeft;
|
3250 |
+
animation-name: slideInLeft;
|
3251 |
+
}
|
3252 |
+
|
3253 |
+
@-webkit-keyframes slideInRight {
|
3254 |
+
0% {
|
3255 |
+
-webkit-transform: translateX(100%);
|
3256 |
+
transform: translateX(100%);
|
3257 |
+
visibility: visible;
|
3258 |
+
}
|
3259 |
+
|
3260 |
+
100% {
|
3261 |
+
-webkit-transform: translateX(0);
|
3262 |
+
transform: translateX(0);
|
3263 |
+
}
|
3264 |
+
}
|
3265 |
+
|
3266 |
+
@keyframes slideInRight {
|
3267 |
+
0% {
|
3268 |
+
-webkit-transform: translateX(100%);
|
3269 |
+
transform: translateX(100%);
|
3270 |
+
visibility: visible;
|
3271 |
+
}
|
3272 |
+
|
3273 |
+
100% {
|
3274 |
+
-webkit-transform: translateX(0);
|
3275 |
+
transform: translateX(0);
|
3276 |
+
}
|
3277 |
+
}
|
3278 |
+
|
3279 |
+
.slideInRight {
|
3280 |
+
-webkit-animation-name: slideInRight;
|
3281 |
+
animation-name: slideInRight;
|
3282 |
+
}
|
3283 |
+
|
3284 |
+
@-webkit-keyframes slideInUp {
|
3285 |
+
0% {
|
3286 |
+
-webkit-transform: translateY(100%);
|
3287 |
+
transform: translateY(100%);
|
3288 |
+
visibility: visible;
|
3289 |
+
}
|
3290 |
+
|
3291 |
+
100% {
|
3292 |
+
-webkit-transform: translateY(0);
|
3293 |
+
transform: translateY(0);
|
3294 |
+
}
|
3295 |
+
}
|
3296 |
+
|
3297 |
+
@keyframes slideInUp {
|
3298 |
+
0% {
|
3299 |
+
-webkit-transform: translateY(100%);
|
3300 |
+
transform: translateY(100%);
|
3301 |
+
visibility: visible;
|
3302 |
+
}
|
3303 |
+
|
3304 |
+
100% {
|
3305 |
+
-webkit-transform: translateY(0);
|
3306 |
+
transform: translateY(0);
|
3307 |
+
}
|
3308 |
+
}
|
3309 |
+
|
3310 |
+
.slideInUp {
|
3311 |
+
-webkit-animation-name: slideInUp;
|
3312 |
+
animation-name: slideInUp;
|
3313 |
+
}
|
3314 |
+
|
3315 |
+
@-webkit-keyframes slideOutDown {
|
3316 |
+
0% {
|
3317 |
+
-webkit-transform: translateY(0);
|
3318 |
+
transform: translateY(0);
|
3319 |
+
}
|
3320 |
+
|
3321 |
+
100% {
|
3322 |
+
visibility: hidden;
|
3323 |
+
-webkit-transform: translateY(100%);
|
3324 |
+
transform: translateY(100%);
|
3325 |
+
}
|
3326 |
+
}
|
3327 |
+
|
3328 |
+
@keyframes slideOutDown {
|
3329 |
+
0% {
|
3330 |
+
-webkit-transform: translateY(0);
|
3331 |
+
transform: translateY(0);
|
3332 |
+
}
|
3333 |
+
|
3334 |
+
100% {
|
3335 |
+
visibility: hidden;
|
3336 |
+
-webkit-transform: translateY(100%);
|
3337 |
+
transform: translateY(100%);
|
3338 |
+
}
|
3339 |
+
}
|
3340 |
+
|
3341 |
+
.slideOutDown {
|
3342 |
+
-webkit-animation-name: slideOutDown;
|
3343 |
+
animation-name: slideOutDown;
|
3344 |
+
}
|
3345 |
+
|
3346 |
+
@-webkit-keyframes slideOutLeft {
|
3347 |
+
0% {
|
3348 |
+
-webkit-transform: translateX(0);
|
3349 |
+
transform: translateX(0);
|
3350 |
+
}
|
3351 |
+
|
3352 |
+
100% {
|
3353 |
+
visibility: hidden;
|
3354 |
+
-webkit-transform: translateX(-100%);
|
3355 |
+
transform: translateX(-100%);
|
3356 |
+
}
|
3357 |
+
}
|
3358 |
+
|
3359 |
+
@keyframes slideOutLeft {
|
3360 |
+
0% {
|
3361 |
+
-webkit-transform: translateX(0);
|
3362 |
+
transform: translateX(0);
|
3363 |
+
}
|
3364 |
+
|
3365 |
+
100% {
|
3366 |
+
visibility: hidden;
|
3367 |
+
-webkit-transform: translateX(-100%);
|
3368 |
+
transform: translateX(-100%);
|
3369 |
+
}
|
3370 |
+
}
|
3371 |
+
|
3372 |
+
.slideOutLeft {
|
3373 |
+
-webkit-animation-name: slideOutLeft;
|
3374 |
+
animation-name: slideOutLeft;
|
3375 |
+
}
|
3376 |
+
|
3377 |
+
@-webkit-keyframes slideOutRight {
|
3378 |
+
0% {
|
3379 |
+
-webkit-transform: translateX(0);
|
3380 |
+
transform: translateX(0);
|
3381 |
+
}
|
3382 |
+
|
3383 |
+
100% {
|
3384 |
+
visibility: hidden;
|
3385 |
+
-webkit-transform: translateX(100%);
|
3386 |
+
transform: translateX(100%);
|
3387 |
+
}
|
3388 |
+
}
|
3389 |
+
|
3390 |
+
@keyframes slideOutRight {
|
3391 |
+
0% {
|
3392 |
+
-webkit-transform: translateX(0);
|
3393 |
+
transform: translateX(0);
|
3394 |
+
}
|
3395 |
+
|
3396 |
+
100% {
|
3397 |
+
visibility: hidden;
|
3398 |
+
-webkit-transform: translateX(100%);
|
3399 |
+
transform: translateX(100%);
|
3400 |
+
}
|
3401 |
+
}
|
3402 |
+
|
3403 |
+
.slideOutRight {
|
3404 |
+
-webkit-animation-name: slideOutRight;
|
3405 |
+
animation-name: slideOutRight;
|
3406 |
+
}
|
3407 |
+
|
3408 |
+
@-webkit-keyframes slideOutUp {
|
3409 |
+
0% {
|
3410 |
+
-webkit-transform: translateY(0);
|
3411 |
+
transform: translateY(0);
|
3412 |
+
}
|
3413 |
+
|
3414 |
+
100% {
|
3415 |
+
visibility: hidden;
|
3416 |
+
-webkit-transform: translateY(-100%);
|
3417 |
+
transform: translateY(-100%);
|
3418 |
+
}
|
3419 |
+
}
|
3420 |
+
|
3421 |
+
@keyframes slideOutUp {
|
3422 |
+
0% {
|
3423 |
+
-webkit-transform: translateY(0);
|
3424 |
+
transform: translateY(0);
|
3425 |
+
}
|
3426 |
+
|
3427 |
+
100% {
|
3428 |
+
visibility: hidden;
|
3429 |
+
-webkit-transform: translateY(-100%);
|
3430 |
+
transform: translateY(-100%);
|
3431 |
+
}
|
3432 |
+
}
|
3433 |
+
|
3434 |
+
.slideOutUp {
|
3435 |
+
-webkit-animation-name: slideOutUp;
|
3436 |
+
animation-name: slideOutUp;
|
3437 |
+
}
|
css/hovereffect.css
CHANGED
@@ -1,9 +1,8 @@
|
|
1 |
/*
|
2 |
CSS Name: Hovereffect Styles
|
3 |
Description: Hover Stylesheet based on the idea of Hoverbox from http://host.sonspring.com/hoverbox/
|
4 |
-
Author:
|
5 |
-
Version: 1.
|
6 |
-
|
7 |
This is a template stylesheet which doesn't support description below the thumbnails. It's a experimental version.
|
8 |
|
9 |
*/
|
@@ -72,12 +71,12 @@ This is a template stylesheet which doesn't support description below the thumbn
|
|
72 |
/* ----------- Album Styles Compact -------------*/
|
73 |
|
74 |
.ngg-album-compact {
|
75 |
-
float:left;
|
76 |
-
height:180px;
|
77 |
padding-right:6px !important;
|
78 |
-
margin:0px !important;
|
79 |
text-align:left;
|
80 |
-
width:120px;
|
|
|
|
|
81 |
}
|
82 |
|
83 |
.ngg-album-compactbox {
|
@@ -295,23 +294,42 @@ This is a template stylesheet which doesn't support description below the thumbn
|
|
295 |
.ngg-slideshow {
|
296 |
overflow:hidden;
|
297 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
}
|
299 |
|
300 |
-
.
|
301 |
-
|
|
|
302 |
}
|
303 |
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
}
|
310 |
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
margin:auto !important;
|
315 |
}
|
316 |
|
317 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: Hovereffect Styles
|
3 |
Description: Hover Stylesheet based on the idea of Hoverbox from http://host.sonspring.com/hoverbox/
|
4 |
+
Author: NextCellent and Nathan Smith
|
5 |
+
Version: 1.9.22
|
|
|
6 |
This is a template stylesheet which doesn't support description below the thumbnails. It's a experimental version.
|
7 |
|
8 |
*/
|
71 |
/* ----------- Album Styles Compact -------------*/
|
72 |
|
73 |
.ngg-album-compact {
|
|
|
|
|
74 |
padding-right:6px !important;
|
75 |
+
margin:0px !important;
|
76 |
text-align:left;
|
77 |
+
width:120px;
|
78 |
+
display:inline-block;
|
79 |
+
vertical-align:top;
|
80 |
}
|
81 |
|
82 |
.ngg-album-compactbox {
|
294 |
.ngg-slideshow {
|
295 |
overflow:hidden;
|
296 |
position: relative;
|
297 |
+
margin-left: auto;
|
298 |
+
margin-right: auto;
|
299 |
+
}
|
300 |
+
|
301 |
+
.rs-slideshow {
|
302 |
+
position: relative;
|
303 |
+
}
|
304 |
+
|
305 |
+
.rs-slideshow .slide-container {
|
306 |
+
height: 100%;
|
307 |
+
left: 0;
|
308 |
+
overflow: hidden;
|
309 |
+
position: absolute;
|
310 |
+
top: 0;
|
311 |
+
width: 100%;
|
312 |
+
}
|
313 |
+
|
314 |
+
.rs-slideshow .slide-container img {
|
315 |
+
position: absolute;
|
316 |
}
|
317 |
|
318 |
+
.rs-controls a,
|
319 |
+
.rs-index-list li {
|
320 |
+
float: left;
|
321 |
}
|
322 |
|
323 |
+
.rs-controls ul{
|
324 |
+
float: left;
|
325 |
+
list-style: none;
|
326 |
+
width: auto;
|
327 |
+
margin: 0;
|
328 |
}
|
329 |
|
330 |
+
/* Hide the slide data container */
|
331 |
+
.rs-slideshow .slides {
|
332 |
+
display: none;
|
|
|
333 |
}
|
334 |
|
335 |
/* ----------- Single picture -------------*/
|
css/ngg_dkret3.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
/*
|
2 |
CSS Name: dkret3 Theme
|
3 |
Description: NextGEN dkret3 style with a shadow effect
|
4 |
-
Author: Jörn Kretzschmar
|
5 |
-
Version: 1.
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with the theme dkret3. Modify it when your theme struggle with it,
|
@@ -60,12 +60,12 @@ it's only a template design
|
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
63 |
-
float:left;
|
64 |
-
height:180px;
|
65 |
padding-right:6px !important;
|
66 |
-
margin:0px !important;
|
67 |
text-align:left;
|
68 |
-
width:120px;
|
|
|
|
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
@@ -240,23 +240,42 @@ it's only a template design
|
|
240 |
.ngg-slideshow {
|
241 |
overflow:hidden;
|
242 |
position: relative;
|
|
|
|
|
243 |
}
|
244 |
|
245 |
-
.
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
}
|
248 |
|
249 |
-
|
250 |
-
.
|
251 |
-
|
252 |
-
|
253 |
-
|
|
|
|
|
|
|
|
|
|
|
254 |
}
|
255 |
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
margin:auto !important;
|
260 |
}
|
261 |
|
262 |
/* ----------- Single picture -------------*/
|
1 |
+
/*
|
2 |
CSS Name: dkret3 Theme
|
3 |
Description: NextGEN dkret3 style with a shadow effect
|
4 |
+
Author: Jörn Kretzschmar and NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with the theme dkret3. Modify it when your theme struggle with it,
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
|
|
|
|
63 |
padding-right:6px !important;
|
64 |
+
margin:0px !important;
|
65 |
text-align:left;
|
66 |
+
width:120px;
|
67 |
+
display:inline-block;
|
68 |
+
vertical-align:top;
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
240 |
.ngg-slideshow {
|
241 |
overflow:hidden;
|
242 |
position: relative;
|
243 |
+
margin-left: auto;
|
244 |
+
margin-right: auto;
|
245 |
}
|
246 |
|
247 |
+
.rs-slideshow {
|
248 |
+
position: relative;
|
249 |
+
}
|
250 |
+
|
251 |
+
.rs-slideshow .slide-container {
|
252 |
+
height: 100%;
|
253 |
+
left: 0;
|
254 |
+
overflow: hidden;
|
255 |
+
position: absolute;
|
256 |
+
top: 0;
|
257 |
+
width: 100%;
|
258 |
+
}
|
259 |
+
|
260 |
+
.rs-slideshow .slide-container img {
|
261 |
+
position: absolute;
|
262 |
}
|
263 |
|
264 |
+
.rs-controls a,
|
265 |
+
.rs-index-list li {
|
266 |
+
float: left;
|
267 |
+
}
|
268 |
+
|
269 |
+
.rs-controls ul{
|
270 |
+
float: left;
|
271 |
+
list-style: none;
|
272 |
+
width: auto;
|
273 |
+
margin: 0;
|
274 |
}
|
275 |
|
276 |
+
/* Hide the slide data container */
|
277 |
+
.rs-slideshow .slides {
|
278 |
+
display: none;
|
|
|
279 |
}
|
280 |
|
281 |
/* ----------- Single picture -------------*/
|
css/ngg_k2.css
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/*
|
2 |
CSS Name: K2 Theme
|
3 |
Description: NextGEN Style for K2 Theme
|
4 |
-
Author:
|
5 |
-
Version: 1.
|
6 |
-
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
9 |
it's only a template design
|
@@ -63,12 +63,12 @@ it's only a template design
|
|
63 |
/* ----------- Album Styles Compact -------------*/
|
64 |
|
65 |
.ngg-album-compact {
|
66 |
-
float:left;
|
67 |
-
height:180px;
|
68 |
padding-right:6px !important;
|
69 |
-
margin:0px !important;
|
70 |
text-align:left;
|
71 |
-
width:120px;
|
|
|
|
|
72 |
}
|
73 |
|
74 |
.ngg-album-compactbox {
|
@@ -251,23 +251,42 @@ it's only a template design
|
|
251 |
.ngg-slideshow {
|
252 |
overflow:hidden;
|
253 |
position: relative;
|
|
|
|
|
254 |
}
|
255 |
|
256 |
-
.
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
}
|
259 |
|
260 |
-
|
261 |
-
.
|
262 |
-
|
263 |
-
|
264 |
-
|
|
|
|
|
|
|
|
|
|
|
265 |
}
|
266 |
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
margin:auto !important;
|
271 |
}
|
272 |
|
273 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: K2 Theme
|
3 |
Description: NextGEN Style for K2 Theme
|
4 |
+
Author: NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
+
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
9 |
it's only a template design
|
63 |
/* ----------- Album Styles Compact -------------*/
|
64 |
|
65 |
.ngg-album-compact {
|
|
|
|
|
66 |
padding-right:6px !important;
|
67 |
+
margin:0px !important;
|
68 |
text-align:left;
|
69 |
+
width:120px;
|
70 |
+
display:inline-block;
|
71 |
+
vertical-align:top;
|
72 |
}
|
73 |
|
74 |
.ngg-album-compactbox {
|
251 |
.ngg-slideshow {
|
252 |
overflow:hidden;
|
253 |
position: relative;
|
254 |
+
margin-left: auto;
|
255 |
+
margin-right: auto;
|
256 |
}
|
257 |
|
258 |
+
.rs-slideshow {
|
259 |
+
position: relative;
|
260 |
+
}
|
261 |
+
|
262 |
+
.rs-slideshow .slide-container {
|
263 |
+
height: 100%;
|
264 |
+
left: 0;
|
265 |
+
overflow: hidden;
|
266 |
+
position: absolute;
|
267 |
+
top: 0;
|
268 |
+
width: 100%;
|
269 |
+
}
|
270 |
+
|
271 |
+
.rs-slideshow .slide-container img {
|
272 |
+
position: absolute;
|
273 |
}
|
274 |
|
275 |
+
.rs-controls a,
|
276 |
+
.rs-index-list li {
|
277 |
+
float: left;
|
278 |
+
}
|
279 |
+
|
280 |
+
.rs-controls ul{
|
281 |
+
float: left;
|
282 |
+
list-style: none;
|
283 |
+
width: auto;
|
284 |
+
margin: 0;
|
285 |
}
|
286 |
|
287 |
+
/* Hide the slide data container */
|
288 |
+
.rs-slideshow .slides {
|
289 |
+
display: none;
|
|
|
290 |
}
|
291 |
|
292 |
/* ----------- Single picture -------------*/
|
css/ngg_shadow.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/*
|
2 |
CSS Name: Shadow Effect
|
3 |
Description: NextGEN Default Style with a Shadow effect
|
4 |
-
Author:
|
5 |
-
Version: 1.
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
@@ -60,12 +60,12 @@ it's only a template design
|
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
63 |
-
float:left;
|
64 |
-
height:180px;
|
65 |
padding-right:6px !important;
|
66 |
-
margin:0px !important;
|
67 |
text-align:left;
|
68 |
-
width:120px;
|
|
|
|
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
@@ -240,23 +240,42 @@ it's only a template design
|
|
240 |
.ngg-slideshow {
|
241 |
overflow:hidden;
|
242 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
}
|
244 |
|
245 |
-
.
|
246 |
-
|
|
|
247 |
}
|
248 |
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
}
|
255 |
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
margin:auto !important;
|
260 |
}
|
261 |
|
262 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: Shadow Effect
|
3 |
Description: NextGEN Default Style with a Shadow effect
|
4 |
+
Author: NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
|
|
|
|
63 |
padding-right:6px !important;
|
64 |
+
margin:0px !important;
|
65 |
text-align:left;
|
66 |
+
width:120px;
|
67 |
+
display:inline-block;
|
68 |
+
vertical-align:top;
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
240 |
.ngg-slideshow {
|
241 |
overflow:hidden;
|
242 |
position: relative;
|
243 |
+
margin-left: auto;
|
244 |
+
margin-right: auto;
|
245 |
+
}
|
246 |
+
|
247 |
+
.rs-slideshow {
|
248 |
+
position: relative;
|
249 |
+
}
|
250 |
+
|
251 |
+
.rs-slideshow .slide-container {
|
252 |
+
height: 100%;
|
253 |
+
left: 0;
|
254 |
+
overflow: hidden;
|
255 |
+
position: absolute;
|
256 |
+
top: 0;
|
257 |
+
width: 100%;
|
258 |
+
}
|
259 |
+
|
260 |
+
.rs-slideshow .slide-container img {
|
261 |
+
position: absolute;
|
262 |
}
|
263 |
|
264 |
+
.rs-controls a,
|
265 |
+
.rs-index-list li {
|
266 |
+
float: left;
|
267 |
}
|
268 |
|
269 |
+
.rs-controls ul{
|
270 |
+
float: left;
|
271 |
+
list-style: none;
|
272 |
+
width: auto;
|
273 |
+
margin: 0;
|
274 |
}
|
275 |
|
276 |
+
/* Hide the slide data container */
|
277 |
+
.rs-slideshow .slides {
|
278 |
+
display: none;
|
|
|
279 |
}
|
280 |
|
281 |
/* ----------- Single picture -------------*/
|
css/ngg_shadow2.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/*
|
2 |
CSS Name: Shadow Effect with Description text
|
3 |
Description: NextGEN Default Style with a Shadow effect and description text below the thumbnail
|
4 |
-
Author:
|
5 |
-
Version: 1.
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
@@ -60,12 +60,12 @@ it's only a template design
|
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
63 |
-
float:left;
|
64 |
-
height:180px;
|
65 |
padding-right:6px !important;
|
66 |
-
margin:0px !important;
|
67 |
text-align:left;
|
68 |
-
width:120px;
|
|
|
|
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
@@ -248,23 +248,42 @@ it's only a template design
|
|
248 |
.ngg-slideshow {
|
249 |
overflow:hidden;
|
250 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
}
|
252 |
|
253 |
-
.
|
254 |
-
|
|
|
255 |
}
|
256 |
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
}
|
263 |
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
margin:auto !important;
|
268 |
}
|
269 |
|
270 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: Shadow Effect with Description text
|
3 |
Description: NextGEN Default Style with a Shadow effect and description text below the thumbnail
|
4 |
+
Author: NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
60 |
/* ----------- Album Styles Compact -------------*/
|
61 |
|
62 |
.ngg-album-compact {
|
|
|
|
|
63 |
padding-right:6px !important;
|
64 |
+
margin:0px !important;
|
65 |
text-align:left;
|
66 |
+
width:120px;
|
67 |
+
display:inline-block;
|
68 |
+
vertical-align:top;
|
69 |
}
|
70 |
|
71 |
.ngg-album-compactbox {
|
248 |
.ngg-slideshow {
|
249 |
overflow:hidden;
|
250 |
position: relative;
|
251 |
+
margin-left: auto;
|
252 |
+
margin-right: auto;
|
253 |
+
}
|
254 |
+
|
255 |
+
.rs-slideshow {
|
256 |
+
position: relative;
|
257 |
+
}
|
258 |
+
|
259 |
+
.rs-slideshow .slide-container {
|
260 |
+
height: 100%;
|
261 |
+
left: 0;
|
262 |
+
overflow: hidden;
|
263 |
+
position: absolute;
|
264 |
+
top: 0;
|
265 |
+
width: 100%;
|
266 |
+
}
|
267 |
+
|
268 |
+
.rs-slideshow .slide-container img {
|
269 |
+
position: absolute;
|
270 |
}
|
271 |
|
272 |
+
.rs-controls a,
|
273 |
+
.rs-index-list li {
|
274 |
+
float: left;
|
275 |
}
|
276 |
|
277 |
+
.rs-controls ul{
|
278 |
+
float: left;
|
279 |
+
list-style: none;
|
280 |
+
width: auto;
|
281 |
+
margin: 0;
|
282 |
}
|
283 |
|
284 |
+
/* Hide the slide data container */
|
285 |
+
.rs-slideshow .slides {
|
286 |
+
display: none;
|
|
|
287 |
}
|
288 |
|
289 |
/* ----------- Single picture -------------*/
|
css/nggallery.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/*
|
2 |
CSS Name: Default Styles
|
3 |
Description: NextGEN Default Gallery Stylesheet
|
4 |
-
Author:
|
5 |
-
Version:
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
@@ -75,11 +75,12 @@ html>body .ngg-album {
|
|
75 |
/* ----------- Album Styles Compact -------------*/
|
76 |
|
77 |
.ngg-album-compact {
|
78 |
-
float:left;
|
79 |
padding-right:6px !important;
|
80 |
margin:0px !important;
|
81 |
text-align:left;
|
82 |
width:120px;
|
|
|
|
|
83 |
}
|
84 |
|
85 |
.ngg-album-compactbox {
|
@@ -270,21 +271,38 @@ html>body .ngg-album {
|
|
270 |
margin-right: auto;
|
271 |
}
|
272 |
|
273 |
-
.
|
274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
|
277 |
-
|
278 |
-
.
|
279 |
-
|
280 |
-
|
281 |
-
|
|
|
|
|
|
|
|
|
|
|
282 |
}
|
283 |
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
margin:auto !important;
|
288 |
}
|
289 |
|
290 |
/* ----------- Single picture -------------*/
|
1 |
/*
|
2 |
CSS Name: Default Styles
|
3 |
Description: NextGEN Default Gallery Stylesheet
|
4 |
+
Author: NextCellent
|
5 |
+
Version: 1.9.22
|
6 |
|
7 |
This is a template stylesheet that can be used with NextGEN Gallery. I tested the
|
8 |
styles with a default theme Kubrick. Modify it when your theme struggle with it,
|
75 |
/* ----------- Album Styles Compact -------------*/
|
76 |
|
77 |
.ngg-album-compact {
|
|
|
78 |
padding-right:6px !important;
|
79 |
margin:0px !important;
|
80 |
text-align:left;
|
81 |
width:120px;
|
82 |
+
display:inline-block;
|
83 |
+
vertical-align:top;
|
84 |
}
|
85 |
|
86 |
.ngg-album-compactbox {
|
271 |
margin-right: auto;
|
272 |
}
|
273 |
|
274 |
+
.rs-slideshow {
|
275 |
+
position: relative;
|
276 |
+
}
|
277 |
+
|
278 |
+
.rs-slideshow .slide-container {
|
279 |
+
height: 100%;
|
280 |
+
left: 0;
|
281 |
+
overflow: hidden;
|
282 |
+
position: absolute;
|
283 |
+
top: 0;
|
284 |
+
width: 100%;
|
285 |
+
}
|
286 |
+
|
287 |
+
.rs-slideshow .slide-container img {
|
288 |
+
position: absolute;
|
289 |
}
|
290 |
|
291 |
+
.rs-controls a,
|
292 |
+
.rs-index-list li {
|
293 |
+
float: left;
|
294 |
+
}
|
295 |
+
|
296 |
+
.rs-controls ul{
|
297 |
+
float: left;
|
298 |
+
list-style: none;
|
299 |
+
width: auto;
|
300 |
+
margin: 0;
|
301 |
}
|
302 |
|
303 |
+
/* Hide the slide data container */
|
304 |
+
.rs-slideshow .slides {
|
305 |
+
display: none;
|
|
|
306 |
}
|
307 |
|
308 |
/* ----------- Single picture -------------*/
|
css/qunit-1.16.0.css
ADDED
@@ -0,0 +1,264 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* QUnit 1.16.0
|
3 |
+
* http://qunitjs.com/
|
4 |
+
*
|
5 |
+
* Copyright 2006, 2014 jQuery Foundation and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
* http://jquery.org/license
|
8 |
+
*
|
9 |
+
* Date: 2014-12-03T16:32Z
|
10 |
+
*/
|
11 |
+
|
12 |
+
/** Font Family and Sizes */
|
13 |
+
|
14 |
+
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
15 |
+
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
16 |
+
}
|
17 |
+
|
18 |
+
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
19 |
+
#qunit-tests { font-size: smaller; }
|
20 |
+
|
21 |
+
|
22 |
+
/** Resets */
|
23 |
+
|
24 |
+
#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
|
25 |
+
margin: 0;
|
26 |
+
padding: 0;
|
27 |
+
}
|
28 |
+
|
29 |
+
|
30 |
+
/** Header */
|
31 |
+
|
32 |
+
#qunit-header {
|
33 |
+
padding: 0.5em 0 0.5em 1em;
|
34 |
+
|
35 |
+
color: #8699A4;
|
36 |
+
background-color: #0D3349;
|
37 |
+
|
38 |
+
font-size: 1.5em;
|
39 |
+
line-height: 1em;
|
40 |
+
font-weight: 400;
|
41 |
+
|
42 |
+
border-radius: 5px 5px 0 0;
|
43 |
+
}
|
44 |
+
|
45 |
+
#qunit-header a {
|
46 |
+
text-decoration: none;
|
47 |
+
color: #C2CCD1;
|
48 |
+
}
|
49 |
+
|
50 |
+
#qunit-header a:hover,
|
51 |
+
#qunit-header a:focus {
|
52 |
+
color: #FFF;
|
53 |
+
}
|
54 |
+
|
55 |
+
#qunit-testrunner-toolbar label {
|
56 |
+
display: inline-block;
|
57 |
+
padding: 0 0.5em 0 0.1em;
|
58 |
+
}
|
59 |
+
|
60 |
+
#qunit-banner {
|
61 |
+
height: 5px;
|
62 |
+
}
|
63 |
+
|
64 |
+
#qunit-testrunner-toolbar {
|
65 |
+
padding: 0.5em 1em 0.5em 1em;
|
66 |
+
color: #5E740B;
|
67 |
+
background-color: #EEE;
|
68 |
+
overflow: hidden;
|
69 |
+
}
|
70 |
+
|
71 |
+
#qunit-userAgent {
|
72 |
+
padding: 0.5em 1em 0.5em 1em;
|
73 |
+
background-color: #2B81AF;
|
74 |
+
color: #FFF;
|
75 |
+
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
76 |
+
}
|
77 |
+
|
78 |
+
#qunit-modulefilter-container {
|
79 |
+
float: right;
|
80 |
+
}
|
81 |
+
|
82 |
+
/** Tests: Pass/Fail */
|
83 |
+
|
84 |
+
#qunit-tests {
|
85 |
+
list-style-position: inside;
|
86 |
+
}
|
87 |
+
|
88 |
+
#qunit-tests li {
|
89 |
+
padding: 0.4em 1em 0.4em 1em;
|
90 |
+
border-bottom: 1px solid #FFF;
|
91 |
+
list-style-position: inside;
|
92 |
+
}
|
93 |
+
|
94 |
+
#qunit-tests > li {
|
95 |
+
display: none;
|
96 |
+
}
|
97 |
+
|
98 |
+
#qunit-tests li.pass, #qunit-tests li.running, #qunit-tests li.fail {
|
99 |
+
display: list-item;
|
100 |
+
}
|
101 |
+
|
102 |
+
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
|
103 |
+
display: none;
|
104 |
+
}
|
105 |
+
|
106 |
+
#qunit-tests li strong {
|
107 |
+
cursor: pointer;
|
108 |
+
}
|
109 |
+
|
110 |
+
#qunit-tests li.skipped strong {
|
111 |
+
cursor: default;
|
112 |
+
}
|
113 |
+
|
114 |
+
#qunit-tests li a {
|
115 |
+
padding: 0.5em;
|
116 |
+
color: #C2CCD1;
|
117 |
+
text-decoration: none;
|
118 |
+
}
|
119 |
+
#qunit-tests li a:hover,
|
120 |
+
#qunit-tests li a:focus {
|
121 |
+
color: #000;
|
122 |
+
}
|
123 |
+
|
124 |
+
#qunit-tests li .runtime {
|
125 |
+
float: right;
|
126 |
+
font-size: smaller;
|
127 |
+
}
|
128 |
+
|
129 |
+
.qunit-assert-list {
|
130 |
+
margin-top: 0.5em;
|
131 |
+
padding: 0.5em;
|
132 |
+
|
133 |
+
background-color: #FFF;
|
134 |
+
|
135 |
+
border-radius: 5px;
|
136 |
+
}
|
137 |
+
|
138 |
+
.qunit-collapsed {
|
139 |
+
display: none;
|
140 |
+
}
|
141 |
+
|
142 |
+
#qunit-tests table {
|
143 |
+
border-collapse: collapse;
|
144 |
+
margin-top: 0.2em;
|
145 |
+
}
|
146 |
+
|
147 |
+
#qunit-tests th {
|
148 |
+
text-align: right;
|
149 |
+
vertical-align: top;
|
150 |
+
padding: 0 0.5em 0 0;
|
151 |
+
}
|
152 |
+
|
153 |
+
#qunit-tests td {
|
154 |
+
vertical-align: top;
|
155 |
+
}
|
156 |
+
|
157 |
+
#qunit-tests pre {
|
158 |
+
margin: 0;
|
159 |
+
white-space: pre-wrap;
|
160 |
+
word-wrap: break-word;
|
161 |
+
}
|
162 |
+
|
163 |
+
#qunit-tests del {
|
164 |
+
background-color: #E0F2BE;
|
165 |
+
color: #374E0C;
|
166 |
+
text-decoration: none;
|
167 |
+
}
|
168 |
+
|
169 |
+
#qunit-tests ins {
|
170 |
+
background-color: #FFCACA;
|
171 |
+
color: #500;
|
172 |
+
text-decoration: none;
|
173 |
+
}
|
174 |
+
|
175 |
+
/*** Test Counts */
|
176 |
+
|
177 |
+
#qunit-tests b.counts { color: #000; }
|
178 |
+
#qunit-tests b.passed { color: #5E740B; }
|
179 |
+
#qunit-tests b.failed { color: #710909; }
|
180 |
+
|
181 |
+
#qunit-tests li li {
|
182 |
+
padding: 5px;
|
183 |
+
background-color: #FFF;
|
184 |
+
border-bottom: none;
|
185 |
+
list-style-position: inside;
|
186 |
+
}
|
187 |
+
|
188 |
+
/*** Passing Styles */
|
189 |
+
|
190 |
+
#qunit-tests li li.pass {
|
191 |
+
color: #3C510C;
|
192 |
+
background-color: #FFF;
|
193 |
+
border-left: 10px solid #C6E746;
|
194 |
+
}
|
195 |
+
|
196 |
+
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
|
197 |
+
#qunit-tests .pass .test-name { color: #366097; }
|
198 |
+
|
199 |
+
#qunit-tests .pass .test-actual,
|
200 |
+
#qunit-tests .pass .test-expected { color: #999; }
|
201 |
+
|
202 |
+
#qunit-banner.qunit-pass { background-color: #C6E746; }
|
203 |
+
|
204 |
+
/*** Failing Styles */
|
205 |
+
|
206 |
+
#qunit-tests li li.fail {
|
207 |
+
color: #710909;
|
208 |
+
background-color: #FFF;
|
209 |
+
border-left: 10px solid #EE5757;
|
210 |
+
white-space: pre;
|
211 |
+
}
|
212 |
+
|
213 |
+
#qunit-tests > li:last-child {
|
214 |
+
border-radius: 0 0 5px 5px;
|
215 |
+
}
|
216 |
+
|
217 |
+
#qunit-tests .fail { color: #000; background-color: #EE5757; }
|
218 |
+
#qunit-tests .fail .test-name,
|
219 |
+
#qunit-tests .fail .module-name { color: #000; }
|
220 |
+
|
221 |
+
#qunit-tests .fail .test-actual { color: #EE5757; }
|
222 |
+
#qunit-tests .fail .test-expected { color: #008000; }
|
223 |
+
|
224 |
+
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
225 |
+
|
226 |
+
/*** Skipped tests */
|
227 |
+
|
228 |
+
#qunit-tests .skipped {
|
229 |
+
background-color: #EBECE9;
|
230 |
+
}
|
231 |
+
|
232 |
+
#qunit-tests .qunit-skipped-label {
|
233 |
+
background-color: #F4FF77;
|
234 |
+
display: inline-block;
|
235 |
+
font-style: normal;
|
236 |
+
color: #366097;
|
237 |
+
line-height: 1.8em;
|
238 |
+
padding: 0 0.5em;
|
239 |
+
margin: -0.4em 0.4em -0.4em 0;
|
240 |
+
}
|
241 |
+
|
242 |
+
/** Result */
|
243 |
+
|
244 |
+
#qunit-testresult {
|
245 |
+
padding: 0.5em 1em 0.5em 1em;
|
246 |
+
|
247 |
+
color: #2B81AF;
|
248 |
+
background-color: #D2E0E6;
|
249 |
+
|
250 |
+
border-bottom: 1px solid #FFF;
|
251 |
+
}
|
252 |
+
#qunit-testresult .module-name {
|
253 |
+
font-weight: 700;
|
254 |
+
}
|
255 |
+
|
256 |
+
/** Fixture */
|
257 |
+
|
258 |
+
#qunit-fixture {
|
259 |
+
position: absolute;
|
260 |
+
top: -10000px;
|
261 |
+
left: -10000px;
|
262 |
+
width: 1000px;
|
263 |
+
height: 1000px;
|
264 |
+
}
|
js/jquery.cycle.all.js
DELETED
@@ -1,1491 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
* jQuery Cycle Plugin (with Transition Definitions)
|
3 |
-
* Examples and documentation at: http://jquery.malsup.com/cycle/
|
4 |
-
* Copyright (c) 2007-2010 M. Alsup
|
5 |
-
* Version: 2.9995 (09-AUG-2011)
|
6 |
-
* Dual licensed under the MIT and GPL licenses.
|
7 |
-
* http://jquery.malsup.com/license.html
|
8 |
-
* Requires: jQuery v1.3.2 or later
|
9 |
-
*/
|
10 |
-
(function($) {
|
11 |
-
|
12 |
-
var ver = '2.9995';
|
13 |
-
|
14 |
-
// if $.support is not defined (pre jQuery 1.3) add what I need
|
15 |
-
if ($.support == undefined) {
|
16 |
-
$.support = {
|
17 |
-
opacity: !($.browser.msie)
|
18 |
-
};
|
19 |
-
}
|
20 |
-
|
21 |
-
function debug(s) {
|
22 |
-
$.fn.cycle.debug && log(s);
|
23 |
-
}
|
24 |
-
function log() {
|
25 |
-
window.console && console.log && console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
|
26 |
-
}
|
27 |
-
$.expr[':'].paused = function(el) {
|
28 |
-
return el.cyclePause;
|
29 |
-
}
|
30 |
-
|
31 |
-
|
32 |
-
// the options arg can be...
|
33 |
-
// a number - indicates an immediate transition should occur to the given slide index
|
34 |
-
// a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
|
35 |
-
// an object - properties to control the slideshow
|
36 |
-
//
|
37 |
-
// the arg2 arg can be...
|
38 |
-
// the name of an fx (only used in conjunction with a numeric value for 'options')
|
39 |
-
// the value true (only used in first arg == 'resume') and indicates
|
40 |
-
// that the resume should occur immediately (not wait for next timeout)
|
41 |
-
|
42 |
-
$.fn.cycle = function(options, arg2) {
|
43 |
-
var o = { s: this.selector, c: this.context };
|
44 |
-
|
45 |
-
// in 1.3+ we can fix mistakes with the ready state
|
46 |
-
if (this.length === 0 && options != 'stop') {
|
47 |
-
if (!$.isReady && o.s) {
|
48 |
-
log('DOM not ready, queuing slideshow');
|
49 |
-
$(function() {
|
50 |
-
$(o.s,o.c).cycle(options,arg2);
|
51 |
-
});
|
52 |
-
return this;
|
53 |
-
}
|
54 |
-
// is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
|
55 |
-
log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
|
56 |
-
return this;
|
57 |
-
}
|
58 |
-
|
59 |
-
// iterate the matched nodeset
|
60 |
-
return this.each(function() {
|
61 |
-
var opts = handleArguments(this, options, arg2);
|
62 |
-
if (opts === false)
|
63 |
-
return;
|
64 |
-
|
65 |
-
opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
|
66 |
-
|
67 |
-
// stop existing slideshow for this container (if there is one)
|
68 |
-
if (this.cycleTimeout)
|
69 |
-
clearTimeout(this.cycleTimeout);
|
70 |
-
this.cycleTimeout = this.cyclePause = 0;
|
71 |
-
|
72 |
-
var $cont = $(this);
|
73 |
-
var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
|
74 |
-
var els = $slides.get();
|
75 |
-
|
76 |
-
var opts2 = buildOptions($cont, $slides, els, opts, o);
|
77 |
-
if (opts2 === false)
|
78 |
-
return;
|
79 |
-
|
80 |
-
if (els.length < 2) {
|
81 |
-
log('terminating; too few slides: ' + els.length);
|
82 |
-
return;
|
83 |
-
}
|
84 |
-
|
85 |
-
var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards);
|
86 |
-
|
87 |
-
// if it's an auto slideshow, kick it off
|
88 |
-
if (startTime) {
|
89 |
-
startTime += (opts2.delay || 0);
|
90 |
-
if (startTime < 10)
|
91 |
-
startTime = 10;
|
92 |
-
debug('first timeout: ' + startTime);
|
93 |
-
this.cycleTimeout = setTimeout(function(){go(els,opts2,0,!opts.backwards)}, startTime);
|
94 |
-
}
|
95 |
-
});
|
96 |
-
};
|
97 |
-
|
98 |
-
function triggerPause(cont, byHover, onPager) {
|
99 |
-
var opts = $(cont).data('cycle.opts');
|
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 |
-
opts.elements && $(opts.elements).stop();
|
125 |
-
$(cont).removeData('cycle.opts');
|
126 |
-
if (options == 'destroy')
|
127 |
-
destroy(opts);
|
128 |
-
return false;
|
129 |
-
case 'toggle':
|
130 |
-
cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
|
131 |
-
checkInstantResume(cont.cyclePause, arg2, cont);
|
132 |
-
triggerPause(cont);
|
133 |
-
return false;
|
134 |
-
case 'pause':
|
135 |
-
cont.cyclePause = 1;
|
136 |
-
triggerPause(cont);
|
137 |
-
return false;
|
138 |
-
case 'resume':
|
139 |
-
cont.cyclePause = 0;
|
140 |
-
checkInstantResume(false, arg2, cont);
|
141 |
-
triggerPause(cont);
|
142 |
-
return false;
|
143 |
-
case 'prev':
|
144 |
-
case 'next':
|
145 |
-
var opts = $(cont).data('cycle.opts');
|
146 |
-
if (!opts) {
|
147 |
-
log('options not found, "prev/next" ignored');
|
148 |
-
return false;
|
149 |
-
}
|
150 |
-
$.fn.cycle[options](opts);
|
151 |
-
return false;
|
152 |
-
default:
|
153 |
-
options = { fx: options };
|
154 |
-
};
|
155 |
-
return options;
|
156 |
-
}
|
157 |
-
else if (options.constructor == Number) {
|
158 |
-
// go to the requested slide
|
159 |
-
var num = options;
|
160 |
-
options = $(cont).data('cycle.opts');
|
161 |
-
if (!options) {
|
162 |
-
log('options not found, can not advance slide');
|
163 |
-
return false;
|
164 |
-
}
|
165 |
-
if (num < 0 || num >= options.elements.length) {
|
166 |
-
log('invalid slide index: ' + num);
|
167 |
-
return false;
|
168 |
-
}
|
169 |
-
options.nextSlide = num;
|
170 |
-
if (cont.cycleTimeout) {
|
171 |
-
clearTimeout(cont.cycleTimeout);
|
172 |
-
cont.cycleTimeout = 0;
|
173 |
-
}
|
174 |
-
if (typeof arg2 == 'string')
|
175 |
-
options.oneTimeFx = arg2;
|
176 |
-
go(options.elements, options, 1, num >= options.currSlide);
|
177 |
-
return false;
|
178 |
-
}
|
179 |
-
return options;
|
180 |
-
|
181 |
-
function checkInstantResume(isPaused, arg2, cont) {
|
182 |
-
if (!isPaused && arg2 === true) { // resume now!
|
183 |
-
var options = $(cont).data('cycle.opts');
|
184 |
-
if (!options) {
|
185 |
-
log('options not found, can not resume');
|
186 |
-
return false;
|
187 |
-
}
|
188 |
-
if (cont.cycleTimeout) {
|
189 |
-
clearTimeout(cont.cycleTimeout);
|
190 |
-
cont.cycleTimeout = 0;
|
191 |
-
}
|
192 |
-
go(options.elements, options, 1, !options.backwards);
|
193 |
-
}
|
194 |
-
}
|
195 |
-
};
|
196 |
-
|
197 |
-
function removeFilter(el, opts) {
|
198 |
-
if (!$.support.opacity && opts.cleartype && el.style.filter) {
|
199 |
-
try { el.style.removeAttribute('filter'); }
|
200 |
-
catch(smother) {} // handle old opera versions
|
201 |
-
}
|
202 |
-
};
|
203 |
-
|
204 |
-
// unbind event handlers
|
205 |
-
function destroy(opts) {
|
206 |
-
if (opts.next)
|
207 |
-
$(opts.next).unbind(opts.prevNextEvent);
|
208 |
-
if (opts.prev)
|
209 |
-
$(opts.prev).unbind(opts.prevNextEvent);
|
210 |
-
|
211 |
-
if (opts.pager || opts.pagerAnchorBuilder)
|
212 |
-
$.each(opts.pagerAnchors || [], function() {
|
213 |
-
this.unbind().remove();
|
214 |
-
});
|
215 |
-
opts.pagerAnchors = null;
|
216 |
-
if (opts.destroy) // callback
|
217 |
-
opts.destroy(opts);
|
218 |
-
};
|
219 |
-
|
220 |
-
// one-time initialization
|
221 |
-
function buildOptions($cont, $slides, els, options, o) {
|
222 |
-
// support metadata plugin (v1.0 and v2.0)
|
223 |
-
var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
|
224 |
-
var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;
|
225 |
-
if (meta)
|
226 |
-
opts = $.extend(opts, meta);
|
227 |
-
if (opts.autostop)
|
228 |
-
opts.countdown = opts.autostopCount || els.length;
|
229 |
-
|
230 |
-
var cont = $cont[0];
|
231 |
-
$cont.data('cycle.opts', opts);
|
232 |
-
opts.$cont = $cont;
|
233 |
-
opts.stopCount = cont.cycleStop;
|
234 |
-
opts.elements = els;
|
235 |
-
opts.before = opts.before ? [opts.before] : [];
|
236 |
-
opts.after = opts.after ? [opts.after] : [];
|
237 |
-
|
238 |
-
// push some after callbacks
|
239 |
-
if (!$.support.opacity && opts.cleartype)
|
240 |
-
opts.after.push(function() { removeFilter(this, opts); });
|
241 |
-
if (opts.continuous)
|
242 |
-
opts.after.push(function() { go(els,opts,0,!opts.backwards); });
|
243 |
-
|
244 |
-
saveOriginalOpts(opts);
|
245 |
-
|
246 |
-
// clearType corrections
|
247 |
-
if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
|
248 |
-
clearTypeFix($slides);
|
249 |
-
|
250 |
-
// container requires non-static position so that slides can be position within
|
251 |
-
if ($cont.css('position') == 'static')
|
252 |
-
$cont.css('position', 'relative');
|
253 |
-
if (opts.width)
|
254 |
-
$cont.width(opts.width);
|
255 |
-
if (opts.height && opts.height != 'auto')
|
256 |
-
$cont.height(opts.height);
|
257 |
-
|
258 |
-
if (opts.startingSlide)
|
259 |
-
opts.startingSlide = parseInt(opts.startingSlide,10);
|
260 |
-
else if (opts.backwards)
|
261 |
-
opts.startingSlide = els.length - 1;
|
262 |
-
|
263 |
-
// if random, mix up the slide array
|
264 |
-
if (opts.random) {
|
265 |
-
opts.randomMap = [];
|
266 |
-
for (var i = 0; i < els.length; i++)
|
267 |
-
opts.randomMap.push(i);
|
268 |
-
opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
|
269 |
-
opts.randomIndex = 1;
|
270 |
-
opts.startingSlide = opts.randomMap[1];
|
271 |
-
}
|
272 |
-
else if (opts.startingSlide >= els.length)
|
273 |
-
opts.startingSlide = 0; // catch bogus input
|
274 |
-
opts.currSlide = opts.startingSlide || 0;
|
275 |
-
var first = opts.startingSlide;
|
276 |
-
|
277 |
-
// set position and zIndex on all the slides
|
278 |
-
$slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
|
279 |
-
var z;
|
280 |
-
if (opts.backwards)
|
281 |
-
z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
|
282 |
-
else
|
283 |
-
z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
|
284 |
-
$(this).css('z-index', z)
|
285 |
-
});
|
286 |
-
|
287 |
-
// make sure first slide is visible
|
288 |
-
$(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
|
289 |
-
removeFilter(els[first], opts);
|
290 |
-
|
291 |
-
// stretch slides
|
292 |
-
if (opts.fit) {
|
293 |
-
if (!opts.aspect) {
|
294 |
-
if (opts.width)
|
295 |
-
$slides.width(opts.width);
|
296 |
-
if (opts.height && opts.height != 'auto')
|
297 |
-
$slides.height(opts.height);
|
298 |
-
} else {
|
299 |
-
$slides.each(function(){
|
300 |
-
var $slide = $(this);
|
301 |
-
var ratio = (opts.aspect === true) ? $slide.width()/$slide.height() : opts.aspect;
|
302 |
-
if( opts.width && $slide.width() != opts.width ) {
|
303 |
-
$slide.width( opts.width );
|
304 |
-
$slide.height( opts.width / ratio );
|
305 |
-
}
|
306 |
-
|
307 |
-
if( opts.height && $slide.height() < opts.height ) {
|
308 |
-
$slide.height( opts.height );
|
309 |
-
$slide.width( opts.height * ratio );
|
310 |
-
}
|
311 |
-
});
|
312 |
-
}
|
313 |
-
}
|
314 |
-
|
315 |
-
if (opts.center && ((!opts.fit) || opts.aspect)) {
|
316 |
-
$slides.each(function(){
|
317 |
-
var $slide = $(this);
|
318 |
-
$slide.css({
|
319 |
-
"margin-left": opts.width ?
|
320 |
-
((opts.width - $slide.width()) / 2) + "px" :
|
321 |
-
0,
|
322 |
-
"margin-top": opts.height ?
|
323 |
-
((opts.height - $slide.height()) / 2) + "px" :
|
324 |
-
0
|
325 |
-
});
|
326 |
-
});
|
327 |
-
}
|
328 |
-
|
329 |
-
if (opts.center && !opts.fit && !opts.slideResize) {
|
330 |
-
$slides.each(function(){
|
331 |
-
var $slide = $(this);
|
332 |
-
$slide.css({
|
333 |
-
"margin-left": opts.width ? ((opts.width - $slide.width()) / 2) + "px" : 0,
|
334 |
-
"margin-top": opts.height ? ((opts.height - $slide.height()) / 2) + "px" : 0
|
335 |
-
});
|
336 |
-
});
|
337 |
-
}
|
338 |
-
|
339 |
-
// stretch container
|
340 |
-
var reshape = opts.containerResize && !$cont.innerHeight();
|
341 |
-
if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
|
342 |
-
var maxw = 0, maxh = 0;
|
343 |
-
for(var j=0; j < els.length; j++) {
|
344 |
-
var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
|
345 |
-
if (!w) w = e.offsetWidth || e.width || $e.attr('width');
|
346 |
-
if (!h) h = e.offsetHeight || e.height || $e.attr('height');
|
347 |
-
maxw = w > maxw ? w : maxw;
|
348 |
-
maxh = h > maxh ? h : maxh;
|
349 |
-
}
|
350 |
-
if (maxw > 0 && maxh > 0)
|
351 |
-
$cont.css({width:maxw+'px',height:maxh+'px'});
|
352 |
-
}
|
353 |
-
|
354 |
-
var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
|
355 |
-
if (opts.pause)
|
356 |
-
$cont.hover(
|
357 |
-
function(){
|
358 |
-
pauseFlag = true;
|
359 |
-
this.cyclePause++;
|
360 |
-
triggerPause(cont, true);
|
361 |
-
},
|
362 |
-
function(){
|
363 |
-
pauseFlag && this.cyclePause--;
|
364 |
-
triggerPause(cont, true);
|
365 |
-
}
|
366 |
-
);
|
367 |
-
|
368 |
-
if (supportMultiTransitions(opts) === false)
|
369 |
-
return false;
|
370 |
-
|
371 |
-
// apparently a lot of people use image slideshows without height/width attributes on the images.
|
372 |
-
// Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
|
373 |
-
var requeue = false;
|
374 |
-
options.requeueAttempts = options.requeueAttempts || 0;
|
375 |
-
$slides.each(function() {
|
376 |
-
// try to get height/width of each slide
|
377 |
-
var $el = $(this);
|
378 |
-
this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
|
379 |
-
this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
|
380 |
-
|
381 |
-
if ( $el.is('img') ) {
|
382 |
-
// sigh.. sniffing, hacking, shrugging... this crappy hack tries to account for what browsers do when
|
383 |
-
// an image is being downloaded and the markup did not include sizing info (height/width attributes);
|
384 |
-
// there seems to be some "default" sizes used in this situation
|
385 |
-
var loadingIE = ($.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
|
386 |
-
var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
|
387 |
-
var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
|
388 |
-
var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
|
389 |
-
// don't requeue for images that are still loading but have a valid size
|
390 |
-
if (loadingIE || loadingFF || loadingOp || loadingOther) {
|
391 |
-
if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
|
392 |
-
log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
|
393 |
-
setTimeout(function() {$(o.s,o.c).cycle(options)}, opts.requeueTimeout);
|
394 |
-
requeue = true;
|
395 |
-
return false; // break each loop
|
396 |
-
}
|
397 |
-
else {
|
398 |
-
log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
|
399 |
-
}
|
400 |
-
}
|
401 |
-
}
|
402 |
-
return true;
|
403 |
-
});
|
404 |
-
|
405 |
-
if (requeue)
|
406 |
-
return false;
|
407 |
-
|
408 |
-
opts.cssBefore = opts.cssBefore || {};
|
409 |
-
opts.cssAfter = opts.cssAfter || {};
|
410 |
-
opts.cssFirst = opts.cssFirst || {};
|
411 |
-
opts.animIn = opts.animIn || {};
|
412 |
-
opts.animOut = opts.animOut || {};
|
413 |
-
|
414 |
-
$slides.not(':eq('+first+')').css(opts.cssBefore);
|
415 |
-
$($slides[first]).css(opts.cssFirst);
|
416 |
-
|
417 |
-
if (opts.timeout) {
|
418 |
-
opts.timeout = parseInt(opts.timeout,10);
|
419 |
-
// ensure that timeout and speed settings are sane
|
420 |
-
if (opts.speed.constructor == String)
|
421 |
-
opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed,10);
|
422 |
-
if (!opts.sync)
|
423 |
-
opts.speed = opts.speed / 2;
|
424 |
-
|
425 |
-
var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
|
426 |
-
while((opts.timeout - opts.speed) < buffer) // sanitize timeout
|
427 |
-
opts.timeout += opts.speed;
|
428 |
-
}
|
429 |
-
if (opts.easing)
|
430 |
-
opts.easeIn = opts.easeOut = opts.easing;
|
431 |
-
if (!opts.speedIn)
|
432 |
-
opts.speedIn = opts.speed;
|
433 |
-
if (!opts.speedOut)
|
434 |
-
opts.speedOut = opts.speed;
|
435 |
-
|
436 |
-
opts.slideCount = els.length;
|
437 |
-
opts.currSlide = opts.lastSlide = first;
|
438 |
-
if (opts.random) {
|
439 |
-
if (++opts.randomIndex == els.length)
|
440 |
-
opts.randomIndex = 0;
|
441 |
-
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
442 |
-
}
|
443 |
-
else if (opts.backwards)
|
444 |
-
opts.nextSlide = opts.startingSlide == 0 ? (els.length-1) : opts.startingSlide-1;
|
445 |
-
else
|
446 |
-
opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
|
447 |
-
|
448 |
-
// run transition init fn
|
449 |
-
if (!opts.multiFx) {
|
450 |
-
var init = $.fn.cycle.transitions[opts.fx];
|
451 |
-
if ($.isFunction(init))
|
452 |
-
init($cont, $slides, opts);
|
453 |
-
else if (opts.fx != 'custom' && !opts.multiFx) {
|
454 |
-
log('unknown transition: ' + opts.fx,'; slideshow terminating');
|
455 |
-
return false;
|
456 |
-
}
|
457 |
-
}
|
458 |
-
|
459 |
-
// fire artificial events
|
460 |
-
var e0 = $slides[first];
|
461 |
-
if (!opts.skipInitializationCallbacks) {
|
462 |
-
if (opts.before.length)
|
463 |
-
opts.before[0].apply(e0, [e0, e0, opts, true]);
|
464 |
-
if (opts.after.length)
|
465 |
-
opts.after[0].apply(e0, [e0, e0, opts, true]);
|
466 |
-
}
|
467 |
-
if (opts.next)
|
468 |
-
$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1)});
|
469 |
-
if (opts.prev)
|
470 |
-
$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0)});
|
471 |
-
if (opts.pager || opts.pagerAnchorBuilder)
|
472 |
-
buildPager(els,opts);
|
473 |
-
|
474 |
-
exposeAddSlide(opts, els);
|
475 |
-
|
476 |
-
return opts;
|
477 |
-
};
|
478 |
-
|
479 |
-
// save off original opts so we can restore after clearing state
|
480 |
-
function saveOriginalOpts(opts) {
|
481 |
-
opts.original = { before: [], after: [] };
|
482 |
-
opts.original.cssBefore = $.extend({}, opts.cssBefore);
|
483 |
-
opts.original.cssAfter = $.extend({}, opts.cssAfter);
|
484 |
-
opts.original.animIn = $.extend({}, opts.animIn);
|
485 |
-
opts.original.animOut = $.extend({}, opts.animOut);
|
486 |
-
$.each(opts.before, function() { opts.original.before.push(this); });
|
487 |
-
$.each(opts.after, function() { opts.original.after.push(this); });
|
488 |
-
};
|
489 |
-
|
490 |
-
function supportMultiTransitions(opts) {
|
491 |
-
var i, tx, txs = $.fn.cycle.transitions;
|
492 |
-
// look for multiple effects
|
493 |
-
if (opts.fx.indexOf(',') > 0) {
|
494 |
-
opts.multiFx = true;
|
495 |
-
opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
|
496 |
-
// discard any bogus effect names
|
497 |
-
for (i=0; i < opts.fxs.length; i++) {
|
498 |
-
var fx = opts.fxs[i];
|
499 |
-
tx = txs[fx];
|
500 |
-
if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
|
501 |
-
log('discarding unknown transition: ',fx);
|
502 |
-
opts.fxs.splice(i,1);
|
503 |
-
i--;
|
504 |
-
}
|
505 |
-
}
|
506 |
-
// if we have an empty list then we threw everything away!
|
507 |
-
if (!opts.fxs.length) {
|
508 |
-
log('No valid transitions named; slideshow terminating.');
|
509 |
-
return false;
|
510 |
-
}
|
511 |
-
}
|
512 |
-
else if (opts.fx == 'all') { // auto-gen the list of transitions
|
513 |
-
opts.multiFx = true;
|
514 |
-
opts.fxs = [];
|
515 |
-
for (p in txs) {
|
516 |
-
tx = txs[p];
|
517 |
-
if (txs.hasOwnProperty(p) && $.isFunction(tx))
|
518 |
-
opts.fxs.push(p);
|
519 |
-
}
|
520 |
-
}
|
521 |
-
if (opts.multiFx && opts.randomizeEffects) {
|
522 |
-
// munge the fxs array to make effect selection random
|
523 |
-
var r1 = Math.floor(Math.random() * 20) + 30;
|
524 |
-
for (i = 0; i < r1; i++) {
|
525 |
-
var r2 = Math.floor(Math.random() * opts.fxs.length);
|
526 |
-
opts.fxs.push(opts.fxs.splice(r2,1)[0]);
|
527 |
-
}
|
528 |
-
debug('randomized fx sequence: ',opts.fxs);
|
529 |
-
}
|
530 |
-
return true;
|
531 |
-
};
|
532 |
-
|
533 |
-
// provide a mechanism for adding slides after the slideshow has started
|
534 |
-
function exposeAddSlide(opts, els) {
|
535 |
-
opts.addSlide = function(newSlide, prepend) {
|
536 |
-
var $s = $(newSlide), s = $s[0];
|
537 |
-
if (!opts.autostopCount)
|
538 |
-
opts.countdown++;
|
539 |
-
els[prepend?'unshift':'push'](s);
|
540 |
-
if (opts.els)
|
541 |
-
opts.els[prepend?'unshift':'push'](s); // shuffle needs this
|
542 |
-
opts.slideCount = els.length;
|
543 |
-
|
544 |
-
$s.css('position','absolute');
|
545 |
-
$s[prepend?'prependTo':'appendTo'](opts.$cont);
|
546 |
-
|
547 |
-
if (prepend) {
|
548 |
-
opts.currSlide++;
|
549 |
-
opts.nextSlide++;
|
550 |
-
}
|
551 |
-
|
552 |
-
if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
|
553 |
-
clearTypeFix($s);
|
554 |
-
|
555 |
-
if (opts.fit && opts.width)
|
556 |
-
$s.width(opts.width);
|
557 |
-
if (opts.fit && opts.height && opts.height != 'auto')
|
558 |
-
$s.height(opts.height);
|
559 |
-
s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
|
560 |
-
s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
|
561 |
-
|
562 |
-
$s.css(opts.cssBefore);
|
563 |
-
|
564 |
-
if (opts.pager || opts.pagerAnchorBuilder)
|
565 |
-
$.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
|
566 |
-
|
567 |
-
if ($.isFunction(opts.onAddSlide))
|
568 |
-
opts.onAddSlide($s);
|
569 |
-
else
|
570 |
-
$s.hide(); // default behavior
|
571 |
-
};
|
572 |
-
}
|
573 |
-
|
574 |
-
// reset internal state; we do this on every pass in order to support multiple effects
|
575 |
-
$.fn.cycle.resetState = function(opts, fx) {
|
576 |
-
fx = fx || opts.fx;
|
577 |
-
opts.before = []; opts.after = [];
|
578 |
-
opts.cssBefore = $.extend({}, opts.original.cssBefore);
|
579 |
-
opts.cssAfter = $.extend({}, opts.original.cssAfter);
|
580 |
-
opts.animIn = $.extend({}, opts.original.animIn);
|
581 |
-
opts.animOut = $.extend({}, opts.original.animOut);
|
582 |
-
opts.fxFn = null;
|
583 |
-
$.each(opts.original.before, function() { opts.before.push(this); });
|
584 |
-
$.each(opts.original.after, function() { opts.after.push(this); });
|
585 |
-
|
586 |
-
// re-init
|
587 |
-
var init = $.fn.cycle.transitions[fx];
|
588 |
-
if ($.isFunction(init))
|
589 |
-
init(opts.$cont, $(opts.elements), opts);
|
590 |
-
};
|
591 |
-
|
592 |
-
// this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
|
593 |
-
function go(els, opts, manual, fwd) {
|
594 |
-
// opts.busy is true if we're in the middle of an animation
|
595 |
-
if (manual && opts.busy && opts.manualTrump) {
|
596 |
-
// let manual transitions requests trump active ones
|
597 |
-
debug('manualTrump in go(), stopping active transition');
|
598 |
-
$(els).stop(true,true);
|
599 |
-
opts.busy = 0;
|
600 |
-
}
|
601 |
-
// don't begin another timeout-based transition if there is one active
|
602 |
-
if (opts.busy) {
|
603 |
-
debug('transition active, ignoring new tx request');
|
604 |
-
return;
|
605 |
-
}
|
606 |
-
|
607 |
-
var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
|
608 |
-
|
609 |
-
// stop cycling if we have an outstanding stop request
|
610 |
-
if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
|
611 |
-
return;
|
612 |
-
|
613 |
-
// check to see if we should stop cycling based on autostop options
|
614 |
-
if (!manual && !p.cyclePause && !opts.bounce &&
|
615 |
-
((opts.autostop && (--opts.countdown <= 0)) ||
|
616 |
-
(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
|
617 |
-
if (opts.end)
|
618 |
-
opts.end(opts);
|
619 |
-
return;
|
620 |
-
}
|
621 |
-
|
622 |
-
// if slideshow is paused, only transition on a manual trigger
|
623 |
-
var changed = false;
|
624 |
-
if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
|
625 |
-
changed = true;
|
626 |
-
var fx = opts.fx;
|
627 |
-
// keep trying to get the slide size if we don't have it yet
|
628 |
-
curr.cycleH = curr.cycleH || $(curr).height();
|
629 |
-
curr.cycleW = curr.cycleW || $(curr).width();
|
630 |
-
next.cycleH = next.cycleH || $(next).height();
|
631 |
-
next.cycleW = next.cycleW || $(next).width();
|
632 |
-
|
633 |
-
// support multiple transition types
|
634 |
-
if (opts.multiFx) {
|
635 |
-
if (fwd && (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length))
|
636 |
-
opts.lastFx = 0;
|
637 |
-
else if (!fwd && (opts.lastFx == undefined || --opts.lastFx < 0))
|
638 |
-
opts.lastFx = opts.fxs.length - 1;
|
639 |
-
fx = opts.fxs[opts.lastFx];
|
640 |
-
}
|
641 |
-
|
642 |
-
// one-time fx overrides apply to: $('div').cycle(3,'zoom');
|
643 |
-
if (opts.oneTimeFx) {
|
644 |
-
fx = opts.oneTimeFx;
|
645 |
-
opts.oneTimeFx = null;
|
646 |
-
}
|
647 |
-
|
648 |
-
$.fn.cycle.resetState(opts, fx);
|
649 |
-
|
650 |
-
// run the before callbacks
|
651 |
-
if (opts.before.length)
|
652 |
-
$.each(opts.before, function(i,o) {
|
653 |
-
if (p.cycleStop != opts.stopCount) return;
|
654 |
-
o.apply(next, [curr, next, opts, fwd]);
|
655 |
-
});
|
656 |
-
|
657 |
-
// stage the after callacks
|
658 |
-
var after = function() {
|
659 |
-
opts.busy = 0;
|
660 |
-
$.each(opts.after, function(i,o) {
|
661 |
-
if (p.cycleStop != opts.stopCount) return;
|
662 |
-
o.apply(next, [curr, next, opts, fwd]);
|
663 |
-
});
|
664 |
-
};
|
665 |
-
|
666 |
-
debug('tx firing('+fx+'); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
|
667 |
-
|
668 |
-
// get ready to perform the transition
|
669 |
-
opts.busy = 1;
|
670 |
-
if (opts.fxFn) // fx function provided?
|
671 |
-
opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
672 |
-
else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
|
673 |
-
$.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
674 |
-
else
|
675 |
-
$.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
676 |
-
}
|
677 |
-
|
678 |
-
if (changed || opts.nextSlide == opts.currSlide) {
|
679 |
-
// calculate the next slide
|
680 |
-
opts.lastSlide = opts.currSlide;
|
681 |
-
if (opts.random) {
|
682 |
-
opts.currSlide = opts.nextSlide;
|
683 |
-
if (++opts.randomIndex == els.length)
|
684 |
-
opts.randomIndex = 0;
|
685 |
-
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
686 |
-
if (opts.nextSlide == opts.currSlide)
|
687 |
-
opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
|
688 |
-
}
|
689 |
-
else if (opts.backwards) {
|
690 |
-
var roll = (opts.nextSlide - 1) < 0;
|
691 |
-
if (roll && opts.bounce) {
|
692 |
-
opts.backwards = !opts.backwards;
|
693 |
-
opts.nextSlide = 1;
|
694 |
-
opts.currSlide = 0;
|
695 |
-
}
|
696 |
-
else {
|
697 |
-
opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
|
698 |
-
opts.currSlide = roll ? 0 : opts.nextSlide+1;
|
699 |
-
}
|
700 |
-
}
|
701 |
-
else { // sequence
|
702 |
-
var roll = (opts.nextSlide + 1) == els.length;
|
703 |
-
if (roll && opts.bounce) {
|
704 |
-
opts.backwards = !opts.backwards;
|
705 |
-
opts.nextSlide = els.length-2;
|
706 |
-
opts.currSlide = els.length-1;
|
707 |
-
}
|
708 |
-
else {
|
709 |
-
opts.nextSlide = roll ? 0 : opts.nextSlide+1;
|
710 |
-
opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
|
711 |
-
}
|
712 |
-
}
|
713 |
-
}
|
714 |
-
if (changed && opts.pager)
|
715 |
-
opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
|
716 |
-
|
717 |
-
// stage the next transition
|
718 |
-
var ms = 0;
|
719 |
-
if (opts.timeout && !opts.continuous)
|
720 |
-
ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
|
721 |
-
else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
|
722 |
-
ms = 10;
|
723 |
-
if (ms > 0)
|
724 |
-
p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, !opts.backwards) }, ms);
|
725 |
-
};
|
726 |
-
|
727 |
-
// invoked after transition
|
728 |
-
$.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
|
729 |
-
$(pager).each(function() {
|
730 |
-
$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
|
731 |
-
});
|
732 |
-
};
|
733 |
-
|
734 |
-
// calculate timeout value for current transition
|
735 |
-
function getTimeout(curr, next, opts, fwd) {
|
736 |
-
if (opts.timeoutFn) {
|
737 |
-
// call user provided calc fn
|
738 |
-
var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
|
739 |
-
while (opts.fx != 'none' && (t - opts.speed) < 250) // sanitize timeout
|
740 |
-
t += opts.speed;
|
741 |
-
debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
|
742 |
-
if (t !== false)
|
743 |
-
return t;
|
744 |
-
}
|
745 |
-
return opts.timeout;
|
746 |
-
};
|
747 |
-
|
748 |
-
// expose next/prev function, caller must pass in state
|
749 |
-
$.fn.cycle.next = function(opts) { advance(opts,1); };
|
750 |
-
$.fn.cycle.prev = function(opts) { advance(opts,0);};
|
751 |
-
|
752 |
-
// advance slide forward or back
|
753 |
-
function advance(opts, moveForward) {
|
754 |
-
var val = moveForward ? 1 : -1;
|
755 |
-
var els = opts.elements;
|
756 |
-
var p = opts.$cont[0], timeout = p.cycleTimeout;
|
757 |
-
if (timeout) {
|
758 |
-
clearTimeout(timeout);
|
759 |
-
p.cycleTimeout = 0;
|
760 |
-
}
|
761 |
-
if (opts.random && val < 0) {
|
762 |
-
// move back to the previously display slide
|
763 |
-
opts.randomIndex--;
|
764 |
-
if (--opts.randomIndex == -2)
|
765 |
-
opts.randomIndex = els.length-2;
|
766 |
-
else if (opts.randomIndex == -1)
|
767 |
-
opts.randomIndex = els.length-1;
|
768 |
-
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
769 |
-
}
|
770 |
-
else if (opts.random) {
|
771 |
-
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
772 |
-
}
|
773 |
-
else {
|
774 |
-
opts.nextSlide = opts.currSlide + val;
|
775 |
-
if (opts.nextSlide < 0) {
|
776 |
-
if (opts.nowrap) return false;
|
777 |
-
opts.nextSlide = els.length - 1;
|
778 |
-
}
|
779 |
-
else if (opts.nextSlide >= els.length) {
|
780 |
-
if (opts.nowrap) return false;
|
781 |
-
opts.nextSlide = 0;
|
782 |
-
}
|
783 |
-
}
|
784 |
-
|
785 |
-
var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
|
786 |
-
if ($.isFunction(cb))
|
787 |
-
cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
|
788 |
-
go(els, opts, 1, moveForward);
|
789 |
-
return false;
|
790 |
-
};
|
791 |
-
|
792 |
-
function buildPager(els, opts) {
|
793 |
-
var $p = $(opts.pager);
|
794 |
-
$.each(els, function(i,o) {
|
795 |
-
$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
|
796 |
-
});
|
797 |
-
opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
|
798 |
-
};
|
799 |
-
|
800 |
-
$.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
|
801 |
-
var a;
|
802 |
-
if ($.isFunction(opts.pagerAnchorBuilder)) {
|
803 |
-
a = opts.pagerAnchorBuilder(i,el);
|
804 |
-
debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
|
805 |
-
}
|
806 |
-
else
|
807 |
-
a = '<a href="#">'+(i+1)+'</a>';
|
808 |
-
|
809 |
-
if (!a)
|
810 |
-
return;
|
811 |
-
var $a = $(a);
|
812 |
-
// don't reparent if anchor is in the dom
|
813 |
-
if ($a.parents('body').length === 0) {
|
814 |
-
var arr = [];
|
815 |
-
if ($p.length > 1) {
|
816 |
-
$p.each(function() {
|
817 |
-
var $clone = $a.clone(true);
|
818 |
-
$(this).append($clone);
|
819 |
-
arr.push($clone[0]);
|
820 |
-
});
|
821 |
-
$a = $(arr);
|
822 |
-
}
|
823 |
-
else {
|
824 |
-
$a.appendTo($p);
|
825 |
-
}
|
826 |
-
}
|
827 |
-
|
828 |
-
opts.pagerAnchors = opts.pagerAnchors || [];
|
829 |
-
opts.pagerAnchors.push($a);
|
830 |
-
|
831 |
-
var pagerFn = function(e) {
|
832 |
-
e.preventDefault();
|
833 |
-
opts.nextSlide = i;
|
834 |
-
var p = opts.$cont[0], timeout = p.cycleTimeout;
|
835 |
-
if (timeout) {
|
836 |
-
clearTimeout(timeout);
|
837 |
-
p.cycleTimeout = 0;
|
838 |
-
}
|
839 |
-
var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
|
840 |
-
if ($.isFunction(cb))
|
841 |
-
cb(opts.nextSlide, els[opts.nextSlide]);
|
842 |
-
go(els,opts,1,opts.currSlide < i); // trigger the trans
|
843 |
-
// return false; // <== allow bubble
|
844 |
-
}
|
845 |
-
|
846 |
-
if ( /mouseenter|mouseover/i.test(opts.pagerEvent) ) {
|
847 |
-
$a.hover(pagerFn, function(){/* no-op */} );
|
848 |
-
}
|
849 |
-
else {
|
850 |
-
$a.bind(opts.pagerEvent, pagerFn);
|
851 |
-
}
|
852 |
-
|
853 |
-
if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
|
854 |
-
$a.bind('click.cycle', function(){return false;}); // suppress click
|
855 |
-
|
856 |
-
var cont = opts.$cont[0];
|
857 |
-
var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
|
858 |
-
if (opts.pauseOnPagerHover) {
|
859 |
-
$a.hover(
|
860 |
-
function() {
|
861 |
-
pauseFlag = true;
|
862 |
-
cont.cyclePause++;
|
863 |
-
triggerPause(cont,true,true);
|
864 |
-
}, function() {
|
865 |
-
pauseFlag && cont.cyclePause--;
|
866 |
-
triggerPause(cont,true,true);
|
867 |
-
}
|
868 |
-
);
|
869 |
-
}
|
870 |
-
};
|
871 |
-
|
872 |
-
// helper fn to calculate the number of slides between the current and the next
|
873 |
-
$.fn.cycle.hopsFromLast = function(opts, fwd) {
|
874 |
-
var hops, l = opts.lastSlide, c = opts.currSlide;
|
875 |
-
if (fwd)
|
876 |
-
hops = c > l ? c - l : opts.slideCount - l;
|
877 |
-
else
|
878 |
-
hops = c < l ? l - c : l + opts.slideCount - c;
|
879 |
-
return hops;
|
880 |
-
};
|
881 |
-
|
882 |
-
// fix clearType problems in ie6 by setting an explicit bg color
|
883 |
-
// (otherwise text slides look horrible during a fade transition)
|
884 |
-
function clearTypeFix($slides) {
|
885 |
-
debug('applying clearType background-color hack');
|
886 |
-
function hex(s) {
|
887 |
-
s = parseInt(s,10).toString(16);
|
888 |
-
return s.length < 2 ? '0'+s : s;
|
889 |
-
};
|
890 |
-
function getBg(e) {
|
891 |
-
for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
|
892 |
-
var v = $.css(e,'background-color');
|
893 |
-
if (v && v.indexOf('rgb') >= 0 ) {
|
894 |
-
var rgb = v.match(/\d+/g);
|
895 |
-
return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
|
896 |
-
}
|
897 |
-
if (v && v != 'transparent')
|
898 |
-
return v;
|
899 |
-
}
|
900 |
-
return '#ffffff';
|
901 |
-
};
|
902 |
-
$slides.each(function() { $(this).css('background-color', getBg(this)); });
|
903 |
-
};
|
904 |
-
|
905 |
-
// reset common props before the next transition
|
906 |
-
$.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
|
907 |
-
$(opts.elements).not(curr).hide();
|
908 |
-
if (typeof opts.cssBefore.opacity == 'undefined')
|
909 |
-
opts.cssBefore.opacity = 1;
|
910 |
-
opts.cssBefore.display = 'block';
|
911 |
-
if (opts.slideResize && w !== false && next.cycleW > 0)
|
912 |
-
opts.cssBefore.width = next.cycleW;
|
913 |
-
if (opts.slideResize && h !== false && next.cycleH > 0)
|
914 |
-
opts.cssBefore.height = next.cycleH;
|
915 |
-
opts.cssAfter = opts.cssAfter || {};
|
916 |
-
opts.cssAfter.display = 'none';
|
917 |
-
$(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
|
918 |
-
$(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
|
919 |
-
};
|
920 |
-
|
921 |
-
// the actual fn for effecting a transition
|
922 |
-
$.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
|
923 |
-
var $l = $(curr), $n = $(next);
|
924 |
-
var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
|
925 |
-
$n.css(opts.cssBefore);
|
926 |
-
if (speedOverride) {
|
927 |
-
if (typeof speedOverride == 'number')
|
928 |
-
speedIn = speedOut = speedOverride;
|
929 |
-
else
|
930 |
-
speedIn = speedOut = 1;
|
931 |
-
easeIn = easeOut = null;
|
932 |
-
}
|
933 |
-
var fn = function() {
|
934 |
-
$n.animate(opts.animIn, speedIn, easeIn, function() {
|
935 |
-
cb();
|
936 |
-
});
|
937 |
-
};
|
938 |
-
$l.animate(opts.animOut, speedOut, easeOut, function() {
|
939 |
-
$l.css(opts.cssAfter);
|
940 |
-
if (!opts.sync)
|
941 |
-
fn();
|
942 |
-
});
|
943 |
-
if (opts.sync) fn();
|
944 |
-
};
|
945 |
-
|
946 |
-
// transition definitions - only fade is defined here, transition pack defines the rest
|
947 |
-
$.fn.cycle.transitions = {
|
948 |
-
fade: function($cont, $slides, opts) {
|
949 |
-
$slides.not(':eq('+opts.currSlide+')').css('opacity',0);
|
950 |
-
opts.before.push(function(curr,next,opts) {
|
951 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
952 |
-
opts.cssBefore.opacity = 0;
|
953 |
-
});
|
954 |
-
opts.animIn = { opacity: 1 };
|
955 |
-
opts.animOut = { opacity: 0 };
|
956 |
-
opts.cssBefore = { top: 0, left: 0 };
|
957 |
-
}
|
958 |
-
};
|
959 |
-
|
960 |
-
$.fn.cycle.ver = function() { return ver; };
|
961 |
-
|
962 |
-
// override these globally if you like (they are all optional)
|
963 |
-
$.fn.cycle.defaults = {
|
964 |
-
activePagerClass: 'activeSlide', // class name used for the active pager link
|
965 |
-
after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
|
966 |
-
allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
|
967 |
-
animIn: null, // properties that define how the slide animates in
|
968 |
-
animOut: null, // properties that define how the slide animates out
|
969 |
-
aspect: false, // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option)
|
970 |
-
autostop: 0, // true to end slideshow after X transitions (where X == slide count)
|
971 |
-
autostopCount: 0, // number of transitions (optionally used with autostop to define X)
|
972 |
-
backwards: false, // true to start slideshow at last slide and move backwards through the stack
|
973 |
-
before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
|
974 |
-
center: null, // set to true to have cycle add top/left margin to each slide (use with width and height options)
|
975 |
-
cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE)
|
976 |
-
cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
|
977 |
-
containerResize: 1, // resize container to fit largest slide
|
978 |
-
continuous: 0, // true to start next transition immediately after current one completes
|
979 |
-
cssAfter: null, // properties that defined the state of the slide after transitioning out
|
980 |
-
cssBefore: null, // properties that define the initial state of the slide before transitioning in
|
981 |
-
delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
|
982 |
-
easeIn: null, // easing for "in" transition
|
983 |
-
easeOut: null, // easing for "out" transition
|
984 |
-
easing: null, // easing method for both in and out transitions
|
985 |
-
end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
|
986 |
-
fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
|
987 |
-
fit: 0, // force slides to fit container
|
988 |
-
fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
|
989 |
-
fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
|
990 |
-
height: 'auto', // container height (if the 'fit' option is true, the slides will be set to this height as well)
|
991 |
-
manualTrump: true, // causes manual transition to stop an active transition instead of being ignored
|
992 |
-
metaAttr: 'cycle',// data- attribute that holds the option data for the slideshow
|
993 |
-
next: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide
|
994 |
-
nowrap: 0, // true to prevent slideshow from wrapping
|
995 |
-
onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
|
996 |
-
onPrevNextEvent: null,// callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
|
997 |
-
pager: null, // element, jQuery object, or jQuery selector string for the element to use as pager container
|
998 |
-
pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement)
|
999 |
-
pagerEvent: 'click.cycle', // name of event which drives the pager navigation
|
1000 |
-
pause: 0, // true to enable "pause on hover"
|
1001 |
-
pauseOnPagerHover: 0, // true to pause when hovering over pager link
|
1002 |
-
prev: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide
|
1003 |
-
prevNextEvent:'click.cycle',// event which drives the manual transition to the previous or next slide
|
1004 |
-
random: 0, // true for random, false for sequence (not applicable to shuffle fx)
|
1005 |
-
randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random
|
1006 |
-
requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
|
1007 |
-
requeueTimeout: 250, // ms delay for requeue
|
1008 |
-
rev: 0, // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle)
|
1009 |
-
shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 }
|
1010 |
-
skipInitializationCallbacks: false, // set to true to disable the first before/after callback that occurs prior to any transition
|
1011 |
-
slideExpr: null, // expression for selecting slides (if something other than all children is required)
|
1012 |
-
slideResize: 1, // force slide width/height to fixed size before every transition
|
1013 |
-
speed: 1000, // speed of the transition (any valid fx speed value)
|
1014 |
-
speedIn: null, // speed of the 'in' transition
|
1015 |
-
speedOut: null, // speed of the 'out' transition
|
1016 |
-
startingSlide: 0, // zero-based index of the first slide to be displayed
|
1017 |
-
sync: 1, // true if in/out transitions should occur simultaneously
|
1018 |
-
timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
|
1019 |
-
timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)
|
1020 |
-
updateActivePagerLink: null, // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
|
1021 |
-
width: null // container width (if the 'fit' option is true, the slides will be set to this width as well)
|
1022 |
-
};
|
1023 |
-
|
1024 |
-
})(jQuery);
|
1025 |
-
|
1026 |
-
|
1027 |
-
/*!
|
1028 |
-
* jQuery Cycle Plugin Transition Definitions
|
1029 |
-
* This script is a plugin for the jQuery Cycle Plugin
|
1030 |
-
* Examples and documentation at: http://malsup.com/jquery/cycle/
|
1031 |
-
* Copyright (c) 2007-2010 M. Alsup
|
1032 |
-
* Version: 2.73
|
1033 |
-
* Dual licensed under the MIT and GPL licenses:
|
1034 |
-
* http://www.opensource.org/licenses/mit-license.php
|
1035 |
-
* http://www.gnu.org/licenses/gpl.html
|
1036 |
-
*/
|
1037 |
-
(function($) {
|
1038 |
-
|
1039 |
-
//
|
1040 |
-
// These functions define slide initialization and properties for the named
|
1041 |
-
// transitions. To save file size feel free to remove any of these that you
|
1042 |
-
// don't need.
|
1043 |
-
//
|
1044 |
-
$.fn.cycle.transitions.none = function($cont, $slides, opts) {
|
1045 |
-
opts.fxFn = function(curr,next,opts,after){
|
1046 |
-
$(next).show();
|
1047 |
-
$(curr).hide();
|
1048 |
-
after();
|
1049 |
-
};
|
1050 |
-
};
|
1051 |
-
|
1052 |
-
// not a cross-fade, fadeout only fades out the top slide
|
1053 |
-
$.fn.cycle.transitions.fadeout = function($cont, $slides, opts) {
|
1054 |
-
$slides.not(':eq('+opts.currSlide+')').css({ display: 'block', 'opacity': 1 });
|
1055 |
-
opts.before.push(function(curr,next,opts,w,h,rev) {
|
1056 |
-
$(curr).css('zIndex',opts.slideCount + (!rev === true ? 1 : 0));
|
1057 |
-
$(next).css('zIndex',opts.slideCount + (!rev === true ? 0 : 1));
|
1058 |
-
});
|
1059 |
-
opts.animIn.opacity = 1;
|
1060 |
-
opts.animOut.opacity = 0;
|
1061 |
-
opts.cssBefore.opacity = 1;
|
1062 |
-
opts.cssBefore.display = 'block';
|
1063 |
-
opts.cssAfter.zIndex = 0;
|
1064 |
-
};
|
1065 |
-
|
1066 |
-
// scrollUp/Down/Left/Right
|
1067 |
-
$.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
|
1068 |
-
$cont.css('overflow','hidden');
|
1069 |
-
opts.before.push($.fn.cycle.commonReset);
|
1070 |
-
var h = $cont.height();
|
1071 |
-
opts.cssBefore.top = h;
|
1072 |
-
opts.cssBefore.left = 0;
|
1073 |
-
opts.cssFirst.top = 0;
|
1074 |
-
opts.animIn.top = 0;
|
1075 |
-
opts.animOut.top = -h;
|
1076 |
-
};
|
1077 |
-
$.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
|
1078 |
-
$cont.css('overflow','hidden');
|
1079 |
-
opts.before.push($.fn.cycle.commonReset);
|
1080 |
-
var h = $cont.height();
|
1081 |
-
opts.cssFirst.top = 0;
|
1082 |
-
opts.cssBefore.top = -h;
|
1083 |
-
opts.cssBefore.left = 0;
|
1084 |
-
opts.animIn.top = 0;
|
1085 |
-
opts.animOut.top = h;
|
1086 |
-
};
|
1087 |
-
$.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
|
1088 |
-
$cont.css('overflow','hidden');
|
1089 |
-
opts.before.push($.fn.cycle.commonReset);
|
1090 |
-
var w = $cont.width();
|
1091 |
-
opts.cssFirst.left = 0;
|
1092 |
-
opts.cssBefore.left = w;
|
1093 |
-
opts.cssBefore.top = 0;
|
1094 |
-
opts.animIn.left = 0;
|
1095 |
-
opts.animOut.left = 0-w;
|
1096 |
-
};
|
1097 |
-
$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
|
1098 |
-
$cont.css('overflow','hidden');
|
1099 |
-
opts.before.push($.fn.cycle.commonReset);
|
1100 |
-
var w = $cont.width();
|
1101 |
-
opts.cssFirst.left = 0;
|
1102 |
-
opts.cssBefore.left = -w;
|
1103 |
-
opts.cssBefore.top = 0;
|
1104 |
-
opts.animIn.left = 0;
|
1105 |
-
opts.animOut.left = w;
|
1106 |
-
};
|
1107 |
-
$.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
|
1108 |
-
$cont.css('overflow','hidden').width();
|
1109 |
-
opts.before.push(function(curr, next, opts, fwd) {
|
1110 |
-
if (opts.rev)
|
1111 |
-
fwd = !fwd;
|
1112 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1113 |
-
opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
|
1114 |
-
opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
|
1115 |
-
});
|
1116 |
-
opts.cssFirst.left = 0;
|
1117 |
-
opts.cssBefore.top = 0;
|
1118 |
-
opts.animIn.left = 0;
|
1119 |
-
opts.animOut.top = 0;
|
1120 |
-
};
|
1121 |
-
$.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
|
1122 |
-
$cont.css('overflow','hidden');
|
1123 |
-
opts.before.push(function(curr, next, opts, fwd) {
|
1124 |
-
if (opts.rev)
|
1125 |
-
fwd = !fwd;
|
1126 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1127 |
-
opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
|
1128 |
-
opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
|
1129 |
-
});
|
1130 |
-
opts.cssFirst.top = 0;
|
1131 |
-
opts.cssBefore.left = 0;
|
1132 |
-
opts.animIn.top = 0;
|
1133 |
-
opts.animOut.left = 0;
|
1134 |
-
};
|
1135 |
-
|
1136 |
-
// slideX/slideY
|
1137 |
-
$.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
|
1138 |
-
opts.before.push(function(curr, next, opts) {
|
1139 |
-
$(opts.elements).not(curr).hide();
|
1140 |
-
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1141 |
-
opts.animIn.width = next.cycleW;
|
1142 |
-
});
|
1143 |
-
opts.cssBefore.left = 0;
|
1144 |
-
opts.cssBefore.top = 0;
|
1145 |
-
opts.cssBefore.width = 0;
|
1146 |
-
opts.animIn.width = 'show';
|
1147 |
-
opts.animOut.width = 0;
|
1148 |
-
};
|
1149 |
-
$.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
|
1150 |
-
opts.before.push(function(curr, next, opts) {
|
1151 |
-
$(opts.elements).not(curr).hide();
|
1152 |
-
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1153 |
-
opts.animIn.height = next.cycleH;
|
1154 |
-
});
|
1155 |
-
opts.cssBefore.left = 0;
|
1156 |
-
opts.cssBefore.top = 0;
|
1157 |
-
opts.cssBefore.height = 0;
|
1158 |
-
opts.animIn.height = 'show';
|
1159 |
-
opts.animOut.height = 0;
|
1160 |
-
};
|
1161 |
-
|
1162 |
-
// shuffle
|
1163 |
-
$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
|
1164 |
-
var i, w = $cont.css('overflow', 'visible').width();
|
1165 |
-
$slides.css({left: 0, top: 0});
|
1166 |
-
opts.before.push(function(curr,next,opts) {
|
1167 |
-
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1168 |
-
});
|
1169 |
-
// only adjust speed once!
|
1170 |
-
if (!opts.speedAdjusted) {
|
1171 |
-
opts.speed = opts.speed / 2; // shuffle has 2 transitions
|
1172 |
-
opts.speedAdjusted = true;
|
1173 |
-
}
|
1174 |
-
opts.random = 0;
|
1175 |
-
opts.shuffle = opts.shuffle || {left:-w, top:15};
|
1176 |
-
opts.els = [];
|
1177 |
-
for (i=0; i < $slides.length; i++)
|
1178 |
-
opts.els.push($slides[i]);
|
1179 |
-
|
1180 |
-
for (i=0; i < opts.currSlide; i++)
|
1181 |
-
opts.els.push(opts.els.shift());
|
1182 |
-
|
1183 |
-
// custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
|
1184 |
-
opts.fxFn = function(curr, next, opts, cb, fwd) {
|
1185 |
-
if (opts.rev)
|
1186 |
-
fwd = !fwd;
|
1187 |
-
var $el = fwd ? $(curr) : $(next);
|
1188 |
-
$(next).css(opts.cssBefore);
|
1189 |
-
var count = opts.slideCount;
|
1190 |
-
$el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
|
1191 |
-
var hops = $.fn.cycle.hopsFromLast(opts, fwd);
|
1192 |
-
for (var k=0; k < hops; k++)
|
1193 |
-
fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
|
1194 |
-
if (fwd) {
|
1195 |
-
for (var i=0, len=opts.els.length; i < len; i++)
|
1196 |
-
$(opts.els[i]).css('z-index', len-i+count);
|
1197 |
-
}
|
1198 |
-
else {
|
1199 |
-
var z = $(curr).css('z-index');
|
1200 |
-
$el.css('z-index', parseInt(z,10)+1+count);
|
1201 |
-
}
|
1202 |
-
$el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
|
1203 |
-
$(fwd ? this : curr).hide();
|
1204 |
-
if (cb) cb();
|
1205 |
-
});
|
1206 |
-
});
|
1207 |
-
};
|
1208 |
-
$.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
|
1209 |
-
};
|
1210 |
-
|
1211 |
-
// turnUp/Down/Left/Right
|
1212 |
-
$.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
|
1213 |
-
opts.before.push(function(curr, next, opts) {
|
1214 |
-
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1215 |
-
opts.cssBefore.top = next.cycleH;
|
1216 |
-
opts.animIn.height = next.cycleH;
|
1217 |
-
opts.animOut.width = next.cycleW;
|
1218 |
-
});
|
1219 |
-
opts.cssFirst.top = 0;
|
1220 |
-
opts.cssBefore.left = 0;
|
1221 |
-
opts.cssBefore.height = 0;
|
1222 |
-
opts.animIn.top = 0;
|
1223 |
-
opts.animOut.height = 0;
|
1224 |
-
};
|
1225 |
-
$.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
|
1226 |
-
opts.before.push(function(curr, next, opts) {
|
1227 |
-
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1228 |
-
opts.animIn.height = next.cycleH;
|
1229 |
-
opts.animOut.top = curr.cycleH;
|
1230 |
-
});
|
1231 |
-
opts.cssFirst.top = 0;
|
1232 |
-
opts.cssBefore.left = 0;
|
1233 |
-
opts.cssBefore.top = 0;
|
1234 |
-
opts.cssBefore.height = 0;
|
1235 |
-
opts.animOut.height = 0;
|
1236 |
-
};
|
1237 |
-
$.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
|
1238 |
-
opts.before.push(function(curr, next, opts) {
|
1239 |
-
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1240 |
-
opts.cssBefore.left = next.cycleW;
|
1241 |
-
opts.animIn.width = next.cycleW;
|
1242 |
-
});
|
1243 |
-
opts.cssBefore.top = 0;
|
1244 |
-
opts.cssBefore.width = 0;
|
1245 |
-
opts.animIn.left = 0;
|
1246 |
-
opts.animOut.width = 0;
|
1247 |
-
};
|
1248 |
-
$.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
|
1249 |
-
opts.before.push(function(curr, next, opts) {
|
1250 |
-
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1251 |
-
opts.animIn.width = next.cycleW;
|
1252 |
-
opts.animOut.left = curr.cycleW;
|
1253 |
-
});
|
1254 |
-
$.extend(opts.cssBefore, { top: 0, left: 0, width: 0 });
|
1255 |
-
opts.animIn.left = 0;
|
1256 |
-
opts.animOut.width = 0;
|
1257 |
-
};
|
1258 |
-
|
1259 |
-
// zoom
|
1260 |
-
$.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
|
1261 |
-
opts.before.push(function(curr, next, opts) {
|
1262 |
-
$.fn.cycle.commonReset(curr,next,opts,false,false,true);
|
1263 |
-
opts.cssBefore.top = next.cycleH/2;
|
1264 |
-
opts.cssBefore.left = next.cycleW/2;
|
1265 |
-
$.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
|
1266 |
-
$.extend(opts.animOut, { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 });
|
1267 |
-
});
|
1268 |
-
opts.cssFirst.top = 0;
|
1269 |
-
opts.cssFirst.left = 0;
|
1270 |
-
opts.cssBefore.width = 0;
|
1271 |
-
opts.cssBefore.height = 0;
|
1272 |
-
};
|
1273 |
-
|
1274 |
-
// fadeZoom
|
1275 |
-
$.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
|
1276 |
-
opts.before.push(function(curr, next, opts) {
|
1277 |
-
$.fn.cycle.commonReset(curr,next,opts,false,false);
|
1278 |
-
opts.cssBefore.left = next.cycleW/2;
|
1279 |
-
opts.cssBefore.top = next.cycleH/2;
|
1280 |
-
$.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
|
1281 |
-
});
|
1282 |
-
opts.cssBefore.width = 0;
|
1283 |
-
opts.cssBefore.height = 0;
|
1284 |
-
opts.animOut.opacity = 0;
|
1285 |
-
};
|
1286 |
-
|
1287 |
-
// blindX
|
1288 |
-
$.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
|
1289 |
-
var w = $cont.css('overflow','hidden').width();
|
1290 |
-
opts.before.push(function(curr, next, opts) {
|
1291 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1292 |
-
opts.animIn.width = next.cycleW;
|
1293 |
-
opts.animOut.left = curr.cycleW;
|
1294 |
-
});
|
1295 |
-
opts.cssBefore.left = w;
|
1296 |
-
opts.cssBefore.top = 0;
|
1297 |
-
opts.animIn.left = 0;
|
1298 |
-
opts.animOut.left = w;
|
1299 |
-
};
|
1300 |
-
// blindY
|
1301 |
-
$.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
|
1302 |
-
var h = $cont.css('overflow','hidden').height();
|
1303 |
-
opts.before.push(function(curr, next, opts) {
|
1304 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1305 |
-
opts.animIn.height = next.cycleH;
|
1306 |
-
opts.animOut.top = curr.cycleH;
|
1307 |
-
});
|
1308 |
-
opts.cssBefore.top = h;
|
1309 |
-
opts.cssBefore.left = 0;
|
1310 |
-
opts.animIn.top = 0;
|
1311 |
-
opts.animOut.top = h;
|
1312 |
-
};
|
1313 |
-
// blindZ
|
1314 |
-
$.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
|
1315 |
-
var h = $cont.css('overflow','hidden').height();
|
1316 |
-
var w = $cont.width();
|
1317 |
-
opts.before.push(function(curr, next, opts) {
|
1318 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1319 |
-
opts.animIn.height = next.cycleH;
|
1320 |
-
opts.animOut.top = curr.cycleH;
|
1321 |
-
});
|
1322 |
-
opts.cssBefore.top = h;
|
1323 |
-
opts.cssBefore.left = w;
|
1324 |
-
opts.animIn.top = 0;
|
1325 |
-
opts.animIn.left = 0;
|
1326 |
-
opts.animOut.top = h;
|
1327 |
-
opts.animOut.left = w;
|
1328 |
-
};
|
1329 |
-
|
1330 |
-
// growX - grow horizontally from centered 0 width
|
1331 |
-
$.fn.cycle.transitions.growX = function($cont, $slides, opts) {
|
1332 |
-
opts.before.push(function(curr, next, opts) {
|
1333 |
-
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1334 |
-
opts.cssBefore.left = this.cycleW/2;
|
1335 |
-
opts.animIn.left = 0;
|
1336 |
-
opts.animIn.width = this.cycleW;
|
1337 |
-
opts.animOut.left = 0;
|
1338 |
-
});
|
1339 |
-
opts.cssBefore.top = 0;
|
1340 |
-
opts.cssBefore.width = 0;
|
1341 |
-
};
|
1342 |
-
// growY - grow vertically from centered 0 height
|
1343 |
-
$.fn.cycle.transitions.growY = function($cont, $slides, opts) {
|
1344 |
-
opts.before.push(function(curr, next, opts) {
|
1345 |
-
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1346 |
-
opts.cssBefore.top = this.cycleH/2;
|
1347 |
-
opts.animIn.top = 0;
|
1348 |
-
opts.animIn.height = this.cycleH;
|
1349 |
-
opts.animOut.top = 0;
|
1350 |
-
});
|
1351 |
-
opts.cssBefore.height = 0;
|
1352 |
-
opts.cssBefore.left = 0;
|
1353 |
-
};
|
1354 |
-
|
1355 |
-
// curtainX - squeeze in both edges horizontally
|
1356 |
-
$.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
|
1357 |
-
opts.before.push(function(curr, next, opts) {
|
1358 |
-
$.fn.cycle.commonReset(curr,next,opts,false,true,true);
|
1359 |
-
opts.cssBefore.left = next.cycleW/2;
|
1360 |
-
opts.animIn.left = 0;
|
1361 |
-
opts.animIn.width = this.cycleW;
|
1362 |
-
opts.animOut.left = curr.cycleW/2;
|
1363 |
-
opts.animOut.width = 0;
|
1364 |
-
});
|
1365 |
-
opts.cssBefore.top = 0;
|
1366 |
-
opts.cssBefore.width = 0;
|
1367 |
-
};
|
1368 |
-
// curtainY - squeeze in both edges vertically
|
1369 |
-
$.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
|
1370 |
-
opts.before.push(function(curr, next, opts) {
|
1371 |
-
$.fn.cycle.commonReset(curr,next,opts,true,false,true);
|
1372 |
-
opts.cssBefore.top = next.cycleH/2;
|
1373 |
-
opts.animIn.top = 0;
|
1374 |
-
opts.animIn.height = next.cycleH;
|
1375 |
-
opts.animOut.top = curr.cycleH/2;
|
1376 |
-
opts.animOut.height = 0;
|
1377 |
-
});
|
1378 |
-
opts.cssBefore.height = 0;
|
1379 |
-
opts.cssBefore.left = 0;
|
1380 |
-
};
|
1381 |
-
|
1382 |
-
// cover - curr slide covered by next slide
|
1383 |
-
$.fn.cycle.transitions.cover = function($cont, $slides, opts) {
|
1384 |
-
var d = opts.direction || 'left';
|
1385 |
-
var w = $cont.css('overflow','hidden').width();
|
1386 |
-
var h = $cont.height();
|
1387 |
-
opts.before.push(function(curr, next, opts) {
|
1388 |
-
$.fn.cycle.commonReset(curr,next,opts);
|
1389 |
-
if (d == 'right')
|
1390 |
-
opts.cssBefore.left = -w;
|
1391 |
-
else if (d == 'up')
|
1392 |
-
opts.cssBefore.top = h;
|
1393 |
-
else if (d == 'down')
|
1394 |
-
opts.cssBefore.top = -h;
|
1395 |
-
else
|
1396 |
-
opts.cssBefore.left = w;
|
1397 |
-
});
|
1398 |
-
opts.animIn.left = 0;
|
1399 |
-
opts.animIn.top = 0;
|
1400 |
-
opts.cssBefore.top = 0;
|
1401 |
-
opts.cssBefore.left = 0;
|
1402 |
-
};
|
1403 |
-
|
1404 |
-
// uncover - curr slide moves off next slide
|
1405 |
-
$.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
|
1406 |
-
var d = opts.direction || 'left';
|
1407 |
-
var w = $cont.css('overflow','hidden').width();
|
1408 |
-
var h = $cont.height();
|
1409 |
-
opts.before.push(function(curr, next, opts) {
|
1410 |
-
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1411 |
-
if (d == 'right')
|
1412 |
-
opts.animOut.left = w;
|
1413 |
-
else if (d == 'up')
|
1414 |
-
opts.animOut.top = -h;
|
1415 |
-
else if (d == 'down')
|
1416 |
-
opts.animOut.top = h;
|
1417 |
-
else
|
1418 |
-
opts.animOut.left = -w;
|
1419 |
-
});
|
1420 |
-
opts.animIn.left = 0;
|
1421 |
-
opts.animIn.top = 0;
|
1422 |
-
opts.cssBefore.top = 0;
|
1423 |
-
opts.cssBefore.left = 0;
|
1424 |
-
};
|
1425 |
-
|
1426 |
-
// toss - move top slide and fade away
|
1427 |
-
$.fn.cycle.transitions.toss = function($cont, $slides, opts) {
|
1428 |
-
var w = $cont.css('overflow','visible').width();
|
1429 |
-
var h = $cont.height();
|
1430 |
-
opts.before.push(function(curr, next, opts) {
|
1431 |
-
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1432 |
-
// provide default toss settings if animOut not provided
|
1433 |
-
if (!opts.animOut.left && !opts.animOut.top)
|
1434 |
-
$.extend(opts.animOut, { left: w*2, top: -h/2, opacity: 0 });
|
1435 |
-
else
|
1436 |
-
opts.animOut.opacity = 0;
|
1437 |
-
});
|
1438 |
-
opts.cssBefore.left = 0;
|
1439 |
-
opts.cssBefore.top = 0;
|
1440 |
-
opts.animIn.left = 0;
|
1441 |
-
};
|
1442 |
-
|
1443 |
-
// wipe - clip animation
|
1444 |
-
$.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
|
1445 |
-
var w = $cont.css('overflow','hidden').width();
|
1446 |
-
var h = $cont.height();
|
1447 |
-
opts.cssBefore = opts.cssBefore || {};
|
1448 |
-
var clip;
|
1449 |
-
if (opts.clip) {
|
1450 |
-
if (/l2r/.test(opts.clip))
|
1451 |
-
clip = 'rect(0px 0px '+h+'px 0px)';
|
1452 |
-
else if (/r2l/.test(opts.clip))
|
1453 |
-
clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
|
1454 |
-
else if (/t2b/.test(opts.clip))
|
1455 |
-
clip = 'rect(0px '+w+'px 0px 0px)';
|
1456 |
-
else if (/b2t/.test(opts.clip))
|
1457 |
-
clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
|
1458 |
-
else if (/zoom/.test(opts.clip)) {
|
1459 |
-
var top = parseInt(h/2,10);
|
1460 |
-
var left = parseInt(w/2,10);
|
1461 |
-
clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
|
1462 |
-
}
|
1463 |
-
}
|
1464 |
-
|
1465 |
-
opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
|
1466 |
-
|
1467 |
-
var d = opts.cssBefore.clip.match(/(\d+)/g);
|
1468 |
-
var t = parseInt(d[0],10), r = parseInt(d[1],10), b = parseInt(d[2],10), l = parseInt(d[3],10);
|
1469 |
-
|
1470 |
-
opts.before.push(function(curr, next, opts) {
|
1471 |
-
if (curr == next) return;
|
1472 |
-
var $curr = $(curr), $next = $(next);
|
1473 |
-
$.fn.cycle.commonReset(curr,next,opts,true,true,false);
|
1474 |
-
opts.cssAfter.display = 'block';
|
1475 |
-
|
1476 |
-
var step = 1, count = parseInt((opts.speedIn / 13),10) - 1;
|
1477 |
-
(function f() {
|
1478 |
-
var tt = t ? t - parseInt(step * (t/count),10) : 0;
|
1479 |
-
var ll = l ? l - parseInt(step * (l/count),10) : 0;
|
1480 |
-
var bb = b < h ? b + parseInt(step * ((h-b)/count || 1),10) : h;
|
1481 |
-
var rr = r < w ? r + parseInt(step * ((w-r)/count || 1),10) : w;
|
1482 |
-
$next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
|
1483 |
-
(step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
|
1484 |
-
})();
|
1485 |
-
});
|
1486 |
-
$.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
|
1487 |
-
opts.animIn = { left: 0 };
|
1488 |
-
opts.animOut = { left: 0 };
|
1489 |
-
};
|
1490 |
-
|
1491 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/jquery.cycle.all.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
(function(a){function r(b){function e(b){for(;b&&b.nodeName.toLowerCase()!="html";b=b.parentNode){var c=a.css(b,"background-color");if(c&&c.indexOf("rgb")>=0){var e=c.match(/\d+/g);return"#"+d(e[0])+d(e[1])+d(e[2])}if(c&&c!="transparent")return c}return"#ffffff"}function d(a){a=parseInt(a,10).toString(16);return a.length<2?"0"+a:a}c("applying clearType background-color hack");b.each(function(){a(this).css("background-color",e(this))})}function q(b,c){var d=a(c.pager);a.each(b,function(e,f){a.fn.cycle.createPagerAnchor(e,f,d,b,c)});c.updateActivePagerLink(c.pager,c.startingSlide,c.activePagerClass)}function o(b,c){var d=c?1:-1;var e=b.elements;var f=b.$cont[0],g=f.cycleTimeout;if(g){clearTimeout(g);f.cycleTimeout=0}if(b.random&&d<0){b.randomIndex--;if(--b.randomIndex==-2)b.randomIndex=e.length-2;else if(b.randomIndex==-1)b.randomIndex=e.length-1;b.nextSlide=b.randomMap[b.randomIndex]}else if(b.random){b.nextSlide=b.randomMap[b.randomIndex]}else{b.nextSlide=b.currSlide+d;if(b.nextSlide<0){if(b.nowrap)return false;b.nextSlide=e.length-1}else if(b.nextSlide>=e.length){if(b.nowrap)return false;b.nextSlide=0}}var h=b.onPrevNextEvent||b.prevNextClick;if(a.isFunction(h))h(d>0,b.nextSlide,e[b.nextSlide]);m(e,b,1,c);return false}function n(a,b,d,e){if(d.timeoutFn){var f=d.timeoutFn.call(a,a,b,d,e);while(d.fx!="none"&&f-d.speed<250)f+=d.speed;c("calculated timeout: "+f+"; speed: "+d.speed);if(f!==false)return f}return d.timeout}function m(b,d,e,f){if(e&&d.busy&&d.manualTrump){c("manualTrump in go(), stopping active transition");a(b).stop(true,true);d.busy=0}if(d.busy){c("transition active, ignoring new tx request");return}var g=d.$cont[0],h=b[d.currSlide],i=b[d.nextSlide];if(g.cycleStop!=d.stopCount||g.cycleTimeout===0&&!e)return;if(!e&&!g.cyclePause&&!d.bounce&&(d.autostop&&--d.countdown<=0||d.nowrap&&!d.random&&d.nextSlide<d.currSlide)){if(d.end)d.end(d);return}var j=false;if((e||!g.cyclePause)&&d.nextSlide!=d.currSlide){j=true;var k=d.fx;h.cycleH=h.cycleH||a(h).height();h.cycleW=h.cycleW||a(h).width();i.cycleH=i.cycleH||a(i).height();i.cycleW=i.cycleW||a(i).width();if(d.multiFx){if(f&&(d.lastFx==undefined||++d.lastFx>=d.fxs.length))d.lastFx=0;else if(!f&&(d.lastFx==undefined||--d.lastFx<0))d.lastFx=d.fxs.length-1;k=d.fxs[d.lastFx]}if(d.oneTimeFx){k=d.oneTimeFx;d.oneTimeFx=null}a.fn.cycle.resetState(d,k);if(d.before.length)a.each(d.before,function(a,b){if(g.cycleStop!=d.stopCount)return;b.apply(i,[h,i,d,f])});var l=function(){d.busy=0;a.each(d.after,function(a,b){if(g.cycleStop!=d.stopCount)return;b.apply(i,[h,i,d,f])})};c("tx firing("+k+"); currSlide: "+d.currSlide+"; nextSlide: "+d.nextSlide);d.busy=1;if(d.fxFn)d.fxFn(h,i,d,l,f,e&&d.fastOnEvent);else if(a.isFunction(a.fn.cycle[d.fx]))a.fn.cycle[d.fx](h,i,d,l,f,e&&d.fastOnEvent);else a.fn.cycle.custom(h,i,d,l,f,e&&d.fastOnEvent)}if(j||d.nextSlide==d.currSlide){d.lastSlide=d.currSlide;if(d.random){d.currSlide=d.nextSlide;if(++d.randomIndex==b.length)d.randomIndex=0;d.nextSlide=d.randomMap[d.randomIndex];if(d.nextSlide==d.currSlide)d.nextSlide=d.currSlide==d.slideCount-1?0:d.currSlide+1}else if(d.backwards){var o=d.nextSlide-1<0;if(o&&d.bounce){d.backwards=!d.backwards;d.nextSlide=1;d.currSlide=0}else{d.nextSlide=o?b.length-1:d.nextSlide-1;d.currSlide=o?0:d.nextSlide+1}}else{var o=d.nextSlide+1==b.length;if(o&&d.bounce){d.backwards=!d.backwards;d.nextSlide=b.length-2;d.currSlide=b.length-1}else{d.nextSlide=o?0:d.nextSlide+1;d.currSlide=o?b.length-1:d.nextSlide-1}}}if(j&&d.pager)d.updateActivePagerLink(d.pager,d.currSlide,d.activePagerClass);var p=0;if(d.timeout&&!d.continuous)p=n(b[d.currSlide],b[d.nextSlide],d,f);else if(d.continuous&&g.cyclePause)p=10;if(p>0)g.cycleTimeout=setTimeout(function(){m(b,d,0,!d.backwards)},p)}function l(b,c){b.addSlide=function(d,e){var f=a(d),g=f[0];if(!b.autostopCount)b.countdown++;c[e?"unshift":"push"](g);if(b.els)b.els[e?"unshift":"push"](g);b.slideCount=c.length;f.css("position","absolute");f[e?"prependTo":"appendTo"](b.$cont);if(e){b.currSlide++;b.nextSlide++}if(!a.support.opacity&&b.cleartype&&!b.cleartypeNoBg)r(f);if(b.fit&&b.width)f.width(b.width);if(b.fit&&b.height&&b.height!="auto")f.height(b.height);g.cycleH=b.fit&&b.height?b.height:f.height();g.cycleW=b.fit&&b.width?b.width:f.width();f.css(b.cssBefore);if(b.pager||b.pagerAnchorBuilder)a.fn.cycle.createPagerAnchor(c.length-1,g,a(b.pager),c,b);if(a.isFunction(b.onAddSlide))b.onAddSlide(f);else f.hide()}}function k(b){var e,f,g=a.fn.cycle.transitions;if(b.fx.indexOf(",")>0){b.multiFx=true;b.fxs=b.fx.replace(/\s*/g,"").split(",");for(e=0;e<b.fxs.length;e++){var h=b.fxs[e];f=g[h];if(!f||!g.hasOwnProperty(h)||!a.isFunction(f)){d("discarding unknown transition: ",h);b.fxs.splice(e,1);e--}}if(!b.fxs.length){d("No valid transitions named; slideshow terminating.");return false}}else if(b.fx=="all"){b.multiFx=true;b.fxs=[];for(p in g){f=g[p];if(g.hasOwnProperty(p)&&a.isFunction(f))b.fxs.push(p)}}if(b.multiFx&&b.randomizeEffects){var i=Math.floor(Math.random()*20)+30;for(e=0;e<i;e++){var j=Math.floor(Math.random()*b.fxs.length);b.fxs.push(b.fxs.splice(j,1)[0])}c("randomized fx sequence: ",b.fxs)}return true}function j(b){b.original={before:[],after:[]};b.original.cssBefore=a.extend({},b.cssBefore);b.original.cssAfter=a.extend({},b.cssAfter);b.original.animIn=a.extend({},b.animIn);b.original.animOut=a.extend({},b.animOut);a.each(b.before,function(){b.original.before.push(this)});a.each(b.after,function(){b.original.after.push(this)})}function i(b,c,f,h,i){var n=a.extend({},a.fn.cycle.defaults,h||{},a.metadata?b.metadata():a.meta?b.data():{});var p=a.isFunction(b.data)?b.data(n.metaAttr):null;if(p)n=a.extend(n,p);if(n.autostop)n.countdown=n.autostopCount||f.length;var s=b[0];b.data("cycle.opts",n);n.$cont=b;n.stopCount=s.cycleStop;n.elements=f;n.before=n.before?[n.before]:[];n.after=n.after?[n.after]:[];if(!a.support.opacity&&n.cleartype)n.after.push(function(){g(this,n)});if(n.continuous)n.after.push(function(){m(f,n,0,!n.backwards)});j(n);if(!a.support.opacity&&n.cleartype&&!n.cleartypeNoBg)r(c);if(b.css("position")=="static")b.css("position","relative");if(n.width)b.width(n.width);if(n.height&&n.height!="auto")b.height(n.height);if(n.startingSlide)n.startingSlide=parseInt(n.startingSlide,10);else if(n.backwards)n.startingSlide=f.length-1;if(n.random){n.randomMap=[];for(var t=0;t<f.length;t++)n.randomMap.push(t);n.randomMap.sort(function(a,b){return Math.random()-.5});n.randomIndex=1;n.startingSlide=n.randomMap[1]}else if(n.startingSlide>=f.length)n.startingSlide=0;n.currSlide=n.startingSlide||0;var u=n.startingSlide;c.css({position:"absolute",top:0,left:0}).hide().each(function(b){var c;if(n.backwards)c=u?b<=u?f.length+(b-u):u-b:f.length-b;else c=u?b>=u?f.length-(b-u):u-b:f.length-b;a(this).css("z-index",c)});a(f[u]).css("opacity",1).show();g(f[u],n);if(n.fit){if(!n.aspect){if(n.width)c.width(n.width);if(n.height&&n.height!="auto")c.height(n.height)}else{c.each(function(){var b=a(this);var c=n.aspect===true?b.width()/b.height():n.aspect;if(n.width&&b.width()!=n.width){b.width(n.width);b.height(n.width/c)}if(n.height&&b.height()<n.height){b.height(n.height);b.width(n.height*c)}})}}if(n.center&&(!n.fit||n.aspect)){c.each(function(){var b=a(this);b.css({"margin-left":n.width?(n.width-b.width())/2+"px":0,"margin-top":n.height?(n.height-b.height())/2+"px":0})})}if(n.center&&!n.fit&&!n.slideResize){c.each(function(){var b=a(this);b.css({"margin-left":n.width?(n.width-b.width())/2+"px":0,"margin-top":n.height?(n.height-b.height())/2+"px":0})})}var v=n.containerResize&&!b.innerHeight();if(v){var w=0,x=0;for(var y=0;y<f.length;y++){var z=a(f[y]),A=z[0],B=z.outerWidth(),C=z.outerHeight();if(!B)B=A.offsetWidth||A.width||z.attr("width");if(!C)C=A.offsetHeight||A.height||z.attr("height");w=B>w?B:w;x=C>x?C:x}if(w>0&&x>0)b.css({width:w+"px",height:x+"px"})}var D=false;if(n.pause)b.hover(function(){D=true;this.cyclePause++;e(s,true)},function(){D&&this.cyclePause--;e(s,true)});if(k(n)===false)return false;var E=false;h.requeueAttempts=h.requeueAttempts||0;c.each(function(){var b=a(this);this.cycleH=n.fit&&n.height?n.height:b.height()||this.offsetHeight||this.height||b.attr("height")||0;this.cycleW=n.fit&&n.width?n.width:b.width()||this.offsetWidth||this.width||b.attr("width")||0;if(b.is("img")){var c=a.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete;var e=a.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete;var f=a.browser.opera&&(this.cycleW==42&&this.cycleH==19||this.cycleW==37&&this.cycleH==17)&&!this.complete;var g=this.cycleH==0&&this.cycleW==0&&!this.complete;if(c||e||f||g){if(i.s&&n.requeueOnImageNotLoaded&&++h.requeueAttempts<100){d(h.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){a(i.s,i.c).cycle(h)},n.requeueTimeout);E=true;return false}else{d("could not determine size of image: "+this.src,this.cycleW,this.cycleH)}}}return true});if(E)return false;n.cssBefore=n.cssBefore||{};n.cssAfter=n.cssAfter||{};n.cssFirst=n.cssFirst||{};n.animIn=n.animIn||{};n.animOut=n.animOut||{};c.not(":eq("+u+")").css(n.cssBefore);a(c[u]).css(n.cssFirst);if(n.timeout){n.timeout=parseInt(n.timeout,10);if(n.speed.constructor==String)n.speed=a.fx.speeds[n.speed]||parseInt(n.speed,10);if(!n.sync)n.speed=n.speed/2;var F=n.fx=="none"?0:n.fx=="shuffle"?500:250;while(n.timeout-n.speed<F)n.timeout+=n.speed}if(n.easing)n.easeIn=n.easeOut=n.easing;if(!n.speedIn)n.speedIn=n.speed;if(!n.speedOut)n.speedOut=n.speed;n.slideCount=f.length;n.currSlide=n.lastSlide=u;if(n.random){if(++n.randomIndex==f.length)n.randomIndex=0;n.nextSlide=n.randomMap[n.randomIndex]}else if(n.backwards)n.nextSlide=n.startingSlide==0?f.length-1:n.startingSlide-1;else n.nextSlide=n.startingSlide>=f.length-1?0:n.startingSlide+1;if(!n.multiFx){var G=a.fn.cycle.transitions[n.fx];if(a.isFunction(G))G(b,c,n);else if(n.fx!="custom"&&!n.multiFx){d("unknown transition: "+n.fx,"; slideshow terminating");return false}}var H=c[u];if(!n.skipInitializationCallbacks){if(n.before.length)n.before[0].apply(H,[H,H,n,true]);if(n.after.length)n.after[0].apply(H,[H,H,n,true])}if(n.next)a(n.next).bind(n.prevNextEvent,function(){return o(n,1)});if(n.prev)a(n.prev).bind(n.prevNextEvent,function(){return o(n,0)});if(n.pager||n.pagerAnchorBuilder)q(f,n);l(n,f);return n}function h(b){if(b.next)a(b.next).unbind(b.prevNextEvent);if(b.prev)a(b.prev).unbind(b.prevNextEvent);if(b.pager||b.pagerAnchorBuilder)a.each(b.pagerAnchors||[],function(){this.unbind().remove()});b.pagerAnchors=null;if(b.destroy)b.destroy(b)}function g(b,c){if(!a.support.opacity&&c.cleartype&&b.style.filter){try{b.style.removeAttribute("filter")}catch(d){}}}function f(b,c,f){function j(b,c,e){if(!b&&c===true){var f=a(e).data("cycle.opts");if(!f){d("options not found, can not resume");return false}if(e.cycleTimeout){clearTimeout(e.cycleTimeout);e.cycleTimeout=0}m(f.elements,f,1,!f.backwards)}}if(b.cycleStop==undefined)b.cycleStop=0;if(c===undefined||c===null)c={};if(c.constructor==String){switch(c){case"destroy":case"stop":var g=a(b).data("cycle.opts");if(!g)return false;b.cycleStop++;if(b.cycleTimeout)clearTimeout(b.cycleTimeout);b.cycleTimeout=0;g.elements&&a(g.elements).stop();a(b).removeData("cycle.opts");if(c=="destroy")h(g);return false;case"toggle":b.cyclePause=b.cyclePause===1?0:1;j(b.cyclePause,f,b);e(b);return false;case"pause":b.cyclePause=1;e(b);return false;case"resume":b.cyclePause=0;j(false,f,b);e(b);return false;case"prev":case"next":var g=a(b).data("cycle.opts");if(!g){d('options not found, "prev/next" ignored');return false}a.fn.cycle[c](g);return false;default:c={fx:c}}return c}else if(c.constructor==Number){var i=c;c=a(b).data("cycle.opts");if(!c){d("options not found, can not advance slide");return false}if(i<0||i>=c.elements.length){d("invalid slide index: "+i);return false}c.nextSlide=i;if(b.cycleTimeout){clearTimeout(b.cycleTimeout);b.cycleTimeout=0}if(typeof f=="string")c.oneTimeFx=f;m(c.elements,c,1,i>=c.currSlide);return false}return c}function e(b,c,d){var e=a(b).data("cycle.opts");var f=!!b.cyclePause;if(f&&e.paused)e.paused(b,e,c,d);else if(!f&&e.resumed)e.resumed(b,e,c,d)}function d(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "))}function c(b){a.fn.cycle.debug&&d(b)}var b="2.9995";if(a.support==undefined){a.support={opacity:!a.browser.msie}}a.expr[":"].paused=function(a){return a.cyclePause};a.fn.cycle=function(b,e){var g={s:this.selector,c:this.context};if(this.length===0&&b!="stop"){if(!a.isReady&&g.s){d("DOM not ready, queuing slideshow");a(function(){a(g.s,g.c).cycle(b,e)});return this}d("terminating; zero elements found by selector"+(a.isReady?"":" (DOM not ready)"));return this}return this.each(function(){var h=f(this,b,e);if(h===false)return;h.updateActivePagerLink=h.updateActivePagerLink||a.fn.cycle.updateActivePagerLink;if(this.cycleTimeout)clearTimeout(this.cycleTimeout);this.cycleTimeout=this.cyclePause=0;var j=a(this);var k=h.slideExpr?a(h.slideExpr,this):j.children();var l=k.get();var o=i(j,k,l,h,g);if(o===false)return;if(l.length<2){d("terminating; too few slides: "+l.length);return}var p=o.continuous?10:n(l[o.currSlide],l[o.nextSlide],o,!o.backwards);if(p){p+=o.delay||0;if(p<10)p=10;c("first timeout: "+p);this.cycleTimeout=setTimeout(function(){m(l,o,0,!h.backwards)},p)}})};a.fn.cycle.resetState=function(b,c){c=c||b.fx;b.before=[];b.after=[];b.cssBefore=a.extend({},b.original.cssBefore);b.cssAfter=a.extend({},b.original.cssAfter);b.animIn=a.extend({},b.original.animIn);b.animOut=a.extend({},b.original.animOut);b.fxFn=null;a.each(b.original.before,function(){b.before.push(this)});a.each(b.original.after,function(){b.after.push(this)});var d=a.fn.cycle.transitions[c];if(a.isFunction(d))d(b.$cont,a(b.elements),b)};a.fn.cycle.updateActivePagerLink=function(b,c,d){a(b).each(function(){a(this).children().removeClass(d).eq(c).addClass(d)})};a.fn.cycle.next=function(a){o(a,1)};a.fn.cycle.prev=function(a){o(a,0)};a.fn.cycle.createPagerAnchor=function(b,d,f,g,h){var i;if(a.isFunction(h.pagerAnchorBuilder)){i=h.pagerAnchorBuilder(b,d);c("pagerAnchorBuilder("+b+", el) returned: "+i)}else i='<a href="#">'+(b+1)+"</a>";if(!i)return;var j=a(i);if(j.parents("body").length===0){var k=[];if(f.length>1){f.each(function(){var b=j.clone(true);a(this).append(b);k.push(b[0])});j=a(k)}else{j.appendTo(f)}}h.pagerAnchors=h.pagerAnchors||[];h.pagerAnchors.push(j);var l=function(c){c.preventDefault();h.nextSlide=b;var d=h.$cont[0],e=d.cycleTimeout;if(e){clearTimeout(e);d.cycleTimeout=0}var f=h.onPagerEvent||h.pagerClick;if(a.isFunction(f))f(h.nextSlide,g[h.nextSlide]);m(g,h,1,h.currSlide<b)};if(/mouseenter|mouseover/i.test(h.pagerEvent)){j.hover(l,function(){})}else{j.bind(h.pagerEvent,l)}if(!/^click/.test(h.pagerEvent)&&!h.allowPagerClickBubble)j.bind("click.cycle",function(){return false});var n=h.$cont[0];var o=false;if(h.pauseOnPagerHover){j.hover(function(){o=true;n.cyclePause++;e(n,true,true)},function(){o&&n.cyclePause--;e(n,true,true)})}};a.fn.cycle.hopsFromLast=function(a,b){var c,d=a.lastSlide,e=a.currSlide;if(b)c=e>d?e-d:a.slideCount-d;else c=e<d?d-e:d+a.slideCount-e;return c};a.fn.cycle.commonReset=function(b,c,d,e,f,g){a(d.elements).not(b).hide();if(typeof d.cssBefore.opacity=="undefined")d.cssBefore.opacity=1;d.cssBefore.display="block";if(d.slideResize&&e!==false&&c.cycleW>0)d.cssBefore.width=c.cycleW;if(d.slideResize&&f!==false&&c.cycleH>0)d.cssBefore.height=c.cycleH;d.cssAfter=d.cssAfter||{};d.cssAfter.display="none";a(b).css("zIndex",d.slideCount+(g===true?1:0));a(c).css("zIndex",d.slideCount+(g===true?0:1))};a.fn.cycle.custom=function(b,c,d,e,f,g){var h=a(b),i=a(c);var j=d.speedIn,k=d.speedOut,l=d.easeIn,m=d.easeOut;i.css(d.cssBefore);if(g){if(typeof g=="number")j=k=g;else j=k=1;l=m=null}var n=function(){i.animate(d.animIn,j,l,function(){e()})};h.animate(d.animOut,k,m,function(){h.css(d.cssAfter);if(!d.sync)n()});if(d.sync)n()};a.fn.cycle.transitions={fade:function(b,c,d){c.not(":eq("+d.currSlide+")").css("opacity",0);d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d);d.cssBefore.opacity=0});d.animIn={opacity:1};d.animOut={opacity:0};d.cssBefore={top:0,left:0}}};a.fn.cycle.ver=function(){return b};a.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:false,animIn:null,animOut:null,aspect:false,autostop:0,autostopCount:0,backwards:false,before:null,center:null,cleartype:!a.support.opacity,cleartypeNoBg:false,containerResize:1,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:true,metaAttr:"cycle",next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:true,requeueTimeout:250,rev:0,shuffle:null,skipInitializationCallbacks:false,slideExpr:null,slideResize:1,speed:1e3,speedIn:null,speedOut:null,startingSlide:0,sync:1,timeout:4e3,timeoutFn:null,updateActivePagerLink:null,width:null}})(jQuery);(function(a){a.fn.cycle.transitions.none=function(b,c,d){d.fxFn=function(b,c,d,e){a(c).show();a(b).hide();e()}};a.fn.cycle.transitions.fadeout=function(b,c,d){c.not(":eq("+d.currSlide+")").css({display:"block",opacity:1});d.before.push(function(b,c,d,e,f,g){a(b).css("zIndex",d.slideCount+(!g===true?1:0));a(c).css("zIndex",d.slideCount+(!g===true?0:1))});d.animIn.opacity=1;d.animOut.opacity=0;d.cssBefore.opacity=1;d.cssBefore.display="block";d.cssAfter.zIndex=0};a.fn.cycle.transitions.scrollUp=function(b,c,d){b.css("overflow","hidden");d.before.push(a.fn.cycle.commonReset);var e=b.height();d.cssBefore.top=e;d.cssBefore.left=0;d.cssFirst.top=0;d.animIn.top=0;d.animOut.top=-e};a.fn.cycle.transitions.scrollDown=function(b,c,d){b.css("overflow","hidden");d.before.push(a.fn.cycle.commonReset);var e=b.height();d.cssFirst.top=0;d.cssBefore.top=-e;d.cssBefore.left=0;d.animIn.top=0;d.animOut.top=e};a.fn.cycle.transitions.scrollLeft=function(b,c,d){b.css("overflow","hidden");d.before.push(a.fn.cycle.commonReset);var e=b.width();d.cssFirst.left=0;d.cssBefore.left=e;d.cssBefore.top=0;d.animIn.left=0;d.animOut.left=0-e};a.fn.cycle.transitions.scrollRight=function(b,c,d){b.css("overflow","hidden");d.before.push(a.fn.cycle.commonReset);var e=b.width();d.cssFirst.left=0;d.cssBefore.left=-e;d.cssBefore.top=0;d.animIn.left=0;d.animOut.left=e};a.fn.cycle.transitions.scrollHorz=function(b,c,d){b.css("overflow","hidden").width();d.before.push(function(b,c,d,e){if(d.rev)e=!e;a.fn.cycle.commonReset(b,c,d);d.cssBefore.left=e?c.cycleW-1:1-c.cycleW;d.animOut.left=e?-b.cycleW:b.cycleW});d.cssFirst.left=0;d.cssBefore.top=0;d.animIn.left=0;d.animOut.top=0};a.fn.cycle.transitions.scrollVert=function(b,c,d){b.css("overflow","hidden");d.before.push(function(b,c,d,e){if(d.rev)e=!e;a.fn.cycle.commonReset(b,c,d);d.cssBefore.top=e?1-c.cycleH:c.cycleH-1;d.animOut.top=e?b.cycleH:-b.cycleH});d.cssFirst.top=0;d.cssBefore.left=0;d.animIn.top=0;d.animOut.left=0};a.fn.cycle.transitions.slideX=function(b,c,d){d.before.push(function(b,c,d){a(d.elements).not(b).hide();a.fn.cycle.commonReset(b,c,d,false,true);d.animIn.width=c.cycleW});d.cssBefore.left=0;d.cssBefore.top=0;d.cssBefore.width=0;d.animIn.width="show";d.animOut.width=0};a.fn.cycle.transitions.slideY=function(b,c,d){d.before.push(function(b,c,d){a(d.elements).not(b).hide();a.fn.cycle.commonReset(b,c,d,true,false);d.animIn.height=c.cycleH});d.cssBefore.left=0;d.cssBefore.top=0;d.cssBefore.height=0;d.animIn.height="show";d.animOut.height=0};a.fn.cycle.transitions.shuffle=function(b,c,d){var e,f=b.css("overflow","visible").width();c.css({left:0,top:0});d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,true,true)});if(!d.speedAdjusted){d.speed=d.speed/2;d.speedAdjusted=true}d.random=0;d.shuffle=d.shuffle||{left:-f,top:15};d.els=[];for(e=0;e<c.length;e++)d.els.push(c[e]);for(e=0;e<d.currSlide;e++)d.els.push(d.els.shift());d.fxFn=function(b,c,d,e,f){if(d.rev)f=!f;var g=f?a(b):a(c);a(c).css(d.cssBefore);var h=d.slideCount;g.animate(d.shuffle,d.speedIn,d.easeIn,function(){var c=a.fn.cycle.hopsFromLast(d,f);for(var i=0;i<c;i++)f?d.els.push(d.els.shift()):d.els.unshift(d.els.pop());if(f){for(var j=0,k=d.els.length;j<k;j++)a(d.els[j]).css("z-index",k-j+h)}else{var l=a(b).css("z-index");g.css("z-index",parseInt(l,10)+1+h)}g.animate({left:0,top:0},d.speedOut,d.easeOut,function(){a(f?this:b).hide();if(e)e()})})};a.extend(d.cssBefore,{display:"block",opacity:1,top:0,left:0})};a.fn.cycle.transitions.turnUp=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,false);d.cssBefore.top=c.cycleH;d.animIn.height=c.cycleH;d.animOut.width=c.cycleW});d.cssFirst.top=0;d.cssBefore.left=0;d.cssBefore.height=0;d.animIn.top=0;d.animOut.height=0};a.fn.cycle.transitions.turnDown=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,false);d.animIn.height=c.cycleH;d.animOut.top=b.cycleH});d.cssFirst.top=0;d.cssBefore.left=0;d.cssBefore.top=0;d.cssBefore.height=0;d.animOut.height=0};a.fn.cycle.transitions.turnLeft=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,true);d.cssBefore.left=c.cycleW;d.animIn.width=c.cycleW});d.cssBefore.top=0;d.cssBefore.width=0;d.animIn.left=0;d.animOut.width=0};a.fn.cycle.transitions.turnRight=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,true);d.animIn.width=c.cycleW;d.animOut.left=b.cycleW});a.extend(d.cssBefore,{top:0,left:0,width:0});d.animIn.left=0;d.animOut.width=0};a.fn.cycle.transitions.zoom=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,false,true);d.cssBefore.top=c.cycleH/2;d.cssBefore.left=c.cycleW/2;a.extend(d.animIn,{top:0,left:0,width:c.cycleW,height:c.cycleH});a.extend(d.animOut,{width:0,height:0,top:b.cycleH/2,left:b.cycleW/2})});d.cssFirst.top=0;d.cssFirst.left=0;d.cssBefore.width=0;d.cssBefore.height=0};a.fn.cycle.transitions.fadeZoom=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,false);d.cssBefore.left=c.cycleW/2;d.cssBefore.top=c.cycleH/2;a.extend(d.animIn,{top:0,left:0,width:c.cycleW,height:c.cycleH})});d.cssBefore.width=0;d.cssBefore.height=0;d.animOut.opacity=0};a.fn.cycle.transitions.blindX=function(b,c,d){var e=b.css("overflow","hidden").width();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d);d.animIn.width=c.cycleW;d.animOut.left=b.cycleW});d.cssBefore.left=e;d.cssBefore.top=0;d.animIn.left=0;d.animOut.left=e};a.fn.cycle.transitions.blindY=function(b,c,d){var e=b.css("overflow","hidden").height();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d);d.animIn.height=c.cycleH;d.animOut.top=b.cycleH});d.cssBefore.top=e;d.cssBefore.left=0;d.animIn.top=0;d.animOut.top=e};a.fn.cycle.transitions.blindZ=function(b,c,d){var e=b.css("overflow","hidden").height();var f=b.width();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d);d.animIn.height=c.cycleH;d.animOut.top=b.cycleH});d.cssBefore.top=e;d.cssBefore.left=f;d.animIn.top=0;d.animIn.left=0;d.animOut.top=e;d.animOut.left=f};a.fn.cycle.transitions.growX=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,true);d.cssBefore.left=this.cycleW/2;d.animIn.left=0;d.animIn.width=this.cycleW;d.animOut.left=0});d.cssBefore.top=0;d.cssBefore.width=0};a.fn.cycle.transitions.growY=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,false);d.cssBefore.top=this.cycleH/2;d.animIn.top=0;d.animIn.height=this.cycleH;d.animOut.top=0});d.cssBefore.height=0;d.cssBefore.left=0};a.fn.cycle.transitions.curtainX=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,false,true,true);d.cssBefore.left=c.cycleW/2;d.animIn.left=0;d.animIn.width=this.cycleW;d.animOut.left=b.cycleW/2;d.animOut.width=0});d.cssBefore.top=0;d.cssBefore.width=0};a.fn.cycle.transitions.curtainY=function(b,c,d){d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,false,true);d.cssBefore.top=c.cycleH/2;d.animIn.top=0;d.animIn.height=c.cycleH;d.animOut.top=b.cycleH/2;d.animOut.height=0});d.cssBefore.height=0;d.cssBefore.left=0};a.fn.cycle.transitions.cover=function(b,c,d){var e=d.direction||"left";var f=b.css("overflow","hidden").width();var g=b.height();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d);if(e=="right")d.cssBefore.left=-f;else if(e=="up")d.cssBefore.top=g;else if(e=="down")d.cssBefore.top=-g;else d.cssBefore.left=f});d.animIn.left=0;d.animIn.top=0;d.cssBefore.top=0;d.cssBefore.left=0};a.fn.cycle.transitions.uncover=function(b,c,d){var e=d.direction||"left";var f=b.css("overflow","hidden").width();var g=b.height();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,true,true);if(e=="right")d.animOut.left=f;else if(e=="up")d.animOut.top=-g;else if(e=="down")d.animOut.top=g;else d.animOut.left=-f});d.animIn.left=0;d.animIn.top=0;d.cssBefore.top=0;d.cssBefore.left=0};a.fn.cycle.transitions.toss=function(b,c,d){var e=b.css("overflow","visible").width();var f=b.height();d.before.push(function(b,c,d){a.fn.cycle.commonReset(b,c,d,true,true,true);if(!d.animOut.left&&!d.animOut.top)a.extend(d.animOut,{left:e*2,top:-f/2,opacity:0});else d.animOut.opacity=0});d.cssBefore.left=0;d.cssBefore.top=0;d.animIn.left=0};a.fn.cycle.transitions.wipe=function(b,c,d){var e=b.css("overflow","hidden").width();var f=b.height();d.cssBefore=d.cssBefore||{};var g;if(d.clip){if(/l2r/.test(d.clip))g="rect(0px 0px "+f+"px 0px)";else if(/r2l/.test(d.clip))g="rect(0px "+e+"px "+f+"px "+e+"px)";else if(/t2b/.test(d.clip))g="rect(0px "+e+"px 0px 0px)";else if(/b2t/.test(d.clip))g="rect("+f+"px "+e+"px "+f+"px 0px)";else if(/zoom/.test(d.clip)){var h=parseInt(f/2,10);var i=parseInt(e/2,10);g="rect("+h+"px "+i+"px "+h+"px "+i+"px)"}}d.cssBefore.clip=d.cssBefore.clip||g||"rect(0px 0px 0px 0px)";var j=d.cssBefore.clip.match(/(\d+)/g);var k=parseInt(j[0],10),l=parseInt(j[1],10),m=parseInt(j[2],10),n=parseInt(j[3],10);d.before.push(function(b,c,d){if(b==c)return;var g=a(b),h=a(c);a.fn.cycle.commonReset(b,c,d,true,true,false);d.cssAfter.display="block";var i=1,j=parseInt(d.speedIn/13,10)-1;(function o(){var a=k?k-parseInt(i*(k/j),10):0;var b=n?n-parseInt(i*(n/j),10):0;var c=m<f?m+parseInt(i*((f-m)/j||1),10):f;var d=l<e?l+parseInt(i*((e-l)/j||1),10):e;h.css({clip:"rect("+a+"px "+d+"px "+c+"px "+b+"px)"});i++<=j?setTimeout(o,13):g.css("display","none")})()});a.extend(d.cssBefore,{display:"block",opacity:1,top:0,left:0});d.animIn={left:0};d.animOut={left:0}}})(jQuery)
|
|
js/ngg.js
CHANGED
@@ -17,6 +17,20 @@ jQuery("document").ready(function(){
|
|
17 |
jQuery("a.ngg-browser-prev").click(function(e) {
|
18 |
return ngg_ajax_browser_navigation(e, this);
|
19 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
});
|
21 |
|
22 |
function ngg_ajax_navigation(e, obj) {
|
@@ -185,4 +199,4 @@ function ngg_remove_loading() {
|
|
185 |
jQuery(document).unbind("mousemove");
|
186 |
|
187 |
jQuery(loadingImage).remove();
|
188 |
-
}
|
17 |
jQuery("a.ngg-browser-prev").click(function(e) {
|
18 |
return ngg_ajax_browser_navigation(e, this);
|
19 |
});
|
20 |
+
//Qunit conditional call
|
21 |
+
if (ngg_get_url_vars().nextcellent) {
|
22 |
+
//Como invoco esto?
|
23 |
+
//edcal_test.runTests();
|
24 |
+
}
|
25 |
+
|
26 |
+
//Activate tooltip. Allow HTML content.
|
27 |
+
//See http://jqueryui.com/tooltip/ for examples.
|
28 |
+
//See http://stackoverflow.com/questions/15734105/jquery-ui-tooltip-does-not-support-html-content
|
29 |
+
jQuery(document).tooltip({
|
30 |
+
content: function () {
|
31 |
+
return jQuery.parseHTML(this.getAttribute("title"));
|
32 |
+
}
|
33 |
+
});
|
34 |
});
|
35 |
|
36 |
function ngg_ajax_navigation(e, obj) {
|
199 |
jQuery(document).unbind("mousemove");
|
200 |
|
201 |
jQuery(loadingImage).remove();
|
202 |
+
}
|
js/ngg.slideshow.js
DELETED
@@ -1,138 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
* NextGEN Slideshow based on jQuery Cycle Plugin
|
3 |
-
* Copyright (c) 2010-2012 Alex Rabe
|
4 |
-
* Version: 1.0.6
|
5 |
-
* Requires: jQuery v1.2.6 or later
|
6 |
-
*/
|
7 |
-
jQuery.fn.nggSlideshow = function ( args ) {
|
8 |
-
|
9 |
-
var defaults = { id: 1,
|
10 |
-
width: 320,
|
11 |
-
height: 240,
|
12 |
-
fx: 'fade',
|
13 |
-
domain: '',
|
14 |
-
timeout: 5000 };
|
15 |
-
|
16 |
-
var s = jQuery.extend( {}, defaults, args);
|
17 |
-
|
18 |
-
var obj = this.selector;
|
19 |
-
var stack = [];
|
20 |
-
var url = s.domain + 'index.php?callback=json&api_key=true&format=json&method=gallery&id=' + s.id;
|
21 |
-
/*
|
22 |
-
the stackLength var will store stack length for ref - it is quicker to ref memory than make a call to find an obj property
|
23 |
-
stack length is first collected in jQuery.getJSON(); stack length is auto-decremented in loadImage() + jCycle_onBefore()
|
24 |
-
*/
|
25 |
-
var stackLength = 0;
|
26 |
-
|
27 |
-
jQuery.getJSON(url, function(r){
|
28 |
-
|
29 |
-
if (r.stat == "ok"){
|
30 |
-
|
31 |
-
for (img in r.images) {
|
32 |
-
var photo = r.images[img];
|
33 |
-
//populate images into an array
|
34 |
-
stack.push( decodeURI( photo['imageURL'] ) );
|
35 |
-
}
|
36 |
-
stackLength = stack.length;
|
37 |
-
// init loading first 3 images (param 1 in func is first pass)
|
38 |
-
loadImage(1);
|
39 |
-
}
|
40 |
-
});
|
41 |
-
|
42 |
-
// load image and bind appendImage() to the img load - here we are making sure the loads do not get displaced
|
43 |
-
function loadImage(num){
|
44 |
-
// check that stack is not empty and we haven't alreay loaded 3 images
|
45 |
-
if(stackLength > 0 && num <= 3) {
|
46 |
-
var img = new Image();
|
47 |
-
img.src = stack.shift();
|
48 |
-
stackLength--;
|
49 |
-
// wait to append image until the load is complete
|
50 |
-
jQuery( img ).one('load', function() { appendImage(img, num); }).each(function(){
|
51 |
-
// IE browser : in case it's already cached
|
52 |
-
if(this.complete) jQuery(this).trigger('load');
|
53 |
-
});
|
54 |
-
}
|
55 |
-
}
|
56 |
-
|
57 |
-
// append image to obj
|
58 |
-
function appendImage(img, num){
|
59 |
-
// Hide them first, Cycle plugin will show them
|
60 |
-
jQuery( img ).hide();
|
61 |
-
// Add the image now and resize after loaded
|
62 |
-
jQuery( obj ).append( imageResize(img, s.width , s.height) );
|
63 |
-
// start slideshow with third image, load next image if not
|
64 |
-
if (num == 3 || stackLength == 0 ) {
|
65 |
-
startSlideshow();
|
66 |
-
} else {
|
67 |
-
loadImage(++num); // increase index and load next image
|
68 |
-
}
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
-
function startSlideshow() {
|
73 |
-
|
74 |
-
// hide the loader icon
|
75 |
-
jQuery( obj + '-loader' ).empty().remove();
|
76 |
-
// Start the slideshow
|
77 |
-
jQuery(obj + ' img:first').fadeIn(1000, function() {
|
78 |
-
// Start the cycle plugin
|
79 |
-
jQuery( obj ).cycle( {
|
80 |
-
fx: s.fx,
|
81 |
-
containerResize: 1,
|
82 |
-
fit: 1,
|
83 |
-
timeout: s.timeout,
|
84 |
-
next: obj,
|
85 |
-
before: jCycle_onBefore
|
86 |
-
});
|
87 |
-
});
|
88 |
-
|
89 |
-
}
|
90 |
-
|
91 |
-
//Resize Image and keep ratio on client side, better move to server side later
|
92 |
-
function imageResize(img, maxWidth , maxHeight) {
|
93 |
-
|
94 |
-
// we need to wait until the image is loaded
|
95 |
-
if ( !img.complete )
|
96 |
-
jQuery( img ).bind('load', function() { imageResize(img, maxWidth , maxHeight) });
|
97 |
-
|
98 |
-
// in some cases the image is not loaded, we can't resize them
|
99 |
-
if (img.height == 0 || img.width == 0)
|
100 |
-
return img;
|
101 |
-
|
102 |
-
var width, height;
|
103 |
-
|
104 |
-
if (img.width * maxHeight > img.height * maxWidth) {
|
105 |
-
// img has a wider ratio than target size, make width fit
|
106 |
-
if (img.width > maxWidth) {
|
107 |
-
width = maxWidth;
|
108 |
-
height = Math.round(img.height / img.width * maxWidth);
|
109 |
-
}
|
110 |
-
} else {
|
111 |
-
// img has a less wide ratio than target size, make height fit
|
112 |
-
if (img.height > maxHeight) {
|
113 |
-
height = maxHeight;
|
114 |
-
width = Math.round(img.width / img.height * maxHeight);
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
jQuery( img ).css({
|
119 |
-
'height': height,
|
120 |
-
'width': width
|
121 |
-
});
|
122 |
-
|
123 |
-
return img;
|
124 |
-
};
|
125 |
-
|
126 |
-
// add images to slideshow step by step
|
127 |
-
function jCycle_onBefore(curr, next, opts) {
|
128 |
-
if (opts.addSlide)
|
129 |
-
if (stackLength > 0){ // check that stack is not empty
|
130 |
-
var img = new Image();
|
131 |
-
img.src = stack.shift();
|
132 |
-
stackLength--;
|
133 |
-
jQuery( img ).bind('load', function() {
|
134 |
-
opts.addSlide( imageResize(this, s.width , s.height) );
|
135 |
-
});
|
136 |
-
}
|
137 |
-
};
|
138 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/ngg.slideshow.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
jQuery.fn.nggSlideshow=function(args){var defaults={id:1,width:320,height:240,fx:'fade',domain:'',timeout:5000};var s=jQuery.extend({},defaults,args);var obj=this.selector;var stack=[];var url=s.domain+'index.php?callback=json&api_key=true&format=json&method=gallery&id='+s.id;var stackLength=0;jQuery.getJSON(url,function(r){if(r.stat=="ok"){for(img in r.images){var photo=r.images[img];stack.push(decodeURI(photo['imageURL']))}stackLength=stack.length;loadImage(1)}});function loadImage(num){if(stackLength>0&&num<=3){var img=new Image();img.src=stack.shift();stackLength--;jQuery(img).one('load',function(){appendImage(img,num)}).each(function(){if(this.complete)jQuery(this).trigger('load')})}}function appendImage(img,num){jQuery(img).hide();jQuery(obj).append(imageResize(img,s.width,s.height));if(num==3||stackLength==0){startSlideshow()}else{loadImage(++num)}}function startSlideshow(){jQuery(obj+'-loader').empty().remove();jQuery(obj+' img:first').fadeIn(1000,function(){jQuery(obj).cycle({fx:s.fx,containerResize:1,fit:1,timeout:s.timeout,next:obj,before:jCycle_onBefore})})}function imageResize(img,maxWidth,maxHeight){if(!img.complete)jQuery(img).bind('load',function(){imageResize(img,maxWidth,maxHeight)});if(img.height==0||img.width==0)return img;var width,height;if(img.width*maxHeight>img.height*maxWidth){if(img.width>maxWidth){width=maxWidth;height=Math.round(img.height/img.width*maxWidth)}}else{if(img.height>maxHeight){height=maxHeight;width=Math.round(img.width/img.height*maxHeight)}}jQuery(img).css({'height':height,'width':width});return img};function jCycle_onBefore(curr,next,opts){if(opts.addSlide)if(stackLength>0){var img=new Image();img.src=stack.shift();stackLength--;jQuery(img).bind('load',function(){opts.addSlide(imageResize(this,s.width,s.height))})}}}
|
|
js/nxc.main.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
//Call Qunit if enabled.
|
3 |
+
jQuery("document").ready(function(){
|
4 |
+
//Qunit conditional call
|
5 |
+
if (ngg_get_url_vars().nextcellent) { //Call qunit only if there is an url parameter nextcellent=true
|
6 |
+
nxc_test.runTests(); //check nxc.test.js file to see test there!
|
7 |
+
}
|
8 |
+
});
|
9 |
+
|
10 |
+
//get url parameter list, return array with parameter names and values.
|
11 |
+
function ngg_get_url_vars() {
|
12 |
+
var vars = [], hash;
|
13 |
+
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
14 |
+
for (var i = 0; i < hashes.length; i++) {
|
15 |
+
hash = hashes[i].split('=');
|
16 |
+
vars.push(hash[0]);
|
17 |
+
vars[hash[0]] = hash[1];
|
18 |
+
}
|
19 |
+
return vars;
|
20 |
+
}
|
js/nxc.test.js
ADDED
@@ -0,0 +1,584 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* This file contains unit tests for nextcellent gallery
|
3 |
+
* The test will perform if you add the nextcellent=true parameter to the URL for the gallery plugin.
|
4 |
+
*/
|
5 |
+
|
6 |
+
var nxc_test = {
|
7 |
+
|
8 |
+
post: {},
|
9 |
+
|
10 |
+
testContent: 'This is the content of the <b>unit test – post</b>. <!--more--> This is content after the more tag to make sure we a reading it.',
|
11 |
+
testContent2: 'This is the content of the <b>unit test – post</b>. <!--more--> This is content after the more tag to make sure we a reading it. - CHANGED',
|
12 |
+
testContent3: 'This is the content of the <b>unit test – post</b>. <!--more--> This is content after the more tag to make sure we a reading it. - CHANGED DRAFT',
|
13 |
+
|
14 |
+
runTests: function() {
|
15 |
+
nxc_test.isDraftsDrawerVisible = edcal.isDraftsDrawerVisible;
|
16 |
+
|
17 |
+
edcal.setDraftsDrawerVisible(true, function() {
|
18 |
+
nxc_test.startTests();
|
19 |
+
});
|
20 |
+
},
|
21 |
+
|
22 |
+
startTests: function() {
|
23 |
+
/*FZSM: this shouldn't be necessary, since we deal with css file before*/
|
24 |
+
/*
|
25 |
+
jQuery('head').append('<link>');
|
26 |
+
css = jQuery('head').children(':last');
|
27 |
+
css.attr({
|
28 |
+
rel: 'stylesheet',
|
29 |
+
type: 'text/css',
|
30 |
+
href: edcal.plugin_url + '/lib/qunit.css'
|
31 |
+
});
|
32 |
+
*/
|
33 |
+
|
34 |
+
jQuery('#wpbody-content .wrap').append('<div id="edcal-qunit"></div>'); //append on bottom of admin page.
|
35 |
+
|
36 |
+
jQuery('#edcal-qunit').append('<h1 id="qunit-header">WordPress Nextcellent Gallery Unit Tests</h1>' +
|
37 |
+
'<h2 id="qunit-banner"></h2>' +
|
38 |
+
'<div id="qunit-testrunner-toolbar"></div>' +
|
39 |
+
'<h2 id="qunit-userAgent"></h2>' +
|
40 |
+
'<ol id="qunit-tests"></ol>' +
|
41 |
+
'<div id="qunit-fixture">test markup</div>');
|
42 |
+
|
43 |
+
|
44 |
+
nxc_test.moveTests();
|
45 |
+
},
|
46 |
+
|
47 |
+
nxt_test1: function() {
|
48 |
+
expect(1);
|
49 |
+
ok(true,'simple test to check Qunit functionality');
|
50 |
+
//for the moment I don't even know if the start function is about something, so I don't use it
|
51 |
+
|
52 |
+
}, //End nextcellent test, the rest are examples!
|
53 |
+
//One question: QUnit can be useful also for other things than Javascript?
|
54 |
+
|
55 |
+
//Following are examples to take advantage as future reference (from editorial calendar plugin)
|
56 |
+
getFirstDate: function() {
|
57 |
+
var api = jQuery('#edcal_scrollable').scrollable();
|
58 |
+
var items = api.getVisibleItems();
|
59 |
+
|
60 |
+
return edcal.getDayFromDayId(items.eq(0).children('.edcal_row').children('.day:first').attr('id'));
|
61 |
+
},
|
62 |
+
|
63 |
+
getLastDate: function() {
|
64 |
+
var api = jQuery('#edcal_scrollable').scrollable();
|
65 |
+
var items = api.getVisibleItems();
|
66 |
+
|
67 |
+
return edcal.getDayFromDayId(items.eq(edcal.weeksPref - 1).children('.edcal_row').children('.day:last').attr('id'));
|
68 |
+
},
|
69 |
+
|
70 |
+
moveTests: function() {
|
71 |
+
var curSunday = edcal.nextStartOfWeek(Date.today()).add(-1).weeks();
|
72 |
+
|
73 |
+
edcal.moveTo(Date.today());
|
74 |
+
|
75 |
+
/*
|
76 |
+
* We'll start of with a series of tests about moving the calendar around
|
77 |
+
*/
|
78 |
+
test('Move to today and check visible dates', function() {
|
79 |
+
expect(2);
|
80 |
+
ok(nxc_test.getFirstDate().equals(curSunday.clone()), 'firstDate should match ' + curSunday);
|
81 |
+
|
82 |
+
ok(nxc_test.getLastDate().equals(curSunday.clone().add(edcal.weeksPref).weeks().add(-1).days()),
|
83 |
+
'lastDate should match ' + curSunday);
|
84 |
+
});
|
85 |
+
|
86 |
+
asyncTest('Move 1 week in the future and check visible dates', function() {
|
87 |
+
expect(2);
|
88 |
+
edcal.move(1, true, function() {
|
89 |
+
ok(nxc_test.getFirstDate().equals(curSunday.clone().add(1).weeks()), 'firstDate should match ' + curSunday);
|
90 |
+
|
91 |
+
ok(nxc_test.getLastDate().equals(curSunday.clone().add(edcal.weeksPref).weeks().add(-1).days().add(1).weeks()),
|
92 |
+
'lastDate should match ' + curSunday);
|
93 |
+
|
94 |
+
edcal.move(1, false, function() {
|
95 |
+
start();
|
96 |
+
nxc_test.testMoveFourWeeks();
|
97 |
+
});
|
98 |
+
});
|
99 |
+
});
|
100 |
+
|
101 |
+
return;
|
102 |
+
|
103 |
+
},
|
104 |
+
|
105 |
+
testMoveFourWeeks: function() {
|
106 |
+
var curSunday = edcal.nextStartOfWeek(Date.today()).add(-1).weeks();
|
107 |
+
|
108 |
+
/*
|
109 |
+
* Now we'll move 4 weeks into the future
|
110 |
+
*/
|
111 |
+
asyncTest('Move 4 weeks in the future and check visible dates', function() {
|
112 |
+
expect(2);
|
113 |
+
|
114 |
+
edcal.move(4, true, function() {
|
115 |
+
ok(nxc_test.getFirstDate().equals(curSunday.clone().add(4).weeks()), 'firstDate should match ' + curSunday);
|
116 |
+
|
117 |
+
ok(nxc_test.getLastDate().equals(curSunday.clone().add(edcal.weeksPref).weeks().add(-1).days().add(4).weeks()),
|
118 |
+
'lastDate should match ' + curSunday);
|
119 |
+
|
120 |
+
edcal.move(4, false, function() {
|
121 |
+
start();
|
122 |
+
nxc_test.testMoveEightWeeks();
|
123 |
+
});
|
124 |
+
});
|
125 |
+
|
126 |
+
|
127 |
+
});
|
128 |
+
},
|
129 |
+
|
130 |
+
testMoveEightWeeks: function() {
|
131 |
+
var curSunday = edcal.nextStartOfWeek(Date.today()).add(-1).weeks();
|
132 |
+
|
133 |
+
/*
|
134 |
+
* Now 8 weeks into the past
|
135 |
+
*/
|
136 |
+
asyncTest('Move 8 weeks in the past and check visible dates', function() {
|
137 |
+
expect(2);
|
138 |
+
|
139 |
+
edcal.move(8, false, function() {
|
140 |
+
ok(nxc_test.getFirstDate().equals(curSunday.clone().add(-8).weeks()), 'firstDate should match ' + curSunday);
|
141 |
+
|
142 |
+
ok(nxc_test.getLastDate().equals(curSunday.clone().add(edcal.weeksPref).weeks().add(-1).days().add(-8).weeks()),
|
143 |
+
'lastDate should match ' + curSunday);
|
144 |
+
|
145 |
+
edcal.move(8, true, function() {
|
146 |
+
start();
|
147 |
+
nxc_test.testMoveToLast();
|
148 |
+
});
|
149 |
+
});
|
150 |
+
|
151 |
+
|
152 |
+
});
|
153 |
+
},
|
154 |
+
|
155 |
+
testMoveToLast: function() {
|
156 |
+
if (edcal.lastPostDate === '-1') {
|
157 |
+
/*
|
158 |
+
* Then there aren't any posts and we can't go
|
159 |
+
* to the last one so we just skip this test.
|
160 |
+
*/
|
161 |
+
nxc_test.testCreatePost();
|
162 |
+
return;
|
163 |
+
}
|
164 |
+
|
165 |
+
var d = Date.parseExact(edcal.lastPostDate, 'ddMMyyyy');
|
166 |
+
var curSunday = edcal.nextStartOfWeek(d).add(-1).weeks();
|
167 |
+
|
168 |
+
/*
|
169 |
+
* Now move to the last post, get the post date, and make sure the post
|
170 |
+
* is there with the correct ID.
|
171 |
+
*/
|
172 |
+
asyncTest('Move to the last post', function() {
|
173 |
+
expect(1);
|
174 |
+
|
175 |
+
edcal.moveTo(d);
|
176 |
+
edcal.getPosts(edcal.nextStartOfWeek(d).add(-3).weeks(),
|
177 |
+
edcal.nextStartOfWeek(d).add(edcal.weeksPref + 3).weeks(), function() {
|
178 |
+
|
179 |
+
equals(jQuery('#post-' + edcal.lastPostId).length, 1, 'The post should be added at ' +
|
180 |
+
d.toString(Date.CultureInfo.formatPatterns.longDate));
|
181 |
+
|
182 |
+
edcal.moveTo(Date.today());
|
183 |
+
start();
|
184 |
+
nxc_test.testCreatePost();
|
185 |
+
});
|
186 |
+
|
187 |
+
|
188 |
+
});
|
189 |
+
},
|
190 |
+
|
191 |
+
testCreatePost: function() {
|
192 |
+
/*
|
193 |
+
* Now we'll do a few tests about creating, modifying, and deleting posts.
|
194 |
+
*/
|
195 |
+
|
196 |
+
asyncTest('Create a new post', function() {
|
197 |
+
expect(3);
|
198 |
+
|
199 |
+
nxc_test.post.title = 'Unit Test Post';
|
200 |
+
nxc_test.post.content = nxc_test.testContent;
|
201 |
+
nxc_test.post.status = 'draft';
|
202 |
+
nxc_test.post.time = '10:00 AM';
|
203 |
+
nxc_test.post.date = Date.today().add(7).days().toString(edcal.internalDateFormat);
|
204 |
+
nxc_test.post.id = '0';
|
205 |
+
|
206 |
+
edcal.savePost(nxc_test.post, false, false, function(res) {
|
207 |
+
if (!res.post) {
|
208 |
+
ok(false, 'There was an error creating the new post.');
|
209 |
+
start();
|
210 |
+
return;
|
211 |
+
}
|
212 |
+
|
213 |
+
equals(res.post.date, nxc_test.post.date, 'The resulting post should have the same date as the request');
|
214 |
+
equals(res.post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
215 |
+
|
216 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
217 |
+
|
218 |
+
nxc_test.post = res.post;
|
219 |
+
|
220 |
+
start();
|
221 |
+
|
222 |
+
nxc_test.testGetPost();
|
223 |
+
});
|
224 |
+
});
|
225 |
+
|
226 |
+
},
|
227 |
+
|
228 |
+
testGetPost: function() {
|
229 |
+
/*
|
230 |
+
* We'll start by getting data about the post we've just created
|
231 |
+
*/
|
232 |
+
|
233 |
+
asyncTest('Get post information', function() {
|
234 |
+
expect(3);
|
235 |
+
|
236 |
+
edcal.getPost(nxc_test.post.id, function(post) {
|
237 |
+
equals(post.date, nxc_test.post.date, 'The resulting post should have the same date as the request');
|
238 |
+
equals(post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
239 |
+
equals(post.content, nxc_test.testContent, 'The resulting post content should be the same as the test post content');
|
240 |
+
|
241 |
+
nxc_test.post = post;
|
242 |
+
|
243 |
+
start();
|
244 |
+
|
245 |
+
nxc_test.testMovePost();
|
246 |
+
});
|
247 |
+
});
|
248 |
+
|
249 |
+
},
|
250 |
+
|
251 |
+
testMovePost: function() {
|
252 |
+
|
253 |
+
asyncTest('Change the date of an existing post', function() {
|
254 |
+
expect(2);
|
255 |
+
|
256 |
+
// We added the post one week in the future, now we will move it
|
257 |
+
// one day after that.
|
258 |
+
var newDate = Date.today().add(8).days().toString(edcal.internalDateFormat);
|
259 |
+
|
260 |
+
edcal.doDrop(nxc_test.post.date, 'post-' + nxc_test.post.id, newDate, function(res) {
|
261 |
+
|
262 |
+
if (!res.post) {
|
263 |
+
ok(false, 'There was an error creating the new post.');
|
264 |
+
return;
|
265 |
+
}
|
266 |
+
|
267 |
+
equals(res.post.date, newDate, 'The resulting post should have the same date as the request');
|
268 |
+
|
269 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
270 |
+
|
271 |
+
nxc_test.post = res.post;
|
272 |
+
|
273 |
+
start();
|
274 |
+
|
275 |
+
nxc_test.testMovePostOneWeek();
|
276 |
+
});
|
277 |
+
});
|
278 |
+
|
279 |
+
},
|
280 |
+
|
281 |
+
testMovePostOneWeek: function() {
|
282 |
+
|
283 |
+
asyncTest('Make a second change to the date of an existing post', function() {
|
284 |
+
expect(2);
|
285 |
+
|
286 |
+
// We added the post one week in the future, now we will move it
|
287 |
+
// one day after that.
|
288 |
+
var newDate = Date.today().add(22).days().toString(edcal.internalDateFormat);
|
289 |
+
|
290 |
+
edcal.doDrop(nxc_test.post.date, 'post-' + nxc_test.post.id, newDate, function(res) {
|
291 |
+
|
292 |
+
if (!res.post) {
|
293 |
+
ok(false, 'There was an error creating the new post.');
|
294 |
+
return;
|
295 |
+
}
|
296 |
+
|
297 |
+
equals(res.post.date, newDate, 'The resulting post should have the same date as the request');
|
298 |
+
|
299 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
300 |
+
|
301 |
+
nxc_test.post = res.post;
|
302 |
+
|
303 |
+
start();
|
304 |
+
|
305 |
+
nxc_test.testMovePostDraft();
|
306 |
+
});
|
307 |
+
});
|
308 |
+
|
309 |
+
},
|
310 |
+
|
311 |
+
testMovePostDraft: function() {
|
312 |
+
|
313 |
+
asyncTest('Move an existing post to the drafts drawer', function() {
|
314 |
+
expect(2);
|
315 |
+
|
316 |
+
edcal.doDrop(nxc_test.post.date, 'post-' + nxc_test.post.id, edcal.NO_DATE, function(res) {
|
317 |
+
|
318 |
+
if (!res.post) {
|
319 |
+
ok(false, 'There was an error creating the new post.');
|
320 |
+
return;
|
321 |
+
}
|
322 |
+
|
323 |
+
equals(res.post.date_gmt, edcal.NO_DATE, 'The resulting post should have the same date as the request and it was ' + res.post.date);
|
324 |
+
|
325 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
326 |
+
|
327 |
+
nxc_test.post = res.post;
|
328 |
+
|
329 |
+
start();
|
330 |
+
|
331 |
+
nxc_test.testEditPostDraft();
|
332 |
+
});
|
333 |
+
});
|
334 |
+
|
335 |
+
},
|
336 |
+
|
337 |
+
testEditPostDraft: function() {
|
338 |
+
|
339 |
+
asyncTest('Edit the content of a draft post', function() {
|
340 |
+
expect(2);
|
341 |
+
|
342 |
+
nxc_test.post.title = 'Unit Test Draft Post – Changed';
|
343 |
+
nxc_test.post.content = nxc_test.testContent3;
|
344 |
+
|
345 |
+
edcal.savePost(nxc_test.post, false, false, function(res)
|
346 |
+
{
|
347 |
+
if (!res.post) {
|
348 |
+
ok(false, 'There was an error editing the post.');
|
349 |
+
start();
|
350 |
+
return;
|
351 |
+
}
|
352 |
+
|
353 |
+
equals(res.post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
354 |
+
|
355 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
356 |
+
|
357 |
+
nxc_test.post = res.post;
|
358 |
+
|
359 |
+
start();
|
360 |
+
|
361 |
+
nxc_test.testMovePostDraftSchedule();
|
362 |
+
|
363 |
+
});
|
364 |
+
});
|
365 |
+
},
|
366 |
+
|
367 |
+
testMovePostDraftSchedule: function() {
|
368 |
+
|
369 |
+
asyncTest('Move a post from the drafts drawer back to the calendar', function() {
|
370 |
+
expect(2);
|
371 |
+
|
372 |
+
// We added the post one week in the future, now we will move it
|
373 |
+
// two days after that.
|
374 |
+
var newDate = Date.today().add(23).days().toString(edcal.internalDateFormat);
|
375 |
+
|
376 |
+
edcal.doDrop(edcal.NO_DATE, 'post-' + nxc_test.post.id, newDate, function(res) {
|
377 |
+
|
378 |
+
if (!res.post) {
|
379 |
+
ok(false, 'There was an error creating the new post.');
|
380 |
+
return;
|
381 |
+
}
|
382 |
+
|
383 |
+
equals(res.post.date, newDate, 'The resulting post should have the same date as the request and it was ' + res.post.date);
|
384 |
+
|
385 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
386 |
+
|
387 |
+
nxc_test.post = res.post;
|
388 |
+
|
389 |
+
start();
|
390 |
+
|
391 |
+
nxc_test.testEditPost();
|
392 |
+
});
|
393 |
+
});
|
394 |
+
|
395 |
+
},
|
396 |
+
|
397 |
+
testEditPost: function() {
|
398 |
+
|
399 |
+
asyncTest('Edit the content of an existing post and mark it as scheduled', function() {
|
400 |
+
expect(2);
|
401 |
+
|
402 |
+
nxc_test.post.title = 'Unit Test Post – Changed';
|
403 |
+
nxc_test.post.content = nxc_test.testContent2;
|
404 |
+
|
405 |
+
edcal.savePost(nxc_test.post, false, true, function(res)
|
406 |
+
{
|
407 |
+
if (!res.post) {
|
408 |
+
ok(false, 'There was an error editing the post.');
|
409 |
+
start();
|
410 |
+
return;
|
411 |
+
}
|
412 |
+
|
413 |
+
equals(res.post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
414 |
+
|
415 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
416 |
+
|
417 |
+
nxc_test.post = res.post;
|
418 |
+
|
419 |
+
start();
|
420 |
+
|
421 |
+
nxc_test.testGetAfterEdit();
|
422 |
+
|
423 |
+
});
|
424 |
+
});
|
425 |
+
|
426 |
+
},
|
427 |
+
|
428 |
+
testGetAfterEdit: function() {
|
429 |
+
/*
|
430 |
+
* Now we'll test to make sure our new post data still matches what we think it should
|
431 |
+
*/
|
432 |
+
|
433 |
+
asyncTest('Get post information after editing', function() {
|
434 |
+
expect(3);
|
435 |
+
|
436 |
+
edcal.getPost(nxc_test.post.id, function(post) {
|
437 |
+
equals(post.date, nxc_test.post.date, 'The resulting post should have the same date as the request');
|
438 |
+
equals(post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
439 |
+
equals(post.content, nxc_test.testContent2, 'The resulting post content should be the same as the test post content');
|
440 |
+
|
441 |
+
nxc_test.post = post;
|
442 |
+
|
443 |
+
start();
|
444 |
+
|
445 |
+
nxc_test.testDateConflict();
|
446 |
+
});
|
447 |
+
});
|
448 |
+
|
449 |
+
},
|
450 |
+
|
451 |
+
testDateConflict: function() {
|
452 |
+
asyncTest('Try to change a post date and fail because of a concurrency conflict', function() {
|
453 |
+
expect(2);
|
454 |
+
|
455 |
+
nxc_test.post.date = Date.today().add(-1).days().toString(edcal.internalDateFormat);
|
456 |
+
|
457 |
+
/*
|
458 |
+
* We added the post one week in the future, now we will move it
|
459 |
+
* one day after that.
|
460 |
+
*/
|
461 |
+
var newDate = Date.today().add(8).days().toString(edcal.internalDateFormat);
|
462 |
+
|
463 |
+
edcal.changeDate(newDate, nxc_test.post, function(res)
|
464 |
+
{
|
465 |
+
if (!res.post) {
|
466 |
+
ok(false, 'There was an error with the change date conflict.');
|
467 |
+
return;
|
468 |
+
}
|
469 |
+
|
470 |
+
equals(res.error, edcal.CONCURRENCY_ERROR, 'This move should show an exception because it is in conflict.');
|
471 |
+
|
472 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
473 |
+
|
474 |
+
nxc_test.post = res.post;
|
475 |
+
|
476 |
+
start();
|
477 |
+
|
478 |
+
nxc_test.testDeletePost();
|
479 |
+
|
480 |
+
});
|
481 |
+
});
|
482 |
+
|
483 |
+
},
|
484 |
+
|
485 |
+
testDeletePost: function() {
|
486 |
+
|
487 |
+
/*
|
488 |
+
* The last step is to delete the post we made so
|
489 |
+
* the test cleans up after itself.
|
490 |
+
*/
|
491 |
+
asyncTest('Delete the post created for testing', function() {
|
492 |
+
expect(1);
|
493 |
+
|
494 |
+
edcal.deletePost(nxc_test.post.id, function(res)
|
495 |
+
{
|
496 |
+
if (!res.post) {
|
497 |
+
ok(false, 'There was an error creating the new post.');
|
498 |
+
start();
|
499 |
+
return;
|
500 |
+
}
|
501 |
+
|
502 |
+
equals(jQuery('#post-' + res.post.id).length, 0, 'The post should now be deleted from the calendar.');
|
503 |
+
start();
|
504 |
+
|
505 |
+
nxc_test.testCreateDraftDrawerPost();
|
506 |
+
|
507 |
+
});
|
508 |
+
});
|
509 |
+
},
|
510 |
+
|
511 |
+
testCreateDraftDrawerPost: function() {
|
512 |
+
/*
|
513 |
+
* Now we'll create a new post in the drafts drawer
|
514 |
+
*/
|
515 |
+
|
516 |
+
asyncTest('Create a new drafts drawer post', function() {
|
517 |
+
expect(2);
|
518 |
+
|
519 |
+
nxc_test.post.title = 'Unit Test Drafts Drawer Post';
|
520 |
+
nxc_test.post.content = nxc_test.testContent;
|
521 |
+
nxc_test.post.status = 'draft';
|
522 |
+
nxc_test.post.time = edcal.NO_DATE;
|
523 |
+
nxc_test.post.date = edcal.NO_DATE;
|
524 |
+
nxc_test.post.id = '0';
|
525 |
+
|
526 |
+
edcal.savePost(nxc_test.post, false, false, function(res) {
|
527 |
+
if (!res.post) {
|
528 |
+
ok(false, 'There was an error creating the new post.');
|
529 |
+
start();
|
530 |
+
return;
|
531 |
+
}
|
532 |
+
|
533 |
+
equals(res.post.title, nxc_test.post.title, 'The resulting post should have the same title as the request');
|
534 |
+
|
535 |
+
equals(jQuery('#post-' + res.post.id).length, 1, 'The post should be added in only one place in the calendar.');
|
536 |
+
|
537 |
+
nxc_test.post = res.post;
|
538 |
+
|
539 |
+
start();
|
540 |
+
|
541 |
+
nxc_test.testDeleteDraftDrawerPost();
|
542 |
+
});
|
543 |
+
});
|
544 |
+
|
545 |
+
},
|
546 |
+
|
547 |
+
testDeleteDraftDrawerPost: function() {
|
548 |
+
|
549 |
+
/*
|
550 |
+
* The last step is to delete the post we made so
|
551 |
+
* the test cleans up after itself.
|
552 |
+
*/
|
553 |
+
asyncTest('Delete the post created for drafts drawer testing', function() {
|
554 |
+
expect(1);
|
555 |
+
|
556 |
+
edcal.deletePost(nxc_test.post.id, function(res)
|
557 |
+
{
|
558 |
+
if (!res.post) {
|
559 |
+
ok(false, 'There was an error creating the new post.');
|
560 |
+
start();
|
561 |
+
return;
|
562 |
+
}
|
563 |
+
|
564 |
+
equals(jQuery('#post-' + res.post.id).length, 0, 'The post should now be deleted from the calendar.');
|
565 |
+
start();
|
566 |
+
|
567 |
+
nxc_test.finishTests();
|
568 |
+
|
569 |
+
});
|
570 |
+
});
|
571 |
+
},
|
572 |
+
|
573 |
+
finishTests: function() {
|
574 |
+
if (!nxc_test.isDraftsDrawerVisible) {
|
575 |
+
/*
|
576 |
+
* We need to make sure the drafts drawer is open because
|
577 |
+
* we can use it in the tests so we open it when the tests
|
578 |
+
* start if it isn't open already. We want to close it at
|
579 |
+
* the end if we opened it.
|
580 |
+
*/
|
581 |
+
edcal.setDraftsDrawerVisible(false);
|
582 |
+
}
|
583 |
+
}
|
584 |
+
};
|
js/owl.carousel.js
ADDED
@@ -0,0 +1,3069 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Owl carousel
|
3 |
+
* @version 2.0.0
|
4 |
+
* @author Bartosz Wojciechowski
|
5 |
+
* @license The MIT License (MIT)
|
6 |
+
* @todo Lazy Load Icon
|
7 |
+
* @todo prevent animationend bubling
|
8 |
+
* @todo itemsScaleUp
|
9 |
+
* @todo Test Zepto
|
10 |
+
* @todo stagePadding calculate wrong active classes
|
11 |
+
*/
|
12 |
+
;(function($, window, document, undefined) {
|
13 |
+
|
14 |
+
var drag, state, e;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Template for status information about drag and touch events.
|
18 |
+
* @private
|
19 |
+
*/
|
20 |
+
drag = {
|
21 |
+
start: 0,
|
22 |
+
startX: 0,
|
23 |
+
startY: 0,
|
24 |
+
current: 0,
|
25 |
+
currentX: 0,
|
26 |
+
currentY: 0,
|
27 |
+
offsetX: 0,
|
28 |
+
offsetY: 0,
|
29 |
+
distance: null,
|
30 |
+
startTime: 0,
|
31 |
+
endTime: 0,
|
32 |
+
updatedX: 0,
|
33 |
+
targetEl: null
|
34 |
+
};
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Template for some status informations.
|
38 |
+
* @private
|
39 |
+
*/
|
40 |
+
state = {
|
41 |
+
isTouch: false,
|
42 |
+
isScrolling: false,
|
43 |
+
isSwiping: false,
|
44 |
+
direction: false,
|
45 |
+
inMotion: false
|
46 |
+
};
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Event functions references.
|
50 |
+
* @private
|
51 |
+
*/
|
52 |
+
e = {
|
53 |
+
_onDragStart: null,
|
54 |
+
_onDragMove: null,
|
55 |
+
_onDragEnd: null,
|
56 |
+
_transitionEnd: null,
|
57 |
+
_resizer: null,
|
58 |
+
_responsiveCall: null,
|
59 |
+
_goToLoop: null,
|
60 |
+
_checkVisibile: null
|
61 |
+
};
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Creates a carousel.
|
65 |
+
* @class The Owl Carousel.
|
66 |
+
* @public
|
67 |
+
* @param {HTMLElement|jQuery} element - The element to create the carousel for.
|
68 |
+
* @param {Object} [options] - The options
|
69 |
+
*/
|
70 |
+
function Owl(element, options) {
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Current settings for the carousel.
|
74 |
+
* @public
|
75 |
+
*/
|
76 |
+
this.settings = null;
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Current options set by the caller including defaults.
|
80 |
+
* @public
|
81 |
+
*/
|
82 |
+
this.options = $.extend({}, Owl.Defaults, options);
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Plugin element.
|
86 |
+
* @public
|
87 |
+
*/
|
88 |
+
this.$element = $(element);
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Caches informations about drag and touch events.
|
92 |
+
*/
|
93 |
+
this.drag = $.extend({}, drag);
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Caches some status informations.
|
97 |
+
* @protected
|
98 |
+
*/
|
99 |
+
this.state = $.extend({}, state);
|
100 |
+
|
101 |
+
/**
|
102 |
+
* @protected
|
103 |
+
* @todo Must be documented
|
104 |
+
*/
|
105 |
+
this.e = $.extend({}, e);
|
106 |
+
|
107 |
+
/**
|
108 |
+
* References to the running plugins of this carousel.
|
109 |
+
* @protected
|
110 |
+
*/
|
111 |
+
this._plugins = {};
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Currently suppressed events to prevent them from beeing retriggered.
|
115 |
+
* @protected
|
116 |
+
*/
|
117 |
+
this._supress = {};
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Absolute current position.
|
121 |
+
* @protected
|
122 |
+
*/
|
123 |
+
this._current = null;
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Animation speed in milliseconds.
|
127 |
+
* @protected
|
128 |
+
*/
|
129 |
+
this._speed = null;
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Coordinates of all items in pixel.
|
133 |
+
* @todo The name of this member is missleading.
|
134 |
+
* @protected
|
135 |
+
*/
|
136 |
+
this._coordinates = [];
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Current breakpoint.
|
140 |
+
* @todo Real media queries would be nice.
|
141 |
+
* @protected
|
142 |
+
*/
|
143 |
+
this._breakpoint = null;
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Current width of the plugin element.
|
147 |
+
*/
|
148 |
+
this._width = null;
|
149 |
+
|
150 |
+
/**
|
151 |
+
* All real items.
|
152 |
+
* @protected
|
153 |
+
*/
|
154 |
+
this._items = [];
|
155 |
+
|
156 |
+
/**
|
157 |
+
* All cloned items.
|
158 |
+
* @protected
|
159 |
+
*/
|
160 |
+
this._clones = [];
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Merge values of all items.
|
164 |
+
* @todo Maybe this could be part of a plugin.
|
165 |
+
* @protected
|
166 |
+
*/
|
167 |
+
this._mergers = [];
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Invalidated parts within the update process.
|
171 |
+
* @protected
|
172 |
+
*/
|
173 |
+
this._invalidated = {};
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Ordered list of workers for the update process.
|
177 |
+
* @protected
|
178 |
+
*/
|
179 |
+
this._pipe = [];
|
180 |
+
|
181 |
+
$.each(Owl.Plugins, $.proxy(function(key, plugin) {
|
182 |
+
this._plugins[key[0].toLowerCase() + key.slice(1)]
|
183 |
+
= new plugin(this);
|
184 |
+
}, this));
|
185 |
+
|
186 |
+
$.each(Owl.Pipe, $.proxy(function(priority, worker) {
|
187 |
+
this._pipe.push({
|
188 |
+
'filter': worker.filter,
|
189 |
+
'run': $.proxy(worker.run, this)
|
190 |
+
});
|
191 |
+
}, this));
|
192 |
+
|
193 |
+
this.setup();
|
194 |
+
this.initialize();
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Default options for the carousel.
|
199 |
+
* @public
|
200 |
+
*/
|
201 |
+
Owl.Defaults = {
|
202 |
+
items: 3,
|
203 |
+
loop: false,
|
204 |
+
center: false,
|
205 |
+
|
206 |
+
mouseDrag: true,
|
207 |
+
touchDrag: true,
|
208 |
+
pullDrag: true,
|
209 |
+
freeDrag: false,
|
210 |
+
|
211 |
+
margin: 0,
|
212 |
+
stagePadding: 0,
|
213 |
+
|
214 |
+
merge: false,
|
215 |
+
mergeFit: true,
|
216 |
+
autoWidth: false,
|
217 |
+
|
218 |
+
startPosition: 0,
|
219 |
+
rtl: false,
|
220 |
+
|
221 |
+
smartSpeed: 250,
|
222 |
+
fluidSpeed: false,
|
223 |
+
dragEndSpeed: false,
|
224 |
+
|
225 |
+
responsive: {},
|
226 |
+
responsiveRefreshRate: 200,
|
227 |
+
responsiveBaseElement: window,
|
228 |
+
responsiveClass: false,
|
229 |
+
|
230 |
+
fallbackEasing: 'swing',
|
231 |
+
|
232 |
+
info: false,
|
233 |
+
|
234 |
+
nestedItemSelector: false,
|
235 |
+
itemElement: 'div',
|
236 |
+
stageElement: 'div',
|
237 |
+
|
238 |
+
// Classes and Names
|
239 |
+
themeClass: 'owl-theme',
|
240 |
+
baseClass: 'owl-carousel',
|
241 |
+
itemClass: 'owl-item',
|
242 |
+
centerClass: 'center',
|
243 |
+
activeClass: 'active'
|
244 |
+
};
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Enumeration for width.
|
248 |
+
* @public
|
249 |
+
* @readonly
|
250 |
+
* @enum {String}
|
251 |
+
*/
|
252 |
+
Owl.Width = {
|
253 |
+
Default: 'default',
|
254 |
+
Inner: 'inner',
|
255 |
+
Outer: 'outer'
|
256 |
+
};
|
257 |
+
|
258 |
+
/**
|
259 |
+
* Contains all registered plugins.
|
260 |
+
* @public
|
261 |
+
*/
|
262 |
+
Owl.Plugins = {};
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Update pipe.
|
266 |
+
*/
|
267 |
+
Owl.Pipe = [ {
|
268 |
+
filter: [ 'width', 'items', 'settings' ],
|
269 |
+
run: function(cache) {
|
270 |
+
cache.current = this._items && this._items[this.relative(this._current)];
|
271 |
+
}
|
272 |
+
}, {
|
273 |
+
filter: [ 'items', 'settings' ],
|
274 |
+
run: function() {
|
275 |
+
var cached = this._clones,
|
276 |
+
clones = this.$stage.children('.cloned');
|
277 |
+
|
278 |
+
if (clones.length !== cached.length || (!this.settings.loop && cached.length > 0)) {
|
279 |
+
this.$stage.children('.cloned').remove();
|
280 |
+
this._clones = [];
|
281 |
+
}
|
282 |
+
}
|
283 |
+
}, {
|
284 |
+
filter: [ 'items', 'settings' ],
|
285 |
+
run: function() {
|
286 |
+
var i, n,
|
287 |
+
clones = this._clones,
|
288 |
+
items = this._items,
|
289 |
+
delta = this.settings.loop ? clones.length - Math.max(this.settings.items * 2, 4) : 0;
|
290 |
+
|
291 |
+
for (i = 0, n = Math.abs(delta / 2); i < n; i++) {
|
292 |
+
if (delta > 0) {
|
293 |
+
this.$stage.children().eq(items.length + clones.length - 1).remove();
|
294 |
+
clones.pop();
|
295 |
+
this.$stage.children().eq(0).remove();
|
296 |
+
clones.pop();
|
297 |
+
} else {
|
298 |
+
clones.push(clones.length / 2);
|
299 |
+
this.$stage.append(items[clones[clones.length - 1]].clone().addClass('cloned'));
|
300 |
+
clones.push(items.length - 1 - (clones.length - 1) / 2);
|
301 |
+
this.$stage.prepend(items[clones[clones.length - 1]].clone().addClass('cloned'));
|
302 |
+
}
|
303 |
+
}
|
304 |
+
}
|
305 |
+
}, {
|
306 |
+
filter: [ 'width', 'items', 'settings' ],
|
307 |
+
run: function() {
|
308 |
+
var rtl = (this.settings.rtl ? 1 : -1),
|
309 |
+
width = (this.width() / this.settings.items).toFixed(3),
|
310 |
+
coordinate = 0, merge, i, n;
|
311 |
+
|
312 |
+
this._coordinates = [];
|
313 |
+
for (i = 0, n = this._clones.length + this._items.length; i < n; i++) {
|
314 |
+
merge = this._mergers[this.relative(i)];
|
315 |
+
merge = (this.settings.mergeFit && Math.min(merge, this.settings.items)) || merge;
|
316 |
+
coordinate += (this.settings.autoWidth ? this._items[this.relative(i)].width() + this.settings.margin : width * merge) * rtl;
|
317 |
+
|
318 |
+
this._coordinates.push(coordinate);
|
319 |
+
}
|
320 |
+
}
|
321 |
+
}, {
|
322 |
+
filter: [ 'width', 'items', 'settings' ],
|
323 |
+
run: function() {
|
324 |
+
var i, n, width = (this.width() / this.settings.items).toFixed(3), css = {
|
325 |
+
'width': Math.abs(this._coordinates[this._coordinates.length - 1]) + this.settings.stagePadding * 2,
|
326 |
+
'padding-left': this.settings.stagePadding || '',
|
327 |
+
'padding-right': this.settings.stagePadding || ''
|
328 |
+
};
|
329 |
+
|
330 |
+
this.$stage.css(css);
|
331 |
+
|
332 |
+
css = { 'width': this.settings.autoWidth ? 'auto' : width - this.settings.margin };
|
333 |
+
css[this.settings.rtl ? 'margin-left' : 'margin-right'] = this.settings.margin;
|
334 |
+
|
335 |
+
if (!this.settings.autoWidth && $.grep(this._mergers, function(v) { return v > 1 }).length > 0) {
|
336 |
+
for (i = 0, n = this._coordinates.length; i < n; i++) {
|
337 |
+
css.width = Math.abs(this._coordinates[i]) - Math.abs(this._coordinates[i - 1] || 0) - this.settings.margin;
|
338 |
+
this.$stage.children().eq(i).css(css);
|
339 |
+
}
|
340 |
+
} else {
|
341 |
+
this.$stage.children().css(css);
|
342 |
+
}
|
343 |
+
}
|
344 |
+
}, {
|
345 |
+
filter: [ 'width', 'items', 'settings' ],
|
346 |
+
run: function(cache) {
|
347 |
+
cache.current && this.reset(this.$stage.children().index(cache.current));
|
348 |
+
}
|
349 |
+
}, {
|
350 |
+
filter: [ 'position' ],
|
351 |
+
run: function() {
|
352 |
+
this.animate(this.coordinates(this._current));
|
353 |
+
}
|
354 |
+
}, {
|
355 |
+
filter: [ 'width', 'position', 'items', 'settings' ],
|
356 |
+
run: function() {
|
357 |
+
var rtl = this.settings.rtl ? 1 : -1,
|
358 |
+
padding = this.settings.stagePadding * 2,
|
359 |
+
begin = this.coordinates(this.current()) + padding,
|
360 |
+
end = begin + this.width() * rtl,
|
361 |
+
inner, outer, matches = [], i, n;
|
362 |
+
|
363 |
+
for (i = 0, n = this._coordinates.length; i < n; i++) {
|
364 |
+
inner = this._coordinates[i - 1] || 0;
|
365 |
+
outer = Math.abs(this._coordinates[i]) + padding * rtl;
|
366 |
+
|
367 |
+
if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))
|
368 |
+
|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {
|
369 |
+
matches.push(i);
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
this.$stage.children('.' + this.settings.activeClass).removeClass(this.settings.activeClass);
|
374 |
+
this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass(this.settings.activeClass);
|
375 |
+
|
376 |
+
if (this.settings.center) {
|
377 |
+
this.$stage.children('.' + this.settings.centerClass).removeClass(this.settings.centerClass);
|
378 |
+
this.$stage.children().eq(this.current()).addClass(this.settings.centerClass);
|
379 |
+
}
|
380 |
+
}
|
381 |
+
} ];
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Initializes the carousel.
|
385 |
+
* @protected
|
386 |
+
*/
|
387 |
+
Owl.prototype.initialize = function() {
|
388 |
+
this.trigger('initialize');
|
389 |
+
|
390 |
+
this.$element
|
391 |
+
.addClass(this.settings.baseClass)
|
392 |
+
.addClass(this.settings.themeClass)
|
393 |
+
.toggleClass('owl-rtl', this.settings.rtl);
|
394 |
+
|
395 |
+
// check support
|
396 |
+
this.browserSupport();
|
397 |
+
|
398 |
+
if (this.settings.autoWidth && this.state.imagesLoaded !== true) {
|
399 |
+
var imgs, nestedSelector, width;
|
400 |
+
imgs = this.$element.find('img');
|
401 |
+
nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;
|
402 |
+
width = this.$element.children(nestedSelector).width();
|
403 |
+
|
404 |
+
if (imgs.length && width <= 0) {
|
405 |
+
this.preloadAutoWidthImages(imgs);
|
406 |
+
return false;
|
407 |
+
}
|
408 |
+
}
|
409 |
+
|
410 |
+
this.$element.addClass('owl-loading');
|
411 |
+
|
412 |
+
// create stage
|
413 |
+
this.$stage = $('<' + this.settings.stageElement + ' class="owl-stage"/>')
|
414 |
+
.wrap('<div class="owl-stage-outer">');
|
415 |
+
|
416 |
+
// append stage
|
417 |
+
this.$element.append(this.$stage.parent());
|
418 |
+
|
419 |
+
// append content
|
420 |
+
this.replace(this.$element.children().not(this.$stage.parent()));
|
421 |
+
|
422 |
+
// set view width
|
423 |
+
this._width = this.$element.width();
|
424 |
+
|
425 |
+
// update view
|
426 |
+
this.refresh();
|
427 |
+
|
428 |
+
this.$element.removeClass('owl-loading').addClass('owl-loaded');
|
429 |
+
|
430 |
+
// attach generic events
|
431 |
+
this.eventsCall();
|
432 |
+
|
433 |
+
// attach generic events
|
434 |
+
this.internalEvents();
|
435 |
+
|
436 |
+
// attach custom control events
|
437 |
+
this.addTriggerableEvents();
|
438 |
+
|
439 |
+
this.trigger('initialized');
|
440 |
+
};
|
441 |
+
|
442 |
+
/**
|
443 |
+
* Setups the current settings.
|
444 |
+
* @todo Remove responsive classes. Why should adaptive designs be brought into IE8?
|
445 |
+
* @todo Support for media queries by using `matchMedia` would be nice.
|
446 |
+
* @public
|
447 |
+
*/
|
448 |
+
Owl.prototype.setup = function() {
|
449 |
+
var viewport = this.viewport(),
|
450 |
+
overwrites = this.options.responsive,
|
451 |
+
match = -1,
|
452 |
+
settings = null;
|
453 |
+
|
454 |
+
if (!overwrites) {
|
455 |
+
settings = $.extend({}, this.options);
|
456 |
+
} else {
|
457 |
+
$.each(overwrites, function(breakpoint) {
|
458 |
+
if (breakpoint <= viewport && breakpoint > match) {
|
459 |
+
match = Number(breakpoint);
|
460 |
+
}
|
461 |
+
});
|
462 |
+
|
463 |
+
settings = $.extend({}, this.options, overwrites[match]);
|
464 |
+
delete settings.responsive;
|
465 |
+
|
466 |
+
// responsive class
|
467 |
+
if (settings.responsiveClass) {
|
468 |
+
this.$element.attr('class', function(i, c) {
|
469 |
+
return c.replace(/\b owl-responsive-\S+/g, '');
|
470 |
+
}).addClass('owl-responsive-' + match);
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
if (this.settings === null || this._breakpoint !== match) {
|
475 |
+
this.trigger('change', { property: { name: 'settings', value: settings } });
|
476 |
+
this._breakpoint = match;
|
477 |
+
this.settings = settings;
|
478 |
+
this.invalidate('settings');
|
479 |
+
this.trigger('changed', { property: { name: 'settings', value: this.settings } });
|
480 |
+
}
|
481 |
+
};
|
482 |
+
|
483 |
+
/**
|
484 |
+
* Updates option logic if necessery.
|
485 |
+
* @protected
|
486 |
+
*/
|
487 |
+
Owl.prototype.optionsLogic = function() {
|
488 |
+
// Toggle Center class
|
489 |
+
this.$element.toggleClass('owl-center', this.settings.center);
|
490 |
+
|
491 |
+
// if items number is less than in body
|
492 |
+
if (this.settings.loop && this._items.length < this.settings.items) {
|
493 |
+
this.settings.loop = false;
|
494 |
+
}
|
495 |
+
|
496 |
+
if (this.settings.autoWidth) {
|
497 |
+
this.settings.stagePadding = false;
|
498 |
+
this.settings.merge = false;
|
499 |
+
}
|
500 |
+
};
|
501 |
+
|
502 |
+
/**
|
503 |
+
* Prepares an item before add.
|
504 |
+
* @todo Rename event parameter `content` to `item`.
|
505 |
+
* @protected
|
506 |
+
* @returns {jQuery|HTMLElement} - The item container.
|
507 |
+
*/
|
508 |
+
Owl.prototype.prepare = function(item) {
|
509 |
+
var event = this.trigger('prepare', { content: item });
|
510 |
+
|
511 |
+
if (!event.data) {
|
512 |
+
event.data = $('<' + this.settings.itemElement + '/>')
|
513 |
+
.addClass(this.settings.itemClass).append(item)
|
514 |
+
}
|
515 |
+
|
516 |
+
this.trigger('prepared', { content: event.data });
|
517 |
+
|
518 |
+
return event.data;
|
519 |
+
};
|
520 |
+
|
521 |
+
/**
|
522 |
+
* Updates the view.
|
523 |
+
* @public
|
524 |
+
*/
|
525 |
+
Owl.prototype.update = function() {
|
526 |
+
var i = 0,
|
527 |
+
n = this._pipe.length,
|
528 |
+
filter = $.proxy(function(p) { return this[p] }, this._invalidated),
|
529 |
+
cache = {};
|
530 |
+
|
531 |
+
while (i < n) {
|
532 |
+
if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {
|
533 |
+
this._pipe[i].run(cache);
|
534 |
+
}
|
535 |
+
i++;
|
536 |
+
}
|
537 |
+
|
538 |
+
this._invalidated = {};
|
539 |
+
};
|
540 |
+
|
541 |
+
/**
|
542 |
+
* Gets the width of the view.
|
543 |
+
* @public
|
544 |
+
* @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.
|
545 |
+
* @returns {Number} - The width of the view in pixel.
|
546 |
+
*/
|
547 |
+
Owl.prototype.width = function(dimension) {
|
548 |
+
dimension = dimension || Owl.Width.Default;
|
549 |
+
switch (dimension) {
|
550 |
+
case Owl.Width.Inner:
|
551 |
+
case Owl.Width.Outer:
|
552 |
+
return this._width;
|
553 |
+
default:
|
554 |
+
return this._width - this.settings.stagePadding * 2 + this.settings.margin;
|
555 |
+
}
|
556 |
+
};
|
557 |
+
|
558 |
+
/**
|
559 |
+
* Refreshes the carousel primarily for adaptive purposes.
|
560 |
+
* @public
|
561 |
+
*/
|
562 |
+
Owl.prototype.refresh = function() {
|
563 |
+
if (this._items.length === 0) {
|
564 |
+
return false;
|
565 |
+
}
|
566 |
+
|
567 |
+
var start = new Date().getTime();
|
568 |
+
|
569 |
+
this.trigger('refresh');
|
570 |
+
|
571 |
+
this.setup();
|
572 |
+
|
573 |
+
this.optionsLogic();
|
574 |
+
|
575 |
+
// hide and show methods helps here to set a proper widths,
|
576 |
+
// this prevents scrollbar to be calculated in stage width
|
577 |
+
this.$stage.addClass('owl-refresh');
|
578 |
+
|
579 |
+
this.update();
|
580 |
+
|
581 |
+
this.$stage.removeClass('owl-refresh');
|
582 |
+
|
583 |
+
this.state.orientation = window.orientation;
|
584 |
+
|
585 |
+
this.watchVisibility();
|
586 |
+
|
587 |
+
this.trigger('refreshed');
|
588 |
+
};
|
589 |
+
|
590 |
+
/**
|
591 |
+
* Save internal event references and add event based functions.
|
592 |
+
* @protected
|
593 |
+
*/
|
594 |
+
Owl.prototype.eventsCall = function() {
|
595 |
+
// Save events references
|
596 |
+
this.e._onDragStart = $.proxy(function(e) {
|
597 |
+
this.onDragStart(e);
|
598 |
+
}, this);
|
599 |
+
this.e._onDragMove = $.proxy(function(e) {
|
600 |
+
this.onDragMove(e);
|
601 |
+
}, this);
|
602 |
+
this.e._onDragEnd = $.proxy(function(e) {
|
603 |
+
this.onDragEnd(e);
|
604 |
+
}, this);
|
605 |
+
this.e._onResize = $.proxy(function(e) {
|
606 |
+
this.onResize(e);
|
607 |
+
}, this);
|
608 |
+
this.e._transitionEnd = $.proxy(function(e) {
|
609 |
+
this.transitionEnd(e);
|
610 |
+
}, this);
|
611 |
+
this.e._preventClick = $.proxy(function(e) {
|
612 |
+
this.preventClick(e);
|
613 |
+
}, this);
|
614 |
+
};
|
615 |
+
|
616 |
+
/**
|
617 |
+
* Checks window `resize` event.
|
618 |
+
* @protected
|
619 |
+
*/
|
620 |
+
Owl.prototype.onThrottledResize = function() {
|
621 |
+
window.clearTimeout(this.resizeTimer);
|
622 |
+
this.resizeTimer = window.setTimeout(this.e._onResize, this.settings.responsiveRefreshRate);
|
623 |
+
};
|
624 |
+
|
625 |
+
/**
|
626 |
+
* Checks window `resize` event.
|
627 |
+
* @protected
|
628 |
+
*/
|
629 |
+
Owl.prototype.onResize = function() {
|
630 |
+
if (!this._items.length) {
|
631 |
+
return false;
|
632 |
+
}
|
633 |
+
|
634 |
+
if (this._width === this.$element.width()) {
|
635 |
+
return false;
|
636 |
+
}
|
637 |
+
|
638 |
+
if (this.trigger('resize').isDefaultPrevented()) {
|
639 |
+
return false;
|
640 |
+
}
|
641 |
+
|
642 |
+
this._width = this.$element.width();
|
643 |
+
|
644 |
+
this.invalidate('width');
|
645 |
+
|
646 |
+
this.refresh();
|
647 |
+
|
648 |
+
this.trigger('resized');
|
649 |
+
};
|
650 |
+
|
651 |
+
/**
|
652 |
+
* Checks for touch/mouse drag event type and add run event handlers.
|
653 |
+
* @protected
|
654 |
+
*/
|
655 |
+
Owl.prototype.eventsRouter = function(event) {
|
656 |
+
var type = event.type;
|
657 |
+
|
658 |
+
if (type === "mousedown" || type === "touchstart") {
|
659 |
+
this.onDragStart(event);
|
660 |
+
} else if (type === "mousemove" || type === "touchmove") {
|
661 |
+
this.onDragMove(event);
|
662 |
+
} else if (type === "mouseup" || type === "touchend") {
|
663 |
+
this.onDragEnd(event);
|
664 |
+
} else if (type === "touchcancel") {
|
665 |
+
this.onDragEnd(event);
|
666 |
+
}
|
667 |
+
};
|
668 |
+
|
669 |
+
/**
|
670 |
+
* Checks for touch/mouse drag options and add necessery event handlers.
|
671 |
+
* @protected
|
672 |
+
*/
|
673 |
+
Owl.prototype.internalEvents = function() {
|
674 |
+
var isTouch = isTouchSupport(),
|
675 |
+
isTouchIE = isTouchSupportIE();
|
676 |
+
|
677 |
+
if (this.settings.mouseDrag){
|
678 |
+
this.$stage.on('mousedown', $.proxy(function(event) { this.eventsRouter(event) }, this));
|
679 |
+
this.$stage.on('dragstart', function() { return false });
|
680 |
+
this.$stage.get(0).onselectstart = function() { return false };
|
681 |
+
} else {
|
682 |
+
this.$element.addClass('owl-text-select-on');
|
683 |
+
}
|
684 |
+
|
685 |
+
if (this.settings.touchDrag && !isTouchIE){
|
686 |
+
this.$stage.on('touchstart touchcancel', $.proxy(function(event) { this.eventsRouter(event) }, this));
|
687 |
+
}
|
688 |
+
|
689 |
+
// catch transitionEnd event
|
690 |
+
if (this.transitionEndVendor) {
|
691 |
+
this.on(this.$stage.get(0), this.transitionEndVendor, this.e._transitionEnd, false);
|
692 |
+
}
|
693 |
+
|
694 |
+
// responsive
|
695 |
+
if (this.settings.responsive !== false) {
|
696 |
+
this.on(window, 'resize', $.proxy(this.onThrottledResize, this));
|
697 |
+
}
|
698 |
+
};
|
699 |
+
|
700 |
+
/**
|
701 |
+
* Handles touchstart/mousedown event.
|
702 |
+
* @protected
|
703 |
+
* @param {Event} event - The event arguments.
|
704 |
+
*/
|
705 |
+
Owl.prototype.onDragStart = function(event) {
|
706 |
+
var ev, isTouchEvent, pageX, pageY, animatedPos;
|
707 |
+
|
708 |
+
ev = event.originalEvent || event || window.event;
|
709 |
+
|
710 |
+
// prevent right click
|
711 |
+
if (ev.which === 3 || this.state.isTouch) {
|
712 |
+
return false;
|
713 |
+
}
|
714 |
+
|
715 |
+
if (ev.type === 'mousedown') {
|
716 |
+
this.$stage.addClass('owl-grab');
|
717 |
+
}
|
718 |
+
|
719 |
+
this.trigger('drag');
|
720 |
+
this.drag.startTime = new Date().getTime();
|
721 |
+
this.speed(0);
|
722 |
+
this.state.isTouch = true;
|
723 |
+
this.state.isScrolling = false;
|
724 |
+
this.state.isSwiping = false;
|
725 |
+
this.drag.distance = 0;
|
726 |
+
|
727 |
+
pageX = getTouches(ev).x;
|
728 |
+
pageY = getTouches(ev).y;
|
729 |
+
|
730 |
+
// get stage position left
|
731 |
+
this.drag.offsetX = this.$stage.position().left;
|
732 |
+
this.drag.offsetY = this.$stage.position().top;
|
733 |
+
|
734 |
+
if (this.settings.rtl) {
|
735 |
+
this.drag.offsetX = this.$stage.position().left + this.$stage.width() - this.width()
|
736 |
+
+ this.settings.margin;
|
737 |
+
}
|
738 |
+
|
739 |
+
// catch position // ie to fix
|
740 |
+
if (this.state.inMotion && this.support3d) {
|
741 |
+
animatedPos = this.getTransformProperty();
|
742 |
+
this.drag.offsetX = animatedPos;
|
743 |
+
this.animate(animatedPos);
|
744 |
+
this.state.inMotion = true;
|
745 |
+
} else if (this.state.inMotion && !this.support3d) {
|
746 |
+
this.state.inMotion = false;
|
747 |
+
return false;
|
748 |
+
}
|
749 |
+
|
750 |
+
this.drag.startX = pageX - this.drag.offsetX;
|
751 |
+
this.drag.startY = pageY - this.drag.offsetY;
|
752 |
+
|
753 |
+
this.drag.start = pageX - this.drag.startX;
|
754 |
+
this.drag.targetEl = ev.target || ev.srcElement;
|
755 |
+
this.drag.updatedX = this.drag.start;
|
756 |
+
|
757 |
+
// to do/check
|
758 |
+
// prevent links and images dragging;
|
759 |
+
if (this.drag.targetEl.tagName === "IMG" || this.drag.targetEl.tagName === "A") {
|
760 |
+
this.drag.targetEl.draggable = false;
|
761 |
+
}
|
762 |
+
|
763 |
+
$(document).on('mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents', $.proxy(function(event) {this.eventsRouter(event)},this));
|
764 |
+
};
|
765 |
+
|
766 |
+
/**
|
767 |
+
* Handles the touchmove/mousemove events.
|
768 |
+
* @todo Simplify
|
769 |
+
* @protected
|
770 |
+
* @param {Event} event - The event arguments.
|
771 |
+
*/
|
772 |
+
Owl.prototype.onDragMove = function(event) {
|
773 |
+
var ev, isTouchEvent, pageX, pageY, minValue, maxValue, pull;
|
774 |
+
|
775 |
+
if (!this.state.isTouch) {
|
776 |
+
return;
|
777 |
+
}
|
778 |
+
|
779 |
+
if (this.state.isScrolling) {
|
780 |
+
return;
|
781 |
+
}
|
782 |
+
|
783 |
+
ev = event.originalEvent || event || window.event;
|
784 |
+
|
785 |
+
pageX = getTouches(ev).x;
|
786 |
+
pageY = getTouches(ev).y;
|
787 |
+
|
788 |
+
// Drag Direction
|
789 |
+
this.drag.currentX = pageX - this.drag.startX;
|
790 |
+
this.drag.currentY = pageY - this.drag.startY;
|
791 |
+
this.drag.distance = this.drag.currentX - this.drag.offsetX;
|
792 |
+
|
793 |
+
// Check move direction
|
794 |
+
if (this.drag.distance < 0) {
|
795 |
+
this.state.direction = this.settings.rtl ? 'right' : 'left';
|
796 |
+
} else if (this.drag.distance > 0) {
|
797 |
+
this.state.direction = this.settings.rtl ? 'left' : 'right';
|
798 |
+
}
|
799 |
+
// Loop
|
800 |
+
if (this.settings.loop) {
|
801 |
+
if (this.op(this.drag.currentX, '>', this.coordinates(this.minimum())) && this.state.direction === 'right') {
|
802 |
+
this.drag.currentX -= (this.settings.center && this.coordinates(0)) - this.coordinates(this._items.length);
|
803 |
+
} else if (this.op(this.drag.currentX, '<', this.coordinates(this.maximum())) && this.state.direction === 'left') {
|
804 |
+
this.drag.currentX += (this.settings.center && this.coordinates(0)) - this.coordinates(this._items.length);
|
805 |
+
}
|
806 |
+
} else {
|
807 |
+
// pull
|
808 |
+
minValue = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());
|
809 |
+
maxValue = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());
|
810 |
+
pull = this.settings.pullDrag ? this.drag.distance / 5 : 0;
|
811 |
+
this.drag.currentX = Math.max(Math.min(this.drag.currentX, minValue + pull), maxValue + pull);
|
812 |
+
}
|
813 |
+
|
814 |
+
// Lock browser if swiping horizontal
|
815 |
+
|
816 |
+
if ((this.drag.distance > 8 || this.drag.distance < -8)) {
|
817 |
+
if (ev.preventDefault !== undefined) {
|
818 |
+
ev.preventDefault();
|
819 |
+
} else {
|
820 |
+
ev.returnValue = false;
|
821 |
+
}
|
822 |
+
this.state.isSwiping = true;
|
823 |
+
}
|
824 |
+
|
825 |
+
this.drag.updatedX = this.drag.currentX;
|
826 |
+
|
827 |
+
// Lock Owl if scrolling
|
828 |
+
if ((this.drag.currentY > 16 || this.drag.currentY < -16) && this.state.isSwiping === false) {
|
829 |
+
this.state.isScrolling = true;
|
830 |
+
this.drag.updatedX = this.drag.start;
|
831 |
+
}
|
832 |
+
|
833 |
+
this.animate(this.drag.updatedX);
|
834 |
+
};
|
835 |
+
|
836 |
+
/**
|
837 |
+
* Handles the touchend/mouseup events.
|
838 |
+
* @protected
|
839 |
+
*/
|
840 |
+
Owl.prototype.onDragEnd = function(event) {
|
841 |
+
var compareTimes, distanceAbs, closest;
|
842 |
+
|
843 |
+
if (!this.state.isTouch) {
|
844 |
+
return;
|
845 |
+
}
|
846 |
+
|
847 |
+
if (event.type === 'mouseup') {
|
848 |
+
this.$stage.removeClass('owl-grab');
|
849 |
+
}
|
850 |
+
|
851 |
+
this.trigger('dragged');
|
852 |
+
|
853 |
+
// prevent links and images dragging;
|
854 |
+
this.drag.targetEl.removeAttribute("draggable");
|
855 |
+
|
856 |
+
// remove drag event listeners
|
857 |
+
|
858 |
+
this.state.isTouch = false;
|
859 |
+
this.state.isScrolling = false;
|
860 |
+
this.state.isSwiping = false;
|
861 |
+
|
862 |
+
// to check
|
863 |
+
if (this.drag.distance === 0 && this.state.inMotion !== true) {
|
864 |
+
this.state.inMotion = false;
|
865 |
+
return false;
|
866 |
+
}
|
867 |
+
|
868 |
+
// prevent clicks while scrolling
|
869 |
+
|
870 |
+
this.drag.endTime = new Date().getTime();
|
871 |
+
compareTimes = this.drag.endTime - this.drag.startTime;
|
872 |
+
distanceAbs = Math.abs(this.drag.distance);
|
873 |
+
|
874 |
+
// to test
|
875 |
+
if (distanceAbs > 3 || compareTimes > 300) {
|
876 |
+
this.removeClick(this.drag.targetEl);
|
877 |
+
}
|
878 |
+
|
879 |
+
closest = this.closest(this.drag.updatedX);
|
880 |
+
|
881 |
+
this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);
|
882 |
+
this.current(closest);
|
883 |
+
this.invalidate('position');
|
884 |
+
this.update();
|
885 |
+
|
886 |
+
// if pullDrag is off then fire transitionEnd event manually when stick
|
887 |
+
// to border
|
888 |
+
if (!this.settings.pullDrag && this.drag.updatedX === this.coordinates(closest)) {
|
889 |
+
this.transitionEnd();
|
890 |
+
}
|
891 |
+
|
892 |
+
this.drag.distance = 0;
|
893 |
+
|
894 |
+
$(document).off('.owl.dragEvents');
|
895 |
+
};
|
896 |
+
|
897 |
+
/**
|
898 |
+
* Attaches `preventClick` to disable link while swipping.
|
899 |
+
* @protected
|
900 |
+
* @param {HTMLElement} [target] - The target of the `click` event.
|
901 |
+
*/
|
902 |
+
Owl.prototype.removeClick = function(target) {
|
903 |
+
this.drag.targetEl = target;
|
904 |
+
$(target).on('click.preventClick', this.e._preventClick);
|
905 |
+
// to make sure click is removed:
|
906 |
+
window.setTimeout(function() {
|
907 |
+
$(target).off('click.preventClick');
|
908 |
+
}, 300);
|
909 |
+
};
|
910 |
+
|
911 |
+
/**
|
912 |
+
* Suppresses click event.
|
913 |
+
* @protected
|
914 |
+
* @param {Event} ev - The event arguments.
|
915 |
+
*/
|
916 |
+
Owl.prototype.preventClick = function(ev) {
|
917 |
+
if (ev.preventDefault) {
|
918 |
+
ev.preventDefault();
|
919 |
+
} else {
|
920 |
+
ev.returnValue = false;
|
921 |
+
}
|
922 |
+
if (ev.stopPropagation) {
|
923 |
+
ev.stopPropagation();
|
924 |
+
}
|
925 |
+
$(ev.target).off('click.preventClick');
|
926 |
+
};
|
927 |
+
|
928 |
+
/**
|
929 |
+
* Catches stage position while animate (only CSS3).
|
930 |
+
* @protected
|
931 |
+
* @returns
|
932 |
+
*/
|
933 |
+
Owl.prototype.getTransformProperty = function() {
|
934 |
+
var transform, matrix3d;
|
935 |
+
|
936 |
+
transform = window.getComputedStyle(this.$stage.get(0), null).getPropertyValue(this.vendorName + 'transform');
|
937 |
+
// var transform = this.$stage.css(this.vendorName + 'transform')
|
938 |
+
transform = transform.replace(/matrix(3d)?\(|\)/g, '').split(',');
|
939 |
+
matrix3d = transform.length === 16;
|
940 |
+
|
941 |
+
return matrix3d !== true ? transform[4] : transform[12];
|
942 |
+
};
|
943 |
+
|
944 |
+
/**
|
945 |
+
* Gets absolute position of the closest item for a coordinate.
|
946 |
+
* @todo Setting `freeDrag` makes `closest` not reusable. See #165.
|
947 |
+
* @protected
|
948 |
+
* @param {Number} coordinate - The coordinate in pixel.
|
949 |
+
* @return {Number} - The absolute position of the closest item.
|
950 |
+
*/
|
951 |
+
Owl.prototype.closest = function(coordinate) {
|
952 |
+
var position = -1, pull = 30, width = this.width(), coordinates = this.coordinates();
|
953 |
+
|
954 |
+
if (!this.settings.freeDrag) {
|
955 |
+
// check closest item
|
956 |
+
$.each(coordinates, $.proxy(function(index, value) {
|
957 |
+
if (coordinate > value - pull && coordinate < value + pull) {
|
958 |
+
position = index;
|
959 |
+
} else if (this.op(coordinate, '<', value)
|
960 |
+
&& this.op(coordinate, '>', coordinates[index + 1] || value - width)) {
|
961 |
+
position = this.state.direction === 'left' ? index + 1 : index;
|
962 |
+
}
|
963 |
+
return position === -1;
|
964 |
+
}, this));
|
965 |
+
}
|
966 |
+
|
967 |
+
if (!this.settings.loop) {
|
968 |
+
// non loop boundries
|
969 |
+
if (this.op(coordinate, '>', coordinates[this.minimum()])) {
|
970 |
+
position = coordinate = this.minimum();
|
971 |
+
} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {
|
972 |
+
position = coordinate = this.maximum();
|
973 |
+
}
|
974 |
+
}
|
975 |
+
|
976 |
+
return position;
|
977 |
+
};
|
978 |
+
|
979 |
+
/**
|
980 |
+
* Animates the stage.
|
981 |
+
* @public
|
982 |
+
* @param {Number} coordinate - The coordinate in pixels.
|
983 |
+
*/
|
984 |
+
Owl.prototype.animate = function(coordinate) {
|
985 |
+
this.trigger('translate');
|
986 |
+
this.state.inMotion = this.speed() > 0;
|
987 |
+
|
988 |
+
if (this.support3d) {
|
989 |
+
this.$stage.css({
|
990 |
+
transform: 'translate3d(' + coordinate + 'px' + ',0px, 0px)',
|
991 |
+
transition: (this.speed() / 1000) + 's'
|
992 |
+
});
|
993 |
+
} else if (this.state.isTouch) {
|
994 |
+
this.$stage.css({
|
995 |
+
left: coordinate + 'px'
|
996 |
+
});
|
997 |
+
} else {
|
998 |
+
this.$stage.animate({
|
999 |
+
left: coordinate
|
1000 |
+
}, this.speed() / 1000, this.settings.fallbackEasing, $.proxy(function() {
|
1001 |
+
if (this.state.inMotion) {
|
1002 |
+
this.transitionEnd();
|
1003 |
+
}
|
1004 |
+
}, this));
|
1005 |
+
}
|
1006 |
+
};
|
1007 |
+
|
1008 |
+
/**
|
1009 |
+
* Sets the absolute position of the current item.
|
1010 |
+
* @public
|
1011 |
+
* @param {Number} [position] - The new absolute position or nothing to leave it unchanged.
|
1012 |
+
* @returns {Number} - The absolute position of the current item.
|
1013 |
+
*/
|
1014 |
+
Owl.prototype.current = function(position) {
|
1015 |
+
if (position === undefined) {
|
1016 |
+
return this._current;
|
1017 |
+
}
|
1018 |
+
|
1019 |
+
if (this._items.length === 0) {
|
1020 |
+
return undefined;
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
position = this.normalize(position);
|
1024 |
+
|
1025 |
+
if (this._current !== position) {
|
1026 |
+
var event = this.trigger('change', { property: { name: 'position', value: position } });
|
1027 |
+
|
1028 |
+
if (event.data !== undefined) {
|
1029 |
+
position = this.normalize(event.data);
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
this._current = position;
|
1033 |
+
|
1034 |
+
this.invalidate('position');
|
1035 |
+
|
1036 |
+
this.trigger('changed', { property: { name: 'position', value: this._current } });
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
return this._current;
|
1040 |
+
};
|
1041 |
+
|
1042 |
+
/**
|
1043 |
+
* Invalidates the given part of the update routine.
|
1044 |
+
* @param {String} part - The part to invalidate.
|
1045 |
+
*/
|
1046 |
+
Owl.prototype.invalidate = function(part) {
|
1047 |
+
this._invalidated[part] = true;
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
/**
|
1051 |
+
* Resets the absolute position of the current item.
|
1052 |
+
* @public
|
1053 |
+
* @param {Number} position - The absolute position of the new item.
|
1054 |
+
*/
|
1055 |
+
Owl.prototype.reset = function(position) {
|
1056 |
+
position = this.normalize(position);
|
1057 |
+
|
1058 |
+
if (position === undefined) {
|
1059 |
+
return;
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
this._speed = 0;
|
1063 |
+
this._current = position;
|
1064 |
+
|
1065 |
+
this.suppress([ 'translate', 'translated' ]);
|
1066 |
+
|
1067 |
+
this.animate(this.coordinates(position));
|
1068 |
+
|
1069 |
+
this.release([ 'translate', 'translated' ]);
|
1070 |
+
};
|
1071 |
+
|
1072 |
+
/**
|
1073 |
+
* Normalizes an absolute or a relative position for an item.
|
1074 |
+
* @public
|
1075 |
+
* @param {Number} position - The absolute or relative position to normalize.
|
1076 |
+
* @param {Boolean} [relative=false] - Whether the given position is relative or not.
|
1077 |
+
* @returns {Number} - The normalized position.
|
1078 |
+
*/
|
1079 |
+
Owl.prototype.normalize = function(position, relative) {
|
1080 |
+
var n = (relative ? this._items.length : this._items.length + this._clones.length);
|
1081 |
+
|
1082 |
+
if (!$.isNumeric(position) || n < 1) {
|
1083 |
+
return undefined;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
if (this._clones.length) {
|
1087 |
+
position = ((position % n) + n) % n;
|
1088 |
+
} else {
|
1089 |
+
position = Math.max(this.minimum(relative), Math.min(this.maximum(relative), position));
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
return position;
|
1093 |
+
};
|
1094 |
+
|
1095 |
+
/**
|
1096 |
+
* Converts an absolute position for an item into a relative position.
|
1097 |
+
* @public
|
1098 |
+
* @param {Number} position - The absolute position to convert.
|
1099 |
+
* @returns {Number} - The converted position.
|
1100 |
+
*/
|
1101 |
+
Owl.prototype.relative = function(position) {
|
1102 |
+
position = this.normalize(position);
|
1103 |
+
position = position - this._clones.length / 2;
|
1104 |
+
return this.normalize(position, true);
|
1105 |
+
};
|
1106 |
+
|
1107 |
+
/**
|
1108 |
+
* Gets the maximum position for an item.
|
1109 |
+
* @public
|
1110 |
+
* @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
|
1111 |
+
* @returns {Number}
|
1112 |
+
*/
|
1113 |
+
Owl.prototype.maximum = function(relative) {
|
1114 |
+
var maximum, width, i = 0, coordinate,
|
1115 |
+
settings = this.settings;
|
1116 |
+
|
1117 |
+
if (relative) {
|
1118 |
+
return this._items.length - 1;
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
if (!settings.loop && settings.center) {
|
1122 |
+
maximum = this._items.length - 1;
|
1123 |
+
} else if (!settings.loop && !settings.center) {
|
1124 |
+
maximum = this._items.length - settings.items;
|
1125 |
+
} else if (settings.loop || settings.center) {
|
1126 |
+
maximum = this._items.length + settings.items;
|
1127 |
+
} else if (settings.autoWidth || settings.merge) {
|
1128 |
+
revert = settings.rtl ? 1 : -1;
|
1129 |
+
width = this.$stage.width() - this.$element.width();
|
1130 |
+
while (coordinate = this.coordinates(i)) {
|
1131 |
+
if (coordinate * revert >= width) {
|
1132 |
+
break;
|
1133 |
+
}
|
1134 |
+
maximum = ++i;
|
1135 |
+
}
|
1136 |
+
} else {
|
1137 |
+
throw 'Can not detect maximum absolute position.'
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
return maximum;
|
1141 |
+
};
|
1142 |
+
|
1143 |
+
/**
|
1144 |
+
* Gets the minimum position for an item.
|
1145 |
+
* @public
|
1146 |
+
* @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
|
1147 |
+
* @returns {Number}
|
1148 |
+
*/
|
1149 |
+
Owl.prototype.minimum = function(relative) {
|
1150 |
+
if (relative) {
|
1151 |
+
return 0;
|
1152 |
+
}
|
1153 |
+
|
1154 |
+
return this._clones.length / 2;
|
1155 |
+
};
|
1156 |
+
|
1157 |
+
/**
|
1158 |
+
* Gets an item at the specified relative position.
|
1159 |
+
* @public
|
1160 |
+
* @param {Number} [position] - The relative position of the item.
|
1161 |
+
* @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
|
1162 |
+
*/
|
1163 |
+
Owl.prototype.items = function(position) {
|
1164 |
+
if (position === undefined) {
|
1165 |
+
return this._items.slice();
|
1166 |
+
}
|
1167 |
+
|
1168 |
+
position = this.normalize(position, true);
|
1169 |
+
return this._items[position];
|
1170 |
+
};
|
1171 |
+
|
1172 |
+
/**
|
1173 |
+
* Gets an item at the specified relative position.
|
1174 |
+
* @public
|
1175 |
+
* @param {Number} [position] - The relative position of the item.
|
1176 |
+
* @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
|
1177 |
+
*/
|
1178 |
+
Owl.prototype.mergers = function(position) {
|
1179 |
+
if (position === undefined) {
|
1180 |
+
return this._mergers.slice();
|
1181 |
+
}
|
1182 |
+
|
1183 |
+
position = this.normalize(position, true);
|
1184 |
+
return this._mergers[position];
|
1185 |
+
};
|
1186 |
+
|
1187 |
+
/**
|
1188 |
+
* Gets the absolute positions of clones for an item.
|
1189 |
+
* @public
|
1190 |
+
* @param {Number} [position] - The relative position of the item.
|
1191 |
+
* @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.
|
1192 |
+
*/
|
1193 |
+
Owl.prototype.clones = function(position) {
|
1194 |
+
var odd = this._clones.length / 2,
|
1195 |
+
even = odd + this._items.length,
|
1196 |
+
map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };
|
1197 |
+
|
1198 |
+
if (position === undefined) {
|
1199 |
+
return $.map(this._clones, function(v, i) { return map(i) });
|
1200 |
+
}
|
1201 |
+
|
1202 |
+
return $.map(this._clones, function(v, i) { return v === position ? map(i) : null });
|
1203 |
+
};
|
1204 |
+
|
1205 |
+
/**
|
1206 |
+
* Sets the current animation speed.
|
1207 |
+
* @public
|
1208 |
+
* @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.
|
1209 |
+
* @returns {Number} - The current animation speed in milliseconds.
|
1210 |
+
*/
|
1211 |
+
Owl.prototype.speed = function(speed) {
|
1212 |
+
if (speed !== undefined) {
|
1213 |
+
this._speed = speed;
|
1214 |
+
}
|
1215 |
+
|
1216 |
+
return this._speed;
|
1217 |
+
};
|
1218 |
+
|
1219 |
+
/**
|
1220 |
+
* Gets the coordinate of an item.
|
1221 |
+
* @todo The name of this method is missleanding.
|
1222 |
+
* @public
|
1223 |
+
* @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.
|
1224 |
+
* @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.
|
1225 |
+
*/
|
1226 |
+
Owl.prototype.coordinates = function(position) {
|
1227 |
+
var coordinate = null;
|
1228 |
+
|
1229 |
+
if (position === undefined) {
|
1230 |
+
return $.map(this._coordinates, $.proxy(function(coordinate, index) {
|
1231 |
+
return this.coordinates(index);
|
1232 |
+
}, this));
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
if (this.settings.center) {
|
1236 |
+
coordinate = this._coordinates[position];
|
1237 |
+
coordinate += (this.width() - coordinate + (this._coordinates[position - 1] || 0)) / 2 * (this.settings.rtl ? -1 : 1);
|
1238 |
+
} else {
|
1239 |
+
coordinate = this._coordinates[position - 1] || 0;
|
1240 |
+
}
|
1241 |
+
|
1242 |
+
return coordinate;
|
1243 |
+
};
|
1244 |
+
|
1245 |
+
/**
|
1246 |
+
* Calculates the speed for a translation.
|
1247 |
+
* @protected
|
1248 |
+
* @param {Number} from - The absolute position of the start item.
|
1249 |
+
* @param {Number} to - The absolute position of the target item.
|
1250 |
+
* @param {Number} [factor=undefined] - The time factor in milliseconds.
|
1251 |
+
* @returns {Number} - The time in milliseconds for the translation.
|
1252 |
+
*/
|
1253 |
+
Owl.prototype.duration = function(from, to, factor) {
|
1254 |
+
return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));
|
1255 |
+
};
|
1256 |
+
|
1257 |
+
/**
|
1258 |
+
* Slides to the specified item.
|
1259 |
+
* @public
|
1260 |
+
* @param {Number} position - The position of the item.
|
1261 |
+
* @param {Number} [speed] - The time in milliseconds for the transition.
|
1262 |
+
*/
|
1263 |
+
Owl.prototype.to = function(position, speed) {
|
1264 |
+
if (this.settings.loop) {
|
1265 |
+
var distance = position - this.relative(this.current()),
|
1266 |
+
revert = this.current(),
|
1267 |
+
before = this.current(),
|
1268 |
+
after = this.current() + distance,
|
1269 |
+
direction = before - after < 0 ? true : false,
|
1270 |
+
items = this._clones.length + this._items.length;
|
1271 |
+
|
1272 |
+
if (after < this.settings.items && direction === false) {
|
1273 |
+
revert = before + this._items.length;
|
1274 |
+
this.reset(revert);
|
1275 |
+
} else if (after >= items - this.settings.items && direction === true) {
|
1276 |
+
revert = before - this._items.length;
|
1277 |
+
this.reset(revert);
|
1278 |
+
}
|
1279 |
+
window.clearTimeout(this.e._goToLoop);
|
1280 |
+
this.e._goToLoop = window.setTimeout($.proxy(function() {
|
1281 |
+
this.speed(this.duration(this.current(), revert + distance, speed));
|
1282 |
+
this.current(revert + distance);
|
1283 |
+
this.update();
|
1284 |
+
}, this), 30);
|
1285 |
+
} else {
|
1286 |
+
this.speed(this.duration(this.current(), position, speed));
|
1287 |
+
this.current(position);
|
1288 |
+
this.update();
|
1289 |
+
}
|
1290 |
+
};
|
1291 |
+
|
1292 |
+
/**
|
1293 |
+
* Slides to the next item.
|
1294 |
+
* @public
|
1295 |
+
* @param {Number} [speed] - The time in milliseconds for the transition.
|
1296 |
+
*/
|
1297 |
+
Owl.prototype.next = function(speed) {
|
1298 |
+
speed = speed || false;
|
1299 |
+
this.to(this.relative(this.current()) + 1, speed);
|
1300 |
+
};
|
1301 |
+
|
1302 |
+
/**
|
1303 |
+
* Slides to the previous item.
|
1304 |
+
* @public
|
1305 |
+
* @param {Number} [speed] - The time in milliseconds for the transition.
|
1306 |
+
*/
|
1307 |
+
Owl.prototype.prev = function(speed) {
|
1308 |
+
speed = speed || false;
|
1309 |
+
this.to(this.relative(this.current()) - 1, speed);
|
1310 |
+
};
|
1311 |
+
|
1312 |
+
/**
|
1313 |
+
* Handles the end of an animation.
|
1314 |
+
* @protected
|
1315 |
+
* @param {Event} event - The event arguments.
|
1316 |
+
*/
|
1317 |
+
Owl.prototype.transitionEnd = function(event) {
|
1318 |
+
|
1319 |
+
// if css2 animation then event object is undefined
|
1320 |
+
if (event !== undefined) {
|
1321 |
+
event.stopPropagation();
|
1322 |
+
|
1323 |
+
// Catch only owl-stage transitionEnd event
|
1324 |
+
if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {
|
1325 |
+
return false;
|
1326 |
+
}
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
this.state.inMotion = false;
|
1330 |
+
this.trigger('translated');
|
1331 |
+
};
|
1332 |
+
|
1333 |
+
/**
|
1334 |
+
* Gets viewport width.
|
1335 |
+
* @protected
|
1336 |
+
* @return {Number} - The width in pixel.
|
1337 |
+
*/
|
1338 |
+
Owl.prototype.viewport = function() {
|
1339 |
+
var width;
|
1340 |
+
if (this.options.responsiveBaseElement !== window) {
|
1341 |
+
width = $(this.options.responsiveBaseElement).width();
|
1342 |
+
} else if (window.innerWidth) {
|
1343 |
+
width = window.innerWidth;
|
1344 |
+
} else if (document.documentElement && document.documentElement.clientWidth) {
|
1345 |
+
width = document.documentElement.clientWidth;
|
1346 |
+
} else {
|
1347 |
+
throw 'Can not detect viewport width.';
|
1348 |
+
}
|
1349 |
+
return width;
|
1350 |
+
};
|
1351 |
+
|
1352 |
+
/**
|
1353 |
+
* Replaces the current content.
|
1354 |
+
* @public
|
1355 |
+
* @param {HTMLElement|jQuery|String} content - The new content.
|
1356 |
+
*/
|
1357 |
+
Owl.prototype.replace = function(content) {
|
1358 |
+
this.$stage.empty();
|
1359 |
+
this._items = [];
|
1360 |
+
|
1361 |
+
if (content) {
|
1362 |
+
content = (content instanceof jQuery) ? content : $(content);
|
1363 |
+
}
|
1364 |
+
|
1365 |
+
if (this.settings.nestedItemSelector) {
|
1366 |
+
content = content.find('.' + this.settings.nestedItemSelector);
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
content.filter(function() {
|
1370 |
+
return this.nodeType === 1;
|
1371 |
+
}).each($.proxy(function(index, item) {
|
1372 |
+
item = this.prepare(item);
|
1373 |
+
this.$stage.append(item);
|
1374 |
+
this._items.push(item);
|
1375 |
+
this._mergers.push(item.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
|
1376 |
+
}, this));
|
1377 |
+
|
1378 |
+
this.reset($.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);
|
1379 |
+
|
1380 |
+
this.invalidate('items');
|
1381 |
+
};
|
1382 |
+
|
1383 |
+
/**
|
1384 |
+
* Adds an item.
|
1385 |
+
* @todo Use `item` instead of `content` for the event arguments.
|
1386 |
+
* @public
|
1387 |
+
* @param {HTMLElement|jQuery|String} content - The item content to add.
|
1388 |
+
* @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.
|
1389 |
+
*/
|
1390 |
+
Owl.prototype.add = function(content, position) {
|
1391 |
+
position = position === undefined ? this._items.length : this.normalize(position, true);
|
1392 |
+
|
1393 |
+
this.trigger('add', { content: content, position: position });
|
1394 |
+
|
1395 |
+
if (this._items.length === 0 || position === this._items.length) {
|
1396 |
+
this.$stage.append(content);
|
1397 |
+
this._items.push(content);
|
1398 |
+
this._mergers.push(content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
|
1399 |
+
} else {
|
1400 |
+
this._items[position].before(content);
|
1401 |
+
this._items.splice(position, 0, content);
|
1402 |
+
this._mergers.splice(position, 0, content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
|
1403 |
+
}
|
1404 |
+
|
1405 |
+
this.invalidate('items');
|
1406 |
+
|
1407 |
+
this.trigger('added', { content: content, position: position });
|
1408 |
+
};
|
1409 |
+
|
1410 |
+
/**
|
1411 |
+
* Removes an item by its position.
|
1412 |
+
* @todo Use `item` instead of `content` for the event arguments.
|
1413 |
+
* @public
|
1414 |
+
* @param {Number} position - The relative position of the item to remove.
|
1415 |
+
*/
|
1416 |
+
Owl.prototype.remove = function(position) {
|
1417 |
+
position = this.normalize(position, true);
|
1418 |
+
|
1419 |
+
if (position === undefined) {
|
1420 |
+
return;
|
1421 |
+
}
|
1422 |
+
|
1423 |
+
this.trigger('remove', { content: this._items[position], position: position });
|
1424 |
+
|
1425 |
+
this._items[position].remove();
|
1426 |
+
this._items.splice(position, 1);
|
1427 |
+
this._mergers.splice(position, 1);
|
1428 |
+
|
1429 |
+
this.invalidate('items');
|
1430 |
+
|
1431 |
+
this.trigger('removed', { content: null, position: position });
|
1432 |
+
};
|
1433 |
+
|
1434 |
+
/**
|
1435 |
+
* Adds triggerable events.
|
1436 |
+
* @protected
|
1437 |
+
*/
|
1438 |
+
Owl.prototype.addTriggerableEvents = function() {
|
1439 |
+
var handler = $.proxy(function(callback, event) {
|
1440 |
+
return $.proxy(function(e) {
|
1441 |
+
if (e.relatedTarget !== this) {
|
1442 |
+
this.suppress([ event ]);
|
1443 |
+
callback.apply(this, [].slice.call(arguments, 1));
|
1444 |
+
this.release([ event ]);
|
1445 |
+
}
|
1446 |
+
}, this);
|
1447 |
+
}, this);
|
1448 |
+
|
1449 |
+
$.each({
|
1450 |
+
'next': this.next,
|
1451 |
+
'prev': this.prev,
|
1452 |
+
'to': this.to,
|
1453 |
+
'destroy': this.destroy,
|
1454 |
+
'refresh': this.refresh,
|
1455 |
+
'replace': this.replace,
|
1456 |
+
'add': this.add,
|
1457 |
+
'remove': this.remove
|
1458 |
+
}, $.proxy(function(event, callback) {
|
1459 |
+
this.$element.on(event + '.owl.carousel', handler(callback, event + '.owl.carousel'));
|
1460 |
+
}, this));
|
1461 |
+
|
1462 |
+
};
|
1463 |
+
|
1464 |
+
/**
|
1465 |
+
* Watches the visibility of the carousel element.
|
1466 |
+
* @protected
|
1467 |
+
*/
|
1468 |
+
Owl.prototype.watchVisibility = function() {
|
1469 |
+
|
1470 |
+
// test on zepto
|
1471 |
+
if (!isElVisible(this.$element.get(0))) {
|
1472 |
+
this.$element.addClass('owl-hidden');
|
1473 |
+
window.clearInterval(this.e._checkVisibile);
|
1474 |
+
this.e._checkVisibile = window.setInterval($.proxy(checkVisible, this), 500);
|
1475 |
+
}
|
1476 |
+
|
1477 |
+
function isElVisible(el) {
|
1478 |
+
return el.offsetWidth > 0 && el.offsetHeight > 0;
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
function checkVisible() {
|
1482 |
+
if (isElVisible(this.$element.get(0))) {
|
1483 |
+
this.$element.removeClass('owl-hidden');
|
1484 |
+
this.refresh();
|
1485 |
+
window.clearInterval(this.e._checkVisibile);
|
1486 |
+
}
|
1487 |
+
}
|
1488 |
+
};
|
1489 |
+
|
1490 |
+
/**
|
1491 |
+
* Preloads images with auto width.
|
1492 |
+
* @protected
|
1493 |
+
* @todo Still to test
|
1494 |
+
*/
|
1495 |
+
Owl.prototype.preloadAutoWidthImages = function(imgs) {
|
1496 |
+
var loaded, that, $el, img;
|
1497 |
+
|
1498 |
+
loaded = 0;
|
1499 |
+
that = this;
|
1500 |
+
imgs.each(function(i, el) {
|
1501 |
+
$el = $(el);
|
1502 |
+
img = new Image();
|
1503 |
+
|
1504 |
+
img.onload = function() {
|
1505 |
+
loaded++;
|
1506 |
+
$el.attr('src', img.src);
|
1507 |
+
$el.css('opacity', 1);
|
1508 |
+
if (loaded >= imgs.length) {
|
1509 |
+
that.state.imagesLoaded = true;
|
1510 |
+
that.initialize();
|
1511 |
+
}
|
1512 |
+
};
|
1513 |
+
|
1514 |
+
img.src = $el.attr('src') || $el.attr('data-src') || $el.attr('data-src-retina');
|
1515 |
+
});
|
1516 |
+
};
|
1517 |
+
|
1518 |
+
/**
|
1519 |
+
* Destroys the carousel.
|
1520 |
+
* @public
|
1521 |
+
*/
|
1522 |
+
Owl.prototype.destroy = function() {
|
1523 |
+
|
1524 |
+
if (this.$element.hasClass(this.settings.themeClass)) {
|
1525 |
+
this.$element.removeClass(this.settings.themeClass);
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
if (this.settings.responsive !== false) {
|
1529 |
+
$(window).off('resize.owl.carousel');
|
1530 |
+
}
|
1531 |
+
|
1532 |
+
if (this.transitionEndVendor) {
|
1533 |
+
this.off(this.$stage.get(0), this.transitionEndVendor, this.e._transitionEnd);
|
1534 |
+
}
|
1535 |
+
|
1536 |
+
for ( var i in this._plugins) {
|
1537 |
+
this._plugins[i].destroy();
|
1538 |
+
}
|
1539 |
+
|
1540 |
+
if (this.settings.mouseDrag || this.settings.touchDrag) {
|
1541 |
+
this.$stage.off('mousedown touchstart touchcancel');
|
1542 |
+
$(document).off('.owl.dragEvents');
|
1543 |
+
this.$stage.get(0).onselectstart = function() {};
|
1544 |
+
this.$stage.off('dragstart', function() { return false });
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
// remove event handlers in the ".owl.carousel" namespace
|
1548 |
+
this.$element.off('.owl');
|
1549 |
+
|
1550 |
+
this.$stage.children('.cloned').remove();
|
1551 |
+
this.e = null;
|
1552 |
+
this.$element.removeData('owlCarousel');
|
1553 |
+
|
1554 |
+
this.$stage.children().contents().unwrap();
|
1555 |
+
this.$stage.children().unwrap();
|
1556 |
+
this.$stage.unwrap();
|
1557 |
+
};
|
1558 |
+
|
1559 |
+
/**
|
1560 |
+
* Operators to calculate right-to-left and left-to-right.
|
1561 |
+
* @protected
|
1562 |
+
* @param {Number} [a] - The left side operand.
|
1563 |
+
* @param {String} [o] - The operator.
|
1564 |
+
* @param {Number} [b] - The right side operand.
|
1565 |
+
*/
|
1566 |
+
Owl.prototype.op = function(a, o, b) {
|
1567 |
+
var rtl = this.settings.rtl;
|
1568 |
+
switch (o) {
|
1569 |
+
case '<':
|
1570 |
+
return rtl ? a > b : a < b;
|
1571 |
+
case '>':
|
1572 |
+
return rtl ? a < b : a > b;
|
1573 |
+
case '>=':
|
1574 |
+
return rtl ? a <= b : a >= b;
|
1575 |
+
case '<=':
|
1576 |
+
return rtl ? a >= b : a <= b;
|
1577 |
+
default:
|
1578 |
+
break;
|
1579 |
+
}
|
1580 |
+
};
|
1581 |
+
|
1582 |
+
/**
|
1583 |
+
* Attaches to an internal event.
|
1584 |
+
* @protected
|
1585 |
+
* @param {HTMLElement} element - The event source.
|
1586 |
+
* @param {String} event - The event name.
|
1587 |
+
* @param {Function} listener - The event handler to attach.
|
1588 |
+
* @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.
|
1589 |
+
*/
|
1590 |
+
Owl.prototype.on = function(element, event, listener, capture) {
|
1591 |
+
if (element.addEventListener) {
|
1592 |
+
element.addEventListener(event, listener, capture);
|
1593 |
+
} else if (element.attachEvent) {
|
1594 |
+
element.attachEvent('on' + event, listener);
|
1595 |
+
}
|
1596 |
+
};
|
1597 |
+
|
1598 |
+
/**
|
1599 |
+
* Detaches from an internal event.
|
1600 |
+
* @protected
|
1601 |
+
* @param {HTMLElement} element - The event source.
|
1602 |
+
* @param {String} event - The event name.
|
1603 |
+
* @param {Function} listener - The attached event handler to detach.
|
1604 |
+
* @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.
|
1605 |
+
*/
|
1606 |
+
Owl.prototype.off = function(element, event, listener, capture) {
|
1607 |
+
if (element.removeEventListener) {
|
1608 |
+
element.removeEventListener(event, listener, capture);
|
1609 |
+
} else if (element.detachEvent) {
|
1610 |
+
element.detachEvent('on' + event, listener);
|
1611 |
+
}
|
1612 |
+
};
|
1613 |
+
|
1614 |
+
/**
|
1615 |
+
* Triggers an public event.
|
1616 |
+
* @protected
|
1617 |
+
* @param {String} name - The event name.
|
1618 |
+
* @param {*} [data=null] - The event data.
|
1619 |
+
* @param {String} [namespace=.owl.carousel] - The event namespace.
|
1620 |
+
* @returns {Event} - The event arguments.
|
1621 |
+
*/
|
1622 |
+
Owl.prototype.trigger = function(name, data, namespace) {
|
1623 |
+
var status = {
|
1624 |
+
item: { count: this._items.length, index: this.current() }
|
1625 |
+
}, handler = $.camelCase(
|
1626 |
+
$.grep([ 'on', name, namespace ], function(v) { return v })
|
1627 |
+
.join('-').toLowerCase()
|
1628 |
+
), event = $.Event(
|
1629 |
+
[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),
|
1630 |
+
$.extend({ relatedTarget: this }, status, data)
|
1631 |
+
);
|
1632 |
+
|
1633 |
+
if (!this._supress[name]) {
|
1634 |
+
$.each(this._plugins, function(name, plugin) {
|
1635 |
+
if (plugin.onTrigger) {
|
1636 |
+
plugin.onTrigger(event);
|
1637 |
+
}
|
1638 |
+
});
|
1639 |
+
|
1640 |
+
this.$element.trigger(event);
|
1641 |
+
|
1642 |
+
if (this.settings && typeof this.settings[handler] === 'function') {
|
1643 |
+
this.settings[handler].apply(this, event);
|
1644 |
+
}
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
return event;
|
1648 |
+
};
|
1649 |
+
|
1650 |
+
/**
|
1651 |
+
* Suppresses events.
|
1652 |
+
* @protected
|
1653 |
+
* @param {Array.<String>} events - The events to suppress.
|
1654 |
+
*/
|
1655 |
+
Owl.prototype.suppress = function(events) {
|
1656 |
+
$.each(events, $.proxy(function(index, event) {
|
1657 |
+
this._supress[event] = true;
|
1658 |
+
}, this));
|
1659 |
+
}
|
1660 |
+
|
1661 |
+
/**
|
1662 |
+
* Releases suppressed events.
|
1663 |
+
* @protected
|
1664 |
+
* @param {Array.<String>} events - The events to release.
|
1665 |
+
*/
|
1666 |
+
Owl.prototype.release = function(events) {
|
1667 |
+
$.each(events, $.proxy(function(index, event) {
|
1668 |
+
delete this._supress[event];
|
1669 |
+
}, this));
|
1670 |
+
}
|
1671 |
+
|
1672 |
+
/**
|
1673 |
+
* Checks the availability of some browser features.
|
1674 |
+
* @protected
|
1675 |
+
*/
|
1676 |
+
Owl.prototype.browserSupport = function() {
|
1677 |
+
this.support3d = isPerspective();
|
1678 |
+
|
1679 |
+
if (this.support3d) {
|
1680 |
+
this.transformVendor = isTransform();
|
1681 |
+
|
1682 |
+
// take transitionend event name by detecting transition
|
1683 |
+
var endVendors = [ 'transitionend', 'webkitTransitionEnd', 'transitionend', 'oTransitionEnd' ];
|
1684 |
+
this.transitionEndVendor = endVendors[isTransition()];
|
1685 |
+
|
1686 |
+
// take vendor name from transform name
|
1687 |
+
this.vendorName = this.transformVendor.replace(/Transform/i, '');
|
1688 |
+
this.vendorName = this.vendorName !== '' ? '-' + this.vendorName.toLowerCase() + '-' : '';
|
1689 |
+
}
|
1690 |
+
|
1691 |
+
this.state.orientation = window.orientation;
|
1692 |
+
};
|
1693 |
+
|
1694 |
+
/**
|
1695 |
+
* Get touch/drag coordinats.
|
1696 |
+
* @private
|
1697 |
+
* @param {event} - mousedown/touchstart event
|
1698 |
+
* @returns {object} - Contains X and Y of current mouse/touch position
|
1699 |
+
*/
|
1700 |
+
|
1701 |
+
function getTouches(event) {
|
1702 |
+
if (event.touches !== undefined) {
|
1703 |
+
return {
|
1704 |
+
x: event.touches[0].pageX,
|
1705 |
+
y: event.touches[0].pageY
|
1706 |
+
};
|
1707 |
+
}
|
1708 |
+
|
1709 |
+
if (event.touches === undefined) {
|
1710 |
+
if (event.pageX !== undefined) {
|
1711 |
+
return {
|
1712 |
+
x: event.pageX,
|
1713 |
+
y: event.pageY
|
1714 |
+
};
|
1715 |
+
}
|
1716 |
+
|
1717 |
+
if (event.pageX === undefined) {
|
1718 |
+
return {
|
1719 |
+
x: event.clientX,
|
1720 |
+
y: event.clientY
|
1721 |
+
};
|
1722 |
+
}
|
1723 |
+
}
|
1724 |
+
}
|
1725 |
+
|
1726 |
+
/**
|
1727 |
+
* Checks for CSS support.
|
1728 |
+
* @private
|
1729 |
+
* @param {Array} array - The CSS properties to check for.
|
1730 |
+
* @returns {Array} - Contains the supported CSS property name and its index or `false`.
|
1731 |
+
*/
|
1732 |
+
function isStyleSupported(array) {
|
1733 |
+
var p, s, fake = document.createElement('div'), list = array;
|
1734 |
+
for (p in list) {
|
1735 |
+
s = list[p];
|
1736 |
+
if (typeof fake.style[s] !== 'undefined') {
|
1737 |
+
fake = null;
|
1738 |
+
return [ s, p ];
|
1739 |
+
}
|
1740 |
+
}
|
1741 |
+
return [ false ];
|
1742 |
+
}
|
1743 |
+
|
1744 |
+
/**
|
1745 |
+
* Checks for CSS transition support.
|
1746 |
+
* @private
|
1747 |
+
* @todo Realy bad design
|
1748 |
+
* @returns {Number}
|
1749 |
+
*/
|
1750 |
+
function isTransition() {
|
1751 |
+
return isStyleSupported([ 'transition', 'WebkitTransition', 'MozTransition', 'OTransition' ])[1];
|
1752 |
+
}
|
1753 |
+
|
1754 |
+
/**
|
1755 |
+
* Checks for CSS transform support.
|
1756 |
+
* @private
|
1757 |
+
* @returns {String} The supported property name or false.
|
1758 |
+
*/
|
1759 |
+
function isTransform() {
|
1760 |
+
return isStyleSupported([ 'transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform' ])[0];
|
1761 |
+
}
|
1762 |
+
|
1763 |
+
/**
|
1764 |
+
* Checks for CSS perspective support.
|
1765 |
+
* @private
|
1766 |
+
* @returns {String} The supported property name or false.
|
1767 |
+
*/
|
1768 |
+
function isPerspective() {
|
1769 |
+
return isStyleSupported([ 'perspective', 'webkitPerspective', 'MozPerspective', 'OPerspective', 'MsPerspective' ])[0];
|
1770 |
+
}
|
1771 |
+
|
1772 |
+
/**
|
1773 |
+
* Checks wether touch is supported or not.
|
1774 |
+
* @private
|
1775 |
+
* @returns {Boolean}
|
1776 |
+
*/
|
1777 |
+
function isTouchSupport() {
|
1778 |
+
return 'ontouchstart' in window || !!(navigator.msMaxTouchPoints);
|
1779 |
+
}
|
1780 |
+
|
1781 |
+
/**
|
1782 |
+
* Checks wether touch is supported or not for IE.
|
1783 |
+
* @private
|
1784 |
+
* @returns {Boolean}
|
1785 |
+
*/
|
1786 |
+
function isTouchSupportIE() {
|
1787 |
+
return window.navigator.msPointerEnabled;
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
/**
|
1791 |
+
* The jQuery Plugin for the Owl Carousel
|
1792 |
+
* @public
|
1793 |
+
*/
|
1794 |
+
$.fn.owlCarousel = function(options) {
|
1795 |
+
return this.each(function() {
|
1796 |
+
if (!$(this).data('owlCarousel')) {
|
1797 |
+
$(this).data('owlCarousel', new Owl(this, options));
|
1798 |
+
}
|
1799 |
+
});
|
1800 |
+
};
|
1801 |
+
|
1802 |
+
/**
|
1803 |
+
* The constructor for the jQuery Plugin
|
1804 |
+
* @public
|
1805 |
+
*/
|
1806 |
+
$.fn.owlCarousel.Constructor = Owl;
|
1807 |
+
|
1808 |
+
})(window.Zepto || window.jQuery, window, document);
|
1809 |
+
|
1810 |
+
/**
|
1811 |
+
* Lazy Plugin
|
1812 |
+
* @version 2.0.0
|
1813 |
+
* @author Bartosz Wojciechowski
|
1814 |
+
* @license The MIT License (MIT)
|
1815 |
+
*/
|
1816 |
+
;(function($, window, document, undefined) {
|
1817 |
+
|
1818 |
+
/**
|
1819 |
+
* Creates the lazy plugin.
|
1820 |
+
* @class The Lazy Plugin
|
1821 |
+
* @param {Owl} carousel - The Owl Carousel
|
1822 |
+
*/
|
1823 |
+
var Lazy = function(carousel) {
|
1824 |
+
|
1825 |
+
/**
|
1826 |
+
* Reference to the core.
|
1827 |
+
* @protected
|
1828 |
+
* @type {Owl}
|
1829 |
+
*/
|
1830 |
+
this._core = carousel;
|
1831 |
+
|
1832 |
+
/**
|
1833 |
+
* Already loaded items.
|
1834 |
+
* @protected
|
1835 |
+
* @type {Array.<jQuery>}
|
1836 |
+
*/
|
1837 |
+
this._loaded = [];
|
1838 |
+
|
1839 |
+
/**
|
1840 |
+
* Event handlers.
|
1841 |
+
* @protected
|
1842 |
+
* @type {Object}
|
1843 |
+
*/
|
1844 |
+
this._handlers = {
|
1845 |
+
'initialized.owl.carousel change.owl.carousel': $.proxy(function(e) {
|
1846 |
+
if (!e.namespace) {
|
1847 |
+
return;
|
1848 |
+
}
|
1849 |
+
|
1850 |
+
if (!this._core.settings || !this._core.settings.lazyLoad) {
|
1851 |
+
return;
|
1852 |
+
}
|
1853 |
+
|
1854 |
+
if ((e.property && e.property.name == 'position') || e.type == 'initialized') {
|
1855 |
+
var settings = this._core.settings,
|
1856 |
+
n = (settings.center && Math.ceil(settings.items / 2) || settings.items),
|
1857 |
+
i = ((settings.center && n * -1) || 0),
|
1858 |
+
position = ((e.property && e.property.value) || this._core.current()) + i,
|
1859 |
+
clones = this._core.clones().length,
|
1860 |
+
load = $.proxy(function(i, v) { this.load(v) }, this);
|
1861 |
+
|
1862 |
+
while (i++ < n) {
|
1863 |
+
this.load(clones / 2 + this._core.relative(position));
|
1864 |
+
clones && $.each(this._core.clones(this._core.relative(position++)), load);
|
1865 |
+
}
|
1866 |
+
}
|
1867 |
+
}, this)
|
1868 |
+
};
|
1869 |
+
|
1870 |
+
// set the default options
|
1871 |
+
this._core.options = $.extend({}, Lazy.Defaults, this._core.options);
|
1872 |
+
|
1873 |
+
// register event handler
|
1874 |
+
this._core.$element.on(this._handlers);
|
1875 |
+
}
|
1876 |
+
|
1877 |
+
/**
|
1878 |
+
* Default options.
|
1879 |
+
* @public
|
1880 |
+
*/
|
1881 |
+
Lazy.Defaults = {
|
1882 |
+
lazyLoad: false
|
1883 |
+
}
|
1884 |
+
|
1885 |
+
/**
|
1886 |
+
* Loads all resources of an item at the specified position.
|
1887 |
+
* @param {Number} position - The absolute position of the item.
|
1888 |
+
* @protected
|
1889 |
+
*/
|
1890 |
+
Lazy.prototype.load = function(position) {
|
1891 |
+
var $item = this._core.$stage.children().eq(position),
|
1892 |
+
$elements = $item && $item.find('.owl-lazy');
|
1893 |
+
|
1894 |
+
if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
|
1895 |
+
return;
|
1896 |
+
}
|
1897 |
+
|
1898 |
+
$elements.each($.proxy(function(index, element) {
|
1899 |
+
var $element = $(element), image,
|
1900 |
+
url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src');
|
1901 |
+
|
1902 |
+
this._core.trigger('load', { element: $element, url: url }, 'lazy');
|
1903 |
+
|
1904 |
+
if ($element.is('img')) {
|
1905 |
+
$element.one('load.owl.lazy', $.proxy(function() {
|
1906 |
+
$element.css('opacity', 1);
|
1907 |
+
this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
|
1908 |
+
}, this)).attr('src', url);
|
1909 |
+
} else {
|
1910 |
+
image = new Image();
|
1911 |
+
image.onload = $.proxy(function() {
|
1912 |
+
$element.css({
|
1913 |
+
'background-image': 'url(' + url + ')',
|
1914 |
+
'opacity': '1'
|
1915 |
+
});
|
1916 |
+
this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
|
1917 |
+
}, this);
|
1918 |
+
image.src = url;
|
1919 |
+
}
|
1920 |
+
}, this));
|
1921 |
+
|
1922 |
+
this._loaded.push($item.get(0));
|
1923 |
+
}
|
1924 |
+
|
1925 |
+
/**
|
1926 |
+
* Destroys the plugin.
|
1927 |
+
* @public
|
1928 |
+
*/
|
1929 |
+
Lazy.prototype.destroy = function() {
|
1930 |
+
var handler, property;
|
1931 |
+
|
1932 |
+
for (handler in this.handlers) {
|
1933 |
+
this._core.$element.off(handler, this.handlers[handler]);
|
1934 |
+
}
|
1935 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
1936 |
+
typeof this[property] != 'function' && (this[property] = null);
|
1937 |
+
}
|
1938 |
+
}
|
1939 |
+
|
1940 |
+
$.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;
|
1941 |
+
|
1942 |
+
})(window.Zepto || window.jQuery, window, document);
|
1943 |
+
|
1944 |
+
/**
|
1945 |
+
* AutoHeight Plugin
|
1946 |
+
* @version 2.0.0
|
1947 |
+
* @author Bartosz Wojciechowski
|
1948 |
+
* @license The MIT License (MIT)
|
1949 |
+
*/
|
1950 |
+
;(function($, window, document, undefined) {
|
1951 |
+
|
1952 |
+
/**
|
1953 |
+
* Creates the auto height plugin.
|
1954 |
+
* @class The Auto Height Plugin
|
1955 |
+
* @param {Owl} carousel - The Owl Carousel
|
1956 |
+
*/
|
1957 |
+
var AutoHeight = function(carousel) {
|
1958 |
+
/**
|
1959 |
+
* Reference to the core.
|
1960 |
+
* @protected
|
1961 |
+
* @type {Owl}
|
1962 |
+
*/
|
1963 |
+
this._core = carousel;
|
1964 |
+
|
1965 |
+
/**
|
1966 |
+
* All event handlers.
|
1967 |
+
* @protected
|
1968 |
+
* @type {Object}
|
1969 |
+
*/
|
1970 |
+
this._handlers = {
|
1971 |
+
'initialized.owl.carousel': $.proxy(function() {
|
1972 |
+
if (this._core.settings.autoHeight) {
|
1973 |
+
this.update();
|
1974 |
+
}
|
1975 |
+
}, this),
|
1976 |
+
'changed.owl.carousel': $.proxy(function(e) {
|
1977 |
+
if (this._core.settings.autoHeight && e.property.name == 'position'){
|
1978 |
+
this.update();
|
1979 |
+
}
|
1980 |
+
}, this),
|
1981 |
+
'loaded.owl.lazy': $.proxy(function(e) {
|
1982 |
+
if (e.namespace && this._core.settings.autoHeight && e.element.closest('.' + this._core.settings.itemClass)
|
1983 |
+
=== this._core.$stage.children().eq(this._core.current())) {
|
1984 |
+
this.update();
|
1985 |
+
}
|
1986 |
+
}, this)
|
1987 |
+
};
|
1988 |
+
|
1989 |
+
// set default options
|
1990 |
+
this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);
|
1991 |
+
|
1992 |
+
// register event handlers
|
1993 |
+
this._core.$element.on(this._handlers);
|
1994 |
+
};
|
1995 |
+
|
1996 |
+
/**
|
1997 |
+
* Default options.
|
1998 |
+
* @public
|
1999 |
+
*/
|
2000 |
+
AutoHeight.Defaults = {
|
2001 |
+
autoHeight: false,
|
2002 |
+
autoHeightClass: 'owl-height'
|
2003 |
+
};
|
2004 |
+
|
2005 |
+
/**
|
2006 |
+
* Updates the view.
|
2007 |
+
*/
|
2008 |
+
AutoHeight.prototype.update = function() {
|
2009 |
+
this._core.$stage.parent()
|
2010 |
+
.height(this._core.$stage.children().eq(this._core.current()).height())
|
2011 |
+
.addClass(this._core.settings.autoHeightClass);
|
2012 |
+
};
|
2013 |
+
|
2014 |
+
AutoHeight.prototype.destroy = function() {
|
2015 |
+
var handler, property;
|
2016 |
+
|
2017 |
+
for (handler in this._handlers) {
|
2018 |
+
this._core.$element.off(handler, this._handlers[handler]);
|
2019 |
+
}
|
2020 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
2021 |
+
typeof this[property] != 'function' && (this[property] = null);
|
2022 |
+
}
|
2023 |
+
};
|
2024 |
+
|
2025 |
+
$.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
|
2026 |
+
|
2027 |
+
})(window.Zepto || window.jQuery, window, document);
|
2028 |
+
|
2029 |
+
/**
|
2030 |
+
* Video Plugin
|
2031 |
+
* @version 2.0.0
|
2032 |
+
* @author Bartosz Wojciechowski
|
2033 |
+
* @license The MIT License (MIT)
|
2034 |
+
*/
|
2035 |
+
;(function($, window, document, undefined) {
|
2036 |
+
|
2037 |
+
/**
|
2038 |
+
* Creates the video plugin.
|
2039 |
+
* @class The Video Plugin
|
2040 |
+
* @param {Owl} carousel - The Owl Carousel
|
2041 |
+
*/
|
2042 |
+
var Video = function(carousel) {
|
2043 |
+
/**
|
2044 |
+
* Reference to the core.
|
2045 |
+
* @protected
|
2046 |
+
* @type {Owl}
|
2047 |
+
*/
|
2048 |
+
this._core = carousel;
|
2049 |
+
|
2050 |
+
/**
|
2051 |
+
* Cache all video URLs.
|
2052 |
+
* @protected
|
2053 |
+
* @type {Object}
|
2054 |
+
*/
|
2055 |
+
this._videos = {};
|
2056 |
+
|
2057 |
+
/**
|
2058 |
+
* Current playing item.
|
2059 |
+
* @protected
|
2060 |
+
* @type {jQuery}
|
2061 |
+
*/
|
2062 |
+
this._playing = null;
|
2063 |
+
|
2064 |
+
/**
|
2065 |
+
* Whether this is in fullscreen or not.
|
2066 |
+
* @protected
|
2067 |
+
* @type {Boolean}
|
2068 |
+
*/
|
2069 |
+
this._fullscreen = false;
|
2070 |
+
|
2071 |
+
/**
|
2072 |
+
* All event handlers.
|
2073 |
+
* @protected
|
2074 |
+
* @type {Object}
|
2075 |
+
*/
|
2076 |
+
this._handlers = {
|
2077 |
+
'resize.owl.carousel': $.proxy(function(e) {
|
2078 |
+
if (this._core.settings.video && !this.isInFullScreen()) {
|
2079 |
+
e.preventDefault();
|
2080 |
+
}
|
2081 |
+
}, this),
|
2082 |
+
'refresh.owl.carousel changed.owl.carousel': $.proxy(function(e) {
|
2083 |
+
if (this._playing) {
|
2084 |
+
this.stop();
|
2085 |
+
}
|
2086 |
+
}, this),
|
2087 |
+
'prepared.owl.carousel': $.proxy(function(e) {
|
2088 |
+
var $element = $(e.content).find('.owl-video');
|
2089 |
+
if ($element.length) {
|
2090 |
+
$element.css('display', 'none');
|
2091 |
+
this.fetch($element, $(e.content));
|
2092 |
+
}
|
2093 |
+
}, this)
|
2094 |
+
};
|
2095 |
+
|
2096 |
+
// set default options
|
2097 |
+
this._core.options = $.extend({}, Video.Defaults, this._core.options);
|
2098 |
+
|
2099 |
+
// register event handlers
|
2100 |
+
this._core.$element.on(this._handlers);
|
2101 |
+
|
2102 |
+
this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {
|
2103 |
+
this.play(e);
|
2104 |
+
}, this));
|
2105 |
+
};
|
2106 |
+
|
2107 |
+
/**
|
2108 |
+
* Default options.
|
2109 |
+
* @public
|
2110 |
+
*/
|
2111 |
+
Video.Defaults = {
|
2112 |
+
video: false,
|
2113 |
+
videoHeight: false,
|
2114 |
+
videoWidth: false
|
2115 |
+
};
|
2116 |
+
|
2117 |
+
/**
|
2118 |
+
* Gets the video ID and the type (YouTube/Vimeo only).
|
2119 |
+
* @protected
|
2120 |
+
* @param {jQuery} target - The target containing the video data.
|
2121 |
+
* @param {jQuery} item - The item containing the video.
|
2122 |
+
*/
|
2123 |
+
Video.prototype.fetch = function(target, item) {
|
2124 |
+
|
2125 |
+
var type = target.attr('data-vimeo-id') ? 'vimeo' : 'youtube',
|
2126 |
+
id = target.attr('data-vimeo-id') || target.attr('data-youtube-id'),
|
2127 |
+
width = target.attr('data-width') || this._core.settings.videoWidth,
|
2128 |
+
height = target.attr('data-height') || this._core.settings.videoHeight,
|
2129 |
+
url = target.attr('href');
|
2130 |
+
|
2131 |
+
if (url) {
|
2132 |
+
id = url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
|
2133 |
+
|
2134 |
+
if (id[3].indexOf('youtu') > -1) {
|
2135 |
+
type = 'youtube';
|
2136 |
+
} else if (id[3].indexOf('vimeo') > -1) {
|
2137 |
+
type = 'vimeo';
|
2138 |
+
} else {
|
2139 |
+
throw new Error('Video URL not supported.');
|
2140 |
+
}
|
2141 |
+
id = id[6];
|
2142 |
+
} else {
|
2143 |
+
throw new Error('Missing video URL.');
|
2144 |
+
}
|
2145 |
+
|
2146 |
+
this._videos[url] = {
|
2147 |
+
type: type,
|
2148 |
+
id: id,
|
2149 |
+
width: width,
|
2150 |
+
height: height
|
2151 |
+
};
|
2152 |
+
|
2153 |
+
item.attr('data-video', url);
|
2154 |
+
|
2155 |
+
this.thumbnail(target, this._videos[url]);
|
2156 |
+
};
|
2157 |
+
|
2158 |
+
/**
|
2159 |
+
* Creates video thumbnail.
|
2160 |
+
* @protected
|
2161 |
+
* @param {jQuery} target - The target containing the video data.
|
2162 |
+
* @param {Object} info - The video info object.
|
2163 |
+
* @see `fetch`
|
2164 |
+
*/
|
2165 |
+
Video.prototype.thumbnail = function(target, video) {
|
2166 |
+
|
2167 |
+
var tnLink,
|
2168 |
+
icon,
|
2169 |
+
path,
|
2170 |
+
dimensions = video.width && video.height ? 'style="width:' + video.width + 'px;height:' + video.height + 'px;"' : '',
|
2171 |
+
customTn = target.find('img'),
|
2172 |
+
srcType = 'src',
|
2173 |
+
lazyClass = '',
|
2174 |
+
settings = this._core.settings,
|
2175 |
+
create = function(path) {
|
2176 |
+
icon = '<div class="owl-video-play-icon"></div>';
|
2177 |
+
|
2178 |
+
if (settings.lazyLoad) {
|
2179 |
+
tnLink = '<div class="owl-video-tn ' + lazyClass + '" ' + srcType + '="' + path + '"></div>';
|
2180 |
+
} else {
|
2181 |
+
tnLink = '<div class="owl-video-tn" style="opacity:1;background-image:url(' + path + ')"></div>';
|
2182 |
+
}
|
2183 |
+
target.after(tnLink);
|
2184 |
+
target.after(icon);
|
2185 |
+
};
|
2186 |
+
|
2187 |
+
// wrap video content into owl-video-wrapper div
|
2188 |
+
target.wrap('<div class="owl-video-wrapper"' + dimensions + '></div>');
|
2189 |
+
|
2190 |
+
if (this._core.settings.lazyLoad) {
|
2191 |
+
srcType = 'data-src';
|
2192 |
+
lazyClass = 'owl-lazy';
|
2193 |
+
}
|
2194 |
+
|
2195 |
+
// custom thumbnail
|
2196 |
+
if (customTn.length) {
|
2197 |
+
create(customTn.attr(srcType));
|
2198 |
+
customTn.remove();
|
2199 |
+
return false;
|
2200 |
+
}
|
2201 |
+
|
2202 |
+
if (video.type === 'youtube') {
|
2203 |
+
path = "http://img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
|
2204 |
+
create(path);
|
2205 |
+
} else if (video.type === 'vimeo') {
|
2206 |
+
$.ajax({
|
2207 |
+
type: 'GET',
|
2208 |
+
url: 'http://vimeo.com/api/v2/video/' + video.id + '.json',
|
2209 |
+
jsonp: 'callback',
|
2210 |
+
dataType: 'jsonp',
|
2211 |
+
success: function(data) {
|
2212 |
+
path = data[0].thumbnail_large;
|
2213 |
+
create(path);
|
2214 |
+
}
|
2215 |
+
});
|
2216 |
+
}
|
2217 |
+
};
|
2218 |
+
|
2219 |
+
/**
|
2220 |
+
* Stops the current video.
|
2221 |
+
* @public
|
2222 |
+
*/
|
2223 |
+
Video.prototype.stop = function() {
|
2224 |
+
this._core.trigger('stop', null, 'video');
|
2225 |
+
this._playing.find('.owl-video-frame').remove();
|
2226 |
+
this._playing.removeClass('owl-video-playing');
|
2227 |
+
this._playing = null;
|
2228 |
+
};
|
2229 |
+
|
2230 |
+
/**
|
2231 |
+
* Starts the current video.
|
2232 |
+
* @public
|
2233 |
+
* @param {Event} ev - The event arguments.
|
2234 |
+
*/
|
2235 |
+
Video.prototype.play = function(ev) {
|
2236 |
+
this._core.trigger('play', null, 'video');
|
2237 |
+
|
2238 |
+
if (this._playing) {
|
2239 |
+
this.stop();
|
2240 |
+
}
|
2241 |
+
|
2242 |
+
var target = $(ev.target || ev.srcElement),
|
2243 |
+
item = target.closest('.' + this._core.settings.itemClass),
|
2244 |
+
video = this._videos[item.attr('data-video')],
|
2245 |
+
width = video.width || '100%',
|
2246 |
+
height = video.height || this._core.$stage.height(),
|
2247 |
+
html, wrap;
|
2248 |
+
|
2249 |
+
if (video.type === 'youtube') {
|
2250 |
+
html = '<iframe width="' + width + '" height="' + height + '" src="http://www.youtube.com/embed/'
|
2251 |
+
+ video.id + '?autoplay=1&v=' + video.id + '" frameborder="0" allowfullscreen></iframe>';
|
2252 |
+
} else if (video.type === 'vimeo') {
|
2253 |
+
html = '<iframe src="http://player.vimeo.com/video/' + video.id + '?autoplay=1" width="' + width
|
2254 |
+
+ '" height="' + height
|
2255 |
+
+ '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
|
2256 |
+
}
|
2257 |
+
|
2258 |
+
item.addClass('owl-video-playing');
|
2259 |
+
this._playing = item;
|
2260 |
+
|
2261 |
+
wrap = $('<div style="height:' + height + 'px; width:' + width + 'px" class="owl-video-frame">'
|
2262 |
+
+ html + '</div>');
|
2263 |
+
target.after(wrap);
|
2264 |
+
};
|
2265 |
+
|
2266 |
+
/**
|
2267 |
+
* Checks whether an video is currently in full screen mode or not.
|
2268 |
+
* @todo Bad style because looks like a readonly method but changes members.
|
2269 |
+
* @protected
|
2270 |
+
* @returns {Boolean}
|
2271 |
+
*/
|
2272 |
+
Video.prototype.isInFullScreen = function() {
|
2273 |
+
|
2274 |
+
// if Vimeo Fullscreen mode
|
2275 |
+
var element = document.fullscreenElement || document.mozFullScreenElement
|
2276 |
+
|| document.webkitFullscreenElement;
|
2277 |
+
|
2278 |
+
if (element && $(element).parent().hasClass('owl-video-frame')) {
|
2279 |
+
this._core.speed(0);
|
2280 |
+
this._fullscreen = true;
|
2281 |
+
}
|
2282 |
+
|
2283 |
+
if (element && this._fullscreen && this._playing) {
|
2284 |
+
return false;
|
2285 |
+
}
|
2286 |
+
|
2287 |
+
// comming back from fullscreen
|
2288 |
+
if (this._fullscreen) {
|
2289 |
+
this._fullscreen = false;
|
2290 |
+
return false;
|
2291 |
+
}
|
2292 |
+
|
2293 |
+
// check full screen mode and window orientation
|
2294 |
+
if (this._playing) {
|
2295 |
+
if (this._core.state.orientation !== window.orientation) {
|
2296 |
+
this._core.state.orientation = window.orientation;
|
2297 |
+
return false;
|
2298 |
+
}
|
2299 |
+
}
|
2300 |
+
|
2301 |
+
return true;
|
2302 |
+
};
|
2303 |
+
|
2304 |
+
/**
|
2305 |
+
* Destroys the plugin.
|
2306 |
+
*/
|
2307 |
+
Video.prototype.destroy = function() {
|
2308 |
+
var handler, property;
|
2309 |
+
|
2310 |
+
this._core.$element.off('click.owl.video');
|
2311 |
+
|
2312 |
+
for (handler in this._handlers) {
|
2313 |
+
this._core.$element.off(handler, this._handlers[handler]);
|
2314 |
+
}
|
2315 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
2316 |
+
typeof this[property] != 'function' && (this[property] = null);
|
2317 |
+
}
|
2318 |
+
};
|
2319 |
+
|
2320 |
+
$.fn.owlCarousel.Constructor.Plugins.Video = Video;
|
2321 |
+
|
2322 |
+
})(window.Zepto || window.jQuery, window, document);
|
2323 |
+
|
2324 |
+
/**
|
2325 |
+
* Animate Plugin
|
2326 |
+
* @version 2.0.0
|
2327 |
+
* @author Bartosz Wojciechowski
|
2328 |
+
* @license The MIT License (MIT)
|
2329 |
+
*/
|
2330 |
+
;(function($, window, document, undefined) {
|
2331 |
+
|
2332 |
+
/**
|
2333 |
+
* Creates the animate plugin.
|
2334 |
+
* @class The Navigation Plugin
|
2335 |
+
* @param {Owl} scope - The Owl Carousel
|
2336 |
+
*/
|
2337 |
+
var Animate = function(scope) {
|
2338 |
+
this.core = scope;
|
2339 |
+
this.core.options = $.extend({}, Animate.Defaults, this.core.options);
|
2340 |
+
this.swapping = true;
|
2341 |
+
this.previous = undefined;
|
2342 |
+
this.next = undefined;
|
2343 |
+
|
2344 |
+
this.handlers = {
|
2345 |
+
'change.owl.carousel': $.proxy(function(e) {
|
2346 |
+
if (e.property.name == 'position') {
|
2347 |
+
this.previous = this.core.current();
|
2348 |
+
this.next = e.property.value;
|
2349 |
+
}
|
2350 |
+
}, this),
|
2351 |
+
'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {
|
2352 |
+
this.swapping = e.type == 'translated';
|
2353 |
+
}, this),
|
2354 |
+
'translate.owl.carousel': $.proxy(function(e) {
|
2355 |
+
if (this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {
|
2356 |
+
this.swap();
|
2357 |
+
}
|
2358 |
+
}, this)
|
2359 |
+
};
|
2360 |
+
|
2361 |
+
this.core.$element.on(this.handlers);
|
2362 |
+
};
|
2363 |
+
|
2364 |
+
/**
|
2365 |
+
* Default options.
|
2366 |
+
* @public
|
2367 |
+
*/
|
2368 |
+
Animate.Defaults = {
|
2369 |
+
animateOut: false,
|
2370 |
+
animateIn: false
|
2371 |
+
};
|
2372 |
+
|
2373 |
+
/**
|
2374 |
+
* Toggles the animation classes whenever an translations starts.
|
2375 |
+
* @protected
|
2376 |
+
* @returns {Boolean|undefined}
|
2377 |
+
*/
|
2378 |
+
Animate.prototype.swap = function() {
|
2379 |
+
|
2380 |
+
if (this.core.settings.items !== 1 || !this.core.support3d) {
|
2381 |
+
return;
|
2382 |
+
}
|
2383 |
+
|
2384 |
+
this.core.speed(0);
|
2385 |
+
|
2386 |
+
var left,
|
2387 |
+
clear = $.proxy(this.clear, this),
|
2388 |
+
previous = this.core.$stage.children().eq(this.previous),
|
2389 |
+
next = this.core.$stage.children().eq(this.next),
|
2390 |
+
incoming = this.core.settings.animateIn,
|
2391 |
+
outgoing = this.core.settings.animateOut;
|
2392 |
+
|
2393 |
+
if (this.core.current() === this.previous) {
|
2394 |
+
return;
|
2395 |
+
}
|
2396 |
+
|
2397 |
+
if (outgoing) {
|
2398 |
+
left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);
|
2399 |
+
previous.css( { 'left': left + 'px' } )
|
2400 |
+
.addClass('animated owl-animated-out')
|
2401 |
+
.addClass(outgoing)
|
2402 |
+
.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', clear);
|
2403 |
+
}
|
2404 |
+
|
2405 |
+
if (incoming) {
|
2406 |
+
next.addClass('animated owl-animated-in')
|
2407 |
+
.addClass(incoming)
|
2408 |
+
.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', clear);
|
2409 |
+
}
|
2410 |
+
};
|
2411 |
+
|
2412 |
+
Animate.prototype.clear = function(e) {
|
2413 |
+
$(e.target).css( { 'left': '' } )
|
2414 |
+
.removeClass('animated owl-animated-out owl-animated-in')
|
2415 |
+
.removeClass(this.core.settings.animateIn)
|
2416 |
+
.removeClass(this.core.settings.animateOut);
|
2417 |
+
this.core.transitionEnd();
|
2418 |
+
}
|
2419 |
+
|
2420 |
+
/**
|
2421 |
+
* Destroys the plugin.
|
2422 |
+
* @public
|
2423 |
+
*/
|
2424 |
+
Animate.prototype.destroy = function() {
|
2425 |
+
var handler, property;
|
2426 |
+
|
2427 |
+
for (handler in this.handlers) {
|
2428 |
+
this.core.$element.off(handler, this.handlers[handler]);
|
2429 |
+
}
|
2430 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
2431 |
+
typeof this[property] != 'function' && (this[property] = null);
|
2432 |
+
}
|
2433 |
+
};
|
2434 |
+
|
2435 |
+
$.fn.owlCarousel.Constructor.Plugins.Animate = Animate;
|
2436 |
+
|
2437 |
+
})(window.Zepto || window.jQuery, window, document);
|
2438 |
+
|
2439 |
+
/**
|
2440 |
+
* Autoplay Plugin
|
2441 |
+
* @version 2.0.0
|
2442 |
+
* @author Bartosz Wojciechowski
|
2443 |
+
* @license The MIT License (MIT)
|
2444 |
+
*/
|
2445 |
+
;(function($, window, document, undefined) {
|
2446 |
+
|
2447 |
+
/**
|
2448 |
+
* Creates the autoplay plugin.
|
2449 |
+
* @class The Autoplay Plugin
|
2450 |
+
* @param {Owl} scope - The Owl Carousel
|
2451 |
+
*/
|
2452 |
+
var Autoplay = function(scope) {
|
2453 |
+
this.core = scope;
|
2454 |
+
this.core.options = $.extend({}, Autoplay.Defaults, this.core.options);
|
2455 |
+
|
2456 |
+
this.handlers = {
|
2457 |
+
'translated.owl.carousel refreshed.owl.carousel': $.proxy(function() {
|
2458 |
+
this.autoplay();
|
2459 |
+
}, this),
|
2460 |
+
'play.owl.autoplay': $.proxy(function(e, t, s) {
|
2461 |
+
this.play(t, s);
|
2462 |
+
}, this),
|
2463 |
+
'stop.owl.autoplay': $.proxy(function() {
|
2464 |
+
this.stop();
|
2465 |
+
}, this),
|
2466 |
+
'mouseover.owl.autoplay': $.proxy(function() {
|
2467 |
+
if (this.core.settings.autoplayHoverPause) {
|
2468 |
+
this.pause();
|
2469 |
+
}
|
2470 |
+
}, this),
|
2471 |
+
'mouseleave.owl.autoplay': $.proxy(function() {
|
2472 |
+
if (this.core.settings.autoplayHoverPause) {
|
2473 |
+
this.autoplay();
|
2474 |
+
}
|
2475 |
+
}, this)
|
2476 |
+
};
|
2477 |
+
|
2478 |
+
this.core.$element.on(this.handlers);
|
2479 |
+
};
|
2480 |
+
|
2481 |
+
/**
|
2482 |
+
* Default options.
|
2483 |
+
* @public
|
2484 |
+
*/
|
2485 |
+
Autoplay.Defaults = {
|
2486 |
+
autoplay: false,
|
2487 |
+
autoplayTimeout: 5000,
|
2488 |
+
autoplayHoverPause: false,
|
2489 |
+
autoplaySpeed: false
|
2490 |
+
};
|
2491 |
+
|
2492 |
+
/**
|
2493 |
+
* @protected
|
2494 |
+
* @todo Must be documented.
|
2495 |
+
*/
|
2496 |
+
Autoplay.prototype.autoplay = function() {
|
2497 |
+
if (this.core.settings.autoplay && !this.core.state.videoPlay) {
|
2498 |
+
window.clearInterval(this.interval);
|
2499 |
+
|
2500 |
+
this.interval = window.setInterval($.proxy(function() {
|
2501 |
+
this.play();
|
2502 |
+
}, this), this.core.settings.autoplayTimeout);
|
2503 |
+
} else {
|
2504 |
+
window.clearInterval(this.interval);
|
2505 |
+
}
|
2506 |
+
};
|
2507 |
+
|
2508 |
+
/**
|
2509 |
+
* Starts the autoplay.
|
2510 |
+
* @public
|
2511 |
+
* @param {Number} [timeout] - ...
|
2512 |
+
* @param {Number} [speed] - ...
|
2513 |
+
* @returns {Boolean|undefined} - ...
|
2514 |
+
* @todo Must be documented.
|
2515 |
+
*/
|
2516 |
+
Autoplay.prototype.play = function(timeout, speed) {
|
2517 |
+
// if tab is inactive - doesnt work in <IE10
|
2518 |
+
if (document.hidden === true) {
|
2519 |
+
return;
|
2520 |
+
}
|
2521 |
+
|
2522 |
+
if (this.core.state.isTouch || this.core.state.isScrolling
|
2523 |
+
|| this.core.state.isSwiping || this.core.state.inMotion) {
|
2524 |
+
return;
|
2525 |
+
}
|
2526 |
+
|
2527 |
+
if (this.core.settings.autoplay === false) {
|
2528 |
+
window.clearInterval(this.interval);
|
2529 |
+
return;
|
2530 |
+
}
|
2531 |
+
|
2532 |
+
this.core.next(this.core.settings.autoplaySpeed);
|
2533 |
+
};
|
2534 |
+
|
2535 |
+
/**
|
2536 |
+
* Stops the autoplay.
|
2537 |
+
* @public
|
2538 |
+
*/
|
2539 |
+
Autoplay.prototype.stop = function() {
|
2540 |
+
window.clearInterval(this.interval);
|
2541 |
+
};
|
2542 |
+
|
2543 |
+
/**
|
2544 |
+
* Pauses the autoplay.
|
2545 |
+
* @public
|
2546 |
+
*/
|
2547 |
+
Autoplay.prototype.pause = function() {
|
2548 |
+
window.clearInterval(this.interval);
|
2549 |
+
};
|
2550 |
+
|
2551 |
+
/**
|
2552 |
+
* Destroys the plugin.
|
2553 |
+
*/
|
2554 |
+
Autoplay.prototype.destroy = function() {
|
2555 |
+
var handler, property;
|
2556 |
+
|
2557 |
+
window.clearInterval(this.interval);
|
2558 |
+
|
2559 |
+
for (handler in this.handlers) {
|
2560 |
+
this.core.$element.off(handler, this.handlers[handler]);
|
2561 |
+
}
|
2562 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
2563 |
+
typeof this[property] != 'function' && (this[property] = null);
|
2564 |
+
}
|
2565 |
+
};
|
2566 |
+
|
2567 |
+
$.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;
|
2568 |
+
|
2569 |
+
})(window.Zepto || window.jQuery, window, document);
|
2570 |
+
|
2571 |
+
/**
|
2572 |
+
* Navigation Plugin
|
2573 |
+
* @version 2.0.0
|
2574 |
+
* @author Artus Kolanowski
|
2575 |
+
* @license The MIT License (MIT)
|
2576 |
+
*/
|
2577 |
+
;(function($, window, document, undefined) {
|
2578 |
+
'use strict';
|
2579 |
+
|
2580 |
+
/**
|
2581 |
+
* Creates the navigation plugin.
|
2582 |
+
* @class The Navigation Plugin
|
2583 |
+
* @param {Owl} carousel - The Owl Carousel.
|
2584 |
+
*/
|
2585 |
+
var Navigation = function(carousel) {
|
2586 |
+
/**
|
2587 |
+
* Reference to the core.
|
2588 |
+
* @protected
|
2589 |
+
* @type {Owl}
|
2590 |
+
*/
|
2591 |
+
this._core = carousel;
|
2592 |
+
|
2593 |
+
/**
|
2594 |
+
* Indicates whether the plugin is initialized or not.
|
2595 |
+
* @protected
|
2596 |
+
* @type {Boolean}
|
2597 |
+
*/
|
2598 |
+
this._initialized = false;
|
2599 |
+
|
2600 |
+
/**
|
2601 |
+
* The current paging indexes.
|
2602 |
+
* @protected
|
2603 |
+
* @type {Array}
|
2604 |
+
*/
|
2605 |
+
this._pages = [];
|
2606 |
+
|
2607 |
+
/**
|
2608 |
+
* All DOM elements of the user interface.
|
2609 |
+
* @protected
|
2610 |
+
* @type {Object}
|
2611 |
+
*/
|
2612 |
+
this._controls = {};
|
2613 |
+
|
2614 |
+
/**
|
2615 |
+
* Markup for an indicator.
|
2616 |
+
* @protected
|
2617 |
+
* @type {Array.<String>}
|
2618 |
+
*/
|
2619 |
+
this._templates = [];
|
2620 |
+
|
2621 |
+
/**
|
2622 |
+
* The carousel element.
|
2623 |
+
* @type {jQuery}
|
2624 |
+
*/
|
2625 |
+
this.$element = this._core.$element;
|
2626 |
+
|
2627 |
+
/**
|
2628 |
+
* Overridden methods of the carousel.
|
2629 |
+
* @protected
|
2630 |
+
* @type {Object}
|
2631 |
+
*/
|
2632 |
+
this._overrides = {
|
2633 |
+
next: this._core.next,
|
2634 |
+
prev: this._core.prev,
|
2635 |
+
to: this._core.to
|
2636 |
+
};
|
2637 |
+
|
2638 |
+
/**
|
2639 |
+
* All event handlers.
|
2640 |
+
* @protected
|
2641 |
+
* @type {Object}
|
2642 |
+
*/
|
2643 |
+
this._handlers = {
|
2644 |
+
'prepared.owl.carousel': $.proxy(function(e) {
|
2645 |
+
if (this._core.settings.dotsData) {
|
2646 |
+
this._templates.push($(e.content).find('[data-dot]').andSelf('[data-dot]').attr('data-dot'));
|
2647 |
+
}
|
2648 |
+
}, this),
|
2649 |
+
'add.owl.carousel': $.proxy(function(e) {
|
2650 |
+
if (this._core.settings.dotsData) {
|
2651 |
+
this._templates.splice(e.position, 0, $(e.content).find('[data-dot]').andSelf('[data-dot]').attr('data-dot'));
|
2652 |
+
}
|
2653 |
+
}, this),
|
2654 |
+
'remove.owl.carousel prepared.owl.carousel': $.proxy(function(e) {
|
2655 |
+
if (this._core.settings.dotsData) {
|
2656 |
+
this._templates.splice(e.position, 1);
|
2657 |
+
}
|
2658 |
+
}, this),
|
2659 |
+
'change.owl.carousel': $.proxy(function(e) {
|
2660 |
+
if (e.property.name == 'position') {
|
2661 |
+
if (!this._core.state.revert && !this._core.settings.loop && this._core.settings.navRewind) {
|
2662 |
+
var current = this._core.current(),
|
2663 |
+
maximum = this._core.maximum(),
|
2664 |
+
minimum = this._core.minimum();
|
2665 |
+
e.data = e.property.value > maximum
|
2666 |
+
? current >= maximum ? minimum : maximum
|
2667 |
+
: e.property.value < minimum ? maximum : e.property.value;
|
2668 |
+
}
|
2669 |
+
}
|
2670 |
+
}, this),
|
2671 |
+
'changed.owl.carousel': $.proxy(function(e) {
|
2672 |
+
if (e.property.name == 'position') {
|
2673 |
+
this.draw();
|
2674 |
+
}
|
2675 |
+
}, this),
|
2676 |
+
'refreshed.owl.carousel': $.proxy(function() {
|
2677 |
+
if (!this._initialized) {
|
2678 |
+
this.initialize();
|
2679 |
+
this._initialized = true;
|
2680 |
+
}
|
2681 |
+
this._core.trigger('refresh', null, 'navigation');
|
2682 |
+
this.update();
|
2683 |
+
this.draw();
|
2684 |
+
this._core.trigger('refreshed', null, 'navigation');
|
2685 |
+
}, this)
|
2686 |
+
};
|
2687 |
+
|
2688 |
+
// set default options
|
2689 |
+
this._core.options = $.extend({}, Navigation.Defaults, this._core.options);
|
2690 |
+
|
2691 |
+
// register event handlers
|
2692 |
+
this.$element.on(this._handlers);
|
2693 |
+
}
|
2694 |
+
|
2695 |
+
/**
|
2696 |
+
* Default options.
|
2697 |
+
* @public
|
2698 |
+
* @todo Rename `slideBy` to `navBy`
|
2699 |
+
*/
|
2700 |
+
Navigation.Defaults = {
|
2701 |
+
nav: false,
|
2702 |
+
navRewind: true,
|
2703 |
+
navText: [ 'prev', 'next' ],
|
2704 |
+
navSpeed: false,
|
2705 |
+
navElement: 'div',
|
2706 |
+
navContainer: false,
|
2707 |
+
navContainerClass: 'owl-nav',
|
2708 |
+
navClass: [ 'owl-prev', 'owl-next' ],
|
2709 |
+
slideBy: 1,
|
2710 |
+
dotClass: 'owl-dot',
|
2711 |
+
dotsClass: 'owl-dots',
|
2712 |
+
dots: true,
|
2713 |
+
dotsEach: false,
|
2714 |
+
dotData: false,
|
2715 |
+
dotsSpeed: false,
|
2716 |
+
dotsContainer: false,
|
2717 |
+
controlsClass: 'owl-controls'
|
2718 |
+
}
|
2719 |
+
|
2720 |
+
/**
|
2721 |
+
* Initializes the layout of the plugin and extends the carousel.
|
2722 |
+
* @protected
|
2723 |
+
*/
|
2724 |
+
Navigation.prototype.initialize = function() {
|
2725 |
+
var $container, override,
|
2726 |
+
options = this._core.settings;
|
2727 |
+
|
2728 |
+
// create the indicator template
|
2729 |
+
if (!options.dotsData) {
|
2730 |
+
this._templates = [ $('<div>')
|
2731 |
+
.addClass(options.dotClass)
|
2732 |
+
.append($('<span>'))
|
2733 |
+
.prop('outerHTML') ];
|
2734 |
+
}
|
2735 |
+
|
2736 |
+
// create controls container if needed
|
2737 |
+
if (!options.navContainer || !options.dotsContainer) {
|
2738 |
+
this._controls.$container = $('<div>')
|
2739 |
+
.addClass(options.controlsClass)
|
2740 |
+
.appendTo(this.$element);
|
2741 |
+
}
|
2742 |
+
|
2743 |
+
// create DOM structure for absolute navigation
|
2744 |
+
this._controls.$indicators = options.dotsContainer ? $(options.dotsContainer)
|
2745 |
+
: $('<div>').hide().addClass(options.dotsClass).appendTo(this._controls.$container);
|
2746 |
+
|
2747 |
+
this._controls.$indicators.on('click', 'div', $.proxy(function(e) {
|
2748 |
+
var index = $(e.target).parent().is(this._controls.$indicators)
|
2749 |
+
? $(e.target).index() : $(e.target).parent().index();
|
2750 |
+
|
2751 |
+
e.preventDefault();
|
2752 |
+
|
2753 |
+
this.to(index, options.dotsSpeed);
|
2754 |
+
}, this));
|
2755 |
+
|
2756 |
+
// create DOM structure for relative navigation
|
2757 |
+
$container = options.navContainer ? $(options.navContainer)
|
2758 |
+
: $('<div>').addClass(options.navContainerClass).prependTo(this._controls.$container);
|
2759 |
+
|
2760 |
+
this._controls.$next = $('<' + options.navElement + '>');
|
2761 |
+
this._controls.$previous = this._controls.$next.clone();
|
2762 |
+
|
2763 |
+
this._controls.$previous
|
2764 |
+
.addClass(options.navClass[0])
|
2765 |
+
.html(options.navText[0])
|
2766 |
+
.hide()
|
2767 |
+
.prependTo($container)
|
2768 |
+
.on('click', $.proxy(function(e) {
|
2769 |
+
this.prev(options.navSpeed);
|
2770 |
+
}, this));
|
2771 |
+
this._controls.$next
|
2772 |
+
.addClass(options.navClass[1])
|
2773 |
+
.html(options.navText[1])
|
2774 |
+
.hide()
|
2775 |
+
.appendTo($container)
|
2776 |
+
.on('click', $.proxy(function(e) {
|
2777 |
+
this.next(options.navSpeed);
|
2778 |
+
}, this));
|
2779 |
+
|
2780 |
+
// override public methods of the carousel
|
2781 |
+
for (override in this._overrides) {
|
2782 |
+
this._core[override] = $.proxy(this[override], this);
|
2783 |
+
}
|
2784 |
+
}
|
2785 |
+
|
2786 |
+
/**
|
2787 |
+
* Destroys the plugin.
|
2788 |
+
* @protected
|
2789 |
+
*/
|
2790 |
+
Navigation.prototype.destroy = function() {
|
2791 |
+
var handler, control, property, override;
|
2792 |
+
|
2793 |
+
for (handler in this._handlers) {
|
2794 |
+
this.$element.off(handler, this._handlers[handler]);
|
2795 |
+
}
|
2796 |
+
for (control in this._controls) {
|
2797 |
+
this._controls[control].remove();
|
2798 |
+
}
|
2799 |
+
for (override in this.overides) {
|
2800 |
+
this._core[override] = this._overrides[override];
|
2801 |
+
}
|
2802 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
2803 |
+
typeof this[property] != 'function' && (this[property] = null);
|
2804 |
+
}
|
2805 |
+
}
|
2806 |
+
|
2807 |
+
/**
|
2808 |
+
* Updates the internal state.
|
2809 |
+
* @protected
|
2810 |
+
*/
|
2811 |
+
Navigation.prototype.update = function() {
|
2812 |
+
var i, j, k,
|
2813 |
+
options = this._core.settings,
|
2814 |
+
lower = this._core.clones().length / 2,
|
2815 |
+
upper = lower + this._core.items().length,
|
2816 |
+
size = options.center || options.autoWidth || options.dotData
|
2817 |
+
? 1 : options.dotsEach || options.items;
|
2818 |
+
|
2819 |
+
if (options.slideBy !== 'page') {
|
2820 |
+
options.slideBy = Math.min(options.slideBy, options.items);
|
2821 |
+
}
|
2822 |
+
|
2823 |
+
if (options.dots || options.slideBy == 'page') {
|
2824 |
+
this._pages = [];
|
2825 |
+
|
2826 |
+
for (i = lower, j = 0, k = 0; i < upper; i++) {
|
2827 |
+
if (j >= size || j === 0) {
|
2828 |
+
this._pages.push({
|
2829 |
+
start: i - lower,
|
2830 |
+
end: i - lower + size - 1
|
2831 |
+
});
|
2832 |
+
j = 0, ++k;
|
2833 |
+
}
|
2834 |
+
j += this._core.mergers(this._core.relative(i));
|
2835 |
+
}
|
2836 |
+
}
|
2837 |
+
}
|
2838 |
+
|
2839 |
+
/**
|
2840 |
+
* Draws the user interface.
|
2841 |
+
* @todo The option `dotData` wont work.
|
2842 |
+
* @protected
|
2843 |
+
*/
|
2844 |
+
Navigation.prototype.draw = function() {
|
2845 |
+
var difference, i, html = '',
|
2846 |
+
options = this._core.settings,
|
2847 |
+
$items = this._core.$stage.children(),
|
2848 |
+
index = this._core.relative(this._core.current());
|
2849 |
+
|
2850 |
+
if (options.nav && !options.loop && !options.navRewind) {
|
2851 |
+
this._controls.$previous.toggleClass('disabled', index <= 0);
|
2852 |
+
this._controls.$next.toggleClass('disabled', index >= this._core.maximum());
|
2853 |
+
}
|
2854 |
+
|
2855 |
+
this._controls.$previous.toggle(options.nav);
|
2856 |
+
this._controls.$next.toggle(options.nav);
|
2857 |
+
|
2858 |
+
if (options.dots) {
|
2859 |
+
difference = this._pages.length - this._controls.$indicators.children().length;
|
2860 |
+
|
2861 |
+
if (options.dotData && difference !== 0) {
|
2862 |
+
for (i = 0; i < this._controls.$indicators.children().length; i++) {
|
2863 |
+
html += this._templates[this._core.relative(i)];
|
2864 |
+
}
|
2865 |
+
this._controls.$indicators.html(html);
|
2866 |
+
} else if (difference > 0) {
|
2867 |
+
html = new Array(difference + 1).join(this._templates[0]);
|
2868 |
+
this._controls.$indicators.append(html);
|
2869 |
+
} else if (difference < 0) {
|
2870 |
+
this._controls.$indicators.children().slice(difference).remove();
|
2871 |
+
}
|
2872 |
+
|
2873 |
+
this._controls.$indicators.find('.active').removeClass('active');
|
2874 |
+
this._controls.$indicators.children().eq($.inArray(this.current(), this._pages)).addClass('active');
|
2875 |
+
}
|
2876 |
+
|
2877 |
+
this._controls.$indicators.toggle(options.dots);
|
2878 |
+
}
|
2879 |
+
|
2880 |
+
/**
|
2881 |
+
* Extends event data.
|
2882 |
+
* @protected
|
2883 |
+
* @param {Event} event - The event object which gets thrown.
|
2884 |
+
*/
|
2885 |
+
Navigation.prototype.onTrigger = function(event) {
|
2886 |
+
var settings = this._core.settings;
|
2887 |
+
|
2888 |
+
event.page = {
|
2889 |
+
index: $.inArray(this.current(), this._pages),
|
2890 |
+
count: this._pages.length,
|
2891 |
+
size: settings && (settings.center || settings.autoWidth || settings.dotData
|
2892 |
+
? 1 : settings.dotsEach || settings.items)
|
2893 |
+
};
|
2894 |
+
}
|
2895 |
+
|
2896 |
+
/**
|
2897 |
+
* Gets the current page position of the carousel.
|
2898 |
+
* @protected
|
2899 |
+
* @returns {Number}
|
2900 |
+
*/
|
2901 |
+
Navigation.prototype.current = function() {
|
2902 |
+
var index = this._core.relative(this._core.current());
|
2903 |
+
return $.grep(this._pages, function(o) {
|
2904 |
+
return o.start <= index && o.end >= index;
|
2905 |
+
}).pop();
|
2906 |
+
}
|
2907 |
+
|
2908 |
+
/**
|
2909 |
+
* Gets the current succesor/predecessor position.
|
2910 |
+
* @protected
|
2911 |
+
* @returns {Number}
|
2912 |
+
*/
|
2913 |
+
Navigation.prototype.getPosition = function(successor) {
|
2914 |
+
var position, length,
|
2915 |
+
options = this._core.settings;
|
2916 |
+
|
2917 |
+
if (options.slideBy == 'page') {
|
2918 |
+
position = $.inArray(this.current(), this._pages);
|
2919 |
+
length = this._pages.length;
|
2920 |
+
successor ? ++position : --position;
|
2921 |
+
position = this._pages[((position % length) + length) % length].start;
|
2922 |
+
} else {
|
2923 |
+
position = this._core.relative(this._core.current());
|
2924 |
+
length = this._core.items().length;
|
2925 |
+
successor ? position += options.slideBy : position -= options.slideBy;
|
2926 |
+
}
|
2927 |
+
return position;
|
2928 |
+
}
|
2929 |
+
|
2930 |
+
/**
|
2931 |
+
* Slides to the next item or page.
|
2932 |
+
* @public
|
2933 |
+
* @param {Number} [speed=false] - The time in milliseconds for the transition.
|
2934 |
+
*/
|
2935 |
+
Navigation.prototype.next = function(speed) {
|
2936 |
+
$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
|
2937 |
+
}
|
2938 |
+
|
2939 |
+
/**
|
2940 |
+
* Slides to the previous item or page.
|
2941 |
+
* @public
|
2942 |
+
* @param {Number} [speed=false] - The time in milliseconds for the transition.
|
2943 |
+
*/
|
2944 |
+
Navigation.prototype.prev = function(speed) {
|
2945 |
+
$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);
|
2946 |
+
}
|
2947 |
+
|
2948 |
+
/**
|
2949 |
+
* Slides to the specified item or page.
|
2950 |
+
* @public
|
2951 |
+
* @param {Number} position - The position of the item or page.
|
2952 |
+
* @param {Number} [speed] - The time in milliseconds for the transition.
|
2953 |
+
* @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.
|
2954 |
+
*/
|
2955 |
+
Navigation.prototype.to = function(position, speed, standard) {
|
2956 |
+
var length;
|
2957 |
+
|
2958 |
+
if (!standard) {
|
2959 |
+
length = this._pages.length;
|
2960 |
+
$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);
|
2961 |
+
} else {
|
2962 |
+
$.proxy(this._overrides.to, this._core)(position, speed);
|
2963 |
+
}
|
2964 |
+
}
|
2965 |
+
|
2966 |
+
$.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;
|
2967 |
+
|
2968 |
+
})(window.Zepto || window.jQuery, window, document);
|
2969 |
+
|
2970 |
+
/**
|
2971 |
+
* Hash Plugin
|
2972 |
+
* @version 2.0.0
|
2973 |
+
* @author Artus Kolanowski
|
2974 |
+
* @license The MIT License (MIT)
|
2975 |
+
*/
|
2976 |
+
;(function($, window, document, undefined) {
|
2977 |
+
'use strict';
|
2978 |
+
|
2979 |
+
/**
|
2980 |
+
* Creates the hash plugin.
|
2981 |
+
* @class The Hash Plugin
|
2982 |
+
* @param {Owl} carousel - The Owl Carousel
|
2983 |
+
*/
|
2984 |
+
var Hash = function(carousel) {
|
2985 |
+
/**
|
2986 |
+
* Reference to the core.
|
2987 |
+
* @protected
|
2988 |
+
* @type {Owl}
|
2989 |
+
*/
|
2990 |
+
this._core = carousel;
|
2991 |
+
|
2992 |
+
/**
|
2993 |
+
* Hash table for the hashes.
|
2994 |
+
* @protected
|
2995 |
+
* @type {Object}
|
2996 |
+
*/
|
2997 |
+
this._hashes = {};
|
2998 |
+
|
2999 |
+
/**
|
3000 |
+
* The carousel element.
|
3001 |
+
* @type {jQuery}
|
3002 |
+
*/
|
3003 |
+
this.$element = this._core.$element;
|
3004 |
+
|
3005 |
+
/**
|
3006 |
+
* All event handlers.
|
3007 |
+
* @protected
|
3008 |
+
* @type {Object}
|
3009 |
+
*/
|
3010 |
+
this._handlers = {
|
3011 |
+
'initialized.owl.carousel': $.proxy(function() {
|
3012 |
+
if (this._core.settings.startPosition == 'URLHash') {
|
3013 |
+
$(window).trigger('hashchange.owl.navigation');
|
3014 |
+
}
|
3015 |
+
}, this),
|
3016 |
+
'prepared.owl.carousel': $.proxy(function(e) {
|
3017 |
+
var hash = $(e.content).find('[data-hash]').andSelf('[data-hash]').attr('data-hash');
|
3018 |
+
this._hashes[hash] = e.content;
|
3019 |
+
}, this)
|
3020 |
+
};
|
3021 |
+
|
3022 |
+
// set default options
|
3023 |
+
this._core.options = $.extend({}, Hash.Defaults, this._core.options);
|
3024 |
+
|
3025 |
+
// register the event handlers
|
3026 |
+
this.$element.on(this._handlers);
|
3027 |
+
|
3028 |
+
// register event listener for hash navigation
|
3029 |
+
$(window).on('hashchange.owl.navigation', $.proxy(function() {
|
3030 |
+
var hash = window.location.hash.substring(1),
|
3031 |
+
items = this._core.$stage.children(),
|
3032 |
+
position = this._hashes[hash] && items.index(this._hashes[hash]) || 0;
|
3033 |
+
|
3034 |
+
if (!hash) {
|
3035 |
+
return false;
|
3036 |
+
}
|
3037 |
+
|
3038 |
+
this._core.to(position, false, true);
|
3039 |
+
}, this));
|
3040 |
+
}
|
3041 |
+
|
3042 |
+
/**
|
3043 |
+
* Default options.
|
3044 |
+
* @public
|
3045 |
+
*/
|
3046 |
+
Hash.Defaults = {
|
3047 |
+
URLhashListener: false
|
3048 |
+
}
|
3049 |
+
|
3050 |
+
/**
|
3051 |
+
* Destroys the plugin.
|
3052 |
+
* @public
|
3053 |
+
*/
|
3054 |
+
Hash.prototype.destroy = function() {
|
3055 |
+
var handler, property;
|
3056 |
+
|
3057 |
+
$(window).off('hashchange.owl.navigation');
|
3058 |
+
|
3059 |
+
for (handler in this._handlers) {
|
3060 |
+
this._core.$element.off(handler, this._handlers[handler]);
|
3061 |
+
}
|
3062 |
+
for (property in Object.getOwnPropertyNames(this)) {
|
3063 |
+
typeof this[property] != 'function' && (this[property] = null);
|
3064 |
+
}
|
3065 |
+
}
|
3066 |
+
|
3067 |
+
$.fn.owlCarousel.Constructor.Plugins.Hash = Hash;
|
3068 |
+
|
3069 |
+
})(window.Zepto || window.jQuery, window, document);
|
js/owl.carousel.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this.drag=a.extend({},m),this.state=a.extend({},n),this.e=a.extend({},o),this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._invalidated={},this._pipe=[],a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a[0].toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Pipe,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}function f(a){if(a.touches!==d)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(a.touches===d){if(a.pageX!==d)return{x:a.pageX,y:a.pageY};if(a.pageX===d)return{x:a.clientX,y:a.clientY}}}function g(a){var b,d,e=c.createElement("div"),f=a;for(b in f)if(d=f[b],"undefined"!=typeof e.style[d])return e=null,[d,b];return[!1]}function h(){return g(["transition","WebkitTransition","MozTransition","OTransition"])[1]}function i(){return g(["transform","WebkitTransform","MozTransform","OTransform","msTransform"])[0]}function j(){return g(["perspective","webkitPerspective","MozPerspective","OPerspective","MsPerspective"])[0]}function k(){return"ontouchstart"in b||!!navigator.msMaxTouchPoints}function l(){return b.navigator.msPointerEnabled}var m,n,o;m={start:0,startX:0,startY:0,current:0,currentX:0,currentY:0,offsetX:0,offsetY:0,distance:null,startTime:0,endTime:0,updatedX:0,targetEl:null},n={isTouch:!1,isScrolling:!1,isSwiping:!1,direction:!1,inMotion:!1},o={_onDragStart:null,_onDragMove:null,_onDragEnd:null,_transitionEnd:null,_resizer:null,_responsiveCall:null,_goToLoop:null,_checkVisibile:null},e.Defaults={items:3,loop:!1,center:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,responsiveClass:!1,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",themeClass:"owl-theme",baseClass:"owl-carousel",itemClass:"owl-item",centerClass:"center",activeClass:"active"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Plugins={},e.Pipe=[{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){var a=this._clones,b=this.$stage.children(".cloned");(b.length!==a.length||!this.settings.loop&&a.length>0)&&(this.$stage.children(".cloned").remove(),this._clones=[])}},{filter:["items","settings"],run:function(){var a,b,c=this._clones,d=this._items,e=this.settings.loop?c.length-Math.max(2*this.settings.items,4):0;for(a=0,b=Math.abs(e/2);b>a;a++)e>0?(this.$stage.children().eq(d.length+c.length-1).remove(),c.pop(),this.$stage.children().eq(0).remove(),c.pop()):(c.push(c.length/2),this.$stage.append(d[c[c.length-1]].clone().addClass("cloned")),c.push(d.length-1-(c.length-1)/2),this.$stage.prepend(d[c[c.length-1]].clone().addClass("cloned")))}},{filter:["width","items","settings"],run:function(){var a,b,c,d=this.settings.rtl?1:-1,e=(this.width()/this.settings.items).toFixed(3),f=0;for(this._coordinates=[],b=0,c=this._clones.length+this._items.length;c>b;b++)a=this._mergers[this.relative(b)],a=this.settings.mergeFit&&Math.min(a,this.settings.items)||a,f+=(this.settings.autoWidth?this._items[this.relative(b)].width()+this.settings.margin:e*a)*d,this._coordinates.push(f)}},{filter:["width","items","settings"],run:function(){var b,c,d=(this.width()/this.settings.items).toFixed(3),e={width:Math.abs(this._coordinates[this._coordinates.length-1])+2*this.settings.stagePadding,"padding-left":this.settings.stagePadding||"","padding-right":this.settings.stagePadding||""};if(this.$stage.css(e),e={width:this.settings.autoWidth?"auto":d-this.settings.margin},e[this.settings.rtl?"margin-left":"margin-right"]=this.settings.margin,!this.settings.autoWidth&&a.grep(this._mergers,function(a){return a>1}).length>0)for(b=0,c=this._coordinates.length;c>b;b++)e.width=Math.abs(this._coordinates[b])-Math.abs(this._coordinates[b-1]||0)-this.settings.margin,this.$stage.children().eq(b).css(e);else this.$stage.children().css(e)}},{filter:["width","items","settings"],run:function(a){a.current&&this.reset(this.$stage.children().index(a.current))}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;d>c;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children("."+this.settings.activeClass).removeClass(this.settings.activeClass),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass(this.settings.activeClass),this.settings.center&&(this.$stage.children("."+this.settings.centerClass).removeClass(this.settings.centerClass),this.$stage.children().eq(this.current()).addClass(this.settings.centerClass))}}],e.prototype.initialize=function(){if(this.trigger("initialize"),this.$element.addClass(this.settings.baseClass).addClass(this.settings.themeClass).toggleClass("owl-rtl",this.settings.rtl),this.browserSupport(),this.settings.autoWidth&&this.state.imagesLoaded!==!0){var b,c,e;if(b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&0>=e)return this.preloadAutoWidthImages(b),!1}this.$element.addClass("owl-loading"),this.$stage=a("<"+this.settings.stageElement+' class="owl-stage"/>').wrap('<div class="owl-stage-outer">'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this._width=this.$element.width(),this.refresh(),this.$element.removeClass("owl-loading").addClass("owl-loaded"),this.eventsCall(),this.internalEvents(),this.addTriggerableEvents(),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){b>=a&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),delete e.responsive,e.responsiveClass&&this.$element.attr("class",function(a,b){return b.replace(/\b owl-responsive-\S+/g,"")}).addClass("owl-responsive-"+d)):e=a.extend({},this.options),(null===this.settings||this._breakpoint!==d)&&(this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}}))},e.prototype.optionsLogic=function(){this.$element.toggleClass("owl-center",this.settings.center),this.settings.loop&&this._items.length<this.settings.items&&(this.settings.loop=!1),this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.settings.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};c>b;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={}},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){if(0===this._items.length)return!1;(new Date).getTime();this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$stage.addClass("owl-refresh"),this.update(),this.$stage.removeClass("owl-refresh"),this.state.orientation=b.orientation,this.watchVisibility(),this.trigger("refreshed")},e.prototype.eventsCall=function(){this.e._onDragStart=a.proxy(function(a){this.onDragStart(a)},this),this.e._onDragMove=a.proxy(function(a){this.onDragMove(a)},this),this.e._onDragEnd=a.proxy(function(a){this.onDragEnd(a)},this),this.e._onResize=a.proxy(function(a){this.onResize(a)},this),this.e._transitionEnd=a.proxy(function(a){this.transitionEnd(a)},this),this.e._preventClick=a.proxy(function(a){this.preventClick(a)},this)},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this.e._onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return this._items.length?this._width===this.$element.width()?!1:this.trigger("resize").isDefaultPrevented()?!1:(this._width=this.$element.width(),this.invalidate("width"),this.refresh(),void this.trigger("resized")):!1},e.prototype.eventsRouter=function(a){var b=a.type;"mousedown"===b||"touchstart"===b?this.onDragStart(a):"mousemove"===b||"touchmove"===b?this.onDragMove(a):"mouseup"===b||"touchend"===b?this.onDragEnd(a):"touchcancel"===b&&this.onDragEnd(a)},e.prototype.internalEvents=function(){var c=(k(),l());this.settings.mouseDrag?(this.$stage.on("mousedown",a.proxy(function(a){this.eventsRouter(a)},this)),this.$stage.on("dragstart",function(){return!1}),this.$stage.get(0).onselectstart=function(){return!1}):this.$element.addClass("owl-text-select-on"),this.settings.touchDrag&&!c&&this.$stage.on("touchstart touchcancel",a.proxy(function(a){this.eventsRouter(a)},this)),this.transitionEndVendor&&this.on(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd,!1),this.settings.responsive!==!1&&this.on(b,"resize",a.proxy(this.onThrottledResize,this))},e.prototype.onDragStart=function(d){var e,g,h,i;if(e=d.originalEvent||d||b.event,3===e.which||this.state.isTouch)return!1;if("mousedown"===e.type&&this.$stage.addClass("owl-grab"),this.trigger("drag"),this.drag.startTime=(new Date).getTime(),this.speed(0),this.state.isTouch=!0,this.state.isScrolling=!1,this.state.isSwiping=!1,this.drag.distance=0,g=f(e).x,h=f(e).y,this.drag.offsetX=this.$stage.position().left,this.drag.offsetY=this.$stage.position().top,this.settings.rtl&&(this.drag.offsetX=this.$stage.position().left+this.$stage.width()-this.width()+this.settings.margin),this.state.inMotion&&this.support3d)i=this.getTransformProperty(),this.drag.offsetX=i,this.animate(i),this.state.inMotion=!0;else if(this.state.inMotion&&!this.support3d)return this.state.inMotion=!1,!1;this.drag.startX=g-this.drag.offsetX,this.drag.startY=h-this.drag.offsetY,this.drag.start=g-this.drag.startX,this.drag.targetEl=e.target||e.srcElement,this.drag.updatedX=this.drag.start,("IMG"===this.drag.targetEl.tagName||"A"===this.drag.targetEl.tagName)&&(this.drag.targetEl.draggable=!1),a(c).on("mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents",a.proxy(function(a){this.eventsRouter(a)},this))},e.prototype.onDragMove=function(a){var c,e,g,h,i,j;this.state.isTouch&&(this.state.isScrolling||(c=a.originalEvent||a||b.event,e=f(c).x,g=f(c).y,this.drag.currentX=e-this.drag.startX,this.drag.currentY=g-this.drag.startY,this.drag.distance=this.drag.currentX-this.drag.offsetX,this.drag.distance<0?this.state.direction=this.settings.rtl?"right":"left":this.drag.distance>0&&(this.state.direction=this.settings.rtl?"left":"right"),this.settings.loop?this.op(this.drag.currentX,">",this.coordinates(this.minimum()))&&"right"===this.state.direction?this.drag.currentX-=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length):this.op(this.drag.currentX,"<",this.coordinates(this.maximum()))&&"left"===this.state.direction&&(this.drag.currentX+=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length)):(h=this.coordinates(this.settings.rtl?this.maximum():this.minimum()),i=this.coordinates(this.settings.rtl?this.minimum():this.maximum()),j=this.settings.pullDrag?this.drag.distance/5:0,this.drag.currentX=Math.max(Math.min(this.drag.currentX,h+j),i+j)),(this.drag.distance>8||this.drag.distance<-8)&&(c.preventDefault!==d?c.preventDefault():c.returnValue=!1,this.state.isSwiping=!0),this.drag.updatedX=this.drag.currentX,(this.drag.currentY>16||this.drag.currentY<-16)&&this.state.isSwiping===!1&&(this.state.isScrolling=!0,this.drag.updatedX=this.drag.start),this.animate(this.drag.updatedX)))},e.prototype.onDragEnd=function(b){var d,e,f;if(this.state.isTouch){if("mouseup"===b.type&&this.$stage.removeClass("owl-grab"),this.trigger("dragged"),this.drag.targetEl.removeAttribute("draggable"),this.state.isTouch=!1,this.state.isScrolling=!1,this.state.isSwiping=!1,0===this.drag.distance&&this.state.inMotion!==!0)return this.state.inMotion=!1,!1;this.drag.endTime=(new Date).getTime(),d=this.drag.endTime-this.drag.startTime,e=Math.abs(this.drag.distance),(e>3||d>300)&&this.removeClick(this.drag.targetEl),f=this.closest(this.drag.updatedX),this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(f),this.invalidate("position"),this.update(),this.settings.pullDrag||this.drag.updatedX!==this.coordinates(f)||this.transitionEnd(),this.drag.distance=0,a(c).off(".owl.dragEvents")}},e.prototype.removeClick=function(c){this.drag.targetEl=c,a(c).on("click.preventClick",this.e._preventClick),b.setTimeout(function(){a(c).off("click.preventClick")},300)},e.prototype.preventClick=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1,b.stopPropagation&&b.stopPropagation(),a(b.target).off("click.preventClick")},e.prototype.getTransformProperty=function(){var a,c;return a=b.getComputedStyle(this.$stage.get(0),null).getPropertyValue(this.vendorName+"transform"),a=a.replace(/matrix(3d)?\(|\)/g,"").split(","),c=16===a.length,c!==!0?a[4]:a[12]},e.prototype.closest=function(b){var c=-1,d=30,e=this.width(),f=this.coordinates();return this.settings.freeDrag||a.each(f,a.proxy(function(a,g){return b>g-d&&g+d>b?c=a:this.op(b,"<",g)&&this.op(b,">",f[a+1]||g-e)&&(c="left"===this.state.direction?a+1:a),-1===c},this)),this.settings.loop||(this.op(b,">",f[this.minimum()])?c=b=this.minimum():this.op(b,"<",f[this.maximum()])&&(c=b=this.maximum())),c},e.prototype.animate=function(b){this.trigger("translate"),this.state.inMotion=this.speed()>0,this.support3d?this.$stage.css({transform:"translate3d("+b+"px,0px, 0px)",transition:this.speed()/1e3+"s"}):this.state.isTouch?this.$stage.css({left:b+"px"}):this.$stage.animate({left:b},this.speed()/1e3,this.settings.fallbackEasing,a.proxy(function(){this.state.inMotion&&this.transitionEnd()},this))},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(a){this._invalidated[a]=!0},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(b,c){var e=c?this._items.length:this._items.length+this._clones.length;return!a.isNumeric(b)||1>e?d:b=this._clones.length?(b%e+e)%e:Math.max(this.minimum(c),Math.min(this.maximum(c),b))},e.prototype.relative=function(a){return a=this.normalize(a),a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=0,f=this.settings;if(a)return this._items.length-1;if(!f.loop&&f.center)b=this._items.length-1;else if(f.loop||f.center)if(f.loop||f.center)b=this._items.length+f.items;else{if(!f.autoWidth&&!f.merge)throw"Can not detect maximum absolute position.";for(revert=f.rtl?1:-1,c=this.$stage.width()-this.$element.width();(d=this.coordinates(e))&&!(d*revert>=c);)b=++e}else b=this._items.length-f.items;return b},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c=null;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[b-1]||0))/2*(this.settings.rtl?-1:1)):c=this._coordinates[b-1]||0,c)},e.prototype.duration=function(a,b,c){return Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(c,d){if(this.settings.loop){var e=c-this.relative(this.current()),f=this.current(),g=this.current(),h=this.current()+e,i=0>g-h?!0:!1,j=this._clones.length+this._items.length;h<this.settings.items&&i===!1?(f=g+this._items.length,this.reset(f)):h>=j-this.settings.items&&i===!0&&(f=g-this._items.length,this.reset(f)),b.clearTimeout(this.e._goToLoop),this.e._goToLoop=b.setTimeout(a.proxy(function(){this.speed(this.duration(this.current(),f+e,d)),this.current(f+e),this.update()},this),30)}else this.speed(this.duration(this.current(),c,d)),this.current(c),this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.transitionEnd=function(a){return a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0))?!1:(this.state.inMotion=!1,void this.trigger("translated"))},e.prototype.viewport=function(){var d;if(this.options.responsiveBaseElement!==b)d=a(this.options.responsiveBaseElement).width();else if(b.innerWidth)d=b.innerWidth;else{if(!c.documentElement||!c.documentElement.clientWidth)throw"Can not detect viewport width.";d=c.documentElement.clientWidth}return d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)},this)),this.reset(a.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(a,b){b=b===d?this._items.length:this.normalize(b,!0),this.trigger("add",{content:a,position:b}),0===this._items.length||b===this._items.length?(this.$stage.append(a),this._items.push(a),this._mergers.push(1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)):(this._items[b].before(a),this._items.splice(b,0,a),this._mergers.splice(b,0,1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)),this.invalidate("items"),this.trigger("added",{content:a,position:b})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.addTriggerableEvents=function(){var b=a.proxy(function(b,c){return a.proxy(function(a){a.relatedTarget!==this&&(this.suppress([c]),b.apply(this,[].slice.call(arguments,1)),this.release([c]))},this)},this);a.each({next:this.next,prev:this.prev,to:this.to,destroy:this.destroy,refresh:this.refresh,replace:this.replace,add:this.add,remove:this.remove},a.proxy(function(a,c){this.$element.on(a+".owl.carousel",b(c,a+".owl.carousel"))},this))},e.prototype.watchVisibility=function(){function c(a){return a.offsetWidth>0&&a.offsetHeight>0}function d(){c(this.$element.get(0))&&(this.$element.removeClass("owl-hidden"),this.refresh(),b.clearInterval(this.e._checkVisibile))}c(this.$element.get(0))||(this.$element.addClass("owl-hidden"),b.clearInterval(this.e._checkVisibile),this.e._checkVisibile=b.setInterval(a.proxy(d,this),500))},e.prototype.preloadAutoWidthImages=function(b){var c,d,e,f;c=0,d=this,b.each(function(g,h){e=a(h),f=new Image,f.onload=function(){c++,e.attr("src",f.src),e.css("opacity",1),c>=b.length&&(d.state.imagesLoaded=!0,d.initialize())},f.src=e.attr("src")||e.attr("data-src")||e.attr("data-src-retina")})},e.prototype.destroy=function(){this.$element.hasClass(this.settings.themeClass)&&this.$element.removeClass(this.settings.themeClass),this.settings.responsive!==!1&&a(b).off("resize.owl.carousel"),this.transitionEndVendor&&this.off(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd);for(var d in this._plugins)this._plugins[d].destroy();(this.settings.mouseDrag||this.settings.touchDrag)&&(this.$stage.off("mousedown touchstart touchcancel"),a(c).off(".owl.dragEvents"),this.$stage.get(0).onselectstart=function(){},this.$stage.off("dragstart",function(){return!1})),this.$element.off(".owl"),this.$stage.children(".cloned").remove(),this.e=null,this.$element.removeData("owlCarousel"),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.unwrap()},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:c>a;case">":return d?c>a:a>c;case">=":return d?c>=a:a>=c;case"<=":return d?a>=c:c>=a}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d){var e={item:{count:this._items.length,index:this.current()}},f=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),g=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},e,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(g)}),this.$element.trigger(g),this.settings&&"function"==typeof this.settings[f]&&this.settings[f].apply(this,g)),g},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.browserSupport=function(){if(this.support3d=j(),this.support3d){this.transformVendor=i();var a=["transitionend","webkitTransitionEnd","transitionend","oTransitionEnd"];this.transitionEndVendor=a[h()],this.vendorName=this.transformVendor.replace(/Transform/i,""),this.vendorName=""!==this.vendorName?"-"+this.vendorName.toLowerCase()+"-":""}this.state.orientation=b.orientation},a.fn.owlCarousel=function(b){return this.each(function(){a(this).data("owlCarousel")||a(this).data("owlCarousel",new e(this,b))})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b){var c=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,d=c.center&&Math.ceil(c.items/2)||c.items,e=c.center&&-1*d||0,f=(b.property&&b.property.value||this._core.current())+e,g=this._core.clones().length,h=a.proxy(function(a,b){this.load(b)},this);e++<d;)this.load(g/2+this._core.relative(f)),g&&a.each(this._core.clones(this._core.relative(f++)),h)},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this._core.$element.on(this._handlers)};c.Defaults={lazyLoad:!1},c.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":"url("+g+")",opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},c.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=c}(window.Zepto||window.jQuery,window,document),function(a){var b=function(c){this._core=c,this._handlers={"initialized.owl.carousel":a.proxy(function(){this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass)===this._core.$stage.children().eq(this._core.current())&&this.update()},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this._core.$element.on(this._handlers)};b.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},b.prototype.update=function(){this._core.$stage.parent().height(this._core.$stage.children().eq(this._core.current()).height()).addClass(this._core.settings.autoHeightClass)},b.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=b}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this._core=b,this._videos={},this._playing=null,this._fullscreen=!1,this._handlers={"resize.owl.carousel":a.proxy(function(a){this._core.settings.video&&!this.isInFullScreen()&&a.preventDefault()},this),"refresh.owl.carousel changed.owl.carousel":a.proxy(function(){this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))},this)},this._core.options=a.extend({},d.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};d.Defaults={video:!1,videoHeight:!1,videoWidth:!1},d.prototype.fetch=function(a,b){var c=a.attr("data-vimeo-id")?"vimeo":"youtube",d=a.attr("data-vimeo-id")||a.attr("data-youtube-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else{if(!(d[3].indexOf("vimeo")>-1))throw new Error("Video URL not supported.");c="vimeo"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},d.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?'<div class="owl-video-tn '+j+'" '+i+'="'+a+'"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url('+a+')"></div>',b.after(d),b.after(e)};return b.wrap('<div class="owl-video-wrapper"'+g+"></div>"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length?(l(h.attr(i)),h.remove(),!1):void("youtube"===c.type?(f="http://img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type&&a.ajax({type:"GET",url:"http://vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}))},d.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null},d.prototype.play=function(b){this._core.trigger("play",null,"video"),this._playing&&this.stop();var c,d,e=a(b.target||b.srcElement),f=e.closest("."+this._core.settings.itemClass),g=this._videos[f.attr("data-video")],h=g.width||"100%",i=g.height||this._core.$stage.height();"youtube"===g.type?c='<iframe width="'+h+'" height="'+i+'" src="http://www.youtube.com/embed/'+g.id+"?autoplay=1&v="+g.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===g.type&&(c='<iframe src="http://player.vimeo.com/video/'+g.id+'?autoplay=1" width="'+h+'" height="'+i+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'),f.addClass("owl-video-playing"),this._playing=f,d=a('<div style="height:'+i+"px; width:"+h+'px" class="owl-video-frame">'+c+"</div>"),e.after(d)},d.prototype.isInFullScreen=function(){var d=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return d&&a(d).parent().hasClass("owl-video-frame")&&(this._core.speed(0),this._fullscreen=!0),d&&this._fullscreen&&this._playing?!1:this._fullscreen?(this._fullscreen=!1,!1):this._playing&&this._core.state.orientation!==b.orientation?(this._core.state.orientation=b.orientation,!1):!0},d.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=d}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){this.swapping="translated"==a.type},this),"translate.owl.carousel":a.proxy(function(){this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&this.core.support3d){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c)),f&&e.addClass("animated owl-animated-in").addClass(f).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.transitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this.core=b,this.core.options=a.extend({},d.Defaults,this.core.options),this.handlers={"translated.owl.carousel refreshed.owl.carousel":a.proxy(function(){this.autoplay()
|
2 |
+
},this),"play.owl.autoplay":a.proxy(function(a,b,c){this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(){this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.autoplay()},this)},this.core.$element.on(this.handlers)};d.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},d.prototype.autoplay=function(){this.core.settings.autoplay&&!this.core.state.videoPlay?(b.clearInterval(this.interval),this.interval=b.setInterval(a.proxy(function(){this.play()},this),this.core.settings.autoplayTimeout)):b.clearInterval(this.interval)},d.prototype.play=function(){return c.hidden===!0||this.core.state.isTouch||this.core.state.isScrolling||this.core.state.isSwiping||this.core.state.inMotion?void 0:this.core.settings.autoplay===!1?void b.clearInterval(this.interval):void this.core.next(this.core.settings.autoplaySpeed)},d.prototype.stop=function(){b.clearInterval(this.interval)},d.prototype.pause=function(){b.clearInterval(this.interval)},d.prototype.destroy=function(){var a,c;b.clearInterval(this.interval);for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=d}(window.Zepto||window.jQuery,window,document),function(a){"use strict";var b=function(c){this._core=c,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.push(a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"add.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.splice(b.position,0,a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"remove.owl.carousel prepared.owl.carousel":a.proxy(function(a){this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"change.owl.carousel":a.proxy(function(a){if("position"==a.property.name&&!this._core.state.revert&&!this._core.settings.loop&&this._core.settings.navRewind){var b=this._core.current(),c=this._core.maximum(),d=this._core.minimum();a.data=a.property.value>c?b>=c?d:c:a.property.value<d?c:a.property.value}},this),"changed.owl.carousel":a.proxy(function(a){"position"==a.property.name&&this.draw()},this),"refreshed.owl.carousel":a.proxy(function(){this._initialized||(this.initialize(),this._initialized=!0),this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation")},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this.$element.on(this._handlers)};b.Defaults={nav:!1,navRewind:!0,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotData:!1,dotsSpeed:!1,dotsContainer:!1,controlsClass:"owl-controls"},b.prototype.initialize=function(){var b,c,d=this._core.settings;d.dotsData||(this._templates=[a("<div>").addClass(d.dotClass).append(a("<span>")).prop("outerHTML")]),d.navContainer&&d.dotsContainer||(this._controls.$container=a("<div>").addClass(d.controlsClass).appendTo(this.$element)),this._controls.$indicators=d.dotsContainer?a(d.dotsContainer):a("<div>").hide().addClass(d.dotsClass).appendTo(this._controls.$container),this._controls.$indicators.on("click","div",a.proxy(function(b){var c=a(b.target).parent().is(this._controls.$indicators)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(c,d.dotsSpeed)},this)),b=d.navContainer?a(d.navContainer):a("<div>").addClass(d.navContainerClass).prependTo(this._controls.$container),this._controls.$next=a("<"+d.navElement+">"),this._controls.$previous=this._controls.$next.clone(),this._controls.$previous.addClass(d.navClass[0]).html(d.navText[0]).hide().prependTo(b).on("click",a.proxy(function(){this.prev(d.navSpeed)},this)),this._controls.$next.addClass(d.navClass[1]).html(d.navText[1]).hide().appendTo(b).on("click",a.proxy(function(){this.next(d.navSpeed)},this));for(c in this._overrides)this._core[c]=a.proxy(this[c],this)},b.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},b.prototype.update=function(){var a,b,c,d=this._core.settings,e=this._core.clones().length/2,f=e+this._core.items().length,g=d.center||d.autoWidth||d.dotData?1:d.dotsEach||d.items;if("page"!==d.slideBy&&(d.slideBy=Math.min(d.slideBy,d.items)),d.dots||"page"==d.slideBy)for(this._pages=[],a=e,b=0,c=0;f>a;a++)(b>=g||0===b)&&(this._pages.push({start:a-e,end:a-e+g-1}),b=0,++c),b+=this._core.mergers(this._core.relative(a))},b.prototype.draw=function(){var b,c,d="",e=this._core.settings,f=(this._core.$stage.children(),this._core.relative(this._core.current()));if(!e.nav||e.loop||e.navRewind||(this._controls.$previous.toggleClass("disabled",0>=f),this._controls.$next.toggleClass("disabled",f>=this._core.maximum())),this._controls.$previous.toggle(e.nav),this._controls.$next.toggle(e.nav),e.dots){if(b=this._pages.length-this._controls.$indicators.children().length,e.dotData&&0!==b){for(c=0;c<this._controls.$indicators.children().length;c++)d+=this._templates[this._core.relative(c)];this._controls.$indicators.html(d)}else b>0?(d=new Array(b+1).join(this._templates[0]),this._controls.$indicators.append(d)):0>b&&this._controls.$indicators.children().slice(b).remove();this._controls.$indicators.find(".active").removeClass("active"),this._controls.$indicators.children().eq(a.inArray(this.current(),this._pages)).addClass("active")}this._controls.$indicators.toggle(e.dots)},b.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotData?1:c.dotsEach||c.items)}},b.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,function(a){return a.start<=b&&a.end>=b}).pop()},b.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},b.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},b.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},b.prototype.to=function(b,c,d){var e;d?a.proxy(this._overrides.to,this._core)(b,c):(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c))},a.fn.owlCarousel.Constructor.Plugins.Navigation=b}(window.Zepto||window.jQuery,window,document),function(a,b){"use strict";var c=function(d){this._core=d,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(){"URLHash"==this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash");this._hashes[c]=b.content},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(){var a=b.location.hash.substring(1),c=this._core.$stage.children(),d=this._hashes[a]&&c.index(this._hashes[a])||0;return a?void this._core.to(d,!1,!0):!1},this))};c.Defaults={URLhashListener:!1},c.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=c}(window.Zepto||window.jQuery,window,document);
|
js/qunit-1.16.0.js
ADDED
@@ -0,0 +1,2819 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* QUnit 1.16.0
|
3 |
+
* http://qunitjs.com/
|
4 |
+
*
|
5 |
+
* Copyright 2006, 2014 jQuery Foundation and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
* http://jquery.org/license
|
8 |
+
*
|
9 |
+
* Date: 2014-12-03T16:32Z
|
10 |
+
*/
|
11 |
+
|
12 |
+
(function( window ) {
|
13 |
+
|
14 |
+
var QUnit,
|
15 |
+
config,
|
16 |
+
onErrorFnPrev,
|
17 |
+
loggingCallbacks = {},
|
18 |
+
fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ),
|
19 |
+
toString = Object.prototype.toString,
|
20 |
+
hasOwn = Object.prototype.hasOwnProperty,
|
21 |
+
// Keep a local reference to Date (GH-283)
|
22 |
+
Date = window.Date,
|
23 |
+
now = Date.now || function() {
|
24 |
+
return new Date().getTime();
|
25 |
+
},
|
26 |
+
globalStartCalled = false,
|
27 |
+
runStarted = false,
|
28 |
+
setTimeout = window.setTimeout,
|
29 |
+
clearTimeout = window.clearTimeout,
|
30 |
+
defined = {
|
31 |
+
document: window.document !== undefined,
|
32 |
+
setTimeout: window.setTimeout !== undefined,
|
33 |
+
sessionStorage: (function() {
|
34 |
+
var x = "qunit-test-string";
|
35 |
+
try {
|
36 |
+
sessionStorage.setItem( x, x );
|
37 |
+
sessionStorage.removeItem( x );
|
38 |
+
return true;
|
39 |
+
} catch ( e ) {
|
40 |
+
return false;
|
41 |
+
}
|
42 |
+
}())
|
43 |
+
},
|
44 |
+
/**
|
45 |
+
* Provides a normalized error string, correcting an issue
|
46 |
+
* with IE 7 (and prior) where Error.prototype.toString is
|
47 |
+
* not properly implemented
|
48 |
+
*
|
49 |
+
* Based on http://es5.github.com/#x15.11.4.4
|
50 |
+
*
|
51 |
+
* @param {String|Error} error
|
52 |
+
* @return {String} error message
|
53 |
+
*/
|
54 |
+
errorString = function( error ) {
|
55 |
+
var name, message,
|
56 |
+
errorString = error.toString();
|
57 |
+
if ( errorString.substring( 0, 7 ) === "[object" ) {
|
58 |
+
name = error.name ? error.name.toString() : "Error";
|
59 |
+
message = error.message ? error.message.toString() : "";
|
60 |
+
if ( name && message ) {
|
61 |
+
return name + ": " + message;
|
62 |
+
} else if ( name ) {
|
63 |
+
return name;
|
64 |
+
} else if ( message ) {
|
65 |
+
return message;
|
66 |
+
} else {
|
67 |
+
return "Error";
|
68 |
+
}
|
69 |
+
} else {
|
70 |
+
return errorString;
|
71 |
+
}
|
72 |
+
},
|
73 |
+
/**
|
74 |
+
* Makes a clone of an object using only Array or Object as base,
|
75 |
+
* and copies over the own enumerable properties.
|
76 |
+
*
|
77 |
+
* @param {Object} obj
|
78 |
+
* @return {Object} New object with only the own properties (recursively).
|
79 |
+
*/
|
80 |
+
objectValues = function( obj ) {
|
81 |
+
var key, val,
|
82 |
+
vals = QUnit.is( "array", obj ) ? [] : {};
|
83 |
+
for ( key in obj ) {
|
84 |
+
if ( hasOwn.call( obj, key ) ) {
|
85 |
+
val = obj[ key ];
|
86 |
+
vals[ key ] = val === Object( val ) ? objectValues( val ) : val;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
return vals;
|
90 |
+
};
|
91 |
+
|
92 |
+
QUnit = {};
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Config object: Maintain internal state
|
96 |
+
* Later exposed as QUnit.config
|
97 |
+
* `config` initialized at top of scope
|
98 |
+
*/
|
99 |
+
config = {
|
100 |
+
// The queue of tests to run
|
101 |
+
queue: [],
|
102 |
+
|
103 |
+
// block until document ready
|
104 |
+
blocking: true,
|
105 |
+
|
106 |
+
// when enabled, show only failing tests
|
107 |
+
// gets persisted through sessionStorage and can be changed in UI via checkbox
|
108 |
+
hidepassed: false,
|
109 |
+
|
110 |
+
// by default, run previously failed tests first
|
111 |
+
// very useful in combination with "Hide passed tests" checked
|
112 |
+
reorder: true,
|
113 |
+
|
114 |
+
// by default, modify document.title when suite is done
|
115 |
+
altertitle: true,
|
116 |
+
|
117 |
+
// by default, scroll to top of the page when suite is done
|
118 |
+
scrolltop: true,
|
119 |
+
|
120 |
+
// when enabled, all tests must call expect()
|
121 |
+
requireExpects: false,
|
122 |
+
|
123 |
+
// add checkboxes that are persisted in the query-string
|
124 |
+
// when enabled, the id is set to `true` as a `QUnit.config` property
|
125 |
+
urlConfig: [
|
126 |
+
{
|
127 |
+
id: "hidepassed",
|
128 |
+
label: "Hide passed tests",
|
129 |
+
tooltip: "Only show tests and assertions that fail. Stored as query-strings."
|
130 |
+
},
|
131 |
+
{
|
132 |
+
id: "noglobals",
|
133 |
+
label: "Check for Globals",
|
134 |
+
tooltip: "Enabling this will test if any test introduces new properties on the " +
|
135 |
+
"`window` object. Stored as query-strings."
|
136 |
+
},
|
137 |
+
{
|
138 |
+
id: "notrycatch",
|
139 |
+
label: "No try-catch",
|
140 |
+
tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " +
|
141 |
+
"exceptions in IE reasonable. Stored as query-strings."
|
142 |
+
}
|
143 |
+
],
|
144 |
+
|
145 |
+
// Set of all modules.
|
146 |
+
modules: [],
|
147 |
+
|
148 |
+
// The first unnamed module
|
149 |
+
currentModule: {
|
150 |
+
name: "",
|
151 |
+
tests: []
|
152 |
+
},
|
153 |
+
|
154 |
+
callbacks: {}
|
155 |
+
};
|
156 |
+
|
157 |
+
// Push a loose unnamed module to the modules collection
|
158 |
+
config.modules.push( config.currentModule );
|
159 |
+
|
160 |
+
// Initialize more QUnit.config and QUnit.urlParams
|
161 |
+
(function() {
|
162 |
+
var i, current,
|
163 |
+
location = window.location || { search: "", protocol: "file:" },
|
164 |
+
params = location.search.slice( 1 ).split( "&" ),
|
165 |
+
length = params.length,
|
166 |
+
urlParams = {};
|
167 |
+
|
168 |
+
if ( params[ 0 ] ) {
|
169 |
+
for ( i = 0; i < length; i++ ) {
|
170 |
+
current = params[ i ].split( "=" );
|
171 |
+
current[ 0 ] = decodeURIComponent( current[ 0 ] );
|
172 |
+
|
173 |
+
// allow just a key to turn on a flag, e.g., test.html?noglobals
|
174 |
+
current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
|
175 |
+
if ( urlParams[ current[ 0 ] ] ) {
|
176 |
+
urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );
|
177 |
+
} else {
|
178 |
+
urlParams[ current[ 0 ] ] = current[ 1 ];
|
179 |
+
}
|
180 |
+
}
|
181 |
+
}
|
182 |
+
|
183 |
+
QUnit.urlParams = urlParams;
|
184 |
+
|
185 |
+
// String search anywhere in moduleName+testName
|
186 |
+
config.filter = urlParams.filter;
|
187 |
+
|
188 |
+
config.testId = [];
|
189 |
+
if ( urlParams.testId ) {
|
190 |
+
|
191 |
+
// Ensure that urlParams.testId is an array
|
192 |
+
urlParams.testId = [].concat( urlParams.testId );
|
193 |
+
for ( i = 0; i < urlParams.testId.length; i++ ) {
|
194 |
+
config.testId.push( urlParams.testId[ i ] );
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
// Figure out if we're running the tests from a server or not
|
199 |
+
QUnit.isLocal = location.protocol === "file:";
|
200 |
+
}());
|
201 |
+
|
202 |
+
// Root QUnit object.
|
203 |
+
// `QUnit` initialized at top of scope
|
204 |
+
extend( QUnit, {
|
205 |
+
|
206 |
+
// call on start of module test to prepend name to all tests
|
207 |
+
module: function( name, testEnvironment ) {
|
208 |
+
var currentModule = {
|
209 |
+
name: name,
|
210 |
+
testEnvironment: testEnvironment,
|
211 |
+
tests: []
|
212 |
+
};
|
213 |
+
|
214 |
+
// DEPRECATED: handles setup/teardown functions,
|
215 |
+
// beforeEach and afterEach should be used instead
|
216 |
+
if ( testEnvironment && testEnvironment.setup ) {
|
217 |
+
testEnvironment.beforeEach = testEnvironment.setup;
|
218 |
+
delete testEnvironment.setup;
|
219 |
+
}
|
220 |
+
if ( testEnvironment && testEnvironment.teardown ) {
|
221 |
+
testEnvironment.afterEach = testEnvironment.teardown;
|
222 |
+
delete testEnvironment.teardown;
|
223 |
+
}
|
224 |
+
|
225 |
+
config.modules.push( currentModule );
|
226 |
+
config.currentModule = currentModule;
|
227 |
+
},
|
228 |
+
|
229 |
+
// DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0.
|
230 |
+
asyncTest: function( testName, expected, callback ) {
|
231 |
+
if ( arguments.length === 2 ) {
|
232 |
+
callback = expected;
|
233 |
+
expected = null;
|
234 |
+
}
|
235 |
+
|
236 |
+
QUnit.test( testName, expected, callback, true );
|
237 |
+
},
|
238 |
+
|
239 |
+
test: function( testName, expected, callback, async ) {
|
240 |
+
var test;
|
241 |
+
|
242 |
+
if ( arguments.length === 2 ) {
|
243 |
+
callback = expected;
|
244 |
+
expected = null;
|
245 |
+
}
|
246 |
+
|
247 |
+
test = new Test({
|
248 |
+
testName: testName,
|
249 |
+
expected: expected,
|
250 |
+
async: async,
|
251 |
+
callback: callback
|
252 |
+
});
|
253 |
+
|
254 |
+
test.queue();
|
255 |
+
},
|
256 |
+
|
257 |
+
skip: function( testName ) {
|
258 |
+
var test = new Test({
|
259 |
+
testName: testName,
|
260 |
+
skip: true
|
261 |
+
});
|
262 |
+
|
263 |
+
test.queue();
|
264 |
+
},
|
265 |
+
|
266 |
+
// DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0.
|
267 |
+
// In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior.
|
268 |
+
start: function( count ) {
|
269 |
+
var globalStartAlreadyCalled = globalStartCalled;
|
270 |
+
|
271 |
+
if ( !config.current ) {
|
272 |
+
globalStartCalled = true;
|
273 |
+
|
274 |
+
if ( runStarted ) {
|
275 |
+
throw new Error( "Called start() outside of a test context while already started" );
|
276 |
+
} else if ( globalStartAlreadyCalled || count > 1 ) {
|
277 |
+
throw new Error( "Called start() outside of a test context too many times" );
|
278 |
+
} else if ( config.autostart ) {
|
279 |
+
throw new Error( "Called start() outside of a test context when " +
|
280 |
+
"QUnit.config.autostart was true" );
|
281 |
+
} else if ( !config.pageLoaded ) {
|
282 |
+
|
283 |
+
// The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it
|
284 |
+
config.autostart = true;
|
285 |
+
return;
|
286 |
+
}
|
287 |
+
} else {
|
288 |
+
|
289 |
+
// If a test is running, adjust its semaphore
|
290 |
+
config.current.semaphore -= count || 1;
|
291 |
+
|
292 |
+
// Don't start until equal number of stop-calls
|
293 |
+
if ( config.current.semaphore > 0 ) {
|
294 |
+
return;
|
295 |
+
}
|
296 |
+
|
297 |
+
// throw an Error if start is called more often than stop
|
298 |
+
if ( config.current.semaphore < 0 ) {
|
299 |
+
config.current.semaphore = 0;
|
300 |
+
|
301 |
+
QUnit.pushFailure(
|
302 |
+
"Called start() while already started (test's semaphore was 0 already)",
|
303 |
+
sourceFromStacktrace( 2 )
|
304 |
+
);
|
305 |
+
return;
|
306 |
+
}
|
307 |
+
}
|
308 |
+
|
309 |
+
resumeProcessing();
|
310 |
+
},
|
311 |
+
|
312 |
+
// DEPRECATED: QUnit.stop() will be removed in QUnit 2.0.
|
313 |
+
stop: function( count ) {
|
314 |
+
|
315 |
+
// If there isn't a test running, don't allow QUnit.stop() to be called
|
316 |
+
if ( !config.current ) {
|
317 |
+
throw new Error( "Called stop() outside of a test context" );
|
318 |
+
}
|
319 |
+
|
320 |
+
// If a test is running, adjust its semaphore
|
321 |
+
config.current.semaphore += count || 1;
|
322 |
+
|
323 |
+
pauseProcessing();
|
324 |
+
},
|
325 |
+
|
326 |
+
config: config,
|
327 |
+
|
328 |
+
// Safe object type checking
|
329 |
+
is: function( type, obj ) {
|
330 |
+
return QUnit.objectType( obj ) === type;
|
331 |
+
},
|
332 |
+
|
333 |
+
objectType: function( obj ) {
|
334 |
+
if ( typeof obj === "undefined" ) {
|
335 |
+
return "undefined";
|
336 |
+
}
|
337 |
+
|
338 |
+
// Consider: typeof null === object
|
339 |
+
if ( obj === null ) {
|
340 |
+
return "null";
|
341 |
+
}
|
342 |
+
|
343 |
+
var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ),
|
344 |
+
type = match && match[ 1 ] || "";
|
345 |
+
|
346 |
+
switch ( type ) {
|
347 |
+
case "Number":
|
348 |
+
if ( isNaN( obj ) ) {
|
349 |
+
return "nan";
|
350 |
+
}
|
351 |
+
return "number";
|
352 |
+
case "String":
|
353 |
+
case "Boolean":
|
354 |
+
case "Array":
|
355 |
+
case "Date":
|
356 |
+
case "RegExp":
|
357 |
+
case "Function":
|
358 |
+
return type.toLowerCase();
|
359 |
+
}
|
360 |
+
if ( typeof obj === "object" ) {
|
361 |
+
return "object";
|
362 |
+
}
|
363 |
+
return undefined;
|
364 |
+
},
|
365 |
+
|
366 |
+
url: function( params ) {
|
367 |
+
params = extend( extend( {}, QUnit.urlParams ), params );
|
368 |
+
var key,
|
369 |
+
querystring = "?";
|
370 |
+
|
371 |
+
for ( key in params ) {
|
372 |
+
if ( hasOwn.call( params, key ) ) {
|
373 |
+
querystring += encodeURIComponent( key );
|
374 |
+
if ( params[ key ] !== true ) {
|
375 |
+
querystring += "=" + encodeURIComponent( params[ key ] );
|
376 |
+
}
|
377 |
+
querystring += "&";
|
378 |
+
}
|
379 |
+
}
|
380 |
+
return location.protocol + "//" + location.host +
|
381 |
+
location.pathname + querystring.slice( 0, -1 );
|
382 |
+
},
|
383 |
+
|
384 |
+
extend: extend,
|
385 |
+
|
386 |
+
load: function() {
|
387 |
+
config.pageLoaded = true;
|
388 |
+
|
389 |
+
// Initialize the configuration options
|
390 |
+
extend( config, {
|
391 |
+
stats: { all: 0, bad: 0 },
|
392 |
+
moduleStats: { all: 0, bad: 0 },
|
393 |
+
started: 0,
|
394 |
+
updateRate: 1000,
|
395 |
+
autostart: true,
|
396 |
+
filter: ""
|
397 |
+
}, true );
|
398 |
+
|
399 |
+
config.blocking = false;
|
400 |
+
|
401 |
+
if ( config.autostart ) {
|
402 |
+
resumeProcessing();
|
403 |
+
}
|
404 |
+
}
|
405 |
+
});
|
406 |
+
|
407 |
+
// Register logging callbacks
|
408 |
+
(function() {
|
409 |
+
var i, l, key,
|
410 |
+
callbacks = [ "begin", "done", "log", "testStart", "testDone",
|
411 |
+
"moduleStart", "moduleDone" ];
|
412 |
+
|
413 |
+
function registerLoggingCallback( key ) {
|
414 |
+
var loggingCallback = function( callback ) {
|
415 |
+
if ( QUnit.objectType( callback ) !== "function" ) {
|
416 |
+
throw new Error(
|
417 |
+
"QUnit logging methods require a callback function as their first parameters."
|
418 |
+
);
|
419 |
+
}
|
420 |
+
|
421 |
+
config.callbacks[ key ].push( callback );
|
422 |
+
};
|
423 |
+
|
424 |
+
// DEPRECATED: This will be removed on QUnit 2.0.0+
|
425 |
+
// Stores the registered functions allowing restoring
|
426 |
+
// at verifyLoggingCallbacks() if modified
|
427 |
+
loggingCallbacks[ key ] = loggingCallback;
|
428 |
+
|
429 |
+
return loggingCallback;
|
430 |
+
}
|
431 |
+
|
432 |
+
for ( i = 0, l = callbacks.length; i < l; i++ ) {
|
433 |
+
key = callbacks[ i ];
|
434 |
+
|
435 |
+
// Initialize key collection of logging callback
|
436 |
+
if ( QUnit.objectType( config.callbacks[ key ] ) === "undefined" ) {
|
437 |
+
config.callbacks[ key ] = [];
|
438 |
+
}
|
439 |
+
|
440 |
+
QUnit[ key ] = registerLoggingCallback( key );
|
441 |
+
}
|
442 |
+
})();
|
443 |
+
|
444 |
+
// `onErrorFnPrev` initialized at top of scope
|
445 |
+
// Preserve other handlers
|
446 |
+
onErrorFnPrev = window.onerror;
|
447 |
+
|
448 |
+
// Cover uncaught exceptions
|
449 |
+
// Returning true will suppress the default browser handler,
|
450 |
+
// returning false will let it run.
|
451 |
+
window.onerror = function( error, filePath, linerNr ) {
|
452 |
+
var ret = false;
|
453 |
+
if ( onErrorFnPrev ) {
|
454 |
+
ret = onErrorFnPrev( error, filePath, linerNr );
|
455 |
+
}
|
456 |
+
|
457 |
+
// Treat return value as window.onerror itself does,
|
458 |
+
// Only do our handling if not suppressed.
|
459 |
+
if ( ret !== true ) {
|
460 |
+
if ( QUnit.config.current ) {
|
461 |
+
if ( QUnit.config.current.ignoreGlobalErrors ) {
|
462 |
+
return true;
|
463 |
+
}
|
464 |
+
QUnit.pushFailure( error, filePath + ":" + linerNr );
|
465 |
+
} else {
|
466 |
+
QUnit.test( "global failure", extend(function() {
|
467 |
+
QUnit.pushFailure( error, filePath + ":" + linerNr );
|
468 |
+
}, { validTest: true } ) );
|
469 |
+
}
|
470 |
+
return false;
|
471 |
+
}
|
472 |
+
|
473 |
+
return ret;
|
474 |
+
};
|
475 |
+
|
476 |
+
function done() {
|
477 |
+
var runtime, passed;
|
478 |
+
|
479 |
+
config.autorun = true;
|
480 |
+
|
481 |
+
// Log the last module results
|
482 |
+
if ( config.previousModule ) {
|
483 |
+
runLoggingCallbacks( "moduleDone", {
|
484 |
+
name: config.previousModule.name,
|
485 |
+
tests: config.previousModule.tests,
|
486 |
+
failed: config.moduleStats.bad,
|
487 |
+
passed: config.moduleStats.all - config.moduleStats.bad,
|
488 |
+
total: config.moduleStats.all,
|
489 |
+
runtime: now() - config.moduleStats.started
|
490 |
+
});
|
491 |
+
}
|
492 |
+
delete config.previousModule;
|
493 |
+
|
494 |
+
runtime = now() - config.started;
|
495 |
+
passed = config.stats.all - config.stats.bad;
|
496 |
+
|
497 |
+
runLoggingCallbacks( "done", {
|
498 |
+
failed: config.stats.bad,
|
499 |
+
passed: passed,
|
500 |
+
total: config.stats.all,
|
501 |
+
runtime: runtime
|
502 |
+
});
|
503 |
+
}
|
504 |
+
|
505 |
+
// Doesn't support IE6 to IE9
|
506 |
+
// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
|
507 |
+
function extractStacktrace( e, offset ) {
|
508 |
+
offset = offset === undefined ? 4 : offset;
|
509 |
+
|
510 |
+
var stack, include, i;
|
511 |
+
|
512 |
+
if ( e.stacktrace ) {
|
513 |
+
|
514 |
+
// Opera 12.x
|
515 |
+
return e.stacktrace.split( "\n" )[ offset + 3 ];
|
516 |
+
} else if ( e.stack ) {
|
517 |
+
|
518 |
+
// Firefox, Chrome, Safari 6+, IE10+, PhantomJS and Node
|
519 |
+
stack = e.stack.split( "\n" );
|
520 |
+
if ( /^error$/i.test( stack[ 0 ] ) ) {
|
521 |
+
stack.shift();
|
522 |
+
}
|
523 |
+
if ( fileName ) {
|
524 |
+
include = [];
|
525 |
+
for ( i = offset; i < stack.length; i++ ) {
|
526 |
+
if ( stack[ i ].indexOf( fileName ) !== -1 ) {
|
527 |
+
break;
|
528 |
+
}
|
529 |
+
include.push( stack[ i ] );
|
530 |
+
}
|
531 |
+
if ( include.length ) {
|
532 |
+
return include.join( "\n" );
|
533 |
+
}
|
534 |
+
}
|
535 |
+
return stack[ offset ];
|
536 |
+
} else if ( e.sourceURL ) {
|
537 |
+
|
538 |
+
// Safari < 6
|
539 |
+
// exclude useless self-reference for generated Error objects
|
540 |
+
if ( /qunit.js$/.test( e.sourceURL ) ) {
|
541 |
+
return;
|
542 |
+
}
|
543 |
+
|
544 |
+
// for actual exceptions, this is useful
|
545 |
+
return e.sourceURL + ":" + e.line;
|
546 |
+
}
|
547 |
+
}
|
548 |
+
|
549 |
+
function sourceFromStacktrace( offset ) {
|
550 |
+
var e = new Error();
|
551 |
+
if ( !e.stack ) {
|
552 |
+
try {
|
553 |
+
throw e;
|
554 |
+
} catch ( err ) {
|
555 |
+
// This should already be true in most browsers
|
556 |
+
e = err;
|
557 |
+
}
|
558 |
+
}
|
559 |
+
return extractStacktrace( e, offset );
|
560 |
+
}
|
561 |
+
|
562 |
+
function synchronize( callback, last ) {
|
563 |
+
if ( QUnit.objectType( callback ) === "array" ) {
|
564 |
+
while ( callback.length ) {
|
565 |
+
synchronize( callback.shift() );
|
566 |
+
}
|
567 |
+
return;
|
568 |
+
}
|
569 |
+
config.queue.push( callback );
|
570 |
+
|
571 |
+
if ( config.autorun && !config.blocking ) {
|
572 |
+
process( last );
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
+
function process( last ) {
|
577 |
+
function next() {
|
578 |
+
process( last );
|
579 |
+
}
|
580 |
+
var start = now();
|
581 |
+
config.depth = config.depth ? config.depth + 1 : 1;
|
582 |
+
|
583 |
+
while ( config.queue.length && !config.blocking ) {
|
584 |
+
if ( !defined.setTimeout || config.updateRate <= 0 ||
|
585 |
+
( ( now() - start ) < config.updateRate ) ) {
|
586 |
+
if ( config.current ) {
|
587 |
+
|
588 |
+
// Reset async tracking for each phase of the Test lifecycle
|
589 |
+
config.current.usedAsync = false;
|
590 |
+
}
|
591 |
+
config.queue.shift()();
|
592 |
+
} else {
|
593 |
+
setTimeout( next, 13 );
|
594 |
+
break;
|
595 |
+
}
|
596 |
+
}
|
597 |
+
config.depth--;
|
598 |
+
if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
|
599 |
+
done();
|
600 |
+
}
|
601 |
+
}
|
602 |
+
|
603 |
+
function begin() {
|
604 |
+
var i, l,
|
605 |
+
modulesLog = [];
|
606 |
+
|
607 |
+
// If the test run hasn't officially begun yet
|
608 |
+
if ( !config.started ) {
|
609 |
+
|
610 |
+
// Record the time of the test run's beginning
|
611 |
+
config.started = now();
|
612 |
+
|
613 |
+
verifyLoggingCallbacks();
|
614 |
+
|
615 |
+
// Delete the loose unnamed module if unused.
|
616 |
+
if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) {
|
617 |
+
config.modules.shift();
|
618 |
+
}
|
619 |
+
|
620 |
+
// Avoid unnecessary information by not logging modules' test environments
|
621 |
+
for ( i = 0, l = config.modules.length; i < l; i++ ) {
|
622 |
+
modulesLog.push({
|
623 |
+
name: config.modules[ i ].name,
|
624 |
+
tests: config.modules[ i ].tests
|
625 |
+
});
|
626 |
+
}
|
627 |
+
|
628 |
+
// The test run is officially beginning now
|
629 |
+
runLoggingCallbacks( "begin", {
|
630 |
+
totalTests: Test.count,
|
631 |
+
modules: modulesLog
|
632 |
+
});
|
633 |
+
}
|
634 |
+
|
635 |
+
config.blocking = false;
|
636 |
+
process( true );
|
637 |
+
}
|
638 |
+
|
639 |
+
function resumeProcessing() {
|
640 |
+
runStarted = true;
|
641 |
+
|
642 |
+
// A slight delay to allow this iteration of the event loop to finish (more assertions, etc.)
|
643 |
+
if ( defined.setTimeout ) {
|
644 |
+
setTimeout(function() {
|
645 |
+
if ( config.current && config.current.semaphore > 0 ) {
|
646 |
+
return;
|
647 |
+
}
|
648 |
+
if ( config.timeout ) {
|
649 |
+
clearTimeout( config.timeout );
|
650 |
+
}
|
651 |
+
|
652 |
+
begin();
|
653 |
+
}, 13 );
|
654 |
+
} else {
|
655 |
+
begin();
|
656 |
+
}
|
657 |
+
}
|
658 |
+
|
659 |
+
function pauseProcessing() {
|
660 |
+
config.blocking = true;
|
661 |
+
|
662 |
+
if ( config.testTimeout && defined.setTimeout ) {
|
663 |
+
clearTimeout( config.timeout );
|
664 |
+
config.timeout = setTimeout(function() {
|
665 |
+
if ( config.current ) {
|
666 |
+
config.current.semaphore = 0;
|
667 |
+
QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) );
|
668 |
+
} else {
|
669 |
+
throw new Error( "Test timed out" );
|
670 |
+
}
|
671 |
+
resumeProcessing();
|
672 |
+
}, config.testTimeout );
|
673 |
+
}
|
674 |
+
}
|
675 |
+
|
676 |
+
function saveGlobal() {
|
677 |
+
config.pollution = [];
|
678 |
+
|
679 |
+
if ( config.noglobals ) {
|
680 |
+
for ( var key in window ) {
|
681 |
+
if ( hasOwn.call( window, key ) ) {
|
682 |
+
// in Opera sometimes DOM element ids show up here, ignore them
|
683 |
+
if ( /^qunit-test-output/.test( key ) ) {
|
684 |
+
continue;
|
685 |
+
}
|
686 |
+
config.pollution.push( key );
|
687 |
+
}
|
688 |
+
}
|
689 |
+
}
|
690 |
+
}
|
691 |
+
|
692 |
+
function checkPollution() {
|
693 |
+
var newGlobals,
|
694 |
+
deletedGlobals,
|
695 |
+
old = config.pollution;
|
696 |
+
|
697 |
+
saveGlobal();
|
698 |
+
|
699 |
+
newGlobals = diff( config.pollution, old );
|
700 |
+
if ( newGlobals.length > 0 ) {
|
701 |
+
QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) );
|
702 |
+
}
|
703 |
+
|
704 |
+
deletedGlobals = diff( old, config.pollution );
|
705 |
+
if ( deletedGlobals.length > 0 ) {
|
706 |
+
QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) );
|
707 |
+
}
|
708 |
+
}
|
709 |
+
|
710 |
+
// returns a new Array with the elements that are in a but not in b
|
711 |
+
function diff( a, b ) {
|
712 |
+
var i, j,
|
713 |
+
result = a.slice();
|
714 |
+
|
715 |
+
for ( i = 0; i < result.length; i++ ) {
|
716 |
+
for ( j = 0; j < b.length; j++ ) {
|
717 |
+
if ( result[ i ] === b[ j ] ) {
|
718 |
+
result.splice( i, 1 );
|
719 |
+
i--;
|
720 |
+
break;
|
721 |
+
}
|
722 |
+
}
|
723 |
+
}
|
724 |
+
return result;
|
725 |
+
}
|
726 |
+
|
727 |
+
function extend( a, b, undefOnly ) {
|
728 |
+
for ( var prop in b ) {
|
729 |
+
if ( hasOwn.call( b, prop ) ) {
|
730 |
+
|
731 |
+
// Avoid "Member not found" error in IE8 caused by messing with window.constructor
|
732 |
+
if ( !( prop === "constructor" && a === window ) ) {
|
733 |
+
if ( b[ prop ] === undefined ) {
|
734 |
+
delete a[ prop ];
|
735 |
+
} else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) {
|
736 |
+
a[ prop ] = b[ prop ];
|
737 |
+
}
|
738 |
+
}
|
739 |
+
}
|
740 |
+
}
|
741 |
+
|
742 |
+
return a;
|
743 |
+
}
|
744 |
+
|
745 |
+
function runLoggingCallbacks( key, args ) {
|
746 |
+
var i, l, callbacks;
|
747 |
+
|
748 |
+
callbacks = config.callbacks[ key ];
|
749 |
+
for ( i = 0, l = callbacks.length; i < l; i++ ) {
|
750 |
+
callbacks[ i ]( args );
|
751 |
+
}
|
752 |
+
}
|
753 |
+
|
754 |
+
// DEPRECATED: This will be removed on 2.0.0+
|
755 |
+
// This function verifies if the loggingCallbacks were modified by the user
|
756 |
+
// If so, it will restore it, assign the given callback and print a console warning
|
757 |
+
function verifyLoggingCallbacks() {
|
758 |
+
var loggingCallback, userCallback;
|
759 |
+
|
760 |
+
for ( loggingCallback in loggingCallbacks ) {
|
761 |
+
if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) {
|
762 |
+
|
763 |
+
userCallback = QUnit[ loggingCallback ];
|
764 |
+
|
765 |
+
// Restore the callback function
|
766 |
+
QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ];
|
767 |
+
|
768 |
+
// Assign the deprecated given callback
|
769 |
+
QUnit[ loggingCallback ]( userCallback );
|
770 |
+
|
771 |
+
if ( window.console && window.console.warn ) {
|
772 |
+
window.console.warn(
|
773 |
+
"QUnit." + loggingCallback + " was replaced with a new value.\n" +
|
774 |
+
"Please, check out the documentation on how to apply logging callbacks.\n" +
|
775 |
+
"Reference: http://api.qunitjs.com/category/callbacks/"
|
776 |
+
);
|
777 |
+
}
|
778 |
+
}
|
779 |
+
}
|
780 |
+
}
|
781 |
+
|
782 |
+
// from jquery.js
|
783 |
+
function inArray( elem, array ) {
|
784 |
+
if ( array.indexOf ) {
|
785 |
+
return array.indexOf( elem );
|
786 |
+
}
|
787 |
+
|
788 |
+
for ( var i = 0, length = array.length; i < length; i++ ) {
|
789 |
+
if ( array[ i ] === elem ) {
|
790 |
+
return i;
|
791 |
+
}
|
792 |
+
}
|
793 |
+
|
794 |
+
return -1;
|
795 |
+
}
|
796 |
+
|
797 |
+
function Test( settings ) {
|
798 |
+
var i, l;
|
799 |
+
|
800 |
+
++Test.count;
|
801 |
+
|
802 |
+
extend( this, settings );
|
803 |
+
this.assertions = [];
|
804 |
+
this.semaphore = 0;
|
805 |
+
this.usedAsync = false;
|
806 |
+
this.module = config.currentModule;
|
807 |
+
this.stack = sourceFromStacktrace( 3 );
|
808 |
+
|
809 |
+
// Register unique strings
|
810 |
+
for ( i = 0, l = this.module.tests; i < l.length; i++ ) {
|
811 |
+
if ( this.module.tests[ i ].name === this.testName ) {
|
812 |
+
this.testName += " ";
|
813 |
+
}
|
814 |
+
}
|
815 |
+
|
816 |
+
this.testId = generateHash( this.module.name, this.testName );
|
817 |
+
|
818 |
+
this.module.tests.push({
|
819 |
+
name: this.testName,
|
820 |
+
testId: this.testId
|
821 |
+
});
|
822 |
+
|
823 |
+
if ( settings.skip ) {
|
824 |
+
|
825 |
+
// Skipped tests will fully ignore any sent callback
|
826 |
+
this.callback = function() {};
|
827 |
+
this.async = false;
|
828 |
+
this.expected = 0;
|
829 |
+
} else {
|
830 |
+
this.assert = new Assert( this );
|
831 |
+
}
|
832 |
+
}
|
833 |
+
|
834 |
+
Test.count = 0;
|
835 |
+
|
836 |
+
Test.prototype = {
|
837 |
+
before: function() {
|
838 |
+
if (
|
839 |
+
|
840 |
+
// Emit moduleStart when we're switching from one module to another
|
841 |
+
this.module !== config.previousModule ||
|
842 |
+
|
843 |
+
// They could be equal (both undefined) but if the previousModule property doesn't
|
844 |
+
// yet exist it means this is the first test in a suite that isn't wrapped in a
|
845 |
+
// module, in which case we'll just emit a moduleStart event for 'undefined'.
|
846 |
+
// Without this, reporters can get testStart before moduleStart which is a problem.
|
847 |
+
!hasOwn.call( config, "previousModule" )
|
848 |
+
) {
|
849 |
+
if ( hasOwn.call( config, "previousModule" ) ) {
|
850 |
+
runLoggingCallbacks( "moduleDone", {
|
851 |
+
name: config.previousModule.name,
|
852 |
+
tests: config.previousModule.tests,
|
853 |
+
failed: config.moduleStats.bad,
|
854 |
+
passed: config.moduleStats.all - config.moduleStats.bad,
|
855 |
+
total: config.moduleStats.all,
|
856 |
+
runtime: now() - config.moduleStats.started
|
857 |
+
});
|
858 |
+
}
|
859 |
+
config.previousModule = this.module;
|
860 |
+
config.moduleStats = { all: 0, bad: 0, started: now() };
|
861 |
+
runLoggingCallbacks( "moduleStart", {
|
862 |
+
name: this.module.name,
|
863 |
+
tests: this.module.tests
|
864 |
+
});
|
865 |
+
}
|
866 |
+
|
867 |
+
config.current = this;
|
868 |
+
|
869 |
+
this.testEnvironment = extend( {}, this.module.testEnvironment );
|
870 |
+
delete this.testEnvironment.beforeEach;
|
871 |
+
delete this.testEnvironment.afterEach;
|
872 |
+
|
873 |
+
this.started = now();
|
874 |
+
runLoggingCallbacks( "testStart", {
|
875 |
+
name: this.testName,
|
876 |
+
module: this.module.name,
|
877 |
+
testId: this.testId
|
878 |
+
});
|
879 |
+
|
880 |
+
if ( !config.pollution ) {
|
881 |
+
saveGlobal();
|
882 |
+
}
|
883 |
+
},
|
884 |
+
|
885 |
+
run: function() {
|
886 |
+
var promise;
|
887 |
+
|
888 |
+
config.current = this;
|
889 |
+
|
890 |
+
if ( this.async ) {
|
891 |
+
QUnit.stop();
|
892 |
+
}
|
893 |
+
|
894 |
+
this.callbackStarted = now();
|
895 |
+
|
896 |
+
if ( config.notrycatch ) {
|
897 |
+
promise = this.callback.call( this.testEnvironment, this.assert );
|
898 |
+
this.resolvePromise( promise );
|
899 |
+
return;
|
900 |
+
}
|
901 |
+
|
902 |
+
try {
|
903 |
+
promise = this.callback.call( this.testEnvironment, this.assert );
|
904 |
+
this.resolvePromise( promise );
|
905 |
+
} catch ( e ) {
|
906 |
+
this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " +
|
907 |
+
this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
|
908 |
+
|
909 |
+
// else next test will carry the responsibility
|
910 |
+
saveGlobal();
|
911 |
+
|
912 |
+
// Restart the tests if they're blocking
|
913 |
+
if ( config.blocking ) {
|
914 |
+
QUnit.start();
|
915 |
+
}
|
916 |
+
}
|
917 |
+
},
|
918 |
+
|
919 |
+
after: function() {
|
920 |
+
checkPollution();
|
921 |
+
},
|
922 |
+
|
923 |
+
queueHook: function( hook, hookName ) {
|
924 |
+
var promise,
|
925 |
+
test = this;
|
926 |
+
return function runHook() {
|
927 |
+
config.current = test;
|
928 |
+
if ( config.notrycatch ) {
|
929 |
+
promise = hook.call( test.testEnvironment, test.assert );
|
930 |
+
test.resolvePromise( promise, hookName );
|
931 |
+
return;
|
932 |
+
}
|
933 |
+
try {
|
934 |
+
promise = hook.call( test.testEnvironment, test.assert );
|
935 |
+
test.resolvePromise( promise, hookName );
|
936 |
+
} catch ( error ) {
|
937 |
+
test.pushFailure( hookName + " failed on " + test.testName + ": " +
|
938 |
+
( error.message || error ), extractStacktrace( error, 0 ) );
|
939 |
+
}
|
940 |
+
};
|
941 |
+
},
|
942 |
+
|
943 |
+
// Currently only used for module level hooks, can be used to add global level ones
|
944 |
+
hooks: function( handler ) {
|
945 |
+
var hooks = [];
|
946 |
+
|
947 |
+
// Hooks are ignored on skipped tests
|
948 |
+
if ( this.skip ) {
|
949 |
+
return hooks;
|
950 |
+
}
|
951 |
+
|
952 |
+
if ( this.module.testEnvironment &&
|
953 |
+
QUnit.objectType( this.module.testEnvironment[ handler ] ) === "function" ) {
|
954 |
+
hooks.push( this.queueHook( this.module.testEnvironment[ handler ], handler ) );
|
955 |
+
}
|
956 |
+
|
957 |
+
return hooks;
|
958 |
+
},
|
959 |
+
|
960 |
+
finish: function() {
|
961 |
+
config.current = this;
|
962 |
+
if ( config.requireExpects && this.expected === null ) {
|
963 |
+
this.pushFailure( "Expected number of assertions to be defined, but expect() was " +
|
964 |
+
"not called.", this.stack );
|
965 |
+
} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
|
966 |
+
this.pushFailure( "Expected " + this.expected + " assertions, but " +
|
967 |
+
this.assertions.length + " were run", this.stack );
|
968 |
+
} else if ( this.expected === null && !this.assertions.length ) {
|
969 |
+
this.pushFailure( "Expected at least one assertion, but none were run - call " +
|
970 |
+
"expect(0) to accept zero assertions.", this.stack );
|
971 |
+
}
|
972 |
+
|
973 |
+
var i,
|
974 |
+
bad = 0;
|
975 |
+
|
976 |
+
this.runtime = now() - this.started;
|
977 |
+
config.stats.all += this.assertions.length;
|
978 |
+
config.moduleStats.all += this.assertions.length;
|
979 |
+
|
980 |
+
for ( i = 0; i < this.assertions.length; i++ ) {
|
981 |
+
if ( !this.assertions[ i ].result ) {
|
982 |
+
bad++;
|
983 |
+
config.stats.bad++;
|
984 |
+
config.moduleStats.bad++;
|
985 |
+
}
|
986 |
+
}
|
987 |
+
|
988 |
+
runLoggingCallbacks( "testDone", {
|
989 |
+
name: this.testName,
|
990 |
+
module: this.module.name,
|
991 |
+
skipped: !!this.skip,
|
992 |
+
failed: bad,
|
993 |
+
passed: this.assertions.length - bad,
|
994 |
+
total: this.assertions.length,
|
995 |
+
runtime: this.runtime,
|
996 |
+
|
997 |
+
// HTML Reporter use
|
998 |
+
assertions: this.assertions,
|
999 |
+
testId: this.testId,
|
1000 |
+
|
1001 |
+
// DEPRECATED: this property will be removed in 2.0.0, use runtime instead
|
1002 |
+
duration: this.runtime
|
1003 |
+
});
|
1004 |
+
|
1005 |
+
// QUnit.reset() is deprecated and will be replaced for a new
|
1006 |
+
// fixture reset function on QUnit 2.0/2.1.
|
1007 |
+
// It's still called here for backwards compatibility handling
|
1008 |
+
QUnit.reset();
|
1009 |
+
|
1010 |
+
config.current = undefined;
|
1011 |
+
},
|
1012 |
+
|
1013 |
+
queue: function() {
|
1014 |
+
var bad,
|
1015 |
+
test = this;
|
1016 |
+
|
1017 |
+
if ( !this.valid() ) {
|
1018 |
+
return;
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
function run() {
|
1022 |
+
|
1023 |
+
// each of these can by async
|
1024 |
+
synchronize([
|
1025 |
+
function() {
|
1026 |
+
test.before();
|
1027 |
+
},
|
1028 |
+
|
1029 |
+
test.hooks( "beforeEach" ),
|
1030 |
+
|
1031 |
+
function() {
|
1032 |
+
test.run();
|
1033 |
+
},
|
1034 |
+
|
1035 |
+
test.hooks( "afterEach" ).reverse(),
|
1036 |
+
|
1037 |
+
function() {
|
1038 |
+
test.after();
|
1039 |
+
},
|
1040 |
+
function() {
|
1041 |
+
test.finish();
|
1042 |
+
}
|
1043 |
+
]);
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
// `bad` initialized at top of scope
|
1047 |
+
// defer when previous test run passed, if storage is available
|
1048 |
+
bad = QUnit.config.reorder && defined.sessionStorage &&
|
1049 |
+
+sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName );
|
1050 |
+
|
1051 |
+
if ( bad ) {
|
1052 |
+
run();
|
1053 |
+
} else {
|
1054 |
+
synchronize( run, true );
|
1055 |
+
}
|
1056 |
+
},
|
1057 |
+
|
1058 |
+
push: function( result, actual, expected, message ) {
|
1059 |
+
var source,
|
1060 |
+
details = {
|
1061 |
+
module: this.module.name,
|
1062 |
+
name: this.testName,
|
1063 |
+
result: result,
|
1064 |
+
message: message,
|
1065 |
+
actual: actual,
|
1066 |
+
expected: expected,
|
1067 |
+
testId: this.testId,
|
1068 |
+
runtime: now() - this.started
|
1069 |
+
};
|
1070 |
+
|
1071 |
+
if ( !result ) {
|
1072 |
+
source = sourceFromStacktrace();
|
1073 |
+
|
1074 |
+
if ( source ) {
|
1075 |
+
details.source = source;
|
1076 |
+
}
|
1077 |
+
}
|
1078 |
+
|
1079 |
+
runLoggingCallbacks( "log", details );
|
1080 |
+
|
1081 |
+
this.assertions.push({
|
1082 |
+
result: !!result,
|
1083 |
+
message: message
|
1084 |
+
});
|
1085 |
+
},
|
1086 |
+
|
1087 |
+
pushFailure: function( message, source, actual ) {
|
1088 |
+
if ( !this instanceof Test ) {
|
1089 |
+
throw new Error( "pushFailure() assertion outside test context, was " +
|
1090 |
+
sourceFromStacktrace( 2 ) );
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
var details = {
|
1094 |
+
module: this.module.name,
|
1095 |
+
name: this.testName,
|
1096 |
+
result: false,
|
1097 |
+
message: message || "error",
|
1098 |
+
actual: actual || null,
|
1099 |
+
testId: this.testId,
|
1100 |
+
runtime: now() - this.started
|
1101 |
+
};
|
1102 |
+
|
1103 |
+
if ( source ) {
|
1104 |
+
details.source = source;
|
1105 |
+
}
|
1106 |
+
|
1107 |
+
runLoggingCallbacks( "log", details );
|
1108 |
+
|
1109 |
+
this.assertions.push({
|
1110 |
+
result: false,
|
1111 |
+
message: message
|
1112 |
+
});
|
1113 |
+
},
|
1114 |
+
|
1115 |
+
resolvePromise: function( promise, phase ) {
|
1116 |
+
var then, message,
|
1117 |
+
test = this;
|
1118 |
+
if ( promise != null ) {
|
1119 |
+
then = promise.then;
|
1120 |
+
if ( QUnit.objectType( then ) === "function" ) {
|
1121 |
+
QUnit.stop();
|
1122 |
+
then.call(
|
1123 |
+
promise,
|
1124 |
+
QUnit.start,
|
1125 |
+
function( error ) {
|
1126 |
+
message = "Promise rejected " +
|
1127 |
+
( !phase ? "during" : phase.replace( /Each$/, "" ) ) +
|
1128 |
+
" " + test.testName + ": " + ( error.message || error );
|
1129 |
+
test.pushFailure( message, extractStacktrace( error, 0 ) );
|
1130 |
+
|
1131 |
+
// else next test will carry the responsibility
|
1132 |
+
saveGlobal();
|
1133 |
+
|
1134 |
+
// Unblock
|
1135 |
+
QUnit.start();
|
1136 |
+
}
|
1137 |
+
);
|
1138 |
+
}
|
1139 |
+
}
|
1140 |
+
},
|
1141 |
+
|
1142 |
+
valid: function() {
|
1143 |
+
var include,
|
1144 |
+
filter = config.filter && config.filter.toLowerCase(),
|
1145 |
+
module = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(),
|
1146 |
+
fullName = ( this.module.name + ": " + this.testName ).toLowerCase();
|
1147 |
+
|
1148 |
+
// Internally-generated tests are always valid
|
1149 |
+
if ( this.callback && this.callback.validTest ) {
|
1150 |
+
return true;
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
if ( config.testId.length > 0 && inArray( this.testId, config.testId ) < 0 ) {
|
1154 |
+
return false;
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
if ( module && ( !this.module.name || this.module.name.toLowerCase() !== module ) ) {
|
1158 |
+
return false;
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
if ( !filter ) {
|
1162 |
+
return true;
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
include = filter.charAt( 0 ) !== "!";
|
1166 |
+
if ( !include ) {
|
1167 |
+
filter = filter.slice( 1 );
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
// If the filter matches, we need to honour include
|
1171 |
+
if ( fullName.indexOf( filter ) !== -1 ) {
|
1172 |
+
return include;
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
// Otherwise, do the opposite
|
1176 |
+
return !include;
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
};
|
1180 |
+
|
1181 |
+
// Resets the test setup. Useful for tests that modify the DOM.
|
1182 |
+
/*
|
1183 |
+
DEPRECATED: Use multiple tests instead of resetting inside a test.
|
1184 |
+
Use testStart or testDone for custom cleanup.
|
1185 |
+
This method will throw an error in 2.0, and will be removed in 2.1
|
1186 |
+
*/
|
1187 |
+
QUnit.reset = function() {
|
1188 |
+
|
1189 |
+
// Return on non-browser environments
|
1190 |
+
// This is necessary to not break on node tests
|
1191 |
+
if ( typeof window === "undefined" ) {
|
1192 |
+
return;
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
var fixture = defined.document && document.getElementById &&
|
1196 |
+
document.getElementById( "qunit-fixture" );
|
1197 |
+
|
1198 |
+
if ( fixture ) {
|
1199 |
+
fixture.innerHTML = config.fixture;
|
1200 |
+
}
|
1201 |
+
};
|
1202 |
+
|
1203 |
+
QUnit.pushFailure = function() {
|
1204 |
+
if ( !QUnit.config.current ) {
|
1205 |
+
throw new Error( "pushFailure() assertion outside test context, in " +
|
1206 |
+
sourceFromStacktrace( 2 ) );
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
// Gets current test obj
|
1210 |
+
var currentTest = QUnit.config.current;
|
1211 |
+
|
1212 |
+
return currentTest.pushFailure.apply( currentTest, arguments );
|
1213 |
+
};
|
1214 |
+
|
1215 |
+
// Based on Java's String.hashCode, a simple but not
|
1216 |
+
// rigorously collision resistant hashing function
|
1217 |
+
function generateHash( module, testName ) {
|
1218 |
+
var hex,
|
1219 |
+
i = 0,
|
1220 |
+
hash = 0,
|
1221 |
+
str = module + "\x1C" + testName,
|
1222 |
+
len = str.length;
|
1223 |
+
|
1224 |
+
for ( ; i < len; i++ ) {
|
1225 |
+
hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i );
|
1226 |
+
hash |= 0;
|
1227 |
+
}
|
1228 |
+
|
1229 |
+
// Convert the possibly negative integer hash code into an 8 character hex string, which isn't
|
1230 |
+
// strictly necessary but increases user understanding that the id is a SHA-like hash
|
1231 |
+
hex = ( 0x100000000 + hash ).toString( 16 );
|
1232 |
+
if ( hex.length < 8 ) {
|
1233 |
+
hex = "0000000" + hex;
|
1234 |
+
}
|
1235 |
+
|
1236 |
+
return hex.slice( -8 );
|
1237 |
+
}
|
1238 |
+
|
1239 |
+
function Assert( testContext ) {
|
1240 |
+
this.test = testContext;
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
// Assert helpers
|
1244 |
+
QUnit.assert = Assert.prototype = {
|
1245 |
+
|
1246 |
+
// Specify the number of expected assertions to guarantee that failed test
|
1247 |
+
// (no assertions are run at all) don't slip through.
|
1248 |
+
expect: function( asserts ) {
|
1249 |
+
if ( arguments.length === 1 ) {
|
1250 |
+
this.test.expected = asserts;
|
1251 |
+
} else {
|
1252 |
+
return this.test.expected;
|
1253 |
+
}
|
1254 |
+
},
|
1255 |
+
|
1256 |
+
// Increment this Test's semaphore counter, then return a single-use function that
|
1257 |
+
// decrements that counter a maximum of once.
|
1258 |
+
async: function() {
|
1259 |
+
var test = this.test,
|
1260 |
+
popped = false;
|
1261 |
+
|
1262 |
+
test.semaphore += 1;
|
1263 |
+
test.usedAsync = true;
|
1264 |
+
pauseProcessing();
|
1265 |
+
|
1266 |
+
return function done() {
|
1267 |
+
if ( !popped ) {
|
1268 |
+
test.semaphore -= 1;
|
1269 |
+
popped = true;
|
1270 |
+
resumeProcessing();
|
1271 |
+
} else {
|
1272 |
+
test.pushFailure( "Called the callback returned from `assert.async` more than once",
|
1273 |
+
sourceFromStacktrace( 2 ) );
|
1274 |
+
}
|
1275 |
+
};
|
1276 |
+
},
|
1277 |
+
|
1278 |
+
// Exports test.push() to the user API
|
1279 |
+
push: function( /* result, actual, expected, message */ ) {
|
1280 |
+
var assert = this,
|
1281 |
+
currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current;
|
1282 |
+
|
1283 |
+
// Backwards compatibility fix.
|
1284 |
+
// Allows the direct use of global exported assertions and QUnit.assert.*
|
1285 |
+
// Although, it's use is not recommended as it can leak assertions
|
1286 |
+
// to other tests from async tests, because we only get a reference to the current test,
|
1287 |
+
// not exactly the test where assertion were intended to be called.
|
1288 |
+
if ( !currentTest ) {
|
1289 |
+
throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) );
|
1290 |
+
}
|
1291 |
+
|
1292 |
+
if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) {
|
1293 |
+
currentTest.pushFailure( "Assertion after the final `assert.async` was resolved",
|
1294 |
+
sourceFromStacktrace( 2 ) );
|
1295 |
+
|
1296 |
+
// Allow this assertion to continue running anyway...
|
1297 |
+
}
|
1298 |
+
|
1299 |
+
if ( !( assert instanceof Assert ) ) {
|
1300 |
+
assert = currentTest.assert;
|
1301 |
+
}
|
1302 |
+
return assert.test.push.apply( assert.test, arguments );
|
1303 |
+
},
|
1304 |
+
|
1305 |
+
/**
|
1306 |
+
* Asserts rough true-ish result.
|
1307 |
+
* @name ok
|
1308 |
+
* @function
|
1309 |
+
* @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
|
1310 |
+
*/
|
1311 |
+
ok: function( result, message ) {
|
1312 |
+
message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " +
|
1313 |
+
QUnit.dump.parse( result ) );
|
1314 |
+
this.push( !!result, result, true, message );
|
1315 |
+
},
|
1316 |
+
|
1317 |
+
/**
|
1318 |
+
* Assert that the first two arguments are equal, with an optional message.
|
1319 |
+
* Prints out both actual and expected values.
|
1320 |
+
* @name equal
|
1321 |
+
* @function
|
1322 |
+
* @example equal( format( "{0} bytes.", 2), "2 bytes.", "replaces {0} with next argument" );
|
1323 |
+
*/
|
1324 |
+
equal: function( actual, expected, message ) {
|
1325 |
+
/*jshint eqeqeq:false */
|
1326 |
+
this.push( expected == actual, actual, expected, message );
|
1327 |
+
},
|
1328 |
+
|
1329 |
+
/**
|
1330 |
+
* @name notEqual
|
1331 |
+
* @function
|
1332 |
+
*/
|
1333 |
+
notEqual: function( actual, expected, message ) {
|
1334 |
+
/*jshint eqeqeq:false */
|
1335 |
+
this.push( expected != actual, actual, expected, message );
|
1336 |
+
},
|
1337 |
+
|
1338 |
+
/**
|
1339 |
+
* @name propEqual
|
1340 |
+
* @function
|
1341 |
+
*/
|
1342 |
+
propEqual: function( actual, expected, message ) {
|
1343 |
+
actual = objectValues( actual );
|
1344 |
+
expected = objectValues( expected );
|
1345 |
+
this.push( QUnit.equiv( actual, expected ), actual, expected, message );
|
1346 |
+
},
|
1347 |
+
|
1348 |
+
/**
|
1349 |
+
* @name notPropEqual
|
1350 |
+
* @function
|
1351 |
+
*/
|
1352 |
+
notPropEqual: function( actual, expected, message ) {
|
1353 |
+
actual = objectValues( actual );
|
1354 |
+
expected = objectValues( expected );
|
1355 |
+
this.push( !QUnit.equiv( actual, expected ), actual, expected, message );
|
1356 |
+
},
|
1357 |
+
|
1358 |
+
/**
|
1359 |
+
* @name deepEqual
|
1360 |
+
* @function
|
1361 |
+
*/
|
1362 |
+
deepEqual: function( actual, expected, message ) {
|
1363 |
+
this.push( QUnit.equiv( actual, expected ), actual, expected, message );
|
1364 |
+
},
|
1365 |
+
|
1366 |
+
/**
|
1367 |
+
* @name notDeepEqual
|
1368 |
+
* @function
|
1369 |
+
*/
|
1370 |
+
notDeepEqual: function( actual, expected, message ) {
|
1371 |
+
this.push( !QUnit.equiv( actual, expected ), actual, expected, message );
|
1372 |
+
},
|
1373 |
+
|
1374 |
+
/**
|
1375 |
+
* @name strictEqual
|
1376 |
+
* @function
|
1377 |
+
*/
|
1378 |
+
strictEqual: function( actual, expected, message ) {
|
1379 |
+
this.push( expected === actual, actual, expected, message );
|
1380 |
+
},
|
1381 |
+
|
1382 |
+
/**
|
1383 |
+
* @name notStrictEqual
|
1384 |
+
* @function
|
1385 |
+
*/
|
1386 |
+
notStrictEqual: function( actual, expected, message ) {
|
1387 |
+
this.push( expected !== actual, actual, expected, message );
|
1388 |
+
},
|
1389 |
+
|
1390 |
+
"throws": function( block, expected, message ) {
|
1391 |
+
var actual, expectedType,
|
1392 |
+
expectedOutput = expected,
|
1393 |
+
ok = false;
|
1394 |
+
|
1395 |
+
// 'expected' is optional unless doing string comparison
|
1396 |
+
if ( message == null && typeof expected === "string" ) {
|
1397 |
+
message = expected;
|
1398 |
+
expected = null;
|
1399 |
+
}
|
1400 |
+
|
1401 |
+
this.test.ignoreGlobalErrors = true;
|
1402 |
+
try {
|
1403 |
+
block.call( this.test.testEnvironment );
|
1404 |
+
} catch (e) {
|
1405 |
+
actual = e;
|
1406 |
+
}
|
1407 |
+
this.test.ignoreGlobalErrors = false;
|
1408 |
+
|
1409 |
+
if ( actual ) {
|
1410 |
+
expectedType = QUnit.objectType( expected );
|
1411 |
+
|
1412 |
+
// we don't want to validate thrown error
|
1413 |
+
if ( !expected ) {
|
1414 |
+
ok = true;
|
1415 |
+
expectedOutput = null;
|
1416 |
+
|
1417 |
+
// expected is a regexp
|
1418 |
+
} else if ( expectedType === "regexp" ) {
|
1419 |
+
ok = expected.test( errorString( actual ) );
|
1420 |
+
|
1421 |
+
// expected is a string
|
1422 |
+
} else if ( expectedType === "string" ) {
|
1423 |
+
ok = expected === errorString( actual );
|
1424 |
+
|
1425 |
+
// expected is a constructor, maybe an Error constructor
|
1426 |
+
} else if ( expectedType === "function" && actual instanceof expected ) {
|
1427 |
+
ok = true;
|
1428 |
+
|
1429 |
+
// expected is an Error object
|
1430 |
+
} else if ( expectedType === "object" ) {
|
1431 |
+
ok = actual instanceof expected.constructor &&
|
1432 |
+
actual.name === expected.name &&
|
1433 |
+
actual.message === expected.message;
|
1434 |
+
|
1435 |
+
// expected is a validation function which returns true if validation passed
|
1436 |
+
} else if ( expectedType === "function" && expected.call( {}, actual ) === true ) {
|
1437 |
+
expectedOutput = null;
|
1438 |
+
ok = true;
|
1439 |
+
}
|
1440 |
+
|
1441 |
+
this.push( ok, actual, expectedOutput, message );
|
1442 |
+
} else {
|
1443 |
+
this.test.pushFailure( message, null, "No exception was thrown." );
|
1444 |
+
}
|
1445 |
+
}
|
1446 |
+
};
|
1447 |
+
|
1448 |
+
// Provide an alternative to assert.throws(), for enviroments that consider throws a reserved word
|
1449 |
+
// Known to us are: Closure Compiler, Narwhal
|
1450 |
+
(function() {
|
1451 |
+
/*jshint sub:true */
|
1452 |
+
Assert.prototype.raises = Assert.prototype[ "throws" ];
|
1453 |
+
}());
|
1454 |
+
|
1455 |
+
// Test for equality any JavaScript type.
|
1456 |
+
// Author: Philippe Rathé <prathe@gmail.com>
|
1457 |
+
QUnit.equiv = (function() {
|
1458 |
+
|
1459 |
+
// Call the o related callback with the given arguments.
|
1460 |
+
function bindCallbacks( o, callbacks, args ) {
|
1461 |
+
var prop = QUnit.objectType( o );
|
1462 |
+
if ( prop ) {
|
1463 |
+
if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
|
1464 |
+
return callbacks[ prop ].apply( callbacks, args );
|
1465 |
+
} else {
|
1466 |
+
return callbacks[ prop ]; // or undefined
|
1467 |
+
}
|
1468 |
+
}
|
1469 |
+
}
|
1470 |
+
|
1471 |
+
// the real equiv function
|
1472 |
+
var innerEquiv,
|
1473 |
+
|
1474 |
+
// stack to decide between skip/abort functions
|
1475 |
+
callers = [],
|
1476 |
+
|
1477 |
+
// stack to avoiding loops from circular referencing
|
1478 |
+
parents = [],
|
1479 |
+
parentsB = [],
|
1480 |
+
|
1481 |
+
getProto = Object.getPrototypeOf || function( obj ) {
|
1482 |
+
/* jshint camelcase: false, proto: true */
|
1483 |
+
return obj.__proto__;
|
1484 |
+
},
|
1485 |
+
callbacks = (function() {
|
1486 |
+
|
1487 |
+
// for string, boolean, number and null
|
1488 |
+
function useStrictEquality( b, a ) {
|
1489 |
+
|
1490 |
+
/*jshint eqeqeq:false */
|
1491 |
+
if ( b instanceof a.constructor || a instanceof b.constructor ) {
|
1492 |
+
|
1493 |
+
// to catch short annotation VS 'new' annotation of a
|
1494 |
+
// declaration
|
1495 |
+
// e.g. var i = 1;
|
1496 |
+
// var j = new Number(1);
|
1497 |
+
return a == b;
|
1498 |
+
} else {
|
1499 |
+
return a === b;
|
1500 |
+
}
|
1501 |
+
}
|
1502 |
+
|
1503 |
+
return {
|
1504 |
+
"string": useStrictEquality,
|
1505 |
+
"boolean": useStrictEquality,
|
1506 |
+
"number": useStrictEquality,
|
1507 |
+
"null": useStrictEquality,
|
1508 |
+
"undefined": useStrictEquality,
|
1509 |
+
|
1510 |
+
"nan": function( b ) {
|
1511 |
+
return isNaN( b );
|
1512 |
+
},
|
1513 |
+
|
1514 |
+
"date": function( b, a ) {
|
1515 |
+
return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
|
1516 |
+
},
|
1517 |
+
|
1518 |
+
"regexp": function( b, a ) {
|
1519 |
+
return QUnit.objectType( b ) === "regexp" &&
|
1520 |
+
|
1521 |
+
// the regex itself
|
1522 |
+
a.source === b.source &&
|
1523 |
+
|
1524 |
+
// and its modifiers
|
1525 |
+
a.global === b.global &&
|
1526 |
+
|
1527 |
+
// (gmi) ...
|
1528 |
+
a.ignoreCase === b.ignoreCase &&
|
1529 |
+
a.multiline === b.multiline &&
|
1530 |
+
a.sticky === b.sticky;
|
1531 |
+
},
|
1532 |
+
|
1533 |
+
// - skip when the property is a method of an instance (OOP)
|
1534 |
+
// - abort otherwise,
|
1535 |
+
// initial === would have catch identical references anyway
|
1536 |
+
"function": function() {
|
1537 |
+
var caller = callers[ callers.length - 1 ];
|
1538 |
+
return caller !== Object && typeof caller !== "undefined";
|
1539 |
+
},
|
1540 |
+
|
1541 |
+
"array": function( b, a ) {
|
1542 |
+
var i, j, len, loop, aCircular, bCircular;
|
1543 |
+
|
1544 |
+
// b could be an object literal here
|
1545 |
+
if ( QUnit.objectType( b ) !== "array" ) {
|
1546 |
+
return false;
|
1547 |
+
}
|
1548 |
+
|
1549 |
+
len = a.length;
|
1550 |
+
if ( len !== b.length ) {
|
1551 |
+
// safe and faster
|
1552 |
+
return false;
|
1553 |
+
}
|
1554 |
+
|
1555 |
+
// track reference to avoid circular references
|
1556 |
+
parents.push( a );
|
1557 |
+
parentsB.push( b );
|
1558 |
+
for ( i = 0; i < len; i++ ) {
|
1559 |
+
loop = false;
|
1560 |
+
for ( j = 0; j < parents.length; j++ ) {
|
1561 |
+
aCircular = parents[ j ] === a[ i ];
|
1562 |
+
bCircular = parentsB[ j ] === b[ i ];
|
1563 |
+
if ( aCircular || bCircular ) {
|
1564 |
+
if ( a[ i ] === b[ i ] || aCircular && bCircular ) {
|
1565 |
+
loop = true;
|
1566 |
+
} else {
|
1567 |
+
parents.pop();
|
1568 |
+
parentsB.pop();
|
1569 |
+
return false;
|
1570 |
+
}
|
1571 |
+
}
|
1572 |
+
}
|
1573 |
+
if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {
|
1574 |
+
parents.pop();
|
1575 |
+
parentsB.pop();
|
1576 |
+
return false;
|
1577 |
+
}
|
1578 |
+
}
|
1579 |
+
parents.pop();
|
1580 |
+
parentsB.pop();
|
1581 |
+
return true;
|
1582 |
+
},
|
1583 |
+
|
1584 |
+
"object": function( b, a ) {
|
1585 |
+
|
1586 |
+
/*jshint forin:false */
|
1587 |
+
var i, j, loop, aCircular, bCircular,
|
1588 |
+
// Default to true
|
1589 |
+
eq = true,
|
1590 |
+
aProperties = [],
|
1591 |
+
bProperties = [];
|
1592 |
+
|
1593 |
+
// comparing constructors is more strict than using
|
1594 |
+
// instanceof
|
1595 |
+
if ( a.constructor !== b.constructor ) {
|
1596 |
+
|
1597 |
+
// Allow objects with no prototype to be equivalent to
|
1598 |
+
// objects with Object as their constructor.
|
1599 |
+
if ( !( ( getProto( a ) === null && getProto( b ) === Object.prototype ) ||
|
1600 |
+
( getProto( b ) === null && getProto( a ) === Object.prototype ) ) ) {
|
1601 |
+
return false;
|
1602 |
+
}
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
// stack constructor before traversing properties
|
1606 |
+
callers.push( a.constructor );
|
1607 |
+
|
1608 |
+
// track reference to avoid circular references
|
1609 |
+
parents.push( a );
|
1610 |
+
parentsB.push( b );
|
1611 |
+
|
1612 |
+
// be strict: don't ensure hasOwnProperty and go deep
|
1613 |
+
for ( i in a ) {
|
1614 |
+
loop = false;
|
1615 |
+
for ( j = 0; j < parents.length; j++ ) {
|
1616 |
+
aCircular = parents[ j ] === a[ i ];
|
1617 |
+
bCircular = parentsB[ j ] === b[ i ];
|
1618 |
+
if ( aCircular || bCircular ) {
|
1619 |
+
if ( a[ i ] === b[ i ] || aCircular && bCircular ) {
|
1620 |
+
loop = true;
|
1621 |
+
} else {
|
1622 |
+
eq = false;
|
1623 |
+
break;
|
1624 |
+
}
|
1625 |
+
}
|
1626 |
+
}
|
1627 |
+
aProperties.push( i );
|
1628 |
+
if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {
|
1629 |
+
eq = false;
|
1630 |
+
break;
|
1631 |
+
}
|
1632 |
+
}
|
1633 |
+
|
1634 |
+
parents.pop();
|
1635 |
+
parentsB.pop();
|
1636 |
+
callers.pop(); // unstack, we are done
|
1637 |
+
|
1638 |
+
for ( i in b ) {
|
1639 |
+
bProperties.push( i ); // collect b's properties
|
1640 |
+
}
|
1641 |
+
|
1642 |
+
// Ensures identical properties name
|
1643 |
+
return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
|
1644 |
+
}
|
1645 |
+
};
|
1646 |
+
}());
|
1647 |
+
|
1648 |
+
innerEquiv = function() { // can take multiple arguments
|
1649 |
+
var args = [].slice.apply( arguments );
|
1650 |
+
if ( args.length < 2 ) {
|
1651 |
+
return true; // end transition
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
return ( (function( a, b ) {
|
1655 |
+
if ( a === b ) {
|
1656 |
+
return true; // catch the most you can
|
1657 |
+
} else if ( a === null || b === null || typeof a === "undefined" ||
|
1658 |
+
typeof b === "undefined" ||
|
1659 |
+
QUnit.objectType( a ) !== QUnit.objectType( b ) ) {
|
1660 |
+
|
1661 |
+
// don't lose time with error prone cases
|
1662 |
+
return false;
|
1663 |
+
} else {
|
1664 |
+
return bindCallbacks( a, callbacks, [ b, a ] );
|
1665 |
+
}
|
1666 |
+
|
1667 |
+
// apply transition with (1..n) arguments
|
1668 |
+
}( args[ 0 ], args[ 1 ] ) ) &&
|
1669 |
+
innerEquiv.apply( this, args.splice( 1, args.length - 1 ) ) );
|
1670 |
+
};
|
1671 |
+
|
1672 |
+
return innerEquiv;
|
1673 |
+
}());
|
1674 |
+
|
1675 |
+
// Based on jsDump by Ariel Flesler
|
1676 |
+
// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html
|
1677 |
+
QUnit.dump = (function() {
|
1678 |
+
function quote( str ) {
|
1679 |
+
return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
|
1680 |
+
}
|
1681 |
+
function literal( o ) {
|
1682 |
+
return o + "";
|
1683 |
+
}
|
1684 |
+
function join( pre, arr, post ) {
|
1685 |
+
var s = dump.separator(),
|
1686 |
+
base = dump.indent(),
|
1687 |
+
inner = dump.indent( 1 );
|
1688 |
+
if ( arr.join ) {
|
1689 |
+
arr = arr.join( "," + s + inner );
|
1690 |
+
}
|
1691 |
+
if ( !arr ) {
|
1692 |
+
return pre + post;
|
1693 |
+
}
|
1694 |
+
return [ pre, inner + arr, base + post ].join( s );
|
1695 |
+
}
|
1696 |
+
function array( arr, stack ) {
|
1697 |
+
var i = arr.length,
|
1698 |
+
ret = new Array( i );
|
1699 |
+
|
1700 |
+
if ( dump.maxDepth && dump.depth > dump.maxDepth ) {
|
1701 |
+
return "[object Array]";
|
1702 |
+
}
|
1703 |
+
|
1704 |
+
this.up();
|
1705 |
+
while ( i-- ) {
|
1706 |
+
ret[ i ] = this.parse( arr[ i ], undefined, stack );
|
1707 |
+
}
|
1708 |
+
this.down();
|
1709 |
+
return join( "[", ret, "]" );
|
1710 |
+
}
|
1711 |
+
|
1712 |
+
var reName = /^function (\w+)/,
|
1713 |
+
dump = {
|
1714 |
+
|
1715 |
+
// objType is used mostly internally, you can fix a (custom) type in advance
|
1716 |
+
parse: function( obj, objType, stack ) {
|
1717 |
+
stack = stack || [];
|
1718 |
+
var res, parser, parserType,
|
1719 |
+
inStack = inArray( obj, stack );
|
1720 |
+
|
1721 |
+
if ( inStack !== -1 ) {
|
1722 |
+
return "recursion(" + ( inStack - stack.length ) + ")";
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
objType = objType || this.typeOf( obj );
|
1726 |
+
parser = this.parsers[ objType ];
|
1727 |
+
parserType = typeof parser;
|
1728 |
+
|
1729 |
+
if ( parserType === "function" ) {
|
1730 |
+
stack.push( obj );
|
1731 |
+
res = parser.call( this, obj, stack );
|
1732 |
+
stack.pop();
|
1733 |
+
return res;
|
1734 |
+
}
|
1735 |
+
return ( parserType === "string" ) ? parser : this.parsers.error;
|
1736 |
+
},
|
1737 |
+
typeOf: function( obj ) {
|
1738 |
+
var type;
|
1739 |
+
if ( obj === null ) {
|
1740 |
+
type = "null";
|
1741 |
+
} else if ( typeof obj === "undefined" ) {
|
1742 |
+
type = "undefined";
|
1743 |
+
} else if ( QUnit.is( "regexp", obj ) ) {
|
1744 |
+
type = "regexp";
|
1745 |
+
} else if ( QUnit.is( "date", obj ) ) {
|
1746 |
+
type = "date";
|
1747 |
+
} else if ( QUnit.is( "function", obj ) ) {
|
1748 |
+
type = "function";
|
1749 |
+
} else if ( obj.setInterval !== undefined &&
|
1750 |
+
obj.document !== undefined &&
|
1751 |
+
obj.nodeType === undefined ) {
|
1752 |
+
type = "window";
|
1753 |
+
} else if ( obj.nodeType === 9 ) {
|
1754 |
+
type = "document";
|
1755 |
+
} else if ( obj.nodeType ) {
|
1756 |
+
type = "node";
|
1757 |
+
} else if (
|
1758 |
+
|
1759 |
+
// native arrays
|
1760 |
+
toString.call( obj ) === "[object Array]" ||
|
1761 |
+
|
1762 |
+
// NodeList objects
|
1763 |
+
( typeof obj.length === "number" && obj.item !== undefined &&
|
1764 |
+
( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null &&
|
1765 |
+
obj[ 0 ] === undefined ) ) )
|
1766 |
+
) {
|
1767 |
+
type = "array";
|
1768 |
+
} else if ( obj.constructor === Error.prototype.constructor ) {
|
1769 |
+
type = "error";
|
1770 |
+
} else {
|
1771 |
+
type = typeof obj;
|
1772 |
+
}
|
1773 |
+
return type;
|
1774 |
+
},
|
1775 |
+
separator: function() {
|
1776 |
+
return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " ";
|
1777 |
+
},
|
1778 |
+
// extra can be a number, shortcut for increasing-calling-decreasing
|
1779 |
+
indent: function( extra ) {
|
1780 |
+
if ( !this.multiline ) {
|
1781 |
+
return "";
|
1782 |
+
}
|
1783 |
+
var chr = this.indentChar;
|
1784 |
+
if ( this.HTML ) {
|
1785 |
+
chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
|
1786 |
+
}
|
1787 |
+
return new Array( this.depth + ( extra || 0 ) ).join( chr );
|
1788 |
+
},
|
1789 |
+
up: function( a ) {
|
1790 |
+
this.depth += a || 1;
|
1791 |
+
},
|
1792 |
+
down: function( a ) {
|
1793 |
+
this.depth -= a || 1;
|
1794 |
+
},
|
1795 |
+
setParser: function( name, parser ) {
|
1796 |
+
this.parsers[ name ] = parser;
|
1797 |
+
},
|
1798 |
+
// The next 3 are exposed so you can use them
|
1799 |
+
quote: quote,
|
1800 |
+
literal: literal,
|
1801 |
+
join: join,
|
1802 |
+
//
|
1803 |
+
depth: 1,
|
1804 |
+
maxDepth: 5,
|
1805 |
+
|
1806 |
+
// This is the list of parsers, to modify them, use dump.setParser
|
1807 |
+
parsers: {
|
1808 |
+
window: "[Window]",
|
1809 |
+
document: "[Document]",
|
1810 |
+
error: function( error ) {
|
1811 |
+
return "Error(\"" + error.message + "\")";
|
1812 |
+
},
|
1813 |
+
unknown: "[Unknown]",
|
1814 |
+
"null": "null",
|
1815 |
+
"undefined": "undefined",
|
1816 |
+
"function": function( fn ) {
|
1817 |
+
var ret = "function",
|
1818 |
+
|
1819 |
+
// functions never have name in IE
|
1820 |
+
name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ];
|
1821 |
+
|
1822 |
+
if ( name ) {
|
1823 |
+
ret += " " + name;
|
1824 |
+
}
|
1825 |
+
ret += "( ";
|
1826 |
+
|
1827 |
+
ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" );
|
1828 |
+
return join( ret, dump.parse( fn, "functionCode" ), "}" );
|
1829 |
+
},
|
1830 |
+
array: array,
|
1831 |
+
nodelist: array,
|
1832 |
+
"arguments": array,
|
1833 |
+
object: function( map, stack ) {
|
1834 |
+
var keys, key, val, i, nonEnumerableProperties,
|
1835 |
+
ret = [];
|
1836 |
+
|
1837 |
+
if ( dump.maxDepth && dump.depth > dump.maxDepth ) {
|
1838 |
+
return "[object Object]";
|
1839 |
+
}
|
1840 |
+
|
1841 |
+
dump.up();
|
1842 |
+
keys = [];
|
1843 |
+
for ( key in map ) {
|
1844 |
+
keys.push( key );
|
1845 |
+
}
|
1846 |
+
|
1847 |
+
// Some properties are not always enumerable on Error objects.
|
1848 |
+
nonEnumerableProperties = [ "message", "name" ];
|
1849 |
+
for ( i in nonEnumerableProperties ) {
|
1850 |
+
key = nonEnumerableProperties[ i ];
|
1851 |
+
if ( key in map && !( key in keys ) ) {
|
1852 |
+
keys.push( key );
|
1853 |
+
}
|
1854 |
+
}
|
1855 |
+
keys.sort();
|
1856 |
+
for ( i = 0; i < keys.length; i++ ) {
|
1857 |
+
key = keys[ i ];
|
1858 |
+
val = map[ key ];
|
1859 |
+
ret.push( dump.parse( key, "key" ) + ": " +
|
1860 |
+
dump.parse( val, undefined, stack ) );
|
1861 |
+
}
|
1862 |
+
dump.down();
|
1863 |
+
return join( "{", ret, "}" );
|
1864 |
+
},
|
1865 |
+
node: function( node ) {
|
1866 |
+
var len, i, val,
|
1867 |
+
open = dump.HTML ? "<" : "<",
|
1868 |
+
close = dump.HTML ? ">" : ">",
|
1869 |
+
tag = node.nodeName.toLowerCase(),
|
1870 |
+
ret = open + tag,
|
1871 |
+
attrs = node.attributes;
|
1872 |
+
|
1873 |
+
if ( attrs ) {
|
1874 |
+
for ( i = 0, len = attrs.length; i < len; i++ ) {
|
1875 |
+
val = attrs[ i ].nodeValue;
|
1876 |
+
|
1877 |
+
// IE6 includes all attributes in .attributes, even ones not explicitly
|
1878 |
+
// set. Those have values like undefined, null, 0, false, "" or
|
1879 |
+
// "inherit".
|
1880 |
+
if ( val && val !== "inherit" ) {
|
1881 |
+
ret += " " + attrs[ i ].nodeName + "=" +
|
1882 |
+
dump.parse( val, "attribute" );
|
1883 |
+
}
|
1884 |
+
}
|
1885 |
+
}
|
1886 |
+
ret += close;
|
1887 |
+
|
1888 |
+
// Show content of TextNode or CDATASection
|
1889 |
+
if ( node.nodeType === 3 || node.nodeType === 4 ) {
|
1890 |
+
ret += node.nodeValue;
|
1891 |
+
}
|
1892 |
+
|
1893 |
+
return ret + open + "/" + tag + close;
|
1894 |
+
},
|
1895 |
+
|
1896 |
+
// function calls it internally, it's the arguments part of the function
|
1897 |
+
functionArgs: function( fn ) {
|
1898 |
+
var args,
|
1899 |
+
l = fn.length;
|
1900 |
+
|
1901 |
+
if ( !l ) {
|
1902 |
+
return "";
|
1903 |
+
}
|
1904 |
+
|
1905 |
+
args = new Array( l );
|
1906 |
+
while ( l-- ) {
|
1907 |
+
|
1908 |
+
// 97 is 'a'
|
1909 |
+
args[ l ] = String.fromCharCode( 97 + l );
|
1910 |
+
}
|
1911 |
+
return " " + args.join( ", " ) + " ";
|
1912 |
+
},
|
1913 |
+
// object calls it internally, the key part of an item in a map
|
1914 |
+
key: quote,
|
1915 |
+
// function calls it internally, it's the content of the function
|
1916 |
+
functionCode: "[code]",
|
1917 |
+
// node calls it internally, it's an html attribute value
|
1918 |
+
attribute: quote,
|
1919 |
+
string: quote,
|
1920 |
+
date: quote,
|
1921 |
+
regexp: literal,
|
1922 |
+
number: literal,
|
1923 |
+
"boolean": literal
|
1924 |
+
},
|
1925 |
+
// if true, entities are escaped ( <, >, \t, space and \n )
|
1926 |
+
HTML: false,
|
1927 |
+
// indentation unit
|
1928 |
+
indentChar: " ",
|
1929 |
+
// if true, items in a collection, are separated by a \n, else just a space.
|
1930 |
+
multiline: true
|
1931 |
+
};
|
1932 |
+
|
1933 |
+
return dump;
|
1934 |
+
}());
|
1935 |
+
|
1936 |
+
// back compat
|
1937 |
+
QUnit.jsDump = QUnit.dump;
|
1938 |
+
|
1939 |
+
// For browser, export only select globals
|
1940 |
+
if ( typeof window !== "undefined" ) {
|
1941 |
+
|
1942 |
+
// Deprecated
|
1943 |
+
// Extend assert methods to QUnit and Global scope through Backwards compatibility
|
1944 |
+
(function() {
|
1945 |
+
var i,
|
1946 |
+
assertions = Assert.prototype;
|
1947 |
+
|
1948 |
+
function applyCurrent( current ) {
|
1949 |
+
return function() {
|
1950 |
+
var assert = new Assert( QUnit.config.current );
|
1951 |
+
current.apply( assert, arguments );
|
1952 |
+
};
|
1953 |
+
}
|
1954 |
+
|
1955 |
+
for ( i in assertions ) {
|
1956 |
+
QUnit[ i ] = applyCurrent( assertions[ i ] );
|
1957 |
+
}
|
1958 |
+
})();
|
1959 |
+
|
1960 |
+
(function() {
|
1961 |
+
var i, l,
|
1962 |
+
keys = [
|
1963 |
+
"test",
|
1964 |
+
"module",
|
1965 |
+
"expect",
|
1966 |
+
"asyncTest",
|
1967 |
+
"start",
|
1968 |
+
"stop",
|
1969 |
+
"ok",
|
1970 |
+
"equal",
|
1971 |
+
"notEqual",
|
1972 |
+
"propEqual",
|
1973 |
+
"notPropEqual",
|
1974 |
+
"deepEqual",
|
1975 |
+
"notDeepEqual",
|
1976 |
+
"strictEqual",
|
1977 |
+
"notStrictEqual",
|
1978 |
+
"throws"
|
1979 |
+
];
|
1980 |
+
|
1981 |
+
for ( i = 0, l = keys.length; i < l; i++ ) {
|
1982 |
+
window[ keys[ i ] ] = QUnit[ keys[ i ] ];
|
1983 |
+
}
|
1984 |
+
})();
|
1985 |
+
|
1986 |
+
window.QUnit = QUnit;
|
1987 |
+
}
|
1988 |
+
|
1989 |
+
// For nodejs
|
1990 |
+
if ( typeof module !== "undefined" && module.exports ) {
|
1991 |
+
module.exports = QUnit;
|
1992 |
+
}
|
1993 |
+
|
1994 |
+
// For CommonJS with exports, but without module.exports, like Rhino
|
1995 |
+
if ( typeof exports !== "undefined" ) {
|
1996 |
+
exports.QUnit = QUnit;
|
1997 |
+
}
|
1998 |
+
|
1999 |
+
// Get a reference to the global object, like window in browsers
|
2000 |
+
}( (function() {
|
2001 |
+
return this;
|
2002 |
+
})() ));
|
2003 |
+
|
2004 |
+
/*istanbul ignore next */
|
2005 |
+
// jscs:disable maximumLineLength
|
2006 |
+
/*
|
2007 |
+
* Javascript Diff Algorithm
|
2008 |
+
* By John Resig (http://ejohn.org/)
|
2009 |
+
* Modified by Chu Alan "sprite"
|
2010 |
+
*
|
2011 |
+
* Released under the MIT license.
|
2012 |
+
*
|
2013 |
+
* More Info:
|
2014 |
+
* http://ejohn.org/projects/javascript-diff-algorithm/
|
2015 |
+
*
|
2016 |
+
* Usage: QUnit.diff(expected, actual)
|
2017 |
+
*
|
2018 |
+
* QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
|
2019 |
+
*/
|
2020 |
+
QUnit.diff = (function() {
|
2021 |
+
var hasOwn = Object.prototype.hasOwnProperty;
|
2022 |
+
|
2023 |
+
/*jshint eqeqeq:false, eqnull:true */
|
2024 |
+
function diff( o, n ) {
|
2025 |
+
var i,
|
2026 |
+
ns = {},
|
2027 |
+
os = {};
|
2028 |
+
|
2029 |
+
for ( i = 0; i < n.length; i++ ) {
|
2030 |
+
if ( !hasOwn.call( ns, n[ i ] ) ) {
|
2031 |
+
ns[ n[ i ] ] = {
|
2032 |
+
rows: [],
|
2033 |
+
o: null
|
2034 |
+
};
|
2035 |
+
}
|
2036 |
+
ns[ n[ i ] ].rows.push( i );
|
2037 |
+
}
|
2038 |
+
|
2039 |
+
for ( i = 0; i < o.length; i++ ) {
|
2040 |
+
if ( !hasOwn.call( os, o[ i ] ) ) {
|
2041 |
+
os[ o[ i ] ] = {
|
2042 |
+
rows: [],
|
2043 |
+
n: null
|
2044 |
+
};
|
2045 |
+
}
|
2046 |
+
os[ o[ i ] ].rows.push( i );
|
2047 |
+
}
|
2048 |
+
|
2049 |
+
for ( i in ns ) {
|
2050 |
+
if ( hasOwn.call( ns, i ) ) {
|
2051 |
+
if ( ns[ i ].rows.length === 1 && hasOwn.call( os, i ) && os[ i ].rows.length === 1 ) {
|
2052 |
+
n[ ns[ i ].rows[ 0 ] ] = {
|
2053 |
+
text: n[ ns[ i ].rows[ 0 ] ],
|
2054 |
+
row: os[ i ].rows[ 0 ]
|
2055 |
+
};
|
2056 |
+
o[ os[ i ].rows[ 0 ] ] = {
|
2057 |
+
text: o[ os[ i ].rows[ 0 ] ],
|
2058 |
+
row: ns[ i ].rows[ 0 ]
|
2059 |
+
};
|
2060 |
+
}
|
2061 |
+
}
|
2062 |
+
}
|
2063 |
+
|
2064 |
+
for ( i = 0; i < n.length - 1; i++ ) {
|
2065 |
+
if ( n[ i ].text != null && n[ i + 1 ].text == null && n[ i ].row + 1 < o.length && o[ n[ i ].row + 1 ].text == null &&
|
2066 |
+
n[ i + 1 ] == o[ n[ i ].row + 1 ] ) {
|
2067 |
+
|
2068 |
+
n[ i + 1 ] = {
|
2069 |
+
text: n[ i + 1 ],
|
2070 |
+
row: n[ i ].row + 1
|
2071 |
+
};
|
2072 |
+
o[ n[ i ].row + 1 ] = {
|
2073 |
+
text: o[ n[ i ].row + 1 ],
|
2074 |
+
row: i + 1
|
2075 |
+
};
|
2076 |
+
}
|
2077 |
+
}
|
2078 |
+
|
2079 |
+
for ( i = n.length - 1; i > 0; i-- ) {
|
2080 |
+
if ( n[ i ].text != null && n[ i - 1 ].text == null && n[ i ].row > 0 && o[ n[ i ].row - 1 ].text == null &&
|
2081 |
+
n[ i - 1 ] == o[ n[ i ].row - 1 ] ) {
|
2082 |
+
|
2083 |
+
n[ i - 1 ] = {
|
2084 |
+
text: n[ i - 1 ],
|
2085 |
+
row: n[ i ].row - 1
|
2086 |
+
};
|
2087 |
+
o[ n[ i ].row - 1 ] = {
|
2088 |
+
text: o[ n[ i ].row - 1 ],
|
2089 |
+
row: i - 1
|
2090 |
+
};
|
2091 |
+
}
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
return {
|
2095 |
+
o: o,
|
2096 |
+
n: n
|
2097 |
+
};
|
2098 |
+
}
|
2099 |
+
|
2100 |
+
return function( o, n ) {
|
2101 |
+
o = o.replace( /\s+$/, "" );
|
2102 |
+
n = n.replace( /\s+$/, "" );
|
2103 |
+
|
2104 |
+
var i, pre,
|
2105 |
+
str = "",
|
2106 |
+
out = diff( o === "" ? [] : o.split( /\s+/ ), n === "" ? [] : n.split( /\s+/ ) ),
|
2107 |
+
oSpace = o.match( /\s+/g ),
|
2108 |
+
nSpace = n.match( /\s+/g );
|
2109 |
+
|
2110 |
+
if ( oSpace == null ) {
|
2111 |
+
oSpace = [ " " ];
|
2112 |
+
} else {
|
2113 |
+
oSpace.push( " " );
|
2114 |
+
}
|
2115 |
+
|
2116 |
+
if ( nSpace == null ) {
|
2117 |
+
nSpace = [ " " ];
|
2118 |
+
} else {
|
2119 |
+
nSpace.push( " " );
|
2120 |
+
}
|
2121 |
+
|
2122 |
+
if ( out.n.length === 0 ) {
|
2123 |
+
for ( i = 0; i < out.o.length; i++ ) {
|
2124 |
+
str += "<del>" + out.o[ i ] + oSpace[ i ] + "</del>";
|
2125 |
+
}
|
2126 |
+
} else {
|
2127 |
+
if ( out.n[ 0 ].text == null ) {
|
2128 |
+
for ( n = 0; n < out.o.length && out.o[ n ].text == null; n++ ) {
|
2129 |
+
str += "<del>" + out.o[ n ] + oSpace[ n ] + "</del>";
|
2130 |
+
}
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
for ( i = 0; i < out.n.length; i++ ) {
|
2134 |
+
if ( out.n[ i ].text == null ) {
|
2135 |
+
str += "<ins>" + out.n[ i ] + nSpace[ i ] + "</ins>";
|
2136 |
+
} else {
|
2137 |
+
|
2138 |
+
// `pre` initialized at top of scope
|
2139 |
+
pre = "";
|
2140 |
+
|
2141 |
+
for ( n = out.n[ i ].row + 1; n < out.o.length && out.o[ n ].text == null; n++ ) {
|
2142 |
+
pre += "<del>" + out.o[ n ] + oSpace[ n ] + "</del>";
|
2143 |
+
}
|
2144 |
+
str += " " + out.n[ i ].text + nSpace[ i ] + pre;
|
2145 |
+
}
|
2146 |
+
}
|
2147 |
+
}
|
2148 |
+
|
2149 |
+
return str;
|
2150 |
+
};
|
2151 |
+
}());
|
2152 |
+
// jscs:enable
|
2153 |
+
|
2154 |
+
(function() {
|
2155 |
+
|
2156 |
+
// Deprecated QUnit.init - Ref #530
|
2157 |
+
// Re-initialize the configuration options
|
2158 |
+
QUnit.init = function() {
|
2159 |
+
var tests, banner, result, qunit,
|
2160 |
+
config = QUnit.config;
|
2161 |
+
|
2162 |
+
config.stats = { all: 0, bad: 0 };
|
2163 |
+
config.moduleStats = { all: 0, bad: 0 };
|
2164 |
+
config.started = 0;
|
2165 |
+
config.updateRate = 1000;
|
2166 |
+
config.blocking = false;
|
2167 |
+
config.autostart = true;
|
2168 |
+
config.autorun = false;
|
2169 |
+
config.filter = "";
|
2170 |
+
config.queue = [];
|
2171 |
+
|
2172 |
+
// Return on non-browser environments
|
2173 |
+
// This is necessary to not break on node tests
|
2174 |
+
if ( typeof window === "undefined" ) {
|
2175 |
+
return;
|
2176 |
+
}
|
2177 |
+
|
2178 |
+
qunit = id( "qunit" );
|
2179 |
+
if ( qunit ) {
|
2180 |
+
qunit.innerHTML =
|
2181 |
+
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
|
2182 |
+
"<h2 id='qunit-banner'></h2>" +
|
2183 |
+
"<div id='qunit-testrunner-toolbar'></div>" +
|
2184 |
+
"<h2 id='qunit-userAgent'></h2>" +
|
2185 |
+
"<ol id='qunit-tests'></ol>";
|
2186 |
+
}
|
2187 |
+
|
2188 |
+
tests = id( "qunit-tests" );
|
2189 |
+
banner = id( "qunit-banner" );
|
2190 |
+
result = id( "qunit-testresult" );
|
2191 |
+
|
2192 |
+
if ( tests ) {
|
2193 |
+
tests.innerHTML = "";
|
2194 |
+
}
|
2195 |
+
|
2196 |
+
if ( banner ) {
|
2197 |
+
banner.className = "";
|
2198 |
+
}
|
2199 |
+
|
2200 |
+
if ( result ) {
|
2201 |
+
result.parentNode.removeChild( result );
|
2202 |
+
}
|
2203 |
+
|
2204 |
+
if ( tests ) {
|
2205 |
+
result = document.createElement( "p" );
|
2206 |
+
result.id = "qunit-testresult";
|
2207 |
+
result.className = "result";
|
2208 |
+
tests.parentNode.insertBefore( result, tests );
|
2209 |
+
result.innerHTML = "Running...<br /> ";
|
2210 |
+
}
|
2211 |
+
};
|
2212 |
+
|
2213 |
+
// Don't load the HTML Reporter on non-Browser environments
|
2214 |
+
if ( typeof window === "undefined" ) {
|
2215 |
+
return;
|
2216 |
+
}
|
2217 |
+
|
2218 |
+
var config = QUnit.config,
|
2219 |
+
hasOwn = Object.prototype.hasOwnProperty,
|
2220 |
+
defined = {
|
2221 |
+
document: window.document !== undefined,
|
2222 |
+
sessionStorage: (function() {
|
2223 |
+
var x = "qunit-test-string";
|
2224 |
+
try {
|
2225 |
+
sessionStorage.setItem( x, x );
|
2226 |
+
sessionStorage.removeItem( x );
|
2227 |
+
return true;
|
2228 |
+
} catch ( e ) {
|
2229 |
+
return false;
|
2230 |
+
}
|
2231 |
+
}())
|
2232 |
+
},
|
2233 |
+
modulesList = [];
|
2234 |
+
|
2235 |
+
/**
|
2236 |
+
* Escape text for attribute or text content.
|
2237 |
+
*/
|
2238 |
+
function escapeText( s ) {
|
2239 |
+
if ( !s ) {
|
2240 |
+
return "";
|
2241 |
+
}
|
2242 |
+
s = s + "";
|
2243 |
+
|
2244 |
+
// Both single quotes and double quotes (for attributes)
|
2245 |
+
return s.replace( /['"<>&]/g, function( s ) {
|
2246 |
+
switch ( s ) {
|
2247 |
+
case "'":
|
2248 |
+
return "'";
|
2249 |
+
case "\"":
|
2250 |
+
return """;
|
2251 |
+
case "<":
|
2252 |
+
return "<";
|
2253 |
+
case ">":
|
2254 |
+
return ">";
|
2255 |
+
case "&":
|
2256 |
+
return "&";
|
2257 |
+
}
|
2258 |
+
});
|
2259 |
+
}
|
2260 |
+
|
2261 |
+
/**
|
2262 |
+
* @param {HTMLElement} elem
|
2263 |
+
* @param {string} type
|
2264 |
+
* @param {Function} fn
|
2265 |
+
*/
|
2266 |
+
function addEvent( elem, type, fn ) {
|
2267 |
+
if ( elem.addEventListener ) {
|
2268 |
+
|
2269 |
+
// Standards-based browsers
|
2270 |
+
elem.addEventListener( type, fn, false );
|
2271 |
+
} else if ( elem.attachEvent ) {
|
2272 |
+
|
2273 |
+
// support: IE <9
|
2274 |
+
elem.attachEvent( "on" + type, fn );
|
2275 |
+
}
|
2276 |
+
}
|
2277 |
+
|
2278 |
+
/**
|
2279 |
+
* @param {Array|NodeList} elems
|
2280 |
+
* @param {string} type
|
2281 |
+
* @param {Function} fn
|
2282 |
+
*/
|
2283 |
+
function addEvents( elems, type, fn ) {
|
2284 |
+
var i = elems.length;
|
2285 |
+
while ( i-- ) {
|
2286 |
+
addEvent( elems[ i ], type, fn );
|
2287 |
+
}
|
2288 |
+
}
|
2289 |
+
|
2290 |
+
function hasClass( elem, name ) {
|
2291 |
+
return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0;
|
2292 |
+
}
|
2293 |
+
|
2294 |
+
function addClass( elem, name ) {
|
2295 |
+
if ( !hasClass( elem, name ) ) {
|
2296 |
+
elem.className += ( elem.className ? " " : "" ) + name;
|
2297 |
+
}
|
2298 |
+
}
|
2299 |
+
|
2300 |
+
function toggleClass( elem, name ) {
|
2301 |
+
if ( hasClass( elem, name ) ) {
|
2302 |
+
removeClass( elem, name );
|
2303 |
+
} else {
|
2304 |
+
addClass( elem, name );
|
2305 |
+
}
|
2306 |
+
}
|
2307 |
+
|
2308 |
+
function removeClass( elem, name ) {
|
2309 |
+
var set = " " + elem.className + " ";
|
2310 |
+
|
2311 |
+
// Class name may appear multiple times
|
2312 |
+
while ( set.indexOf( " " + name + " " ) >= 0 ) {
|
2313 |
+
set = set.replace( " " + name + " ", " " );
|
2314 |
+
}
|
2315 |
+
|
2316 |
+
// trim for prettiness
|
2317 |
+
elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" );
|
2318 |
+
}
|
2319 |
+
|
2320 |
+
function id( name ) {
|
2321 |
+
return defined.document && document.getElementById && document.getElementById( name );
|
2322 |
+
}
|
2323 |
+
|
2324 |
+
function getUrlConfigHtml() {
|
2325 |
+
var i, j, val,
|
2326 |
+
escaped, escapedTooltip,
|
2327 |
+
selection = false,
|
2328 |
+
len = config.urlConfig.length,
|
2329 |
+
urlConfigHtml = "";
|
2330 |
+
|
2331 |
+
for ( i = 0; i < len; i++ ) {
|
2332 |
+
val = config.urlConfig[ i ];
|
2333 |
+
if ( typeof val === "string" ) {
|
2334 |
+
val = {
|
2335 |
+
id: val,
|
2336 |
+
label: val
|
2337 |
+
};
|
2338 |
+
}
|
2339 |
+
|
2340 |
+
escaped = escapeText( val.id );
|
2341 |
+
escapedTooltip = escapeText( val.tooltip );
|
2342 |
+
|
2343 |
+
config[ val.id ] = QUnit.urlParams[ val.id ];
|
2344 |
+
if ( !val.value || typeof val.value === "string" ) {
|
2345 |
+
urlConfigHtml += "<input id='qunit-urlconfig-" + escaped +
|
2346 |
+
"' name='" + escaped + "' type='checkbox'" +
|
2347 |
+
( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) +
|
2348 |
+
( config[ val.id ] ? " checked='checked'" : "" ) +
|
2349 |
+
" title='" + escapedTooltip + "' /><label for='qunit-urlconfig-" + escaped +
|
2350 |
+
"' title='" + escapedTooltip + "'>" + val.label + "</label>";
|
2351 |
+
} else {
|
2352 |
+
urlConfigHtml += "<label for='qunit-urlconfig-" + escaped +
|
2353 |
+
"' title='" + escapedTooltip + "'>" + val.label +
|
2354 |
+
": </label><select id='qunit-urlconfig-" + escaped +
|
2355 |
+
"' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>";
|
2356 |
+
|
2357 |
+
if ( QUnit.is( "array", val.value ) ) {
|
2358 |
+
for ( j = 0; j < val.value.length; j++ ) {
|
2359 |
+
escaped = escapeText( val.value[ j ] );
|
2360 |
+
urlConfigHtml += "<option value='" + escaped + "'" +
|
2361 |
+
( config[ val.id ] === val.value[ j ] ?
|
2362 |
+
( selection = true ) && " selected='selected'" : "" ) +
|
2363 |
+
">" + escaped + "</option>";
|
2364 |
+
}
|
2365 |
+
} else {
|
2366 |
+
for ( j in val.value ) {
|
2367 |
+
if ( hasOwn.call( val.value, j ) ) {
|
2368 |
+
urlConfigHtml += "<option value='" + escapeText( j ) + "'" +
|
2369 |
+
( config[ val.id ] === j ?
|
2370 |
+
( selection = true ) && " selected='selected'" : "" ) +
|
2371 |
+
">" + escapeText( val.value[ j ] ) + "</option>";
|
2372 |
+
}
|
2373 |
+
}
|
2374 |
+
}
|
2375 |
+
if ( config[ val.id ] && !selection ) {
|
2376 |
+
escaped = escapeText( config[ val.id ] );
|
2377 |
+
urlConfigHtml += "<option value='" + escaped +
|
2378 |
+
"' selected='selected' disabled='disabled'>" + escaped + "</option>";
|
2379 |
+
}
|
2380 |
+
urlConfigHtml += "</select>";
|
2381 |
+
}
|
2382 |
+
}
|
2383 |
+
|
2384 |
+
return urlConfigHtml;
|
2385 |
+
}
|
2386 |
+
|
2387 |
+
// Handle "click" events on toolbar checkboxes and "change" for select menus.
|
2388 |
+
// Updates the URL with the new state of `config.urlConfig` values.
|
2389 |
+
function toolbarChanged() {
|
2390 |
+
var updatedUrl, value,
|
2391 |
+
field = this,
|
2392 |
+
params = {};
|
2393 |
+
|
2394 |
+
// Detect if field is a select menu or a checkbox
|
2395 |
+
if ( "selectedIndex" in field ) {
|
2396 |
+
value = field.options[ field.selectedIndex ].value || undefined;
|
2397 |
+
} else {
|
2398 |
+
value = field.checked ? ( field.defaultValue || true ) : undefined;
|
2399 |
+
}
|
2400 |
+
|
2401 |
+
params[ field.name ] = value;
|
2402 |
+
updatedUrl = QUnit.url( params );
|
2403 |
+
|
2404 |
+
if ( "hidepassed" === field.name && "replaceState" in window.history ) {
|
2405 |
+
config[ field.name ] = value || false;
|
2406 |
+
if ( value ) {
|
2407 |
+
addClass( id( "qunit-tests" ), "hidepass" );
|
2408 |
+
} else {
|
2409 |
+
removeClass( id( "qunit-tests" ), "hidepass" );
|
2410 |
+
}
|
2411 |
+
|
2412 |
+
// It is not necessary to refresh the whole page
|
2413 |
+
window.history.replaceState( null, "", updatedUrl );
|
2414 |
+
} else {
|
2415 |
+
window.location = updatedUrl;
|
2416 |
+
}
|
2417 |
+
}
|
2418 |
+
|
2419 |
+
function toolbarUrlConfigContainer() {
|
2420 |
+
var urlConfigContainer = document.createElement( "span" );
|
2421 |
+
|
2422 |
+
urlConfigContainer.innerHTML = getUrlConfigHtml();
|
2423 |
+
|
2424 |
+
// For oldIE support:
|
2425 |
+
// * Add handlers to the individual elements instead of the container
|
2426 |
+
// * Use "click" instead of "change" for checkboxes
|
2427 |
+
addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged );
|
2428 |
+
addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged );
|
2429 |
+
|
2430 |
+
return urlConfigContainer;
|
2431 |
+
}
|
2432 |
+
|
2433 |
+
function toolbarModuleFilterHtml() {
|
2434 |
+
var i,
|
2435 |
+
moduleFilterHtml = "";
|
2436 |
+
|
2437 |
+
if ( !modulesList.length ) {
|
2438 |
+
return false;
|
2439 |
+
}
|
2440 |
+
|
2441 |
+
modulesList.sort(function( a, b ) {
|
2442 |
+
return a.localeCompare( b );
|
2443 |
+
});
|
2444 |
+
|
2445 |
+
moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label>" +
|
2446 |
+
"<select id='qunit-modulefilter' name='modulefilter'><option value='' " +
|
2447 |
+
( QUnit.urlParams.module === undefined ? "selected='selected'" : "" ) +
|
2448 |
+
">< All Modules ></option>";
|
2449 |
+
|
2450 |
+
for ( i = 0; i < modulesList.length; i++ ) {
|
2451 |
+
moduleFilterHtml += "<option value='" +
|
2452 |
+
escapeText( encodeURIComponent( modulesList[ i ] ) ) + "' " +
|
2453 |
+
( QUnit.urlParams.module === modulesList[ i ] ? "selected='selected'" : "" ) +
|
2454 |
+
">" + escapeText( modulesList[ i ] ) + "</option>";
|
2455 |
+
}
|
2456 |
+
moduleFilterHtml += "</select>";
|
2457 |
+
|
2458 |
+
return moduleFilterHtml;
|
2459 |
+
}
|
2460 |
+
|
2461 |
+
function toolbarModuleFilter() {
|
2462 |
+
var toolbar = id( "qunit-testrunner-toolbar" ),
|
2463 |
+
moduleFilter = document.createElement( "span" ),
|
2464 |
+
moduleFilterHtml = toolbarModuleFilterHtml();
|
2465 |
+
|
2466 |
+
if ( !moduleFilterHtml ) {
|
2467 |
+
return false;
|
2468 |
+
}
|
2469 |
+
|
2470 |
+
moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
|
2471 |
+
moduleFilter.innerHTML = moduleFilterHtml;
|
2472 |
+
|
2473 |
+
addEvent( moduleFilter.lastChild, "change", function() {
|
2474 |
+
var selectBox = moduleFilter.getElementsByTagName( "select" )[ 0 ],
|
2475 |
+
selection = decodeURIComponent( selectBox.options[ selectBox.selectedIndex ].value );
|
2476 |
+
|
2477 |
+
window.location = QUnit.url({
|
2478 |
+
module: ( selection === "" ) ? undefined : selection,
|
2479 |
+
|
2480 |
+
// Remove any existing filters
|
2481 |
+
filter: undefined,
|
2482 |
+
testId: undefined
|
2483 |
+
});
|
2484 |
+
});
|
2485 |
+
|
2486 |
+
toolbar.appendChild( moduleFilter );
|
2487 |
+
}
|
2488 |
+
|
2489 |
+
function appendToolbar() {
|
2490 |
+
var toolbar = id( "qunit-testrunner-toolbar" );
|
2491 |
+
|
2492 |
+
if ( toolbar ) {
|
2493 |
+
toolbar.appendChild( toolbarUrlConfigContainer() );
|
2494 |
+
}
|
2495 |
+
}
|
2496 |
+
|
2497 |
+
function appendBanner() {
|
2498 |
+
var banner = id( "qunit-banner" );
|
2499 |
+
|
2500 |
+
if ( banner ) {
|
2501 |
+
banner.className = "";
|
2502 |
+
banner.innerHTML = "<a href='" +
|
2503 |
+
QUnit.url({ filter: undefined, module: undefined, testId: undefined }) +
|
2504 |
+
"'>" + banner.innerHTML + "</a> ";
|
2505 |
+
}
|
2506 |
+
}
|
2507 |
+
|
2508 |
+
function appendTestResults() {
|
2509 |
+
var tests = id( "qunit-tests" ),
|
2510 |
+
result = id( "qunit-testresult" );
|
2511 |
+
|
2512 |
+
if ( result ) {
|
2513 |
+
result.parentNode.removeChild( result );
|
2514 |
+
}
|
2515 |
+
|
2516 |
+
if ( tests ) {
|
2517 |
+
tests.innerHTML = "";
|
2518 |
+
result = document.createElement( "p" );
|
2519 |
+
result.id = "qunit-testresult";
|
2520 |
+
result.className = "result";
|
2521 |
+
tests.parentNode.insertBefore( result, tests );
|
2522 |
+
result.innerHTML = "Running...<br /> ";
|
2523 |
+
}
|
2524 |
+
}
|
2525 |
+
|
2526 |
+
function storeFixture() {
|
2527 |
+
var fixture = id( "qunit-fixture" );
|
2528 |
+
if ( fixture ) {
|
2529 |
+
config.fixture = fixture.innerHTML;
|
2530 |
+
}
|
2531 |
+
}
|
2532 |
+
|
2533 |
+
function appendUserAgent() {
|
2534 |
+
var userAgent = id( "qunit-userAgent" );
|
2535 |
+
if ( userAgent ) {
|
2536 |
+
userAgent.innerHTML = navigator.userAgent;
|
2537 |
+
}
|
2538 |
+
}
|
2539 |
+
|
2540 |
+
function appendTestsList( modules ) {
|
2541 |
+
var i, l, x, z, test, moduleObj;
|
2542 |
+
|
2543 |
+
for ( i = 0, l = modules.length; i < l; i++ ) {
|
2544 |
+
moduleObj = modules[ i ];
|
2545 |
+
|
2546 |
+
if ( moduleObj.name ) {
|
2547 |
+
modulesList.push( moduleObj.name );
|
2548 |
+
}
|
2549 |
+
|
2550 |
+
for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) {
|
2551 |
+
test = moduleObj.tests[ x ];
|
2552 |
+
|
2553 |
+
appendTest( test.name, test.testId, moduleObj.name );
|
2554 |
+
}
|
2555 |
+
}
|
2556 |
+
}
|
2557 |
+
|
2558 |
+
function appendTest( name, testId, moduleName ) {
|
2559 |
+
var title, rerunTrigger, testBlock, assertList,
|
2560 |
+
tests = id( "qunit-tests" );
|
2561 |
+
|
2562 |
+
if ( !tests ) {
|
2563 |
+
return;
|
2564 |
+
}
|
2565 |
+
|
2566 |
+
title = document.createElement( "strong" );
|
2567 |
+
title.innerHTML = getNameHtml( name, moduleName );
|
2568 |
+
|
2569 |
+
rerunTrigger = document.createElement( "a" );
|
2570 |
+
rerunTrigger.innerHTML = "Rerun";
|
2571 |
+
rerunTrigger.href = QUnit.url({ testId: testId });
|
2572 |
+
|
2573 |
+
testBlock = document.createElement( "li" );
|
2574 |
+
testBlock.appendChild( title );
|
2575 |
+
testBlock.appendChild( rerunTrigger );
|
2576 |
+
testBlock.id = "qunit-test-output-" + testId;
|
2577 |
+
|
2578 |
+
assertList = document.createElement( "ol" );
|
2579 |
+
assertList.className = "qunit-assert-list";
|
2580 |
+
|
2581 |
+
testBlock.appendChild( assertList );
|
2582 |
+
|
2583 |
+
tests.appendChild( testBlock );
|
2584 |
+
}
|
2585 |
+
|
2586 |
+
// HTML Reporter initialization and load
|
2587 |
+
QUnit.begin(function( details ) {
|
2588 |
+
var qunit = id( "qunit" );
|
2589 |
+
|
2590 |
+
// Fixture is the only one necessary to run without the #qunit element
|
2591 |
+
storeFixture();
|
2592 |
+
|
2593 |
+
if ( !qunit ) {
|
2594 |
+
return;
|
2595 |
+
}
|
2596 |
+
|
2597 |
+
qunit.innerHTML =
|
2598 |
+
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
|
2599 |
+
"<h2 id='qunit-banner'></h2>" +
|
2600 |
+
"<div id='qunit-testrunner-toolbar'></div>" +
|
2601 |
+
"<h2 id='qunit-userAgent'></h2>" +
|
2602 |
+
"<ol id='qunit-tests'></ol>";
|
2603 |
+
|
2604 |
+
appendBanner();
|
2605 |
+
appendTestResults();
|
2606 |
+
appendUserAgent();
|
2607 |
+
appendToolbar();
|
2608 |
+
appendTestsList( details.modules );
|
2609 |
+
toolbarModuleFilter();
|
2610 |
+
|
2611 |
+
if ( config.hidepassed ) {
|
2612 |
+
addClass( qunit.lastChild, "hidepass" );
|
2613 |
+
}
|
2614 |
+
});
|
2615 |
+
|
2616 |
+
QUnit.done(function( details ) {
|
2617 |
+
var i, key,
|
2618 |
+
banner = id( "qunit-banner" ),
|
2619 |
+
tests = id( "qunit-tests" ),
|
2620 |
+
html = [
|
2621 |
+
"Tests completed in ",
|
2622 |
+
details.runtime,
|
2623 |
+
" milliseconds.<br />",
|
2624 |
+
"<span class='passed'>",
|
2625 |
+
details.passed,
|
2626 |
+
"</span> assertions of <span class='total'>",
|
2627 |
+
details.total,
|
2628 |
+
"</span> passed, <span class='failed'>",
|
2629 |
+
details.failed,
|
2630 |
+
"</span> failed."
|
2631 |
+
].join( "" );
|
2632 |
+
|
2633 |
+
if ( banner ) {
|
2634 |
+
banner.className = details.failed ? "qunit-fail" : "qunit-pass";
|
2635 |
+
}
|
2636 |
+
|
2637 |
+
if ( tests ) {
|
2638 |
+
id( "qunit-testresult" ).innerHTML = html;
|
2639 |
+
}
|
2640 |
+
|
2641 |
+
if ( config.altertitle && defined.document && document.title ) {
|
2642 |
+
|
2643 |
+
// show ✖ for good, ✔ for bad suite result in title
|
2644 |
+
// use escape sequences in case file gets loaded with non-utf-8-charset
|
2645 |
+
document.title = [
|
2646 |
+
( details.failed ? "\u2716" : "\u2714" ),
|
2647 |
+
document.title.replace( /^[\u2714\u2716] /i, "" )
|
2648 |
+
].join( " " );
|
2649 |
+
}
|
2650 |
+
|
2651 |
+
// clear own sessionStorage items if all tests passed
|
2652 |
+
if ( config.reorder && defined.sessionStorage && details.failed === 0 ) {
|
2653 |
+
for ( i = 0; i < sessionStorage.length; i++ ) {
|
2654 |
+
key = sessionStorage.key( i++ );
|
2655 |
+
if ( key.indexOf( "qunit-test-" ) === 0 ) {
|
2656 |
+
sessionStorage.removeItem( key );
|
2657 |
+
}
|
2658 |
+
}
|
2659 |
+
}
|
2660 |
+
|
2661 |
+
// scroll back to top to show results
|
2662 |
+
if ( config.scrolltop && window.scrollTo ) {
|
2663 |
+
window.scrollTo( 0, 0 );
|
2664 |
+
}
|
2665 |
+
});
|
2666 |
+
|
2667 |
+
function getNameHtml( name, module ) {
|
2668 |
+
var nameHtml = "";
|
2669 |
+
|
2670 |
+
if ( module ) {
|
2671 |
+
nameHtml = "<span class='module-name'>" + escapeText( module ) + "</span>: ";
|
2672 |
+
}
|
2673 |
+
|
2674 |
+
nameHtml += "<span class='test-name'>" + escapeText( name ) + "</span>";
|
2675 |
+
|
2676 |
+
return nameHtml;
|
2677 |
+
}
|
2678 |
+
|
2679 |
+
QUnit.testStart(function( details ) {
|
2680 |
+
var running, testBlock;
|
2681 |
+
|
2682 |
+
testBlock = id( "qunit-test-output-" + details.testId );
|
2683 |
+
if ( testBlock ) {
|
2684 |
+
testBlock.className = "running";
|
2685 |
+
} else {
|
2686 |
+
|
2687 |
+
// Report later registered tests
|
2688 |
+
appendTest( details.name, details.testId, details.module );
|
2689 |
+
}
|
2690 |
+
|
2691 |
+
running = id( "qunit-testresult" );
|
2692 |
+
if ( running ) {
|
2693 |
+
running.innerHTML = "Running: <br />" + getNameHtml( details.name, details.module );
|
2694 |
+
}
|
2695 |
+
|
2696 |
+
});
|
2697 |
+
|
2698 |
+
QUnit.log(function( details ) {
|
2699 |
+
var assertList, assertLi,
|
2700 |
+
message, expected, actual,
|
2701 |
+
testItem = id( "qunit-test-output-" + details.testId );
|
2702 |
+
|
2703 |
+
if ( !testItem ) {
|
2704 |
+
return;
|
2705 |
+
}
|
2706 |
+
|
2707 |
+
message = escapeText( details.message ) || ( details.result ? "okay" : "failed" );
|
2708 |
+
message = "<span class='test-message'>" + message + "</span>";
|
2709 |
+
message += "<span class='runtime'>@ " + details.runtime + " ms</span>";
|
2710 |
+
|
2711 |
+
// pushFailure doesn't provide details.expected
|
2712 |
+
// when it calls, it's implicit to also not show expected and diff stuff
|
2713 |
+
// Also, we need to check details.expected existence, as it can exist and be undefined
|
2714 |
+
if ( !details.result && hasOwn.call( details, "expected" ) ) {
|
2715 |
+
expected = escapeText( QUnit.dump.parse( details.expected ) );
|
2716 |
+
actual = escapeText( QUnit.dump.parse( details.actual ) );
|
2717 |
+
message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" +
|
2718 |
+
expected +
|
2719 |
+
"</pre></td></tr>";
|
2720 |
+
|
2721 |
+
if ( actual !== expected ) {
|
2722 |
+
message += "<tr class='test-actual'><th>Result: </th><td><pre>" +
|
2723 |
+
actual + "</pre></td></tr>" +
|
2724 |
+
"<tr class='test-diff'><th>Diff: </th><td><pre>" +
|
2725 |
+
QUnit.diff( expected, actual ) + "</pre></td></tr>";
|
2726 |
+
}
|
2727 |
+
|
2728 |
+
if ( details.source ) {
|
2729 |
+
message += "<tr class='test-source'><th>Source: </th><td><pre>" +
|
2730 |
+
escapeText( details.source ) + "</pre></td></tr>";
|
2731 |
+
}
|
2732 |
+
|
2733 |
+
message += "</table>";
|
2734 |
+
|
2735 |
+
// this occours when pushFailure is set and we have an extracted stack trace
|
2736 |
+
} else if ( !details.result && details.source ) {
|
2737 |
+
message += "<table>" +
|
2738 |
+
"<tr class='test-source'><th>Source: </th><td><pre>" +
|
2739 |
+
escapeText( details.source ) + "</pre></td></tr>" +
|
2740 |
+
"</table>";
|
2741 |
+
}
|
2742 |
+
|
2743 |
+
assertList = testItem.getElementsByTagName( "ol" )[ 0 ];
|
2744 |
+
|
2745 |
+
assertLi = document.createElement( "li" );
|
2746 |
+
assertLi.className = details.result ? "pass" : "fail";
|
2747 |
+
assertLi.innerHTML = message;
|
2748 |
+
assertList.appendChild( assertLi );
|
2749 |
+
});
|
2750 |
+
|
2751 |
+
QUnit.testDone(function( details ) {
|
2752 |
+
var testTitle, time, testItem, assertList,
|
2753 |
+
good, bad, testCounts, skipped,
|
2754 |
+
tests = id( "qunit-tests" );
|
2755 |
+
|
2756 |
+
if ( !tests ) {
|
2757 |
+
return;
|
2758 |
+
}
|
2759 |
+
|
2760 |
+
testItem = id( "qunit-test-output-" + details.testId );
|
2761 |
+
|
2762 |
+
assertList = testItem.getElementsByTagName( "ol" )[ 0 ];
|
2763 |
+
|
2764 |
+
good = details.passed;
|
2765 |
+
bad = details.failed;
|
2766 |
+
|
2767 |
+
// store result when possible
|
2768 |
+
if ( config.reorder && defined.sessionStorage ) {
|
2769 |
+
if ( bad ) {
|
2770 |
+
sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad );
|
2771 |
+
} else {
|
2772 |
+
sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name );
|
2773 |
+
}
|
2774 |
+
}
|
2775 |
+
|
2776 |
+
if ( bad === 0 ) {
|
2777 |
+
addClass( assertList, "qunit-collapsed" );
|
2778 |
+
}
|
2779 |
+
|
2780 |
+
// testItem.firstChild is the test name
|
2781 |
+
testTitle = testItem.firstChild;
|
2782 |
+
|
2783 |
+
testCounts = bad ?
|
2784 |
+
"<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " :
|
2785 |
+
"";
|
2786 |
+
|
2787 |
+
testTitle.innerHTML += " <b class='counts'>(" + testCounts +
|
2788 |
+
details.assertions.length + ")</b>";
|
2789 |
+
|
2790 |
+
if ( details.skipped ) {
|
2791 |
+
addClass( testItem, "skipped" );
|
2792 |
+
skipped = document.createElement( "em" );
|
2793 |
+
skipped.className = "qunit-skipped-label";
|
2794 |
+
skipped.innerHTML = "skipped";
|
2795 |
+
testItem.insertBefore( skipped, testTitle );
|
2796 |
+
} else {
|
2797 |
+
addEvent( testTitle, "click", function() {
|
2798 |
+
toggleClass( assertList, "qunit-collapsed" );
|
2799 |
+
});
|
2800 |
+
|
2801 |
+
testItem.className = bad ? "fail" : "pass";
|
2802 |
+
|
2803 |
+
time = document.createElement( "span" );
|
2804 |
+
time.className = "runtime";
|
2805 |
+
time.innerHTML = details.runtime + " ms";
|
2806 |
+
testItem.insertBefore( time, assertList );
|
2807 |
+
}
|
2808 |
+
});
|
2809 |
+
|
2810 |
+
if ( !defined.document || document.readyState === "complete" ) {
|
2811 |
+
config.pageLoaded = true;
|
2812 |
+
config.autorun = true;
|
2813 |
+
}
|
2814 |
+
|
2815 |
+
if ( defined.document ) {
|
2816 |
+
addEvent( window, "load", QUnit.load );
|
2817 |
+
}
|
2818 |
+
|
2819 |
+
})();
|
lang/nggallery-fi.mo
CHANGED
Binary file
|
lang/nggallery-fi.po
CHANGED
@@ -1,9488 +1,4229 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
<
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
<
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
<a href="#cl-570">570</a>
|
1489 |
-
<a href="#cl-571">571</a>
|
1490 |
-
<a href="#cl-572">572</a>
|
1491 |
-
<a href="#cl-573">573</a>
|
1492 |
-
<a href="#cl-574">574</a>
|
1493 |
-
<a href="#cl-575">575</a>
|
1494 |
-
<a href="#cl-576">576</a>
|
1495 |
-
<a href="#cl-577">577</a>
|
1496 |
-
<a href="#cl-578">578</a>
|
1497 |
-
<a href="#cl-579">579</a>
|
1498 |
-
<a href="#cl-580">580</a>
|
1499 |
-
<a href="#cl-581">581</a>
|
1500 |
-
<a href="#cl-582">582</a>
|
1501 |
-
<a href="#cl-583">583</a>
|
1502 |
-
<a href="#cl-584">584</a>
|
1503 |
-
<a href="#cl-585">585</a>
|
1504 |
-
<a href="#cl-586">586</a>
|
1505 |
-
<a href="#cl-587">587</a>
|
1506 |
-
<a href="#cl-588">588</a>
|
1507 |
-
<a href="#cl-589">589</a>
|
1508 |
-
<a href="#cl-590">590</a>
|
1509 |
-
<a href="#cl-591">591</a>
|
1510 |
-
<a href="#cl-592">592</a>
|
1511 |
-
<a href="#cl-593">593</a>
|
1512 |
-
<a href="#cl-594">594</a>
|
1513 |
-
<a href="#cl-595">595</a>
|
1514 |
-
<a href="#cl-596">596</a>
|
1515 |
-
<a href="#cl-597">597</a>
|
1516 |
-
<a href="#cl-598">598</a>
|
1517 |
-
<a href="#cl-599">599</a>
|
1518 |
-
<a href="#cl-600">600</a>
|
1519 |
-
<a href="#cl-601">601</a>
|
1520 |
-
<a href="#cl-602">602</a>
|
1521 |
-
<a href="#cl-603">603</a>
|
1522 |
-
<a href="#cl-604">604</a>
|
1523 |
-
<a href="#cl-605">605</a>
|
1524 |
-
<a href="#cl-606">606</a>
|
1525 |
-
<a href="#cl-607">607</a>
|
1526 |
-
<a href="#cl-608">608</a>
|
1527 |
-
<a href="#cl-609">609</a>
|
1528 |
-
<a href="#cl-610">610</a>
|
1529 |
-
<a href="#cl-611">611</a>
|
1530 |
-
<a href="#cl-612">612</a>
|
1531 |
-
<a href="#cl-613">613</a>
|
1532 |
-
<a href="#cl-614">614</a>
|
1533 |
-
<a href="#cl-615">615</a>
|
1534 |
-
<a href="#cl-616">616</a>
|
1535 |
-
<a href="#cl-617">617</a>
|
1536 |
-
<a href="#cl-618">618</a>
|
1537 |
-
<a href="#cl-619">619</a>
|
1538 |
-
<a href="#cl-620">620</a>
|
1539 |
-
<a href="#cl-621">621</a>
|
1540 |
-
<a href="#cl-622">622</a>
|
1541 |
-
<a href="#cl-623">623</a>
|
1542 |
-
<a href="#cl-624">624</a>
|
1543 |
-
<a href="#cl-625">625</a>
|
1544 |
-
<a href="#cl-626">626</a>
|
1545 |
-
<a href="#cl-627">627</a>
|
1546 |
-
<a href="#cl-628">628</a>
|
1547 |
-
<a href="#cl-629">629</a>
|
1548 |
-
<a href="#cl-630">630</a>
|
1549 |
-
<a href="#cl-631">631</a>
|
1550 |
-
<a href="#cl-632">632</a>
|
1551 |
-
<a href="#cl-633">633</a>
|
1552 |
-
<a href="#cl-634">634</a>
|
1553 |
-
<a href="#cl-635">635</a>
|
1554 |
-
<a href="#cl-636">636</a>
|
1555 |
-
<a href="#cl-637">637</a>
|
1556 |
-
<a href="#cl-638">638</a>
|
1557 |
-
<a href="#cl-639">639</a>
|
1558 |
-
<a href="#cl-640">640</a>
|
1559 |
-
<a href="#cl-641">641</a>
|
1560 |
-
<a href="#cl-642">642</a>
|
1561 |
-
<a href="#cl-643">643</a>
|
1562 |
-
<a href="#cl-644">644</a>
|
1563 |
-
<a href="#cl-645">645</a>
|
1564 |
-
<a href="#cl-646">646</a>
|
1565 |
-
<a href="#cl-647">647</a>
|
1566 |
-
<a href="#cl-648">648</a>
|
1567 |
-
<a href="#cl-649">649</a>
|
1568 |
-
<a href="#cl-650">650</a>
|
1569 |
-
<a href="#cl-651">651</a>
|
1570 |
-
<a href="#cl-652">652</a>
|
1571 |
-
<a href="#cl-653">653</a>
|
1572 |
-
<a href="#cl-654">654</a>
|
1573 |
-
<a href="#cl-655">655</a>
|
1574 |
-
<a href="#cl-656">656</a>
|
1575 |
-
<a href="#cl-657">657</a>
|
1576 |
-
<a href="#cl-658">658</a>
|
1577 |
-
<a href="#cl-659">659</a>
|
1578 |
-
<a href="#cl-660">660</a>
|
1579 |
-
<a href="#cl-661">661</a>
|
1580 |
-
<a href="#cl-662">662</a>
|
1581 |
-
<a href="#cl-663">663</a>
|
1582 |
-
<a href="#cl-664">664</a>
|
1583 |
-
<a href="#cl-665">665</a>
|
1584 |
-
<a href="#cl-666">666</a>
|
1585 |
-
<a href="#cl-667">667</a>
|
1586 |
-
<a href="#cl-668">668</a>
|
1587 |
-
<a href="#cl-669">669</a>
|
1588 |
-
<a href="#cl-670">670</a>
|
1589 |
-
<a href="#cl-671">671</a>
|
1590 |
-
<a href="#cl-672">672</a>
|
1591 |
-
<a href="#cl-673">673</a>
|
1592 |
-
<a href="#cl-674">674</a>
|
1593 |
-
<a href="#cl-675">675</a>
|
1594 |
-
<a href="#cl-676">676</a>
|
1595 |
-
<a href="#cl-677">677</a>
|
1596 |
-
<a href="#cl-678">678</a>
|
1597 |
-
<a href="#cl-679">679</a>
|
1598 |
-
<a href="#cl-680">680</a>
|
1599 |
-
<a href="#cl-681">681</a>
|
1600 |
-
<a href="#cl-682">682</a>
|
1601 |
-
<a href="#cl-683">683</a>
|
1602 |
-
<a href="#cl-684">684</a>
|
1603 |
-
<a href="#cl-685">685</a>
|
1604 |
-
<a href="#cl-686">686</a>
|
1605 |
-
<a href="#cl-687">687</a>
|
1606 |
-
<a href="#cl-688">688</a>
|
1607 |
-
<a href="#cl-689">689</a>
|
1608 |
-
<a href="#cl-690">690</a>
|
1609 |
-
<a href="#cl-691">691</a>
|
1610 |
-
<a href="#cl-692">692</a>
|
1611 |
-
<a href="#cl-693">693</a>
|
1612 |
-
<a href="#cl-694">694</a>
|
1613 |
-
<a href="#cl-695">695</a>
|
1614 |
-
<a href="#cl-696">696</a>
|
1615 |
-
<a href="#cl-697">697</a>
|
1616 |
-
<a href="#cl-698">698</a>
|
1617 |
-
<a href="#cl-699">699</a>
|
1618 |
-
<a href="#cl-700">700</a>
|
1619 |
-
<a href="#cl-701">701</a>
|
1620 |
-
<a href="#cl-702">702</a>
|
1621 |
-
<a href="#cl-703">703</a>
|
1622 |
-
<a href="#cl-704">704</a>
|
1623 |
-
<a href="#cl-705">705</a>
|
1624 |
-
<a href="#cl-706">706</a>
|
1625 |
-
<a href="#cl-707">707</a>
|
1626 |
-
<a href="#cl-708">708</a>
|
1627 |
-
<a href="#cl-709">709</a>
|
1628 |
-
<a href="#cl-710">710</a>
|
1629 |
-
<a href="#cl-711">711</a>
|
1630 |
-
<a href="#cl-712">712</a>
|
1631 |
-
<a href="#cl-713">713</a>
|
1632 |
-
<a href="#cl-714">714</a>
|
1633 |
-
<a href="#cl-715">715</a>
|
1634 |
-
<a href="#cl-716">716</a>
|
1635 |
-
<a href="#cl-717">717</a>
|
1636 |
-
<a href="#cl-718">718</a>
|
1637 |
-
<a href="#cl-719">719</a>
|
1638 |
-
<a href="#cl-720">720</a>
|
1639 |
-
<a href="#cl-721">721</a>
|
1640 |
-
<a href="#cl-722">722</a>
|
1641 |
-
<a href="#cl-723">723</a>
|
1642 |
-
<a href="#cl-724">724</a>
|
1643 |
-
<a href="#cl-725">725</a>
|
1644 |
-
<a href="#cl-726">726</a>
|
1645 |
-
<a href="#cl-727">727</a>
|
1646 |
-
<a href="#cl-728">728</a>
|
1647 |
-
<a href="#cl-729">729</a>
|
1648 |
-
<a href="#cl-730">730</a>
|
1649 |
-
<a href="#cl-731">731</a>
|
1650 |
-
<a href="#cl-732">732</a>
|
1651 |
-
<a href="#cl-733">733</a>
|
1652 |
-
<a href="#cl-734">734</a>
|
1653 |
-
<a href="#cl-735">735</a>
|
1654 |
-
<a href="#cl-736">736</a>
|
1655 |
-
<a href="#cl-737">737</a>
|
1656 |
-
<a href="#cl-738">738</a>
|
1657 |
-
<a href="#cl-739">739</a>
|
1658 |
-
<a href="#cl-740">740</a>
|
1659 |
-
<a href="#cl-741">741</a>
|
1660 |
-
<a href="#cl-742">742</a>
|
1661 |
-
<a href="#cl-743">743</a>
|
1662 |
-
<a href="#cl-744">744</a>
|
1663 |
-
<a href="#cl-745">745</a>
|
1664 |
-
<a href="#cl-746">746</a>
|
1665 |
-
<a href="#cl-747">747</a>
|
1666 |
-
<a href="#cl-748">748</a>
|
1667 |
-
<a href="#cl-749">749</a>
|
1668 |
-
<a href="#cl-750">750</a>
|
1669 |
-
<a href="#cl-751">751</a>
|
1670 |
-
<a href="#cl-752">752</a>
|
1671 |
-
<a href="#cl-753">753</a>
|
1672 |
-
<a href="#cl-754">754</a>
|
1673 |
-
<a href="#cl-755">755</a>
|
1674 |
-
<a href="#cl-756">756</a>
|
1675 |
-
<a href="#cl-757">757</a>
|
1676 |
-
<a href="#cl-758">758</a>
|
1677 |
-
<a href="#cl-759">759</a>
|
1678 |
-
<a href="#cl-760">760</a>
|
1679 |
-
<a href="#cl-761">761</a>
|
1680 |
-
<a href="#cl-762">762</a>
|
1681 |
-
<a href="#cl-763">763</a>
|
1682 |
-
<a href="#cl-764">764</a>
|
1683 |
-
<a href="#cl-765">765</a>
|
1684 |
-
<a href="#cl-766">766</a>
|
1685 |
-
<a href="#cl-767">767</a>
|
1686 |
-
<a href="#cl-768">768</a>
|
1687 |
-
<a href="#cl-769">769</a>
|
1688 |
-
<a href="#cl-770">770</a>
|
1689 |
-
<a href="#cl-771">771</a>
|
1690 |
-
<a href="#cl-772">772</a>
|
1691 |
-
<a href="#cl-773">773</a>
|
1692 |
-
<a href="#cl-774">774</a>
|
1693 |
-
<a href="#cl-775">775</a>
|
1694 |
-
<a href="#cl-776">776</a>
|
1695 |
-
<a href="#cl-777">777</a>
|
1696 |
-
<a href="#cl-778">778</a>
|
1697 |
-
<a href="#cl-779">779</a>
|
1698 |
-
<a href="#cl-780">780</a>
|
1699 |
-
<a href="#cl-781">781</a>
|
1700 |
-
<a href="#cl-782">782</a>
|
1701 |
-
<a href="#cl-783">783</a>
|
1702 |
-
<a href="#cl-784">784</a>
|
1703 |
-
<a href="#cl-785">785</a>
|
1704 |
-
<a href="#cl-786">786</a>
|
1705 |
-
<a href="#cl-787">787</a>
|
1706 |
-
<a href="#cl-788">788</a>
|
1707 |
-
<a href="#cl-789">789</a>
|
1708 |
-
<a href="#cl-790">790</a>
|
1709 |
-
<a href="#cl-791">791</a>
|
1710 |
-
<a href="#cl-792">792</a>
|
1711 |
-
<a href="#cl-793">793</a>
|
1712 |
-
<a href="#cl-794">794</a>
|
1713 |
-
<a href="#cl-795">795</a>
|
1714 |
-
<a href="#cl-796">796</a>
|
1715 |
-
<a href="#cl-797">797</a>
|
1716 |
-
<a href="#cl-798">798</a>
|
1717 |
-
<a href="#cl-799">799</a>
|
1718 |
-
<a href="#cl-800">800</a>
|
1719 |
-
<a href="#cl-801">801</a>
|
1720 |
-
<a href="#cl-802">802</a>
|
1721 |
-
<a href="#cl-803">803</a>
|
1722 |
-
<a href="#cl-804">804</a>
|
1723 |
-
<a href="#cl-805">805</a>
|
1724 |
-
<a href="#cl-806">806</a>
|
1725 |
-
<a href="#cl-807">807</a>
|
1726 |
-
<a href="#cl-808">808</a>
|
1727 |
-
<a href="#cl-809">809</a>
|
1728 |
-
<a href="#cl-810">810</a>
|
1729 |
-
<a href="#cl-811">811</a>
|
1730 |
-
<a href="#cl-812">812</a>
|
1731 |
-
<a href="#cl-813">813</a>
|
1732 |
-
<a href="#cl-814">814</a>
|
1733 |
-
<a href="#cl-815">815</a>
|
1734 |
-
<a href="#cl-816">816</a>
|
1735 |
-
<a href="#cl-817">817</a>
|
1736 |
-
<a href="#cl-818">818</a>
|
1737 |
-
<a href="#cl-819">819</a>
|
1738 |
-
<a href="#cl-820">820</a>
|
1739 |
-
<a href="#cl-821">821</a>
|
1740 |
-
<a href="#cl-822">822</a>
|
1741 |
-
<a href="#cl-823">823</a>
|
1742 |
-
<a href="#cl-824">824</a>
|
1743 |
-
<a href="#cl-825">825</a>
|
1744 |
-
<a href="#cl-826">826</a>
|
1745 |
-
<a href="#cl-827">827</a>
|
1746 |
-
<a href="#cl-828">828</a>
|
1747 |
-
<a href="#cl-829">829</a>
|
1748 |
-
<a href="#cl-830">830</a>
|
1749 |
-
<a href="#cl-831">831</a>
|
1750 |
-
<a href="#cl-832">832</a>
|
1751 |
-
<a href="#cl-833">833</a>
|
1752 |
-
<a href="#cl-834">834</a>
|
1753 |
-
<a href="#cl-835">835</a>
|
1754 |
-
<a href="#cl-836">836</a>
|
1755 |
-
<a href="#cl-837">837</a>
|
1756 |
-
<a href="#cl-838">838</a>
|
1757 |
-
<a href="#cl-839">839</a>
|
1758 |
-
<a href="#cl-840">840</a>
|
1759 |
-
<a href="#cl-841">841</a>
|
1760 |
-
<a href="#cl-842">842</a>
|
1761 |
-
<a href="#cl-843">843</a>
|
1762 |
-
<a href="#cl-844">844</a>
|
1763 |
-
<a href="#cl-845">845</a>
|
1764 |
-
<a href="#cl-846">846</a>
|
1765 |
-
<a href="#cl-847">847</a>
|
1766 |
-
<a href="#cl-848">848</a>
|
1767 |
-
<a href="#cl-849">849</a>
|
1768 |
-
<a href="#cl-850">850</a>
|
1769 |
-
<a href="#cl-851">851</a>
|
1770 |
-
<a href="#cl-852">852</a>
|
1771 |
-
<a href="#cl-853">853</a>
|
1772 |
-
<a href="#cl-854">854</a>
|
1773 |
-
<a href="#cl-855">855</a>
|
1774 |
-
<a href="#cl-856">856</a>
|
1775 |
-
<a href="#cl-857">857</a>
|
1776 |
-
<a href="#cl-858">858</a>
|
1777 |
-
<a href="#cl-859">859</a>
|
1778 |
-
<a href="#cl-860">860</a>
|
1779 |
-
<a href="#cl-861">861</a>
|
1780 |
-
<a href="#cl-862">862</a>
|
1781 |
-
<a href="#cl-863">863</a>
|
1782 |
-
<a href="#cl-864">864</a>
|
1783 |
-
<a href="#cl-865">865</a>
|
1784 |
-
<a href="#cl-866">866</a>
|
1785 |
-
<a href="#cl-867">867</a>
|
1786 |
-
<a href="#cl-868">868</a>
|
1787 |
-
<a href="#cl-869">869</a>
|
1788 |
-
<a href="#cl-870">870</a>
|
1789 |
-
<a href="#cl-871">871</a>
|
1790 |
-
<a href="#cl-872">872</a>
|
1791 |
-
<a href="#cl-873">873</a>
|
1792 |
-
<a href="#cl-874">874</a>
|
1793 |
-
<a href="#cl-875">875</a>
|
1794 |
-
<a href="#cl-876">876</a>
|
1795 |
-
<a href="#cl-877">877</a>
|
1796 |
-
<a href="#cl-878">878</a>
|
1797 |
-
<a href="#cl-879">879</a>
|
1798 |
-
<a href="#cl-880">880</a>
|
1799 |
-
<a href="#cl-881">881</a>
|
1800 |
-
<a href="#cl-882">882</a>
|
1801 |
-
<a href="#cl-883">883</a>
|
1802 |
-
<a href="#cl-884">884</a>
|
1803 |
-
<a href="#cl-885">885</a>
|
1804 |
-
<a href="#cl-886">886</a>
|
1805 |
-
<a href="#cl-887">887</a>
|
1806 |
-
<a href="#cl-888">888</a>
|
1807 |
-
<a href="#cl-889">889</a>
|
1808 |
-
<a href="#cl-890">890</a>
|
1809 |
-
<a href="#cl-891">891</a>
|
1810 |
-
<a href="#cl-892">892</a>
|
1811 |
-
<a href="#cl-893">893</a>
|
1812 |
-
<a href="#cl-894">894</a>
|
1813 |
-
<a href="#cl-895">895</a>
|
1814 |
-
<a href="#cl-896">896</a>
|
1815 |
-
<a href="#cl-897">897</a>
|
1816 |
-
<a href="#cl-898">898</a>
|
1817 |
-
<a href="#cl-899">899</a>
|
1818 |
-
<a href="#cl-900">900</a>
|
1819 |
-
<a href="#cl-901">901</a>
|
1820 |
-
<a href="#cl-902">902</a>
|
1821 |
-
<a href="#cl-903">903</a>
|
1822 |
-
<a href="#cl-904">904</a>
|
1823 |
-
<a href="#cl-905">905</a>
|
1824 |
-
<a href="#cl-906">906</a>
|
1825 |
-
<a href="#cl-907">907</a>
|
1826 |
-
<a href="#cl-908">908</a>
|
1827 |
-
<a href="#cl-909">909</a>
|
1828 |
-
<a href="#cl-910">910</a>
|
1829 |
-
<a href="#cl-911">911</a>
|
1830 |
-
<a href="#cl-912">912</a>
|
1831 |
-
<a href="#cl-913">913</a>
|
1832 |
-
<a href="#cl-914">914</a>
|
1833 |
-
<a href="#cl-915">915</a>
|
1834 |
-
<a href="#cl-916">916</a>
|
1835 |
-
<a href="#cl-917">917</a>
|
1836 |
-
<a href="#cl-918">918</a>
|
1837 |
-
<a href="#cl-919">919</a>
|
1838 |
-
<a href="#cl-920">920</a>
|
1839 |
-
<a href="#cl-921">921</a>
|
1840 |
-
<a href="#cl-922">922</a>
|
1841 |
-
<a href="#cl-923">923</a>
|
1842 |
-
<a href="#cl-924">924</a>
|
1843 |
-
<a href="#cl-925">925</a>
|
1844 |
-
<a href="#cl-926">926</a>
|
1845 |
-
<a href="#cl-927">927</a>
|
1846 |
-
<a href="#cl-928">928</a>
|
1847 |
-
<a href="#cl-929">929</a>
|
1848 |
-
<a href="#cl-930">930</a>
|
1849 |
-
<a href="#cl-931">931</a>
|
1850 |
-
<a href="#cl-932">932</a>
|
1851 |
-
<a href="#cl-933">933</a>
|
1852 |
-
<a href="#cl-934">934</a>
|
1853 |
-
<a href="#cl-935">935</a>
|
1854 |
-
<a href="#cl-936">936</a>
|
1855 |
-
<a href="#cl-937">937</a>
|
1856 |
-
<a href="#cl-938">938</a>
|
1857 |
-
<a href="#cl-939">939</a>
|
1858 |
-
<a href="#cl-940">940</a>
|
1859 |
-
<a href="#cl-941">941</a>
|
1860 |
-
<a href="#cl-942">942</a>
|
1861 |
-
<a href="#cl-943">943</a>
|
1862 |
-
<a href="#cl-944">944</a>
|
1863 |
-
<a href="#cl-945">945</a>
|
1864 |
-
<a href="#cl-946">946</a>
|
1865 |
-
<a href="#cl-947">947</a>
|
1866 |
-
<a href="#cl-948">948</a>
|
1867 |
-
<a href="#cl-949">949</a>
|
1868 |
-
<a href="#cl-950">950</a>
|
1869 |
-
<a href="#cl-951">951</a>
|
1870 |
-
<a href="#cl-952">952</a>
|
1871 |
-
<a href="#cl-953">953</a>
|
1872 |
-
<a href="#cl-954">954</a>
|
1873 |
-
<a href="#cl-955">955</a>
|
1874 |
-
<a href="#cl-956">956</a>
|
1875 |
-
<a href="#cl-957">957</a>
|
1876 |
-
<a href="#cl-958">958</a>
|
1877 |
-
<a href="#cl-959">959</a>
|
1878 |
-
<a href="#cl-960">960</a>
|
1879 |
-
<a href="#cl-961">961</a>
|
1880 |
-
<a href="#cl-962">962</a>
|
1881 |
-
<a href="#cl-963">963</a>
|
1882 |
-
<a href="#cl-964">964</a>
|
1883 |
-
<a href="#cl-965">965</a>
|
1884 |
-
<a href="#cl-966">966</a>
|
1885 |
-
<a href="#cl-967">967</a>
|
1886 |
-
<a href="#cl-968">968</a>
|
1887 |
-
<a href="#cl-969">969</a>
|
1888 |
-
<a href="#cl-970">970</a>
|
1889 |
-
<a href="#cl-971">971</a>
|
1890 |
-
<a href="#cl-972">972</a>
|
1891 |
-
<a href="#cl-973">973</a>
|
1892 |
-
<a href="#cl-974">974</a>
|
1893 |
-
<a href="#cl-975">975</a>
|
1894 |
-
<a href="#cl-976">976</a>
|
1895 |
-
<a href="#cl-977">977</a>
|
1896 |
-
<a href="#cl-978">978</a>
|
1897 |
-
<a href="#cl-979">979</a>
|
1898 |
-
<a href="#cl-980">980</a>
|
1899 |
-
<a href="#cl-981">981</a>
|
1900 |
-
<a href="#cl-982">982</a>
|
1901 |
-
<a href="#cl-983">983</a>
|
1902 |
-
<a href="#cl-984">984</a>
|
1903 |
-
<a href="#cl-985">985</a>
|
1904 |
-
<a href="#cl-986">986</a>
|
1905 |
-
<a href="#cl-987">987</a>
|
1906 |
-
<a href="#cl-988">988</a>
|
1907 |
-
<a href="#cl-989">989</a>
|
1908 |
-
<a href="#cl-990">990</a>
|
1909 |
-
<a href="#cl-991">991</a>
|
1910 |
-
<a href="#cl-992">992</a>
|
1911 |
-
<a href="#cl-993">993</a>
|
1912 |
-
<a href="#cl-994">994</a>
|
1913 |
-
<a href="#cl-995">995</a>
|
1914 |
-
<a href="#cl-996">996</a>
|
1915 |
-
<a href="#cl-997">997</a>
|
1916 |
-
<a href="#cl-998">998</a>
|
1917 |
-
<a href="#cl-999">999</a>
|
1918 |
-
<a href="#cl-1000">1000</a>
|
1919 |
-
<a href="#cl-1001">1001</a>
|
1920 |
-
<a href="#cl-1002">1002</a>
|
1921 |
-
<a href="#cl-1003">1003</a>
|
1922 |
-
<a href="#cl-1004">1004</a>
|
1923 |
-
<a href="#cl-1005">1005</a>
|
1924 |
-
<a href="#cl-1006">1006</a>
|
1925 |
-
<a href="#cl-1007">1007</a>
|
1926 |
-
<a href="#cl-1008">1008</a>
|
1927 |
-
<a href="#cl-1009">1009</a>
|
1928 |
-
<a href="#cl-1010">1010</a>
|
1929 |
-
<a href="#cl-1011">1011</a>
|
1930 |
-
<a href="#cl-1012">1012</a>
|
1931 |
-
<a href="#cl-1013">1013</a>
|
1932 |
-
<a href="#cl-1014">1014</a>
|
1933 |
-
<a href="#cl-1015">1015</a>
|
1934 |
-
<a href="#cl-1016">1016</a>
|
1935 |
-
<a href="#cl-1017">1017</a>
|
1936 |
-
<a href="#cl-1018">1018</a>
|
1937 |
-
<a href="#cl-1019">1019</a>
|
1938 |
-
<a href="#cl-1020">1020</a>
|
1939 |
-
<a href="#cl-1021">1021</a>
|
1940 |
-
<a href="#cl-1022">1022</a>
|
1941 |
-
<a href="#cl-1023">1023</a>
|
1942 |
-
<a href="#cl-1024">1024</a>
|
1943 |
-
<a href="#cl-1025">1025</a>
|
1944 |
-
<a href="#cl-1026">1026</a>
|
1945 |
-
<a href="#cl-1027">1027</a>
|
1946 |
-
<a href="#cl-1028">1028</a>
|
1947 |
-
<a href="#cl-1029">1029</a>
|
1948 |
-
<a href="#cl-1030">1030</a>
|
1949 |
-
<a href="#cl-1031">1031</a>
|
1950 |
-
<a href="#cl-1032">1032</a>
|
1951 |
-
<a href="#cl-1033">1033</a>
|
1952 |
-
<a href="#cl-1034">1034</a>
|
1953 |
-
<a href="#cl-1035">1035</a>
|
1954 |
-
<a href="#cl-1036">1036</a>
|
1955 |
-
<a href="#cl-1037">1037</a>
|
1956 |
-
<a href="#cl-1038">1038</a>
|
1957 |
-
<a href="#cl-1039">1039</a>
|
1958 |
-
<a href="#cl-1040">1040</a>
|
1959 |
-
<a href="#cl-1041">1041</a>
|
1960 |
-
<a href="#cl-1042">1042</a>
|
1961 |
-
<a href="#cl-1043">1043</a>
|
1962 |
-
<a href="#cl-1044">1044</a>
|
1963 |
-
<a href="#cl-1045">1045</a>
|
1964 |
-
<a href="#cl-1046">1046</a>
|
1965 |
-
<a href="#cl-1047">1047</a>
|
1966 |
-
<a href="#cl-1048">1048</a>
|
1967 |
-
<a href="#cl-1049">1049</a>
|
1968 |
-
<a href="#cl-1050">1050</a>
|
1969 |
-
<a href="#cl-1051">1051</a>
|
1970 |
-
<a href="#cl-1052">1052</a>
|
1971 |
-
<a href="#cl-1053">1053</a>
|
1972 |
-
<a href="#cl-1054">1054</a>
|
1973 |
-
<a href="#cl-1055">1055</a>
|
1974 |
-
<a href="#cl-1056">1056</a>
|
1975 |
-
<a href="#cl-1057">1057</a>
|
1976 |
-
<a href="#cl-1058">1058</a>
|
1977 |
-
<a href="#cl-1059">1059</a>
|
1978 |
-
<a href="#cl-1060">1060</a>
|
1979 |
-
<a href="#cl-1061">1061</a>
|
1980 |
-
<a href="#cl-1062">1062</a>
|
1981 |
-
<a href="#cl-1063">1063</a>
|
1982 |
-
<a href="#cl-1064">1064</a>
|
1983 |
-
<a href="#cl-1065">1065</a>
|
1984 |
-
<a href="#cl-1066">1066</a>
|
1985 |
-
<a href="#cl-1067">1067</a>
|
1986 |
-
<a href="#cl-1068">1068</a>
|
1987 |
-
<a href="#cl-1069">1069</a>
|
1988 |
-
<a href="#cl-1070">1070</a>
|
1989 |
-
<a href="#cl-1071">1071</a>
|
1990 |
-
<a href="#cl-1072">1072</a>
|
1991 |
-
<a href="#cl-1073">1073</a>
|
1992 |
-
<a href="#cl-1074">1074</a>
|
1993 |
-
<a href="#cl-1075">1075</a>
|
1994 |
-
<a href="#cl-1076">1076</a>
|
1995 |
-
<a href="#cl-1077">1077</a>
|
1996 |
-
<a href="#cl-1078">1078</a>
|
1997 |
-
<a href="#cl-1079">1079</a>
|
1998 |
-
<a href="#cl-1080">1080</a>
|
1999 |
-
<a href="#cl-1081">1081</a>
|
2000 |
-
<a href="#cl-1082">1082</a>
|
2001 |
-
<a href="#cl-1083">1083</a>
|
2002 |
-
<a href="#cl-1084">1084</a>
|
2003 |
-
<a href="#cl-1085">1085</a>
|
2004 |
-
<a href="#cl-1086">1086</a>
|
2005 |
-
<a href="#cl-1087">1087</a>
|
2006 |
-
<a href="#cl-1088">1088</a>
|
2007 |
-
<a href="#cl-1089">1089</a>
|
2008 |
-
<a href="#cl-1090">1090</a>
|
2009 |
-
<a href="#cl-1091">1091</a>
|
2010 |
-
<a href="#cl-1092">1092</a>
|
2011 |
-
<a href="#cl-1093">1093</a>
|
2012 |
-
<a href="#cl-1094">1094</a>
|
2013 |
-
<a href="#cl-1095">1095</a>
|
2014 |
-
<a href="#cl-1096">1096</a>
|
2015 |
-
<a href="#cl-1097">1097</a>
|
2016 |
-
<a href="#cl-1098">1098</a>
|
2017 |
-
<a href="#cl-1099">1099</a>
|
2018 |
-
<a href="#cl-1100">1100</a>
|
2019 |
-
<a href="#cl-1101">1101</a>
|
2020 |
-
<a href="#cl-1102">1102</a>
|
2021 |
-
<a href="#cl-1103">1103</a>
|
2022 |
-
<a href="#cl-1104">1104</a>
|
2023 |
-
<a href="#cl-1105">1105</a>
|
2024 |
-
<a href="#cl-1106">1106</a>
|
2025 |
-
<a href="#cl-1107">1107</a>
|
2026 |
-
<a href="#cl-1108">1108</a>
|
2027 |
-
<a href="#cl-1109">1109</a>
|
2028 |
-
<a href="#cl-1110">1110</a>
|
2029 |
-
<a href="#cl-1111">1111</a>
|
2030 |
-
<a href="#cl-1112">1112</a>
|
2031 |
-
<a href="#cl-1113">1113</a>
|
2032 |
-
<a href="#cl-1114">1114</a>
|
2033 |
-
<a href="#cl-1115">1115</a>
|
2034 |
-
<a href="#cl-1116">1116</a>
|
2035 |
-
<a href="#cl-1117">1117</a>
|
2036 |
-
<a href="#cl-1118">1118</a>
|
2037 |
-
<a href="#cl-1119">1119</a>
|
2038 |
-
<a href="#cl-1120">1120</a>
|
2039 |
-
<a href="#cl-1121">1121</a>
|
2040 |
-
<a href="#cl-1122">1122</a>
|
2041 |
-
<a href="#cl-1123">1123</a>
|
2042 |
-
<a href="#cl-1124">1124</a>
|
2043 |
-
<a href="#cl-1125">1125</a>
|
2044 |
-
<a href="#cl-1126">1126</a>
|
2045 |
-
<a href="#cl-1127">1127</a>
|
2046 |
-
<a href="#cl-1128">1128</a>
|
2047 |
-
<a href="#cl-1129">1129</a>
|
2048 |
-
<a href="#cl-1130">1130</a>
|
2049 |
-
<a href="#cl-1131">1131</a>
|
2050 |
-
<a href="#cl-1132">1132</a>
|
2051 |
-
<a href="#cl-1133">1133</a>
|
2052 |
-
<a href="#cl-1134">1134</a>
|
2053 |
-
<a href="#cl-1135">1135</a>
|
2054 |
-
<a href="#cl-1136">1136</a>
|
2055 |
-
<a href="#cl-1137">1137</a>
|
2056 |
-
<a href="#cl-1138">1138</a>
|
2057 |
-
<a href="#cl-1139">1139</a>
|
2058 |
-
<a href="#cl-1140">1140</a>
|
2059 |
-
<a href="#cl-1141">1141</a>
|
2060 |
-
<a href="#cl-1142">1142</a>
|
2061 |
-
<a href="#cl-1143">1143</a>
|
2062 |
-
<a href="#cl-1144">1144</a>
|
2063 |
-
<a href="#cl-1145">1145</a>
|
2064 |
-
<a href="#cl-1146">1146</a>
|
2065 |
-
<a href="#cl-1147">1147</a>
|
2066 |
-
<a href="#cl-1148">1148</a>
|
2067 |
-
<a href="#cl-1149">1149</a>
|
2068 |
-
<a href="#cl-1150">1150</a>
|
2069 |
-
<a href="#cl-1151">1151</a>
|
2070 |
-
<a href="#cl-1152">1152</a>
|
2071 |
-
<a href="#cl-1153">1153</a>
|
2072 |
-
<a href="#cl-1154">1154</a>
|
2073 |
-
<a href="#cl-1155">1155</a>
|
2074 |
-
<a href="#cl-1156">1156</a>
|
2075 |
-
<a href="#cl-1157">1157</a>
|
2076 |
-
<a href="#cl-1158">1158</a>
|
2077 |
-
<a href="#cl-1159">1159</a>
|
2078 |
-
<a href="#cl-1160">1160</a>
|
2079 |
-
<a href="#cl-1161">1161</a>
|
2080 |
-
<a href="#cl-1162">1162</a>
|
2081 |
-
<a href="#cl-1163">1163</a>
|
2082 |
-
<a href="#cl-1164">1164</a>
|
2083 |
-
<a href="#cl-1165">1165</a>
|
2084 |
-
<a href="#cl-1166">1166</a>
|
2085 |
-
<a href="#cl-1167">1167</a>
|
2086 |
-
<a href="#cl-1168">1168</a>
|
2087 |
-
<a href="#cl-1169">1169</a>
|
2088 |
-
<a href="#cl-1170">1170</a>
|
2089 |
-
<a href="#cl-1171">1171</a>
|
2090 |
-
<a href="#cl-1172">1172</a>
|
2091 |
-
<a href="#cl-1173">1173</a>
|
2092 |
-
<a href="#cl-1174">1174</a>
|
2093 |
-
<a href="#cl-1175">1175</a>
|
2094 |
-
<a href="#cl-1176">1176</a>
|
2095 |
-
<a href="#cl-1177">1177</a>
|
2096 |
-
<a href="#cl-1178">1178</a>
|
2097 |
-
<a href="#cl-1179">1179</a>
|
2098 |
-
<a href="#cl-1180">1180</a>
|
2099 |
-
<a href="#cl-1181">1181</a>
|
2100 |
-
<a href="#cl-1182">1182</a>
|
2101 |
-
<a href="#cl-1183">1183</a>
|
2102 |
-
<a href="#cl-1184">1184</a>
|
2103 |
-
<a href="#cl-1185">1185</a>
|
2104 |
-
<a href="#cl-1186">1186</a>
|
2105 |
-
<a href="#cl-1187">1187</a>
|
2106 |
-
<a href="#cl-1188">1188</a>
|
2107 |
-
<a href="#cl-1189">1189</a>
|
2108 |
-
<a href="#cl-1190">1190</a>
|
2109 |
-
<a href="#cl-1191">1191</a>
|
2110 |
-
<a href="#cl-1192">1192</a>
|
2111 |
-
<a href="#cl-1193">1193</a>
|
2112 |
-
<a href="#cl-1194">1194</a>
|
2113 |
-
<a href="#cl-1195">1195</a>
|
2114 |
-
<a href="#cl-1196">1196</a>
|
2115 |
-
<a href="#cl-1197">1197</a>
|
2116 |
-
<a href="#cl-1198">1198</a>
|
2117 |
-
<a href="#cl-1199">1199</a>
|
2118 |
-
<a href="#cl-1200">1200</a>
|
2119 |
-
<a href="#cl-1201">1201</a>
|
2120 |
-
<a href="#cl-1202">1202</a>
|
2121 |
-
<a href="#cl-1203">1203</a>
|
2122 |
-
<a href="#cl-1204">1204</a>
|
2123 |
-
<a href="#cl-1205">1205</a>
|
2124 |
-
<a href="#cl-1206">1206</a>
|
2125 |
-
<a href="#cl-1207">1207</a>
|
2126 |
-
<a href="#cl-1208">1208</a>
|
2127 |
-
<a href="#cl-1209">1209</a>
|
2128 |
-
<a href="#cl-1210">1210</a>
|
2129 |
-
<a href="#cl-1211">1211</a>
|
2130 |
-
<a href="#cl-1212">1212</a>
|
2131 |
-
<a href="#cl-1213">1213</a>
|
2132 |
-
<a href="#cl-1214">1214</a>
|
2133 |
-
<a href="#cl-1215">1215</a>
|
2134 |
-
<a href="#cl-1216">1216</a>
|
2135 |
-
<a href="#cl-1217">1217</a>
|
2136 |
-
<a href="#cl-1218">1218</a>
|
2137 |
-
<a href="#cl-1219">1219</a>
|
2138 |
-
<a href="#cl-1220">1220</a>
|
2139 |
-
<a href="#cl-1221">1221</a>
|
2140 |
-
<a href="#cl-1222">1222</a>
|
2141 |
-
<a href="#cl-1223">1223</a>
|
2142 |
-
<a href="#cl-1224">1224</a>
|
2143 |
-
<a href="#cl-1225">1225</a>
|
2144 |
-
<a href="#cl-1226">1226</a>
|
2145 |
-
<a href="#cl-1227">1227</a>
|
2146 |
-
<a href="#cl-1228">1228</a>
|
2147 |
-
<a href="#cl-1229">1229</a>
|
2148 |
-
<a href="#cl-1230">1230</a>
|
2149 |
-
<a href="#cl-1231">1231</a>
|
2150 |
-
<a href="#cl-1232">1232</a>
|
2151 |
-
<a href="#cl-1233">1233</a>
|
2152 |
-
<a href="#cl-1234">1234</a>
|
2153 |
-
<a href="#cl-1235">1235</a>
|
2154 |
-
<a href="#cl-1236">1236</a>
|
2155 |
-
<a href="#cl-1237">1237</a>
|
2156 |
-
<a href="#cl-1238">1238</a>
|
2157 |
-
<a href="#cl-1239">1239</a>
|
2158 |
-
<a href="#cl-1240">1240</a>
|
2159 |
-
<a href="#cl-1241">1241</a>
|
2160 |
-
<a href="#cl-1242">1242</a>
|
2161 |
-
<a href="#cl-1243">1243</a>
|
2162 |
-
<a href="#cl-1244">1244</a>
|
2163 |
-
<a href="#cl-1245">1245</a>
|
2164 |
-
<a href="#cl-1246">1246</a>
|
2165 |
-
<a href="#cl-1247">1247</a>
|
2166 |
-
<a href="#cl-1248">1248</a>
|
2167 |
-
<a href="#cl-1249">1249</a>
|
2168 |
-
<a href="#cl-1250">1250</a>
|
2169 |
-
<a href="#cl-1251">1251</a>
|
2170 |
-
<a href="#cl-1252">1252</a>
|
2171 |
-
<a href="#cl-1253">1253</a>
|
2172 |
-
<a href="#cl-1254">1254</a>
|
2173 |
-
<a href="#cl-1255">1255</a>
|
2174 |
-
<a href="#cl-1256">1256</a>
|
2175 |
-
<a href="#cl-1257">1257</a>
|
2176 |
-
<a href="#cl-1258">1258</a>
|
2177 |
-
<a href="#cl-1259">1259</a>
|
2178 |
-
<a href="#cl-1260">1260</a>
|
2179 |
-
<a href="#cl-1261">1261</a>
|
2180 |
-
<a href="#cl-1262">1262</a>
|
2181 |
-
<a href="#cl-1263">1263</a>
|
2182 |
-
<a href="#cl-1264">1264</a>
|
2183 |
-
<a href="#cl-1265">1265</a>
|
2184 |
-
<a href="#cl-1266">1266</a>
|
2185 |
-
<a href="#cl-1267">1267</a>
|
2186 |
-
<a href="#cl-1268">1268</a>
|
2187 |
-
<a href="#cl-1269">1269</a>
|
2188 |
-
<a href="#cl-1270">1270</a>
|
2189 |
-
<a href="#cl-1271">1271</a>
|
2190 |
-
<a href="#cl-1272">1272</a>
|
2191 |
-
<a href="#cl-1273">1273</a>
|
2192 |
-
<a href="#cl-1274">1274</a>
|
2193 |
-
<a href="#cl-1275">1275</a>
|
2194 |
-
<a href="#cl-1276">1276</a>
|
2195 |
-
<a href="#cl-1277">1277</a>
|
2196 |
-
<a href="#cl-1278">1278</a>
|
2197 |
-
<a href="#cl-1279">1279</a>
|
2198 |
-
<a href="#cl-1280">1280</a>
|
2199 |
-
<a href="#cl-1281">1281</a>
|
2200 |
-
<a href="#cl-1282">1282</a>
|
2201 |
-
<a href="#cl-1283">1283</a>
|
2202 |
-
<a href="#cl-1284">1284</a>
|
2203 |
-
<a href="#cl-1285">1285</a>
|
2204 |
-
<a href="#cl-1286">1286</a>
|
2205 |
-
<a href="#cl-1287">1287</a>
|
2206 |
-
<a href="#cl-1288">1288</a>
|
2207 |
-
<a href="#cl-1289">1289</a>
|
2208 |
-
<a href="#cl-1290">1290</a>
|
2209 |
-
<a href="#cl-1291">1291</a>
|
2210 |
-
<a href="#cl-1292">1292</a>
|
2211 |
-
<a href="#cl-1293">1293</a>
|
2212 |
-
<a href="#cl-1294">1294</a>
|
2213 |
-
<a href="#cl-1295">1295</a>
|
2214 |
-
<a href="#cl-1296">1296</a>
|
2215 |
-
<a href="#cl-1297">1297</a>
|
2216 |
-
<a href="#cl-1298">1298</a>
|
2217 |
-
<a href="#cl-1299">1299</a>
|
2218 |
-
<a href="#cl-1300">1300</a>
|
2219 |
-
<a href="#cl-1301">1301</a>
|
2220 |
-
<a href="#cl-1302">1302</a>
|
2221 |
-
<a href="#cl-1303">1303</a>
|
2222 |
-
<a href="#cl-1304">1304</a>
|
2223 |
-
<a href="#cl-1305">1305</a>
|
2224 |
-
<a href="#cl-1306">1306</a>
|
2225 |
-
<a href="#cl-1307">1307</a>
|
2226 |
-
<a href="#cl-1308">1308</a>
|
2227 |
-
<a href="#cl-1309">1309</a>
|
2228 |
-
<a href="#cl-1310">1310</a>
|
2229 |
-
<a href="#cl-1311">1311</a>
|
2230 |
-
<a href="#cl-1312">1312</a>
|
2231 |
-
<a href="#cl-1313">1313</a>
|
2232 |
-
<a href="#cl-1314">1314</a>
|
2233 |
-
<a href="#cl-1315">1315</a>
|
2234 |
-
<a href="#cl-1316">1316</a>
|
2235 |
-
<a href="#cl-1317">1317</a>
|
2236 |
-
<a href="#cl-1318">1318</a>
|
2237 |
-
<a href="#cl-1319">1319</a>
|
2238 |
-
<a href="#cl-1320">1320</a>
|
2239 |
-
<a href="#cl-1321">1321</a>
|
2240 |
-
<a href="#cl-1322">1322</a>
|
2241 |
-
<a href="#cl-1323">1323</a>
|
2242 |
-
<a href="#cl-1324">1324</a>
|
2243 |
-
<a href="#cl-1325">1325</a>
|
2244 |
-
<a href="#cl-1326">1326</a>
|
2245 |
-
<a href="#cl-1327">1327</a>
|
2246 |
-
<a href="#cl-1328">1328</a>
|
2247 |
-
<a href="#cl-1329">1329</a>
|
2248 |
-
<a href="#cl-1330">1330</a>
|
2249 |
-
<a href="#cl-1331">1331</a>
|
2250 |
-
<a href="#cl-1332">1332</a>
|
2251 |
-
<a href="#cl-1333">1333</a>
|
2252 |
-
<a href="#cl-1334">1334</a>
|
2253 |
-
<a href="#cl-1335">1335</a>
|
2254 |
-
<a href="#cl-1336">1336</a>
|
2255 |
-
<a href="#cl-1337">1337</a>
|
2256 |
-
<a href="#cl-1338">1338</a>
|
2257 |
-
<a href="#cl-1339">1339</a>
|
2258 |
-
<a href="#cl-1340">1340</a>
|
2259 |
-
<a href="#cl-1341">1341</a>
|
2260 |
-
<a href="#cl-1342">1342</a>
|
2261 |
-
<a href="#cl-1343">1343</a>
|
2262 |
-
<a href="#cl-1344">1344</a>
|
2263 |
-
<a href="#cl-1345">1345</a>
|
2264 |
-
<a href="#cl-1346">1346</a>
|
2265 |
-
<a href="#cl-1347">1347</a>
|
2266 |
-
<a href="#cl-1348">1348</a>
|
2267 |
-
<a href="#cl-1349">1349</a>
|
2268 |
-
<a href="#cl-1350">1350</a>
|
2269 |
-
<a href="#cl-1351">1351</a>
|
2270 |
-
<a href="#cl-1352">1352</a>
|
2271 |
-
<a href="#cl-1353">1353</a>
|
2272 |
-
<a href="#cl-1354">1354</a>
|
2273 |
-
<a href="#cl-1355">1355</a>
|
2274 |
-
<a href="#cl-1356">1356</a>
|
2275 |
-
<a href="#cl-1357">1357</a>
|
2276 |
-
<a href="#cl-1358">1358</a>
|
2277 |
-
<a href="#cl-1359">1359</a>
|
2278 |
-
<a href="#cl-1360">1360</a>
|
2279 |
-
<a href="#cl-1361">1361</a>
|
2280 |
-
<a href="#cl-1362">1362</a>
|
2281 |
-
<a href="#cl-1363">1363</a>
|
2282 |
-
<a href="#cl-1364">1364</a>
|
2283 |
-
<a href="#cl-1365">1365</a>
|
2284 |
-
<a href="#cl-1366">1366</a>
|
2285 |
-
<a href="#cl-1367">1367</a>
|
2286 |
-
<a href="#cl-1368">1368</a>
|
2287 |
-
<a href="#cl-1369">1369</a>
|
2288 |
-
<a href="#cl-1370">1370</a>
|
2289 |
-
<a href="#cl-1371">1371</a>
|
2290 |
-
<a href="#cl-1372">1372</a>
|
2291 |
-
<a href="#cl-1373">1373</a>
|
2292 |
-
<a href="#cl-1374">1374</a>
|
2293 |
-
<a href="#cl-1375">1375</a>
|
2294 |
-
<a href="#cl-1376">1376</a>
|
2295 |
-
<a href="#cl-1377">1377</a>
|
2296 |
-
<a href="#cl-1378">1378</a>
|
2297 |
-
<a href="#cl-1379">1379</a>
|
2298 |
-
<a href="#cl-1380">1380</a>
|
2299 |
-
<a href="#cl-1381">1381</a>
|
2300 |
-
<a href="#cl-1382">1382</a>
|
2301 |
-
<a href="#cl-1383">1383</a>
|
2302 |
-
<a href="#cl-1384">1384</a>
|
2303 |
-
<a href="#cl-1385">1385</a>
|
2304 |
-
<a href="#cl-1386">1386</a>
|
2305 |
-
<a href="#cl-1387">1387</a>
|
2306 |
-
<a href="#cl-1388">1388</a>
|
2307 |
-
<a href="#cl-1389">1389</a>
|
2308 |
-
<a href="#cl-1390">1390</a>
|
2309 |
-
<a href="#cl-1391">1391</a>
|
2310 |
-
<a href="#cl-1392">1392</a>
|
2311 |
-
<a href="#cl-1393">1393</a>
|
2312 |
-
<a href="#cl-1394">1394</a>
|
2313 |
-
<a href="#cl-1395">1395</a>
|
2314 |
-
<a href="#cl-1396">1396</a>
|
2315 |
-
<a href="#cl-1397">1397</a>
|
2316 |
-
<a href="#cl-1398">1398</a>
|
2317 |
-
<a href="#cl-1399">1399</a>
|
2318 |
-
<a href="#cl-1400">1400</a>
|
2319 |
-
<a href="#cl-1401">1401</a>
|
2320 |
-
<a href="#cl-1402">1402</a>
|
2321 |
-
<a href="#cl-1403">1403</a>
|
2322 |
-
<a href="#cl-1404">1404</a>
|
2323 |
-
<a href="#cl-1405">1405</a>
|
2324 |
-
<a href="#cl-1406">1406</a>
|
2325 |
-
<a href="#cl-1407">1407</a>
|
2326 |
-
<a href="#cl-1408">1408</a>
|
2327 |
-
<a href="#cl-1409">1409</a>
|
2328 |
-
<a href="#cl-1410">1410</a>
|
2329 |
-
<a href="#cl-1411">1411</a>
|
2330 |
-
<a href="#cl-1412">1412</a>
|
2331 |
-
<a href="#cl-1413">1413</a>
|
2332 |
-
<a href="#cl-1414">1414</a>
|
2333 |
-
<a href="#cl-1415">1415</a>
|
2334 |
-
<a href="#cl-1416">1416</a>
|
2335 |
-
<a href="#cl-1417">1417</a>
|
2336 |
-
<a href="#cl-1418">1418</a>
|
2337 |
-
<a href="#cl-1419">1419</a>
|
2338 |
-
<a href="#cl-1420">1420</a>
|
2339 |
-
<a href="#cl-1421">1421</a>
|
2340 |
-
<a href="#cl-1422">1422</a>
|
2341 |
-
<a href="#cl-1423">1423</a>
|
2342 |
-
<a href="#cl-1424">1424</a>
|
2343 |
-
<a href="#cl-1425">1425</a>
|
2344 |
-
<a href="#cl-1426">1426</a>
|
2345 |
-
<a href="#cl-1427">1427</a>
|
2346 |
-
<a href="#cl-1428">1428</a>
|
2347 |
-
<a href="#cl-1429">1429</a>
|
2348 |
-
<a href="#cl-1430">1430</a>
|
2349 |
-
<a href="#cl-1431">1431</a>
|
2350 |
-
<a href="#cl-1432">1432</a>
|
2351 |
-
<a href="#cl-1433">1433</a>
|
2352 |
-
<a href="#cl-1434">1434</a>
|
2353 |
-
<a href="#cl-1435">1435</a>
|
2354 |
-
<a href="#cl-1436">1436</a>
|
2355 |
-
<a href="#cl-1437">1437</a>
|
2356 |
-
<a href="#cl-1438">1438</a>
|
2357 |
-
<a href="#cl-1439">1439</a>
|
2358 |
-
<a href="#cl-1440">1440</a>
|
2359 |
-
<a href="#cl-1441">1441</a>
|
2360 |
-
<a href="#cl-1442">1442</a>
|
2361 |
-
<a href="#cl-1443">1443</a>
|
2362 |
-
<a href="#cl-1444">1444</a>
|
2363 |
-
<a href="#cl-1445">1445</a>
|
2364 |
-
<a href="#cl-1446">1446</a>
|
2365 |
-
<a href="#cl-1447">1447</a>
|
2366 |
-
<a href="#cl-1448">1448</a>
|
2367 |
-
<a href="#cl-1449">1449</a>
|
2368 |
-
<a href="#cl-1450">1450</a>
|
2369 |
-
<a href="#cl-1451">1451</a>
|
2370 |
-
<a href="#cl-1452">1452</a>
|
2371 |
-
<a href="#cl-1453">1453</a>
|
2372 |
-
<a href="#cl-1454">1454</a>
|
2373 |
-
<a href="#cl-1455">1455</a>
|
2374 |
-
<a href="#cl-1456">1456</a>
|
2375 |
-
<a href="#cl-1457">1457</a>
|
2376 |
-
<a href="#cl-1458">1458</a>
|
2377 |
-
<a href="#cl-1459">1459</a>
|
2378 |
-
<a href="#cl-1460">1460</a>
|
2379 |
-
<a href="#cl-1461">1461</a>
|
2380 |
-
<a href="#cl-1462">1462</a>
|
2381 |
-
<a href="#cl-1463">1463</a>
|
2382 |
-
<a href="#cl-1464">1464</a>
|
2383 |
-
<a href="#cl-1465">1465</a>
|
2384 |
-
<a href="#cl-1466">1466</a>
|
2385 |
-
<a href="#cl-1467">1467</a>
|
2386 |
-
<a href="#cl-1468">1468</a>
|
2387 |
-
<a href="#cl-1469">1469</a>
|
2388 |
-
<a href="#cl-1470">1470</a>
|
2389 |
-
<a href="#cl-1471">1471</a>
|
2390 |
-
<a href="#cl-1472">1472</a>
|
2391 |
-
<a href="#cl-1473">1473</a>
|
2392 |
-
<a href="#cl-1474">1474</a>
|
2393 |
-
<a href="#cl-1475">1475</a>
|
2394 |
-
<a href="#cl-1476">1476</a>
|
2395 |
-
<a href="#cl-1477">1477</a>
|
2396 |
-
<a href="#cl-1478">1478</a>
|
2397 |
-
<a href="#cl-1479">1479</a>
|
2398 |
-
<a href="#cl-1480">1480</a>
|
2399 |
-
<a href="#cl-1481">1481</a>
|
2400 |
-
<a href="#cl-1482">1482</a>
|
2401 |
-
<a href="#cl-1483">1483</a>
|
2402 |
-
<a href="#cl-1484">1484</a>
|
2403 |
-
<a href="#cl-1485">1485</a>
|
2404 |
-
<a href="#cl-1486">1486</a>
|
2405 |
-
<a href="#cl-1487">1487</a>
|
2406 |
-
<a href="#cl-1488">1488</a>
|
2407 |
-
<a href="#cl-1489">1489</a>
|
2408 |
-
<a href="#cl-1490">1490</a>
|
2409 |
-
<a href="#cl-1491">1491</a>
|
2410 |
-
<a href="#cl-1492">1492</a>
|
2411 |
-
<a href="#cl-1493">1493</a>
|
2412 |
-
<a href="#cl-1494">1494</a>
|
2413 |
-
<a href="#cl-1495">1495</a>
|
2414 |
-
<a href="#cl-1496">1496</a>
|
2415 |
-
<a href="#cl-1497">1497</a>
|
2416 |
-
<a href="#cl-1498">1498</a>
|
2417 |
-
<a href="#cl-1499">1499</a>
|
2418 |
-
<a href="#cl-1500">1500</a>
|
2419 |
-
<a href="#cl-1501">1501</a>
|
2420 |
-
<a href="#cl-1502">1502</a>
|
2421 |
-
<a href="#cl-1503">1503</a>
|
2422 |
-
<a href="#cl-1504">1504</a>
|
2423 |
-
<a href="#cl-1505">1505</a>
|
2424 |
-
<a href="#cl-1506">1506</a>
|
2425 |
-
<a href="#cl-1507">1507</a>
|
2426 |
-
<a href="#cl-1508">1508</a>
|
2427 |
-
<a href="#cl-1509">1509</a>
|
2428 |
-
<a href="#cl-1510">1510</a>
|
2429 |
-
<a href="#cl-1511">1511</a>
|
2430 |
-
<a href="#cl-1512">1512</a>
|
2431 |
-
<a href="#cl-1513">1513</a>
|
2432 |
-
<a href="#cl-1514">1514</a>
|
2433 |
-
<a href="#cl-1515">1515</a>
|
2434 |
-
<a href="#cl-1516">1516</a>
|
2435 |
-
<a href="#cl-1517">1517</a>
|
2436 |
-
<a href="#cl-1518">1518</a>
|
2437 |
-
<a href="#cl-1519">1519</a>
|
2438 |
-
<a href="#cl-1520">1520</a>
|
2439 |
-
<a href="#cl-1521">1521</a>
|
2440 |
-
<a href="#cl-1522">1522</a>
|
2441 |
-
<a href="#cl-1523">1523</a>
|
2442 |
-
<a href="#cl-1524">1524</a>
|
2443 |
-
<a href="#cl-1525">1525</a>
|
2444 |
-
<a href="#cl-1526">1526</a>
|
2445 |
-
<a href="#cl-1527">1527</a>
|
2446 |
-
<a href="#cl-1528">1528</a>
|
2447 |
-
<a href="#cl-1529">1529</a>
|
2448 |
-
<a href="#cl-1530">1530</a>
|
2449 |
-
<a href="#cl-1531">1531</a>
|
2450 |
-
<a href="#cl-1532">1532</a>
|
2451 |
-
<a href="#cl-1533">1533</a>
|
2452 |
-
<a href="#cl-1534">1534</a>
|
2453 |
-
<a href="#cl-1535">1535</a>
|
2454 |
-
<a href="#cl-1536">1536</a>
|
2455 |
-
<a href="#cl-1537">1537</a>
|
2456 |
-
<a href="#cl-1538">1538</a>
|
2457 |
-
<a href="#cl-1539">1539</a>
|
2458 |
-
<a href="#cl-1540">1540</a>
|
2459 |
-
<a href="#cl-1541">1541</a>
|
2460 |
-
<a href="#cl-1542">1542</a>
|
2461 |
-
<a href="#cl-1543">1543</a>
|
2462 |
-
<a href="#cl-1544">1544</a>
|
2463 |
-
<a href="#cl-1545">1545</a>
|
2464 |
-
<a href="#cl-1546">1546</a>
|
2465 |
-
<a href="#cl-1547">1547</a>
|
2466 |
-
<a href="#cl-1548">1548</a>
|
2467 |
-
<a href="#cl-1549">1549</a>
|
2468 |
-
<a href="#cl-1550">1550</a>
|
2469 |
-
<a href="#cl-1551">1551</a>
|
2470 |
-
<a href="#cl-1552">1552</a>
|
2471 |
-
<a href="#cl-1553">1553</a>
|
2472 |
-
<a href="#cl-1554">1554</a>
|
2473 |
-
<a href="#cl-1555">1555</a>
|
2474 |
-
<a href="#cl-1556">1556</a>
|
2475 |
-
<a href="#cl-1557">1557</a>
|
2476 |
-
<a href="#cl-1558">1558</a>
|
2477 |
-
<a href="#cl-1559">1559</a>
|
2478 |
-
<a href="#cl-1560">1560</a>
|
2479 |
-
<a href="#cl-1561">1561</a>
|
2480 |
-
<a href="#cl-1562">1562</a>
|
2481 |
-
<a href="#cl-1563">1563</a>
|
2482 |
-
<a href="#cl-1564">1564</a>
|
2483 |
-
<a href="#cl-1565">1565</a>
|
2484 |
-
<a href="#cl-1566">1566</a>
|
2485 |
-
<a href="#cl-1567">1567</a>
|
2486 |
-
<a href="#cl-1568">1568</a>
|
2487 |
-
<a href="#cl-1569">1569</a>
|
2488 |
-
<a href="#cl-1570">1570</a>
|
2489 |
-
<a href="#cl-1571">1571</a>
|
2490 |
-
<a href="#cl-1572">1572</a>
|
2491 |
-
<a href="#cl-1573">1573</a>
|
2492 |
-
<a href="#cl-1574">1574</a>
|
2493 |
-
<a href="#cl-1575">1575</a>
|
2494 |
-
<a href="#cl-1576">1576</a>
|
2495 |
-
<a href="#cl-1577">1577</a>
|
2496 |
-
<a href="#cl-1578">1578</a>
|
2497 |
-
<a href="#cl-1579">1579</a>
|
2498 |
-
<a href="#cl-1580">1580</a>
|
2499 |
-
<a href="#cl-1581">1581</a>
|
2500 |
-
<a href="#cl-1582">1582</a>
|
2501 |
-
<a href="#cl-1583">1583</a>
|
2502 |
-
<a href="#cl-1584">1584</a>
|
2503 |
-
<a href="#cl-1585">1585</a>
|
2504 |
-
<a href="#cl-1586">1586</a>
|
2505 |
-
<a href="#cl-1587">1587</a>
|
2506 |
-
<a href="#cl-1588">1588</a>
|
2507 |
-
<a href="#cl-1589">1589</a>
|
2508 |
-
<a href="#cl-1590">1590</a>
|
2509 |
-
<a href="#cl-1591">1591</a>
|
2510 |
-
<a href="#cl-1592">1592</a>
|
2511 |
-
<a href="#cl-1593">1593</a>
|
2512 |
-
<a href="#cl-1594">1594</a>
|
2513 |
-
<a href="#cl-1595">1595</a>
|
2514 |
-
<a href="#cl-1596">1596</a>
|
2515 |
-
<a href="#cl-1597">1597</a>
|
2516 |
-
<a href="#cl-1598">1598</a>
|
2517 |
-
<a href="#cl-1599">1599</a>
|
2518 |
-
<a href="#cl-1600">1600</a>
|
2519 |
-
<a href="#cl-1601">1601</a>
|
2520 |
-
<a href="#cl-1602">1602</a>
|
2521 |
-
<a href="#cl-1603">1603</a>
|
2522 |
-
<a href="#cl-1604">1604</a>
|
2523 |
-
<a href="#cl-1605">1605</a>
|
2524 |
-
<a href="#cl-1606">1606</a>
|
2525 |
-
<a href="#cl-1607">1607</a>
|
2526 |
-
<a href="#cl-1608">1608</a>
|
2527 |
-
<a href="#cl-1609">1609</a>
|
2528 |
-
<a href="#cl-1610">1610</a>
|
2529 |
-
<a href="#cl-1611">1611</a>
|
2530 |
-
<a href="#cl-1612">1612</a>
|
2531 |
-
<a href="#cl-1613">1613</a>
|
2532 |
-
<a href="#cl-1614">1614</a>
|
2533 |
-
<a href="#cl-1615">1615</a>
|
2534 |
-
<a href="#cl-1616">1616</a>
|
2535 |
-
<a href="#cl-1617">1617</a>
|
2536 |
-
<a href="#cl-1618">1618</a>
|
2537 |
-
<a href="#cl-1619">1619</a>
|
2538 |
-
<a href="#cl-1620">1620</a>
|
2539 |
-
<a href="#cl-1621">1621</a>
|
2540 |
-
<a href="#cl-1622">1622</a>
|
2541 |
-
<a href="#cl-1623">1623</a>
|
2542 |
-
<a href="#cl-1624">1624</a>
|
2543 |
-
<a href="#cl-1625">1625</a>
|
2544 |
-
<a href="#cl-1626">1626</a>
|
2545 |
-
<a href="#cl-1627">1627</a>
|
2546 |
-
<a href="#cl-1628">1628</a>
|
2547 |
-
<a href="#cl-1629">1629</a>
|
2548 |
-
<a href="#cl-1630">1630</a>
|
2549 |
-
<a href="#cl-1631">1631</a>
|
2550 |
-
<a href="#cl-1632">1632</a>
|
2551 |
-
<a href="#cl-1633">1633</a>
|
2552 |
-
<a href="#cl-1634">1634</a>
|
2553 |
-
<a href="#cl-1635">1635</a>
|
2554 |
-
<a href="#cl-1636">1636</a>
|
2555 |
-
<a href="#cl-1637">1637</a>
|
2556 |
-
<a href="#cl-1638">1638</a>
|
2557 |
-
<a href="#cl-1639">1639</a>
|
2558 |
-
<a href="#cl-1640">1640</a>
|
2559 |
-
<a href="#cl-1641">1641</a>
|
2560 |
-
<a href="#cl-1642">1642</a>
|
2561 |
-
<a href="#cl-1643">1643</a>
|
2562 |
-
<a href="#cl-1644">1644</a>
|
2563 |
-
<a href="#cl-1645">1645</a>
|
2564 |
-
<a href="#cl-1646">1646</a>
|
2565 |
-
<a href="#cl-1647">1647</a>
|
2566 |
-
<a href="#cl-1648">1648</a>
|
2567 |
-
<a href="#cl-1649">1649</a>
|
2568 |
-
<a href="#cl-1650">1650</a>
|
2569 |
-
<a href="#cl-1651">1651</a>
|
2570 |
-
<a href="#cl-1652">1652</a>
|
2571 |
-
<a href="#cl-1653">1653</a>
|
2572 |
-
<a href="#cl-1654">1654</a>
|
2573 |
-
<a href="#cl-1655">1655</a>
|
2574 |
-
<a href="#cl-1656">1656</a>
|
2575 |
-
<a href="#cl-1657">1657</a>
|
2576 |
-
<a href="#cl-1658">1658</a>
|
2577 |
-
<a href="#cl-1659">1659</a>
|
2578 |
-
<a href="#cl-1660">1660</a>
|
2579 |
-
<a href="#cl-1661">1661</a>
|
2580 |
-
<a href="#cl-1662">1662</a>
|
2581 |
-
<a href="#cl-1663">1663</a>
|
2582 |
-
<a href="#cl-1664">1664</a>
|
2583 |
-
<a href="#cl-1665">1665</a>
|
2584 |
-
<a href="#cl-1666">1666</a>
|
2585 |
-
<a href="#cl-1667">1667</a>
|
2586 |
-
<a href="#cl-1668">1668</a>
|
2587 |
-
<a href="#cl-1669">1669</a>
|
2588 |
-
<a href="#cl-1670">1670</a>
|
2589 |
-
<a href="#cl-1671">1671</a>
|
2590 |
-
<a href="#cl-1672">1672</a>
|
2591 |
-
<a href="#cl-1673">1673</a>
|
2592 |
-
<a href="#cl-1674">1674</a>
|
2593 |
-
<a href="#cl-1675">1675</a>
|
2594 |
-
<a href="#cl-1676">1676</a>
|
2595 |
-
<a href="#cl-1677">1677</a>
|
2596 |
-
<a href="#cl-1678">1678</a>
|
2597 |
-
<a href="#cl-1679">1679</a>
|
2598 |
-
<a href="#cl-1680">1680</a>
|
2599 |
-
<a href="#cl-1681">1681</a>
|
2600 |
-
<a href="#cl-1682">1682</a>
|
2601 |
-
<a href="#cl-1683">1683</a>
|
2602 |
-
<a href="#cl-1684">1684</a>
|
2603 |
-
<a href="#cl-1685">1685</a>
|
2604 |
-
<a href="#cl-1686">1686</a>
|
2605 |
-
<a href="#cl-1687">1687</a>
|
2606 |
-
<a href="#cl-1688">1688</a>
|
2607 |
-
<a href="#cl-1689">1689</a>
|
2608 |
-
<a href="#cl-1690">1690</a>
|
2609 |
-
<a href="#cl-1691">1691</a>
|
2610 |
-
<a href="#cl-1692">1692</a>
|
2611 |
-
<a href="#cl-1693">1693</a>
|
2612 |
-
<a href="#cl-1694">1694</a>
|
2613 |
-
<a href="#cl-1695">1695</a>
|
2614 |
-
<a href="#cl-1696">1696</a>
|
2615 |
-
<a href="#cl-1697">1697</a>
|
2616 |
-
<a href="#cl-1698">1698</a>
|
2617 |
-
<a href="#cl-1699">1699</a>
|
2618 |
-
<a href="#cl-1700">1700</a>
|
2619 |
-
<a href="#cl-1701">1701</a>
|
2620 |
-
<a href="#cl-1702">1702</a>
|
2621 |
-
<a href="#cl-1703">1703</a>
|
2622 |
-
<a href="#cl-1704">1704</a>
|
2623 |
-
<a href="#cl-1705">1705</a>
|
2624 |
-
<a href="#cl-1706">1706</a>
|
2625 |
-
<a href="#cl-1707">1707</a>
|
2626 |
-
<a href="#cl-1708">1708</a>
|
2627 |
-
<a href="#cl-1709">1709</a>
|
2628 |
-
<a href="#cl-1710">1710</a>
|
2629 |
-
<a href="#cl-1711">1711</a>
|
2630 |
-
<a href="#cl-1712">1712</a>
|
2631 |
-
<a href="#cl-1713">1713</a>
|
2632 |
-
<a href="#cl-1714">1714</a>
|
2633 |
-
<a href="#cl-1715">1715</a>
|
2634 |
-
<a href="#cl-1716">1716</a>
|
2635 |
-
<a href="#cl-1717">1717</a>
|
2636 |
-
<a href="#cl-1718">1718</a>
|
2637 |
-
<a href="#cl-1719">1719</a>
|
2638 |
-
<a href="#cl-1720">1720</a>
|
2639 |
-
<a href="#cl-1721">1721</a>
|
2640 |
-
<a href="#cl-1722">1722</a>
|
2641 |
-
<a href="#cl-1723">1723</a>
|
2642 |
-
<a href="#cl-1724">1724</a>
|
2643 |
-
<a href="#cl-1725">1725</a>
|
2644 |
-
<a href="#cl-1726">1726</a>
|
2645 |
-
<a href="#cl-1727">1727</a>
|
2646 |
-
<a href="#cl-1728">1728</a>
|
2647 |
-
<a href="#cl-1729">1729</a>
|
2648 |
-
<a href="#cl-1730">1730</a>
|
2649 |
-
<a href="#cl-1731">1731</a>
|
2650 |
-
<a href="#cl-1732">1732</a>
|
2651 |
-
<a href="#cl-1733">1733</a>
|
2652 |
-
<a href="#cl-1734">1734</a>
|
2653 |
-
<a href="#cl-1735">1735</a>
|
2654 |
-
<a href="#cl-1736">1736</a>
|
2655 |
-
<a href="#cl-1737">1737</a>
|
2656 |
-
<a href="#cl-1738">1738</a>
|
2657 |
-
<a href="#cl-1739">1739</a>
|
2658 |
-
<a href="#cl-1740">1740</a>
|
2659 |
-
<a href="#cl-1741">1741</a>
|
2660 |
-
<a href="#cl-1742">1742</a>
|
2661 |
-
<a href="#cl-1743">1743</a>
|
2662 |
-
<a href="#cl-1744">1744</a>
|
2663 |
-
<a href="#cl-1745">1745</a>
|
2664 |
-
<a href="#cl-1746">1746</a>
|
2665 |
-
<a href="#cl-1747">1747</a>
|
2666 |
-
<a href="#cl-1748">1748</a>
|
2667 |
-
<a href="#cl-1749">1749</a>
|
2668 |
-
<a href="#cl-1750">1750</a>
|
2669 |
-
<a href="#cl-1751">1751</a>
|
2670 |
-
<a href="#cl-1752">1752</a>
|
2671 |
-
<a href="#cl-1753">1753</a>
|
2672 |
-
<a href="#cl-1754">1754</a>
|
2673 |
-
<a href="#cl-1755">1755</a>
|
2674 |
-
<a href="#cl-1756">1756</a>
|
2675 |
-
<a href="#cl-1757">1757</a>
|
2676 |
-
<a href="#cl-1758">1758</a>
|
2677 |
-
<a href="#cl-1759">1759</a>
|
2678 |
-
<a href="#cl-1760">1760</a>
|
2679 |
-
<a href="#cl-1761">1761</a>
|
2680 |
-
<a href="#cl-1762">1762</a>
|
2681 |
-
<a href="#cl-1763">1763</a>
|
2682 |
-
<a href="#cl-1764">1764</a>
|
2683 |
-
<a href="#cl-1765">1765</a>
|
2684 |
-
<a href="#cl-1766">1766</a>
|
2685 |
-
<a href="#cl-1767">1767</a>
|
2686 |
-
<a href="#cl-1768">1768</a>
|
2687 |
-
<a href="#cl-1769">1769</a>
|
2688 |
-
<a href="#cl-1770">1770</a>
|
2689 |
-
<a href="#cl-1771">1771</a>
|
2690 |
-
<a href="#cl-1772">1772</a>
|
2691 |
-
<a href="#cl-1773">1773</a>
|
2692 |
-
<a href="#cl-1774">1774</a>
|
2693 |
-
<a href="#cl-1775">1775</a>
|
2694 |
-
<a href="#cl-1776">1776</a>
|
2695 |
-
<a href="#cl-1777">1777</a>
|
2696 |
-
<a href="#cl-1778">1778</a>
|
2697 |
-
<a href="#cl-1779">1779</a>
|
2698 |
-
<a href="#cl-1780">1780</a>
|
2699 |
-
<a href="#cl-1781">1781</a>
|
2700 |
-
<a href="#cl-1782">1782</a>
|
2701 |
-
<a href="#cl-1783">1783</a>
|
2702 |
-
<a href="#cl-1784">1784</a>
|
2703 |
-
<a href="#cl-1785">1785</a>
|
2704 |
-
<a href="#cl-1786">1786</a>
|
2705 |
-
<a href="#cl-1787">1787</a>
|
2706 |
-
<a href="#cl-1788">1788</a>
|
2707 |
-
<a href="#cl-1789">1789</a>
|
2708 |
-
<a href="#cl-1790">1790</a>
|
2709 |
-
<a href="#cl-1791">1791</a>
|
2710 |
-
<a href="#cl-1792">1792</a>
|
2711 |
-
<a href="#cl-1793">1793</a>
|
2712 |
-
<a href="#cl-1794">1794</a>
|
2713 |
-
<a href="#cl-1795">1795</a>
|
2714 |
-
<a href="#cl-1796">1796</a>
|
2715 |
-
<a href="#cl-1797">1797</a>
|
2716 |
-
<a href="#cl-1798">1798</a>
|
2717 |
-
<a href="#cl-1799">1799</a>
|
2718 |
-
<a href="#cl-1800">1800</a>
|
2719 |
-
<a href="#cl-1801">1801</a>
|
2720 |
-
<a href="#cl-1802">1802</a>
|
2721 |
-
<a href="#cl-1803">1803</a>
|
2722 |
-
<a href="#cl-1804">1804</a>
|
2723 |
-
<a href="#cl-1805">1805</a>
|
2724 |
-
<a href="#cl-1806">1806</a>
|
2725 |
-
<a href="#cl-1807">1807</a>
|
2726 |
-
<a href="#cl-1808">1808</a>
|
2727 |
-
<a href="#cl-1809">1809</a>
|
2728 |
-
<a href="#cl-1810">1810</a>
|
2729 |
-
<a href="#cl-1811">1811</a>
|
2730 |
-
<a href="#cl-1812">1812</a>
|
2731 |
-
<a href="#cl-1813">1813</a>
|
2732 |
-
<a href="#cl-1814">1814</a>
|
2733 |
-
<a href="#cl-1815">1815</a>
|
2734 |
-
<a href="#cl-1816">1816</a>
|
2735 |
-
<a href="#cl-1817">1817</a>
|
2736 |
-
<a href="#cl-1818">1818</a>
|
2737 |
-
<a href="#cl-1819">1819</a>
|
2738 |
-
<a href="#cl-1820">1820</a>
|
2739 |
-
<a href="#cl-1821">1821</a>
|
2740 |
-
<a href="#cl-1822">1822</a>
|
2741 |
-
<a href="#cl-1823">1823</a>
|
2742 |
-
<a href="#cl-1824">1824</a>
|
2743 |
-
<a href="#cl-1825">1825</a>
|
2744 |
-
<a href="#cl-1826">1826</a>
|
2745 |
-
<a href="#cl-1827">1827</a>
|
2746 |
-
<a href="#cl-1828">1828</a>
|
2747 |
-
<a href="#cl-1829">1829</a>
|
2748 |
-
<a href="#cl-1830">1830</a>
|
2749 |
-
<a href="#cl-1831">1831</a>
|
2750 |
-
<a href="#cl-1832">1832</a>
|
2751 |
-
<a href="#cl-1833">1833</a>
|
2752 |
-
<a href="#cl-1834">1834</a>
|
2753 |
-
<a href="#cl-1835">1835</a>
|
2754 |
-
<a href="#cl-1836">1836</a>
|
2755 |
-
<a href="#cl-1837">1837</a>
|
2756 |
-
<a href="#cl-1838">1838</a>
|
2757 |
-
<a href="#cl-1839">1839</a>
|
2758 |
-
<a href="#cl-1840">1840</a>
|
2759 |
-
<a href="#cl-1841">1841</a>
|
2760 |
-
<a href="#cl-1842">1842</a>
|
2761 |
-
<a href="#cl-1843">1843</a>
|
2762 |
-
<a href="#cl-1844">1844</a>
|
2763 |
-
<a href="#cl-1845">1845</a>
|
2764 |
-
<a href="#cl-1846">1846</a>
|
2765 |
-
<a href="#cl-1847">1847</a>
|
2766 |
-
<a href="#cl-1848">1848</a>
|
2767 |
-
<a href="#cl-1849">1849</a>
|
2768 |
-
<a href="#cl-1850">1850</a>
|
2769 |
-
<a href="#cl-1851">1851</a>
|
2770 |
-
<a href="#cl-1852">1852</a>
|
2771 |
-
<a href="#cl-1853">1853</a>
|
2772 |
-
<a href="#cl-1854">1854</a>
|
2773 |
-
<a href="#cl-1855">1855</a>
|
2774 |
-
<a href="#cl-1856">1856</a>
|
2775 |
-
<a href="#cl-1857">1857</a>
|
2776 |
-
<a href="#cl-1858">1858</a>
|
2777 |
-
<a href="#cl-1859">1859</a>
|
2778 |
-
<a href="#cl-1860">1860</a>
|
2779 |
-
<a href="#cl-1861">1861</a>
|
2780 |
-
<a href="#cl-1862">1862</a>
|
2781 |
-
<a href="#cl-1863">1863</a>
|
2782 |
-
<a href="#cl-1864">1864</a>
|
2783 |
-
<a href="#cl-1865">1865</a>
|
2784 |
-
<a href="#cl-1866">1866</a>
|
2785 |
-
<a href="#cl-1867">1867</a>
|
2786 |
-
<a href="#cl-1868">1868</a>
|
2787 |
-
<a href="#cl-1869">1869</a>
|
2788 |
-
<a href="#cl-1870">1870</a>
|
2789 |
-
<a href="#cl-1871">1871</a>
|
2790 |
-
<a href="#cl-1872">1872</a>
|
2791 |
-
<a href="#cl-1873">1873</a>
|
2792 |
-
<a href="#cl-1874">1874</a>
|
2793 |
-
<a href="#cl-1875">1875</a>
|
2794 |
-
<a href="#cl-1876">1876</a>
|
2795 |
-
<a href="#cl-1877">1877</a>
|
2796 |
-
<a href="#cl-1878">1878</a>
|
2797 |
-
<a href="#cl-1879">1879</a>
|
2798 |
-
<a href="#cl-1880">1880</a>
|
2799 |
-
<a href="#cl-1881">1881</a>
|
2800 |
-
<a href="#cl-1882">1882</a>
|
2801 |
-
<a href="#cl-1883">1883</a>
|
2802 |
-
<a href="#cl-1884">1884</a>
|
2803 |
-
<a href="#cl-1885">1885</a>
|
2804 |
-
<a href="#cl-1886">1886</a>
|
2805 |
-
<a href="#cl-1887">1887</a>
|
2806 |
-
<a href="#cl-1888">1888</a>
|
2807 |
-
<a href="#cl-1889">1889</a>
|
2808 |
-
<a href="#cl-1890">1890</a>
|
2809 |
-
<a href="#cl-1891">1891</a>
|
2810 |
-
<a href="#cl-1892">1892</a>
|
2811 |
-
<a href="#cl-1893">1893</a>
|
2812 |
-
<a href="#cl-1894">1894</a>
|
2813 |
-
<a href="#cl-1895">1895</a>
|
2814 |
-
<a href="#cl-1896">1896</a>
|
2815 |
-
<a href="#cl-1897">1897</a>
|
2816 |
-
<a href="#cl-1898">1898</a>
|
2817 |
-
<a href="#cl-1899">1899</a>
|
2818 |
-
<a href="#cl-1900">1900</a>
|
2819 |
-
<a href="#cl-1901">1901</a>
|
2820 |
-
<a href="#cl-1902">1902</a>
|
2821 |
-
<a href="#cl-1903">1903</a>
|
2822 |
-
<a href="#cl-1904">1904</a>
|
2823 |
-
<a href="#cl-1905">1905</a>
|
2824 |
-
<a href="#cl-1906">1906</a>
|
2825 |
-
<a href="#cl-1907">1907</a>
|
2826 |
-
<a href="#cl-1908">1908</a>
|
2827 |
-
<a href="#cl-1909">1909</a>
|
2828 |
-
<a href="#cl-1910">1910</a>
|
2829 |
-
<a href="#cl-1911">1911</a>
|
2830 |
-
<a href="#cl-1912">1912</a>
|
2831 |
-
<a href="#cl-1913">1913</a>
|
2832 |
-
<a href="#cl-1914">1914</a>
|
2833 |
-
<a href="#cl-1915">1915</a>
|
2834 |
-
<a href="#cl-1916">1916</a>
|
2835 |
-
<a href="#cl-1917">1917</a>
|
2836 |
-
<a href="#cl-1918">1918</a>
|
2837 |
-
<a href="#cl-1919">1919</a>
|
2838 |
-
<a href="#cl-1920">1920</a>
|
2839 |
-
<a href="#cl-1921">1921</a>
|
2840 |
-
<a href="#cl-1922">1922</a>
|
2841 |
-
<a href="#cl-1923">1923</a>
|
2842 |
-
<a href="#cl-1924">1924</a>
|
2843 |
-
<a href="#cl-1925">1925</a>
|
2844 |
-
<a href="#cl-1926">1926</a>
|
2845 |
-
<a href="#cl-1927">1927</a>
|
2846 |
-
<a href="#cl-1928">1928</a>
|
2847 |
-
<a href="#cl-1929">1929</a>
|
2848 |
-
<a href="#cl-1930">1930</a>
|
2849 |
-
<a href="#cl-1931">1931</a>
|
2850 |
-
<a href="#cl-1932">1932</a>
|
2851 |
-
<a href="#cl-1933">1933</a>
|
2852 |
-
<a href="#cl-1934">1934</a>
|
2853 |
-
<a href="#cl-1935">1935</a>
|
2854 |
-
<a href="#cl-1936">1936</a>
|
2855 |
-
<a href="#cl-1937">1937</a>
|
2856 |
-
<a href="#cl-1938">1938</a>
|
2857 |
-
<a href="#cl-1939">1939</a>
|
2858 |
-
<a href="#cl-1940">1940</a>
|
2859 |
-
<a href="#cl-1941">1941</a>
|
2860 |
-
<a href="#cl-1942">1942</a>
|
2861 |
-
<a href="#cl-1943">1943</a>
|
2862 |
-
<a href="#cl-1944">1944</a>
|
2863 |
-
<a href="#cl-1945">1945</a>
|
2864 |
-
<a href="#cl-1946">1946</a>
|
2865 |
-
<a href="#cl-1947">1947</a>
|
2866 |
-
<a href="#cl-1948">1948</a>
|
2867 |
-
<a href="#cl-1949">1949</a>
|
2868 |
-
<a href="#cl-1950">1950</a>
|
2869 |
-
<a href="#cl-1951">1951</a>
|
2870 |
-
<a href="#cl-1952">1952</a>
|
2871 |
-
<a href="#cl-1953">1953</a>
|
2872 |
-
<a href="#cl-1954">1954</a>
|
2873 |
-
<a href="#cl-1955">1955</a>
|
2874 |
-
<a href="#cl-1956">1956</a>
|
2875 |
-
<a href="#cl-1957">1957</a>
|
2876 |
-
<a href="#cl-1958">1958</a>
|
2877 |
-
<a href="#cl-1959">1959</a>
|
2878 |
-
<a href="#cl-1960">1960</a>
|
2879 |
-
<a href="#cl-1961">1961</a>
|
2880 |
-
<a href="#cl-1962">1962</a>
|
2881 |
-
<a href="#cl-1963">1963</a>
|
2882 |
-
<a href="#cl-1964">1964</a>
|
2883 |
-
<a href="#cl-1965">1965</a>
|
2884 |
-
<a href="#cl-1966">1966</a>
|
2885 |
-
<a href="#cl-1967">1967</a>
|
2886 |
-
<a href="#cl-1968">1968</a>
|
2887 |
-
<a href="#cl-1969">1969</a>
|
2888 |
-
<a href="#cl-1970">1970</a>
|
2889 |
-
<a href="#cl-1971">1971</a>
|
2890 |
-
<a href="#cl-1972">1972</a>
|
2891 |
-
<a href="#cl-1973">1973</a>
|
2892 |
-
<a href="#cl-1974">1974</a>
|
2893 |
-
<a href="#cl-1975">1975</a>
|
2894 |
-
<a href="#cl-1976">1976</a>
|
2895 |
-
<a href="#cl-1977">1977</a>
|
2896 |
-
<a href="#cl-1978">1978</a>
|
2897 |
-
<a href="#cl-1979">1979</a>
|
2898 |
-
<a href="#cl-1980">1980</a>
|
2899 |
-
<a href="#cl-1981">1981</a>
|
2900 |
-
<a href="#cl-1982">1982</a>
|
2901 |
-
<a href="#cl-1983">1983</a>
|
2902 |
-
<a href="#cl-1984">1984</a>
|
2903 |
-
<a href="#cl-1985">1985</a>
|
2904 |
-
<a href="#cl-1986">1986</a>
|
2905 |
-
<a href="#cl-1987">1987</a>
|
2906 |
-
<a href="#cl-1988">1988</a>
|
2907 |
-
<a href="#cl-1989">1989</a>
|
2908 |
-
<a href="#cl-1990">1990</a>
|
2909 |
-
<a href="#cl-1991">1991</a>
|
2910 |
-
<a href="#cl-1992">1992</a>
|
2911 |
-
<a href="#cl-1993">1993</a>
|
2912 |
-
<a href="#cl-1994">1994</a>
|
2913 |
-
<a href="#cl-1995">1995</a>
|
2914 |
-
<a href="#cl-1996">1996</a>
|
2915 |
-
<a href="#cl-1997">1997</a>
|
2916 |
-
<a href="#cl-1998">1998</a>
|
2917 |
-
<a href="#cl-1999">1999</a>
|
2918 |
-
<a href="#cl-2000">2000</a>
|
2919 |
-
<a href="#cl-2001">2001</a>
|
2920 |
-
<a href="#cl-2002">2002</a>
|
2921 |
-
<a href="#cl-2003">2003</a>
|
2922 |
-
<a href="#cl-2004">2004</a>
|
2923 |
-
<a href="#cl-2005">2005</a>
|
2924 |
-
<a href="#cl-2006">2006</a>
|
2925 |
-
<a href="#cl-2007">2007</a>
|
2926 |
-
<a href="#cl-2008">2008</a>
|
2927 |
-
<a href="#cl-2009">2009</a>
|
2928 |
-
<a href="#cl-2010">2010</a>
|
2929 |
-
<a href="#cl-2011">2011</a>
|
2930 |
-
<a href="#cl-2012">2012</a>
|
2931 |
-
<a href="#cl-2013">2013</a>
|
2932 |
-
<a href="#cl-2014">2014</a>
|
2933 |
-
<a href="#cl-2015">2015</a>
|
2934 |
-
<a href="#cl-2016">2016</a>
|
2935 |
-
<a href="#cl-2017">2017</a>
|
2936 |
-
<a href="#cl-2018">2018</a>
|
2937 |
-
<a href="#cl-2019">2019</a>
|
2938 |
-
<a href="#cl-2020">2020</a>
|
2939 |
-
<a href="#cl-2021">2021</a>
|
2940 |
-
<a href="#cl-2022">2022</a>
|
2941 |
-
<a href="#cl-2023">2023</a>
|
2942 |
-
<a href="#cl-2024">2024</a>
|
2943 |
-
<a href="#cl-2025">2025</a>
|
2944 |
-
<a href="#cl-2026">2026</a>
|
2945 |
-
<a href="#cl-2027">2027</a>
|
2946 |
-
<a href="#cl-2028">2028</a>
|
2947 |
-
<a href="#cl-2029">2029</a>
|
2948 |
-
<a href="#cl-2030">2030</a>
|
2949 |
-
<a href="#cl-2031">2031</a>
|
2950 |
-
<a href="#cl-2032">2032</a>
|
2951 |
-
<a href="#cl-2033">2033</a>
|
2952 |
-
<a href="#cl-2034">2034</a>
|
2953 |
-
<a href="#cl-2035">2035</a>
|
2954 |
-
<a href="#cl-2036">2036</a>
|
2955 |
-
<a href="#cl-2037">2037</a>
|
2956 |
-
<a href="#cl-2038">2038</a>
|
2957 |
-
<a href="#cl-2039">2039</a>
|
2958 |
-
<a href="#cl-2040">2040</a>
|
2959 |
-
<a href="#cl-2041">2041</a>
|
2960 |
-
<a href="#cl-2042">2042</a>
|
2961 |
-
<a href="#cl-2043">2043</a>
|
2962 |
-
<a href="#cl-2044">2044</a>
|
2963 |
-
<a href="#cl-2045">2045</a>
|
2964 |
-
<a href="#cl-2046">2046</a>
|
2965 |
-
<a href="#cl-2047">2047</a>
|
2966 |
-
<a href="#cl-2048">2048</a>
|
2967 |
-
<a href="#cl-2049">2049</a>
|
2968 |
-
<a href="#cl-2050">2050</a>
|
2969 |
-
<a href="#cl-2051">2051</a>
|
2970 |
-
<a href="#cl-2052">2052</a>
|
2971 |
-
<a href="#cl-2053">2053</a>
|
2972 |
-
<a href="#cl-2054">2054</a>
|
2973 |
-
<a href="#cl-2055">2055</a>
|
2974 |
-
<a href="#cl-2056">2056</a>
|
2975 |
-
<a href="#cl-2057">2057</a>
|
2976 |
-
<a href="#cl-2058">2058</a>
|
2977 |
-
<a href="#cl-2059">2059</a>
|
2978 |
-
<a href="#cl-2060">2060</a>
|
2979 |
-
<a href="#cl-2061">2061</a>
|
2980 |
-
<a href="#cl-2062">2062</a>
|
2981 |
-
<a href="#cl-2063">2063</a>
|
2982 |
-
<a href="#cl-2064">2064</a>
|
2983 |
-
<a href="#cl-2065">2065</a>
|
2984 |
-
<a href="#cl-2066">2066</a>
|
2985 |
-
<a href="#cl-2067">2067</a>
|
2986 |
-
<a href="#cl-2068">2068</a>
|
2987 |
-
<a href="#cl-2069">2069</a>
|
2988 |
-
<a href="#cl-2070">2070</a>
|
2989 |
-
<a href="#cl-2071">2071</a>
|
2990 |
-
<a href="#cl-2072">2072</a>
|
2991 |
-
<a href="#cl-2073">2073</a>
|
2992 |
-
<a href="#cl-2074">2074</a>
|
2993 |
-
<a href="#cl-2075">2075</a>
|
2994 |
-
<a href="#cl-2076">2076</a>
|
2995 |
-
<a href="#cl-2077">2077</a>
|
2996 |
-
<a href="#cl-2078">2078</a>
|
2997 |
-
<a href="#cl-2079">2079</a>
|
2998 |
-
<a href="#cl-2080">2080</a>
|
2999 |
-
<a href="#cl-2081">2081</a>
|
3000 |
-
<a href="#cl-2082">2082</a>
|
3001 |
-
<a href="#cl-2083">2083</a>
|
3002 |
-
<a href="#cl-2084">2084</a>
|
3003 |
-
<a href="#cl-2085">2085</a>
|
3004 |
-
<a href="#cl-2086">2086</a>
|
3005 |
-
<a href="#cl-2087">2087</a>
|
3006 |
-
<a href="#cl-2088">2088</a>
|
3007 |
-
<a href="#cl-2089">2089</a>
|
3008 |
-
<a href="#cl-2090">2090</a>
|
3009 |
-
<a href="#cl-2091">2091</a>
|
3010 |
-
<a href="#cl-2092">2092</a>
|
3011 |
-
<a href="#cl-2093">2093</a>
|
3012 |
-
<a href="#cl-2094">2094</a>
|
3013 |
-
<a href="#cl-2095">2095</a>
|
3014 |
-
<a href="#cl-2096">2096</a>
|
3015 |
-
<a href="#cl-2097">2097</a>
|
3016 |
-
<a href="#cl-2098">2098</a>
|
3017 |
-
<a href="#cl-2099">2099</a>
|
3018 |
-
<a href="#cl-2100">2100</a>
|
3019 |
-
<a href="#cl-2101">2101</a>
|
3020 |
-
<a href="#cl-2102">2102</a>
|
3021 |
-
<a href="#cl-2103">2103</a>
|
3022 |
-
<a href="#cl-2104">2104</a>
|
3023 |
-
<a href="#cl-2105">2105</a>
|
3024 |
-
<a href="#cl-2106">2106</a>
|
3025 |
-
<a href="#cl-2107">2107</a>
|
3026 |
-
<a href="#cl-2108">2108</a>
|
3027 |
-
<a href="#cl-2109">2109</a>
|
3028 |
-
<a href="#cl-2110">2110</a>
|
3029 |
-
<a href="#cl-2111">2111</a>
|
3030 |
-
<a href="#cl-2112">2112</a>
|
3031 |
-
<a href="#cl-2113">2113</a>
|
3032 |
-
<a href="#cl-2114">2114</a>
|
3033 |
-
<a href="#cl-2115">2115</a>
|
3034 |
-
<a href="#cl-2116">2116</a>
|
3035 |
-
<a href="#cl-2117">2117</a>
|
3036 |
-
<a href="#cl-2118">2118</a>
|
3037 |
-
<a href="#cl-2119">2119</a>
|
3038 |
-
<a href="#cl-2120">2120</a>
|
3039 |
-
<a href="#cl-2121">2121</a>
|
3040 |
-
<a href="#cl-2122">2122</a>
|
3041 |
-
<a href="#cl-2123">2123</a>
|
3042 |
-
<a href="#cl-2124">2124</a>
|
3043 |
-
<a href="#cl-2125">2125</a>
|
3044 |
-
<a href="#cl-2126">2126</a>
|
3045 |
-
<a href="#cl-2127">2127</a>
|
3046 |
-
<a href="#cl-2128">2128</a>
|
3047 |
-
<a href="#cl-2129">2129</a>
|
3048 |
-
<a href="#cl-2130">2130</a>
|
3049 |
-
<a href="#cl-2131">2131</a>
|
3050 |
-
<a href="#cl-2132">2132</a>
|
3051 |
-
<a href="#cl-2133">2133</a>
|
3052 |
-
<a href="#cl-2134">2134</a>
|
3053 |
-
<a href="#cl-2135">2135</a>
|
3054 |
-
<a href="#cl-2136">2136</a>
|
3055 |
-
<a href="#cl-2137">2137</a>
|
3056 |
-
<a href="#cl-2138">2138</a>
|
3057 |
-
<a href="#cl-2139">2139</a>
|
3058 |
-
<a href="#cl-2140">2140</a>
|
3059 |
-
<a href="#cl-2141">2141</a>
|
3060 |
-
<a href="#cl-2142">2142</a>
|
3061 |
-
<a href="#cl-2143">2143</a>
|
3062 |
-
<a href="#cl-2144">2144</a>
|
3063 |
-
<a href="#cl-2145">2145</a>
|
3064 |
-
<a href="#cl-2146">2146</a>
|
3065 |
-
<a href="#cl-2147">2147</a>
|
3066 |
-
<a href="#cl-2148">2148</a>
|
3067 |
-
<a href="#cl-2149">2149</a>
|
3068 |
-
<a href="#cl-2150">2150</a>
|
3069 |
-
<a href="#cl-2151">2151</a>
|
3070 |
-
<a href="#cl-2152">2152</a>
|
3071 |
-
<a href="#cl-2153">2153</a>
|
3072 |
-
<a href="#cl-2154">2154</a>
|
3073 |
-
<a href="#cl-2155">2155</a>
|
3074 |
-
<a href="#cl-2156">2156</a>
|
3075 |
-
<a href="#cl-2157">2157</a>
|
3076 |
-
<a href="#cl-2158">2158</a>
|
3077 |
-
<a href="#cl-2159">2159</a>
|
3078 |
-
<a href="#cl-2160">2160</a>
|
3079 |
-
<a href="#cl-2161">2161</a>
|
3080 |
-
<a href="#cl-2162">2162</a>
|
3081 |
-
<a href="#cl-2163">2163</a>
|
3082 |
-
<a href="#cl-2164">2164</a>
|
3083 |
-
<a href="#cl-2165">2165</a>
|
3084 |
-
<a href="#cl-2166">2166</a>
|
3085 |
-
<a href="#cl-2167">2167</a>
|
3086 |
-
<a href="#cl-2168">2168</a>
|
3087 |
-
<a href="#cl-2169">2169</a>
|
3088 |
-
<a href="#cl-2170">2170</a>
|
3089 |
-
<a href="#cl-2171">2171</a>
|
3090 |
-
<a href="#cl-2172">2172</a>
|
3091 |
-
<a href="#cl-2173">2173</a>
|
3092 |
-
<a href="#cl-2174">2174</a>
|
3093 |
-
<a href="#cl-2175">2175</a>
|
3094 |
-
<a href="#cl-2176">2176</a>
|
3095 |
-
<a href="#cl-2177">2177</a>
|
3096 |
-
<a href="#cl-2178">2178</a>
|
3097 |
-
<a href="#cl-2179">2179</a>
|
3098 |
-
<a href="#cl-2180">2180</a>
|
3099 |
-
<a href="#cl-2181">2181</a>
|
3100 |
-
<a href="#cl-2182">2182</a>
|
3101 |
-
<a href="#cl-2183">2183</a>
|
3102 |
-
<a href="#cl-2184">2184</a>
|
3103 |
-
<a href="#cl-2185">2185</a>
|
3104 |
-
<a href="#cl-2186">2186</a>
|
3105 |
-
<a href="#cl-2187">2187</a>
|
3106 |
-
<a href="#cl-2188">2188</a>
|
3107 |
-
<a href="#cl-2189">2189</a>
|
3108 |
-
<a href="#cl-2190">2190</a>
|
3109 |
-
<a href="#cl-2191">2191</a>
|
3110 |
-
<a href="#cl-2192">2192</a>
|
3111 |
-
<a href="#cl-2193">2193</a>
|
3112 |
-
<a href="#cl-2194">2194</a>
|
3113 |
-
<a href="#cl-2195">2195</a>
|
3114 |
-
<a href="#cl-2196">2196</a>
|
3115 |
-
<a href="#cl-2197">2197</a>
|
3116 |
-
<a href="#cl-2198">2198</a>
|
3117 |
-
<a href="#cl-2199">2199</a>
|
3118 |
-
<a href="#cl-2200">2200</a>
|
3119 |
-
<a href="#cl-2201">2201</a>
|
3120 |
-
<a href="#cl-2202">2202</a>
|
3121 |
-
<a href="#cl-2203">2203</a>
|
3122 |
-
<a href="#cl-2204">2204</a>
|
3123 |
-
<a href="#cl-2205">2205</a>
|
3124 |
-
<a href="#cl-2206">2206</a>
|
3125 |
-
<a href="#cl-2207">2207</a>
|
3126 |
-
<a href="#cl-2208">2208</a>
|
3127 |
-
<a href="#cl-2209">2209</a>
|
3128 |
-
<a href="#cl-2210">2210</a>
|
3129 |
-
<a href="#cl-2211">2211</a>
|
3130 |
-
<a href="#cl-2212">2212</a>
|
3131 |
-
<a href="#cl-2213">2213</a>
|
3132 |
-
<a href="#cl-2214">2214</a>
|
3133 |
-
<a href="#cl-2215">2215</a>
|
3134 |
-
<a href="#cl-2216">2216</a>
|
3135 |
-
<a href="#cl-2217">2217</a>
|
3136 |
-
<a href="#cl-2218">2218</a>
|
3137 |
-
<a href="#cl-2219">2219</a>
|
3138 |
-
<a href="#cl-2220">2220</a>
|
3139 |
-
<a href="#cl-2221">2221</a>
|
3140 |
-
<a href="#cl-2222">2222</a>
|
3141 |
-
<a href="#cl-2223">2223</a>
|
3142 |
-
<a href="#cl-2224">2224</a>
|
3143 |
-
<a href="#cl-2225">2225</a>
|
3144 |
-
<a href="#cl-2226">2226</a>
|
3145 |
-
<a href="#cl-2227">2227</a>
|
3146 |
-
<a href="#cl-2228">2228</a>
|
3147 |
-
<a href="#cl-2229">2229</a>
|
3148 |
-
<a href="#cl-2230">2230</a>
|
3149 |
-
<a href="#cl-2231">2231</a>
|
3150 |
-
<a href="#cl-2232">2232</a>
|
3151 |
-
<a href="#cl-2233">2233</a>
|
3152 |
-
<a href="#cl-2234">2234</a>
|
3153 |
-
<a href="#cl-2235">2235</a>
|
3154 |
-
<a href="#cl-2236">2236</a>
|
3155 |
-
<a href="#cl-2237">2237</a>
|
3156 |
-
<a href="#cl-2238">2238</a>
|
3157 |
-
<a href="#cl-2239">2239</a>
|
3158 |
-
<a href="#cl-2240">2240</a>
|
3159 |
-
<a href="#cl-2241">2241</a>
|
3160 |
-
<a href="#cl-2242">2242</a>
|
3161 |
-
<a href="#cl-2243">2243</a>
|
3162 |
-
<a href="#cl-2244">2244</a>
|
3163 |
-
<a href="#cl-2245">2245</a>
|
3164 |
-
<a href="#cl-2246">2246</a>
|
3165 |
-
<a href="#cl-2247">2247</a>
|
3166 |
-
<a href="#cl-2248">2248</a>
|
3167 |
-
<a href="#cl-2249">2249</a>
|
3168 |
-
<a href="#cl-2250">2250</a>
|
3169 |
-
<a href="#cl-2251">2251</a>
|
3170 |
-
<a href="#cl-2252">2252</a>
|
3171 |
-
<a href="#cl-2253">2253</a>
|
3172 |
-
<a href="#cl-2254">2254</a>
|
3173 |
-
<a href="#cl-2255">2255</a>
|
3174 |
-
<a href="#cl-2256">2256</a>
|
3175 |
-
<a href="#cl-2257">2257</a>
|
3176 |
-
<a href="#cl-2258">2258</a>
|
3177 |
-
<a href="#cl-2259">2259</a>
|
3178 |
-
<a href="#cl-2260">2260</a>
|
3179 |
-
<a href="#cl-2261">2261</a>
|
3180 |
-
<a href="#cl-2262">2262</a>
|
3181 |
-
<a href="#cl-2263">2263</a>
|
3182 |
-
<a href="#cl-2264">2264</a>
|
3183 |
-
<a href="#cl-2265">2265</a>
|
3184 |
-
<a href="#cl-2266">2266</a>
|
3185 |
-
<a href="#cl-2267">2267</a>
|
3186 |
-
<a href="#cl-2268">2268</a>
|
3187 |
-
<a href="#cl-2269">2269</a>
|
3188 |
-
<a href="#cl-2270">2270</a>
|
3189 |
-
<a href="#cl-2271">2271</a>
|
3190 |
-
<a href="#cl-2272">2272</a>
|
3191 |
-
<a href="#cl-2273">2273</a>
|
3192 |
-
<a href="#cl-2274">2274</a>
|
3193 |
-
<a href="#cl-2275">2275</a>
|
3194 |
-
<a href="#cl-2276">2276</a>
|
3195 |
-
<a href="#cl-2277">2277</a>
|
3196 |
-
<a href="#cl-2278">2278</a>
|
3197 |
-
<a href="#cl-2279">2279</a>
|
3198 |
-
<a href="#cl-2280">2280</a>
|
3199 |
-
<a href="#cl-2281">2281</a>
|
3200 |
-
<a href="#cl-2282">2282</a>
|
3201 |
-
<a href="#cl-2283">2283</a>
|
3202 |
-
<a href="#cl-2284">2284</a>
|
3203 |
-
<a href="#cl-2285">2285</a>
|
3204 |
-
<a href="#cl-2286">2286</a>
|
3205 |
-
<a href="#cl-2287">2287</a>
|
3206 |
-
<a href="#cl-2288">2288</a>
|
3207 |
-
<a href="#cl-2289">2289</a>
|
3208 |
-
<a href="#cl-2290">2290</a>
|
3209 |
-
<a href="#cl-2291">2291</a>
|
3210 |
-
<a href="#cl-2292">2292</a>
|
3211 |
-
<a href="#cl-2293">2293</a>
|
3212 |
-
<a href="#cl-2294">2294</a>
|
3213 |
-
<a href="#cl-2295">2295</a>
|
3214 |
-
<a href="#cl-2296">2296</a>
|
3215 |
-
<a href="#cl-2297">2297</a>
|
3216 |
-
<a href="#cl-2298">2298</a>
|
3217 |
-
<a href="#cl-2299">2299</a>
|
3218 |
-
<a href="#cl-2300">2300</a>
|
3219 |
-
<a href="#cl-2301">2301</a>
|
3220 |
-
<a href="#cl-2302">2302</a>
|
3221 |
-
<a href="#cl-2303">2303</a>
|
3222 |
-
<a href="#cl-2304">2304</a>
|
3223 |
-
<a href="#cl-2305">2305</a>
|
3224 |
-
<a href="#cl-2306">2306</a>
|
3225 |
-
<a href="#cl-2307">2307</a>
|
3226 |
-
<a href="#cl-2308">2308</a>
|
3227 |
-
<a href="#cl-2309">2309</a>
|
3228 |
-
<a href="#cl-2310">2310</a>
|
3229 |
-
<a href="#cl-2311">2311</a>
|
3230 |
-
<a href="#cl-2312">2312</a>
|
3231 |
-
<a href="#cl-2313">2313</a>
|
3232 |
-
<a href="#cl-2314">2314</a>
|
3233 |
-
<a href="#cl-2315">2315</a>
|
3234 |
-
<a href="#cl-2316">2316</a>
|
3235 |
-
<a href="#cl-2317">2317</a>
|
3236 |
-
<a href="#cl-2318">2318</a>
|
3237 |
-
<a href="#cl-2319">2319</a>
|
3238 |
-
<a href="#cl-2320">2320</a>
|
3239 |
-
<a href="#cl-2321">2321</a>
|
3240 |
-
<a href="#cl-2322">2322</a>
|
3241 |
-
<a href="#cl-2323">2323</a>
|
3242 |
-
<a href="#cl-2324">2324</a>
|
3243 |
-
<a href="#cl-2325">2325</a>
|
3244 |
-
<a href="#cl-2326">2326</a>
|
3245 |
-
<a href="#cl-2327">2327</a>
|
3246 |
-
<a href="#cl-2328">2328</a>
|
3247 |
-
<a href="#cl-2329">2329</a>
|
3248 |
-
<a href="#cl-2330">2330</a>
|
3249 |
-
<a href="#cl-2331">2331</a>
|
3250 |
-
<a href="#cl-2332">2332</a>
|
3251 |
-
<a href="#cl-2333">2333</a>
|
3252 |
-
<a href="#cl-2334">2334</a>
|
3253 |
-
<a href="#cl-2335">2335</a>
|
3254 |
-
<a href="#cl-2336">2336</a>
|
3255 |
-
<a href="#cl-2337">2337</a>
|
3256 |
-
<a href="#cl-2338">2338</a>
|
3257 |
-
<a href="#cl-2339">2339</a>
|
3258 |
-
<a href="#cl-2340">2340</a>
|
3259 |
-
<a href="#cl-2341">2341</a>
|
3260 |
-
<a href="#cl-2342">2342</a>
|
3261 |
-
<a href="#cl-2343">2343</a>
|
3262 |
-
<a href="#cl-2344">2344</a>
|
3263 |
-
<a href="#cl-2345">2345</a>
|
3264 |
-
<a href="#cl-2346">2346</a>
|
3265 |
-
<a href="#cl-2347">2347</a>
|
3266 |
-
<a href="#cl-2348">2348</a>
|
3267 |
-
<a href="#cl-2349">2349</a>
|
3268 |
-
<a href="#cl-2350">2350</a>
|
3269 |
-
<a href="#cl-2351">2351</a>
|
3270 |
-
<a href="#cl-2352">2352</a>
|
3271 |
-
<a href="#cl-2353">2353</a>
|
3272 |
-
<a href="#cl-2354">2354</a>
|
3273 |
-
<a href="#cl-2355">2355</a>
|
3274 |
-
<a href="#cl-2356">2356</a>
|
3275 |
-
<a href="#cl-2357">2357</a>
|
3276 |
-
<a href="#cl-2358">2358</a>
|
3277 |
-
<a href="#cl-2359">2359</a>
|
3278 |
-
<a href="#cl-2360">2360</a>
|
3279 |
-
<a href="#cl-2361">2361</a>
|
3280 |
-
<a href="#cl-2362">2362</a>
|
3281 |
-
<a href="#cl-2363">2363</a>
|
3282 |
-
<a href="#cl-2364">2364</a>
|
3283 |
-
<a href="#cl-2365">2365</a>
|
3284 |
-
<a href="#cl-2366">2366</a>
|
3285 |
-
<a href="#cl-2367">2367</a>
|
3286 |
-
<a href="#cl-2368">2368</a>
|
3287 |
-
<a href="#cl-2369">2369</a>
|
3288 |
-
<a href="#cl-2370">2370</a>
|
3289 |
-
<a href="#cl-2371">2371</a>
|
3290 |
-
<a href="#cl-2372">2372</a>
|
3291 |
-
<a href="#cl-2373">2373</a>
|
3292 |
-
<a href="#cl-2374">2374</a>
|
3293 |
-
<a href="#cl-2375">2375</a>
|
3294 |
-
<a href="#cl-2376">2376</a>
|
3295 |
-
<a href="#cl-2377">2377</a>
|
3296 |
-
<a href="#cl-2378">2378</a>
|
3297 |
-
<a href="#cl-2379">2379</a>
|
3298 |
-
<a href="#cl-2380">2380</a>
|
3299 |
-
<a href="#cl-2381">2381</a>
|
3300 |
-
<a href="#cl-2382">2382</a>
|
3301 |
-
<a href="#cl-2383">2383</a>
|
3302 |
-
<a href="#cl-2384">2384</a>
|
3303 |
-
<a href="#cl-2385">2385</a>
|
3304 |
-
<a href="#cl-2386">2386</a>
|
3305 |
-
<a href="#cl-2387">2387</a>
|
3306 |
-
<a href="#cl-2388">2388</a>
|
3307 |
-
<a href="#cl-2389">2389</a>
|
3308 |
-
<a href="#cl-2390">2390</a>
|
3309 |
-
<a href="#cl-2391">2391</a>
|
3310 |
-
<a href="#cl-2392">2392</a>
|
3311 |
-
<a href="#cl-2393">2393</a>
|
3312 |
-
<a href="#cl-2394">2394</a>
|
3313 |
-
<a href="#cl-2395">2395</a>
|
3314 |
-
<a href="#cl-2396">2396</a>
|
3315 |
-
<a href="#cl-2397">2397</a>
|
3316 |
-
<a href="#cl-2398">2398</a>
|
3317 |
-
<a href="#cl-2399">2399</a>
|
3318 |
-
<a href="#cl-2400">2400</a>
|
3319 |
-
<a href="#cl-2401">2401</a>
|
3320 |
-
<a href="#cl-2402">2402</a>
|
3321 |
-
<a href="#cl-2403">2403</a>
|
3322 |
-
<a href="#cl-2404">2404</a>
|
3323 |
-
<a href="#cl-2405">2405</a>
|
3324 |
-
<a href="#cl-2406">2406</a>
|
3325 |
-
<a href="#cl-2407">2407</a>
|
3326 |
-
<a href="#cl-2408">2408</a>
|
3327 |
-
<a href="#cl-2409">2409</a>
|
3328 |
-
<a href="#cl-2410">2410</a>
|
3329 |
-
<a href="#cl-2411">2411</a>
|
3330 |
-
<a href="#cl-2412">2412</a>
|
3331 |
-
<a href="#cl-2413">2413</a>
|
3332 |
-
<a href="#cl-2414">2414</a>
|
3333 |
-
<a href="#cl-2415">2415</a>
|
3334 |
-
<a href="#cl-2416">2416</a>
|
3335 |
-
<a href="#cl-2417">2417</a>
|
3336 |
-
<a href="#cl-2418">2418</a>
|
3337 |
-
<a href="#cl-2419">2419</a>
|
3338 |
-
<a href="#cl-2420">2420</a>
|
3339 |
-
<a href="#cl-2421">2421</a>
|
3340 |
-
<a href="#cl-2422">2422</a>
|
3341 |
-
<a href="#cl-2423">2423</a>
|
3342 |
-
<a href="#cl-2424">2424</a>
|
3343 |
-
<a href="#cl-2425">2425</a>
|
3344 |
-
<a href="#cl-2426">2426</a>
|
3345 |
-
<a href="#cl-2427">2427</a>
|
3346 |
-
<a href="#cl-2428">2428</a>
|
3347 |
-
<a href="#cl-2429">2429</a>
|
3348 |
-
<a href="#cl-2430">2430</a>
|
3349 |
-
<a href="#cl-2431">2431</a>
|
3350 |
-
<a href="#cl-2432">2432</a>
|
3351 |
-
<a href="#cl-2433">2433</a>
|
3352 |
-
<a href="#cl-2434">2434</a>
|
3353 |
-
<a href="#cl-2435">2435</a>
|
3354 |
-
<a href="#cl-2436">2436</a>
|
3355 |
-
<a href="#cl-2437">2437</a>
|
3356 |
-
<a href="#cl-2438">2438</a>
|
3357 |
-
<a href="#cl-2439">2439</a>
|
3358 |
-
<a href="#cl-2440">2440</a>
|
3359 |
-
<a href="#cl-2441">2441</a>
|
3360 |
-
<a href="#cl-2442">2442</a>
|
3361 |
-
<a href="#cl-2443">2443</a>
|
3362 |
-
<a href="#cl-2444">2444</a>
|
3363 |
-
<a href="#cl-2445">2445</a>
|
3364 |
-
<a href="#cl-2446">2446</a>
|
3365 |
-
<a href="#cl-2447">2447</a>
|
3366 |
-
<a href="#cl-2448">2448</a>
|
3367 |
-
<a href="#cl-2449">2449</a>
|
3368 |
-
<a href="#cl-2450">2450</a>
|
3369 |
-
<a href="#cl-2451">2451</a>
|
3370 |
-
<a href="#cl-2452">2452</a>
|
3371 |
-
<a href="#cl-2453">2453</a>
|
3372 |
-
<a href="#cl-2454">2454</a>
|
3373 |
-
<a href="#cl-2455">2455</a>
|
3374 |
-
<a href="#cl-2456">2456</a>
|
3375 |
-
<a href="#cl-2457">2457</a>
|
3376 |
-
<a href="#cl-2458">2458</a>
|
3377 |
-
<a href="#cl-2459">2459</a>
|
3378 |
-
<a href="#cl-2460">2460</a>
|
3379 |
-
<a href="#cl-2461">2461</a>
|
3380 |
-
<a href="#cl-2462">2462</a>
|
3381 |
-
<a href="#cl-2463">2463</a>
|
3382 |
-
<a href="#cl-2464">2464</a>
|
3383 |
-
<a href="#cl-2465">2465</a>
|
3384 |
-
<a href="#cl-2466">2466</a>
|
3385 |
-
<a href="#cl-2467">2467</a>
|
3386 |
-
<a href="#cl-2468">2468</a>
|
3387 |
-
<a href="#cl-2469">2469</a>
|
3388 |
-
<a href="#cl-2470">2470</a>
|
3389 |
-
<a href="#cl-2471">2471</a>
|
3390 |
-
<a href="#cl-2472">2472</a>
|
3391 |
-
<a href="#cl-2473">2473</a>
|
3392 |
-
<a href="#cl-2474">2474</a>
|
3393 |
-
<a href="#cl-2475">2475</a>
|
3394 |
-
<a href="#cl-2476">2476</a>
|
3395 |
-
<a href="#cl-2477">2477</a>
|
3396 |
-
<a href="#cl-2478">2478</a>
|
3397 |
-
<a href="#cl-2479">2479</a>
|
3398 |
-
<a href="#cl-2480">2480</a>
|
3399 |
-
<a href="#cl-2481">2481</a>
|
3400 |
-
<a href="#cl-2482">2482</a>
|
3401 |
-
<a href="#cl-2483">2483</a>
|
3402 |
-
<a href="#cl-2484">2484</a>
|
3403 |
-
<a href="#cl-2485">2485</a>
|
3404 |
-
<a href="#cl-2486">2486</a>
|
3405 |
-
<a href="#cl-2487">2487</a>
|
3406 |
-
<a href="#cl-2488">2488</a>
|
3407 |
-
<a href="#cl-2489">2489</a>
|
3408 |
-
<a href="#cl-2490">2490</a>
|
3409 |
-
<a href="#cl-2491">2491</a>
|
3410 |
-
<a href="#cl-2492">2492</a>
|
3411 |
-
<a href="#cl-2493">2493</a>
|
3412 |
-
<a href="#cl-2494">2494</a>
|
3413 |
-
<a href="#cl-2495">2495</a>
|
3414 |
-
<a href="#cl-2496">2496</a>
|
3415 |
-
<a href="#cl-2497">2497</a>
|
3416 |
-
<a href="#cl-2498">2498</a>
|
3417 |
-
<a href="#cl-2499">2499</a>
|
3418 |
-
<a href="#cl-2500">2500</a>
|
3419 |
-
<a href="#cl-2501">2501</a>
|
3420 |
-
<a href="#cl-2502">2502</a>
|
3421 |
-
<a href="#cl-2503">2503</a>
|
3422 |
-
<a href="#cl-2504">2504</a>
|
3423 |
-
<a href="#cl-2505">2505</a>
|
3424 |
-
<a href="#cl-2506">2506</a>
|
3425 |
-
<a href="#cl-2507">2507</a>
|
3426 |
-
<a href="#cl-2508">2508</a>
|
3427 |
-
<a href="#cl-2509">2509</a>
|
3428 |
-
<a href="#cl-2510">2510</a>
|
3429 |
-
<a href="#cl-2511">2511</a>
|
3430 |
-
<a href="#cl-2512">2512</a>
|
3431 |
-
<a href="#cl-2513">2513</a>
|
3432 |
-
<a href="#cl-2514">2514</a>
|
3433 |
-
<a href="#cl-2515">2515</a>
|
3434 |
-
<a href="#cl-2516">2516</a>
|
3435 |
-
<a href="#cl-2517">2517</a>
|
3436 |
-
<a href="#cl-2518">2518</a>
|
3437 |
-
<a href="#cl-2519">2519</a>
|
3438 |
-
<a href="#cl-2520">2520</a>
|
3439 |
-
<a href="#cl-2521">2521</a>
|
3440 |
-
<a href="#cl-2522">2522</a>
|
3441 |
-
<a href="#cl-2523">2523</a>
|
3442 |
-
<a href="#cl-2524">2524</a>
|
3443 |
-
<a href="#cl-2525">2525</a>
|
3444 |
-
<a href="#cl-2526">2526</a>
|
3445 |
-
<a href="#cl-2527">2527</a>
|
3446 |
-
<a href="#cl-2528">2528</a>
|
3447 |
-
<a href="#cl-2529">2529</a>
|
3448 |
-
<a href="#cl-2530">2530</a>
|
3449 |
-
<a href="#cl-2531">2531</a>
|
3450 |
-
<a href="#cl-2532">2532</a>
|
3451 |
-
<a href="#cl-2533">2533</a>
|
3452 |
-
<a href="#cl-2534">2534</a>
|
3453 |
-
<a href="#cl-2535">2535</a>
|
3454 |
-
<a href="#cl-2536">2536</a>
|
3455 |
-
<a href="#cl-2537">2537</a>
|
3456 |
-
<a href="#cl-2538">2538</a>
|
3457 |
-
<a href="#cl-2539">2539</a>
|
3458 |
-
<a href="#cl-2540">2540</a>
|
3459 |
-
<a href="#cl-2541">2541</a>
|
3460 |
-
<a href="#cl-2542">2542</a>
|
3461 |
-
<a href="#cl-2543">2543</a>
|
3462 |
-
<a href="#cl-2544">2544</a>
|
3463 |
-
<a href="#cl-2545">2545</a>
|
3464 |
-
<a href="#cl-2546">2546</a>
|
3465 |
-
<a href="#cl-2547">2547</a>
|
3466 |
-
<a href="#cl-2548">2548</a>
|
3467 |
-
<a href="#cl-2549">2549</a>
|
3468 |
-
<a href="#cl-2550">2550</a>
|
3469 |
-
<a href="#cl-2551">2551</a>
|
3470 |
-
<a href="#cl-2552">2552</a>
|
3471 |
-
<a href="#cl-2553">2553</a>
|
3472 |
-
<a href="#cl-2554">2554</a>
|
3473 |
-
<a href="#cl-2555">2555</a>
|
3474 |
-
<a href="#cl-2556">2556</a>
|
3475 |
-
<a href="#cl-2557">2557</a>
|
3476 |
-
<a href="#cl-2558">2558</a>
|
3477 |
-
<a href="#cl-2559">2559</a>
|
3478 |
-
<a href="#cl-2560">2560</a>
|
3479 |
-
<a href="#cl-2561">2561</a>
|
3480 |
-
<a href="#cl-2562">2562</a>
|
3481 |
-
<a href="#cl-2563">2563</a>
|
3482 |
-
<a href="#cl-2564">2564</a>
|
3483 |
-
<a href="#cl-2565">2565</a>
|
3484 |
-
<a href="#cl-2566">2566</a>
|
3485 |
-
<a href="#cl-2567">2567</a>
|
3486 |
-
<a href="#cl-2568">2568</a>
|
3487 |
-
<a href="#cl-2569">2569</a>
|
3488 |
-
<a href="#cl-2570">2570</a>
|
3489 |
-
<a href="#cl-2571">2571</a>
|
3490 |
-
<a href="#cl-2572">2572</a>
|
3491 |
-
<a href="#cl-2573">2573</a>
|
3492 |
-
<a href="#cl-2574">2574</a>
|
3493 |
-
<a href="#cl-2575">2575</a>
|
3494 |
-
<a href="#cl-2576">2576</a>
|
3495 |
-
<a href="#cl-2577">2577</a>
|
3496 |
-
<a href="#cl-2578">2578</a>
|
3497 |
-
<a href="#cl-2579">2579</a>
|
3498 |
-
<a href="#cl-2580">2580</a>
|
3499 |
-
<a href="#cl-2581">2581</a>
|
3500 |
-
<a href="#cl-2582">2582</a>
|
3501 |
-
<a href="#cl-2583">2583</a>
|
3502 |
-
<a href="#cl-2584">2584</a>
|
3503 |
-
<a href="#cl-2585">2585</a>
|
3504 |
-
<a href="#cl-2586">2586</a>
|
3505 |
-
<a href="#cl-2587">2587</a>
|
3506 |
-
<a href="#cl-2588">2588</a>
|
3507 |
-
<a href="#cl-2589">2589</a>
|
3508 |
-
<a href="#cl-2590">2590</a>
|
3509 |
-
<a href="#cl-2591">2591</a>
|
3510 |
-
<a href="#cl-2592">2592</a>
|
3511 |
-
<a href="#cl-2593">2593</a>
|
3512 |
-
<a href="#cl-2594">2594</a>
|
3513 |
-
<a href="#cl-2595">2595</a>
|
3514 |
-
<a href="#cl-2596">2596</a>
|
3515 |
-
<a href="#cl-2597">2597</a>
|
3516 |
-
<a href="#cl-2598">2598</a>
|
3517 |
-
<a href="#cl-2599">2599</a>
|
3518 |
-
<a href="#cl-2600">2600</a>
|
3519 |
-
<a href="#cl-2601">2601</a>
|
3520 |
-
<a href="#cl-2602">2602</a>
|
3521 |
-
<a href="#cl-2603">2603</a>
|
3522 |
-
<a href="#cl-2604">2604</a>
|
3523 |
-
<a href="#cl-2605">2605</a>
|
3524 |
-
<a href="#cl-2606">2606</a>
|
3525 |
-
<a href="#cl-2607">2607</a>
|
3526 |
-
<a href="#cl-2608">2608</a>
|
3527 |
-
<a href="#cl-2609">2609</a>
|
3528 |
-
<a href="#cl-2610">2610</a>
|
3529 |
-
<a href="#cl-2611">2611</a>
|
3530 |
-
<a href="#cl-2612">2612</a>
|
3531 |
-
<a href="#cl-2613">2613</a>
|
3532 |
-
<a href="#cl-2614">2614</a>
|
3533 |
-
<a href="#cl-2615">2615</a>
|
3534 |
-
<a href="#cl-2616">2616</a>
|
3535 |
-
<a href="#cl-2617">2617</a>
|
3536 |
-
<a href="#cl-2618">2618</a>
|
3537 |
-
<a href="#cl-2619">2619</a>
|
3538 |
-
<a href="#cl-2620">2620</a>
|
3539 |
-
<a href="#cl-2621">2621</a>
|
3540 |
-
<a href="#cl-2622">2622</a>
|
3541 |
-
<a href="#cl-2623">2623</a>
|
3542 |
-
<a href="#cl-2624">2624</a>
|
3543 |
-
<a href="#cl-2625">2625</a>
|
3544 |
-
<a href="#cl-2626">2626</a>
|
3545 |
-
<a href="#cl-2627">2627</a>
|
3546 |
-
<a href="#cl-2628">2628</a>
|
3547 |
-
<a href="#cl-2629">2629</a>
|
3548 |
-
<a href="#cl-2630">2630</a>
|
3549 |
-
<a href="#cl-2631">2631</a>
|
3550 |
-
<a href="#cl-2632">2632</a>
|
3551 |
-
<a href="#cl-2633">2633</a>
|
3552 |
-
<a href="#cl-2634">2634</a>
|
3553 |
-
<a href="#cl-2635">2635</a>
|
3554 |
-
<a href="#cl-2636">2636</a>
|
3555 |
-
<a href="#cl-2637">2637</a>
|
3556 |
-
<a href="#cl-2638">2638</a>
|
3557 |
-
<a href="#cl-2639">2639</a>
|
3558 |
-
<a href="#cl-2640">2640</a>
|
3559 |
-
<a href="#cl-2641">2641</a>
|
3560 |
-
<a href="#cl-2642">2642</a>
|
3561 |
-
<a href="#cl-2643">2643</a>
|
3562 |
-
<a href="#cl-2644">2644</a>
|
3563 |
-
<a href="#cl-2645">2645</a>
|
3564 |
-
<a href="#cl-2646">2646</a>
|
3565 |
-
<a href="#cl-2647">2647</a>
|
3566 |
-
<a href="#cl-2648">2648</a>
|
3567 |
-
<a href="#cl-2649">2649</a>
|
3568 |
-
<a href="#cl-2650">2650</a>
|
3569 |
-
<a href="#cl-2651">2651</a>
|
3570 |
-
<a href="#cl-2652">2652</a>
|
3571 |
-
<a href="#cl-2653">2653</a>
|
3572 |
-
<a href="#cl-2654">2654</a>
|
3573 |
-
<a href="#cl-2655">2655</a>
|
3574 |
-
<a href="#cl-2656">2656</a>
|
3575 |
-
<a href="#cl-2657">2657</a>
|
3576 |
-
<a href="#cl-2658">2658</a>
|
3577 |
-
<a href="#cl-2659">2659</a>
|
3578 |
-
<a href="#cl-2660">2660</a>
|
3579 |
-
<a href="#cl-2661">2661</a>
|
3580 |
-
<a href="#cl-2662">2662</a>
|
3581 |
-
<a href="#cl-2663">2663</a>
|
3582 |
-
<a href="#cl-2664">2664</a>
|
3583 |
-
<a href="#cl-2665">2665</a>
|
3584 |
-
<a href="#cl-2666">2666</a>
|
3585 |
-
<a href="#cl-2667">2667</a>
|
3586 |
-
<a href="#cl-2668">2668</a>
|
3587 |
-
<a href="#cl-2669">2669</a>
|
3588 |
-
<a href="#cl-2670">2670</a>
|
3589 |
-
<a href="#cl-2671">2671</a>
|
3590 |
-
<a href="#cl-2672">2672</a>
|
3591 |
-
<a href="#cl-2673">2673</a>
|
3592 |
-
<a href="#cl-2674">2674</a>
|
3593 |
-
<a href="#cl-2675">2675</a>
|
3594 |
-
<a href="#cl-2676">2676</a>
|
3595 |
-
<a href="#cl-2677">2677</a>
|
3596 |
-
<a href="#cl-2678">2678</a>
|
3597 |
-
<a href="#cl-2679">2679</a>
|
3598 |
-
<a href="#cl-2680">2680</a>
|
3599 |
-
<a href="#cl-2681">2681</a>
|
3600 |
-
<a href="#cl-2682">2682</a>
|
3601 |
-
<a href="#cl-2683">2683</a>
|
3602 |
-
<a href="#cl-2684">2684</a>
|
3603 |
-
<a href="#cl-2685">2685</a>
|
3604 |
-
<a href="#cl-2686">2686</a>
|
3605 |
-
<a href="#cl-2687">2687</a>
|
3606 |
-
<a href="#cl-2688">2688</a>
|
3607 |
-
<a href="#cl-2689">2689</a>
|
3608 |
-
<a href="#cl-2690">2690</a>
|
3609 |
-
<a href="#cl-2691">2691</a>
|
3610 |
-
<a href="#cl-2692">2692</a>
|
3611 |
-
<a href="#cl-2693">2693</a>
|
3612 |
-
<a href="#cl-2694">2694</a>
|
3613 |
-
<a href="#cl-2695">2695</a>
|
3614 |
-
<a href="#cl-2696">2696</a>
|
3615 |
-
<a href="#cl-2697">2697</a>
|
3616 |
-
<a href="#cl-2698">2698</a>
|
3617 |
-
<a href="#cl-2699">2699</a>
|
3618 |
-
<a href="#cl-2700">2700</a>
|
3619 |
-
<a href="#cl-2701">2701</a>
|
3620 |
-
<a href="#cl-2702">2702</a>
|
3621 |
-
<a href="#cl-2703">2703</a>
|
3622 |
-
<a href="#cl-2704">2704</a>
|
3623 |
-
<a href="#cl-2705">2705</a>
|
3624 |
-
<a href="#cl-2706">2706</a>
|
3625 |
-
<a href="#cl-2707">2707</a>
|
3626 |
-
<a href="#cl-2708">2708</a>
|
3627 |
-
<a href="#cl-2709">2709</a>
|
3628 |
-
<a href="#cl-2710">2710</a>
|
3629 |
-
<a href="#cl-2711">2711</a>
|
3630 |
-
<a href="#cl-2712">2712</a>
|
3631 |
-
<a href="#cl-2713">2713</a>
|
3632 |
-
<a href="#cl-2714">2714</a>
|
3633 |
-
<a href="#cl-2715">2715</a>
|
3634 |
-
<a href="#cl-2716">2716</a>
|
3635 |
-
<a href="#cl-2717">2717</a>
|
3636 |
-
<a href="#cl-2718">2718</a>
|
3637 |
-
<a href="#cl-2719">2719</a>
|
3638 |
-
<a href="#cl-2720">2720</a>
|
3639 |
-
<a href="#cl-2721">2721</a>
|
3640 |
-
<a href="#cl-2722">2722</a>
|
3641 |
-
<a href="#cl-2723">2723</a>
|
3642 |
-
<a href="#cl-2724">2724</a>
|
3643 |
-
<a href="#cl-2725">2725</a>
|
3644 |
-
<a href="#cl-2726">2726</a>
|
3645 |
-
<a href="#cl-2727">2727</a>
|
3646 |
-
<a href="#cl-2728">2728</a>
|
3647 |
-
<a href="#cl-2729">2729</a>
|
3648 |
-
<a href="#cl-2730">2730</a>
|
3649 |
-
<a href="#cl-2731">2731</a>
|
3650 |
-
<a href="#cl-2732">2732</a>
|
3651 |
-
<a href="#cl-2733">2733</a>
|
3652 |
-
<a href="#cl-2734">2734</a>
|
3653 |
-
<a href="#cl-2735">2735</a>
|
3654 |
-
<a href="#cl-2736">2736</a>
|
3655 |
-
<a href="#cl-2737">2737</a>
|
3656 |
-
<a href="#cl-2738">2738</a>
|
3657 |
-
<a href="#cl-2739">2739</a>
|
3658 |
-
<a href="#cl-2740">2740</a>
|
3659 |
-
<a href="#cl-2741">2741</a>
|
3660 |
-
<a href="#cl-2742">2742</a>
|
3661 |
-
<a href="#cl-2743">2743</a>
|
3662 |
-
<a href="#cl-2744">2744</a>
|
3663 |
-
<a href="#cl-2745">2745</a>
|
3664 |
-
<a href="#cl-2746">2746</a>
|
3665 |
-
<a href="#cl-2747">2747</a>
|
3666 |
-
<a href="#cl-2748">2748</a>
|
3667 |
-
<a href="#cl-2749">2749</a>
|
3668 |
-
<a href="#cl-2750">2750</a>
|
3669 |
-
<a href="#cl-2751">2751</a>
|
3670 |
-
<a href="#cl-2752">2752</a>
|
3671 |
-
<a href="#cl-2753">2753</a>
|
3672 |
-
<a href="#cl-2754">2754</a>
|
3673 |
-
<a href="#cl-2755">2755</a>
|
3674 |
-
<a href="#cl-2756">2756</a>
|
3675 |
-
<a href="#cl-2757">2757</a>
|
3676 |
-
<a href="#cl-2758">2758</a>
|
3677 |
-
<a href="#cl-2759">2759</a>
|
3678 |
-
<a href="#cl-2760">2760</a>
|
3679 |
-
<a href="#cl-2761">2761</a>
|
3680 |
-
<a href="#cl-2762">2762</a>
|
3681 |
-
<a href="#cl-2763">2763</a>
|
3682 |
-
<a href="#cl-2764">2764</a>
|
3683 |
-
<a href="#cl-2765">2765</a>
|
3684 |
-
<a href="#cl-2766">2766</a>
|
3685 |
-
<a href="#cl-2767">2767</a>
|
3686 |
-
<a href="#cl-2768">2768</a>
|
3687 |
-
<a href="#cl-2769">2769</a>
|
3688 |
-
<a href="#cl-2770">2770</a>
|
3689 |
-
<a href="#cl-2771">2771</a>
|
3690 |
-
<a href="#cl-2772">2772</a>
|
3691 |
-
<a href="#cl-2773">2773</a>
|
3692 |
-
<a href="#cl-2774">2774</a>
|
3693 |
-
<a href="#cl-2775">2775</a>
|
3694 |
-
<a href="#cl-2776">2776</a>
|
3695 |
-
<a href="#cl-2777">2777</a>
|
3696 |
-
<a href="#cl-2778">2778</a>
|
3697 |
-
<a href="#cl-2779">2779</a>
|
3698 |
-
<a href="#cl-2780">2780</a>
|
3699 |
-
<a href="#cl-2781">2781</a>
|
3700 |
-
<a href="#cl-2782">2782</a>
|
3701 |
-
<a href="#cl-2783">2783</a>
|
3702 |
-
<a href="#cl-2784">2784</a>
|
3703 |
-
<a href="#cl-2785">2785</a>
|
3704 |
-
<a href="#cl-2786">2786</a>
|
3705 |
-
<a href="#cl-2787">2787</a>
|
3706 |
-
<a href="#cl-2788">2788</a>
|
3707 |
-
<a href="#cl-2789">2789</a>
|
3708 |
-
<a href="#cl-2790">2790</a>
|
3709 |
-
<a href="#cl-2791">2791</a>
|
3710 |
-
<a href="#cl-2792">2792</a>
|
3711 |
-
<a href="#cl-2793">2793</a>
|
3712 |
-
<a href="#cl-2794">2794</a>
|
3713 |
-
<a href="#cl-2795">2795</a>
|
3714 |
-
<a href="#cl-2796">2796</a>
|
3715 |
-
<a href="#cl-2797">2797</a>
|
3716 |
-
<a href="#cl-2798">2798</a>
|
3717 |
-
<a href="#cl-2799">2799</a>
|
3718 |
-
<a href="#cl-2800">2800</a>
|
3719 |
-
<a href="#cl-2801">2801</a>
|
3720 |
-
<a href="#cl-2802">2802</a>
|
3721 |
-
<a href="#cl-2803">2803</a>
|
3722 |
-
<a href="#cl-2804">2804</a>
|
3723 |
-
<a href="#cl-2805">2805</a>
|
3724 |
-
<a href="#cl-2806">2806</a>
|
3725 |
-
<a href="#cl-2807">2807</a>
|
3726 |
-
<a href="#cl-2808">2808</a>
|
3727 |
-
<a href="#cl-2809">2809</a>
|
3728 |
-
<a href="#cl-2810">2810</a>
|
3729 |
-
<a href="#cl-2811">2811</a>
|
3730 |
-
<a href="#cl-2812">2812</a>
|
3731 |
-
<a href="#cl-2813">2813</a>
|
3732 |
-
<a href="#cl-2814">2814</a>
|
3733 |
-
<a href="#cl-2815">2815</a>
|
3734 |
-
<a href="#cl-2816">2816</a>
|
3735 |
-
<a href="#cl-2817">2817</a>
|
3736 |
-
<a href="#cl-2818">2818</a>
|
3737 |
-
<a href="#cl-2819">2819</a>
|
3738 |
-
<a href="#cl-2820">2820</a>
|
3739 |
-
<a href="#cl-2821">2821</a>
|
3740 |
-
<a href="#cl-2822">2822</a>
|
3741 |
-
<a href="#cl-2823">2823</a>
|
3742 |
-
<a href="#cl-2824">2824</a>
|
3743 |
-
<a href="#cl-2825">2825</a>
|
3744 |
-
<a href="#cl-2826">2826</a>
|
3745 |
-
<a href="#cl-2827">2827</a>
|
3746 |
-
<a href="#cl-2828">2828</a>
|
3747 |
-
<a href="#cl-2829">2829</a>
|
3748 |
-
<a href="#cl-2830">2830</a>
|
3749 |
-
<a href="#cl-2831">2831</a>
|
3750 |
-
<a href="#cl-2832">2832</a>
|
3751 |
-
<a href="#cl-2833">2833</a>
|
3752 |
-
<a href="#cl-2834">2834</a>
|
3753 |
-
<a href="#cl-2835">2835</a>
|
3754 |
-
<a href="#cl-2836">2836</a>
|
3755 |
-
<a href="#cl-2837">2837</a>
|
3756 |
-
<a href="#cl-2838">2838</a>
|
3757 |
-
<a href="#cl-2839">2839</a>
|
3758 |
-
<a href="#cl-2840">2840</a>
|
3759 |
-
<a href="#cl-2841">2841</a>
|
3760 |
-
<a href="#cl-2842">2842</a>
|
3761 |
-
<a href="#cl-2843">2843</a>
|
3762 |
-
<a href="#cl-2844">2844</a>
|
3763 |
-
<a href="#cl-2845">2845</a>
|
3764 |
-
<a href="#cl-2846">2846</a>
|
3765 |
-
<a href="#cl-2847">2847</a>
|
3766 |
-
<a href="#cl-2848">2848</a>
|
3767 |
-
<a href="#cl-2849">2849</a>
|
3768 |
-
<a href="#cl-2850">2850</a>
|
3769 |
-
<a href="#cl-2851">2851</a>
|
3770 |
-
<a href="#cl-2852">2852</a>
|
3771 |
-
<a href="#cl-2853">2853</a>
|
3772 |
-
<a href="#cl-2854">2854</a>
|
3773 |
-
<a href="#cl-2855">2855</a>
|
3774 |
-
<a href="#cl-2856">2856</a>
|
3775 |
-
<a href="#cl-2857">2857</a>
|
3776 |
-
<a href="#cl-2858">2858</a>
|
3777 |
-
<a href="#cl-2859">2859</a>
|
3778 |
-
<a href="#cl-2860">2860</a>
|
3779 |
-
<a href="#cl-2861">2861</a>
|
3780 |
-
<a href="#cl-2862">2862</a>
|
3781 |
-
<a href="#cl-2863">2863</a>
|
3782 |
-
<a href="#cl-2864">2864</a>
|
3783 |
-
<a href="#cl-2865">2865</a>
|
3784 |
-
<a href="#cl-2866">2866</a>
|
3785 |
-
<a href="#cl-2867">2867</a>
|
3786 |
-
<a href="#cl-2868">2868</a>
|
3787 |
-
<a href="#cl-2869">2869</a>
|
3788 |
-
<a href="#cl-2870">2870</a>
|
3789 |
-
<a href="#cl-2871">2871</a>
|
3790 |
-
<a href="#cl-2872">2872</a>
|
3791 |
-
<a href="#cl-2873">2873</a>
|
3792 |
-
<a href="#cl-2874">2874</a>
|
3793 |
-
<a href="#cl-2875">2875</a>
|
3794 |
-
<a href="#cl-2876">2876</a>
|
3795 |
-
<a href="#cl-2877">2877</a>
|
3796 |
-
<a href="#cl-2878">2878</a>
|
3797 |
-
<a href="#cl-2879">2879</a>
|
3798 |
-
<a href="#cl-2880">2880</a>
|
3799 |
-
<a href="#cl-2881">2881</a>
|
3800 |
-
<a href="#cl-2882">2882</a>
|
3801 |
-
<a href="#cl-2883">2883</a>
|
3802 |
-
<a href="#cl-2884">2884</a>
|
3803 |
-
<a href="#cl-2885">2885</a>
|
3804 |
-
<a href="#cl-2886">2886</a>
|
3805 |
-
<a href="#cl-2887">2887</a>
|
3806 |
-
<a href="#cl-2888">2888</a>
|
3807 |
-
<a href="#cl-2889">2889</a>
|
3808 |
-
<a href="#cl-2890">2890</a>
|
3809 |
-
<a href="#cl-2891">2891</a>
|
3810 |
-
<a href="#cl-2892">2892</a>
|
3811 |
-
<a href="#cl-2893">2893</a>
|
3812 |
-
<a href="#cl-2894">2894</a>
|
3813 |
-
<a href="#cl-2895">2895</a>
|
3814 |
-
<a href="#cl-2896">2896</a>
|
3815 |
-
<a href="#cl-2897">2897</a>
|
3816 |
-
<a href="#cl-2898">2898</a>
|
3817 |
-
<a href="#cl-2899">2899</a>
|
3818 |
-
<a href="#cl-2900">2900</a>
|
3819 |
-
<a href="#cl-2901">2901</a>
|
3820 |
-
<a href="#cl-2902">2902</a>
|
3821 |
-
<a href="#cl-2903">2903</a>
|
3822 |
-
<a href="#cl-2904">2904</a>
|
3823 |
-
<a href="#cl-2905">2905</a>
|
3824 |
-
<a href="#cl-2906">2906</a>
|
3825 |
-
<a href="#cl-2907">2907</a>
|
3826 |
-
<a href="#cl-2908">2908</a>
|
3827 |
-
<a href="#cl-2909">2909</a>
|
3828 |
-
<a href="#cl-2910">2910</a>
|
3829 |
-
<a href="#cl-2911">2911</a>
|
3830 |
-
<a href="#cl-2912">2912</a>
|
3831 |
-
<a href="#cl-2913">2913</a>
|
3832 |
-
<a href="#cl-2914">2914</a>
|
3833 |
-
<a href="#cl-2915">2915</a>
|
3834 |
-
<a href="#cl-2916">2916</a>
|
3835 |
-
<a href="#cl-2917">2917</a>
|
3836 |
-
<a href="#cl-2918">2918</a>
|
3837 |
-
<a href="#cl-2919">2919</a>
|
3838 |
-
<a href="#cl-2920">2920</a>
|
3839 |
-
<a href="#cl-2921">2921</a>
|
3840 |
-
<a href="#cl-2922">2922</a>
|
3841 |
-
<a href="#cl-2923">2923</a>
|
3842 |
-
<a href="#cl-2924">2924</a>
|
3843 |
-
<a href="#cl-2925">2925</a>
|
3844 |
-
<a href="#cl-2926">2926</a>
|
3845 |
-
<a href="#cl-2927">2927</a>
|
3846 |
-
<a href="#cl-2928">2928</a>
|
3847 |
-
<a href="#cl-2929">2929</a>
|
3848 |
-
<a href="#cl-2930">2930</a>
|
3849 |
-
<a href="#cl-2931">2931</a>
|
3850 |
-
<a href="#cl-2932">2932</a>
|
3851 |
-
<a href="#cl-2933">2933</a>
|
3852 |
-
<a href="#cl-2934">2934</a>
|
3853 |
-
<a href="#cl-2935">2935</a>
|
3854 |
-
<a href="#cl-2936">2936</a>
|
3855 |
-
<a href="#cl-2937">2937</a>
|
3856 |
-
<a href="#cl-2938">2938</a>
|
3857 |
-
<a href="#cl-2939">2939</a>
|
3858 |
-
<a href="#cl-2940">2940</a>
|
3859 |
-
<a href="#cl-2941">2941</a>
|
3860 |
-
<a href="#cl-2942">2942</a>
|
3861 |
-
<a href="#cl-2943">2943</a>
|
3862 |
-
<a href="#cl-2944">2944</a>
|
3863 |
-
<a href="#cl-2945">2945</a>
|
3864 |
-
<a href="#cl-2946">2946</a>
|
3865 |
-
<a href="#cl-2947">2947</a>
|
3866 |
-
<a href="#cl-2948">2948</a>
|
3867 |
-
<a href="#cl-2949">2949</a>
|
3868 |
-
<a href="#cl-2950">2950</a>
|
3869 |
-
<a href="#cl-2951">2951</a>
|
3870 |
-
<a href="#cl-2952">2952</a>
|
3871 |
-
<a href="#cl-2953">2953</a>
|
3872 |
-
<a href="#cl-2954">2954</a>
|
3873 |
-
<a href="#cl-2955">2955</a>
|
3874 |
-
<a href="#cl-2956">2956</a>
|
3875 |
-
<a href="#cl-2957">2957</a>
|
3876 |
-
<a href="#cl-2958">2958</a>
|
3877 |
-
<a href="#cl-2959">2959</a>
|
3878 |
-
<a href="#cl-2960">2960</a>
|
3879 |
-
<a href="#cl-2961">2961</a>
|
3880 |
-
<a href="#cl-2962">2962</a>
|
3881 |
-
<a href="#cl-2963">2963</a>
|
3882 |
-
<a href="#cl-2964">2964</a>
|
3883 |
-
<a href="#cl-2965">2965</a>
|
3884 |
-
<a href="#cl-2966">2966</a>
|
3885 |
-
<a href="#cl-2967">2967</a>
|
3886 |
-
<a href="#cl-2968">2968</a>
|
3887 |
-
<a href="#cl-2969">2969</a>
|
3888 |
-
<a href="#cl-2970">2970</a>
|
3889 |
-
<a href="#cl-2971">2971</a>
|
3890 |
-
<a href="#cl-2972">2972</a>
|
3891 |
-
<a href="#cl-2973">2973</a>
|
3892 |
-
<a href="#cl-2974">2974</a>
|
3893 |
-
<a href="#cl-2975">2975</a>
|
3894 |
-
<a href="#cl-2976">2976</a>
|
3895 |
-
<a href="#cl-2977">2977</a>
|
3896 |
-
<a href="#cl-2978">2978</a>
|
3897 |
-
<a href="#cl-2979">2979</a>
|
3898 |
-
<a href="#cl-2980">2980</a>
|
3899 |
-
<a href="#cl-2981">2981</a>
|
3900 |
-
<a href="#cl-2982">2982</a>
|
3901 |
-
<a href="#cl-2983">2983</a>
|
3902 |
-
<a href="#cl-2984">2984</a>
|
3903 |
-
<a href="#cl-2985">2985</a>
|
3904 |
-
<a href="#cl-2986">2986</a>
|
3905 |
-
<a href="#cl-2987">2987</a>
|
3906 |
-
<a href="#cl-2988">2988</a>
|
3907 |
-
<a href="#cl-2989">2989</a>
|
3908 |
-
<a href="#cl-2990">2990</a>
|
3909 |
-
<a href="#cl-2991">2991</a>
|
3910 |
-
<a href="#cl-2992">2992</a>
|
3911 |
-
<a href="#cl-2993">2993</a>
|
3912 |
-
<a href="#cl-2994">2994</a>
|
3913 |
-
<a href="#cl-2995">2995</a>
|
3914 |
-
<a href="#cl-2996">2996</a>
|
3915 |
-
<a href="#cl-2997">2997</a>
|
3916 |
-
<a href="#cl-2998">2998</a>
|
3917 |
-
<a href="#cl-2999">2999</a>
|
3918 |
-
<a href="#cl-3000">3000</a>
|
3919 |
-
<a href="#cl-3001">3001</a>
|
3920 |
-
<a href="#cl-3002">3002</a>
|
3921 |
-
<a href="#cl-3003">3003</a>
|
3922 |
-
<a href="#cl-3004">3004</a>
|
3923 |
-
<a href="#cl-3005">3005</a>
|
3924 |
-
<a href="#cl-3006">3006</a>
|
3925 |
-
<a href="#cl-3007">3007</a>
|
3926 |
-
<a href="#cl-3008">3008</a>
|
3927 |
-
<a href="#cl-3009">3009</a>
|
3928 |
-
<a href="#cl-3010">3010</a>
|
3929 |
-
<a href="#cl-3011">3011</a>
|
3930 |
-
<a href="#cl-3012">3012</a>
|
3931 |
-
<a href="#cl-3013">3013</a>
|
3932 |
-
<a href="#cl-3014">3014</a>
|
3933 |
-
<a href="#cl-3015">3015</a>
|
3934 |
-
<a href="#cl-3016">3016</a>
|
3935 |
-
<a href="#cl-3017">3017</a>
|
3936 |
-
<a href="#cl-3018">3018</a>
|
3937 |
-
<a href="#cl-3019">3019</a>
|
3938 |
-
<a href="#cl-3020">3020</a>
|
3939 |
-
<a href="#cl-3021">3021</a>
|
3940 |
-
<a href="#cl-3022">3022</a>
|
3941 |
-
<a href="#cl-3023">3023</a>
|
3942 |
-
<a href="#cl-3024">3024</a>
|
3943 |
-
<a href="#cl-3025">3025</a>
|
3944 |
-
<a href="#cl-3026">3026</a>
|
3945 |
-
<a href="#cl-3027">3027</a>
|
3946 |
-
<a href="#cl-3028">3028</a>
|
3947 |
-
<a href="#cl-3029">3029</a>
|
3948 |
-
<a href="#cl-3030">3030</a>
|
3949 |
-
<a href="#cl-3031">3031</a>
|
3950 |
-
<a href="#cl-3032">3032</a>
|
3951 |
-
<a href="#cl-3033">3033</a>
|
3952 |
-
<a href="#cl-3034">3034</a>
|
3953 |
-
<a href="#cl-3035">3035</a>
|
3954 |
-
<a href="#cl-3036">3036</a>
|
3955 |
-
<a href="#cl-3037">3037</a>
|
3956 |
-
<a href="#cl-3038">3038</a>
|
3957 |
-
<a href="#cl-3039">3039</a>
|
3958 |
-
<a href="#cl-3040">3040</a>
|
3959 |
-
<a href="#cl-3041">3041</a>
|
3960 |
-
<a href="#cl-3042">3042</a>
|
3961 |
-
<a href="#cl-3043">3043</a>
|
3962 |
-
<a href="#cl-3044">3044</a>
|
3963 |
-
<a href="#cl-3045">3045</a>
|
3964 |
-
<a href="#cl-3046">3046</a>
|
3965 |
-
<a href="#cl-3047">3047</a>
|
3966 |
-
<a href="#cl-3048">3048</a>
|
3967 |
-
<a href="#cl-3049">3049</a>
|
3968 |
-
<a href="#cl-3050">3050</a>
|
3969 |
-
<a href="#cl-3051">3051</a>
|
3970 |
-
<a href="#cl-3052">3052</a>
|
3971 |
-
<a href="#cl-3053">3053</a>
|
3972 |
-
<a href="#cl-3054">3054</a>
|
3973 |
-
<a href="#cl-3055">3055</a>
|
3974 |
-
<a href="#cl-3056">3056</a>
|
3975 |
-
<a href="#cl-3057">3057</a>
|
3976 |
-
<a href="#cl-3058">3058</a>
|
3977 |
-
<a href="#cl-3059">3059</a>
|
3978 |
-
<a href="#cl-3060">3060</a>
|
3979 |
-
<a href="#cl-3061">3061</a>
|
3980 |
-
<a href="#cl-3062">3062</a>
|
3981 |
-
<a href="#cl-3063">3063</a>
|
3982 |
-
<a href="#cl-3064">3064</a>
|
3983 |
-
<a href="#cl-3065">3065</a>
|
3984 |
-
<a href="#cl-3066">3066</a>
|
3985 |
-
<a href="#cl-3067">3067</a>
|
3986 |
-
<a href="#cl-3068">3068</a>
|
3987 |
-
<a href="#cl-3069">3069</a>
|
3988 |
-
<a href="#cl-3070">3070</a>
|
3989 |
-
<a href="#cl-3071">3071</a>
|
3990 |
-
<a href="#cl-3072">3072</a>
|
3991 |
-
<a href="#cl-3073">3073</a>
|
3992 |
-
<a href="#cl-3074">3074</a>
|
3993 |
-
<a href="#cl-3075">3075</a>
|
3994 |
-
<a href="#cl-3076">3076</a>
|
3995 |
-
<a href="#cl-3077">3077</a>
|
3996 |
-
<a href="#cl-3078">3078</a>
|
3997 |
-
<a href="#cl-3079">3079</a>
|
3998 |
-
<a href="#cl-3080">3080</a>
|
3999 |
-
<a href="#cl-3081">3081</a>
|
4000 |
-
<a href="#cl-3082">3082</a>
|
4001 |
-
<a href="#cl-3083">3083</a>
|
4002 |
-
<a href="#cl-3084">3084</a>
|
4003 |
-
<a href="#cl-3085">3085</a>
|
4004 |
-
<a href="#cl-3086">3086</a>
|
4005 |
-
<a href="#cl-3087">3087</a>
|
4006 |
-
<a href="#cl-3088">3088</a>
|
4007 |
-
<a href="#cl-3089">3089</a>
|
4008 |
-
<a href="#cl-3090">3090</a>
|
4009 |
-
<a href="#cl-3091">3091</a>
|
4010 |
-
<a href="#cl-3092">3092</a>
|
4011 |
-
<a href="#cl-3093">3093</a>
|
4012 |
-
<a href="#cl-3094">3094</a>
|
4013 |
-
<a href="#cl-3095">3095</a>
|
4014 |
-
<a href="#cl-3096">3096</a>
|
4015 |
-
<a href="#cl-3097">3097</a>
|
4016 |
-
<a href="#cl-3098">3098</a>
|
4017 |
-
<a href="#cl-3099">3099</a>
|
4018 |
-
<a href="#cl-3100">3100</a>
|
4019 |
-
<a href="#cl-3101">3101</a>
|
4020 |
-
<a href="#cl-3102">3102</a>
|
4021 |
-
<a href="#cl-3103">3103</a>
|
4022 |
-
<a href="#cl-3104">3104</a>
|
4023 |
-
<a href="#cl-3105">3105</a>
|
4024 |
-
<a href="#cl-3106">3106</a>
|
4025 |
-
<a href="#cl-3107">3107</a>
|
4026 |
-
<a href="#cl-3108">3108</a>
|
4027 |
-
<a href="#cl-3109">3109</a>
|
4028 |
-
<a href="#cl-3110">3110</a>
|
4029 |
-
<a href="#cl-3111">3111</a>
|
4030 |
-
<a href="#cl-3112">3112</a>
|
4031 |
-
<a href="#cl-3113">3113</a>
|
4032 |
-
<a href="#cl-3114">3114</a>
|
4033 |
-
<a href="#cl-3115">3115</a>
|
4034 |
-
<a href="#cl-3116">3116</a>
|
4035 |
-
<a href="#cl-3117">3117</a>
|
4036 |
-
<a href="#cl-3118">3118</a>
|
4037 |
-
<a href="#cl-3119">3119</a>
|
4038 |
-
<a href="#cl-3120">3120</a>
|
4039 |
-
<a href="#cl-3121">3121</a>
|
4040 |
-
<a href="#cl-3122">3122</a>
|
4041 |
-
<a href="#cl-3123">3123</a>
|
4042 |
-
<a href="#cl-3124">3124</a>
|
4043 |
-
<a href="#cl-3125">3125</a>
|
4044 |
-
<a href="#cl-3126">3126</a>
|
4045 |
-
<a href="#cl-3127">3127</a>
|
4046 |
-
<a href="#cl-3128">3128</a>
|
4047 |
-
<a href="#cl-3129">3129</a>
|
4048 |
-
<a href="#cl-3130">3130</a>
|
4049 |
-
<a href="#cl-3131">3131</a>
|
4050 |
-
<a href="#cl-3132">3132</a>
|
4051 |
-
<a href="#cl-3133">3133</a>
|
4052 |
-
<a href="#cl-3134">3134</a>
|
4053 |
-
<a href="#cl-3135">3135</a>
|
4054 |
-
<a href="#cl-3136">3136</a>
|
4055 |
-
<a href="#cl-3137">3137</a>
|
4056 |
-
<a href="#cl-3138">3138</a>
|
4057 |
-
<a href="#cl-3139">3139</a>
|
4058 |
-
<a href="#cl-3140">3140</a>
|
4059 |
-
<a href="#cl-3141">3141</a>
|
4060 |
-
<a href="#cl-3142">3142</a>
|
4061 |
-
<a href="#cl-3143">3143</a>
|
4062 |
-
<a href="#cl-3144">3144</a>
|
4063 |
-
<a href="#cl-3145">3145</a>
|
4064 |
-
<a href="#cl-3146">3146</a>
|
4065 |
-
<a href="#cl-3147">3147</a>
|
4066 |
-
<a href="#cl-3148">3148</a>
|
4067 |
-
<a href="#cl-3149">3149</a>
|
4068 |
-
<a href="#cl-3150">3150</a>
|
4069 |
-
<a href="#cl-3151">3151</a>
|
4070 |
-
<a href="#cl-3152">3152</a>
|
4071 |
-
<a href="#cl-3153">3153</a>
|
4072 |
-
<a href="#cl-3154">3154</a>
|
4073 |
-
<a href="#cl-3155">3155</a>
|
4074 |
-
<a href="#cl-3156">3156</a>
|
4075 |
-
<a href="#cl-3157">3157</a>
|
4076 |
-
<a href="#cl-3158">3158</a>
|
4077 |
-
<a href="#cl-3159">3159</a>
|
4078 |
-
<a href="#cl-3160">3160</a>
|
4079 |
-
<a href="#cl-3161">3161</a>
|
4080 |
-
<a href="#cl-3162">3162</a>
|
4081 |
-
<a href="#cl-3163">3163</a>
|
4082 |
-
<a href="#cl-3164">3164</a>
|
4083 |
-
<a href="#cl-3165">3165</a>
|
4084 |
-
<a href="#cl-3166">3166</a>
|
4085 |
-
<a href="#cl-3167">3167</a>
|
4086 |
-
<a href="#cl-3168">3168</a>
|
4087 |
-
<a href="#cl-3169">3169</a>
|
4088 |
-
<a href="#cl-3170">3170</a>
|
4089 |
-
<a href="#cl-3171">3171</a>
|
4090 |
-
<a href="#cl-3172">3172</a>
|
4091 |
-
<a href="#cl-3173">3173</a>
|
4092 |
-
<a href="#cl-3174">3174</a>
|
4093 |
-
<a href="#cl-3175">3175</a>
|
4094 |
-
<a href="#cl-3176">3176</a>
|
4095 |
-
<a href="#cl-3177">3177</a>
|
4096 |
-
<a href="#cl-3178">3178</a>
|
4097 |
-
<a href="#cl-3179">3179</a>
|
4098 |
-
<a href="#cl-3180">3180</a>
|
4099 |
-
<a href="#cl-3181">3181</a>
|
4100 |
-
<a href="#cl-3182">3182</a>
|
4101 |
-
<a href="#cl-3183">3183</a>
|
4102 |
-
<a href="#cl-3184">3184</a>
|
4103 |
-
<a href="#cl-3185">3185</a>
|
4104 |
-
<a href="#cl-3186">3186</a>
|
4105 |
-
<a href="#cl-3187">3187</a>
|
4106 |
-
<a href="#cl-3188">3188</a>
|
4107 |
-
<a href="#cl-3189">3189</a>
|
4108 |
-
<a href="#cl-3190">3190</a>
|
4109 |
-
<a href="#cl-3191">3191</a>
|
4110 |
-
<a href="#cl-3192">3192</a>
|
4111 |
-
<a href="#cl-3193">3193</a>
|
4112 |
-
<a href="#cl-3194">3194</a>
|
4113 |
-
<a href="#cl-3195">3195</a>
|
4114 |
-
<a href="#cl-3196">3196</a>
|
4115 |
-
<a href="#cl-3197">3197</a>
|
4116 |
-
<a href="#cl-3198">3198</a>
|
4117 |
-
<a href="#cl-3199">3199</a>
|
4118 |
-
<a href="#cl-3200">3200</a>
|
4119 |
-
<a href="#cl-3201">3201</a>
|
4120 |
-
<a href="#cl-3202">3202</a>
|
4121 |
-
<a href="#cl-3203">3203</a>
|
4122 |
-
<a href="#cl-3204">3204</a>
|
4123 |
-
<a href="#cl-3205">3205</a>
|
4124 |
-
<a href="#cl-3206">3206</a>
|
4125 |
-
<a href="#cl-3207">3207</a>
|
4126 |
-
<a href="#cl-3208">3208</a>
|
4127 |
-
<a href="#cl-3209">3209</a>
|
4128 |
-
<a href="#cl-3210">3210</a>
|
4129 |
-
<a href="#cl-3211">3211</a>
|
4130 |
-
<a href="#cl-3212">3212</a>
|
4131 |
-
<a href="#cl-3213">3213</a>
|
4132 |
-
<a href="#cl-3214">3214</a>
|
4133 |
-
<a href="#cl-3215">3215</a>
|
4134 |
-
<a href="#cl-3216">3216</a>
|
4135 |
-
<a href="#cl-3217">3217</a>
|
4136 |
-
<a href="#cl-3218">3218</a>
|
4137 |
-
<a href="#cl-3219">3219</a>
|
4138 |
-
<a href="#cl-3220">3220</a>
|
4139 |
-
<a href="#cl-3221">3221</a>
|
4140 |
-
<a href="#cl-3222">3222</a>
|
4141 |
-
<a href="#cl-3223">3223</a>
|
4142 |
-
<a href="#cl-3224">3224</a>
|
4143 |
-
<a href="#cl-3225">3225</a>
|
4144 |
-
<a href="#cl-3226">3226</a>
|
4145 |
-
<a href="#cl-3227">3227</a>
|
4146 |
-
<a href="#cl-3228">3228</a>
|
4147 |
-
<a href="#cl-3229">3229</a>
|
4148 |
-
<a href="#cl-3230">3230</a>
|
4149 |
-
<a href="#cl-3231">3231</a>
|
4150 |
-
<a href="#cl-3232">3232</a>
|
4151 |
-
<a href="#cl-3233">3233</a>
|
4152 |
-
<a href="#cl-3234">3234</a>
|
4153 |
-
<a href="#cl-3235">3235</a>
|
4154 |
-
<a href="#cl-3236">3236</a>
|
4155 |
-
<a href="#cl-3237">3237</a>
|
4156 |
-
<a href="#cl-3238">3238</a>
|
4157 |
-
<a href="#cl-3239">3239</a>
|
4158 |
-
<a href="#cl-3240">3240</a>
|
4159 |
-
<a href="#cl-3241">3241</a>
|
4160 |
-
<a href="#cl-3242">3242</a>
|
4161 |
-
<a href="#cl-3243">3243</a>
|
4162 |
-
<a href="#cl-3244">3244</a>
|
4163 |
-
<a href="#cl-3245">3245</a>
|
4164 |
-
<a href="#cl-3246">3246</a>
|
4165 |
-
<a href="#cl-3247">3247</a>
|
4166 |
-
<a href="#cl-3248">3248</a>
|
4167 |
-
<a href="#cl-3249">3249</a>
|
4168 |
-
<a href="#cl-3250">3250</a>
|
4169 |
-
<a href="#cl-3251">3251</a>
|
4170 |
-
<a href="#cl-3252">3252</a>
|
4171 |
-
<a href="#cl-3253">3253</a>
|
4172 |
-
<a href="#cl-3254">3254</a>
|
4173 |
-
<a href="#cl-3255">3255</a>
|
4174 |
-
<a href="#cl-3256">3256</a>
|
4175 |
-
<a href="#cl-3257">3257</a>
|
4176 |
-
<a href="#cl-3258">3258</a>
|
4177 |
-
<a href="#cl-3259">3259</a>
|
4178 |
-
<a href="#cl-3260">3260</a>
|
4179 |
-
<a href="#cl-3261">3261</a>
|
4180 |
-
<a href="#cl-3262">3262</a>
|
4181 |
-
<a href="#cl-3263">3263</a>
|
4182 |
-
<a href="#cl-3264">3264</a>
|
4183 |
-
<a href="#cl-3265">3265</a>
|
4184 |
-
<a href="#cl-3266">3266</a>
|
4185 |
-
<a href="#cl-3267">3267</a>
|
4186 |
-
<a href="#cl-3268">3268</a>
|
4187 |
-
<a href="#cl-3269">3269</a>
|
4188 |
-
<a href="#cl-3270">3270</a>
|
4189 |
-
<a href="#cl-3271">3271</a>
|
4190 |
-
<a href="#cl-3272">3272</a>
|
4191 |
-
<a href="#cl-3273">3273</a>
|
4192 |
-
<a href="#cl-3274">3274</a>
|
4193 |
-
<a href="#cl-3275">3275</a>
|
4194 |
-
<a href="#cl-3276">3276</a>
|
4195 |
-
<a href="#cl-3277">3277</a>
|
4196 |
-
<a href="#cl-3278">3278</a>
|
4197 |
-
<a href="#cl-3279">3279</a>
|
4198 |
-
<a href="#cl-3280">3280</a>
|
4199 |
-
<a href="#cl-3281">3281</a>
|
4200 |
-
<a href="#cl-3282">3282</a>
|
4201 |
-
<a href="#cl-3283">3283</a>
|
4202 |
-
<a href="#cl-3284">3284</a>
|
4203 |
-
<a href="#cl-3285">3285</a>
|
4204 |
-
<a href="#cl-3286">3286</a>
|
4205 |
-
<a href="#cl-3287">3287</a>
|
4206 |
-
<a href="#cl-3288">3288</a>
|
4207 |
-
<a href="#cl-3289">3289</a>
|
4208 |
-
<a href="#cl-3290">3290</a>
|
4209 |
-
<a href="#cl-3291">3291</a>
|
4210 |
-
<a href="#cl-3292">3292</a>
|
4211 |
-
<a href="#cl-3293">3293</a>
|
4212 |
-
<a href="#cl-3294">3294</a>
|
4213 |
-
<a href="#cl-3295">3295</a>
|
4214 |
-
<a href="#cl-3296">3296</a>
|
4215 |
-
<a href="#cl-3297">3297</a>
|
4216 |
-
<a href="#cl-3298">3298</a>
|
4217 |
-
<a href="#cl-3299">3299</a>
|
4218 |
-
<a href="#cl-3300">3300</a>
|
4219 |
-
<a href="#cl-3301">3301</a>
|
4220 |
-
<a href="#cl-3302">3302</a>
|
4221 |
-
<a href="#cl-3303">3303</a>
|
4222 |
-
<a href="#cl-3304">3304</a>
|
4223 |
-
<a href="#cl-3305">3305</a>
|
4224 |
-
<a href="#cl-3306">3306</a>
|
4225 |
-
<a href="#cl-3307">3307</a>
|
4226 |
-
<a href="#cl-3308">3308</a>
|
4227 |
-
<a href="#cl-3309">3309</a>
|
4228 |
-
<a href="#cl-3310">3310</a>
|
4229 |
-
<a href="#cl-3311">3311</a>
|
4230 |
-
<a href="#cl-3312">3312</a>
|
4231 |
-
<a href="#cl-3313">3313</a>
|
4232 |
-
<a href="#cl-3314">3314</a>
|
4233 |
-
<a href="#cl-3315">3315</a>
|
4234 |
-
<a href="#cl-3316">3316</a>
|
4235 |
-
<a href="#cl-3317">3317</a>
|
4236 |
-
<a href="#cl-3318">3318</a>
|
4237 |
-
<a href="#cl-3319">3319</a>
|
4238 |
-
<a href="#cl-3320">3320</a>
|
4239 |
-
<a href="#cl-3321">3321</a>
|
4240 |
-
<a href="#cl-3322">3322</a>
|
4241 |
-
<a href="#cl-3323">3323</a>
|
4242 |
-
<a href="#cl-3324">3324</a>
|
4243 |
-
<a href="#cl-3325">3325</a>
|
4244 |
-
<a href="#cl-3326">3326</a>
|
4245 |
-
<a href="#cl-3327">3327</a>
|
4246 |
-
<a href="#cl-3328">3328</a>
|
4247 |
-
<a href="#cl-3329">3329</a>
|
4248 |
-
<a href="#cl-3330">3330</a>
|
4249 |
-
<a href="#cl-3331">3331</a>
|
4250 |
-
<a href="#cl-3332">3332</a>
|
4251 |
-
<a href="#cl-3333">3333</a>
|
4252 |
-
<a href="#cl-3334">3334</a>
|
4253 |
-
<a href="#cl-3335">3335</a>
|
4254 |
-
<a href="#cl-3336">3336</a>
|
4255 |
-
<a href="#cl-3337">3337</a>
|
4256 |
-
<a href="#cl-3338">3338</a>
|
4257 |
-
<a href="#cl-3339">3339</a>
|
4258 |
-
<a href="#cl-3340">3340</a>
|
4259 |
-
<a href="#cl-3341">3341</a>
|
4260 |
-
<a href="#cl-3342">3342</a>
|
4261 |
-
<a href="#cl-3343">3343</a>
|
4262 |
-
<a href="#cl-3344">3344</a>
|
4263 |
-
<a href="#cl-3345">3345</a>
|
4264 |
-
<a href="#cl-3346">3346</a>
|
4265 |
-
<a href="#cl-3347">3347</a>
|
4266 |
-
<a href="#cl-3348">3348</a>
|
4267 |
-
<a href="#cl-3349">3349</a>
|
4268 |
-
<a href="#cl-3350">3350</a>
|
4269 |
-
<a href="#cl-3351">3351</a>
|
4270 |
-
<a href="#cl-3352">3352</a>
|
4271 |
-
<a href="#cl-3353">3353</a>
|
4272 |
-
<a href="#cl-3354">3354</a>
|
4273 |
-
<a href="#cl-3355">3355</a>
|
4274 |
-
<a href="#cl-3356">3356</a>
|
4275 |
-
<a href="#cl-3357">3357</a>
|
4276 |
-
<a href="#cl-3358">3358</a>
|
4277 |
-
<a href="#cl-3359">3359</a>
|
4278 |
-
<a href="#cl-3360">3360</a>
|
4279 |
-
<a href="#cl-3361">3361</a>
|
4280 |
-
<a href="#cl-3362">3362</a>
|
4281 |
-
<a href="#cl-3363">3363</a>
|
4282 |
-
<a href="#cl-3364">3364</a>
|
4283 |
-
<a href="#cl-3365">3365</a>
|
4284 |
-
<a href="#cl-3366">3366</a>
|
4285 |
-
<a href="#cl-3367">3367</a>
|
4286 |
-
<a href="#cl-3368">3368</a>
|
4287 |
-
<a href="#cl-3369">3369</a>
|
4288 |
-
<a href="#cl-3370">3370</a>
|
4289 |
-
<a href="#cl-3371">3371</a>
|
4290 |
-
<a href="#cl-3372">3372</a>
|
4291 |
-
<a href="#cl-3373">3373</a>
|
4292 |
-
<a href="#cl-3374">3374</a>
|
4293 |
-
<a href="#cl-3375">3375</a>
|
4294 |
-
<a href="#cl-3376">3376</a>
|
4295 |
-
<a href="#cl-3377">3377</a>
|
4296 |
-
<a href="#cl-3378">3378</a>
|
4297 |
-
<a href="#cl-3379">3379</a>
|
4298 |
-
<a href="#cl-3380">3380</a>
|
4299 |
-
<a href="#cl-3381">3381</a>
|
4300 |
-
<a href="#cl-3382">3382</a>
|
4301 |
-
<a href="#cl-3383">3383</a>
|
4302 |
-
<a href="#cl-3384">3384</a>
|
4303 |
-
<a href="#cl-3385">3385</a>
|
4304 |
-
<a href="#cl-3386">3386</a>
|
4305 |
-
<a href="#cl-3387">3387</a>
|
4306 |
-
<a href="#cl-3388">3388</a>
|
4307 |
-
<a href="#cl-3389">3389</a>
|
4308 |
-
<a href="#cl-3390">3390</a>
|
4309 |
-
<a href="#cl-3391">3391</a>
|
4310 |
-
<a href="#cl-3392">3392</a>
|
4311 |
-
<a href="#cl-3393">3393</a>
|
4312 |
-
<a href="#cl-3394">3394</a>
|
4313 |
-
<a href="#cl-3395">3395</a>
|
4314 |
-
<a href="#cl-3396">3396</a>
|
4315 |
-
<a href="#cl-3397">3397</a>
|
4316 |
-
<a href="#cl-3398">3398</a>
|
4317 |
-
<a href="#cl-3399">3399</a>
|
4318 |
-
<a href="#cl-3400">3400</a>
|
4319 |
-
<a href="#cl-3401">3401</a>
|
4320 |
-
<a href="#cl-3402">3402</a>
|
4321 |
-
<a href="#cl-3403">3403</a>
|
4322 |
-
<a href="#cl-3404">3404</a>
|
4323 |
-
<a href="#cl-3405">3405</a>
|
4324 |
-
<a href="#cl-3406">3406</a>
|
4325 |
-
<a href="#cl-3407">3407</a>
|
4326 |
-
<a href="#cl-3408">3408</a>
|
4327 |
-
<a href="#cl-3409">3409</a>
|
4328 |
-
<a href="#cl-3410">3410</a>
|
4329 |
-
<a href="#cl-3411">3411</a>
|
4330 |
-
<a href="#cl-3412">3412</a>
|
4331 |
-
<a href="#cl-3413">3413</a>
|
4332 |
-
<a href="#cl-3414">3414</a>
|
4333 |
-
<a href="#cl-3415">3415</a>
|
4334 |
-
<a href="#cl-3416">3416</a>
|
4335 |
-
<a href="#cl-3417">3417</a>
|
4336 |
-
<a href="#cl-3418">3418</a>
|
4337 |
-
<a href="#cl-3419">3419</a>
|
4338 |
-
<a href="#cl-3420">3420</a>
|
4339 |
-
<a href="#cl-3421">3421</a>
|
4340 |
-
<a href="#cl-3422">3422</a>
|
4341 |
-
<a href="#cl-3423">3423</a>
|
4342 |
-
<a href="#cl-3424">3424</a>
|
4343 |
-
<a href="#cl-3425">3425</a>
|
4344 |
-
<a href="#cl-3426">3426</a>
|
4345 |
-
<a href="#cl-3427">3427</a>
|
4346 |
-
<a href="#cl-3428">3428</a>
|
4347 |
-
<a href="#cl-3429">3429</a>
|
4348 |
-
<a href="#cl-3430">3430</a>
|
4349 |
-
<a href="#cl-3431">3431</a>
|
4350 |
-
<a href="#cl-3432">3432</a>
|
4351 |
-
<a href="#cl-3433">3433</a>
|
4352 |
-
<a href="#cl-3434">3434</a>
|
4353 |
-
<a href="#cl-3435">3435</a>
|
4354 |
-
<a href="#cl-3436">3436</a>
|
4355 |
-
<a href="#cl-3437">3437</a>
|
4356 |
-
<a href="#cl-3438">3438</a>
|
4357 |
-
<a href="#cl-3439">3439</a>
|
4358 |
-
<a href="#cl-3440">3440</a>
|
4359 |
-
<a href="#cl-3441">3441</a>
|
4360 |
-
<a href="#cl-3442">3442</a>
|
4361 |
-
<a href="#cl-3443">3443</a>
|
4362 |
-
<a href="#cl-3444">3444</a>
|
4363 |
-
<a href="#cl-3445">3445</a>
|
4364 |
-
<a href="#cl-3446">3446</a>
|
4365 |
-
<a href="#cl-3447">3447</a>
|
4366 |
-
<a href="#cl-3448">3448</a>
|
4367 |
-
<a href="#cl-3449">3449</a>
|
4368 |
-
<a href="#cl-3450">3450</a>
|
4369 |
-
<a href="#cl-3451">3451</a>
|
4370 |
-
<a href="#cl-3452">3452</a>
|
4371 |
-
<a href="#cl-3453">3453</a>
|
4372 |
-
<a href="#cl-3454">3454</a>
|
4373 |
-
<a href="#cl-3455">3455</a>
|
4374 |
-
<a href="#cl-3456">3456</a>
|
4375 |
-
<a href="#cl-3457">3457</a>
|
4376 |
-
<a href="#cl-3458">3458</a>
|
4377 |
-
<a href="#cl-3459">3459</a>
|
4378 |
-
<a href="#cl-3460">3460</a>
|
4379 |
-
<a href="#cl-3461">3461</a>
|
4380 |
-
<a href="#cl-3462">3462</a>
|
4381 |
-
<a href="#cl-3463">3463</a>
|
4382 |
-
<a href="#cl-3464">3464</a>
|
4383 |
-
<a href="#cl-3465">3465</a>
|
4384 |
-
<a href="#cl-3466">3466</a>
|
4385 |
-
<a href="#cl-3467">3467</a>
|
4386 |
-
<a href="#cl-3468">3468</a>
|
4387 |
-
<a href="#cl-3469">3469</a>
|
4388 |
-
<a href="#cl-3470">3470</a>
|
4389 |
-
<a href="#cl-3471">3471</a>
|
4390 |
-
<a href="#cl-3472">3472</a>
|
4391 |
-
<a href="#cl-3473">3473</a>
|
4392 |
-
<a href="#cl-3474">3474</a>
|
4393 |
-
<a href="#cl-3475">3475</a>
|
4394 |
-
<a href="#cl-3476">3476</a>
|
4395 |
-
<a href="#cl-3477">3477</a>
|
4396 |
-
<a href="#cl-3478">3478</a>
|
4397 |
-
<a href="#cl-3479">3479</a>
|
4398 |
-
<a href="#cl-3480">3480</a>
|
4399 |
-
<a href="#cl-3481">3481</a>
|
4400 |
-
<a href="#cl-3482">3482</a>
|
4401 |
-
<a href="#cl-3483">3483</a>
|
4402 |
-
<a href="#cl-3484">3484</a>
|
4403 |
-
<a href="#cl-3485">3485</a>
|
4404 |
-
<a href="#cl-3486">3486</a>
|
4405 |
-
<a href="#cl-3487">3487</a>
|
4406 |
-
<a href="#cl-3488">3488</a>
|
4407 |
-
<a href="#cl-3489">3489</a>
|
4408 |
-
<a href="#cl-3490">3490</a>
|
4409 |
-
<a href="#cl-3491">3491</a>
|
4410 |
-
<a href="#cl-3492">3492</a>
|
4411 |
-
<a href="#cl-3493">3493</a>
|
4412 |
-
<a href="#cl-3494">3494</a>
|
4413 |
-
<a href="#cl-3495">3495</a>
|
4414 |
-
<a href="#cl-3496">3496</a>
|
4415 |
-
<a href="#cl-3497">3497</a>
|
4416 |
-
<a href="#cl-3498">3498</a>
|
4417 |
-
<a href="#cl-3499">3499</a>
|
4418 |
-
<a href="#cl-3500">3500</a>
|
4419 |
-
<a href="#cl-3501">3501</a>
|
4420 |
-
<a href="#cl-3502">3502</a>
|
4421 |
-
<a href="#cl-3503">3503</a>
|
4422 |
-
<a href="#cl-3504">3504</a>
|
4423 |
-
<a href="#cl-3505">3505</a>
|
4424 |
-
<a href="#cl-3506">3506</a>
|
4425 |
-
<a href="#cl-3507">3507</a>
|
4426 |
-
<a href="#cl-3508">3508</a>
|
4427 |
-
<a href="#cl-3509">3509</a>
|
4428 |
-
<a href="#cl-3510">3510</a>
|
4429 |
-
<a href="#cl-3511">3511</a>
|
4430 |
-
<a href="#cl-3512">3512</a>
|
4431 |
-
<a href="#cl-3513">3513</a>
|
4432 |
-
<a href="#cl-3514">3514</a>
|
4433 |
-
<a href="#cl-3515">3515</a>
|
4434 |
-
<a href="#cl-3516">3516</a>
|
4435 |
-
<a href="#cl-3517">3517</a>
|
4436 |
-
<a href="#cl-3518">3518</a>
|
4437 |
-
<a href="#cl-3519">3519</a>
|
4438 |
-
<a href="#cl-3520">3520</a>
|
4439 |
-
<a href="#cl-3521">3521</a>
|
4440 |
-
<a href="#cl-3522">3522</a>
|
4441 |
-
<a href="#cl-3523">3523</a>
|
4442 |
-
<a href="#cl-3524">3524</a>
|
4443 |
-
<a href="#cl-3525">3525</a>
|
4444 |
-
<a href="#cl-3526">3526</a>
|
4445 |
-
<a href="#cl-3527">3527</a>
|
4446 |
-
<a href="#cl-3528">3528</a>
|
4447 |
-
<a href="#cl-3529">3529</a>
|
4448 |
-
<a href="#cl-3530">3530</a>
|
4449 |
-
<a href="#cl-3531">3531</a>
|
4450 |
-
<a href="#cl-3532">3532</a>
|
4451 |
-
<a href="#cl-3533">3533</a>
|
4452 |
-
<a href="#cl-3534">3534</a>
|
4453 |
-
<a href="#cl-3535">3535</a>
|
4454 |
-
<a href="#cl-3536">3536</a>
|
4455 |
-
<a href="#cl-3537">3537</a>
|
4456 |
-
<a href="#cl-3538">3538</a>
|
4457 |
-
<a href="#cl-3539">3539</a>
|
4458 |
-
<a href="#cl-3540">3540</a>
|
4459 |
-
<a href="#cl-3541">3541</a>
|
4460 |
-
<a href="#cl-3542">3542</a>
|
4461 |
-
<a href="#cl-3543">3543</a>
|
4462 |
-
<a href="#cl-3544">3544</a>
|
4463 |
-
<a href="#cl-3545">3545</a>
|
4464 |
-
<a href="#cl-3546">3546</a>
|
4465 |
-
<a href="#cl-3547">3547</a>
|
4466 |
-
<a href="#cl-3548">3548</a>
|
4467 |
-
<a href="#cl-3549">3549</a>
|
4468 |
-
<a href="#cl-3550">3550</a>
|
4469 |
-
<a href="#cl-3551">3551</a>
|
4470 |
-
<a href="#cl-3552">3552</a>
|
4471 |
-
<a href="#cl-3553">3553</a>
|
4472 |
-
<a href="#cl-3554">3554</a>
|
4473 |
-
<a href="#cl-3555">3555</a>
|
4474 |
-
<a href="#cl-3556">3556</a>
|
4475 |
-
<a href="#cl-3557">3557</a>
|
4476 |
-
<a href="#cl-3558">3558</a>
|
4477 |
-
<a href="#cl-3559">3559</a>
|
4478 |
-
<a href="#cl-3560">3560</a>
|
4479 |
-
<a href="#cl-3561">3561</a>
|
4480 |
-
<a href="#cl-3562">3562</a>
|
4481 |
-
<a href="#cl-3563">3563</a>
|
4482 |
-
<a href="#cl-3564">3564</a>
|
4483 |
-
<a href="#cl-3565">3565</a>
|
4484 |
-
<a href="#cl-3566">3566</a>
|
4485 |
-
<a href="#cl-3567">3567</a>
|
4486 |
-
<a href="#cl-3568">3568</a>
|
4487 |
-
<a href="#cl-3569">3569</a>
|
4488 |
-
<a href="#cl-3570">3570</a>
|
4489 |
-
<a href="#cl-3571">3571</a>
|
4490 |
-
<a href="#cl-3572">3572</a>
|
4491 |
-
<a href="#cl-3573">3573</a>
|
4492 |
-
<a href="#cl-3574">3574</a>
|
4493 |
-
<a href="#cl-3575">3575</a>
|
4494 |
-
<a href="#cl-3576">3576</a>
|
4495 |
-
<a href="#cl-3577">3577</a>
|
4496 |
-
<a href="#cl-3578">3578</a>
|
4497 |
-
<a href="#cl-3579">3579</a>
|
4498 |
-
<a href="#cl-3580">3580</a>
|
4499 |
-
<a href="#cl-3581">3581</a>
|
4500 |
-
<a href="#cl-3582">3582</a>
|
4501 |
-
<a href="#cl-3583">3583</a>
|
4502 |
-
<a href="#cl-3584">3584</a>
|
4503 |
-
<a href="#cl-3585">3585</a>
|
4504 |
-
<a href="#cl-3586">3586</a>
|
4505 |
-
<a href="#cl-3587">3587</a>
|
4506 |
-
<a href="#cl-3588">3588</a>
|
4507 |
-
<a href="#cl-3589">3589</a>
|
4508 |
-
<a href="#cl-3590">3590</a>
|
4509 |
-
<a href="#cl-3591">3591</a>
|
4510 |
-
<a href="#cl-3592">3592</a>
|
4511 |
-
<a href="#cl-3593">3593</a>
|
4512 |
-
<a href="#cl-3594">3594</a>
|
4513 |
-
<a href="#cl-3595">3595</a>
|
4514 |
-
<a href="#cl-3596">3596</a>
|
4515 |
-
<a href="#cl-3597">3597</a>
|
4516 |
-
<a href="#cl-3598">3598</a>
|
4517 |
-
<a href="#cl-3599">3599</a>
|
4518 |
-
<a href="#cl-3600">3600</a>
|
4519 |
-
<a href="#cl-3601">3601</a>
|
4520 |
-
<a href="#cl-3602">3602</a>
|
4521 |
-
<a href="#cl-3603">3603</a>
|
4522 |
-
<a href="#cl-3604">3604</a>
|
4523 |
-
<a href="#cl-3605">3605</a>
|
4524 |
-
<a href="#cl-3606">3606</a>
|
4525 |
-
<a href="#cl-3607">3607</a>
|
4526 |
-
<a href="#cl-3608">3608</a>
|
4527 |
-
<a href="#cl-3609">3609</a>
|
4528 |
-
<a href="#cl-3610">3610</a>
|
4529 |
-
<a href="#cl-3611">3611</a>
|
4530 |
-
<a href="#cl-3612">3612</a>
|
4531 |
-
<a href="#cl-3613">3613</a>
|
4532 |
-
<a href="#cl-3614">3614</a>
|
4533 |
-
<a href="#cl-3615">3615</a>
|
4534 |
-
<a href="#cl-3616">3616</a>
|
4535 |
-
<a href="#cl-3617">3617</a>
|
4536 |
-
<a href="#cl-3618">3618</a>
|
4537 |
-
<a href="#cl-3619">3619</a>
|
4538 |
-
<a href="#cl-3620">3620</a>
|
4539 |
-
<a href="#cl-3621">3621</a>
|
4540 |
-
<a href="#cl-3622">3622</a>
|
4541 |
-
<a href="#cl-3623">3623</a>
|
4542 |
-
<a href="#cl-3624">3624</a>
|
4543 |
-
<a href="#cl-3625">3625</a>
|
4544 |
-
<a href="#cl-3626">3626</a>
|
4545 |
-
<a href="#cl-3627">3627</a>
|
4546 |
-
<a href="#cl-3628">3628</a>
|
4547 |
-
<a href="#cl-3629">3629</a>
|
4548 |
-
<a href="#cl-3630">3630</a>
|
4549 |
-
<a href="#cl-3631">3631</a>
|
4550 |
-
<a href="#cl-3632">3632</a>
|
4551 |
-
<a href="#cl-3633">3633</a>
|
4552 |
-
<a href="#cl-3634">3634</a>
|
4553 |
-
<a href="#cl-3635">3635</a>
|
4554 |
-
<a href="#cl-3636">3636</a>
|
4555 |
-
<a href="#cl-3637">3637</a>
|
4556 |
-
<a href="#cl-3638">3638</a>
|
4557 |
-
<a href="#cl-3639">3639</a>
|
4558 |
-
<a href="#cl-3640">3640</a>
|
4559 |
-
<a href="#cl-3641">3641</a>
|
4560 |
-
<a href="#cl-3642">3642</a>
|
4561 |
-
<a href="#cl-3643">3643</a>
|
4562 |
-
<a href="#cl-3644">3644</a>
|
4563 |
-
<a href="#cl-3645">3645</a>
|
4564 |
-
<a href="#cl-3646">3646</a>
|
4565 |
-
<a href="#cl-3647">3647</a>
|
4566 |
-
<a href="#cl-3648">3648</a>
|
4567 |
-
<a href="#cl-3649">3649</a>
|
4568 |
-
<a href="#cl-3650">3650</a>
|
4569 |
-
<a href="#cl-3651">3651</a>
|
4570 |
-
<a href="#cl-3652">3652</a>
|
4571 |
-
<a href="#cl-3653">3653</a>
|
4572 |
-
<a href="#cl-3654">3654</a>
|
4573 |
-
<a href="#cl-3655">3655</a>
|
4574 |
-
<a href="#cl-3656">3656</a>
|
4575 |
-
<a href="#cl-3657">3657</a>
|
4576 |
-
<a href="#cl-3658">3658</a>
|
4577 |
-
<a href="#cl-3659">3659</a>
|
4578 |
-
<a href="#cl-3660">3660</a>
|
4579 |
-
<a href="#cl-3661">3661</a>
|
4580 |
-
<a href="#cl-3662">3662</a>
|
4581 |
-
<a href="#cl-3663">3663</a>
|
4582 |
-
<a href="#cl-3664">3664</a>
|
4583 |
-
<a href="#cl-3665">3665</a>
|
4584 |
-
<a href="#cl-3666">3666</a>
|
4585 |
-
<a href="#cl-3667">3667</a>
|
4586 |
-
<a href="#cl-3668">3668</a>
|
4587 |
-
<a href="#cl-3669">3669</a>
|
4588 |
-
<a href="#cl-3670">3670</a>
|
4589 |
-
<a href="#cl-3671">3671</a>
|
4590 |
-
<a href="#cl-3672">3672</a>
|
4591 |
-
<a href="#cl-3673">3673</a>
|
4592 |
-
<a href="#cl-3674">3674</a>
|
4593 |
-
<a href="#cl-3675">3675</a>
|
4594 |
-
<a href="#cl-3676">3676</a>
|
4595 |
-
<a href="#cl-3677">3677</a>
|
4596 |
-
<a href="#cl-3678">3678</a>
|
4597 |
-
<a href="#cl-3679">3679</a>
|
4598 |
-
<a href="#cl-3680">3680</a>
|
4599 |
-
<a href="#cl-3681">3681</a>
|
4600 |
-
<a href="#cl-3682">3682</a>
|
4601 |
-
<a href="#cl-3683">3683</a>
|
4602 |
-
<a href="#cl-3684">3684</a>
|
4603 |
-
<a href="#cl-3685">3685</a>
|
4604 |
-
<a href="#cl-3686">3686</a>
|
4605 |
-
<a href="#cl-3687">3687</a>
|
4606 |
-
<a href="#cl-3688">3688</a>
|
4607 |
-
<a href="#cl-3689">3689</a>
|
4608 |
-
<a href="#cl-3690">3690</a>
|
4609 |
-
<a href="#cl-3691">3691</a>
|
4610 |
-
<a href="#cl-3692">3692</a>
|
4611 |
-
<a href="#cl-3693">3693</a>
|
4612 |
-
<a href="#cl-3694">3694</a>
|
4613 |
-
<a href="#cl-3695">3695</a>
|
4614 |
-
<a href="#cl-3696">3696</a>
|
4615 |
-
<a href="#cl-3697">3697</a>
|
4616 |
-
<a href="#cl-3698">3698</a>
|
4617 |
-
<a href="#cl-3699">3699</a>
|
4618 |
-
<a href="#cl-3700">3700</a>
|
4619 |
-
<a href="#cl-3701">3701</a>
|
4620 |
-
<a href="#cl-3702">3702</a>
|
4621 |
-
<a href="#cl-3703">3703</a>
|
4622 |
-
<a href="#cl-3704">3704</a>
|
4623 |
-
<a href="#cl-3705">3705</a>
|
4624 |
-
<a href="#cl-3706">3706</a>
|
4625 |
-
<a href="#cl-3707">3707</a>
|
4626 |
-
<a href="#cl-3708">3708</a>
|
4627 |
-
<a href="#cl-3709">3709</a>
|
4628 |
-
<a href="#cl-3710">3710</a>
|
4629 |
-
<a href="#cl-3711">3711</a>
|
4630 |
-
<a href="#cl-3712">3712</a>
|
4631 |
-
<a href="#cl-3713">3713</a>
|
4632 |
-
<a href="#cl-3714">3714</a>
|
4633 |
-
<a href="#cl-3715">3715</a>
|
4634 |
-
<a href="#cl-3716">3716</a>
|
4635 |
-
<a href="#cl-3717">3717</a>
|
4636 |
-
<a href="#cl-3718">3718</a>
|
4637 |
-
<a href="#cl-3719">3719</a>
|
4638 |
-
<a href="#cl-3720">3720</a>
|
4639 |
-
<a href="#cl-3721">3721</a>
|
4640 |
-
<a href="#cl-3722">3722</a>
|
4641 |
-
<a href="#cl-3723">3723</a>
|
4642 |
-
<a href="#cl-3724">3724</a>
|
4643 |
-
<a href="#cl-3725">3725</a>
|
4644 |
-
<a href="#cl-3726">3726</a>
|
4645 |
-
<a href="#cl-3727">3727</a>
|
4646 |
-
<a href="#cl-3728">3728</a>
|
4647 |
-
<a href="#cl-3729">3729</a>
|
4648 |
-
<a href="#cl-3730">3730</a>
|
4649 |
-
<a href="#cl-3731">3731</a>
|
4650 |
-
<a href="#cl-3732">3732</a>
|
4651 |
-
<a href="#cl-3733">3733</a>
|
4652 |
-
<a href="#cl-3734">3734</a>
|
4653 |
-
<a href="#cl-3735">3735</a>
|
4654 |
-
<a href="#cl-3736">3736</a>
|
4655 |
-
<a href="#cl-3737">3737</a>
|
4656 |
-
<a href="#cl-3738">3738</a>
|
4657 |
-
<a href="#cl-3739">3739</a>
|
4658 |
-
<a href="#cl-3740">3740</a>
|
4659 |
-
<a href="#cl-3741">3741</a>
|
4660 |
-
<a href="#cl-3742">3742</a>
|
4661 |
-
<a href="#cl-3743">3743</a>
|
4662 |
-
<a href="#cl-3744">3744</a>
|
4663 |
-
<a href="#cl-3745">3745</a>
|
4664 |
-
<a href="#cl-3746">3746</a>
|
4665 |
-
<a href="#cl-3747">3747</a>
|
4666 |
-
<a href="#cl-3748">3748</a>
|
4667 |
-
<a href="#cl-3749">3749</a>
|
4668 |
-
<a href="#cl-3750">3750</a>
|
4669 |
-
<a href="#cl-3751">3751</a>
|
4670 |
-
<a href="#cl-3752">3752</a>
|
4671 |
-
<a href="#cl-3753">3753</a>
|
4672 |
-
<a href="#cl-3754">3754</a>
|
4673 |
-
<a href="#cl-3755">3755</a>
|
4674 |
-
<a href="#cl-3756">3756</a>
|
4675 |
-
<a href="#cl-3757">3757</a>
|
4676 |
-
<a href="#cl-3758">3758</a>
|
4677 |
-
<a href="#cl-3759">3759</a>
|
4678 |
-
<a href="#cl-3760">3760</a>
|
4679 |
-
<a href="#cl-3761">3761</a>
|
4680 |
-
<a href="#cl-3762">3762</a>
|
4681 |
-
<a href="#cl-3763">3763</a>
|
4682 |
-
<a href="#cl-3764">3764</a>
|
4683 |
-
<a href="#cl-3765">3765</a>
|
4684 |
-
<a href="#cl-3766">3766</a>
|
4685 |
-
<a href="#cl-3767">3767</a>
|
4686 |
-
<a href="#cl-3768">3768</a>
|
4687 |
-
<a href="#cl-3769">3769</a>
|
4688 |
-
<a href="#cl-3770">3770</a>
|
4689 |
-
<a href="#cl-3771">3771</a>
|
4690 |
-
<a href="#cl-3772">3772</a>
|
4691 |
-
<a href="#cl-3773">3773</a>
|
4692 |
-
<a href="#cl-3774">3774</a>
|
4693 |
-
<a href="#cl-3775">3775</a>
|
4694 |
-
<a href="#cl-3776">3776</a>
|
4695 |
-
<a href="#cl-3777">3777</a>
|
4696 |
-
<a href="#cl-3778">3778</a>
|
4697 |
-
<a href="#cl-3779">3779</a>
|
4698 |
-
<a href="#cl-3780">3780</a>
|
4699 |
-
<a href="#cl-3781">3781</a>
|
4700 |
-
<a href="#cl-3782">3782</a>
|
4701 |
-
<a href="#cl-3783">3783</a>
|
4702 |
-
<a href="#cl-3784">3784</a>
|
4703 |
-
<a href="#cl-3785">3785</a>
|
4704 |
-
<a href="#cl-3786">3786</a>
|
4705 |
-
<a href="#cl-3787">3787</a>
|
4706 |
-
<a href="#cl-3788">3788</a>
|
4707 |
-
<a href="#cl-3789">3789</a>
|
4708 |
-
<a href="#cl-3790">3790</a>
|
4709 |
-
<a href="#cl-3791">3791</a>
|
4710 |
-
<a href="#cl-3792">3792</a>
|
4711 |
-
<a href="#cl-3793">3793</a>
|
4712 |
-
<a href="#cl-3794">3794</a>
|
4713 |
-
<a href="#cl-3795">3795</a>
|
4714 |
-
<a href="#cl-3796">3796</a>
|
4715 |
-
<a href="#cl-3797">3797</a>
|
4716 |
-
<a href="#cl-3798">3798</a>
|
4717 |
-
<a href="#cl-3799">3799</a>
|
4718 |
-
<a href="#cl-3800">3800</a>
|
4719 |
-
<a href="#cl-3801">3801</a>
|
4720 |
-
<a href="#cl-3802">3802</a>
|
4721 |
-
<a href="#cl-3803">3803</a>
|
4722 |
-
<a href="#cl-3804">3804</a>
|
4723 |
-
<a href="#cl-3805">3805</a>
|
4724 |
-
<a href="#cl-3806">3806</a>
|
4725 |
-
<a href="#cl-3807">3807</a>
|
4726 |
-
<a href="#cl-3808">3808</a>
|
4727 |
-
<a href="#cl-3809">3809</a>
|
4728 |
-
<a href="#cl-3810">3810</a>
|
4729 |
-
<a href="#cl-3811">3811</a>
|
4730 |
-
<a href="#cl-3812">3812</a>
|
4731 |
-
<a href="#cl-3813">3813</a>
|
4732 |
-
<a href="#cl-3814">3814</a>
|
4733 |
-
<a href="#cl-3815">3815</a>
|
4734 |
-
<a href="#cl-3816">3816</a>
|
4735 |
-
<a href="#cl-3817">3817</a>
|
4736 |
-
<a href="#cl-3818">3818</a>
|
4737 |
-
<a href="#cl-3819">3819</a>
|
4738 |
-
<a href="#cl-3820">3820</a>
|
4739 |
-
<a href="#cl-3821">3821</a>
|
4740 |
-
<a href="#cl-3822">3822</a>
|
4741 |
-
<a href="#cl-3823">3823</a>
|
4742 |
-
<a href="#cl-3824">3824</a>
|
4743 |
-
<a href="#cl-3825">3825</a>
|
4744 |
-
<a href="#cl-3826">3826</a>
|
4745 |
-
<a href="#cl-3827">3827</a>
|
4746 |
-
<a href="#cl-3828">3828</a>
|
4747 |
-
<a href="#cl-3829">3829</a>
|
4748 |
-
<a href="#cl-3830">3830</a>
|
4749 |
-
<a href="#cl-3831">3831</a>
|
4750 |
-
<a href="#cl-3832">3832</a>
|
4751 |
-
<a href="#cl-3833">3833</a>
|
4752 |
-
<a href="#cl-3834">3834</a>
|
4753 |
-
<a href="#cl-3835">3835</a>
|
4754 |
-
<a href="#cl-3836">3836</a>
|
4755 |
-
<a href="#cl-3837">3837</a>
|
4756 |
-
<a href="#cl-3838">3838</a>
|
4757 |
-
<a href="#cl-3839">3839</a>
|
4758 |
-
<a href="#cl-3840">3840</a>
|
4759 |
-
<a href="#cl-3841">3841</a>
|
4760 |
-
<a href="#cl-3842">3842</a>
|
4761 |
-
<a href="#cl-3843">3843</a>
|
4762 |
-
<a href="#cl-3844">3844</a>
|
4763 |
-
<a href="#cl-3845">3845</a>
|
4764 |
-
<a href="#cl-3846">3846</a>
|
4765 |
-
<a href="#cl-3847">3847</a>
|
4766 |
-
<a href="#cl-3848">3848</a>
|
4767 |
-
<a href="#cl-3849">3849</a>
|
4768 |
-
<a href="#cl-3850">3850</a>
|
4769 |
-
<a href="#cl-3851">3851</a>
|
4770 |
-
<a href="#cl-3852">3852</a>
|
4771 |
-
<a href="#cl-3853">3853</a>
|
4772 |
-
<a href="#cl-3854">3854</a>
|
4773 |
-
<a href="#cl-3855">3855</a>
|
4774 |
-
<a href="#cl-3856">3856</a>
|
4775 |
-
<a href="#cl-3857">3857</a>
|
4776 |
-
<a href="#cl-3858">3858</a>
|
4777 |
-
<a href="#cl-3859">3859</a>
|
4778 |
-
<a href="#cl-3860">3860</a>
|
4779 |
-
<a href="#cl-3861">3861</a>
|
4780 |
-
<a href="#cl-3862">3862</a>
|
4781 |
-
<a href="#cl-3863">3863</a>
|
4782 |
-
<a href="#cl-3864">3864</a>
|
4783 |
-
<a href="#cl-3865">3865</a>
|
4784 |
-
<a href="#cl-3866">3866</a>
|
4785 |
-
<a href="#cl-3867">3867</a>
|
4786 |
-
<a href="#cl-3868">3868</a>
|
4787 |
-
<a href="#cl-3869">3869</a>
|
4788 |
-
<a href="#cl-3870">3870</a>
|
4789 |
-
<a href="#cl-3871">3871</a>
|
4790 |
-
<a href="#cl-3872">3872</a>
|
4791 |
-
<a href="#cl-3873">3873</a>
|
4792 |
-
<a href="#cl-3874">3874</a>
|
4793 |
-
<a href="#cl-3875">3875</a>
|
4794 |
-
<a href="#cl-3876">3876</a>
|
4795 |
-
<a href="#cl-3877">3877</a>
|
4796 |
-
<a href="#cl-3878">3878</a>
|
4797 |
-
<a href="#cl-3879">3879</a>
|
4798 |
-
<a href="#cl-3880">3880</a>
|
4799 |
-
<a href="#cl-3881">3881</a>
|
4800 |
-
<a href="#cl-3882">3882</a>
|
4801 |
-
<a href="#cl-3883">3883</a>
|
4802 |
-
<a href="#cl-3884">3884</a>
|
4803 |
-
<a href="#cl-3885">3885</a>
|
4804 |
-
<a href="#cl-3886">3886</a>
|
4805 |
-
<a href="#cl-3887">3887</a>
|
4806 |
-
<a href="#cl-3888">3888</a>
|
4807 |
-
<a href="#cl-3889">3889</a>
|
4808 |
-
<a href="#cl-3890">3890</a>
|
4809 |
-
<a href="#cl-3891">3891</a>
|
4810 |
-
<a href="#cl-3892">3892</a>
|
4811 |
-
<a href="#cl-3893">3893</a>
|
4812 |
-
<a href="#cl-3894">3894</a>
|
4813 |
-
<a href="#cl-3895">3895</a>
|
4814 |
-
<a href="#cl-3896">3896</a>
|
4815 |
-
<a href="#cl-3897">3897</a>
|
4816 |
-
<a href="#cl-3898">3898</a>
|
4817 |
-
<a href="#cl-3899">3899</a>
|
4818 |
-
<a href="#cl-3900">3900</a>
|
4819 |
-
<a href="#cl-3901">3901</a>
|
4820 |
-
<a href="#cl-3902">3902</a>
|
4821 |
-
<a href="#cl-3903">3903</a>
|
4822 |
-
<a href="#cl-3904">3904</a>
|
4823 |
-
<a href="#cl-3905">3905</a>
|
4824 |
-
<a href="#cl-3906">3906</a>
|
4825 |
-
<a href="#cl-3907">3907</a>
|
4826 |
-
<a href="#cl-3908">3908</a>
|
4827 |
-
<a href="#cl-3909">3909</a>
|
4828 |
-
<a href="#cl-3910">3910</a>
|
4829 |
-
<a href="#cl-3911">3911</a>
|
4830 |
-
<a href="#cl-3912">3912</a>
|
4831 |
-
<a href="#cl-3913">3913</a>
|
4832 |
-
<a href="#cl-3914">3914</a>
|
4833 |
-
<a href="#cl-3915">3915</a>
|
4834 |
-
</pre></div></td>
|
4835 |
-
<td class="code"><div class="highlight"><pre>
|
4836 |
-
<a name="cl-1"></a>msgid ""
|
4837 |
-
<a name="cl-2"></a>msgstr ""
|
4838 |
-
<a name="cl-3"></a>"Project-Id-Version: NextCellent Gallery suomeksi\n"
|
4839 |
-
<a name="cl-4"></a>"POT-Creation-Date: 2014-09-17 16:36+0100\n"
|
4840 |
-
<a name="cl-5"></a>"PO-Revision-Date: \n"
|
4841 |
-
<a name="cl-6"></a>"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
4842 |
-
<a name="cl-7"></a>"Language-Team: Vesa Tiirikainen <vesa@tiirikainen.fi>\n"
|
4843 |
-
<a name="cl-8"></a>"Language: fi\n"
|
4844 |
-
<a name="cl-9"></a>"MIME-Version: 1.0\n"
|
4845 |
-
<a name="cl-10"></a>"Content-Type: text/plain; charset=UTF-8\n"
|
4846 |
-
<a name="cl-11"></a>"Content-Transfer-Encoding: 8bit\n"
|
4847 |
-
<a name="cl-12"></a>"X-Poedit-SourceCharset: UTF-8\n"
|
4848 |
-
<a name="cl-13"></a>"X-Generator: Poedit 1.6.9\n"
|
4849 |
-
<a name="cl-14"></a>
|
4850 |
-
<a name="cl-15"></a>#: ../admin/about.php:9 ../admin/admin.php:140 ../admin/admin.php:186
|
4851 |
-
<a name="cl-16"></a>msgid "About"
|
4852 |
-
<a name="cl-17"></a>msgstr "Lisäosasta"
|
4853 |
-
<a name="cl-18"></a>
|
4854 |
-
<a name="cl-19"></a>#: ../admin/about.php:12
|
4855 |
-
<a name="cl-20"></a>msgid "Contributors"
|
4856 |
-
<a name="cl-21"></a>msgstr "Tukijat"
|
4857 |
-
<a name="cl-22"></a>
|
4858 |
-
<a name="cl-23"></a>#: ../admin/about.php:14
|
4859 |
-
<a name="cl-24"></a>msgid ""
|
4860 |
-
<a name="cl-25"></a>"This plugin is made possible by the great work of a lot of people. A special "
|
4861 |
-
<a name="cl-26"></a>"thanks the following people:"
|
4862 |
-
<a name="cl-27"></a>msgstr ""
|
4863 |
-
<a name="cl-28"></a>"Monien ihmisten hieno työ on tehnyt tämän lisäosan mahdolliseksi. "
|
4864 |
-
<a name="cl-29"></a>"Erityiskiitokset seuraaville ihmisille: "
|
4865 |
-
<a name="cl-30"></a>
|
4866 |
-
<a name="cl-31"></a>#: ../admin/about.php:16
|
4867 |
-
<a name="cl-32"></a>msgid "for their great documented code"
|
4868 |
-
<a name="cl-33"></a>msgstr "heidän hienosta dokumentoidusta koodistaan"
|
4869 |
-
<a name="cl-34"></a>
|
4870 |
-
<a name="cl-35"></a>#: ../admin/about.php:17
|
4871 |
-
<a name="cl-36"></a>msgid "for jQuery, which is the best Web2.0 framework"
|
4872 |
-
<a name="cl-37"></a>msgstr "jQuery:sta, parhaasta Web2.0 kehikosta"
|
4873 |
-
<a name="cl-38"></a>
|
4874 |
-
<a name="cl-39"></a>#: ../admin/about.php:18
|
4875 |
-
<a name="cl-40"></a>msgid "for the fantastic PHP Thumbnail Class"
|
4876 |
-
<a name="cl-41"></a>msgstr "fantastisesta PHP Thumbnail -luokasta"
|
4877 |
-
<a name="cl-42"></a>
|
4878 |
-
<a name="cl-43"></a>#: ../admin/about.php:19
|
4879 |
-
<a name="cl-44"></a>msgid "for a lot of very useful plugins and ideas"
|
4880 |
-
<a name="cl-45"></a>msgstr "useista hyvin kätevistä lisäosista ja ideoista"
|
4881 |
-
<a name="cl-46"></a>
|
4882 |
-
<a name="cl-47"></a>#: ../admin/about.php:20
|
4883 |
-
<a name="cl-48"></a>msgid "for Shutter Reloaded, a real lightweight image effect"
|
4884 |
-
<a name="cl-49"></a>msgstr "Shutter Reloadedista - tosi kevyesttä kuvaefektistä"
|
4885 |
-
<a name="cl-50"></a>
|
4886 |
-
<a name="cl-51"></a>#: ../admin/about.php:21
|
4887 |
-
<a name="cl-52"></a>msgid "for the best Media Flash Scripts on earth"
|
4888 |
-
<a name="cl-53"></a>msgstr "maailman parhaista Media Flash -skripteistä"
|
4889 |
-
<a name="cl-54"></a>
|
4890 |
-
<a name="cl-55"></a>#: ../admin/about.php:22
|
4891 |
-
<a name="cl-56"></a>msgid "for the Gallery Icon"
|
4892 |
-
<a name="cl-57"></a>msgstr "Gallerian kuvakkeesta"
|
4893 |
-
<a name="cl-58"></a>
|
4894 |
-
<a name="cl-59"></a>#: ../admin/about.php:23
|
4895 |
-
<a name="cl-60"></a>msgid "for the Watermark plugin"
|
4896 |
-
<a name="cl-61"></a>msgstr "Vesileima-lisäosasta"
|
4897 |
-
<a name="cl-62"></a>
|
4898 |
-
<a name="cl-63"></a>#: ../admin/about.php:24
|
4899 |
-
<a name="cl-64"></a>msgid "for maintaining this fork of NextGen Gallery"
|
4900 |
-
<a name="cl-65"></a>msgstr "tämän NextGen Galleryn seuraajan ylläpidosta"
|
4901 |
-
<a name="cl-66"></a>
|
4902 |
-
<a name="cl-67"></a>#: ../admin/about.php:25
|
4903 |
-
<a name="cl-68"></a>msgid "The original translators for NextGen Gallery, who made the translations"
|
4904 |
-
<a name="cl-69"></a>msgstr "NextGen Gallery alkuperäisistä kääntäjistä, jotka loivat käännökset"
|
4905 |
-
<a name="cl-70"></a>
|
4906 |
-
<a name="cl-71"></a>#: ../admin/about.php:31
|
4907 |
-
<a name="cl-72"></a>msgid "NextCellent"
|
4908 |
-
<a name="cl-73"></a>msgstr "NextCellent"
|
4909 |
-
<a name="cl-74"></a>
|
4910 |
-
<a name="cl-75"></a>#: ../admin/about.php:33
|
4911 |
-
<a name="cl-76"></a>msgid ""
|
4912 |
-
<a name="cl-77"></a>"NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery by "
|
4913 |
-
<a name="cl-78"></a>"Photocrati Media, which is the succesor to the work by Alex Rabe."
|
4914 |
-
<a name="cl-79"></a>msgstr ""
|
4915 |
-
<a name="cl-80"></a>"NextCellent Gallery perustuu NextGen Gallery by Photocrati Median versioon "
|
4916 |
-
<a name="cl-81"></a>"1.9.13, joka on Alex Raben työn suora jatke."
|
4917 |
-
<a name="cl-82"></a>
|
4918 |
-
<a name="cl-83"></a>#: ../admin/about.php:34
|
4919 |
-
<a name="cl-84"></a>msgid "What do you get with NextCellent Gallery?"
|
4920 |
-
<a name="cl-85"></a>msgstr "Mitä saat NextCellent Gallerylla?"
|
4921 |
-
<a name="cl-86"></a>
|
4922 |
-
<a name="cl-87"></a>#: ../admin/about.php:36
|
4923 |
-
<a name="cl-88"></a>msgid "Backward compatibility with NextGEN plugin version (1.9.13)"
|
4924 |
-
<a name="cl-89"></a>msgstr "Taaksepäin yhteensopiva NextGEN -llisäosan versioon (1.9.13)"
|
4925 |
-
<a name="cl-90"></a>
|
4926 |
-
<a name="cl-91"></a>#: ../admin/about.php:37
|
4927 |
-
<a name="cl-92"></a>msgid ""
|
4928 |
-
<a name="cl-93"></a>"Slow evolving code path, made only by NextGEN user's suggestions. Yep, you "
|
4929 |
-
<a name="cl-94"></a>"read it right: slow in counterpart as fast. Older code is good enough to "
|
4930 |
-
<a name="cl-95"></a>"keep a community and it worked (and works) for most people."
|
4931 |
-
<a name="cl-96"></a>msgstr ""
|
4932 |
-
<a name="cl-97"></a>"Hitaasti kehittyvä koodi, jonka muutokset perustuvat ainoastaan NextGENin "
|
4933 |
-
<a name="cl-98"></a>"käyttäjien ehdotuksiin. Yep, olet oikeassa: hidas on nopean vastakohta. "
|
4934 |
-
<a name="cl-99"></a>"Vanhempi koodi on tarpeeksi hyvää säilyttämään yhteisön ja se toimi (ja "
|
4935 |
-
<a name="cl-100"></a>"toimii yhä) useimmilla käyttäjillä."
|
4936 |
-
<a name="cl-101"></a>
|
4937 |
-
<a name="cl-102"></a>#: ../admin/about.php:38
|
4938 |
-
<a name="cl-103"></a>msgid "A reliable way to work with already installed NextGEN galleries."
|
4939 |
-
<a name="cl-104"></a>msgstr ""
|
4940 |
-
<a name="cl-105"></a>"Luotettava tie työskennellä jo asennettujen NextGEN -gallerioiden kanssa."
|
4941 |
-
<a name="cl-106"></a>
|
4942 |
-
<a name="cl-107"></a>#: ../admin/about.php:39
|
4943 |
-
<a name="cl-108"></a>msgid ""
|
4944 |
-
<a name="cl-109"></a>"A place for updating the plugin without using FTP manual updates, but "
|
4945 |
-
<a name="cl-110"></a>"WordPress plugin repository."
|
4946 |
-
<a name="cl-111"></a>msgstr ""
|
4947 |
-
<a name="cl-112"></a>"Lisäosan päivitys suoraan WordPressin lisäosien hakemistosta, ei käsin "
|
4948 |
-
<a name="cl-113"></a>"tehtyjä päivityksiä FTP:llä."
|
4949 |
-
<a name="cl-114"></a>
|
4950 |
-
<a name="cl-115"></a>#: ../admin/about.php:40
|
4951 |
-
<a name="cl-116"></a>msgid "Alternative path preserving backward compatibility (while possible)."
|
4952 |
-
<a name="cl-117"></a>msgstr ""
|
4953 |
-
<a name="cl-118"></a>"Vaihtoehtoinen tie säilyttää yhteensopivuus taaksepäin (aina kun "
|
4954 |
-
<a name="cl-119"></a>"mahdollista)."
|
4955 |
-
<a name="cl-120"></a>
|
4956 |
-
<a name="cl-121"></a>#: ../admin/about.php:46
|
4957 |
-
<a name="cl-122"></a>msgid "How to support us?"
|
4958 |
-
<a name="cl-123"></a>msgstr "Miten tukea meitä?"
|
4959 |
-
<a name="cl-124"></a>
|
4960 |
-
<a name="cl-125"></a>#: ../admin/about.php:48
|
4961 |
-
<a name="cl-126"></a>msgid "There are several ways to contribute:"
|
4962 |
-
<a name="cl-127"></a>msgstr "On useita tapoja tukea: "
|
4963 |
-
<a name="cl-128"></a>
|
4964 |
-
<a name="cl-129"></a>#: ../admin/about.php:50
|
4965 |
-
<a name="cl-130"></a>msgid "Send us bugfixes / code changes"
|
4966 |
-
<a name="cl-131"></a>msgstr "Lähetä meille bugikorjauksia / koodimuutoksia"
|
4967 |
-
<a name="cl-132"></a>
|
4968 |
-
<a name="cl-133"></a>#: ../admin/about.php:50
|
4969 |
-
<a name="cl-134"></a>msgid ""
|
4970 |
-
<a name="cl-135"></a>"The most motivated support for this plugin are your ideas and brain work."
|
4971 |
-
<a name="cl-136"></a>msgstr "Ideasi ja ajatuksesti ovat kaikkein motivoivin tuki tälle lisäosalle."
|
4972 |
-
<a name="cl-137"></a>
|
4973 |
-
<a name="cl-138"></a>#: ../admin/about.php:51
|
4974 |
-
<a name="cl-139"></a>msgid "Translate the plugin"
|
4975 |
-
<a name="cl-140"></a>msgstr "Käännä lisäosa."
|
4976 |
-
<a name="cl-141"></a>
|
4977 |
-
<a name="cl-142"></a>#: ../admin/about.php:51
|
4978 |
-
<a name="cl-143"></a>msgid ""
|
4979 |
-
<a name="cl-144"></a>"To help people to work with this plugin, we would like to have it in all "
|
4980 |
-
<a name="cl-145"></a>"available languages."
|
4981 |
-
<a name="cl-146"></a>msgstr ""
|
4982 |
-
<a name="cl-147"></a>"Jotta ihmiset voivat työskennellä tämän lisäosan kanssa, haluaisimme sen "
|
4983 |
-
<a name="cl-148"></a>"olevan saatavilla kaikilla kielillä."
|
4984 |
-
<a name="cl-149"></a>
|
4985 |
-
<a name="cl-150"></a>#: ../admin/about.php:52
|
4986 |
-
<a name="cl-151"></a>msgid "Place a link to the plugin in your blog/webpage"
|
4987 |
-
<a name="cl-152"></a>msgstr "Pistä linkki lisäosaan blogiisi tai sivustollesi"
|
4988 |
-
<a name="cl-153"></a>
|
4989 |
-
<a name="cl-154"></a>#: ../admin/about.php:52
|
4990 |
-
<a name="cl-155"></a>msgid "Yes, sharing and linking are also supportive and helpful."
|
4991 |
-
<a name="cl-156"></a>msgstr "Kyllä, jakaminen ja linkitys auttavat ja tukevat myös."
|
4992 |
-
<a name="cl-157"></a>
|
4993 |
-
<a name="cl-158"></a>#: ../admin/addgallery.php:35 ../admin/addgallery.php:46
|
4994 |
-
<a name="cl-159"></a>#: ../admin/addgallery.php:58 ../admin/addgallery.php:69 ../admin/album.php:88
|
4995 |
-
<a name="cl-160"></a>#: ../admin/album.php:123 ../admin/album.php:145
|
4996 |
-
<a name="cl-161"></a>#: ../admin/edit-thumbnail.php:19 ../admin/edit-thumbnail.php:22
|
4997 |
-
<a name="cl-162"></a>#: ../admin/manage.php:188 ../admin/publish.php:7 ../admin/publish.php:10
|
4998 |
-
<a name="cl-163"></a>#: ../admin/publish.php:13 ../admin/rotate.php:17 ../admin/rotate.php:20
|
4999 |
-
<a name="cl-164"></a>#: ../admin/showmeta.php:10 ../admin/showmeta.php:13
|
5000 |
-
<a name="cl-165"></a>msgid "Cheatin&#8217; uh?"
|
5001 |
-
<a name="cl-166"></a>msgstr "Huijaatko&#8217; höh?"
|
5002 |
-
<a name="cl-167"></a>
|
5003 |
-
<a name="cl-168"></a>#: ../admin/addgallery.php:51 ../admin/addgallery.php:82
|
5004 |
-
<a name="cl-169"></a>msgid "Upload failed!"
|
5005 |
-
<a name="cl-170"></a>msgstr "Lataus epäonnistui!"
|
5006 |
-
<a name="cl-171"></a>
|
5007 |
-
<a name="cl-172"></a>#: ../admin/addgallery.php:74
|
5008 |
-
<a name="cl-173"></a>msgid "Upload failed! "
|
5009 |
-
<a name="cl-174"></a>msgstr "Lataus epäonnistui!"
|
5010 |
-
<a name="cl-175"></a>
|
5011 |
-
<a name="cl-176"></a>#: ../admin/addgallery.php:79 ../admin/addgallery.php:269
|
5012 |
-
<a name="cl-177"></a>#: ../admin/admin.php:304
|
5013 |
-
<a name="cl-178"></a>msgid "You didn't select a gallery!"
|
5014 |
-
<a name="cl-179"></a>msgstr "Mikään galleria ei ole valittuna !"
|
5015 |
-
<a name="cl-180"></a>
|
5016 |
-
<a name="cl-181"></a>#: ../admin/addgallery.php:149 ../admin/admin.php:131 ../admin/admin.php:175
|
5017 |
-
<a name="cl-182"></a>msgid "Add Gallery / Images"
|
5018 |
-
<a name="cl-183"></a>msgstr "Lisää galleria / kuvia"
|
5019 |
-
<a name="cl-184"></a>
|
5020 |
-
<a name="cl-185"></a>#: ../admin/addgallery.php:169
|
5021 |
-
<a name="cl-186"></a>msgid "Image Files"
|
5022 |
-
<a name="cl-187"></a>msgstr "Kuvatiedostot"
|
5023 |
-
<a name="cl-188"></a>
|
5024 |
-
<a name="cl-189"></a>#: ../admin/addgallery.php:196
|
5025 |
-
<a name="cl-190"></a>msgid "remove"
|
5026 |
-
<a name="cl-191"></a>msgstr "poista"
|
5027 |
-
<a name="cl-192"></a>
|
5028 |
-
<a name="cl-193"></a>#: ../admin/addgallery.php:197 ../admin/addgallery.php:422
|
5029 |
-
<a name="cl-194"></a>msgid "Browse..."
|
5030 |
-
<a name="cl-195"></a>msgstr "Selaa..."
|
5031 |
-
<a name="cl-196"></a>
|
5032 |
-
<a name="cl-197"></a>#: ../admin/addgallery.php:198 ../admin/addgallery.php:236
|
5033 |
-
<a name="cl-198"></a>#: ../admin/addgallery.php:440 ../admin/addgallery.php:488
|
5034 |
-
<a name="cl-199"></a>msgid "Upload images"
|
5035 |
-
<a name="cl-200"></a>msgstr "Lataa kuvia"
|
5036 |
-
<a name="cl-201"></a>
|
5037 |
-
<a name="cl-202"></a>#: ../admin/addgallery.php:332
|
5038 |
-
<a name="cl-203"></a>msgid "New gallery"
|
5039 |
-
<a name="cl-204"></a>msgstr "Uusi galleria"
|
5040 |
-
<a name="cl-205"></a>
|
5041 |
-
<a name="cl-206"></a>#: ../admin/addgallery.php:335 ../admin/manage-galleries.php:414
|
5042 |
-
<a name="cl-207"></a>#: ../admin/settings.php:286
|
5043 |
-
<a name="cl-208"></a>msgid "Images"
|
5044 |
-
<a name="cl-209"></a>msgstr "Kuvia"
|
5045 |
-
<a name="cl-210"></a>
|
5046 |
-
<a name="cl-211"></a>#: ../admin/addgallery.php:338
|
5047 |
-
<a name="cl-212"></a>msgid "ZIP file"
|
5048 |
-
<a name="cl-213"></a>msgstr "ZIP-tiedosto"
|
5049 |
-
<a name="cl-214"></a>
|
5050 |
-
<a name="cl-215"></a>#: ../admin/addgallery.php:341 ../admin/addgallery.php:429
|
5051 |
-
<a name="cl-216"></a>msgid "Import folder"
|
5052 |
-
<a name="cl-217"></a>msgstr "Tuo kuvahakemisto"
|
5053 |
-
<a name="cl-218"></a>
|
5054 |
-
<a name="cl-219"></a>#: ../admin/addgallery.php:352
|
5055 |
-
<a name="cl-220"></a>msgid "Add a new gallery"
|
5056 |
-
<a name="cl-221"></a>msgstr "Lisää uusi galleria"
|
5057 |
-
<a name="cl-222"></a>
|
5058 |
-
<a name="cl-223"></a>#: ../admin/addgallery.php:357 ../admin/album.php:547 ../admin/showmeta.php:33
|
5059 |
-
<a name="cl-224"></a>#: ../admin/showmeta.php:59 ../admin/showmeta.php:84 ../admin/showmeta.php:108
|
5060 |
-
<a name="cl-225"></a>msgid "Name"
|
5061 |
-
<a name="cl-226"></a>msgstr "Nimi"
|
5062 |
-
<a name="cl-227"></a>
|
5063 |
-
<a name="cl-228"></a>#: ../admin/addgallery.php:360
|
5064 |
-
<a name="cl-229"></a>msgid "Create a new, empty gallery in the folder"
|
5065 |
-
<a name="cl-230"></a>msgstr "Luo uusi tyhjä galleria hakemistoon"
|
5066 |
-
<a name="cl-231"></a>
|
5067 |
-
<a name="cl-232"></a>#: ../admin/addgallery.php:362 ../admin/manage-galleries.php:282
|
5068 |
-
<a name="cl-233"></a>msgid "Allowed characters for file and folder names are"
|
5069 |
-
<a name="cl-234"></a>msgstr "Sallitut merkit tiedosto- ja hakemistonimille ovat"
|
5070 |
-
<a name="cl-235"></a>
|
5071 |
-
<a name="cl-236"></a>#: ../admin/addgallery.php:366
|
5072 |
-
<a name="cl-237"></a>msgid "Add gallery"
|
5073 |
-
<a name="cl-238"></a>msgstr "Lisää galleria"
|
5074 |
-
<a name="cl-239"></a>
|
5075 |
-
<a name="cl-240"></a>#: ../admin/addgallery.php:374
|
5076 |
-
<a name="cl-241"></a>msgid "Upload a ZIP File"
|
5077 |
-
<a name="cl-242"></a>msgstr "Lataa ZIP-tiedosto"
|
5078 |
-
<a name="cl-243"></a>
|
5079 |
-
<a name="cl-244"></a>#: ../admin/addgallery.php:379
|
5080 |
-
<a name="cl-245"></a>msgid "Select ZIP file"
|
5081 |
-
<a name="cl-246"></a>msgstr "Valitse Zip-tiedosto"
|
5082 |
-
<a name="cl-247"></a>
|
5083 |
-
<a name="cl-248"></a>#: ../admin/addgallery.php:381
|
5084 |
-
<a name="cl-249"></a>msgid "Upload a ZIP file with images"
|
5085 |
-
<a name="cl-250"></a>msgstr "Lataa kuvia sisältävä zip-tiedosto"
|
5086 |
-
<a name="cl-251"></a>
|
5087 |
-
<a name="cl-252"></a>#: ../admin/addgallery.php:385
|
5088 |
-
<a name="cl-253"></a>msgid "or enter URL"
|
5089 |
-
<a name="cl-254"></a>msgstr "tai anna Zip-tiedoston URL"
|
5090 |
-
<a name="cl-255"></a>
|
5091 |
-
<a name="cl-256"></a>#: ../admin/addgallery.php:387
|
5092 |
-
<a name="cl-257"></a>msgid "Import a ZIP file from a URL"
|
5093 |
-
<a name="cl-258"></a>msgstr "Lataa kuvia sisältävä zip-tiedosto URLista"
|
5094 |
-
<a name="cl-259"></a>
|
5095 |
-
<a name="cl-260"></a>#: ../admin/addgallery.php:391 ../admin/addgallery.php:445
|
5096 |
-
<a name="cl-261"></a>msgid "in to"
|
5097 |
-
<a name="cl-262"></a>msgstr "paikkaan"
|
5098 |
-
<a name="cl-263"></a>
|
5099 |
-
<a name="cl-264"></a>#: ../admin/addgallery.php:393
|
5100 |
-
<a name="cl-265"></a>msgid "a new gallery"
|
5101 |
-
<a name="cl-266"></a>msgstr "uusi galleria"
|
5102 |
-
<a name="cl-267"></a>
|
5103 |
-
<a name="cl-268"></a>#: ../admin/addgallery.php:404
|
5104 |
-
<a name="cl-269"></a>msgid "Note: the upload limit on your server is "
|
5105 |
-
<a name="cl-270"></a>msgstr "Huom: latausraja palvelimellasi on "
|
5106 |
-
<a name="cl-271"></a>
|
5107 |
-
<a name="cl-272"></a>#: ../admin/addgallery.php:408
|
5108 |
-
<a name="cl-273"></a>msgid "Start upload"
|
5109 |
-
<a name="cl-274"></a>msgstr "Aloita lataus"
|
5110 |
-
<a name="cl-275"></a>
|
5111 |
-
<a name="cl-276"></a>#: ../admin/addgallery.php:416
|
5112 |
-
<a name="cl-277"></a>msgid "Import an image folder"
|
5113 |
-
<a name="cl-278"></a>msgstr "Tuo palvelin-polusta:"
|
5114 |
-
<a name="cl-279"></a>
|
5115 |
-
<a name="cl-280"></a>#: ../admin/addgallery.php:421
|
5116 |
-
<a name="cl-281"></a>msgid "Import from server:"
|
5117 |
-
<a name="cl-282"></a>msgstr "Tuo palvelimelta:"
|
5118 |
-
<a name="cl-283"></a>
|
5119 |
-
<a name="cl-284"></a>#: ../admin/addgallery.php:424
|
5120 |
-
<a name="cl-285"></a>msgid "Note: you can change the default path in the gallery settings"
|
5121 |
-
<a name="cl-286"></a>msgstr "Huom : muuta oletuspolku gallerian asetuksista"
|
5122 |
-
<a name="cl-287"></a>
|
5123 |
-
<a name="cl-288"></a>#: ../admin/addgallery.php:426
|
5124 |
-
<a name="cl-289"></a>msgid ""
|
5125 |
-
<a name="cl-290"></a>"Please note: If safe-mode is ON, you need to add the subfolder with thumbs "
|
5126 |
-
<a name="cl-291"></a>"manually"
|
5127 |
-
<a name="cl-292"></a>msgstr ""
|
5128 |
-
<a name="cl-293"></a>"Varoitus : jos safe-mode = ON, alihakemiston esikatselukuvat on lisättävä "
|
5129 |
-
<a name="cl-294"></a>"manuaalisesti"
|
5130 |
-
<a name="cl-295"></a>
|
5131 |
-
<a name="cl-296"></a>#: ../admin/addgallery.php:429 ../admin/manage-images.php:353
|
5132 |
-
<a name="cl-297"></a>msgid ""
|
5133 |
-
<a name="cl-298"></a>"This will change folder and file names (e.g. remove spaces, special "
|
5134 |
-
<a name="cl-299"></a>"characters, ...)"
|
5135 |
-
<a name="cl-300"></a>msgstr ""
|
5136 |
-
<a name="cl-301"></a>
|
5137 |
-
<a name="cl-302"></a>#: ../admin/addgallery.php:429 ../admin/manage-images.php:353
|
5138 |
-
<a name="cl-303"></a>msgid "You will need to update your URLs if you link directly to the images."
|
5139 |
-
<a name="cl-304"></a>msgstr ""
|
5140 |
-
<a name="cl-305"></a>
|
5141 |
-
<a name="cl-306"></a>#: ../admin/addgallery.php:429 ../admin/manage-images.php:353
|
5142 |
-
<a name="cl-307"></a>msgid "Press OK to proceed, and Cancel to stop."
|
5143 |
-
<a name="cl-308"></a>msgstr ""
|
5144 |
-
<a name="cl-309"></a>
|
5145 |
-
<a name="cl-310"></a>#: ../admin/addgallery.php:446
|
5146 |
-
<a name="cl-311"></a>msgid "Choose gallery"
|
5147 |
-
<a name="cl-312"></a>msgstr "Valitse galleria"
|
5148 |
-
<a name="cl-313"></a>
|
5149 |
-
<a name="cl-314"></a>#: ../admin/addgallery.php:468
|
5150 |
-
<a name="cl-315"></a>#, fuzzy
|
5151 |
-
<a name="cl-316"></a>msgid "Drop your files in this window"
|
5152 |
-
<a name="cl-317"></a>msgstr "Tai voit tiputtaa tiedostot tähän ikkunaan. "
|
5153 |
-
<a name="cl-318"></a>
|
5154 |
-
<a name="cl-319"></a>#: ../admin/addgallery.php:468
|
5155 |
-
<a name="cl-320"></a>msgid "Or"
|
5156 |
-
<a name="cl-321"></a>msgstr ""
|
5157 |
-
<a name="cl-322"></a>
|
5158 |
-
<a name="cl-323"></a>#: ../admin/addgallery.php:469
|
5159 |
-
<a name="cl-324"></a>msgid "Select Files"
|
5160 |
-
<a name="cl-325"></a>msgstr "Valitse tiedostot"
|
5161 |
-
<a name="cl-326"></a>
|
5162 |
-
<a name="cl-327"></a>#: ../admin/addgallery.php:484
|
5163 |
-
<a name="cl-328"></a>msgid "Click here to use the browser upload instead"
|
5164 |
-
<a name="cl-329"></a>msgstr ""
|
5165 |
-
<a name="cl-330"></a>
|
5166 |
-
<a name="cl-331"></a>#: ../admin/addgallery.php:484
|
5167 |
-
<a name="cl-332"></a>#, fuzzy
|
5168 |
-
<a name="cl-333"></a>msgid "Use basic uploader"
|
5169 |
-
<a name="cl-334"></a>msgstr "Yhtään tiedostoa ei ladattu"
|
5170 |
-
<a name="cl-335"></a>
|
5171 |
-
<a name="cl-336"></a>#: ../admin/addgallery.php:486
|
5172 |
-
<a name="cl-337"></a>msgid "Advanced uploading"
|
5173 |
-
<a name="cl-338"></a>msgstr ""
|
5174 |
-
<a name="cl-339"></a>
|
5175 |
-
<a name="cl-340"></a>#: ../admin/addgallery.php:486
|
5176 |
-
<a name="cl-341"></a>msgid "Use advanced uploader"
|
5177 |
-
<a name="cl-342"></a>msgstr ""
|
5178 |
-
<a name="cl-343"></a>
|
5179 |
-
<a name="cl-344"></a>#: ../admin/addgallery.php:490
|
5180 |
-
<a name="cl-345"></a>#, fuzzy, php-format
|
5181 |
-
<a name="cl-346"></a>msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
5182 |
-
<a name="cl-347"></a>msgstr "Skaalaa kuvat maksimileveyteen %1$dpx tai maksimikorkeuteen %2$dpx"
|
5183 |
-
<a name="cl-348"></a>
|
5184 |
-
<a name="cl-349"></a>#: ../admin/admin.php:126 ../admin/admin.php:128 ../admin/admin.php:132
|
5185 |
-
<a name="cl-350"></a>#: ../admin/admin.php:152 ../admin/manage-galleries.php:126
|
5186 |
-
<a name="cl-351"></a>msgid "Galleries"
|
5187 |
-
<a name="cl-352"></a>msgstr "Galleriat"
|
5188 |
-
<a name="cl-353"></a>
|
5189 |
-
<a name="cl-354"></a>#: ../admin/admin.php:130 ../admin/admin.php:173 ../nggallery.php:580
|
5190 |
-
<a name="cl-355"></a>#: ../nggfunctions.php:953
|
5191 |
-
<a name="cl-356"></a>msgid "Overview"
|
5192 |
-
<a name="cl-357"></a>msgstr "Yleinen"
|
5193 |
-
<a name="cl-358"></a>
|
5194 |
-
<a name="cl-359"></a>#: ../admin/admin.php:133 ../admin/admin.php:179 ../admin/album.php:280
|
5195 |
-
<a name="cl-360"></a>msgid "Albums"
|
5196 |
-
<a name="cl-361"></a>msgstr "Albumit"
|
5197 |
-
<a name="cl-362"></a>
|
5198 |
-
<a name="cl-363"></a>#: ../admin/admin.php:134 ../admin/admin.php:181
|
5199 |
-
<a name="cl-364"></a>#: ../admin/manage-images.php:732 ../admin/settings.php:369
|
5200 |
-
<a name="cl-365"></a>#: ../admin/tags.php:98 ../lib/meta.php:459
|
5201 |
-
<a name="cl-366"></a>msgid "Tags"
|
5202 |
-
<a name="cl-367"></a>msgstr "Tägit"
|
5203 |
-
<a name="cl-368"></a>
|
5204 |
-
<a name="cl-369"></a>#: ../admin/admin.php:135 ../admin/admin.php:183 ../admin/settings.php:250
|
5205 |
-
<a name="cl-370"></a>msgid "Settings"
|
5206 |
-
<a name="cl-371"></a>msgstr "Asetukset"
|
5207 |
-
<a name="cl-372"></a>
|
5208 |
-
<a name="cl-373"></a>#: ../admin/admin.php:137 ../admin/admin.php:185
|
5209 |
-
<a name="cl-374"></a>msgid "Style"
|
5210 |
-
<a name="cl-375"></a>msgstr "Tyyli"
|
5211 |
-
<a name="cl-376"></a>
|
5212 |
-
<a name="cl-377"></a>#: ../admin/admin.php:139
|
5213 |
-
<a name="cl-378"></a>msgid "Roles"
|
5214 |
-
<a name="cl-379"></a>msgstr "Roolit"
|
5215 |
-
<a name="cl-380"></a>
|
5216 |
-
<a name="cl-381"></a>#: ../admin/admin.php:140
|
5217 |
-
<a name="cl-382"></a>msgid "About this Gallery"
|
5218 |
-
<a name="cl-383"></a>msgstr "Tästä galleriasta "
|
5219 |
-
<a name="cl-384"></a>
|
5220 |
-
<a name="cl-385"></a>#: ../admin/admin.php:143 ../admin/admin.php:154
|
5221 |
-
<a name="cl-386"></a>msgid "Reset / Uninstall"
|
5222 |
-
<a name="cl-387"></a>msgstr "Resetoi / poista"
|
5223 |
-
<a name="cl-388"></a>
|
5224 |
-
<a name="cl-389"></a>#: ../admin/admin.php:153
|
5225 |
-
<a name="cl-390"></a>msgid "Network settings"
|
5226 |
-
<a name="cl-391"></a>msgstr "Verkkoasetukset"
|
5227 |
-
<a name="cl-392"></a>
|
5228 |
-
<a name="cl-393"></a>#: ../admin/admin.php:172 ../admin/admin.php:177 ../admin/admin.php:408
|
5229 |
-
<a name="cl-394"></a>#: ../admin/admin.php:461 ../admin/functions.php:206
|
5230 |
-
<a name="cl-395"></a>#: ../admin/functions.php:368 ../admin/manage-images.php:263
|
5231 |
-
<a name="cl-396"></a>#: ../admin/overview.php:418 ../admin/settings.php:287
|
5232 |
-
<a name="cl-397"></a>#: ../admin/tinymce/window.php:120 ../admin/tinymce/window.php:153
|
5233 |
-
<a name="cl-398"></a>#: ../admin/tinymce/window.php:277 ../admin/tinymce/window.php:398
|
5234 |
-
<a name="cl-399"></a>#: ../admin/tinymce/window.php:449 ../lib/rewrite.php:218
|
5235 |
-
<a name="cl-400"></a>#: ../lib/rewrite.php:227
|
5236 |
-
<a name="cl-401"></a>msgid "Gallery"
|
5237 |
-
<a name="cl-402"></a>msgstr "Galleria"
|
5238 |
-
<a name="cl-403"></a>
|
5239 |
-
<a name="cl-404"></a>#: ../admin/admin.php:278
|
5240 |
-
<a name="cl-405"></a>msgid "You do not have the correct permission"
|
5241 |
-
<a name="cl-406"></a>msgstr "Sinulla ei ole tarvittavia valtuuksia"
|
5242 |
-
<a name="cl-407"></a>
|
5243 |
-
<a name="cl-408"></a>#: ../admin/admin.php:279
|
5244 |
-
<a name="cl-409"></a>msgid "Unexpected Error"
|
5245 |
-
<a name="cl-410"></a>msgstr "Odottamaton virhe"
|
5246 |
-
<a name="cl-411"></a>
|
5247 |
-
<a name="cl-412"></a>#: ../admin/admin.php:280
|
5248 |
-
<a name="cl-413"></a>msgid "A failure occurred"
|
5249 |
-
<a name="cl-414"></a>msgstr "Tapahtui virhe"
|
5250 |
-
<a name="cl-415"></a>
|
5251 |
-
<a name="cl-416"></a>#: ../admin/admin.php:284
|
5252 |
-
<a name="cl-417"></a>msgid "You have attempted to queue too many files."
|
5253 |
-
<a name="cl-418"></a>msgstr "Olet laittanut jonoon liian monta tiedostoa."
|
5254 |
-
<a name="cl-419"></a>
|
5255 |
-
<a name="cl-420"></a>#: ../admin/admin.php:285
|
5256 |
-
<a name="cl-421"></a>msgid "This file exceeds the maximum upload size for this site."
|
5257 |
-
<a name="cl-422"></a>msgstr "Tiedosto on suurempi kuin tämän sivuston maksimi latauskoko."
|
5258 |
-
<a name="cl-423"></a>
|
5259 |
-
<a name="cl-424"></a>#: ../admin/admin.php:286
|
5260 |
-
<a name="cl-425"></a>msgid "This file is empty. Please try another."
|
5261 |
-
<a name="cl-426"></a>msgstr "Tiedosto on tyhjä. Yritä uudelleen. "
|
5262 |
-
<a name="cl-427"></a>
|
5263 |
-
<a name="cl-428"></a>#: ../admin/admin.php:287
|
5264 |
-
<a name="cl-429"></a>msgid "This file type is not allowed. Please try another."
|
5265 |
-
<a name="cl-430"></a>msgstr "Tiedostotyyppi ei ole sallittu. Yritä uudelleen. "
|
5266 |
-
<a name="cl-431"></a>
|
5267 |
-
<a name="cl-432"></a>#: ../admin/admin.php:288
|
5268 |
-
<a name="cl-433"></a>msgid "This file is not an image. Please try another."
|
5269 |
-
<a name="cl-434"></a>msgstr "Tämä ei ole kuvatiedosto. Yritä toista tiedostoa."
|
5270 |
-
<a name="cl-435"></a>
|
5271 |
-
<a name="cl-436"></a>#: ../admin/admin.php:289
|
5272 |
-
<a name="cl-437"></a>msgid "Memory exceeded. Please try another smaller file."
|
5273 |
-
<a name="cl-438"></a>msgstr "Muisti ylitetty. Yritä pienentää tiedostoa. "
|
5274 |
-
<a name="cl-439"></a>
|
5275 |
-
<a name="cl-440"></a>#: ../admin/admin.php:290
|
5276 |
-
<a name="cl-441"></a>msgid "This is larger than the maximum size. Please try another."
|
5277 |
-
<a name="cl-442"></a>msgstr "Tiedosto on maksimikokoa suurempi. Yritä toista. "
|
5278 |
-
<a name="cl-443"></a>
|
5279 |
-
<a name="cl-444"></a>#: ../admin/admin.php:291
|
5280 |
-
<a name="cl-445"></a>msgid "An error occurred in the upload. Please try again later."
|
5281 |
-
<a name="cl-446"></a>msgstr "Latauksessa tapahtui virhe.Yritä myöhemmin uudestaan."
|
5282 |
-
<a name="cl-447"></a>
|
5283 |
-
<a name="cl-448"></a>#: ../admin/admin.php:292
|
5284 |
-
<a name="cl-449"></a>msgid ""
|
5285 |
-
<a name="cl-450"></a>"There was a configuration error. Please contact the server administrator."
|
5286 |
-
<a name="cl-451"></a>msgstr "Konfiguraatiovirhe. Ota yhteys palvelimen hoitajaan. "
|
5287 |
-
<a name="cl-452"></a>
|
5288 |
-
<a name="cl-453"></a>#: ../admin/admin.php:293
|
5289 |
-
<a name="cl-454"></a>msgid "You may only upload 1 file."
|
5290 |
-
<a name="cl-455"></a>msgstr "Voit ladata vain yhden tiedoston."
|
5291 |
-
<a name="cl-456"></a>
|
5292 |
-
<a name="cl-457"></a>#: ../admin/admin.php:294
|
5293 |
-
<a name="cl-458"></a>msgid "HTTP error."
|
5294 |
-
<a name="cl-459"></a>msgstr "HTTP-virhe."
|
5295 |
-
<a name="cl-460"></a>
|
5296 |
-
<a name="cl-461"></a>#: ../admin/admin.php:295
|
5297 |
-
<a name="cl-462"></a>msgid "Upload failed."
|
5298 |
-
<a name="cl-463"></a>msgstr "Lataus epäonnistui!"
|
5299 |
-
<a name="cl-464"></a>
|
5300 |
-
<a name="cl-465"></a>#: ../admin/admin.php:296
|
5301 |
-
<a name="cl-466"></a>msgid "IO error."
|
5302 |
-
<a name="cl-467"></a>msgstr "IO-virhe."
|
5303 |
-
<a name="cl-468"></a>
|
5304 |
-
<a name="cl-469"></a>#: ../admin/admin.php:297
|
5305 |
-
<a name="cl-470"></a>msgid "Security error."
|
5306 |
-
<a name="cl-471"></a>msgstr "Turvavirhe."
|
5307 |
-
<a name="cl-472"></a>
|
5308 |
-
<a name="cl-473"></a>#: ../admin/admin.php:298
|
5309 |
-
<a name="cl-474"></a>msgid "File canceled."
|
5310 |
-
<a name="cl-475"></a>msgstr "Tiedosto peruutettu."
|
5311 |
-
<a name="cl-476"></a>
|
5312 |
-
<a name="cl-477"></a>#: ../admin/admin.php:299
|
5313 |
-
<a name="cl-478"></a>msgid "Upload stopped."
|
5314 |
-
<a name="cl-479"></a>msgstr "Lataus lopetettu."
|
5315 |
-
<a name="cl-480"></a>
|
5316 |
-
<a name="cl-481"></a>#: ../admin/admin.php:300
|
5317 |
-
<a name="cl-482"></a>msgid "Dismiss"
|
5318 |
-
<a name="cl-483"></a>msgstr "Poista"
|
5319 |
-
<a name="cl-484"></a>
|
5320 |
-
<a name="cl-485"></a>#: ../admin/admin.php:301
|
5321 |
-
<a name="cl-486"></a>msgid "Crunching&hellip;"
|
5322 |
-
<a name="cl-487"></a>msgstr "Työskentelen&hellip;"
|
5323 |
-
<a name="cl-488"></a>
|
5324 |
-
<a name="cl-489"></a>#: ../admin/admin.php:302
|
5325 |
-
<a name="cl-490"></a>msgid "moved to the trash."
|
5326 |
-
<a name="cl-491"></a>msgstr "siirretty roskakoriin."
|
5327 |
-
<a name="cl-492"></a>
|
5328 |
-
<a name="cl-493"></a>#: ../admin/admin.php:303
|
5329 |
-
<a name="cl-494"></a>#, php-format
|
5330 |
-
<a name="cl-495"></a>msgid "&#8220;%s&#8221; has failed to upload due to an error"
|
5331 |
-
<a name="cl-496"></a>msgstr "&#8220;%s&#8221; ei latautunut virheen takia"
|
5332 |
-
<a name="cl-497"></a>
|
5333 |
-
<a name="cl-498"></a>#: ../admin/admin.php:323 ../nggallery.php:375
|
5334 |
-
<a name="cl-499"></a>msgid "L O A D I N G"
|
5335 |
-
<a name="cl-500"></a>msgstr "L A T A A N"
|
5336 |
-
<a name="cl-501"></a>
|
5337 |
-
<a name="cl-502"></a>#: ../admin/admin.php:324 ../nggallery.php:376
|
5338 |
-
<a name="cl-503"></a>msgid "Click to Close"
|
5339 |
-
<a name="cl-504"></a>msgstr "Klikkaa sulkeaksesi"
|
5340 |
-
<a name="cl-505"></a>
|
5341 |
-
<a name="cl-506"></a>#: ../admin/admin.php:412
|
5342 |
-
<a name="cl-507"></a>msgid ""
|
5343 |
-
<a name="cl-508"></a>"<a href=\"http://www.wpgetready.com\" target=\"_blank\">Introduction</a>"
|
5344 |
-
<a name="cl-509"></a>msgstr "<a href=\"http://www.wpgetready.com\" target=\"_blank\">Johdanto</a>"
|
5345 |
-
<a name="cl-510"></a>
|
5346 |
-
<a name="cl-511"></a>#: ../admin/admin.php:415
|
5347 |
-
<a name="cl-512"></a>msgid ""
|
5348 |
-
<a name="cl-513"></a>"<a href=\"http://www.nextgen-gallery.com/languages\" target=\"_blank"
|
5349 |
-
<a name="cl-514"></a>"\">Languages</a>"
|
5350 |
-
<a name="cl-515"></a>msgstr ""
|
5351 |
-
<a name="cl-516"></a>"<a href=\"http://www.nextgen-gallery.com/languages\" target=\"_blank"
|
5352 |
-
<a name="cl-517"></a>"\">Kielet</a>"
|
5353 |
-
<a name="cl-518"></a>
|
5354 |
-
<a name="cl-519"></a>#: ../admin/admin.php:420
|
5355 |
-
<a name="cl-520"></a>msgid "Get help with NextCellent Gallery"
|
5356 |
-
<a name="cl-521"></a>msgstr "Apua NextCellent Galleryyn"
|
5357 |
-
<a name="cl-522"></a>
|
5358 |
-
<a name="cl-523"></a>#: ../admin/admin.php:424
|
5359 |
-
<a name="cl-524"></a>msgid "More Help & Info"
|
5360 |
-
<a name="cl-525"></a>msgstr "Lisää apua & tietoa"
|
5361 |
-
<a name="cl-526"></a>
|
5362 |
-
<a name="cl-527"></a>#: ../admin/admin.php:426
|
5363 |
-
<a name="cl-528"></a>msgid ""
|
5364 |
-
<a name="cl-529"></a>"<a href=\"http://wordpress.org/tags/nextcellent-gallery-nextgen-legacy\" "
|
5365 |
-
<a name="cl-530"></a>"target=\"_blank\">Support Forums</a>"
|
5366 |
-
<a name="cl-531"></a>msgstr ""
|
5367 |
-
<a name="cl-532"></a>"<a href=\"http://wordpress.org/tags/nextcellent-gallery-nextgen-legacy\" "
|
5368 |
-
<a name="cl-533"></a>"target=\"_blank\">Tukifoorumit (engl.)</a>"
|
5369 |
-
<a name="cl-534"></a>
|
5370 |
-
<a name="cl-535"></a>#: ../admin/admin.php:427
|
5371 |
-
<a name="cl-536"></a>msgid "Download latest version"
|
5372 |
-
<a name="cl-537"></a>msgstr "Lataa viimeisin versio"
|
5373 |
-
<a name="cl-538"></a>
|
5374 |
-
<a name="cl-539"></a>#: ../admin/ajax.php:291
|
5375 |
-
<a name="cl-540"></a>msgid "You are not allowed to be here"
|
5376 |
-
<a name="cl-541"></a>msgstr "Sinulla ei ole lupa olla täällä"
|
5377 |
-
<a name="cl-542"></a>
|
5378 |
-
<a name="cl-543"></a>#: ../admin/ajax.php:389
|
5379 |
-
<a name="cl-544"></a>#, php-format
|
5380 |
-
<a name="cl-545"></a>msgid "Could create image with %s x %s pixel"
|
5381 |
-
<a name="cl-546"></a>msgstr "Luotiin kuva kooltaan %s x %s pikseliä"
|
5382 |
-
<a name="cl-547"></a>
|
5383 |
-
<a name="cl-548"></a>#: ../admin/album.php:97 ../admin/album.php:116 ../admin/album.php:161
|
5384 |
-
<a name="cl-549"></a>#: ../admin/style.php:31
|
5385 |
-
<a name="cl-550"></a>#, fuzzy
|
5386 |
-
<a name="cl-551"></a>msgid "Updated successfully"
|
5387 |
-
<a name="cl-552"></a>msgstr "Päivitä onnistuneesti"
|
5388 |
-
<a name="cl-553"></a>
|
5389 |
-
<a name="cl-554"></a>#: ../admin/album.php:134
|
5390 |
-
<a name="cl-555"></a>msgid "Album deleted"
|
5391 |
-
<a name="cl-556"></a>msgstr "Albumi poistettu"
|
5392 |
-
<a name="cl-557"></a>
|
5393 |
-
<a name="cl-558"></a>#: ../admin/album.php:272 ../admin/roles.php:59
|
5394 |
-
<a name="cl-559"></a>msgid "Edit Album"
|
5395 |
-
<a name="cl-560"></a>msgstr "Muokkaa albumia"
|
5396 |
-
<a name="cl-561"></a>
|
5397 |
-
<a name="cl-562"></a>#: ../admin/album.php:286 ../admin/album.php:335
|
5398 |
-
<a name="cl-563"></a>msgid "Select album"
|
5399 |
-
<a name="cl-564"></a>msgstr "Valitse albumi"
|
5400 |
-
<a name="cl-565"></a>
|
5401 |
-
<a name="cl-566"></a>#: ../admin/album.php:288
|
5402 |
-
<a name="cl-567"></a>msgid "No album selected"
|
5403 |
-
<a name="cl-568"></a>msgstr "Ei valittua albumia"
|
5404 |
-
<a name="cl-569"></a>
|
5405 |
-
<a name="cl-570"></a>#: ../admin/album.php:299 ../admin/edit-thumbnail.php:150
|
5406 |
-
<a name="cl-571"></a>#: ../admin/overview.php:539 ../admin/rotate.php:89 ../admin/wpmu.php:114
|
5407 |
-
<a name="cl-572"></a>msgid "Update"
|
5408 |
-
<a name="cl-573"></a>msgstr "Päivitä"
|
5409 |
-
<a name="cl-574"></a>
|
5410 |
-
<a name="cl-575"></a>#: ../admin/album.php:301
|
5411 |
-
<a name="cl-576"></a>msgid "Edit album"
|
5412 |
-
<a name="cl-577"></a>msgstr "Muokkaa albumia"
|
5413 |
-
<a name="cl-578"></a>
|
5414 |
-
<a name="cl-579"></a>#: ../admin/album.php:304 ../admin/manage-galleries.php:148
|
5415 |
-
<a name="cl-580"></a>#: ../admin/manage-images.php:480 ../admin/tags.php:225
|
5416 |
-
<a name="cl-581"></a>msgid "Delete"
|
5417 |
-
<a name="cl-582"></a>msgstr "Poista"
|
5418 |
-
<a name="cl-583"></a>
|
5419 |
-
<a name="cl-584"></a>#: ../admin/album.php:308
|
5420 |
-
<a name="cl-585"></a>msgid "Add new album"
|
5421 |
-
<a name="cl-586"></a>msgstr "Lisää uusi albumi"
|
5422 |
-
<a name="cl-587"></a>
|
5423 |
-
<a name="cl-588"></a>#: ../admin/album.php:310
|
5424 |
-
<a name="cl-589"></a>msgid "Add"
|
5425 |
-
<a name="cl-590"></a>msgstr "Lisää"
|
5426 |
-
<a name="cl-591"></a>
|
5427 |
-
<a name="cl-592"></a>#: ../admin/album.php:321
|
5428 |
-
<a name="cl-593"></a>msgid "Show / hide used galleries"
|
5429 |
-
<a name="cl-594"></a>msgstr "Näytä / piilota käytetyt galleriat"
|
5430 |
-
<a name="cl-595"></a>
|
5431 |
-
<a name="cl-596"></a>#: ../admin/album.php:321
|
5432 |
-
<a name="cl-597"></a>msgid "[Show all]"
|
5433 |
-
<a name="cl-598"></a>msgstr "[Näytä kaikki]"
|
5434 |
-
<a name="cl-599"></a>
|
5435 |
-
<a name="cl-600"></a>#: ../admin/album.php:322
|
5436 |
-
<a name="cl-601"></a>msgid "Maximize the widget content"
|
5437 |
-
<a name="cl-602"></a>msgstr "Maksimoi vimpaimen sisältö"
|
5438 |
-
<a name="cl-603"></a>
|
5439 |
-
<a name="cl-604"></a>#: ../admin/album.php:322
|
5440 |
-
<a name="cl-605"></a>msgid "[Maximize]"
|
5441 |
-
<a name="cl-606"></a>msgstr "[Maksimoi]"
|
5442 |
-
<a name="cl-607"></a>
|
5443 |
-
<a name="cl-608"></a>#: ../admin/album.php:323
|
5444 |
-
<a name="cl-609"></a>msgid "Minimize the widget content"
|
5445 |
-
<a name="cl-610"></a>msgstr "Minimoi vimpaimen sisältö"
|
5446 |
-
<a name="cl-611"></a>
|
5447 |
-
<a name="cl-612"></a>#: ../admin/album.php:323
|
5448 |
-
<a name="cl-613"></a>msgid "[Minimize]"
|
5449 |
-
<a name="cl-614"></a>msgstr "[Minimoi]"
|
5450 |
-
<a name="cl-615"></a>
|
5451 |
-
<a name="cl-616"></a>#: ../admin/album.php:325
|
5452 |
-
<a name="cl-617"></a>msgid ""
|
5453 |
-
<a name="cl-618"></a>"After you create and select a album, you can drag and drop a gallery or "
|
5454 |
-
<a name="cl-619"></a>"another album into your new album below"
|
5455 |
-
<a name="cl-620"></a>msgstr ""
|
5456 |
-
<a name="cl-621"></a>"Kun olet luonut ja valinnut albumin, voit lisätä pudottamalla gallerian tai "
|
5457 |
-
<a name="cl-622"></a>"toisen albumin uuteen albumiisi alla"
|
5458 |
-
<a name="cl-623"></a>
|
5459 |
-
<a name="cl-624"></a>#: ../admin/album.php:351
|
5460 |
-
<a name="cl-625"></a>msgid "Select gallery"
|
5461 |
-
<a name="cl-626"></a>msgstr "Valitse galleria"
|
5462 |
-
<a name="cl-627"></a>
|
5463 |
-
<a name="cl-628"></a>#: ../admin/album.php:380
|
5464 |
-
<a name="cl-629"></a>msgid "Album ID"
|
5465 |
-
<a name="cl-630"></a>msgstr "Album ID"
|
5466 |
-
<a name="cl-631"></a>
|
5467 |
-
<a name="cl-632"></a>#: ../admin/album.php:393
|
5468 |
-
<a name="cl-633"></a>msgid "No album selected!"
|
5469 |
-
<a name="cl-634"></a>msgstr "Albumia ei valittuna"
|
5470 |
-
<a name="cl-635"></a>
|
5471 |
-
<a name="cl-636"></a>#: ../admin/album.php:414
|
5472 |
-
<a name="cl-637"></a>msgid "Album name:"
|
5473 |
-
<a name="cl-638"></a>msgstr "Albumin nimi :"
|
5474 |
-
<a name="cl-639"></a>
|
5475 |
-
<a name="cl-640"></a>#: ../admin/album.php:420
|
5476 |
-
<a name="cl-641"></a>msgid "Album description:"
|
5477 |
-
<a name="cl-642"></a>msgstr "Albumin kuvaus:"
|
5478 |
-
<a name="cl-643"></a>
|
5479 |
-
<a name="cl-644"></a>#: ../admin/album.php:426
|
5480 |
-
<a name="cl-645"></a>msgid "Select a preview image:"
|
5481 |
-
<a name="cl-646"></a>msgstr "Valitse esikatselukuva:"
|
5482 |
-
<a name="cl-647"></a>
|
5483 |
-
<a name="cl-648"></a>#: ../admin/album.php:429 ../admin/album.php:432
|
5484 |
-
<a name="cl-649"></a>msgid "No picture"
|
5485 |
-
<a name="cl-650"></a>msgstr "Ei kuvaa"
|
5486 |
-
<a name="cl-651"></a>
|
5487 |
-
<a name="cl-652"></a>#: ../admin/album.php:443 ../admin/manage-images.php:281
|
5488 |
-
<a name="cl-653"></a>msgid "Page Link to"
|
5489 |
-
<a name="cl-654"></a>msgstr "Sivu linkitetty"
|
5490 |
-
<a name="cl-655"></a>
|
5491 |
-
<a name="cl-656"></a>#: ../admin/album.php:445 ../admin/manage-images.php:284
|
5492 |
-
<a name="cl-657"></a>msgid "Not linked"
|
5493 |
-
<a name="cl-658"></a>msgstr "Ei linkitetty"
|
5494 |
-
<a name="cl-659"></a>
|
5495 |
-
<a name="cl-660"></a>#: ../admin/album.php:458 ../admin/manage-galleries.php:288
|
5496 |
-
<a name="cl-661"></a>#: ../admin/manage-galleries.php:320 ../admin/manage-galleries.php:350
|
5497 |
-
<a name="cl-662"></a>#: ../admin/manage-images.php:567 ../admin/manage-images.php:602
|
5498 |
-
<a name="cl-663"></a>#: ../admin/manage-images.php:633 ../admin/manage-images.php:663
|
5499 |
-
<a name="cl-664"></a>msgid "OK"
|
5500 |
-
<a name="cl-665"></a>msgstr "OK"
|
5501 |
-
<a name="cl-666"></a>
|
5502 |
-
<a name="cl-667"></a>#: ../admin/album.php:460 ../admin/manage-galleries.php:290
|
5503 |
-
<a name="cl-668"></a>#: ../admin/manage-galleries.php:322 ../admin/manage-galleries.php:352
|
5504 |
-
<a name="cl-669"></a>#: ../admin/manage-images.php:568 ../admin/manage-images.php:603
|
5505 |
-
<a name="cl-670"></a>#: ../admin/manage-images.php:634 ../admin/manage-images.php:664
|
5506 |
-
<a name="cl-671"></a>#: ../admin/tinymce/window.php:472
|
5507 |
-
<a name="cl-672"></a>msgid "Cancel"
|
5508 |
-
<a name="cl-673"></a>msgstr "Peruuta"
|
5509 |
-
<a name="cl-674"></a>
|
5510 |
-
<a name="cl-675"></a>#: ../admin/album.php:548 ../admin/manage-galleries.php:410
|
5511 |
-
<a name="cl-676"></a>#: ../admin/manage-images.php:279 ../lib/meta.php:457
|
5512 |
-
<a name="cl-677"></a>msgid "Title"
|
5513 |
-
<a name="cl-678"></a>msgstr "Otsikko"
|
5514 |
-
<a name="cl-679"></a>
|
5515 |
-
<a name="cl-680"></a>#: ../admin/album.php:549 ../lib/rewrite.php:230
|
5516 |
-
<a name="cl-681"></a>msgid "Page"
|
5517 |
-
<a name="cl-682"></a>msgstr "Sivu"
|
5518 |
-
<a name="cl-683"></a>
|
5519 |
-
<a name="cl-684"></a>#: ../admin/edit-thumbnail.php:105
|
5520 |
-
<a name="cl-685"></a>msgid "Select with the mouse the area for the new thumbnail"
|
5521 |
-
<a name="cl-686"></a>msgstr "Valitse hiirellä uusi alue esikatselukuvalle"
|
5522 |
-
<a name="cl-687"></a>
|
5523 |
-
<a name="cl-688"></a>#: ../admin/edit-thumbnail.php:119
|
5524 |
-
<a name="cl-689"></a>msgid "Thumbnail updated"
|
5525 |
-
<a name="cl-690"></a>msgstr "Esikatselukuva päivitetty"
|
5526 |
-
<a name="cl-691"></a>
|
5527 |
-
<a name="cl-692"></a>#: ../admin/edit-thumbnail.php:124
|
5528 |
-
<a name="cl-693"></a>msgid "Error updating thumbnail"
|
5529 |
-
<a name="cl-694"></a>msgstr "Esikatselukuvan päivityksessä virhe"
|
5530 |
-
<a name="cl-695"></a>
|
5531 |
-
<a name="cl-696"></a>#: ../admin/edit-thumbnail.php:133
|
5532 |
-
<a name="cl-697"></a>msgid "Select the area for the thumbnail from the picture on the left."
|
5533 |
-
<a name="cl-698"></a>msgstr "Valitse vasemmalla olevasta kuvasta esikatselukuvan alue."
|
5534 |
-
<a name="cl-699"></a>
|
5535 |
-
<a name="cl-700"></a>#: ../admin/functions.php:39
|
5536 |
-
<a name="cl-701"></a>msgid "No valid gallery name!"
|
5537 |
-
<a name="cl-702"></a>msgstr "Gallerian nimi ei kelpaa!"
|
5538 |
-
<a name="cl-703"></a>
|
5539 |
-
<a name="cl-704"></a>#: ../admin/functions.php:46 ../admin/functions.php:55
|
5540 |
-
<a name="cl-705"></a>#: ../admin/functions.php:80 ../admin/functions.php:151
|
5541 |
-
<a name="cl-706"></a>#: ../admin/functions.php:158 ../admin/functions.php:338
|
5542 |
-
<a name="cl-707"></a>#: ../admin/functions.php:346
|
5543 |
-
<a name="cl-708"></a>msgid "Directory"
|
5544 |
-
<a name="cl-709"></a>msgstr "Hakemisto"
|
5545 |
-
<a name="cl-710"></a>
|
5546 |
-
<a name="cl-711"></a>#: ../admin/functions.php:46
|
5547 |
-
<a name="cl-712"></a>msgid "didn't exist. Please create first the main gallery folder "
|
5548 |
-
<a name="cl-713"></a>msgstr "ei löydy. Luo ensin päägallerian hakemisto."
|
5549 |
-
<a name="cl-714"></a>
|
5550 |
-
<a name="cl-715"></a>#: ../admin/functions.php:47 ../admin/functions.php:56
|
5551 |
-
<a name="cl-716"></a>msgid "Check this link, if you didn't know how to set the permission :"
|
5552 |
-
<a name="cl-717"></a>msgstr "Tarkista tästä linkistä, jos et tiedä miten valtuus asetetaan:"
|
5553 |
-
<a name="cl-718"></a>
|
5554 |
-
<a name="cl-719"></a>#: ../admin/functions.php:55 ../admin/functions.php:80
|
5555 |
-
<a name="cl-720"></a>msgid "is not writeable !"
|
5556 |
-
<a name="cl-721"></a>msgstr "ei voi kirjoittaa !"
|
5557 |
-
<a name="cl-722"></a>
|
5558 |
-
<a name="cl-723"></a>#: ../admin/functions.php:76 ../admin/functions.php:85
|
5559 |
-
<a name="cl-724"></a>#: ../admin/functions.php:1096 ../lib/core.php:102
|
5560 |
-
<a name="cl-725"></a>msgid "Unable to create directory "
|
5561 |
-
<a name="cl-726"></a>msgstr "Hakemiston luonti ei onnistu"
|
5562 |
-
<a name="cl-727"></a>
|
5563 |
-
<a name="cl-728"></a>#: ../admin/functions.php:89
|
5564 |
-
<a name="cl-729"></a>msgid "The server setting Safe-Mode is on !"
|
5565 |
-
<a name="cl-730"></a>msgstr "Palvelimella on käytössä Safe-Mode (PHP.INI)"
|
5566 |
-
<a name="cl-731"></a>
|
5567 |
-
<a name="cl-732"></a>#: ../admin/functions.php:90
|
5568 |
-
<a name="cl-733"></a>msgid "If you have problems, please create directory"
|
5569 |
-
<a name="cl-734"></a>msgstr "Jos ongelmia, luo hakemisto"
|
5570 |
-
<a name="cl-735"></a>
|
5571 |
-
<a name="cl-736"></a>#: ../admin/functions.php:91
|
5572 |
-
<a name="cl-737"></a>msgid "and the thumbnails directory"
|
5573 |
-
<a name="cl-738"></a>msgstr "ja Thumbnails-hakemisto"
|
5574 |
-
<a name="cl-739"></a>
|
5575 |
-
<a name="cl-740"></a>#: ../admin/functions.php:91
|
5576 |
-
<a name="cl-741"></a>msgid "with permission 777 manually !"
|
5577 |
-
<a name="cl-742"></a>msgstr "valtuutus 777 manuaalisesti !"
|
5578 |
-
<a name="cl-743"></a>
|
5579 |
-
<a name="cl-744"></a>#: ../admin/functions.php:116
|
5580 |
-
<a name="cl-745"></a>#, php-format
|
5581 |
-
<a name="cl-746"></a>msgid ""
|
5582 |
-
<a name="cl-747"></a>"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
5583 |
-
<a name="cl-748"></a>"or page with the shortcode %2$s.<br/>"
|
5584 |
-
<a name="cl-749"></a>msgstr ""
|
5585 |
-
<a name="cl-750"></a>"Galleria ID %1$s luonti onnistui. <br> Voit näyttää tämän gallerian "
|
5586 |
-
<a name="cl-751"></a>"artikkelissasi tai sivullasi lyhytkoodilla %2$s .<br/>"
|
5587 |
-
<a name="cl-752"></a>
|
5588 |
-
<a name="cl-753"></a>#: ../admin/functions.php:119 ../admin/functions.php:303
|
5589 |
-
<a name="cl-754"></a>#: ../admin/functions.php:406
|
5590 |
-
<a name="cl-755"></a>msgid "Edit gallery"
|
5591 |
-
<a name="cl-756"></a>msgstr "Muokkaa galleriaa"
|
5592 |
-
<a name="cl-757"></a>
|
5593 |
-
<a name="cl-758"></a>#: ../admin/functions.php:151 ../admin/functions.php:338
|
5594 |
-
<a name="cl-759"></a>msgid "doesn&#96;t exist!"
|
5595 |
-
<a name="cl-760"></a>msgstr "ei ole olemassa !"
|
5596 |
-
<a name="cl-761"></a>
|
5597 |
-
<a name="cl-762"></a>#: ../admin/functions.php:158 ../admin/functions.php:346
|
5598 |
-
<a name="cl-763"></a>msgid "contains no pictures"
|
5599 |
-
<a name="cl-764"></a>msgstr "ei sisällä kuvia "
|
5600 |
-
<a name="cl-765"></a>
|
5601 |
-
<a name="cl-766"></a>#: ../admin/functions.php:185
|
5602 |
-
<a name="cl-767"></a>msgid "Something went wrong when renaming"
|
5603 |
-
<a name="cl-768"></a>msgstr ""
|
5604 |
-
<a name="cl-769"></a>
|
5605 |
-
<a name="cl-770"></a>#: ../admin/functions.php:185
|
5606 |
-
<a name="cl-771"></a>msgid "Importing was aborted."
|
5607 |
-
<a name="cl-772"></a>msgstr ""
|
5608 |
-
<a name="cl-773"></a>
|
5609 |
-
<a name="cl-774"></a>#: ../admin/functions.php:203 ../admin/functions.php:365
|
5610 |
-
<a name="cl-775"></a>msgid "Database error. Could not add gallery!"
|
5611 |
-
<a name="cl-776"></a>msgstr "Tietokantavirhe. Gallerian lisäys ei onnistunut!"
|
5612 |
-
<a name="cl-777"></a>
|
5613 |
-
<a name="cl-778"></a>#: ../admin/functions.php:206 ../admin/functions.php:368
|
5614 |
-
<a name="cl-779"></a>msgid "successfully created!"
|
5615 |
-
<a name="cl-780"></a>msgstr "luonti onnistui!"
|
5616 |
-
<a name="cl-781"></a>
|
5617 |
-
<a name="cl-782"></a>#: ../admin/functions.php:293 ../admin/functions.php:401
|
5618 |
-
<a name="cl-783"></a>#: ../admin/functions.php:1213 ../admin/manage-galleries.php:80
|
5619 |
-
<a name="cl-784"></a>#: ../admin/manage-galleries.php:150 ../admin/manage-images.php:227
|
5620 |
-
<a name="cl-785"></a>#: ../admin/manage-images.php:371 ../admin/manage.php:227
|
5621 |
-
<a name="cl-786"></a>#: ../admin/manage.php:304
|
5622 |
-
<a name="cl-787"></a>msgid "Create new thumbnails"
|
5623 |
-
<a name="cl-788"></a>msgstr "Luo uudet esikatselukuvat"
|
5624 |
-
<a name="cl-789"></a>
|
5625 |
-
<a name="cl-790"></a>#: ../admin/functions.php:298
|
5626 |
-
<a name="cl-791"></a>#, fuzzy
|
5627 |
-
<a name="cl-792"></a>msgid " picture(s) successfully renamed"
|
5628 |
-
<a name="cl-793"></a>msgstr " kuva(t) lisätty onnistuneesti"
|
5629 |
-
<a name="cl-794"></a>
|
5630 |
-
<a name="cl-795"></a>#: ../admin/functions.php:300 ../admin/functions.php:404
|
5631 |
-
<a name="cl-796"></a>msgid " picture(s) successfully added"
|
5632 |
-
<a name="cl-797"></a>msgstr " kuva(t) lisätty onnistuneesti"
|
5633 |
-
<a name="cl-798"></a>
|
5634 |
-
<a name="cl-799"></a>#: ../admin/functions.php:307
|
5635 |
-
<a name="cl-800"></a>#, fuzzy
|
5636 |
-
<a name="cl-801"></a>msgid "No images were added."
|
5637 |
-
<a name="cl-802"></a>msgstr "Yhtään kuvaa ei valittuna"
|
5638 |
-
<a name="cl-803"></a>
|
5639 |
-
<a name="cl-804"></a>#: ../admin/functions.php:459 ../admin/functions.php:539
|
5640 |
-
<a name="cl-805"></a>#: ../admin/functions.php:594 ../admin/functions.php:691
|
5641 |
-
<a name="cl-806"></a>#: ../admin/functions.php:745
|
5642 |
-
<a name="cl-807"></a>msgid "Object didn't contain correct data"
|
5643 |
-
<a name="cl-808"></a>msgstr "Objekti ei sisältänyt oikeita tietoja"
|
5644 |
-
<a name="cl-809"></a>
|
5645 |
-
<a name="cl-810"></a>#: ../admin/functions.php:467
|
5646 |
-
<a name="cl-811"></a>msgid " is not writeable "
|
5647 |
-
<a name="cl-812"></a>msgstr "ei voida kirjoittaa !"
|
5648 |
-
<a name="cl-813"></a>
|
5649 |
-
<a name="cl-814"></a>#: ../admin/functions.php:549 ../admin/functions.php:597
|
5650 |
-
<a name="cl-815"></a>#: ../admin/functions.php:697 ../admin/functions.php:748
|
5651 |
-
<a name="cl-816"></a>msgid " is not writeable"
|
5652 |
-
<a name="cl-817"></a>msgstr "ei voida kirjoittaa !"
|
5653 |
-
<a name="cl-818"></a>
|
5654 |
-
<a name="cl-819"></a>#: ../admin/functions.php:751
|
5655 |
-
<a name="cl-820"></a>msgid "File do not exists"
|
5656 |
-
<a name="cl-821"></a>msgstr "Tiedosto ei ole olemassa"
|
5657 |
-
<a name="cl-822"></a>
|
5658 |
-
<a name="cl-823"></a>#: ../admin/functions.php:755
|
5659 |
-
<a name="cl-824"></a>msgid "Couldn't restore original image"
|
5660 |
-
<a name="cl-825"></a>msgstr "Alkuperäisen kuvan palautus ei onnistunut "
|
5661 |
-
<a name="cl-826"></a>
|
5662 |
-
<a name="cl-827"></a>#: ../admin/functions.php:871
|
5663 |
-
<a name="cl-828"></a>msgid "(Error : Couldn't not update data base)"
|
5664 |
-
<a name="cl-829"></a>msgstr "(Virhe : tietokannan päivitys ei onnistunut)"
|
5665 |
-
<a name="cl-830"></a>
|
5666 |
-
<a name="cl-831"></a>#: ../admin/functions.php:878
|
5667 |
-
<a name="cl-832"></a>msgid "(Error : Couldn't not update meta data)"
|
5668 |
-
<a name="cl-833"></a>msgstr "(Virhe : metatietojen päivitys ei onnistunut)"
|
5669 |
-
<a name="cl-834"></a>
|
5670 |
-
<a name="cl-835"></a>#: ../admin/functions.php:887
|
5671 |
-
<a name="cl-836"></a>msgid "(Error : Couldn't not find image)"
|
5672 |
-
<a name="cl-837"></a>msgstr "(Virhe : kuvaa ei löytynyt)"
|
5673 |
-
<a name="cl-838"></a>
|
5674 |
-
<a name="cl-839"></a>#: ../admin/functions.php:1030
|
5675 |
-
<a name="cl-840"></a>msgid "No valid URL path "
|
5676 |
-
<a name="cl-841"></a>msgstr "URL-polku ei kelpaa"
|
5677 |
-
<a name="cl-842"></a>
|
5678 |
-
<a name="cl-843"></a>#: ../admin/functions.php:1046
|
5679 |
-
<a name="cl-844"></a>msgid "Import via cURL failed."
|
5680 |
-
<a name="cl-845"></a>msgstr "cURL-tuonti epäonnistui. "
|
5681 |
-
<a name="cl-846"></a>
|
5682 |
-
<a name="cl-847"></a>#: ../admin/functions.php:1063
|
5683 |
-
<a name="cl-848"></a>msgid "Uploaded file was no or a faulty zip file ! The server recognized : "
|
5684 |
-
<a name="cl-849"></a>msgstr ""
|
5685 |
-
<a name="cl-850"></a>"Ladattu tiedosto ei ollut tai oli väärä zip-tiedosto. Palvelimen ilmoitus :"
|
5686 |
-
<a name="cl-851"></a>
|
5687 |
-
<a name="cl-852"></a>#: ../admin/functions.php:1080
|
5688 |
-
<a name="cl-853"></a>msgid "Could not get a valid foldername"
|
5689 |
-
<a name="cl-854"></a>msgstr "Ei kelvollista hakemistonimeä"
|
5690 |
-
<a name="cl-855"></a>
|
5691 |
-
<a name="cl-856"></a>#: ../admin/functions.php:1091
|
5692 |
-
<a name="cl-857"></a>#, php-format
|
5693 |
-
<a name="cl-858"></a>msgid ""
|
5694 |
-
<a name="cl-859"></a>"Unable to create directory %s. Is its parent directory writable by the "
|
5695 |
-
<a name="cl-860"></a>"server?"
|
5696 |
-
<a name="cl-861"></a>msgstr ""
|
5697 |
-
<a name="cl-862"></a>"Hakemiston %s luonti ei onnistunut. Voiko päähakemistoon palvelimella "
|
5698 |
-
<a name="cl-863"></a>"kirjoittaa?"
|
5699 |
-
<a name="cl-864"></a>
|
5700 |
-
<a name="cl-865"></a>#: ../admin/functions.php:1106
|
5701 |
-
<a name="cl-866"></a>msgid "Zip-File successfully unpacked"
|
5702 |
-
<a name="cl-867"></a>msgstr "Zip-tiedosto purettu onnistuneesti"
|
5703 |
-
<a name="cl-868"></a>
|
5704 |
-
<a name="cl-869"></a>#: ../admin/functions.php:1137 ../admin/functions.php:1237
|
5705 |
-
<a name="cl-870"></a>msgid "No gallery selected !"
|
5706 |
-
<a name="cl-871"></a>msgstr "Ei galleriaa valittuna !"
|
5707 |
-
<a name="cl-872"></a>
|
5708 |
-
<a name="cl-873"></a>#: ../admin/functions.php:1145 ../admin/functions.php:1262
|
5709 |
-
<a name="cl-874"></a>msgid "Failure in database, no gallery path set !"
|
5710 |
-
<a name="cl-875"></a>msgstr "Tietokantavirhe, gallerialle ei ole asetettu polkua!"
|
5711 |
-
<a name="cl-876"></a>
|
5712 |
-
<a name="cl-877"></a>#: ../admin/functions.php:1169 ../admin/functions.php:1256
|
5713 |
-
<a name="cl-878"></a>msgid "is no valid image file!"
|
5714 |
-
<a name="cl-879"></a>msgstr "ei ole kelvollinen kuvatiedosto !"
|
5715 |
-
<a name="cl-880"></a>
|
5716 |
-
<a name="cl-881"></a>#: ../admin/functions.php:1183 ../admin/functions.php:1381
|
5717 |
-
<a name="cl-882"></a>#: ../admin/functions.php:1458
|
5718 |
-
<a name="cl-883"></a>#, php-format
|
5719 |
-
<a name="cl-884"></a>msgid ""
|
5720 |
-
<a name="cl-885"></a>"Unable to write to directory %s. Is this directory writable by the server?"
|
5721 |
-
<a name="cl-886"></a>msgstr ""
|
5722 |
-
<a name="cl-887"></a>"Hakemistoon %s ei voi kirjoittaa. Onko hakemisto palvelimella "
|
5723 |
-
<a name="cl-888"></a>"kirjoitussuojattu?"
|
5724 |
-
<a name="cl-889"></a>
|
5725 |
-
<a name="cl-890"></a>#: ../admin/functions.php:1190 ../admin/functions.php:1279
|
5726 |
-
<a name="cl-891"></a>msgid "Error, the file could not be moved to : "
|
5727 |
-
<a name="cl-892"></a>msgstr "Virhe: tiedostoa ei voitu siirtää kohtaan :"
|
5728 |
-
<a name="cl-893"></a>
|
5729 |
-
<a name="cl-894"></a>#: ../admin/functions.php:1195 ../admin/functions.php:1283
|
5730 |
-
<a name="cl-895"></a>msgid "Error, the file permissions could not be set"
|
5731 |
-
<a name="cl-896"></a>msgstr "Virhe: oikeuksia tiedostolle ei voitu asettaa"
|
5732 |
-
<a name="cl-897"></a>
|
5733 |
-
<a name="cl-898"></a>#: ../admin/functions.php:1218
|
5734 |
-
<a name="cl-899"></a>msgid " Image(s) successfully added"
|
5735 |
-
<a name="cl-900"></a>msgstr "Kuva(t) lisätty onnistuneesti"
|
5736 |
-
<a name="cl-901"></a>
|
5737 |
-
<a name="cl-902"></a>#: ../admin/functions.php:1245
|
5738 |
-
<a name="cl-903"></a>msgid "Invalid upload. Error Code : "
|
5739 |
-
<a name="cl-904"></a>msgstr "Väärä lataus. Virhekoodi :"
|
5740 |
-
<a name="cl-905"></a>
|
5741 |
-
<a name="cl-906"></a>#: ../admin/functions.php:1321
|
5742 |
-
<a name="cl-907"></a>#, php-format
|
5743 |
-
<a name="cl-908"></a>msgid ""
|
5744 |
-
<a name="cl-909"></a>"SAFE MODE Restriction in effect! You need to create the folder <strong>%s</"
|
5745 |
-
<a name="cl-910"></a>"strong> manually"
|
5746 |
-
<a name="cl-911"></a>msgstr ""
|
5747 |
-
<a name="cl-912"></a>"SAFE MODE -rajoitus käytössä! Sinun on luotava hakemisto <strong>%s</strong> "
|
5748 |
-
<a name="cl-913"></a>"manuaalisesti."
|
5749 |
-
<a name="cl-914"></a>
|
5750 |
-
<a name="cl-915"></a>#: ../admin/functions.php:1322
|
5751 |
-
<a name="cl-916"></a>#, php-format
|
5752 |
-
<a name="cl-917"></a>msgid ""
|
5753 |
-
<a name="cl-918"></a>"When safe_mode is on, PHP checks to see if the owner (%s) of the current "
|
5754 |
-
<a name="cl-919"></a>"script matches the owner (%s) of the file to be operated on by a file "
|
5755 |
-
<a name="cl-920"></a>"function or its directory"
|
5756 |
-
<a name="cl-921"></a>msgstr ""
|
5757 |
-
<a name="cl-922"></a>"Kun Safe-Mode on käytössä, tarkistaa PHP, vastaako tämän skriptin (%s) "
|
5758 |
-
<a name="cl-923"></a>"omistaja (%s) tiedosto- tai hakemistotoiminnon omistajaa."
|
5759 |
-
<a name="cl-924"></a>
|
5760 |
-
<a name="cl-925"></a>#: ../admin/functions.php:1375 ../admin/functions.php:1452
|
5761 |
-
<a name="cl-926"></a>msgid "The destination gallery does not exist"
|
5762 |
-
<a name="cl-927"></a>msgstr "Kohdegalleriaa ei ole olemassa"
|
5763 |
-
<a name="cl-928"></a>
|
5764 |
-
<a name="cl-929"></a>#: ../admin/functions.php:1406 ../lib/xmlrpc.php:222
|
5765 |
-
<a name="cl-930"></a>#, php-format
|
5766 |
-
<a name="cl-931"></a>msgid "Failed to move image %1$s to %2$s"
|
5767 |
-
<a name="cl-932"></a>msgstr "Kuvan siirto paikasta %1$s paikkaan %2$s ei onnistunut"
|
5768 |
-
<a name="cl-933"></a>
|
5769 |
-
<a name="cl-934"></a>#: ../admin/functions.php:1426
|
5770 |
-
<a name="cl-935"></a>#, php-format
|
5771 |
-
<a name="cl-936"></a>msgid "Moved %1$s picture(s) to gallery : %2$s ."
|
5772 |
-
<a name="cl-937"></a>msgstr " Siirretty %1$s kuva(t) galleriaan : %2$s ."
|
5773 |
-
<a name="cl-938"></a>
|
5774 |
-
<a name="cl-939"></a>#: ../admin/functions.php:1485
|
5775 |
-
<a name="cl-940"></a>#, php-format
|
5776 |
-
<a name="cl-941"></a>msgid "Failed to copy image %1$s to %2$s"
|
5777 |
-
<a name="cl-942"></a>msgstr "Kuvan %1$s kopiointi %2$s kuvaksi ei onnistunut"
|
5778 |
-
<a name="cl-943"></a>
|
5779 |
-
<a name="cl-944"></a>#: ../admin/functions.php:1499
|
5780 |
-
<a name="cl-945"></a>#, php-format
|
5781 |
-
<a name="cl-946"></a>msgid "Failed to copy database row for picture %s"
|
5782 |
-
<a name="cl-947"></a>msgstr "Kuvan %s tietokantarivin kopiointi epäonnistui"
|
5783 |
-
<a name="cl-948"></a>
|
5784 |
-
<a name="cl-949"></a>#: ../admin/functions.php:1511
|
5785 |
-
<a name="cl-950"></a>#, php-format
|
5786 |
-
<a name="cl-951"></a>msgid ""
|
5787 |
-
<a name="cl-952"></a>"Image %1$s (%2$s) copied as image %3$s (%4$s) &raquo; The file already "
|
5788 |
-
<a name="cl-953"></a>"existed in the destination gallery."
|
5789 |
-
<a name="cl-954"></a>msgstr ""
|
5790 |
-
<a name="cl-955"></a>"Kuva %1$s (%2$s) kopioitu kuvaksi %3$s (%4$s) &raquo; tiedosto oli jo "
|
5791 |
-
<a name="cl-956"></a>"kohdegalleriassa."
|
5792 |
-
<a name="cl-957"></a>
|
5793 |
-
<a name="cl-958"></a>#: ../admin/functions.php:1514
|
5794 |
-
<a name="cl-959"></a>#, php-format
|
5795 |
-
<a name="cl-960"></a>msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
|
5796 |
-
<a name="cl-961"></a>msgstr "Kuva %1$s (%2$s) kopioitu kuvaksi %3$s (%4$s)"
|
5797 |
-
<a name="cl-962"></a>
|
5798 |
-
<a name="cl-963"></a>#: ../admin/functions.php:1523
|
5799 |
-
<a name="cl-964"></a>#, php-format
|
5800 |
-
<a name="cl-965"></a>msgid "Copied %1$s picture(s) to gallery: %2$s ."
|
5801 |
-
<a name="cl-966"></a>msgstr "Kopioitu %1$s kuva(a) galleriaan: %2$s ."
|
5802 |
-
<a name="cl-967"></a>
|
5803 |
-
<a name="cl-968"></a>#: ../admin/functions.php:1631
|
5804 |
-
<a name="cl-969"></a>msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
|
5805 |
-
<a name="cl-970"></a>msgstr ""
|
5806 |
-
<a name="cl-971"></a>"Tiedoston koko suurempi kuin sallittu (upload_max_filesize) "
|
5807 |
-
<a name="cl-972"></a>"ohjaustiedostossa php.ini"
|
5808 |
-
<a name="cl-973"></a>
|
5809 |
-
<a name="cl-974"></a>#: ../admin/functions.php:1634
|
5810 |
-
<a name="cl-975"></a>msgid ""
|
5811 |
-
<a name="cl-976"></a>"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
5812 |
-
<a name="cl-977"></a>"the HTML form"
|
5813 |
-
<a name="cl-978"></a>msgstr "Tiedosto on suurempi kuin HTML-lomakkeen määritys MAX_FILE_SIZE "
|
5814 |
-
<a name="cl-979"></a>
|
5815 |
-
<a name="cl-980"></a>#: ../admin/functions.php:1637
|
5816 |
-
<a name="cl-981"></a>msgid "The uploaded file was only partially uploaded"
|
5817 |
-
<a name="cl-982"></a>msgstr "Tiedosto ladattu vain osittain"
|
5818 |
-
<a name="cl-983"></a>
|
5819 |
-
<a name="cl-984"></a>#: ../admin/functions.php:1640
|
5820 |
-
<a name="cl-985"></a>msgid "No file was uploaded"
|
5821 |
-
<a name="cl-986"></a>msgstr "Yhtään tiedostoa ei ladattu"
|
5822 |
-
<a name="cl-987"></a>
|
5823 |
-
<a name="cl-988"></a>#: ../admin/functions.php:1643
|
5824 |
-
<a name="cl-989"></a>msgid "Missing a temporary folder"
|
5825 |
-
<a name="cl-990"></a>msgstr "Tilapäiskansiota ei löydy"
|
5826 |
-
<a name="cl-991"></a>
|
5827 |
-
<a name="cl-992"></a>#: ../admin/functions.php:1646
|
5828 |
-
<a name="cl-993"></a>msgid "Failed to write file to disk"
|
5829 |
-
<a name="cl-994"></a>msgstr "Levylle kirjoitus epäonnistui"
|
5830 |
-
<a name="cl-995"></a>
|
5831 |
-
<a name="cl-996"></a>#: ../admin/functions.php:1649
|
5832 |
-
<a name="cl-997"></a>msgid "File upload stopped by extension"
|
5833 |
-
<a name="cl-998"></a>msgstr "Tiedoston lataus lopetettu"
|
5834 |
-
<a name="cl-999"></a>
|
5835 |
-
<a name="cl-1000"></a>#: ../admin/functions.php:1652
|
5836 |
-
<a name="cl-1001"></a>msgid "Unknown upload error"
|
5837 |
-
<a name="cl-1002"></a>msgstr "Tuntematon latausvirhe"
|
5838 |
-
<a name="cl-1003"></a>
|
5839 |
-
<a name="cl-1004"></a>#: ../admin/install.php:23
|
5840 |
-
<a name="cl-1005"></a>msgid "Sorry, NextCellent Gallery works only with a role called administrator"
|
5841 |
-
<a name="cl-1006"></a>msgstr "NextCellent Gallery toimii vain roolissa \"Administrator\""
|
5842 |
-
<a name="cl-1007"></a>
|
5843 |
-
<a name="cl-1008"></a>#: ../admin/install.php:102
|
5844 |
-
<a name="cl-1009"></a>msgid ""
|
5845 |
-
<a name="cl-1010"></a>"NextCellent Gallery : Tables could not created, please check your database "
|
5846 |
-
<a name="cl-1011"></a>"settings"
|
5847 |
-
<a name="cl-1012"></a>msgstr ""
|
5848 |
-
<a name="cl-1013"></a>"NextCellent Gallery : Tauluja ei voitu luoda, tarkista tietokanta-asetukset "
|
5849 |
-
<a name="cl-1014"></a>
|
5850 |
-
<a name="cl-1015"></a>#: ../admin/install.php:160
|
5851 |
-
<a name="cl-1016"></a>msgid "[Show as slideshow]"
|
5852 |
-
<a name="cl-1017"></a>msgstr "[Näytä diasarjana]"
|
5853 |
-
<a name="cl-1018"></a>
|
5854 |
-
<a name="cl-1019"></a>#: ../admin/install.php:161
|
5855 |
-
<a name="cl-1020"></a>msgid "[Show picture list]"
|
5856 |
-
<a name="cl-1021"></a>msgstr "[Näytä kuvalista]"
|
5857 |
-
<a name="cl-1022"></a>
|
5858 |
-
<a name="cl-1023"></a>#: ../admin/manage-galleries.php:68 ../admin/manage-images.php:195
|
5859 |
-
<a name="cl-1024"></a>msgid "No images selected"
|
5860 |
-
<a name="cl-1025"></a>msgstr "Yhtään kuvaa ei valittuna"
|
5861 |
-
<a name="cl-1026"></a>
|
5862 |
-
<a name="cl-1027"></a>#: ../admin/manage-galleries.php:76 ../admin/manage-galleries.php:151
|
5863 |
-
<a name="cl-1028"></a>#: ../admin/manage-images.php:223 ../admin/manage-images.php:372
|
5864 |
-
<a name="cl-1029"></a>#: ../admin/manage.php:211 ../admin/manage.php:290 ../admin/settings.php:394
|
5865 |
-
<a name="cl-1030"></a>msgid "Resize images"
|
5866 |
-
<a name="cl-1031"></a>msgstr "Muuta kuvakokoa"
|
5867 |
-
<a name="cl-1032"></a>
|
5868 |
-
<a name="cl-1033"></a>#: ../admin/manage-galleries.php:85
|
5869 |
-
<a name="cl-1034"></a>#, php-format
|
5870 |
-
<a name="cl-1035"></a>msgid ""
|
5871 |
-
<a name="cl-1036"></a>"You are about to start the bulk edit for %s galleries \n"
|
5872 |
-
<a name="cl-1037"></a>" \n"
|
5873 |
-
<a name="cl-1038"></a>" 'Cancel' to stop, 'OK' to proceed."
|
5874 |
-
<a name="cl-1039"></a>msgstr ""
|
5875 |
-
<a name="cl-1040"></a>"Olet aloittamassa massapäivityksen %s galleriaan \n"
|
5876 |
-
<a name="cl-1041"></a>" \n"
|
5877 |
-
<a name="cl-1042"></a>" 'Peruuta' lopettaaksesi, 'OK' jatkaaksesi."
|
5878 |
-
<a name="cl-1043"></a>
|
5879 |
-
<a name="cl-1044"></a>#: ../admin/manage-galleries.php:118 ../admin/manage-galleries.php:128
|
5880 |
-
<a name="cl-1045"></a>msgid "Add new gallery"
|
5881 |
-
<a name="cl-1046"></a>msgstr "Lisää uusi galleria"
|
5882 |
-
<a name="cl-1047"></a>
|
5883 |
-
<a name="cl-1048"></a>#: ../admin/manage-galleries.php:132 ../admin/manage-galleries.php:135
|
5884 |
-
<a name="cl-1049"></a>#: ../admin/manage-images.php:249 ../admin/manage-images.php:252
|
5885 |
-
<a name="cl-1050"></a>msgid "Search Images"
|
5886 |
-
<a name="cl-1051"></a>msgstr "Etsi kuvia"
|
5887 |
-
<a name="cl-1052"></a>
|
5888 |
-
<a name="cl-1053"></a>#: ../admin/manage-galleries.php:147 ../admin/manage-images.php:369
|
5889 |
-
<a name="cl-1054"></a>#, fuzzy
|
5890 |
-
<a name="cl-1055"></a>msgid "Actions"
|
5891 |
-
<a name="cl-1056"></a>msgstr "Sijainti"
|
5892 |
-
<a name="cl-1057"></a>
|
5893 |
-
<a name="cl-1058"></a>#: ../admin/manage-galleries.php:149 ../admin/manage-images.php:370
|
5894 |
-
<a name="cl-1059"></a>#: ../admin/manage.php:141 ../admin/manage.php:253
|
5895 |
-
<a name="cl-1060"></a>msgid "Set watermark"
|
5896 |
-
<a name="cl-1061"></a>msgstr "Aseta vesileima"
|
5897 |
-
<a name="cl-1062"></a>
|
5898 |
-
<a name="cl-1063"></a>#: ../admin/manage-galleries.php:152 ../admin/manage-images.php:375
|
5899 |
-
<a name="cl-1064"></a>#: ../admin/manage.php:146 ../admin/manage.php:274
|
5900 |
-
<a name="cl-1065"></a>msgid "Import metadata"
|
5901 |
-
<a name="cl-1066"></a>msgstr "Tuo metadata"
|
5902 |
-
<a name="cl-1067"></a>
|
5903 |
-
<a name="cl-1068"></a>#: ../admin/manage-galleries.php:153 ../admin/manage-images.php:373
|
5904 |
-
<a name="cl-1069"></a>#: ../admin/manage.php:136 ../admin/manage.php:250
|
5905 |
-
<a name="cl-1070"></a>msgid "Recover from backup"
|
5906 |
-
<a name="cl-1071"></a>msgstr "Palauta varmistuksesta"
|
5907 |
-
<a name="cl-1072"></a>
|
5908 |
-
<a name="cl-1073"></a>#: ../admin/manage-galleries.php:155 ../admin/manage-images.php:384
|
5909 |
-
<a name="cl-1074"></a>msgid "Apply"
|
5910 |
-
<a name="cl-1075"></a>msgstr "Hyväksy"
|
5911 |
-
<a name="cl-1076"></a>
|
5912 |
-
<a name="cl-1077"></a>#: ../admin/manage-galleries.php:219 ../admin/tags.php:251
|
5913 |
-
<a name="cl-1078"></a>msgid "Edit"
|
5914 |
-
<a name="cl-1079"></a>msgstr "Muokkaa"
|
5915 |
-
<a name="cl-1080"></a>
|
5916 |
-
<a name="cl-1081"></a>#: ../admin/manage-galleries.php:260 ../admin/manage-images.php:540
|
5917 |
-
<a name="cl-1082"></a>msgid "No entries found"
|
5918 |
-
<a name="cl-1083"></a>msgstr "Mitään kohteita ei löydy"
|
5919 |
-
<a name="cl-1084"></a>
|
5920 |
-
<a name="cl-1085"></a>#: ../admin/manage-galleries.php:278
|
5921 |
-
<a name="cl-1086"></a>msgid "New Gallery"
|
5922 |
-
<a name="cl-1087"></a>msgstr "Uusi galleria"
|
5923 |
-
<a name="cl-1088"></a>
|
5924 |
-
<a name="cl-1089"></a>#: ../admin/manage-galleries.php:280
|
5925 |
-
<a name="cl-1090"></a>msgid "Create a new , empty gallery below the folder"
|
5926 |
-
<a name="cl-1091"></a>msgstr "Luo uusi, tyhjä galleria hakemiston alle"
|
5927 |
-
<a name="cl-1092"></a>
|
5928 |
-
<a name="cl-1093"></a>#: ../admin/manage-galleries.php:308 ../admin/manage-images.php:621
|
5929 |
-
<a name="cl-1094"></a>msgid "Resize Images to"
|
5930 |
-
<a name="cl-1095"></a>msgstr "Muuta kuvien kooksi "
|
5931 |
-
<a name="cl-1096"></a>
|
5932 |
-
<a name="cl-1097"></a>#: ../admin/manage-galleries.php:311 ../admin/manage-galleries.php:340
|
5933 |
-
<a name="cl-1098"></a>#: ../admin/manage-images.php:624 ../admin/manage-images.php:652
|
5934 |
-
<a name="cl-1099"></a>#: ../admin/settings.php:395 ../admin/settings.php:424
|
5935 |
-
<a name="cl-1100"></a>#: ../admin/settings.php:698 ../admin/tinymce/window.php:210
|
5936 |
-
<a name="cl-1101"></a>#: ../admin/tinymce/window.php:318
|
5937 |
-
<a name="cl-1102"></a>msgid "Width"
|
5938 |
-
<a name="cl-1103"></a>msgstr "Leveys"
|
5939 |
-
<a name="cl-1104"></a>
|
5940 |
-
<a name="cl-1105"></a>#: ../admin/manage-galleries.php:313 ../admin/manage-galleries.php:340
|
5941 |
-
<a name="cl-1106"></a>#: ../admin/manage-images.php:626 ../admin/manage-images.php:653
|
5942 |
-
<a name="cl-1107"></a>#: ../admin/settings.php:397 ../admin/settings.php:426
|
5943 |
-
<a name="cl-1108"></a>#: ../admin/settings.php:700 ../admin/tinymce/window.php:211
|
5944 |
-
<a name="cl-1109"></a>#: ../admin/tinymce/window.php:320
|
5945 |
-
<a name="cl-1110"></a>msgid "Height"
|
5946 |
-
<a name="cl-1111"></a>msgstr "Korkeus"
|
5947 |
-
<a name="cl-1112"></a>
|
5948 |
-
<a name="cl-1113"></a>#: ../admin/manage-galleries.php:315 ../admin/manage-images.php:628
|
5949 |
-
<a name="cl-1114"></a>#: ../admin/settings.php:399
|
5950 |
-
<a name="cl-1115"></a>msgid ""
|
5951 |
-
<a name="cl-1116"></a>"Width and height (in pixels). NextCellent Gallery will keep the ratio size."
|
5952 |
-
<a name="cl-1117"></a>msgstr ""
|
5953 |
-
<a name="cl-1118"></a>"Leveys ja korkeus (pikseleinä). NextCellent Gallery säilyttää sivusuhteen."
|
5954 |
-
<a name="cl-1119"></a>
|
5955 |
-
<a name="cl-1120"></a>#: ../admin/manage-galleries.php:339 ../admin/manage-images.php:651
|
5956 |
-
<a name="cl-1121"></a>#: ../admin/media-upload.php:242 ../admin/settings.php:663
|
5957 |
-
<a name="cl-1122"></a>msgid "Size"
|
5958 |
-
<a name="cl-1123"></a>msgstr "Koko"
|
5959 |
-
<a name="cl-1124"></a>
|
5960 |
-
<a name="cl-1125"></a>#: ../admin/manage-galleries.php:341 ../admin/manage-images.php:654
|
5961 |
-
<a name="cl-1126"></a>#: ../admin/settings.php:428
|
5962 |
-
<a name="cl-1127"></a>msgid "These values are maximum values "
|
5963 |
-
<a name="cl-1128"></a>msgstr "Nämä ovat maksimiarvot."
|
5964 |
-
<a name="cl-1129"></a>
|
5965 |
-
<a name="cl-1130"></a>#: ../admin/manage-galleries.php:344 ../admin/manage-images.php:657
|
5966 |
-
<a name="cl-1131"></a>#: ../admin/settings.php:431
|
5967 |
-
<a name="cl-1132"></a>msgid "Fixed size"
|
5968 |
-
<a name="cl-1133"></a>msgstr "Kiinteä koko"
|
5969 |
-
<a name="cl-1134"></a>
|
5970 |
-
<a name="cl-1135"></a>#: ../admin/manage-galleries.php:346 ../admin/manage-images.php:659
|
5971 |
-
<a name="cl-1136"></a>#: ../admin/settings.php:433
|
5972 |
-
<a name="cl-1137"></a>msgid "This will ignore the aspect ratio, so no portrait thumbnails"
|
5973 |
-
<a name="cl-1138"></a>msgstr "Tämä ohittaa sivusuhteen, eli ei esikatselukuvia pystyssä."
|
5974 |
-
<a name="cl-1139"></a>
|
5975 |
-
<a name="cl-1140"></a>#: ../admin/manage-galleries.php:409 ../admin/manage-images.php:728
|
5976 |
-
<a name="cl-1141"></a>msgid "ID"
|
5977 |
-
<a name="cl-1142"></a>msgstr "ID"
|
5978 |
-
<a name="cl-1143"></a>
|
5979 |
-
<a name="cl-1144"></a>#: ../admin/manage-galleries.php:411 ../admin/manage-images.php:292
|
5980 |
-
<a name="cl-1145"></a>#: ../admin/manage-images.php:509 ../admin/manage-images.php:731
|
5981 |
-
<a name="cl-1146"></a>#: ../admin/media-upload.php:225 ../admin/style.php:145
|
5982 |
-
<a name="cl-1147"></a>msgid "Description"
|
5983 |
-
<a name="cl-1148"></a>msgstr "Kuvaus"
|
5984 |
-
<a name="cl-1149"></a>
|
5985 |
-
<a name="cl-1150"></a>#: ../admin/manage-galleries.php:412 ../admin/manage-images.php:321
|
5986 |
-
<a name="cl-1151"></a>#: ../admin/overview.php:771 ../admin/style.php:143 ../lib/meta.php:458
|
5987 |
-
<a name="cl-1152"></a>msgid "Author"
|
5988 |
-
<a name="cl-1153"></a>msgstr "Kirjoittaja"
|
5989 |
-
<a name="cl-1154"></a>
|
5990 |
-
<a name="cl-1155"></a>#: ../admin/manage-galleries.php:413
|
5991 |
-
<a name="cl-1156"></a>msgid "Page ID"
|
5992 |
-
<a name="cl-1157"></a>msgstr "Sivu-ID"
|
5993 |
-
<a name="cl-1158"></a>
|
5994 |
-
<a name="cl-1159"></a>#: ../admin/manage-images.php:34
|
5995 |
-
<a name="cl-1160"></a>msgid "Gallery not found."
|
5996 |
-
<a name="cl-1161"></a>msgstr "Galleriaa ei löydy. "
|
5997 |
-
<a name="cl-1162"></a>
|
5998 |
-
<a name="cl-1163"></a>#: ../admin/manage-images.php:40
|
5999 |
-
<a name="cl-1164"></a>msgid "Sorry, you have no access here"
|
6000 |
-
<a name="cl-1165"></a>msgstr "Sori, oikeutesi eivät riitä"
|
6001 |
-
<a name="cl-1166"></a>
|
6002 |
-
<a name="cl-1167"></a>#: ../admin/manage-images.php:203
|
6003 |
-
<a name="cl-1168"></a>msgid "Copy image to..."
|
6004 |
-
<a name="cl-1169"></a>msgstr "Sori, oikeutesi eivät riitä"
|
6005 |
-
<a name="cl-1170"></a>
|
6006 |
-
<a name="cl-1171"></a>#: ../admin/manage-images.php:207
|
6007 |
-
<a name="cl-1172"></a>msgid "Move image to..."
|
6008 |
-
<a name="cl-1173"></a>msgstr "Siirrä kuva..."
|
6009 |
-
<a name="cl-1174"></a>
|
6010 |
-
<a name="cl-1175"></a>#: ../admin/manage-images.php:211
|
6011 |
-
<a name="cl-1176"></a>msgid "Add new tags"
|
6012 |
-
<a name="cl-1177"></a>msgstr "Lisää tägejä"
|
6013 |
-
<a name="cl-1178"></a>
|
6014 |
-
<a name="cl-1179"></a>#: ../admin/manage-images.php:215 ../admin/manage-images.php:381
|
6015 |
-
<a name="cl-1180"></a>msgid "Delete tags"
|
6016 |
-
<a name="cl-1181"></a>msgstr "Poista tägejä"
|
6017 |
-
<a name="cl-1182"></a>
|
6018 |
-
<a name="cl-1183"></a>#: ../admin/manage-images.php:219
|
6019 |
-
<a name="cl-1184"></a>msgid "Overwrite"
|
6020 |
-
<a name="cl-1185"></a>msgstr "Kirjoita yli"
|
6021 |
-
<a name="cl-1186"></a>
|
6022 |
-
<a name="cl-1187"></a>#: ../admin/manage-images.php:232
|
6023 |
-
<a name="cl-1188"></a>#, php-format
|
6024 |
-
<a name="cl-1189"></a>msgid ""
|
6025 |
-
<a name="cl-1190"></a>"You are about to start the bulk edit for %s images \n"
|
6026 |
-
<a name="cl-1191"></a>" \n"
|
6027 |
-
<a name="cl-1192"></a>" 'Cancel' to stop, 'OK' to proceed."
|
6028 |
-
<a name="cl-1193"></a>msgstr ""
|
6029 |
-
<a name="cl-1194"></a>"Olet aloittamassa massamuokkauksen %s kuville\n"
|
6030 |
-
<a name="cl-1195"></a>" \n"
|
6031 |
-
<a name="cl-1196"></a>" 'Peruuta' lopettaaksesi, 'OK' jatkaaksesi."
|
6032 |
-
<a name="cl-1197"></a>
|
6033 |
-
<a name="cl-1198"></a>#: ../admin/manage-images.php:246
|
6034 |
-
<a name="cl-1199"></a>#, php-format
|
6035 |
-
<a name="cl-1200"></a>msgid "Search results for &#8220;%s&#8221;"
|
6036 |
-
<a name="cl-1201"></a>msgstr "Hakutulokset &#8220;%s&#8221;"
|
6037 |
-
<a name="cl-1202"></a>
|
6038 |
-
<a name="cl-1203"></a>#: ../admin/manage-images.php:275 ../admin/settings.php:457
|
6039 |
-
<a name="cl-1204"></a>msgid "Gallery settings"
|
6040 |
-
<a name="cl-1205"></a>msgstr "Gallerian asetukset"
|
6041 |
-
<a name="cl-1206"></a>
|
6042 |
-
<a name="cl-1207"></a>#: ../admin/manage-images.php:275
|
6043 |
-
<a name="cl-1208"></a>msgid "Click here for more settings"
|
6044 |
-
<a name="cl-1209"></a>msgstr "Klikkaa tästä lisäasetuksille"
|
6045 |
-
<a name="cl-1210"></a>
|
6046 |
-
<a name="cl-1211"></a>#: ../admin/manage-images.php:294
|
6047 |
-
<a name="cl-1212"></a>msgid "Preview image"
|
6048 |
-
<a name="cl-1213"></a>msgstr "Katso kuvaa"
|
6049 |
-
<a name="cl-1214"></a>
|
6050 |
-
<a name="cl-1215"></a>#: ../admin/manage-images.php:297
|
6051 |
-
<a name="cl-1216"></a>msgid "No Picture"
|
6052 |
-
<a name="cl-1217"></a>msgstr "Ei kuvaa"
|
6053 |
-
<a name="cl-1218"></a>
|
6054 |
-
<a name="cl-1219"></a>#: ../admin/manage-images.php:319
|
6055 |
-
<a name="cl-1220"></a>msgid "Path"
|
6056 |
-
<a name="cl-1221"></a>msgstr "Polku "
|
6057 |
-
<a name="cl-1222"></a>
|
6058 |
-
<a name="cl-1223"></a>#: ../admin/manage-images.php:335
|
6059 |
-
<a name="cl-1224"></a>msgid "Create new page"
|
6060 |
-
<a name="cl-1225"></a>msgstr "Luo uusi sivu"
|
6061 |
-
<a name="cl-1226"></a>
|
6062 |
-
<a name="cl-1227"></a>#: ../admin/manage-images.php:338
|
6063 |
-
<a name="cl-1228"></a>msgid "Main page (No parent)"
|
6064 |
-
<a name="cl-1229"></a>msgstr "Pääsivu (ei pääsivua)"
|
6065 |
-
<a name="cl-1230"></a>
|
6066 |
-
<a name="cl-1231"></a>#: ../admin/manage-images.php:343
|
6067 |
-
<a name="cl-1232"></a>msgid "Add page"
|
6068 |
-
<a name="cl-1233"></a>msgstr "Lisää sivu"
|
6069 |
-
<a name="cl-1234"></a>
|
6070 |
-
<a name="cl-1235"></a>#: ../admin/manage-images.php:353
|
6071 |
-
<a name="cl-1236"></a>#, fuzzy
|
6072 |
-
<a name="cl-1237"></a>msgid "Scan folder for new images"
|
6073 |
-
<a name="cl-1238"></a>msgstr "Tarkista kuvat kansiossa"
|
6074 |
-
<a name="cl-1239"></a>
|
6075 |
-
<a name="cl-1240"></a>#: ../admin/manage-images.php:354
|
6076 |
-
<a name="cl-1241"></a>msgid "Old scanning"
|
6077 |
-
<a name="cl-1242"></a>msgstr ""
|
6078 |
-
<a name="cl-1243"></a>
|
6079 |
-
<a name="cl-1244"></a>#: ../admin/manage-images.php:355 ../admin/manage-images.php:390
|
6080 |
-
<a name="cl-1245"></a>#: ../admin/manage-images.php:547 ../admin/settings.php:379
|
6081 |
-
<a name="cl-1246"></a>#: ../admin/settings.php:447 ../admin/settings.php:537
|
6082 |
-
<a name="cl-1247"></a>#: ../admin/settings.php:571 ../admin/settings.php:681
|
6083 |
-
<a name="cl-1248"></a>#: ../admin/settings.php:833
|
6084 |
-
<a name="cl-1249"></a>msgid "Save Changes"
|
6085 |
-
<a name="cl-1250"></a>msgstr "Tallenna muutokset"
|
6086 |
-
<a name="cl-1251"></a>
|
6087 |
-
<a name="cl-1252"></a>#: ../admin/manage-images.php:374
|
6088 |
-
<a name="cl-1253"></a>msgid "Delete images"
|
6089 |
-
<a name="cl-1254"></a>msgstr "Poista kuvia"
|
6090 |
-
<a name="cl-1255"></a>
|
6091 |
-
<a name="cl-1256"></a>#: ../admin/manage-images.php:376
|
6092 |
-
<a name="cl-1257"></a>msgid "Rotate images clockwise"
|
6093 |
-
<a name="cl-1258"></a>msgstr "Pyöritä kuvia myötäpäivään"
|
6094 |
-
<a name="cl-1259"></a>
|
6095 |
-
<a name="cl-1260"></a>#: ../admin/manage-images.php:377
|
6096 |
-
<a name="cl-1261"></a>msgid "Rotate images counter-clockwise"
|
6097 |
-
<a name="cl-1262"></a>msgstr "Pyöritä kuvia vastapäivään"
|
6098 |
-
<a name="cl-1263"></a>
|
6099 |
-
<a name="cl-1264"></a>#: ../admin/manage-images.php:378
|
6100 |
-
<a name="cl-1265"></a>msgid "Copy to..."
|
6101 |
-
<a name="cl-1266"></a>msgstr "Kopioi ..."
|
6102 |
-
<a name="cl-1267"></a>
|
6103 |
-
<a name="cl-1268"></a>#: ../admin/manage-images.php:379
|
6104 |
-
<a name="cl-1269"></a>msgid "Move to..."
|
6105 |
-
<a name="cl-1270"></a>msgstr "Siirrä..."
|
6106 |
-
<a name="cl-1271"></a>
|
6107 |
-
<a name="cl-1272"></a>#: ../admin/manage-images.php:380
|
6108 |
-
<a name="cl-1273"></a>msgid "Add tags"
|
6109 |
-
<a name="cl-1274"></a>msgstr "Lisää tägejä"
|
6110 |
-
<a name="cl-1275"></a>
|
6111 |
-
<a name="cl-1276"></a>#: ../admin/manage-images.php:382
|
6112 |
-
<a name="cl-1277"></a>msgid "Overwrite tags"
|
6113 |
-
<a name="cl-1278"></a>msgstr "Kirjoita tägit yli"
|
6114 |
-
<a name="cl-1279"></a>
|
6115 |
-
<a name="cl-1280"></a>#: ../admin/manage-images.php:387
|
6116 |
-
<a name="cl-1281"></a>msgid "Sort gallery"
|
6117 |
-
<a name="cl-1282"></a>msgstr "Lajittele galleria"
|
6118 |
-
<a name="cl-1283"></a>
|
6119 |
-
<a name="cl-1284"></a>#: ../admin/manage-images.php:462
|
6120 |
-
<a name="cl-1285"></a>#, fuzzy
|
6121 |
-
<a name="cl-1286"></a>msgid "Change Date"
|
6122 |
-
<a name="cl-1287"></a>msgstr "Muuta tyyliä "
|
6123 |
-
<a name="cl-1288"></a>
|
6124 |
-
<a name="cl-1289"></a>#: ../admin/manage-images.php:466
|
6125 |
-
<a name="cl-1290"></a>msgid "pixel"
|
6126 |
-
<a name="cl-1291"></a>msgstr "pikseli"
|
6127 |
-
<a name="cl-1292"></a>
|
6128 |
-
<a name="cl-1293"></a>#: ../admin/manage-images.php:472
|
6129 |
-
<a name="cl-1294"></a>#, php-format
|
6130 |
-
<a name="cl-1295"></a>msgid "View \"%s\""
|
6131 |
-
<a name="cl-1296"></a>msgstr "Katso \"%s\""
|
6132 |
-
<a name="cl-1297"></a>
|
6133 |
-
<a name="cl-1298"></a>#: ../admin/manage-images.php:472
|
6134 |
-
<a name="cl-1299"></a>msgid "View"
|
6135 |
-
<a name="cl-1300"></a>msgstr "Katso "
|
6136 |
-
<a name="cl-1301"></a>
|
6137 |
-
<a name="cl-1302"></a>#: ../admin/manage-images.php:473
|
6138 |
-
<a name="cl-1303"></a>msgid "Show Meta data"
|
6139 |
-
<a name="cl-1304"></a>msgstr "Näytä metadata"
|
6140 |
-
<a name="cl-1305"></a>
|
6141 |
-
<a name="cl-1306"></a>#: ../admin/manage-images.php:473
|
6142 |
-
<a name="cl-1307"></a>msgid "Meta"
|
6143 |
-
<a name="cl-1308"></a>msgstr "Meta"
|
6144 |
-
<a name="cl-1309"></a>
|
6145 |
-
<a name="cl-1310"></a>#: ../admin/manage-images.php:474
|
6146 |
-
<a name="cl-1311"></a>msgid "Customize thumbnail"
|
6147 |
-
<a name="cl-1312"></a>msgstr "Muokkaa esikatselukuvaa"
|
6148 |
-
<a name="cl-1313"></a>
|
6149 |
-
<a name="cl-1314"></a>#: ../admin/manage-images.php:474
|
6150 |
-
<a name="cl-1315"></a>msgid "Edit thumb"
|
6151 |
-
<a name="cl-1316"></a>msgstr "Muokkaa esikatselukuvaa"
|
6152 |
-
<a name="cl-1317"></a>
|
6153 |
-
<a name="cl-1318"></a>#: ../admin/manage-images.php:475
|
6154 |
-
<a name="cl-1319"></a>msgid "Rotate"
|
6155 |
-
<a name="cl-1320"></a>msgstr "Pyöritä"
|
6156 |
-
<a name="cl-1321"></a>
|
6157 |
-
<a name="cl-1322"></a>#: ../admin/manage-images.php:477
|
6158 |
-
<a name="cl-1323"></a>msgid "Publish this image"
|
6159 |
-
<a name="cl-1324"></a>msgstr "Julkaise kuva"
|
6160 |
-
<a name="cl-1325"></a>
|
6161 |
-
<a name="cl-1326"></a>#: ../admin/manage-images.php:477 ../admin/publish.php:58
|
6162 |
-
<a name="cl-1327"></a>msgid "Publish"
|
6163 |
-
<a name="cl-1328"></a>msgstr "Julkaise"
|
6164 |
-
<a name="cl-1329"></a>
|
6165 |
-
<a name="cl-1330"></a>#: ../admin/manage-images.php:479
|
6166 |
-
<a name="cl-1331"></a>msgid "Recover"
|
6167 |
-
<a name="cl-1332"></a>msgstr "Palauta"
|
6168 |
-
<a name="cl-1333"></a>
|
6169 |
-
<a name="cl-1334"></a>#: ../admin/manage-images.php:479
|
6170 |
-
<a name="cl-1335"></a>#, php-format
|
6171 |
-
<a name="cl-1336"></a>msgid "Recover \"%s\" ?"
|
6172 |
-
<a name="cl-1337"></a>msgstr "Palauta \"%s\" ?"
|
6173 |
-
<a name="cl-1338"></a>
|
6174 |
-
<a name="cl-1339"></a>#: ../admin/manage-images.php:480
|
6175 |
-
<a name="cl-1340"></a>#, php-format
|
6176 |
-
<a name="cl-1341"></a>msgid "Delete \"%s\" ?"
|
6177 |
-
<a name="cl-1342"></a>msgstr "Poista \"%s\" ?"
|
6178 |
-
<a name="cl-1343"></a>
|
6179 |
-
<a name="cl-1344"></a>#: ../admin/manage-images.php:508
|
6180 |
-
<a name="cl-1345"></a>#, fuzzy
|
6181 |
-
<a name="cl-1346"></a>msgid "Alt & title text"
|
6182 |
-
<a name="cl-1347"></a>msgstr "Alt / otsikkoteksti"
|
6183 |
-
<a name="cl-1348"></a>
|
6184 |
-
<a name="cl-1349"></a>#: ../admin/manage-images.php:522
|
6185 |
-
<a name="cl-1350"></a>#, fuzzy
|
6186 |
-
<a name="cl-1351"></a>msgid "Separated by commas"
|
6187 |
-
<a name="cl-1352"></a>msgstr "Galleria IDt, erotettuna pilkuilla."
|
6188 |
-
<a name="cl-1353"></a>
|
6189 |
-
<a name="cl-1354"></a>#: ../admin/manage-images.php:563
|
6190 |
-
<a name="cl-1355"></a>msgid "Enter the tags"
|
6191 |
-
<a name="cl-1356"></a>msgstr "Anna tägejä"
|
6192 |
-
<a name="cl-1357"></a>
|
6193 |
-
<a name="cl-1358"></a>#: ../admin/manage-images.php:586
|
6194 |
-
<a name="cl-1359"></a>msgid "Select the destination gallery:"
|
6195 |
-
<a name="cl-1360"></a>msgstr "Valitse kohdegalleria:"
|
6196 |
-
<a name="cl-1361"></a>
|
6197 |
-
<a name="cl-1362"></a>#: ../admin/manage-images.php:729 ../admin/media-upload.php:246
|
6198 |
-
<a name="cl-1363"></a>msgid "Thumbnail"
|
6199 |
-
<a name="cl-1364"></a>msgstr "Esikatselukuva"
|
6200 |
-
<a name="cl-1365"></a>
|
6201 |
-
<a name="cl-1366"></a>#: ../admin/manage-images.php:730 ../admin/manage-sort.php:96
|
6202 |
-
<a name="cl-1367"></a>msgid "Filename"
|
6203 |
-
<a name="cl-1368"></a>msgstr "Tiedostonimi"
|
6204 |
-
<a name="cl-1369"></a>
|
6205 |
-
<a name="cl-1370"></a>#: ../admin/manage-images.php:731
|
6206 |
-
<a name="cl-1371"></a>msgid "Alt &amp; Title Text"
|
6207 |
-
<a name="cl-1372"></a>msgstr "Alt &amp; otsikkoteksti"
|
6208 |
-
<a name="cl-1373"></a>
|
6209 |
-
<a name="cl-1374"></a>#: ../admin/manage-images.php:733
|
6210 |
-
<a name="cl-1375"></a>#, fuzzy
|
6211 |
-
<a name="cl-1376"></a>msgid "Exclude"
|
6212 |
-
<a name="cl-1377"></a>msgstr "piilota "
|
6213 |
-
<a name="cl-1378"></a>
|
6214 |
-
<a name="cl-1379"></a>#: ../admin/manage-sort.php:33
|
6215 |
-
<a name="cl-1380"></a>msgid "Sort order changed"
|
6216 |
-
<a name="cl-1381"></a>msgstr "Lajittelujärjestys muutettu"
|
6217 |
-
<a name="cl-1382"></a>
|
6218 |
-
<a name="cl-1383"></a>#: ../admin/manage-sort.php:81
|
6219 |
-
<a name="cl-1384"></a>msgid "Sort Gallery"
|
6220 |
-
<a name="cl-1385"></a>msgstr "Lajittele galleria"
|
6221 |
-
<a name="cl-1386"></a>
|
6222 |
-
<a name="cl-1387"></a>#: ../admin/manage-sort.php:85
|
6223 |
-
<a name="cl-1388"></a>msgid "Update Sort Order"
|
6224 |
-
<a name="cl-1389"></a>msgstr "Päivitä lajittelujärjestys"
|
6225 |
-
<a name="cl-1390"></a>
|
6226 |
-
<a name="cl-1391"></a>#: ../admin/manage-sort.php:88
|
6227 |
-
<a name="cl-1392"></a>msgid "Back to gallery"
|
6228 |
-
<a name="cl-1393"></a>msgstr "Takaisin galleriaan"
|
6229 |
-
<a name="cl-1394"></a>
|
6230 |
-
<a name="cl-1395"></a>#: ../admin/manage-sort.php:93
|
6231 |
-
<a name="cl-1396"></a>msgid "Presort"
|
6232 |
-
<a name="cl-1397"></a>msgstr "Esilajittele"
|
6233 |
-
<a name="cl-1398"></a>
|
6234 |
-
<a name="cl-1399"></a>#: ../admin/manage-sort.php:94
|
6235 |
-
<a name="cl-1400"></a>msgid "Unsorted"
|
6236 |
-
<a name="cl-1401"></a>msgstr "Lajittelematon"
|
6237 |
-
<a name="cl-1402"></a>
|
6238 |
-
<a name="cl-1403"></a>#: ../admin/manage-sort.php:95 ../admin/settings.php:524
|
6239 |
-
<a name="cl-1404"></a>msgid "Image ID"
|
6240 |
-
<a name="cl-1405"></a>msgstr "Kuva ID"
|
6241 |
-
<a name="cl-1406"></a>
|
6242 |
-
<a name="cl-1407"></a>#: ../admin/manage-sort.php:97 ../admin/media-upload.php:221
|
6243 |
-
<a name="cl-1408"></a>msgid "Alt/Title text"
|
6244 |
-
<a name="cl-1409"></a>msgstr "Alt / otsikkoteksit"
|
6245 |
-
<a name="cl-1410"></a>
|
6246 |
-
<a name="cl-1411"></a>#: ../admin/manage-sort.php:98 ../lib/meta.php:452
|
6247 |
-
<a name="cl-1412"></a>msgid "Date/Time"
|
6248 |
-
<a name="cl-1413"></a>msgstr "Pvm/aika"
|
6249 |
-
<a name="cl-1414"></a>
|
6250 |
-
<a name="cl-1415"></a>#: ../admin/manage-sort.php:99 ../admin/settings.php:532
|
6251 |
-
<a name="cl-1416"></a>msgid "Ascending"
|
6252 |
-
<a name="cl-1417"></a>msgstr "Laskeva"
|
6253 |
-
<a name="cl-1418"></a>
|
6254 |
-
<a name="cl-1419"></a>#: ../admin/manage-sort.php:100 ../admin/settings.php:533
|
6255 |
-
<a name="cl-1420"></a>msgid "Descending"
|
6256 |
-
<a name="cl-1421"></a>msgstr "Nouseva"
|
6257 |
-
<a name="cl-1422"></a>
|
6258 |
-
<a name="cl-1423"></a>#: ../admin/manage.php:85 ../lib/rewrite.php:221
|
6259 |
-
<a name="cl-1424"></a>#: ../view/imagebrowser-caption.php:31 ../view/imagebrowser-exif.php:35
|
6260 |
-
<a name="cl-1425"></a>#: ../view/imagebrowser.php:31
|
6261 |
-
<a name="cl-1426"></a>msgid "Picture"
|
6262 |
-
<a name="cl-1427"></a>msgstr "Kuva"
|
6263 |
-
<a name="cl-1428"></a>
|
6264 |
-
<a name="cl-1429"></a>#: ../admin/manage.php:85
|
6265 |
-
<a name="cl-1430"></a>msgid "deleted successfully"
|
6266 |
-
<a name="cl-1431"></a>msgstr "poistettu onnistuneesti"
|
6267 |
-
<a name="cl-1432"></a>
|
6268 |
-
<a name="cl-1433"></a>#: ../admin/manage.php:100 ../admin/manage.php:109
|
6269 |
-
<a name="cl-1434"></a>msgid "Operation successful. Please clear your browser cache."
|
6270 |
-
<a name="cl-1435"></a>msgstr "Toiminto onnistui. Tyhjennä selaimen välimuisti."
|
6271 |
-
<a name="cl-1436"></a>
|
6272 |
-
<a name="cl-1437"></a>#: ../admin/manage.php:176
|
6273 |
-
<a name="cl-1438"></a>msgid "Gallery deleted successfully "
|
6274 |
-
<a name="cl-1439"></a>msgstr "Gallerian poisto onnistui "
|
6275 |
-
<a name="cl-1440"></a>
|
6276 |
-
<a name="cl-1441"></a>#: ../admin/manage.php:244 ../admin/manage.php:247
|
6277 |
-
<a name="cl-1442"></a>msgid "Rotate images"
|
6278 |
-
<a name="cl-1443"></a>msgstr "Pyöritä kuvia"
|
6279 |
-
<a name="cl-1444"></a>
|
6280 |
-
<a name="cl-1445"></a>#: ../admin/manage.php:270
|
6281 |
-
<a name="cl-1446"></a>msgid "Pictures deleted successfully "
|
6282 |
-
<a name="cl-1447"></a>msgstr "Kuvien poisto onnistui"
|
6283 |
-
<a name="cl-1448"></a>
|
6284 |
-
<a name="cl-1449"></a>#: ../admin/manage.php:366
|
6285 |
-
<a name="cl-1450"></a>msgid "Tags changed"
|
6286 |
-
<a name="cl-1451"></a>msgstr "Tägit muutettu"
|
6287 |
-
<a name="cl-1452"></a>
|
6288 |
-
<a name="cl-1453"></a>#: ../admin/manage.php:402
|
6289 |
-
<a name="cl-1454"></a>msgid "Update successful"
|
6290 |
-
<a name="cl-1455"></a>msgstr "Päivitys onnistui"
|
6291 |
-
<a name="cl-1456"></a>
|
6292 |
-
<a name="cl-1457"></a>#: ../admin/manage.php:445
|
6293 |
-
<a name="cl-1458"></a>msgid "New gallery page ID"
|
6294 |
-
<a name="cl-1459"></a>msgstr "Uusi galleriasivu ID"
|
6295 |
-
<a name="cl-1460"></a>
|
6296 |
-
<a name="cl-1461"></a>#: ../admin/manage.php:445
|
6297 |
-
<a name="cl-1462"></a>msgid "created"
|
6298 |
-
<a name="cl-1463"></a>msgstr "luotu "
|
6299 |
-
<a name="cl-1464"></a>
|
6300 |
-
<a name="cl-1465"></a>#: ../admin/manage.php:483
|
6301 |
-
<a name="cl-1466"></a>msgid "Published a new post"
|
6302 |
-
<a name="cl-1467"></a>msgstr "Julkaistu uusi artikkeli "
|
6303 |
-
<a name="cl-1468"></a>
|
6304 |
-
<a name="cl-1469"></a>#: ../admin/manage.php:598
|
6305 |
-
<a name="cl-1470"></a>msgid "1 item"
|
6306 |
-
<a name="cl-1471"></a>msgstr "1 elementti"
|
6307 |
-
<a name="cl-1472"></a>
|
6308 |
-
<a name="cl-1473"></a>#: ../admin/media-upload.php:11
|
6309 |
-
<a name="cl-1474"></a>msgid "NextCellent Gallery"
|
6310 |
-
<a name="cl-1475"></a>msgstr "NextCellent Gallery"
|
6311 |
-
<a name="cl-1476"></a>
|
6312 |
-
<a name="cl-1477"></a>#: ../admin/media-upload.php:166
|
6313 |
-
<a name="cl-1478"></a>msgid "No gallery"
|
6314 |
-
<a name="cl-1479"></a>msgstr "Ei galleriaa"
|
6315 |
-
<a name="cl-1480"></a>
|
6316 |
-
<a name="cl-1481"></a>#: ../admin/media-upload.php:178
|
6317 |
-
<a name="cl-1482"></a>msgid "Select &#187;"
|
6318 |
-
<a name="cl-1483"></a>msgstr "Valitse &#187;"
|
6319 |
-
<a name="cl-1484"></a>
|
6320 |
-
<a name="cl-1485"></a>#: ../admin/media-upload.php:209
|
6321 |
-
<a name="cl-1486"></a>msgid "Show"
|
6322 |
-
<a name="cl-1487"></a>msgstr "Näytä"
|
6323 |
-
<a name="cl-1488"></a>
|
6324 |
-
<a name="cl-1489"></a>#: ../admin/media-upload.php:210
|
6325 |
-
<a name="cl-1490"></a>msgid "Hide"
|
6326 |
-
<a name="cl-1491"></a>msgstr "Piilota"
|
6327 |
-
<a name="cl-1492"></a>
|
6328 |
-
<a name="cl-1493"></a>#: ../admin/media-upload.php:215
|
6329 |
-
<a name="cl-1494"></a>msgid "Image ID:"
|
6330 |
-
<a name="cl-1495"></a>msgstr "Kuva ID:"
|
6331 |
-
<a name="cl-1496"></a>
|
6332 |
-
<a name="cl-1497"></a>#: ../admin/media-upload.php:229 ../admin/publish.php:45
|
6333 |
-
<a name="cl-1498"></a>#: ../admin/tinymce/window.php:335
|
6334 |
-
<a name="cl-1499"></a>msgid "Alignment"
|
6335 |
-
<a name="cl-1500"></a>msgstr "Tasaus "
|
6336 |
-
<a name="cl-1501"></a>
|
6337 |
-
<a name="cl-1502"></a>#: ../admin/media-upload.php:232 ../admin/publish.php:47
|
6338 |
-
<a name="cl-1503"></a>#: ../admin/settings.php:557
|
6339 |
-
<a name="cl-1504"></a>msgid "None"
|
6340 |
-
<a name="cl-1505"></a>msgstr "ei mitään"
|
6341 |
-
<a name="cl-1506"></a>
|
6342 |
-
<a name="cl-1507"></a>#: ../admin/media-upload.php:234 ../admin/publish.php:49
|
6343 |
-
<a name="cl-1508"></a>#: ../admin/tinymce/window.php:339
|
6344 |
-
<a name="cl-1509"></a>msgid "Left"
|
6345 |
-
<a name="cl-1510"></a>msgstr "Vasen"
|
6346 |
-
<a name="cl-1511"></a>
|
6347 |
-
<a name="cl-1512"></a>#: ../admin/media-upload.php:236 ../admin/publish.php:51
|
6348 |
-
<a name="cl-1513"></a>#: ../admin/tinymce/window.php:340
|
6349 |
-
<a name="cl-1514"></a>msgid "Center"
|
6350 |
-
<a name="cl-1515"></a>msgstr "Keskitä"
|
6351 |
-
<a name="cl-1516"></a>
|
6352 |
-
<a name="cl-1517"></a>#: ../admin/media-upload.php:238 ../admin/publish.php:53
|
6353 |
-
<a name="cl-1518"></a>#: ../admin/tinymce/window.php:341
|
6354 |
-
<a name="cl-1519"></a>msgid "Right"
|
6355 |
-
<a name="cl-1520"></a>msgstr "Oikea"
|
6356 |
-
<a name="cl-1521"></a>
|
6357 |
-
<a name="cl-1522"></a>#: ../admin/media-upload.php:248
|
6358 |
-
<a name="cl-1523"></a>msgid "Full size"
|
6359 |
-
<a name="cl-1524"></a>msgstr "Täyskoko"
|
6360 |
-
<a name="cl-1525"></a>
|
6361 |
-
<a name="cl-1526"></a>#: ../admin/media-upload.php:250
|
6362 |
-
<a name="cl-1527"></a>msgid "Singlepic"
|
6363 |
-
<a name="cl-1528"></a>msgstr "Yksittäiskuva"
|
6364 |
-
<a name="cl-1529"></a>
|
6365 |
-
<a name="cl-1530"></a>#: ../admin/media-upload.php:263
|
6366 |
-
<a name="cl-1531"></a>msgid "Insert into Post"
|
6367 |
-
<a name="cl-1532"></a>msgstr "Lisää artikkeliin"
|
6368 |
-
<a name="cl-1533"></a>
|
6369 |
-
<a name="cl-1534"></a>#: ../admin/media-upload.php:274
|
6370 |
-
<a name="cl-1535"></a>msgid "Save all changes"
|
6371 |
-
<a name="cl-1536"></a>msgstr "Tallenna kaikki muutokset"
|
6372 |
-
<a name="cl-1537"></a>
|
6373 |
-
<a name="cl-1538"></a>#: ../admin/overview.php:15
|
6374 |
-
<a name="cl-1539"></a>msgid "NextCellent Gallery Overview"
|
6375 |
-
<a name="cl-1540"></a>msgstr "NextCellent Gallery ohjausnäkymä"
|
6376 |
-
<a name="cl-1541"></a>
|
6377 |
-
<a name="cl-1542"></a>#: ../admin/overview.php:86
|
6378 |
-
<a name="cl-1543"></a>msgid "Welcome to NextCellent Gallery !"
|
6379 |
-
<a name="cl-1544"></a>msgstr "Tervetuloa NextCellent Galleryyn!"
|
6380 |
-
<a name="cl-1545"></a>
|
6381 |
-
<a name="cl-1546"></a>#: ../admin/overview.php:87
|
6382 |
-
<a name="cl-1547"></a>msgid "Help me help YOU!"
|
6383 |
-
<a name="cl-1548"></a>msgstr "Auta minua auttamaan SINUA!"
|
6384 |
-
<a name="cl-1549"></a>
|
6385 |
-
<a name="cl-1550"></a>#: ../admin/overview.php:89
|
6386 |
-
<a name="cl-1551"></a>msgid "Translation"
|
6387 |
-
<a name="cl-1552"></a>msgstr "Käännös"
|
6388 |
-
<a name="cl-1553"></a>
|
6389 |
-
<a name="cl-1554"></a>#: ../admin/overview.php:90
|
6390 |
-
<a name="cl-1555"></a>msgid "Latest News"
|
6391 |
-
<a name="cl-1556"></a>msgstr "Tuoreimmat uutiset"
|
6392 |
-
<a name="cl-1557"></a>
|
6393 |
-
<a name="cl-1558"></a>#: ../admin/overview.php:92
|
6394 |
-
<a name="cl-1559"></a>msgid "Plugin Check"
|
6395 |
-
<a name="cl-1560"></a>msgstr "Lisäosan tarkistus"
|
6396 |
-
<a name="cl-1561"></a>
|
6397 |
-
<a name="cl-1562"></a>#: ../admin/overview.php:93
|
6398 |
-
<a name="cl-1563"></a>msgid "Server Settings"
|
6399 |
-
<a name="cl-1564"></a>msgstr "Palvelinasetukset"
|
6400 |
-
<a name="cl-1565"></a>
|
6401 |
-
<a name="cl-1566"></a>#: ../admin/overview.php:94
|
6402 |
-
<a name="cl-1567"></a>msgid "Related plugins"
|
6403 |
-
<a name="cl-1568"></a>msgstr "Liittyvät lisäosat"
|
6404 |
-
<a name="cl-1569"></a>
|
6405 |
-
<a name="cl-1570"></a>#: ../admin/overview.php:229
|
6406 |
-
<a name="cl-1571"></a>msgid "Running..."
|
6407 |
-
<a name="cl-1572"></a>msgstr "Toimii..."
|
6408 |
-
<a name="cl-1573"></a>
|
6409 |
-
<a name="cl-1574"></a>#: ../admin/overview.php:276
|
6410 |
-
<a name="cl-1575"></a>msgid "Check plugin/theme conflict"
|
6411 |
-
<a name="cl-1576"></a>msgstr "Tarkista lisäosa/teema -konfliktit"
|
6412 |
-
<a name="cl-1577"></a>
|
6413 |
-
<a name="cl-1578"></a>#: ../admin/overview.php:277 ../admin/overview.php:283
|
6414 |
-
<a name="cl-1579"></a>#: ../admin/overview.php:289
|
6415 |
-
<a name="cl-1580"></a>msgid "Not tested"
|
6416 |
-
<a name="cl-1581"></a>msgstr "Ei testattu"
|
6417 |
-
<a name="cl-1582"></a>
|
6418 |
-
<a name="cl-1583"></a>#: ../admin/overview.php:278
|
6419 |
-
<a name="cl-1584"></a>msgid "No conflict could be detected"
|
6420 |
-
<a name="cl-1585"></a>msgstr "Mitään konfliktia ei löytynyt"
|
6421 |
-
<a name="cl-1586"></a>
|
6422 |
-
<a name="cl-1587"></a>#: ../admin/overview.php:279
|
6423 |
-
<a name="cl-1588"></a>msgid "Test failed, disable other plugins & switch to default theme"
|
6424 |
-
<a name="cl-1589"></a>msgstr ""
|
6425 |
-
<a name="cl-1590"></a>"Testi epäonnistui, ota muut lisäosat pois käytöstä ja käytä oletusteemaa "
|
6426 |
-
<a name="cl-1591"></a>"(Default Theme)"
|
6427 |
-
<a name="cl-1592"></a>
|
6428 |
-
<a name="cl-1593"></a>#: ../admin/overview.php:282
|
6429 |
-
<a name="cl-1594"></a>msgid "Test image function"
|
6430 |
-
<a name="cl-1595"></a>msgstr "Testaa kuvatoiminto"
|
6431 |
-
<a name="cl-1596"></a>
|
6432 |
-
<a name="cl-1597"></a>#: ../admin/overview.php:284
|
6433 |
-
<a name="cl-1598"></a>msgid "The plugin could create images"
|
6434 |
-
<a name="cl-1599"></a>msgstr "Lisäosa onnistui luomaan kuvia"
|
6435 |
-
<a name="cl-1600"></a>
|
6436 |
-
<a name="cl-1601"></a>#: ../admin/overview.php:285
|
6437 |
-
<a name="cl-1602"></a>msgid "Couldn't create image, check your memory limit"
|
6438 |
-
<a name="cl-1603"></a>msgstr "Kuvien luonti ei onnnsitu, tarkista muistirajasi (palvelimella)"
|
6439 |
-
<a name="cl-1604"></a>
|
6440 |
-
<a name="cl-1605"></a>#: ../admin/overview.php:288
|
6441 |
-
<a name="cl-1606"></a>msgid "Check theme compatibility"
|
6442 |
-
<a name="cl-1607"></a>msgstr "Tarkista teeman yhteensopivuus"
|
6443 |
-
<a name="cl-1608"></a>
|
6444 |
-
<a name="cl-1609"></a>#: ../admin/overview.php:290
|
6445 |
-
<a name="cl-1610"></a>msgid "Your theme should work fine with NextCellent Gallery"
|
6446 |
-
<a name="cl-1611"></a>msgstr "Teemasi pitäisi toimia kunnolla NextCellent Galleryn kanssa"
|
6447 |
-
<a name="cl-1612"></a>
|
6448 |
-
<a name="cl-1613"></a>#: ../admin/overview.php:291
|
6449 |
-
<a name="cl-1614"></a>msgid "wp_head()/wp_footer() is missing, contact the theme author"
|
6450 |
-
<a name="cl-1615"></a>msgstr "wp_head()/wp_footer() ei löytynyt, ota yhteys teeman tekijään"
|
6451 |
-
<a name="cl-1616"></a>
|
6452 |
-
<a name="cl-1617"></a>#: ../admin/overview.php:295
|
6453 |
-
<a name="cl-1618"></a>msgid "Check plugin"
|
6454 |
-
<a name="cl-1619"></a>msgstr "Tarkista lisäosa"
|
6455 |
-
<a name="cl-1620"></a>
|
6456 |
-
<a name="cl-1621"></a>#: ../admin/overview.php:316
|
6457 |
-
<a name="cl-1622"></a>msgid "Graphic Library"
|
6458 |
-
<a name="cl-1623"></a>msgstr "Grafiikkakirjasto"
|
6459 |
-
<a name="cl-1624"></a>
|
6460 |
-
<a name="cl-1625"></a>#: ../admin/overview.php:333 ../admin/overview.php:520
|
6461 |
-
<a name="cl-1626"></a>#: ../admin/overview.php:710
|
6462 |
-
<a name="cl-1627"></a>msgid "Loading&#8230;"
|
6463 |
-
<a name="cl-1628"></a>msgstr "Ladataan&#8230;"
|
6464 |
-
<a name="cl-1629"></a>
|
6465 |
-
<a name="cl-1630"></a>#: ../admin/overview.php:333 ../admin/overview.php:520
|
6466 |
-
<a name="cl-1631"></a>#: ../admin/overview.php:710
|
6467 |
-
<a name="cl-1632"></a>msgid "This widget requires JavaScript."
|
6468 |
-
<a name="cl-1633"></a>msgstr "Tämä vimpain vaatii JavaScriptin."
|
6469 |
-
<a name="cl-1634"></a>
|
6470 |
-
<a name="cl-1635"></a>#: ../admin/overview.php:345
|
6471 |
-
<a name="cl-1636"></a>#, php-format
|
6472 |
-
<a name="cl-1637"></a>msgid ""
|
6473 |
-
<a name="cl-1638"></a>"Newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> to "
|
6474 |
-
<a name="cl-1639"></a>"check for updates."
|
6475 |
-
<a name="cl-1640"></a>msgstr ""
|
6476 |
-
<a name="cl-1641"></a>"Uutissyötettä ei voitu ladata. Tarkista <a href=\"%s\">Etusivu</a>lta "
|
6477 |
-
<a name="cl-1642"></a>"päivitykset."
|
6478 |
-
<a name="cl-1643"></a>
|
6479 |
-
<a name="cl-1644"></a>#: ../admin/overview.php:357
|
6480 |
-
<a name="cl-1645"></a>msgid "Untitled"
|
6481 |
-
<a name="cl-1646"></a>msgstr "Nimetön"
|
6482 |
-
<a name="cl-1647"></a>
|
6483 |
-
<a name="cl-1648"></a>#: ../admin/overview.php:407
|
6484 |
-
<a name="cl-1649"></a>msgid "At a Glance"
|
6485 |
-
<a name="cl-1650"></a>msgstr "Yleisnäkymä"
|
6486 |
-
<a name="cl-1651"></a>
|
6487 |
-
<a name="cl-1652"></a>#: ../admin/overview.php:412
|
6488 |
-
<a name="cl-1653"></a>msgid "Image"
|
6489 |
-
<a name="cl-1654"></a>msgstr "Kuva"
|
6490 |
-
<a name="cl-1655"></a>
|
6491 |
-
<a name="cl-1656"></a>#: ../admin/overview.php:424 ../admin/tinymce/window.php:121
|
6492 |
-
<a name="cl-1657"></a>#: ../admin/tinymce/window.php:236 ../lib/rewrite.php:224
|
6493 |
-
<a name="cl-1658"></a>msgid "Album"
|
6494 |
-
<a name="cl-1659"></a>msgstr "Albumi"
|
6495 |
-
<a name="cl-1660"></a>
|
6496 |
-
<a name="cl-1661"></a>#: ../admin/overview.php:433
|
6497 |
-
<a name="cl-1662"></a>msgid "Upload pictures"
|
6498 |
-
<a name="cl-1663"></a>msgstr "Lataa kuvia"
|
6499 |
-
<a name="cl-1664"></a>
|
6500 |
-
<a name="cl-1665"></a>#: ../admin/overview.php:434
|
6501 |
-
<a name="cl-1666"></a>msgid "Here you can control your images, galleries and albums."
|
6502 |
-
<a name="cl-1667"></a>msgstr "Täällä voi hallita kuviasi, gallerioitasi ja albumeitasi."
|
6503 |
-
<a name="cl-1668"></a>
|
6504 |
-
<a name="cl-1669"></a>#: ../admin/overview.php:464
|
6505 |
-
<a name="cl-1670"></a>msgid "Storage Space"
|
6506 |
-
<a name="cl-1671"></a>msgstr "Tallennustila"
|
6507 |
-
<a name="cl-1672"></a>
|
6508 |
-
<a name="cl-1673"></a>#: ../admin/overview.php:468
|
6509 |
-
<a name="cl-1674"></a>#, php-format
|
6510 |
-
<a name="cl-1675"></a>msgid ""
|
6511 |
-
<a name="cl-1676"></a>"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
|
6512 |
-
<a name="cl-1677"></a>msgstr ""
|
6513 |
-
<a name="cl-1678"></a>"<a href=\"%1$s\" title=\"Hallitse latauksia\" class=\"musublink\">%2$sMt</a>"
|
6514 |
-
<a name="cl-1679"></a>
|
6515 |
-
<a name="cl-1680"></a>#: ../admin/overview.php:469
|
6516 |
-
<a name="cl-1681"></a>msgid "Space Allowed"
|
6517 |
-
<a name="cl-1682"></a>msgstr "Sallittu tila"
|
6518 |
-
<a name="cl-1683"></a>
|
6519 |
-
<a name="cl-1684"></a>#: ../admin/overview.php:476
|
6520 |
-
<a name="cl-1685"></a>#, php-format
|
6521 |
-
<a name="cl-1686"></a>msgid ""
|
6522 |
-
<a name="cl-1687"></a>"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s"
|
6523 |
-
<a name="cl-1688"></a>"%%)</a>"
|
6524 |
-
<a name="cl-1689"></a>msgstr ""
|
6525 |
-
<a name="cl-1690"></a>"<a href=\"%1$s\" title=\"Hallitse latauksia\" class=\"musublink\">%2$sMt "
|
6526 |
-
<a name="cl-1691"></a>"(%3$s%%)</a>"
|
6527 |
-
<a name="cl-1692"></a>
|
6528 |
-
<a name="cl-1693"></a>#: ../admin/overview.php:477
|
6529 |
-
<a name="cl-1694"></a>msgid "Space Used"
|
6530 |
-
<a name="cl-1695"></a>msgstr "Käytetty tila"
|
6531 |
-
<a name="cl-1696"></a>
|
6532 |
-
<a name="cl-1697"></a>#: ../admin/overview.php:506
|
6533 |
-
<a name="cl-1698"></a>msgid "Translation file successful updated. Please reload page."
|
6534 |
-
<a name="cl-1699"></a>msgstr "Käännöstiedosto päivitetty onnistuneesti. Lataa sivu uudelleen."
|
6535 |
-
<a name="cl-1700"></a>
|
6536 |
-
<a name="cl-1701"></a>#: ../admin/overview.php:508
|
6537 |
-
<a name="cl-1702"></a>msgid "Reload page"
|
6538 |
-
<a name="cl-1703"></a>msgstr "Lataa sivu uudelleen"
|
6539 |
-
<a name="cl-1704"></a>
|
6540 |
-
<a name="cl-1705"></a>#: ../admin/overview.php:513
|
6541 |
-
<a name="cl-1706"></a>msgid "Translation file couldn't be updated"
|
6542 |
-
<a name="cl-1707"></a>msgstr "Käännöstiedoston päivitys ei onnistunut"
|
6543 |
-
<a name="cl-1708"></a>
|
6544 |
-
<a name="cl-1709"></a>#: ../admin/overview.php:550
|
6545 |
-
<a name="cl-1710"></a>msgid "Download"
|
6546 |
-
<a name="cl-1711"></a>msgstr "Lataa"
|
6547 |
-
<a name="cl-1712"></a>
|
6548 |
-
<a name="cl-1713"></a>#: ../admin/overview.php:579
|
6549 |
-
<a name="cl-1714"></a>msgid "No GD support"
|
6550 |
-
<a name="cl-1715"></a>msgstr "Ei GD-tukea"
|
6551 |
-
<a name="cl-1716"></a>
|
6552 |
-
<a name="cl-1717"></a>#: ../admin/overview.php:591 ../admin/overview.php:637
|
6553 |
-
<a name="cl-1718"></a>#: ../admin/overview.php:640 ../admin/overview.php:643
|
6554 |
-
<a name="cl-1719"></a>msgid "Yes"
|
6555 |
-
<a name="cl-1720"></a>msgstr "Kyllä"
|
6556 |
-
<a name="cl-1721"></a>
|
6557 |
-
<a name="cl-1722"></a>#: ../admin/overview.php:593 ../admin/overview.php:638
|
6558 |
-
<a name="cl-1723"></a>#: ../admin/overview.php:641 ../admin/overview.php:644
|
6559 |
-
<a name="cl-1724"></a>msgid "No"
|
6560 |
-
<a name="cl-1725"></a>msgstr "Ei"
|
6561 |
-
<a name="cl-1726"></a>
|
6562 |
-
<a name="cl-1727"></a>#: ../admin/overview.php:611
|
6563 |
-
<a name="cl-1728"></a>msgid "Not set"
|
6564 |
-
<a name="cl-1729"></a>msgstr "Ei asetettu"
|
6565 |
-
<a name="cl-1730"></a>
|
6566 |
-
<a name="cl-1731"></a>#: ../admin/overview.php:613 ../admin/overview.php:616
|
6567 |
-
<a name="cl-1732"></a>msgid "On"
|
6568 |
-
<a name="cl-1733"></a>msgstr "Päällä "
|
6569 |
-
<a name="cl-1734"></a>
|
6570 |
-
<a name="cl-1735"></a>#: ../admin/overview.php:614 ../admin/overview.php:617
|
6571 |
-
<a name="cl-1736"></a>msgid "Off"
|
6572 |
-
<a name="cl-1737"></a>msgstr "Pois päältä"
|
6573 |
-
<a name="cl-1738"></a>
|
6574 |
-
<a name="cl-1739"></a>#: ../admin/overview.php:620 ../admin/overview.php:623
|
6575 |
-
<a name="cl-1740"></a>#: ../admin/overview.php:626 ../admin/overview.php:629
|
6576 |
-
<a name="cl-1741"></a>#: ../admin/overview.php:632 ../admin/overview.php:635
|
6577 |
-
<a name="cl-1742"></a>msgid "N/A"
|
6578 |
-
<a name="cl-1743"></a>msgstr "N/A"
|
6579 |
-
<a name="cl-1744"></a>
|
6580 |
-
<a name="cl-1745"></a>#: ../admin/overview.php:634
|
6581 |
-
<a name="cl-1746"></a>msgid " MByte"
|
6582 |
-
<a name="cl-1747"></a>msgstr " Mtavu"
|
6583 |
-
<a name="cl-1748"></a>
|
6584 |
-
<a name="cl-1749"></a>#: ../admin/overview.php:647
|
6585 |
-
<a name="cl-1750"></a>msgid "Operating System"
|
6586 |
-
<a name="cl-1751"></a>msgstr "Käyttöjärjestelmä"
|
6587 |
-
<a name="cl-1752"></a>
|
6588 |
-
<a name="cl-1753"></a>#: ../admin/overview.php:648
|
6589 |
-
<a name="cl-1754"></a>msgid "Server"
|
6590 |
-
<a name="cl-1755"></a>msgstr "Palvelin"
|
6591 |
-
<a name="cl-1756"></a>
|
6592 |
-
<a name="cl-1757"></a>#: ../admin/overview.php:649
|
6593 |
-
<a name="cl-1758"></a>msgid "Memory usage"
|
6594 |
-
<a name="cl-1759"></a>msgstr "Muistinkäyttö"
|
6595 |
-
<a name="cl-1760"></a>
|
6596 |
-
<a name="cl-1761"></a>#: ../admin/overview.php:650
|
6597 |
-
<a name="cl-1762"></a>msgid "MYSQL Version"
|
6598 |
-
<a name="cl-1763"></a>msgstr "MySQL-versio"
|
6599 |
-
<a name="cl-1764"></a>
|
6600 |
-
<a name="cl-1765"></a>#: ../admin/overview.php:651
|
6601 |
-
<a name="cl-1766"></a>msgid "SQL Mode"
|
6602 |
-
<a name="cl-1767"></a>msgstr "SQL-tila"
|
6603 |
-
<a name="cl-1768"></a>
|
6604 |
-
<a name="cl-1769"></a>#: ../admin/overview.php:652
|
6605 |
-
<a name="cl-1770"></a>msgid "PHP Version"
|
6606 |
-
<a name="cl-1771"></a>msgstr "PHP-versio"
|
6607 |
-
<a name="cl-1772"></a>
|
6608 |
-
<a name="cl-1773"></a>#: ../admin/overview.php:653
|
6609 |
-
<a name="cl-1774"></a>msgid "PHP Safe Mode"
|
6610 |
-
<a name="cl-1775"></a>msgstr "PHP Safe Mode"
|
6611 |
-
<a name="cl-1776"></a>
|
6612 |
-
<a name="cl-1777"></a>#: ../admin/overview.php:654
|
6613 |
-
<a name="cl-1778"></a>msgid "PHP Allow URL fopen"
|
6614 |
-
<a name="cl-1779"></a>msgstr "PHP sallit URL fopen"
|
6615 |
-
<a name="cl-1780"></a>
|
6616 |
-
<a name="cl-1781"></a>#: ../admin/overview.php:655
|
6617 |
-
<a name="cl-1782"></a>msgid "PHP Memory Limit"
|
6618 |
-
<a name="cl-1783"></a>msgstr "PHP muistiraja"
|
6619 |
-
<a name="cl-1784"></a>
|
6620 |
-
<a name="cl-1785"></a>#: ../admin/overview.php:656
|
6621 |
-
<a name="cl-1786"></a>msgid "PHP Max Upload Size"
|
6622 |
-
<a name="cl-1787"></a>msgstr "PHP Max latauskoko"
|
6623 |
-
<a name="cl-1788"></a>
|
6624 |
-
<a name="cl-1789"></a>#: ../admin/overview.php:657
|
6625 |
-
<a name="cl-1790"></a>msgid "PHP Max Post Size"
|
6626 |
-
<a name="cl-1791"></a>msgstr "PHP Max artikkelikoko"
|
6627 |
-
<a name="cl-1792"></a>
|
6628 |
-
<a name="cl-1793"></a>#: ../admin/overview.php:658
|
6629 |
-
<a name="cl-1794"></a>msgid "PCRE Backtracking Limit"
|
6630 |
-
<a name="cl-1795"></a>msgstr "PCRE Backtracking -raja"
|
6631 |
-
<a name="cl-1796"></a>
|
6632 |
-
<a name="cl-1797"></a>#: ../admin/overview.php:659
|
6633 |
-
<a name="cl-1798"></a>msgid "PHP Max Script Execute Time"
|
6634 |
-
<a name="cl-1799"></a>msgstr "PHP Max skritpin suoritusaika"
|
6635 |
-
<a name="cl-1800"></a>
|
6636 |
-
<a name="cl-1801"></a>#: ../admin/overview.php:660
|
6637 |
-
<a name="cl-1802"></a>msgid "PHP Exif support"
|
6638 |
-
<a name="cl-1803"></a>msgstr "PHP Exif -tuki"
|
6639 |
-
<a name="cl-1804"></a>
|
6640 |
-
<a name="cl-1805"></a>#: ../admin/overview.php:661
|
6641 |
-
<a name="cl-1806"></a>msgid "PHP IPTC support"
|
6642 |
-
<a name="cl-1807"></a>msgstr "PHP IPTC -tuki"
|
6643 |
-
<a name="cl-1808"></a>
|
6644 |
-
<a name="cl-1809"></a>#: ../admin/overview.php:662
|
6645 |
-
<a name="cl-1810"></a>msgid "PHP XML support"
|
6646 |
-
<a name="cl-1811"></a>msgstr "PHP XML -tuki"
|
6647 |
-
<a name="cl-1812"></a>
|
6648 |
-
<a name="cl-1813"></a>#: ../admin/overview.php:674
|
6649 |
-
<a name="cl-1814"></a>msgid ""
|
6650 |
-
<a name="cl-1815"></a>"NextCellent Gallery contains some functions which are only available under "
|
6651 |
-
<a name="cl-1816"></a>"PHP 5.2. You are using the old PHP 4 version, upgrade now! It's no longer "
|
6652 |
-
<a name="cl-1817"></a>"supported by the PHP group. Many shared hosting providers offer both PHP 4 "
|
6653 |
-
<a name="cl-1818"></a>"and PHP 5, running simultaneously. Ask your provider if they can do this."
|
6654 |
-
<a name="cl-1819"></a>msgstr ""
|
6655 |
-
<a name="cl-1820"></a>"NextCellent Gallery sisältää versiosta PHP 5.2 alkaen saatavia toimintoja. "
|
6656 |
-
<a name="cl-1821"></a>"Käytät vanhaa PHP 4 -versiota. PHP group ei enää tue sitä. Monet "
|
6657 |
-
<a name="cl-1822"></a>"palvelutoimittajat tarjoavat sekä PHP 4 että PHP 5 samanaikaisesti. Kysy "
|
6658 |
-
<a name="cl-1823"></a>"apua palvelutoimittajaltasi."
|
6659 |
-
<a name="cl-1824"></a>
|
6660 |
-
<a name="cl-1825"></a>#: ../admin/overview.php:742
|
6661 |
-
<a name="cl-1826"></a>msgid "Pay attention"
|
6662 |
-
<a name="cl-1827"></a>msgstr "Ole tarkkana"
|
6663 |
-
<a name="cl-1828"></a>
|
6664 |
-
<a name="cl-1829"></a>#: ../admin/overview.php:742
|
6665 |
-
<a name="cl-1830"></a>#, php-format
|
6666 |
-
<a name="cl-1831"></a>msgid ""
|
6667 |
-
<a name="cl-1832"></a>"third parties plugins that are compatible with NGG may not be "
|
6668 |
-
<a name="cl-1833"></a>"100% compatible with NextCellent Gallery!"
|
6669 |
-
<a name="cl-1834"></a>msgstr ""
|
6670 |
-
<a name="cl-1835"></a>
|
6671 |
-
<a name="cl-1836"></a>#: ../admin/overview.php:770
|
6672 |
-
<a name="cl-1837"></a>msgid "Install"
|
6673 |
-
<a name="cl-1838"></a>msgstr "Asenna"
|
6674 |
-
<a name="cl-1839"></a>
|
6675 |
-
<a name="cl-1840"></a>#: ../admin/overview.php:784
|
6676 |
-
<a name="cl-1841"></a>#, php-format
|
6677 |
-
<a name="cl-1842"></a>msgid ""
|
6678 |
-
<a name="cl-1843"></a>"This plugin is a branch from NGG stable version 1.9.13.<br> Developed & "
|
6679 |
-
<a name="cl-1844"></a>"maintained by <a href=\"%s\" target=\"_blank\">WPGetReady.com</a>"
|
6680 |
-
<a name="cl-1845"></a>msgstr ""
|
6681 |
-
<a name="cl-1846"></a>"Tämä lisäosa on haara NGG stabiilista NGG 1.9.13-versiosta.<br> Kehitys & "
|
6682 |
-
<a name="cl-1847"></a>"ylläpito: <a href=\"%s\" target=\"_blank\">WPGetReady.com</a>"
|
6683 |
-
<a name="cl-1848"></a>
|
6684 |
-
<a name="cl-1849"></a>#: ../admin/overview.php:790
|
6685 |
-
<a name="cl-1850"></a>#, fuzzy
|
6686 |
-
<a name="cl-1851"></a>msgid "You can contribute by giving this plugin a good rating! Thanks a lot!"
|
6687 |
-
<a name="cl-1852"></a>msgstr "Tue antamalla tälle lisäosalle hyvä arvio! Kiitoksia!!!"
|
6688 |
-
<a name="cl-1853"></a>
|
6689 |
-
<a name="cl-1854"></a>#: ../admin/overview.php:795
|
6690 |
-
<a name="cl-1855"></a>msgid "Visit the plugin homepage"
|
6691 |
-
<a name="cl-1856"></a>msgstr "Käy lisäosan kotisivulla"
|
6692 |
-
<a name="cl-1857"></a>
|
6693 |
-
<a name="cl-1858"></a>#: ../admin/publish.php:35
|
6694 |
-
<a name="cl-1859"></a>msgid "Post title"
|
6695 |
-
<a name="cl-1860"></a>msgstr "Artikkelin otsikko"
|
6696 |
-
<a name="cl-1861"></a>
|
6697 |
-
<a name="cl-1862"></a>#: ../admin/publish.php:37
|
6698 |
-
<a name="cl-1863"></a>msgid "Enter the post title "
|
6699 |
-
<a name="cl-1864"></a>msgstr "Anna artikkelin otsikko"
|
6700 |
-
<a name="cl-1865"></a>
|
6701 |
-
<a name="cl-1866"></a>#: ../admin/publish.php:40
|
6702 |
-
<a name="cl-1867"></a>msgid "Width x height (in pixel)"
|
6703 |
-
<a name="cl-1868"></a>msgstr "Leveys x korkeus (pikseleinä)"
|
6704 |
-
<a name="cl-1869"></a>
|
6705 |
-
<a name="cl-1870"></a>#: ../admin/publish.php:42
|
6706 |
-
<a name="cl-1871"></a>msgid "Size of the image"
|
6707 |
-
<a name="cl-1872"></a>msgstr "Kuvan koko"
|
6708 |
-
<a name="cl-1873"></a>
|
6709 |
-
<a name="cl-1874"></a>#: ../admin/publish.php:60
|
6710 |
-
<a name="cl-1875"></a>msgid "Draft"
|
6711 |
-
<a name="cl-1876"></a>msgstr "Luonnos"
|
6712 |
-
<a name="cl-1877"></a>
|
6713 |
-
<a name="cl-1878"></a>#: ../admin/roles.php:22
|
6714 |
-
<a name="cl-1879"></a>msgid "Updated capabilities"
|
6715 |
-
<a name="cl-1880"></a>msgstr "Päivitetyt toiminnot"
|
6716 |
-
<a name="cl-1881"></a>
|
6717 |
-
<a name="cl-1882"></a>#: ../admin/roles.php:28
|
6718 |
-
<a name="cl-1883"></a>msgid "Roles / capabilities"
|
6719 |
-
<a name="cl-1884"></a>msgstr "Roolit / toiminnot"
|
6720 |
-
<a name="cl-1885"></a>
|
6721 |
-
<a name="cl-1886"></a>#: ../admin/roles.php:29
|
6722 |
-
<a name="cl-1887"></a>msgid ""
|
6723 |
-
<a name="cl-1888"></a>"Select the lowest role which should be able to access the following "
|
6724 |
-
<a name="cl-1889"></a>"capabilities. NextCellent Gallery supports the standard roles from WordPress."
|
6725 |
-
<a name="cl-1890"></a>msgstr ""
|
6726 |
-
<a name="cl-1891"></a>"Valitse alin rooli, joka pääsee seuraaviin toimintoihin. NextCellent Gallery "
|
6727 |
-
<a name="cl-1892"></a>"tukee vain WordPressin standardirooleja."
|
6728 |
-
<a name="cl-1893"></a>
|
6729 |
-
<a name="cl-1894"></a>#: ../admin/roles.php:30
|
6730 |
-
<a name="cl-1895"></a>msgid "For a more flexible user management you can use the"
|
6731 |
-
<a name="cl-1896"></a>msgstr "Joustavampaan käyttäjähallintaan voit käyttää "
|
6732 |
-
<a name="cl-1897"></a>
|
6733 |
-
<a name="cl-1898"></a>#: ../admin/roles.php:35
|
6734 |
-
<a name="cl-1899"></a>#, fuzzy
|
6735 |
-
<a name="cl-1900"></a>msgid "NextCellent Gallery overview"
|
6736 |
-
<a name="cl-1901"></a>msgstr "NextCellent Gallery ohjausnäkymä"
|
6737 |
-
<a name="cl-1902"></a>
|
6738 |
-
<a name="cl-1903"></a>#: ../admin/roles.php:39
|
6739 |
-
<a name="cl-1904"></a>#, fuzzy
|
6740 |
-
<a name="cl-1905"></a>msgid "Use TinyMCE Button / Add Media"
|
6741 |
-
<a name="cl-1906"></a>msgstr "TinyMCE Button / Upload Tab"
|
6742 |
-
<a name="cl-1907"></a>
|
6743 |
-
<a name="cl-1908"></a>#: ../admin/roles.php:43
|
6744 |
-
<a name="cl-1909"></a>msgid "Add gallery / Upload images"
|
6745 |
-
<a name="cl-1910"></a>msgstr "Lisää galleria / lataa kuvia"
|
6746 |
-
<a name="cl-1911"></a>
|
6747 |
-
<a name="cl-1912"></a>#: ../admin/roles.php:47
|
6748 |
-
<a name="cl-1913"></a>msgid "Manage gallery"
|
6749 |
-
<a name="cl-1914"></a>msgstr "Gallerian hallinta "
|
6750 |
-
<a name="cl-1915"></a>
|
6751 |
-
<a name="cl-1916"></a>#: ../admin/roles.php:51
|
6752 |
-
<a name="cl-1917"></a>msgid "Manage others gallery"
|
6753 |
-
<a name="cl-1918"></a>msgstr "Hallitse toisten galleriaa "
|
6754 |
-
<a name="cl-1919"></a>
|
6755 |
-
<a name="cl-1920"></a>#: ../admin/roles.php:55
|
6756 |
-
<a name="cl-1921"></a>msgid "Manage tags"
|
6757 |
-
<a name="cl-1922"></a>msgstr "Hallitse tägejä "
|
6758 |
-
<a name="cl-1923"></a>
|
6759 |
-
<a name="cl-1924"></a>#: ../admin/roles.php:63
|
6760 |
-
<a name="cl-1925"></a>msgid "Change style"
|
6761 |
-
<a name="cl-1926"></a>msgstr "Muuta tyyliä "
|
6762 |
-
<a name="cl-1927"></a>
|
6763 |
-
<a name="cl-1928"></a>#: ../admin/roles.php:67
|
6764 |
-
<a name="cl-1929"></a>msgid "Change options"
|
6765 |
-
<a name="cl-1930"></a>msgstr "Muuta asetuksia "
|
6766 |
-
<a name="cl-1931"></a>
|
6767 |
-
<a name="cl-1932"></a>#: ../admin/roles.php:71
|
6768 |
-
<a name="cl-1933"></a>msgid "Update capabilities"
|
6769 |
-
<a name="cl-1934"></a>msgstr "Päivitä toimintoja "
|
6770 |
-
<a name="cl-1935"></a>
|
6771 |
-
<a name="cl-1936"></a>#: ../admin/rotate.php:55
|
6772 |
-
<a name="cl-1937"></a>msgid "Image rotated"
|
6773 |
-
<a name="cl-1938"></a>msgstr "Kuva pyöritetty "
|
6774 |
-
<a name="cl-1939"></a>
|
6775 |
-
<a name="cl-1940"></a>#: ../admin/rotate.php:56
|
6776 |
-
<a name="cl-1941"></a>msgid "Error rotating thumbnail"
|
6777 |
-
<a name="cl-1942"></a>msgstr "Esikatselukuvan pyöritys epäonnistui "
|
6778 |
-
<a name="cl-1943"></a>
|
6779 |
-
<a name="cl-1944"></a>#: ../admin/rotate.php:74
|
6780 |
-
<a name="cl-1945"></a>#, fuzzy
|
6781 |
-
<a name="cl-1946"></a>msgid "Select how you would like to rotate the image on the left."
|
6782 |
-
<a name="cl-1947"></a>msgstr "Valitse vasemmalla olevasta kuvasta esikatselukuvan alue."
|
6783 |
-
<a name="cl-1948"></a>
|
6784 |
-
<a name="cl-1949"></a>#: ../admin/rotate.php:81
|
6785 |
-
<a name="cl-1950"></a>msgid "90&deg; clockwise"
|
6786 |
-
<a name="cl-1951"></a>msgstr "90&deg; myötäpäivään "
|
6787 |
-
<a name="cl-1952"></a>
|
6788 |
-
<a name="cl-1953"></a>#: ../admin/rotate.php:82
|
6789 |
-
<a name="cl-1954"></a>msgid "90&deg; anticlockwise"
|
6790 |
-
<a name="cl-1955"></a>msgstr "90&deg; vastapäivään "
|
6791 |
-
<a name="cl-1956"></a>
|
6792 |
-
<a name="cl-1957"></a>#: ../admin/rotate.php:83
|
6793 |
-
<a name="cl-1958"></a>msgid "Flip vertically"
|
6794 |
-
<a name="cl-1959"></a>msgstr "Peilikuva pystysuunnassa"
|
6795 |
-
<a name="cl-1960"></a>
|
6796 |
-
<a name="cl-1961"></a>#: ../admin/rotate.php:84
|
6797 |
-
<a name="cl-1962"></a>msgid "Flip horizontally"
|
6798 |
-
<a name="cl-1963"></a>msgstr "Peilikuva vaakasuunnassa "
|
6799 |
-
<a name="cl-1964"></a>
|
6800 |
-
<a name="cl-1965"></a>#: ../admin/settings.php:22
|
6801 |
-
<a name="cl-1966"></a>#, php-format
|
6802 |
-
<a name="cl-1967"></a>msgid "Rebuild image structure : %s / %s images"
|
6803 |
-
<a name="cl-1968"></a>msgstr "Rakenna kuvarakenne uudestaan : %s / %s kuvaa"
|
6804 |
-
<a name="cl-1969"></a>
|
6805 |
-
<a name="cl-1970"></a>#: ../admin/settings.php:23
|
6806 |
-
<a name="cl-1971"></a>#, php-format
|
6807 |
-
<a name="cl-1972"></a>msgid "Rebuild gallery structure : %s / %s galleries"
|
6808 |
-
<a name="cl-1973"></a>msgstr "Rakenna galleriarakenne uudestaan : %s / %s galleriaa"
|
6809 |
-
<a name="cl-1974"></a>
|
6810 |
-
<a name="cl-1975"></a>#: ../admin/settings.php:24
|
6811 |
-
<a name="cl-1976"></a>#, php-format
|
6812 |
-
<a name="cl-1977"></a>msgid "Rebuild album structure : %s / %s albums"
|
6813 |
-
<a name="cl-1978"></a>msgstr "Rakenna albumirakenne uudestaan : %s / %s albumia"
|
6814 |
-
<a name="cl-1979"></a>
|
6815 |
-
<a name="cl-1980"></a>#: ../admin/settings.php:78
|
6816 |
-
<a name="cl-1981"></a>msgid "Done."
|
6817 |
-
<a name="cl-1982"></a>msgstr "Tehty."
|
6818 |
-
<a name="cl-1983"></a>
|
6819 |
-
<a name="cl-1984"></a>#: ../admin/settings.php:167
|
6820 |
-
<a name="cl-1985"></a>#, fuzzy
|
6821 |
-
<a name="cl-1986"></a>msgid "Settings updated successfully"
|
6822 |
-
<a name="cl-1987"></a>msgstr "Päivitä onnistuneesti"
|
6823 |
-
<a name="cl-1988"></a>
|
6824 |
-
<a name="cl-1989"></a>#: ../admin/settings.php:185
|
6825 |
-
<a name="cl-1990"></a>msgid "Cache cleared"
|
6826 |
-
<a name="cl-1991"></a>msgstr "Välimuisti tyhjennetty"
|
6827 |
-
<a name="cl-1992"></a>
|
6828 |
-
<a name="cl-1993"></a>#: ../admin/settings.php:285
|
6829 |
-
<a name="cl-1994"></a>msgid "General"
|
6830 |
-
<a name="cl-1995"></a>msgstr "Yleistä"
|
6831 |
-
<a name="cl-1996"></a>
|
6832 |
-
<a name="cl-1997"></a>#: ../admin/settings.php:288 ../admin/settings.php:546
|
6833 |
-
<a name="cl-1998"></a>msgid "Effects"
|
6834 |
-
<a name="cl-1999"></a>msgstr "Efektit "
|
6835 |
-
<a name="cl-2000"></a>
|
6836 |
-
<a name="cl-2001"></a>#: ../admin/settings.php:289 ../admin/settings.php:587
|
6837 |
-
<a name="cl-2002"></a>#: ../admin/tinymce/window.php:329
|
6838 |
-
<a name="cl-2003"></a>msgid "Watermark"
|
6839 |
-
<a name="cl-2004"></a>msgstr "Vesileima "
|
6840 |
-
<a name="cl-2005"></a>
|
6841 |
-
<a name="cl-2006"></a>#: ../admin/settings.php:290 ../admin/settings.php:483
|
6842 |
-
<a name="cl-2007"></a>#: ../admin/settings.php:493 ../admin/settings.php:694
|
6843 |
-
<a name="cl-2008"></a>#: ../admin/tinymce/window.php:159 ../lib/rewrite.php:216
|
6844 |
-
<a name="cl-2009"></a>#: ../widgets/widgets.php:29
|
6845 |
-
<a name="cl-2010"></a>msgid "Slideshow"
|
6846 |
-
<a name="cl-2011"></a>msgstr "Diasarja "
|
6847 |
-
<a name="cl-2012"></a>
|
6848 |
-
<a name="cl-2013"></a>#: ../admin/settings.php:303
|
6849 |
-
<a name="cl-2014"></a>msgid "General settings"
|
6850 |
-
<a name="cl-2015"></a>msgstr "Yleiset asetukset "
|
6851 |
-
<a name="cl-2016"></a>
|
6852 |
-
<a name="cl-2017"></a>#: ../admin/settings.php:309 ../admin/wpmu.php:56
|
6853 |
-
<a name="cl-2018"></a>msgid "Gallery path"
|
6854 |
-
<a name="cl-2019"></a>msgstr "Galleriapolku "
|
6855 |
-
<a name="cl-2020"></a>
|
6856 |
-
<a name="cl-2021"></a>#: ../admin/settings.php:311
|
6857 |
-
<a name="cl-2022"></a>msgid "This is the default path for all galleries"
|
6858 |
-
<a name="cl-2023"></a>msgstr "Tämä on kaikkien gallerioiden oletuspolku "
|
6859 |
-
<a name="cl-2024"></a>
|
6860 |
-
<a name="cl-2025"></a>#: ../admin/settings.php:314
|
6861 |
-
<a name="cl-2026"></a>msgid "Image files"
|
6862 |
-
<a name="cl-2027"></a>msgstr "Kuvatiedostot"
|
6863 |
-
<a name="cl-2028"></a>
|
6864 |
-
<a name="cl-2029"></a>#: ../admin/settings.php:316
|
6865 |
-
<a name="cl-2030"></a>msgid "Delete files when removing a gallery from the database"
|
6866 |
-
<a name="cl-2031"></a>msgstr "Poista tiedostot, kun poistat gallerian tietokannasta"
|
6867 |
-
<a name="cl-2032"></a>
|
6868 |
-
<a name="cl-2033"></a>#: ../admin/settings.php:319
|
6869 |
-
<a name="cl-2034"></a>msgid "Select graphic library"
|
6870 |
-
<a name="cl-2035"></a>msgstr "Valitse grafiikkakirjasto"
|
6871 |
-
<a name="cl-2036"></a>
|
6872 |
-
<a name="cl-2037"></a>#: ../admin/settings.php:320
|
6873 |
-
<a name="cl-2038"></a>msgid "GD Library"
|
6874 |
-
<a name="cl-2039"></a>msgstr "GD-kirjasto"
|
6875 |
-
<a name="cl-2040"></a>
|
6876 |
-
<a name="cl-2041"></a>#: ../admin/settings.php:321
|
6877 |
-
<a name="cl-2042"></a>msgid "ImageMagick (Experimental)"
|
6878 |
-
<a name="cl-2043"></a>msgstr "ImageMagick (kokeellinen)"
|
6879 |
-
<a name="cl-2044"></a>
|
6880 |
-
<a name="cl-2045"></a>#: ../admin/settings.php:322
|
6881 |
-
<a name="cl-2046"></a>msgid "Path to the library:"
|
6882 |
-
<a name="cl-2047"></a>msgstr "Polku kirjastoon:"
|
6883 |
-
<a name="cl-2048"></a>
|
6884 |
-
<a name="cl-2049"></a>#: ../admin/settings.php:327
|
6885 |
-
<a name="cl-2050"></a>msgid "Media RSS feed"
|
6886 |
-
<a name="cl-2051"></a>msgstr "Media RSS -syöte"
|
6887 |
-
<a name="cl-2052"></a>
|
6888 |
-
<a name="cl-2053"></a>#: ../admin/settings.php:329
|
6889 |
-
<a name="cl-2054"></a>msgid "Add a RSS feed to you blog header. Useful for CoolIris/PicLens"
|
6890 |
-
<a name="cl-2055"></a>msgstr "Lisää RSS-syöte blogisi headeriin. Kätevä CoolIris/PicLensin kanssa"
|
6891 |
-
<a name="cl-2056"></a>
|
6892 |
-
<a name="cl-2057"></a>#: ../admin/settings.php:332
|
6893 |
-
<a name="cl-2058"></a>msgid "PicLens/CoolIris"
|
6894 |
-
<a name="cl-2059"></a>msgstr "PicLens/CoolIris"
|
6895 |
-
<a name="cl-2060"></a>
|
6896 |
-
<a name="cl-2061"></a>#: ../admin/settings.php:334
|
6897 |
-
<a name="cl-2062"></a>msgid "Include support for PicLens and CoolIris"
|
6898 |
-
<a name="cl-2063"></a>msgstr "Lisää tuki PicLensille ja CoolIrisille"
|
6899 |
-
<a name="cl-2064"></a>
|
6900 |
-
<a name="cl-2065"></a>#: ../admin/settings.php:335
|
6901 |
-
<a name="cl-2066"></a>msgid ""
|
6902 |
-
<a name="cl-2067"></a>"When activated, JavaScript is added to your site footer. Make sure that "
|
6903 |
-
<a name="cl-2068"></a>"wp_footer is called in your theme."
|
6904 |
-
<a name="cl-2069"></a>msgstr ""
|
6905 |
-
<a name="cl-2070"></a>"Jos aktivoitu, JavaScript lisätään sivustosi alaotsikkoon. Varmista, että "
|
6906 |
-
<a name="cl-2071"></a>"teemasi kutsuu wp_footer:ia."
|
6907 |
-
<a name="cl-2072"></a>
|
6908 |
-
<a name="cl-2073"></a>#: ../admin/settings.php:339
|
6909 |
-
<a name="cl-2074"></a>msgid "Permalinks"
|
6910 |
-
<a name="cl-2075"></a>msgstr "Kiinteät polkuosoitteet"
|
6911 |
-
<a name="cl-2076"></a>
|
6912 |
-
<a name="cl-2077"></a>#: ../admin/settings.php:342
|
6913 |
-
<a name="cl-2078"></a>msgid "Use permalinks"
|
6914 |
-
<a name="cl-2079"></a>msgstr "Käytä kiinteitä polkuosoitteita"
|
6915 |
-
<a name="cl-2080"></a>
|
6916 |
-
<a name="cl-2081"></a>#: ../admin/settings.php:344
|
6917 |
-
<a name="cl-2082"></a>msgid "Adds a static link to all images"
|
6918 |
-
<a name="cl-2083"></a>msgstr "Lisää staattisen linkin kaikkiin kuviin"
|
6919 |
-
<a name="cl-2084"></a>
|
6920 |
-
<a name="cl-2085"></a>#: ../admin/settings.php:345
|
6921 |
-
<a name="cl-2086"></a>msgid ""
|
6922 |
-
<a name="cl-2087"></a>"When activating this option, you need to update your permalink structure once"
|
6923 |
-
<a name="cl-2088"></a>msgstr ""
|
6924 |
-
<a name="cl-2089"></a>"Kun aktivoit tämän vaihtoehdon, sinun on päivitettävä pysyvien linkkien "
|
6925 |
-
<a name="cl-2090"></a>"rakenne kerran."
|
6926 |
-
<a name="cl-2091"></a>
|
6927 |
-
<a name="cl-2092"></a>#: ../admin/settings.php:349
|
6928 |
-
<a name="cl-2093"></a>msgid "Gallery slug:"
|
6929 |
-
<a name="cl-2094"></a>msgstr "Gallerian lyhytnimi :"
|
6930 |
-
<a name="cl-2095"></a>
|
6931 |
-
<a name="cl-2096"></a>#: ../admin/settings.php:353
|
6932 |
-
<a name="cl-2097"></a>msgid "Recreate URLs"
|
6933 |
-
<a name="cl-2098"></a>msgstr "Luo URL:t uudelleen"
|
6934 |
-
<a name="cl-2099"></a>
|
6935 |
-
<a name="cl-2100"></a>#: ../admin/settings.php:354
|
6936 |
-
<a name="cl-2101"></a>msgid "Start now"
|
6937 |
-
<a name="cl-2102"></a>msgstr "Aloita nyt"
|
6938 |
-
<a name="cl-2103"></a>
|
6939 |
-
<a name="cl-2104"></a>#: ../admin/settings.php:355
|
6940 |
-
<a name="cl-2105"></a>msgid "If you've changed these settings, you'll have to recreate the URLs."
|
6941 |
-
<a name="cl-2106"></a>msgstr "Jos olet muuttanut näitä asetuksia, sinun on luotava URL:t uudelleen."
|
6942 |
-
<a name="cl-2107"></a>
|
6943 |
-
<a name="cl-2108"></a>#: ../admin/settings.php:358
|
6944 |
-
<a name="cl-2109"></a>msgid "Related images"
|
6945 |
-
<a name="cl-2110"></a>msgstr "Liittyvät kuvat"
|
6946 |
-
<a name="cl-2111"></a>
|
6947 |
-
<a name="cl-2112"></a>#: ../admin/settings.php:361
|
6948 |
-
<a name="cl-2113"></a>msgid "Add related images"
|
6949 |
-
<a name="cl-2114"></a>msgstr "Lisää liittyvät kuvat"
|
6950 |
-
<a name="cl-2115"></a>
|
6951 |
-
<a name="cl-2116"></a>#: ../admin/settings.php:363
|
6952 |
-
<a name="cl-2117"></a>msgid "This will add related images to every post"
|
6953 |
-
<a name="cl-2118"></a>msgstr "Tämä lisää liittyvät kuvat kaikkiin artikkeleihin"
|
6954 |
-
<a name="cl-2119"></a>
|
6955 |
-
<a name="cl-2120"></a>#: ../admin/settings.php:367
|
6956 |
-
<a name="cl-2121"></a>msgid "Match with"
|
6957 |
-
<a name="cl-2122"></a>msgstr "Vertaa "
|
6958 |
-
<a name="cl-2123"></a>
|
6959 |
-
<a name="cl-2124"></a>#: ../admin/settings.php:368
|
6960 |
-
<a name="cl-2125"></a>msgid "Categories"
|
6961 |
-
<a name="cl-2126"></a>msgstr "Aihealueet "
|
6962 |
-
<a name="cl-2127"></a>
|
6963 |
-
<a name="cl-2128"></a>#: ../admin/settings.php:373
|
6964 |
-
<a name="cl-2129"></a>msgid "Max. number of images"
|
6965 |
-
<a name="cl-2130"></a>msgstr "Kuvien maksimimäärä"
|
6966 |
-
<a name="cl-2131"></a>
|
6967 |
-
<a name="cl-2132"></a>#: ../admin/settings.php:375
|
6968 |
-
<a name="cl-2133"></a>msgid "0 will show all images"
|
6969 |
-
<a name="cl-2134"></a>msgstr "0 näyttää kaikki kuvat"
|
6970 |
-
<a name="cl-2135"></a>
|
6971 |
-
<a name="cl-2136"></a>#: ../admin/settings.php:388
|
6972 |
-
<a name="cl-2137"></a>msgid "Image settings"
|
6973 |
-
<a name="cl-2138"></a>msgstr "Kuva-asetukset"
|
6974 |
-
<a name="cl-2139"></a>
|
6975 |
-
<a name="cl-2140"></a>#: ../admin/settings.php:402
|
6976 |
-
<a name="cl-2141"></a>msgid "Image quality"
|
6977 |
-
<a name="cl-2142"></a>msgstr "Kuvan laatu"
|
6978 |
-
<a name="cl-2143"></a>
|
6979 |
-
<a name="cl-2144"></a>#: ../admin/settings.php:407
|
6980 |
-
<a name="cl-2145"></a>msgid "Backup original"
|
6981 |
-
<a name="cl-2146"></a>msgstr "Varmista alkuperäinen"
|
6982 |
-
<a name="cl-2147"></a>
|
6983 |
-
<a name="cl-2148"></a>#: ../admin/settings.php:409
|
6984 |
-
<a name="cl-2149"></a>msgid "Create a backup for the resized images"
|
6985 |
-
<a name="cl-2150"></a>msgstr "Luo varmistus kooltaan muuteuista kuvista"
|
6986 |
-
<a name="cl-2151"></a>
|
6987 |
-
<a name="cl-2152"></a>#: ../admin/settings.php:412
|
6988 |
-
<a name="cl-2153"></a>msgid "Automatically resize"
|
6989 |
-
<a name="cl-2154"></a>msgstr "Muuta koko automaattisesti"
|
6990 |
-
<a name="cl-2155"></a>
|
6991 |
-
<a name="cl-2156"></a>#: ../admin/settings.php:414
|
6992 |
-
<a name="cl-2157"></a>msgid "Automatically resize images on upload."
|
6993 |
-
<a name="cl-2158"></a>msgstr "Muuta kuvien koko automaattisesti latauksessa."
|
6994 |
-
<a name="cl-2159"></a>
|
6995 |
-
<a name="cl-2160"></a>#: ../admin/settings.php:418
|
6996 |
-
<a name="cl-2161"></a>msgid "Thumbnail settings"
|
6997 |
-
<a name="cl-2162"></a>msgstr "Esikatselukuvien asetukset"
|
6998 |
-
<a name="cl-2163"></a>
|
6999 |
-
<a name="cl-2164"></a>#: ../admin/settings.php:419
|
7000 |
-
<a name="cl-2165"></a>msgid ""
|
7001 |
-
<a name="cl-2166"></a>"Please note: if you change these settings, you need to recreate the "
|
7002 |
-
<a name="cl-2167"></a>"thumbnails under -> Manage Gallery ."
|
7003 |
-
<a name="cl-2168"></a>msgstr ""
|
7004 |
-
<a name="cl-2169"></a>"Huom : Jos muutat näitä asetuksia, sinun on luotava esikatselukuvat "
|
7005 |
-
<a name="cl-2170"></a>"uudelleen -> Gallerian hallinta."
|
7006 |
-
<a name="cl-2171"></a>
|
7007 |
-
<a name="cl-2172"></a>#: ../admin/settings.php:422
|
7008 |
-
<a name="cl-2173"></a>msgid "Thumbnail size"
|
7009 |
-
<a name="cl-2174"></a>msgstr "Esikatselukuvan koko"
|
7010 |
-
<a name="cl-2175"></a>
|
7011 |
-
<a name="cl-2176"></a>#: ../admin/settings.php:436
|
7012 |
-
<a name="cl-2177"></a>msgid "Thumbnail quality"
|
7013 |
-
<a name="cl-2178"></a>msgstr "Esikatselukuvan laatu"
|
7014 |
-
<a name="cl-2179"></a>
|
7015 |
-
<a name="cl-2180"></a>#: ../admin/settings.php:440
|
7016 |
-
<a name="cl-2181"></a>msgid "Single picture"
|
7017 |
-
<a name="cl-2182"></a>msgstr "Yksittäiskuva"
|
7018 |
-
<a name="cl-2183"></a>
|
7019 |
-
<a name="cl-2184"></a>#: ../admin/settings.php:443
|
7020 |
-
<a name="cl-2185"></a>msgid "Clear cache folder"
|
7021 |
-
<a name="cl-2186"></a>msgstr "Tyhjennä välimuistikansio"
|
7022 |
-
<a name="cl-2187"></a>
|
7023 |
-
<a name="cl-2188"></a>#: ../admin/settings.php:444
|
7024 |
-
<a name="cl-2189"></a>msgid "Proceed now"
|
7025 |
-
<a name="cl-2190"></a>msgstr "Jatka nyt"
|
7026 |
-
<a name="cl-2191"></a>
|
7027 |
-
<a name="cl-2192"></a>#: ../admin/settings.php:463
|
7028 |
-
<a name="cl-2193"></a>msgid "Inline gallery"
|
7029 |
-
<a name="cl-2194"></a>msgstr "Inline-galleria"
|
7030 |
-
<a name="cl-2195"></a>
|
7031 |
-
<a name="cl-2196"></a>#: ../admin/settings.php:465
|
7032 |
-
<a name="cl-2197"></a>msgid "Galleries will not be shown on a subpage, but on the same page."
|
7033 |
-
<a name="cl-2198"></a>msgstr "Gallerioita ei näytetä alasivulla, vaan samalla sivulla."
|
7034 |
-
<a name="cl-2199"></a>
|
7035 |
-
<a name="cl-2200"></a>#: ../admin/settings.php:469
|
7036 |
-
<a name="cl-2201"></a>msgid "Images per page"
|
7037 |
-
<a name="cl-2202"></a>msgstr "Kuvien lukumäärä sivulla"
|
7038 |
-
<a name="cl-2203"></a>
|
7039 |
-
<a name="cl-2204"></a>#: ../admin/settings.php:472
|
7040 |
-
<a name="cl-2205"></a>msgid "0 will disable pagination, all images on one page"
|
7041 |
-
<a name="cl-2206"></a>msgstr "0 estää sivutuksen, kaikki kuvat samalla sivulla"
|
7042 |
-
<a name="cl-2207"></a>
|
7043 |
-
<a name="cl-2208"></a>#: ../admin/settings.php:476
|
7044 |
-
<a name="cl-2209"></a>msgid "Columns"
|
7045 |
-
<a name="cl-2210"></a>msgstr "Sarakkeita"
|
7046 |
-
<a name="cl-2211"></a>
|
7047 |
-
<a name="cl-2212"></a>#: ../admin/settings.php:479
|
7048 |
-
<a name="cl-2213"></a>msgid ""
|
7049 |
-
<a name="cl-2214"></a>"0 will display as much columns as possible. This is normally only required "
|
7050 |
-
<a name="cl-2215"></a>"for captions below the images."
|
7051 |
-
<a name="cl-2216"></a>msgstr ""
|
7052 |
-
<a name="cl-2217"></a>"0 näyttää niin monta kuin mahtuu teemasi sisältöleveydelle. Asetus tarvitaan "
|
7053 |
-
<a name="cl-2218"></a>"yleensä vain kuviatekstejä varten."
|
7054 |
-
<a name="cl-2219"></a>
|
7055 |
-
<a name="cl-2220"></a>#: ../admin/settings.php:484
|
7056 |
-
<a name="cl-2221"></a>msgid "Enable slideshow"
|
7057 |
-
<a name="cl-2222"></a>msgstr "Käytä diaesitystä"
|
7058 |
-
<a name="cl-2223"></a>
|
7059 |
-
<a name="cl-2224"></a>#: ../admin/settings.php:484
|
7060 |
-
<a name="cl-2225"></a>msgid "Text to show:"
|
7061 |
-
<a name="cl-2226"></a>msgstr "Näytettävä teksti:"
|
7062 |
-
<a name="cl-2227"></a>
|
7063 |
-
<a name="cl-2228"></a>#: ../admin/settings.php:487
|
7064 |
-
<a name="cl-2229"></a>msgid ""
|
7065 |
-
<a name="cl-2230"></a>"This is the text the visitors will have to click to switch between display "
|
7066 |
-
<a name="cl-2231"></a>"modes."
|
7067 |
-
<a name="cl-2232"></a>msgstr ""
|
7068 |
-
<a name="cl-2233"></a>"Kävijöiden on klikattava tätä tekstiä vaihtaakseen esitysmuotojen välillä."
|
7069 |
-
<a name="cl-2234"></a>
|
7070 |
-
<a name="cl-2235"></a>#: ../admin/settings.php:491
|
7071 |
-
<a name="cl-2236"></a>msgid "Show first"
|
7072 |
-
<a name="cl-2237"></a>msgstr "Näytä ensin."
|
7073 |
-
<a name="cl-2238"></a>
|
7074 |
-
<a name="cl-2239"></a>#: ../admin/settings.php:492 ../widgets/widgets.php:218
|
7075 |
-
<a name="cl-2240"></a>msgid "Thumbnails"
|
7076 |
-
<a name="cl-2241"></a>msgstr "Esikatselukuvat"
|
7077 |
-
<a name="cl-2242"></a>
|
7078 |
-
<a name="cl-2243"></a>#: ../admin/settings.php:498
|
7079 |
-
<a name="cl-2244"></a>msgid "ImageBrowser"
|
7080 |
-
<a name="cl-2245"></a>msgstr "Kuvaselain"
|
7081 |
-
<a name="cl-2246"></a>
|
7082 |
-
<a name="cl-2247"></a>#: ../admin/settings.php:500
|
7083 |
-
<a name="cl-2248"></a>msgid "Use ImageBrowser instead of another effect."
|
7084 |
-
<a name="cl-2249"></a>msgstr "Käytä kuvaselainta jonkin muun efektin asemesta. "
|
7085 |
-
<a name="cl-2250"></a>
|
7086 |
-
<a name="cl-2251"></a>#: ../admin/settings.php:504
|
7087 |
-
<a name="cl-2252"></a>msgid "Hidden images"
|
7088 |
-
<a name="cl-2253"></a>msgstr "Piilotetut kuvat"
|
7089 |
-
<a name="cl-2254"></a>
|
7090 |
-
<a name="cl-2255"></a>#: ../admin/settings.php:506
|
7091 |
-
<a name="cl-2256"></a>msgid ""
|
7092 |
-
<a name="cl-2257"></a>"Loads all images for the modal window, when pagination is used (like "
|
7093 |
-
<a name="cl-2258"></a>"Thickbox, Lightbox etc.)."
|
7094 |
-
<a name="cl-2259"></a>msgstr ""
|
7095 |
-
<a name="cl-2260"></a>"Lataa kaikki kuvat modaali-ikkunaan kun sivutus on käytössä (esim. Thickbox, "
|
7096 |
-
<a name="cl-2261"></a>"Lightbox jne.)."
|
7097 |
-
<a name="cl-2262"></a>
|
7098 |
-
<a name="cl-2263"></a>#: ../admin/settings.php:507
|
7099 |
-
<a name="cl-2264"></a>msgid "Note: this increases the page load (possibly a lot)"
|
7100 |
-
<a name="cl-2265"></a>msgstr "huom: tämä lisää sivukuormitusta (mahdollisesti paljonkin)"
|
7101 |
-
<a name="cl-2266"></a>
|
7102 |
-
<a name="cl-2267"></a>#: ../admin/settings.php:511
|
7103 |
-
<a name="cl-2268"></a>msgid "AJAX pagination"
|
7104 |
-
<a name="cl-2269"></a>msgstr "Aktivoi AJAX-sivutus"
|
7105 |
-
<a name="cl-2270"></a>
|
7106 |
-
<a name="cl-2271"></a>#: ../admin/settings.php:513
|
7107 |
-
<a name="cl-2272"></a>msgid "Use AJAX pagination to browse images without reloading the page."
|
7108 |
-
<a name="cl-2273"></a>msgstr "Selaa kuvia AJAX-sivutulsella ilman sivun latausta. "
|
7109 |
-
<a name="cl-2274"></a>
|
7110 |
-
<a name="cl-2275"></a>#: ../admin/settings.php:514
|
7111 |
-
<a name="cl-2276"></a>msgid "Note: works only in combination with the Shutter effect."
|
7112 |
-
<a name="cl-2277"></a>msgstr "Huom: toimii vain Shutter-efektin kanssa "
|
7113 |
-
<a name="cl-2278"></a>
|
7114 |
-
<a name="cl-2279"></a>#: ../admin/settings.php:518
|
7115 |
-
<a name="cl-2280"></a>msgid "Sort options"
|
7116 |
-
<a name="cl-2281"></a>msgstr "Lajitteluvaihtoehdot"
|
7117 |
-
<a name="cl-2282"></a>
|
7118 |
-
<a name="cl-2283"></a>#: ../admin/settings.php:521
|
7119 |
-
<a name="cl-2284"></a>msgid "Sort thumbnails"
|
7120 |
-
<a name="cl-2285"></a>msgstr "Lajittele esikatselukuvat"
|
7121 |
-
<a name="cl-2286"></a>
|
7122 |
-
<a name="cl-2287"></a>#: ../admin/settings.php:523
|
7123 |
-
<a name="cl-2288"></a>msgid "Custom order"
|
7124 |
-
<a name="cl-2289"></a>msgstr "Räätälöity järjestys"
|
7125 |
-
<a name="cl-2290"></a>
|
7126 |
-
<a name="cl-2291"></a>#: ../admin/settings.php:525
|
7127 |
-
<a name="cl-2292"></a>msgid "File name"
|
7128 |
-
<a name="cl-2293"></a>msgstr "Tiedostonimi"
|
7129 |
-
<a name="cl-2294"></a>
|
7130 |
-
<a name="cl-2295"></a>#: ../admin/settings.php:526
|
7131 |
-
<a name="cl-2296"></a>msgid "Alt / Title text"
|
7132 |
-
<a name="cl-2297"></a>msgstr "Alt / otsikkoteksti"
|
7133 |
-
<a name="cl-2298"></a>
|
7134 |
-
<a name="cl-2299"></a>#: ../admin/settings.php:527 ../view/imagebrowser-exif.php:58
|
7135 |
-
<a name="cl-2300"></a>msgid "Date / Time"
|
7136 |
-
<a name="cl-2301"></a>msgstr "Pvm/Aika"
|
7137 |
-
<a name="cl-2302"></a>
|
7138 |
-
<a name="cl-2303"></a>#: ../admin/settings.php:531
|
7139 |
-
<a name="cl-2304"></a>msgid "Sort direction"
|
7140 |
-
<a name="cl-2305"></a>msgstr "Lajittelusuunta"
|
7141 |
-
<a name="cl-2306"></a>
|
7142 |
-
<a name="cl-2307"></a>#: ../admin/settings.php:550
|
7143 |
-
<a name="cl-2308"></a>msgid ""
|
7144 |
-
<a name="cl-2309"></a>"Here you can select the thumbnail effect, NextCellent Gallery will integrate "
|
7145 |
-
<a name="cl-2310"></a>"the required HTML code in the images. Please note that only the Shutter and "
|
7146 |
-
<a name="cl-2311"></a>"Thickbox effect will automatic added to your theme."
|
7147 |
-
<a name="cl-2312"></a>msgstr ""
|
7148 |
-
<a name="cl-2313"></a>"Tässä voit valita esikatselukuvien efektin, NextGEN Gallery lisää "
|
7149 |
-
<a name="cl-2314"></a>"tarvittavan HTML-koodin kuviin. Huomaa, että vain Shutter- ja Thickbox -"
|
7150 |
-
<a name="cl-2315"></a>"efektit lisätään automaattisesti teemaasi."
|
7151 |
-
<a name="cl-2316"></a>
|
7152 |
-
<a name="cl-2317"></a>#: ../admin/settings.php:551
|
7153 |
-
<a name="cl-2318"></a>msgid "With the placeholder"
|
7154 |
-
<a name="cl-2319"></a>msgstr "Sijoituspaikalla"
|
7155 |
-
<a name="cl-2320"></a>
|
7156 |
-
<a name="cl-2321"></a>#: ../admin/settings.php:551
|
7157 |
-
<a name="cl-2322"></a>msgid ""
|
7158 |
-
<a name="cl-2323"></a>"you can activate a navigation through the images (depend on the effect). "
|
7159 |
-
<a name="cl-2324"></a>"Change the code line only , when you use a different thumbnail effect or you "
|
7160 |
-
<a name="cl-2325"></a>"know what you do."
|
7161 |
-
<a name="cl-2326"></a>msgstr ""
|
7162 |
-
<a name="cl-2327"></a>"voit aktivoida navigoinnin kuvista (efektistä riippuen). Muuta koodiriviä "
|
7163 |
-
<a name="cl-2328"></a>"vain, kun käytät toista esikatselukuvien efektiä tai tiedät, mitä olet "
|
7164 |
-
<a name="cl-2329"></a>"tekemässä."
|
7165 |
-
<a name="cl-2330"></a>
|
7166 |
-
<a name="cl-2331"></a>#: ../admin/settings.php:554
|
7167 |
-
<a name="cl-2332"></a>msgid "JavaScript Thumbnail effect"
|
7168 |
-
<a name="cl-2333"></a>msgstr "JavaScript-esikatselukuva-efekti"
|
7169 |
-
<a name="cl-2334"></a>
|
7170 |
-
<a name="cl-2335"></a>#: ../admin/settings.php:558
|
7171 |
-
<a name="cl-2336"></a>msgid "Thickbox"
|
7172 |
-
<a name="cl-2337"></a>msgstr "Thickbox"
|
7173 |
-
<a name="cl-2338"></a>
|
7174 |
-
<a name="cl-2339"></a>#: ../admin/settings.php:559
|
7175 |
-
<a name="cl-2340"></a>msgid "Lightbox"
|
7176 |
-
<a name="cl-2341"></a>msgstr "Lightbox"
|
7177 |
-
<a name="cl-2342"></a>
|
7178 |
-
<a name="cl-2343"></a>#: ../admin/settings.php:560
|
7179 |
-
<a name="cl-2344"></a>msgid "Highslide"
|
7180 |
-
<a name="cl-2345"></a>msgstr "Highslide"
|
7181 |
-
<a name="cl-2346"></a>
|
7182 |
-
<a name="cl-2347"></a>#: ../admin/settings.php:561
|
7183 |
-
<a name="cl-2348"></a>msgid "Shutter"
|
7184 |
-
<a name="cl-2349"></a>msgstr "Suljin"
|
7185 |
-
<a name="cl-2350"></a>
|
7186 |
-
<a name="cl-2351"></a>#: ../admin/settings.php:562 ../admin/tinymce/window.php:184
|
7187 |
-
<a name="cl-2352"></a>msgid "Custom"
|
7188 |
-
<a name="cl-2353"></a>msgstr "Räätälöity"
|
7189 |
-
<a name="cl-2354"></a>
|
7190 |
-
<a name="cl-2355"></a>#: ../admin/settings.php:567
|
7191 |
-
<a name="cl-2356"></a>msgid "Link Code line"
|
7192 |
-
<a name="cl-2357"></a>msgstr "Linkki-koodirivi"
|
7193 |
-
<a name="cl-2358"></a>
|
7194 |
-
<a name="cl-2359"></a>#: ../admin/settings.php:588
|
7195 |
-
<a name="cl-2360"></a>msgid ""
|
7196 |
-
<a name="cl-2361"></a>"Please note : you can only activate the watermark under -> Manage "
|
7197 |
-
<a name="cl-2362"></a>"Galleries . This action cannot be undone."
|
7198 |
-
<a name="cl-2363"></a>msgstr ""
|
7199 |
-
<a name="cl-2364"></a>"Huom: voit aktivoida vesileiman vain --> Gallerian hallinta. Toimenpidettä "
|
7200 |
-
<a name="cl-2365"></a>"ei voi peruuttaa. "
|
7201 |
-
<a name="cl-2366"></a>
|
7202 |
-
<a name="cl-2367"></a>#: ../admin/settings.php:593
|
7203 |
-
<a name="cl-2368"></a>msgid "Preview"
|
7204 |
-
<a name="cl-2369"></a>msgstr "Esikatselu"
|
7205 |
-
<a name="cl-2370"></a>
|
7206 |
-
<a name="cl-2371"></a>#: ../admin/settings.php:595 ../admin/settings.php:600
|
7207 |
-
<a name="cl-2372"></a>msgid "Position"
|
7208 |
-
<a name="cl-2373"></a>msgstr "Sijainti"
|
7209 |
-
<a name="cl-2374"></a>
|
7210 |
-
<a name="cl-2375"></a>#: ../admin/settings.php:620
|
7211 |
-
<a name="cl-2376"></a>msgid "Offset"
|
7212 |
-
<a name="cl-2377"></a>msgstr "Siirtymä"
|
7213 |
-
<a name="cl-2378"></a>
|
7214 |
-
<a name="cl-2379"></a>#: ../admin/settings.php:636
|
7215 |
-
<a name="cl-2380"></a>msgid "Use image as watermark"
|
7216 |
-
<a name="cl-2381"></a>msgstr "Käytä kuvaa vesileimana"
|
7217 |
-
<a name="cl-2382"></a>
|
7218 |
-
<a name="cl-2383"></a>#: ../admin/settings.php:639
|
7219 |
-
<a name="cl-2384"></a>msgid "URL to file"
|
7220 |
-
<a name="cl-2385"></a>msgstr "URL tiedostoon"
|
7221 |
-
<a name="cl-2386"></a>
|
7222 |
-
<a name="cl-2387"></a>#: ../admin/settings.php:641
|
7223 |
-
<a name="cl-2388"></a>msgid "The accessing of URL files is disabled at your server (allow_url_fopen)"
|
7224 |
-
<a name="cl-2389"></a>msgstr "Pääsy URL-tiedostoihin on estetty tällä palvelimella (allow_url_fopen)"
|
7225 |
-
<a name="cl-2390"></a>
|
7226 |
-
<a name="cl-2391"></a>#: ../admin/settings.php:644
|
7227 |
-
<a name="cl-2392"></a>msgid "Use text as watermark"
|
7228 |
-
<a name="cl-2393"></a>msgstr "Käytä tekstiä vesileimana"
|
7229 |
-
<a name="cl-2394"></a>
|
7230 |
-
<a name="cl-2395"></a>#: ../admin/settings.php:647
|
7231 |
-
<a name="cl-2396"></a>msgid "Font"
|
7232 |
-
<a name="cl-2397"></a>msgstr "Fontti"
|
7233 |
-
<a name="cl-2398"></a>
|
7234 |
-
<a name="cl-2399"></a>#: ../admin/settings.php:656
|
7235 |
-
<a name="cl-2400"></a>msgid "This function will not work, cause you need the FreeType library"
|
7236 |
-
<a name="cl-2401"></a>msgstr "Tämä toiminto vaatii FreeType-kirjaston"
|
7237 |
-
<a name="cl-2402"></a>
|
7238 |
-
<a name="cl-2403"></a>#: ../admin/settings.php:658
|
7239 |
-
<a name="cl-2404"></a>msgid ""
|
7240 |
-
<a name="cl-2405"></a>"You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
|
7241 |
-
<a name="cl-2406"></a>msgstr "Voit ladata lisää fontteja kansioon <strong>nggallery/fonts</strong>."
|
7242 |
-
<a name="cl-2407"></a>
|
7243 |
-
<a name="cl-2408"></a>#: ../admin/settings.php:667
|
7244 |
-
<a name="cl-2409"></a>msgid "Color"
|
7245 |
-
<a name="cl-2410"></a>msgstr "Väri"
|
7246 |
-
<a name="cl-2411"></a>
|
7247 |
-
<a name="cl-2412"></a>#: ../admin/settings.php:669
|
7248 |
-
<a name="cl-2413"></a>msgid "(hex w/o #)"
|
7249 |
-
<a name="cl-2414"></a>msgstr "(hex w/o #)"
|
7250 |
-
<a name="cl-2415"></a>
|
7251 |
-
<a name="cl-2416"></a>#: ../admin/settings.php:672
|
7252 |
-
<a name="cl-2417"></a>msgid "Text"
|
7253 |
-
<a name="cl-2418"></a>msgstr "Teksti"
|
7254 |
-
<a name="cl-2419"></a>
|
7255 |
-
<a name="cl-2420"></a>#: ../admin/settings.php:676
|
7256 |
-
<a name="cl-2421"></a>msgid "Opaque"
|
7257 |
-
<a name="cl-2422"></a>msgstr "Läpinäkyvyys"
|
7258 |
-
<a name="cl-2423"></a>
|
7259 |
-
<a name="cl-2424"></a>#: ../admin/settings.php:697
|
7260 |
-
<a name="cl-2425"></a>msgid "Default size"
|
7261 |
-
<a name="cl-2426"></a>msgstr "Oletuskoko (L x K)"
|
7262 |
-
<a name="cl-2427"></a>
|
7263 |
-
<a name="cl-2428"></a>#: ../admin/settings.php:705
|
7264 |
-
<a name="cl-2429"></a>msgid "Duration"
|
7265 |
-
<a name="cl-2430"></a>msgstr "Kestoaika"
|
7266 |
-
<a name="cl-2431"></a>
|
7267 |
-
<a name="cl-2432"></a>#: ../admin/settings.php:706
|
7268 |
-
<a name="cl-2433"></a>msgid "sec."
|
7269 |
-
<a name="cl-2434"></a>msgstr "s."
|
7270 |
-
<a name="cl-2435"></a>
|
7271 |
-
<a name="cl-2436"></a>#: ../admin/settings.php:709 ../admin/settings.php:783
|
7272 |
-
<a name="cl-2437"></a>msgid "Transition / Fade effect"
|
7273 |
-
<a name="cl-2438"></a>msgstr "Siirtymäefekti"
|
7274 |
-
<a name="cl-2439"></a>
|
7275 |
-
<a name="cl-2440"></a>#: ../admin/settings.php:712 ../admin/settings.php:786
|
7276 |
-
<a name="cl-2441"></a>msgid "fade"
|
7277 |
-
<a name="cl-2442"></a>msgstr "häivytys"
|
7278 |
-
<a name="cl-2443"></a>
|
7279 |
-
<a name="cl-2444"></a>#: ../admin/settings.php:713
|
7280 |
-
<a name="cl-2445"></a>msgid "blindX"
|
7281 |
-
<a name="cl-2446"></a>msgstr "blindX"
|
7282 |
-
<a name="cl-2447"></a>
|
7283 |
-
<a name="cl-2448"></a>#: ../admin/settings.php:714
|
7284 |
-
<a name="cl-2449"></a>msgid "cover"
|
7285 |
-
<a name="cl-2450"></a>msgstr "peitto"
|
7286 |
-
<a name="cl-2451"></a>
|
7287 |
-
<a name="cl-2452"></a>#: ../admin/settings.php:715
|
7288 |
-
<a name="cl-2453"></a>msgid "scrollUp"
|
7289 |
-
<a name="cl-2454"></a>msgstr "scrollUp"
|
7290 |
-
<a name="cl-2455"></a>
|
7291 |
-
<a name="cl-2456"></a>#: ../admin/settings.php:716
|
7292 |
-
<a name="cl-2457"></a>msgid "scrollDown"
|
7293 |
-
<a name="cl-2458"></a>msgstr "scrollDown"
|
7294 |
-
<a name="cl-2459"></a>
|
7295 |
-
<a name="cl-2460"></a>#: ../admin/settings.php:717
|
7296 |
-
<a name="cl-2461"></a>msgid "shuffle"
|
7297 |
-
<a name="cl-2462"></a>msgstr "sekoitus"
|
7298 |
-
<a name="cl-2463"></a>
|
7299 |
-
<a name="cl-2464"></a>#: ../admin/settings.php:718
|
7300 |
-
<a name="cl-2465"></a>msgid "toss"
|
7301 |
-
<a name="cl-2466"></a>msgstr "heitä"
|
7302 |
-
<a name="cl-2467"></a>
|
7303 |
-
<a name="cl-2468"></a>#: ../admin/settings.php:719
|
7304 |
-
<a name="cl-2469"></a>msgid "wipe"
|
7305 |
-
<a name="cl-2470"></a>msgstr "pyyhi"
|
7306 |
-
<a name="cl-2471"></a>
|
7307 |
-
<a name="cl-2472"></a>#: ../admin/settings.php:721
|
7308 |
-
<a name="cl-2473"></a>msgid "See here for more information about the effects :"
|
7309 |
-
<a name="cl-2474"></a>msgstr "Täältä löytyy lisätietoa efekteistä:"
|
7310 |
-
<a name="cl-2475"></a>
|
7311 |
-
<a name="cl-2476"></a>#: ../admin/settings.php:725
|
7312 |
-
<a name="cl-2477"></a>msgid "Settings for the JW Image Rotator"
|
7313 |
-
<a name="cl-2478"></a>msgstr "JW Image Rotatorin asetukset"
|
7314 |
-
<a name="cl-2479"></a>
|
7315 |
-
<a name="cl-2480"></a>#: ../admin/settings.php:726
|
7316 |
-
<a name="cl-2481"></a>msgid ""
|
7317 |
-
<a name="cl-2482"></a>"NextCellent Gallery flash slideshows use the JW Image Rotator Version 3.17 by"
|
7318 |
-
<a name="cl-2483"></a>msgstr ""
|
7319 |
-
<a name="cl-2484"></a>"NextCellent Gallery flash-diashowt käyttävtä JW Image Rotator versiota 3.17, "
|
7320 |
-
<a name="cl-2485"></a>"tekijä "
|
7321 |
-
<a name="cl-2486"></a>
|
7322 |
-
<a name="cl-2487"></a>#: ../admin/settings.php:727
|
7323 |
-
<a name="cl-2488"></a>msgid ""
|
7324 |
-
<a name="cl-2489"></a>"Press the button below to search for it automatically. For earlier versions "
|
7325 |
-
<a name="cl-2490"></a>"of NextCellent Gallery, you'll need to\n"
|
7326 |
-
<a name="cl-2491"></a>"\t\t\t\t\tupload the file manually to the"
|
7327 |
-
<a name="cl-2492"></a>msgstr ""
|
7328 |
-
<a name="cl-2493"></a>"Paina alla olevaa nappulaa etsiäksesi automaattisesti. Aikaisemmissa "
|
7329 |
-
<a name="cl-2494"></a>"NextCellent Gallery versiossa on \n"
|
7330 |
-
<a name="cl-2495"></a>"\t\t\t\t\tladattava tiedosto käsisin paikkaan "
|
7331 |
-
<a name="cl-2496"></a>
|
7332 |
-
<a name="cl-2497"></a>#: ../admin/settings.php:732
|
7333 |
-
<a name="cl-2498"></a>msgid ""
|
7334 |
-
<a name="cl-2499"></a>"The path to JW Image Rotator is not defined, the slideshow will not work."
|
7335 |
-
<a name="cl-2500"></a>msgstr ""
|
7336 |
-
<a name="cl-2501"></a>"Polkua imagerotator.swf -tiedostoon ei ole määritelty, flash-diasarja ei "
|
7337 |
-
<a name="cl-2502"></a>"toimi."
|
7338 |
-
<a name="cl-2503"></a>
|
7339 |
-
<a name="cl-2504"></a>#: ../admin/settings.php:733
|
7340 |
-
<a name="cl-2505"></a>msgid "Press the button below to search for the file."
|
7341 |
-
<a name="cl-2506"></a>msgstr "Paina alla olevaa nappulaa etsiäksesi tiedostoa."
|
7342 |
-
<a name="cl-2507"></a>
|
7343 |
-
<a name="cl-2508"></a>#: ../admin/settings.php:738
|
7344 |
-
<a name="cl-2509"></a>msgid "Enable flash slideshow"
|
7345 |
-
<a name="cl-2510"></a>msgstr "Aktivoi Flash diashow"
|
7346 |
-
<a name="cl-2511"></a>
|
7347 |
-
<a name="cl-2512"></a>#: ../admin/settings.php:740
|
7348 |
-
<a name="cl-2513"></a>msgid "Integrate the flash based slideshow for all flash supported devices"
|
7349 |
-
<a name="cl-2514"></a>msgstr "Käytä flash-diasarjaa kaikissa flashia tukevissa laitteissa"
|
7350 |
-
<a name="cl-2515"></a>
|
7351 |
-
<a name="cl-2516"></a>#: ../admin/settings.php:743
|
7352 |
-
<a name="cl-2517"></a>msgid "Path to the JW Image Rotator (URL)"
|
7353 |
-
<a name="cl-2518"></a>msgstr "Poku JW Image Rotatoriin (URL)"
|
7354 |
-
<a name="cl-2519"></a>
|
7355 |
-
<a name="cl-2520"></a>#: ../admin/settings.php:746
|
7356 |
-
<a name="cl-2521"></a>msgid "Search now"
|
7357 |
-
<a name="cl-2522"></a>msgstr "Etsi nyt"
|
7358 |
-
<a name="cl-2523"></a>
|
7359 |
-
<a name="cl-2524"></a>#: ../admin/settings.php:747
|
7360 |
-
<a name="cl-2525"></a>msgid "Press the button below to search for the JW Image Rotator"
|
7361 |
-
<a name="cl-2526"></a>msgstr ""
|
7362 |
-
<a name="cl-2527"></a>"Klikkaa 'Etsi nyt' hakeaksesi automaattisesti imagerotatorin, jos latasit "
|
7363 |
-
<a name="cl-2528"></a>"sen kansioon wp-content/uploads tai sen alikansioon."
|
7364 |
-
<a name="cl-2529"></a>
|
7365 |
-
<a name="cl-2530"></a>#: ../admin/settings.php:751
|
7366 |
-
<a name="cl-2531"></a>msgid "Shuffle mode"
|
7367 |
-
<a name="cl-2532"></a>msgstr "Sekoitustila"
|
7368 |
-
<a name="cl-2533"></a>
|
7369 |
-
<a name="cl-2534"></a>#: ../admin/settings.php:755
|
7370 |
-
<a name="cl-2535"></a>msgid "Show next image on click"
|
7371 |
-
<a name="cl-2536"></a>msgstr "Näytä seuraava kuva klikkauksella"
|
7372 |
-
<a name="cl-2537"></a>
|
7373 |
-
<a name="cl-2538"></a>#: ../admin/settings.php:759
|
7374 |
-
<a name="cl-2539"></a>msgid "Show navigation bar"
|
7375 |
-
<a name="cl-2540"></a>msgstr "Näytä navigointipalkki"
|
7376 |
-
<a name="cl-2541"></a>
|
7377 |
-
<a name="cl-2542"></a>#: ../admin/settings.php:763
|
7378 |
-
<a name="cl-2543"></a>msgid "Show loading icon"
|
7379 |
-
<a name="cl-2544"></a>msgstr "Näytä latauskuvake"
|
7380 |
-
<a name="cl-2545"></a>
|
7381 |
-
<a name="cl-2546"></a>#: ../admin/settings.php:767
|
7382 |
-
<a name="cl-2547"></a>msgid "Use watermark logo"
|
7383 |
-
<a name="cl-2548"></a>msgstr "Käytä vesileimalogoa"
|
7384 |
-
<a name="cl-2549"></a>
|
7385 |
-
<a name="cl-2550"></a>#: ../admin/settings.php:769
|
7386 |
-
<a name="cl-2551"></a>msgid "You can change the logo at the watermark settings"
|
7387 |
-
<a name="cl-2552"></a>msgstr "Voit muttaa logoa vesileima-asetuksista"
|
7388 |
-
<a name="cl-2553"></a>
|
7389 |
-
<a name="cl-2554"></a>#: ../admin/settings.php:772
|
7390 |
-
<a name="cl-2555"></a>msgid "Stretch image"
|
7391 |
-
<a name="cl-2556"></a>msgstr "Venytä kuvaa"
|
7392 |
-
<a name="cl-2557"></a>
|
7393 |
-
<a name="cl-2558"></a>#: ../admin/settings.php:775
|
7394 |
-
<a name="cl-2559"></a>msgid "true"
|
7395 |
-
<a name="cl-2560"></a>msgstr "tosi"
|
7396 |
-
<a name="cl-2561"></a>
|
7397 |
-
<a name="cl-2562"></a>#: ../admin/settings.php:776
|
7398 |
-
<a name="cl-2563"></a>msgid "false"
|
7399 |
-
<a name="cl-2564"></a>msgstr "epätosi"
|
7400 |
-
<a name="cl-2565"></a>
|
7401 |
-
<a name="cl-2566"></a>#: ../admin/settings.php:777
|
7402 |
-
<a name="cl-2567"></a>msgid "fit"
|
7403 |
-
<a name="cl-2568"></a>msgstr "sovita"
|
7404 |
-
<a name="cl-2569"></a>
|
7405 |
-
<a name="cl-2570"></a>#: ../admin/settings.php:778
|
7406 |
-
<a name="cl-2571"></a>msgid "none"
|
7407 |
-
<a name="cl-2572"></a>msgstr "ei mitään"
|
7408 |
-
<a name="cl-2573"></a>
|
7409 |
-
<a name="cl-2574"></a>#: ../admin/settings.php:787
|
7410 |
-
<a name="cl-2575"></a>msgid "bgfade"
|
7411 |
-
<a name="cl-2576"></a>msgstr "BGFade"
|
7412 |
-
<a name="cl-2577"></a>
|
7413 |
-
<a name="cl-2578"></a>#: ../admin/settings.php:788
|
7414 |
-
<a name="cl-2579"></a>msgid "slowfade"
|
7415 |
-
<a name="cl-2580"></a>msgstr "Slowfade"
|
7416 |
-
<a name="cl-2581"></a>
|
7417 |
-
<a name="cl-2582"></a>#: ../admin/settings.php:789
|
7418 |
-
<a name="cl-2583"></a>msgid "circles"
|
7419 |
-
<a name="cl-2584"></a>msgstr "ympyrät"
|
7420 |
-
<a name="cl-2585"></a>
|
7421 |
-
<a name="cl-2586"></a>#: ../admin/settings.php:790
|
7422 |
-
<a name="cl-2587"></a>msgid "bubbles"
|
7423 |
-
<a name="cl-2588"></a>msgstr "kuplat"
|
7424 |
-
<a name="cl-2589"></a>
|
7425 |
-
<a name="cl-2590"></a>#: ../admin/settings.php:791
|
7426 |
-
<a name="cl-2591"></a>msgid "blocks"
|
7427 |
-
<a name="cl-2592"></a>msgstr "lohkot"
|
7428 |
-
<a name="cl-2593"></a>
|
7429 |
-
<a name="cl-2594"></a>#: ../admin/settings.php:792
|
7430 |
-
<a name="cl-2595"></a>msgid "fluids"
|
7431 |
-
<a name="cl-2596"></a>msgstr "nesteet"
|
7432 |
-
<a name="cl-2597"></a>
|
7433 |
-
<a name="cl-2598"></a>#: ../admin/settings.php:793
|
7434 |
-
<a name="cl-2599"></a>msgid "flash"
|
7435 |
-
<a name="cl-2600"></a>msgstr "salama"
|
7436 |
-
<a name="cl-2601"></a>
|
7437 |
-
<a name="cl-2602"></a>#: ../admin/settings.php:794
|
7438 |
-
<a name="cl-2603"></a>msgid "lines"
|
7439 |
-
<a name="cl-2604"></a>msgstr "viivat"
|
7440 |
-
<a name="cl-2605"></a>
|
7441 |
-
<a name="cl-2606"></a>#: ../admin/settings.php:795 ../widgets/widgets.php:224
|
7442 |
-
<a name="cl-2607"></a>msgid "random"
|
7443 |
-
<a name="cl-2608"></a>msgstr "satunnaisesti"
|
7444 |
-
<a name="cl-2609"></a>
|
7445 |
-
<a name="cl-2610"></a>#: ../admin/settings.php:800
|
7446 |
-
<a name="cl-2611"></a>msgid "Use slow zooming effect"
|
7447 |
-
<a name="cl-2612"></a>msgstr "käytä hidasta Zoom-efektiä"
|
7448 |
-
<a name="cl-2613"></a>
|
7449 |
-
<a name="cl-2614"></a>#: ../admin/settings.php:804
|
7450 |
-
<a name="cl-2615"></a>msgid "Background Color"
|
7451 |
-
<a name="cl-2616"></a>msgstr "Taustaväri (BG)"
|
7452 |
-
<a name="cl-2617"></a>
|
7453 |
-
<a name="cl-2618"></a>#: ../admin/settings.php:809
|
7454 |
-
<a name="cl-2619"></a>msgid "Texts / Buttons Color"
|
7455 |
-
<a name="cl-2620"></a>msgstr "Texti- / nappiväri"
|
7456 |
-
<a name="cl-2621"></a>
|
7457 |
-
<a name="cl-2622"></a>#: ../admin/settings.php:814
|
7458 |
-
<a name="cl-2623"></a>msgid "Rollover / Active Color"
|
7459 |
-
<a name="cl-2624"></a>msgstr "Rollover / aktiivi (linkki) -väri"
|
7460 |
-
<a name="cl-2625"></a>
|
7461 |
-
<a name="cl-2626"></a>#: ../admin/settings.php:819
|
7462 |
-
<a name="cl-2627"></a>msgid "Screen Color"
|
7463 |
-
<a name="cl-2628"></a>msgstr "Ruudun väri"
|
7464 |
-
<a name="cl-2629"></a>
|
7465 |
-
<a name="cl-2630"></a>#: ../admin/settings.php:824
|
7466 |
-
<a name="cl-2631"></a>msgid "Background music (URL)"
|
7467 |
-
<a name="cl-2632"></a>msgstr "Taustamusiikki (URL)"
|
7468 |
-
<a name="cl-2633"></a>
|
7469 |
-
<a name="cl-2634"></a>#: ../admin/settings.php:828
|
7470 |
-
<a name="cl-2635"></a>msgid "Try XHTML validation (with CDATA)"
|
7471 |
-
<a name="cl-2636"></a>msgstr "Kokeile XHTML-validointia (hyödyntää CDATA)"
|
7472 |
-
<a name="cl-2637"></a>
|
7473 |
-
<a name="cl-2638"></a>#: ../admin/settings.php:830
|
7474 |
-
<a name="cl-2639"></a>msgid ""
|
7475 |
-
<a name="cl-2640"></a>"Important : Could causes problem with some browser. Please recheck your page."
|
7476 |
-
<a name="cl-2641"></a>msgstr ""
|
7477 |
-
<a name="cl-2642"></a>"Tärkeää: Voi aiheuttaa ongelmia joisskin selaimissa. Tarkista sivusi "
|
7478 |
-
<a name="cl-2643"></a>"uudelleen."
|
7479 |
-
<a name="cl-2644"></a>
|
7480 |
-
<a name="cl-2645"></a>#: ../admin/setup.php:15
|
7481 |
-
<a name="cl-2646"></a>msgid "Reset all settings to default parameter"
|
7482 |
-
<a name="cl-2647"></a>msgstr "Palauta kaikki asetukset oletusarvoihin."
|
7483 |
-
<a name="cl-2648"></a>
|
7484 |
-
<a name="cl-2649"></a>#: ../admin/setup.php:26
|
7485 |
-
<a name="cl-2650"></a>msgid ""
|
7486 |
-
<a name="cl-2651"></a>"Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !"
|
7487 |
-
<a name="cl-2652"></a>msgstr ""
|
7488 |
-
<a name="cl-2653"></a>"Poisto onnistuih! Voit nyt poistaa lisäosan ja nauttia elämästäsi! Onnea!"
|
7489 |
-
<a name="cl-2654"></a>
|
7490 |
-
<a name="cl-2655"></a>#: ../admin/setup.php:30
|
7491 |
-
<a name="cl-2656"></a>msgid "Reset options"
|
7492 |
-
<a name="cl-2657"></a>msgstr "Resetointivaihtoehdot"
|
7493 |
-
<a name="cl-2658"></a>
|
7494 |
-
<a name="cl-2659"></a>#: ../admin/setup.php:33
|
7495 |
-
<a name="cl-2660"></a>msgid "Reset all options/settings to the default installation."
|
7496 |
-
<a name="cl-2661"></a>msgstr "Resetoi kaikki vaihtoehdot/asetukset oletusarvoihin."
|
7497 |
-
<a name="cl-2662"></a>
|
7498 |
-
<a name="cl-2663"></a>#: ../admin/setup.php:34
|
7499 |
-
<a name="cl-2664"></a>msgid "Reset settings"
|
7500 |
-
<a name="cl-2665"></a>msgstr "Resetoi asetukset"
|
7501 |
-
<a name="cl-2666"></a>
|
7502 |
-
<a name="cl-2667"></a>#: ../admin/setup.php:34
|
7503 |
-
<a name="cl-2668"></a>msgid ""
|
7504 |
-
<a name="cl-2669"></a>"Reset all options to default settings ?\\n\\nChoose [Cancel] to Stop, [OK] "
|
7505 |
-
<a name="cl-2670"></a>"to proceed.\\n"
|
7506 |
-
<a name="cl-2671"></a>msgstr ""
|
7507 |
-
<a name="cl-2672"></a>"Resetoi kaikki oletusarvoihin?\\n\\nValitse [peruuta] keskeyttääksesi, [OK] "
|
7508 |
-
<a name="cl-2673"></a>"jatkaaksesi.\\n"
|
7509 |
-
<a name="cl-2674"></a>
|
7510 |
-
<a name="cl-2675"></a>#: ../admin/setup.php:39
|
7511 |
-
<a name="cl-2676"></a>msgid "Uninstall plugin tables"
|
7512 |
-
<a name="cl-2677"></a>msgstr "Poista lisäosan taulut tietokannasta"
|
7513 |
-
<a name="cl-2678"></a>
|
7514 |
-
<a name="cl-2679"></a>#: ../admin/setup.php:44
|
7515 |
-
<a name="cl-2680"></a>msgid "You don't like NextCellent Gallery ?"
|
7516 |
-
<a name="cl-2681"></a>msgstr "Etkö pidä NextCellent Gallerystä?"
|
7517 |
-
<a name="cl-2682"></a>
|
7518 |
-
<a name="cl-2683"></a>#: ../admin/setup.php:45
|
7519 |
-
<a name="cl-2684"></a>msgid ""
|
7520 |
-
<a name="cl-2685"></a>"No problem, before you deactivate this plugin press the Uninstall Button, "
|
7521 |
-
<a name="cl-2686"></a>"because deactivating NextCellent Gallery does not remove any data that may "
|
7522 |
-
<a name="cl-2687"></a>"have been created. "
|
7523 |
-
<a name="cl-2688"></a>msgstr ""
|
7524 |
-
<a name="cl-2689"></a>"Ei huolta, ennen kuin deaktivoit tämän lisäosan, klikkaa Uninstall -"
|
7525 |
-
<a name="cl-2690"></a>"nappulaa, jotta kaikki NextGEN Galleryn taulut poistuvat tietokannasta."
|
7526 |
-
<a name="cl-2691"></a>
|
7527 |
-
<a name="cl-2692"></a>#: ../admin/setup.php:47
|
7528 |
-
<a name="cl-2693"></a>msgid "WARNING:"
|
7529 |
-
<a name="cl-2694"></a>msgstr "VAROITUS:"
|
7530 |
-
<a name="cl-2695"></a>
|
7531 |
-
<a name="cl-2696"></a>#: ../admin/setup.php:48
|
7532 |
-
<a name="cl-2697"></a>msgid ""
|
7533 |
-
<a name="cl-2698"></a>"Once uninstalled, this cannot be undone. You should use a Database Backup "
|
7534 |
-
<a name="cl-2699"></a>"plugin of WordPress to backup all the tables first. NextCellent gallery is "
|
7535 |
-
<a name="cl-2700"></a>"stored in the tables"
|
7536 |
-
<a name="cl-2701"></a>msgstr ""
|
7537 |
-
<a name="cl-2702"></a>"Poistoa ei voi jälkeenpäin peruuttaa. Ota koko tietokannasta varmistus "
|
7538 |
-
<a name="cl-2703"></a>"(Database Backup) WordPressissä ennen poistoa. NextGEN Galleryn tiedot on "
|
7539 |
-
<a name="cl-2704"></a>"tallennettu tietokantatauluihin."
|
7540 |
-
<a name="cl-2705"></a>
|
7541 |
-
<a name="cl-2706"></a>#: ../admin/setup.php:48
|
7542 |
-
<a name="cl-2707"></a>msgid "and"
|
7543 |
-
<a name="cl-2708"></a>msgstr "ja"
|
7544 |
-
<a name="cl-2709"></a>
|
7545 |
-
<a name="cl-2710"></a>#: ../admin/setup.php:50
|
7546 |
-
<a name="cl-2711"></a>msgid "Uninstall plugin"
|
7547 |
-
<a name="cl-2712"></a>msgstr "Poista lisäosa"
|
7548 |
-
<a name="cl-2713"></a>
|
7549 |
-
<a name="cl-2714"></a>#: ../admin/setup.php:50
|
7550 |
-
<a name="cl-2715"></a>msgid ""
|
7551 |
-
<a name="cl-2716"></a>"You are about to Uninstall this plugin from WordPress.\\nThis action is not "
|
7552 |
-
<a name="cl-2717"></a>"reversible.\\n\\nChoose [Cancel] to Stop, [OK] to Uninstall.\\n"
|
7553 |
-
<a name="cl-2718"></a>msgstr ""
|
7554 |
-
<a name="cl-2719"></a>"Olet poistamassa tätä lisäosaa WordPressistä.\\nTätä toimenpidettä EI voi "
|
7555 |
-
<a name="cl-2720"></a>"palauttaa.\\n\\nValitse [Peruuta] keskeyttääksesi, [OK] poistaaksesi.\\n"
|
7556 |
-
<a name="cl-2721"></a>
|
7557 |
-
<a name="cl-2722"></a>#: ../admin/showmeta.php:34 ../admin/showmeta.php:60 ../admin/showmeta.php:85
|
7558 |
-
<a name="cl-2723"></a>#: ../admin/showmeta.php:109
|
7559 |
-
<a name="cl-2724"></a>msgid "Value"
|
7560 |
-
<a name="cl-2725"></a>msgstr "Arvo"
|
7561 |
-
<a name="cl-2726"></a>
|
7562 |
-
<a name="cl-2727"></a>#: ../admin/showmeta.php:48
|
7563 |
-
<a name="cl-2728"></a>msgid "No meta data saved"
|
7564 |
-
<a name="cl-2729"></a>msgstr "Mitään metadataa ei ole tallennettuna"
|
7565 |
-
<a name="cl-2730"></a>
|
7566 |
-
<a name="cl-2731"></a>#: ../admin/showmeta.php:54
|
7567 |
-
<a name="cl-2732"></a>msgid "EXIF Data"
|
7568 |
-
<a name="cl-2733"></a>msgstr "EXIF-data"
|
7569 |
-
<a name="cl-2734"></a>
|
7570 |
-
<a name="cl-2735"></a>#: ../admin/showmeta.php:73
|
7571 |
-
<a name="cl-2736"></a>msgid "No exif data"
|
7572 |
-
<a name="cl-2737"></a>msgstr "Ei EXIF-dataa"
|
7573 |
-
<a name="cl-2738"></a>
|
7574 |
-
<a name="cl-2739"></a>#: ../admin/showmeta.php:80
|
7575 |
-
<a name="cl-2740"></a>msgid "IPTC Data"
|
7576 |
-
<a name="cl-2741"></a>msgstr "IPTC-data"
|
7577 |
-
<a name="cl-2742"></a>
|
7578 |
-
<a name="cl-2743"></a>#: ../admin/showmeta.php:104
|
7579 |
-
<a name="cl-2744"></a>msgid "XMP Data"
|
7580 |
-
<a name="cl-2745"></a>msgstr "XMP-data"
|
7581 |
-
<a name="cl-2746"></a>
|
7582 |
-
<a name="cl-2747"></a>#: ../admin/style.php:11
|
7583 |
-
<a name="cl-2748"></a>#, fuzzy
|
7584 |
-
<a name="cl-2749"></a>msgid "(from the ngg_styles folder)"
|
7585 |
-
<a name="cl-2750"></a>msgstr "(teeman hakemistosta)"
|
7586 |
-
<a name="cl-2751"></a>
|
7587 |
-
<a name="cl-2752"></a>#: ../admin/style.php:17
|
7588 |
-
<a name="cl-2753"></a>#, fuzzy
|
7589 |
-
<a name="cl-2754"></a>msgid "(from the theme folder)"
|
7590 |
-
<a name="cl-2755"></a>msgstr "(teeman hakemistosta)"
|
7591 |
-
<a name="cl-2756"></a>
|
7592 |
-
<a name="cl-2757"></a>#: ../admin/style.php:51
|
7593 |
-
<a name="cl-2758"></a>msgid "You do not have sufficient permissions to edit templates for this blog."
|
7594 |
-
<a name="cl-2759"></a>msgstr ""
|
7595 |
-
<a name="cl-2760"></a>"Sinulla ei ole riittäviä oikeuksia tämän blogin mallipohjan muokkaamiseen."
|
7596 |
-
<a name="cl-2761"></a>
|
7597 |
-
<a name="cl-2762"></a>#: ../admin/style.php:60
|
7598 |
-
<a name="cl-2763"></a>msgid "CSS file successfully updated"
|
7599 |
-
<a name="cl-2764"></a>msgstr "CSS-tiedosto päivitetty onnistuneesti."
|
7600 |
-
<a name="cl-2765"></a>
|
7601 |
-
<a name="cl-2766"></a>#: ../admin/style.php:96
|
7602 |
-
<a name="cl-2767"></a>msgid "Style Editor"
|
7603 |
-
<a name="cl-2768"></a>msgstr "CSS-editori"
|
7604 |
-
<a name="cl-2769"></a>
|
7605 |
-
<a name="cl-2770"></a>#: ../admin/style.php:102
|
7606 |
-
<a name="cl-2771"></a>msgid "Activate and use style sheet:"
|
7607 |
-
<a name="cl-2772"></a>msgstr "Aktivoi ja käytä tyylitiedostoa:"
|
7608 |
-
<a name="cl-2773"></a>
|
7609 |
-
<a name="cl-2774"></a>#: ../admin/style.php:122
|
7610 |
-
<a name="cl-2775"></a>msgid "Activate"
|
7611 |
-
<a name="cl-2776"></a>msgstr "Aktivoi"
|
7612 |
-
<a name="cl-2777"></a>
|
7613 |
-
<a name="cl-2778"></a>#: ../admin/style.php:131
|
7614 |
-
<a name="cl-2779"></a>#, fuzzy, php-format
|
7615 |
-
<a name="cl-2780"></a>msgid "Editing %s"
|
7616 |
-
<a name="cl-2781"></a>msgstr "Olemassaolevat tägit"
|
7617 |
-
<a name="cl-2782"></a>
|
7618 |
-
<a name="cl-2783"></a>#: ../admin/style.php:133
|
7619 |
-
<a name="cl-2784"></a>#, php-format
|
7620 |
-
<a name="cl-2785"></a>msgid "Browsing %s"
|
7621 |
-
<a name="cl-2786"></a>msgstr ""
|
7622 |
-
<a name="cl-2787"></a>
|
7623 |
-
<a name="cl-2788"></a>#: ../admin/style.php:144
|
7624 |
-
<a name="cl-2789"></a>msgid "Version"
|
7625 |
-
<a name="cl-2790"></a>msgstr "Versio"
|
7626 |
-
<a name="cl-2791"></a>
|
7627 |
-
<a name="cl-2792"></a>#: ../admin/style.php:149
|
7628 |
-
<a name="cl-2793"></a>msgid ""
|
7629 |
-
<a name="cl-2794"></a>"If you do not want to lose your edits during an update, copy your css file "
|
7630 |
-
<a name="cl-2795"></a>"(nggalery.css) to the \"/wp-content/ngg_styles\" folder."
|
7631 |
-
<a name="cl-2796"></a>msgstr ""
|
7632 |
-
<a name="cl-2797"></a>
|
7633 |
-
<a name="cl-2798"></a>#: ../admin/style.php:150
|
7634 |
-
<a name="cl-2799"></a>msgid "Your current file is located here:"
|
7635 |
-
<a name="cl-2800"></a>msgstr ""
|
7636 |
-
<a name="cl-2801"></a>
|
7637 |
-
<a name="cl-2802"></a>#: ../admin/style.php:153
|
7638 |
-
<a name="cl-2803"></a>#, fuzzy
|
7639 |
-
<a name="cl-2804"></a>msgid ""
|
7640 |
-
<a name="cl-2805"></a>"There is a NextCellent theme file, this file will be used. It's located in:"
|
7641 |
-
<a name="cl-2806"></a>msgstr ""
|
7642 |
-
<a name="cl-2807"></a>"Teemasi sisältää NextCellent Gallery -tyylitiedoston (nggallery.css), jota "
|
7643 |
-
<a name="cl-2808"></a>"käytetään automaattisesti"
|
7644 |
-
<a name="cl-2809"></a>
|
7645 |
-
<a name="cl-2810"></a>#: ../admin/style.php:156
|
7646 |
-
<a name="cl-2811"></a>#, fuzzy
|
7647 |
-
<a name="cl-2812"></a>msgid ""
|
7648 |
-
<a name="cl-2813"></a>"Tip 2: use the color picker below to help you find the right color scheme "
|
7649 |
-
<a name="cl-2814"></a>"for your gallery!"
|
7650 |
-
<a name="cl-2815"></a>msgstr ""
|
7651 |
-
<a name="cl-2816"></a>"2. vinkki : käytä alla olevaa värivalitsinta löytääksesi oikean värikaavion "
|
7652 |
-
<a name="cl-2817"></a>"galleriaasi!"
|
7653 |
-
<a name="cl-2818"></a>
|
7654 |
-
<a name="cl-2819"></a>#: ../admin/style.php:172
|
7655 |
-
<a name="cl-2820"></a>msgid "Update File"
|
7656 |
-
<a name="cl-2821"></a>msgstr "Päivitä tiedosto"
|
7657 |
-
<a name="cl-2822"></a>
|
7658 |
-
<a name="cl-2823"></a>#: ../admin/style.php:175
|
7659 |
-
<a name="cl-2824"></a>msgid "If this file were writable you could edit it."
|
7660 |
-
<a name="cl-2825"></a>msgstr "Jos tähän tiedoston voisi kirjoittaa, voisit muokata sitä."
|
7661 |
-
<a name="cl-2826"></a>
|
7662 |
-
<a name="cl-2827"></a>#: ../admin/style.php:180
|
7663 |
-
<a name="cl-2828"></a>msgid "Oops, no such file exists! Double check the name and try again."
|
7664 |
-
<a name="cl-2829"></a>msgstr ""
|
7665 |
-
<a name="cl-2830"></a>"Ups, sellaista tiedostoa ei löydy! Tarkista nimi ja yritä uudelleen. Merci :)"
|
7666 |
-
<a name="cl-2831"></a>
|
7667 |
-
<a name="cl-2832"></a>#: ../admin/tags.php:40
|
7668 |
-
<a name="cl-2833"></a>msgid "Most popular"
|
7669 |
-
<a name="cl-2834"></a>msgstr "Suosituin"
|
7670 |
-
<a name="cl-2835"></a>
|
7671 |
-
<a name="cl-2836"></a>#: ../admin/tags.php:41
|
7672 |
-
<a name="cl-2837"></a>msgid "Least used"
|
7673 |
-
<a name="cl-2838"></a>msgstr "Vähiten käytetty"
|
7674 |
-
<a name="cl-2839"></a>
|
7675 |
-
<a name="cl-2840"></a>#: ../admin/tags.php:42
|
7676 |
-
<a name="cl-2841"></a>msgid "Alphabetical"
|
7677 |
-
<a name="cl-2842"></a>msgstr "Aakkosellinen"
|
7678 |
-
<a name="cl-2843"></a>
|
7679 |
-
<a name="cl-2844"></a>#: ../admin/tags.php:110
|
7680 |
-
<a name="cl-2845"></a>msgid "Existing Tags"
|
7681 |
-
<a name="cl-2846"></a>msgstr "Olemassaolevat tägit"
|
7682 |
-
<a name="cl-2847"></a>
|
7683 |
-
<a name="cl-2848"></a>#: ../admin/tags.php:114
|
7684 |
-
<a name="cl-2849"></a>msgid "Search tags"
|
7685 |
-
<a name="cl-2850"></a>msgstr "Hakutägit"
|
7686 |
-
<a name="cl-2851"></a>
|
7687 |
-
<a name="cl-2852"></a>#: ../admin/tags.php:118
|
7688 |
-
<a name="cl-2853"></a>msgid "Go"
|
7689 |
-
<a name="cl-2854"></a>msgstr "Aloita"
|
7690 |
-
<a name="cl-2855"></a>
|
7691 |
-
<a name="cl-2856"></a>#: ../admin/tags.php:123
|
7692 |
-
<a name="cl-2857"></a>msgid "Sort Order:"
|
7693 |
-
<a name="cl-2858"></a>msgstr "Järjestys :"
|
7694 |
-
<a name="cl-2859"></a>
|
7695 |
-
<a name="cl-2860"></a>#: ../admin/tags.php:158 ../admin/tags.php:162 ../admin/tags.php:175
|
7696 |
-
<a name="cl-2861"></a>msgid "Previous tags"
|
7697 |
-
<a name="cl-2862"></a>msgstr "Edelliset tägit"
|
7698 |
-
<a name="cl-2863"></a>
|
7699 |
-
<a name="cl-2864"></a>#: ../admin/tags.php:171
|
7700 |
-
<a name="cl-2865"></a>msgid "Next tags"
|
7701 |
-
<a name="cl-2866"></a>msgstr "Seuraavat tägit"
|
7702 |
-
<a name="cl-2867"></a>
|
7703 |
-
<a name="cl-2868"></a>#: ../admin/tags.php:183
|
7704 |
-
<a name="cl-2869"></a>msgid "Rename Tag"
|
7705 |
-
<a name="cl-2870"></a>msgstr "Anna tägille uusi nimi"
|
7706 |
-
<a name="cl-2871"></a>
|
7707 |
-
<a name="cl-2872"></a>#: ../admin/tags.php:191
|
7708 |
-
<a name="cl-2873"></a>msgid ""
|
7709 |
-
<a name="cl-2874"></a>"Enter the tag to rename and its new value. You can use this feature to "
|
7710 |
-
<a name="cl-2875"></a>"merge tags too. Click \"Rename\" and all posts which use this tag will be "
|
7711 |
-
<a name="cl-2876"></a>"updated."
|
7712 |
-
<a name="cl-2877"></a>msgstr ""
|
7713 |
-
<a name="cl-2878"></a>"Anna tägi uutta nimeä ja arvoa varten. Voit käyttää tätä ominaisuutta myös "
|
7714 |
-
<a name="cl-2879"></a>"tägien yhdistämiseen. Klikkaa \"Uudelleennimeä\" ja kaikki tätä tägiä "
|
7715 |
-
<a name="cl-2880"></a>"käyttävät artikkelit päivitetään."
|
7716 |
-
<a name="cl-2881"></a>
|
7717 |
-
<a name="cl-2882"></a>#: ../admin/tags.php:192 ../admin/tags.php:240
|
7718 |
-
<a name="cl-2883"></a>msgid "You can specify multiple tags to rename by separating them with commas."
|
7719 |
-
<a name="cl-2884"></a>msgstr ""
|
7720 |
-
<a name="cl-2885"></a>"Voit määritellä useita tägejä uudelleennimettäväksi erottamalla ne pilkuilla."
|
7721 |
-
<a name="cl-2886"></a>
|
7722 |
-
<a name="cl-2887"></a>#: ../admin/tags.php:196
|
7723 |
-
<a name="cl-2888"></a>msgid "Tag(s) to rename:"
|
7724 |
-
<a name="cl-2889"></a>msgstr "Täg(it) uudelleennimettäväksi:"
|
7725 |
-
<a name="cl-2890"></a>
|
7726 |
-
<a name="cl-2891"></a>#: ../admin/tags.php:200
|
7727 |
-
<a name="cl-2892"></a>msgid "New tag name(s):"
|
7728 |
-
<a name="cl-2893"></a>msgstr "Tägien uudet nimet:"
|
7729 |
-
<a name="cl-2894"></a>
|
7730 |
-
<a name="cl-2895"></a>#: ../admin/tags.php:203
|
7731 |
-
<a name="cl-2896"></a>msgid "Rename"
|
7732 |
-
<a name="cl-2897"></a>msgstr "Uudelleennimeä"
|
7733 |
-
<a name="cl-2898"></a>
|
7734 |
-
<a name="cl-2899"></a>#: ../admin/tags.php:209
|
7735 |
-
<a name="cl-2900"></a>msgid "Delete Tag"
|
7736 |
-
<a name="cl-2901"></a>msgstr "Poista tägi"
|
7737 |
-
<a name="cl-2902"></a>
|
7738 |
-
<a name="cl-2903"></a>#: ../admin/tags.php:217
|
7739 |
-
<a name="cl-2904"></a>msgid ""
|
7740 |
-
<a name="cl-2905"></a>"Enter the name of the tag to delete. This tag will be removed from all "
|
7741 |
-
<a name="cl-2906"></a>"posts."
|
7742 |
-
<a name="cl-2907"></a>msgstr "Anna poistettavan tägin nimi. Tägi poistetaan kaikista kuvista."
|
7743 |
-
<a name="cl-2908"></a>
|
7744 |
-
<a name="cl-2909"></a>#: ../admin/tags.php:218
|
7745 |
-
<a name="cl-2910"></a>msgid "You can specify multiple tags to delete by separating them with commas"
|
7746 |
-
<a name="cl-2911"></a>msgstr "Voit poistaa useita tägejä erottamalla ne toisistaan pilkuilla."
|
7747 |
-
<a name="cl-2912"></a>
|
7748 |
-
<a name="cl-2913"></a>#: ../admin/tags.php:222
|
7749 |
-
<a name="cl-2914"></a>msgid "Tag(s) to delete:"
|
7750 |
-
<a name="cl-2915"></a>msgstr "Täg(it) poistettavaksi:"
|
7751 |
-
<a name="cl-2916"></a>
|
7752 |
-
<a name="cl-2917"></a>#: ../admin/tags.php:231
|
7753 |
-
<a name="cl-2918"></a>msgid "Edit Tag Slug"
|
7754 |
-
<a name="cl-2919"></a>msgstr "Muokkaa tägin lyhytnimeä"
|
7755 |
-
<a name="cl-2920"></a>
|
7756 |
-
<a name="cl-2921"></a>#: ../admin/tags.php:239
|
7757 |
-
<a name="cl-2922"></a>msgid ""
|
7758 |
-
<a name="cl-2923"></a>"Enter the tag name to edit and its new slug. <a href=\"http://codex."
|
7759 |
-
<a name="cl-2924"></a>"wordpress.org/Glossary#Slug\">Slug definition</a>"
|
7760 |
-
<a name="cl-2925"></a>msgstr ""
|
7761 |
-
<a name="cl-2926"></a>"Anna tägin nimi muokkausta ja uutta lyhytnimeä varten. <a href=\"http://"
|
7762 |
-
<a name="cl-2927"></a>"codex.wordpress.org/Glossary#Slug\">mikä on lyhytnimi (Slug - engl.)?</a>"
|
7763 |
-
<a name="cl-2928"></a>
|
7764 |
-
<a name="cl-2929"></a>#: ../admin/tags.php:244
|
7765 |
-
<a name="cl-2930"></a>msgid "Tag(s) to match:"
|
7766 |
-
<a name="cl-2931"></a>msgstr "Vertailtava(t) tägi(t) :"
|
7767 |
-
<a name="cl-2932"></a>
|
7768 |
-
<a name="cl-2933"></a>#: ../admin/tags.php:248
|
7769 |
-
<a name="cl-2934"></a>msgid "Slug(s) to set:"
|
7770 |
-
<a name="cl-2935"></a>msgstr "Asetettava(t) lyhytnimi(et):"
|
7771 |
-
<a name="cl-2936"></a>
|
7772 |
-
<a name="cl-2937"></a>#: ../admin/tinymce/window.php:118
|
7773 |
-
<a name="cl-2938"></a>msgid "To add something, select what you would want to display"
|
7774 |
-
<a name="cl-2939"></a>msgstr ""
|
7775 |
-
<a name="cl-2940"></a>
|
7776 |
-
<a name="cl-2941"></a>#: ../admin/tinymce/window.php:122
|
7777 |
-
<a name="cl-2942"></a>#, fuzzy
|
7778 |
-
<a name="cl-2943"></a>msgid "One picture"
|
7779 |
-
<a name="cl-2944"></a>msgstr "Yksittäiskuva"
|
7780 |
-
<a name="cl-2945"></a>
|
7781 |
-
<a name="cl-2946"></a>#: ../admin/tinymce/window.php:123
|
7782 |
-
<a name="cl-2947"></a>#, fuzzy
|
7783 |
-
<a name="cl-2948"></a>msgid "Recent pictures"
|
7784 |
-
<a name="cl-2949"></a>msgstr "ei sisällä kuvia "
|
7785 |
-
<a name="cl-2950"></a>
|
7786 |
-
<a name="cl-2951"></a>#: ../admin/tinymce/window.php:124
|
7787 |
-
<a name="cl-2952"></a>#, fuzzy
|
7788 |
-
<a name="cl-2953"></a>msgid "Random pictures"
|
7789 |
-
<a name="cl-2954"></a>msgstr "Lataa kuvia"
|
7790 |
-
<a name="cl-2955"></a>
|
7791 |
-
<a name="cl-2956"></a>#: ../admin/tinymce/window.php:132 ../admin/tinymce/window.php:233
|
7792 |
-
<a name="cl-2957"></a>#: ../admin/tinymce/window.php:300 ../admin/tinymce/window.php:358
|
7793 |
-
<a name="cl-2958"></a>#: ../admin/tinymce/window.php:420
|
7794 |
-
<a name="cl-2959"></a>msgid "Basics"
|
7795 |
-
<a name="cl-2960"></a>msgstr ""
|
7796 |
-
<a name="cl-2961"></a>
|
7797 |
-
<a name="cl-2962"></a>#: ../admin/tinymce/window.php:135 ../admin/tinymce/window.php:379
|
7798 |
-
<a name="cl-2963"></a>#: ../admin/tinymce/window.php:430
|
7799 |
-
<a name="cl-2964"></a>#, fuzzy
|
7800 |
-
<a name="cl-2965"></a>msgid "Select a gallery:"
|
7801 |
-
<a name="cl-2966"></a>msgstr "Valitse galleria"
|
7802 |
-
<a name="cl-2967"></a>
|
7803 |
-
<a name="cl-2968"></a>#: ../admin/tinymce/window.php:138 ../admin/tinymce/window.php:382
|
7804 |
-
<a name="cl-2969"></a>#: ../admin/tinymce/window.php:433
|
7805 |
-
<a name="cl-2970"></a>#, fuzzy
|
7806 |
-
<a name="cl-2971"></a>msgid "Select or search for a gallery"
|
7807 |
-
<a name="cl-2972"></a>msgstr "Valitse tai anna galleria"
|
7808 |
-
<a name="cl-2973"></a>
|
7809 |
-
<a name="cl-2974"></a>#: ../admin/tinymce/window.php:143
|
7810 |
-
<a name="cl-2975"></a>msgid "Display types"
|
7811 |
-
<a name="cl-2976"></a>msgstr ""
|
7812 |
-
<a name="cl-2977"></a>
|
7813 |
-
<a name="cl-2978"></a>#: ../admin/tinymce/window.php:146
|
7814 |
-
<a name="cl-2979"></a>#, fuzzy
|
7815 |
-
<a name="cl-2980"></a>msgid "Select how you want to display your gallery"
|
7816 |
-
<a name="cl-2981"></a>msgstr "Valitse tai anna galleria"
|
7817 |
-
<a name="cl-2982"></a>
|
7818 |
-
<a name="cl-2983"></a>#: ../admin/tinymce/window.php:165
|
7819 |
-
<a name="cl-2984"></a>msgid "Imagebrowser"
|
7820 |
-
<a name="cl-2985"></a>msgstr "Kuvaselain"
|
7821 |
-
<a name="cl-2986"></a>
|
7822 |
-
<a name="cl-2987"></a>#: ../admin/tinymce/window.php:171 ../admin/tinymce/window.php:283
|
7823 |
-
<a name="cl-2988"></a>#: ../admin/tinymce/window.php:404 ../admin/tinymce/window.php:455
|
7824 |
-
<a name="cl-2989"></a>msgid "Carousel"
|
7825 |
-
<a name="cl-2990"></a>msgstr ""
|
7826 |
-
<a name="cl-2991"></a>
|
7827 |
-
<a name="cl-2992"></a>#: ../admin/tinymce/window.php:177 ../admin/tinymce/window.php:289
|
7828 |
-
<a name="cl-2993"></a>#: ../admin/tinymce/window.php:350 ../admin/tinymce/window.php:410
|
7829 |
-
<a name="cl-2994"></a>#: ../admin/tinymce/window.php:461 ../lib/meta.php:451
|
7830 |
-
<a name="cl-2995"></a>msgid "Caption"
|
7831 |
-
<a name="cl-2996"></a>msgstr "Kuvateksti"
|
7832 |
-
<a name="cl-2997"></a>
|
7833 |
-
<a name="cl-2998"></a>#: ../admin/tinymce/window.php:190
|
7834 |
-
<a name="cl-2999"></a>#, fuzzy
|
7835 |
-
<a name="cl-3000"></a>msgid "Type options"
|
7836 |
-
<a name="cl-3001"></a>msgstr "Resetointivaihtoehdot"
|
7837 |
-
<a name="cl-3002"></a>
|
7838 |
-
<a name="cl-3003"></a>#: ../admin/tinymce/window.php:197 ../admin/tinymce/window.php:361
|
7839 |
-
<a name="cl-3004"></a>#: ../admin/tinymce/window.php:423
|
7840 |
-
<a name="cl-3005"></a>#, fuzzy
|
7841 |
-
<a name="cl-3006"></a>msgid "Number of images"
|
7842 |
-
<a name="cl-3007"></a>msgstr "Kuvien maksimimäärä"
|
7843 |
-
<a name="cl-3008"></a>
|
7844 |
-
<a name="cl-3009"></a>#: ../admin/tinymce/window.php:200
|
7845 |
-
<a name="cl-3010"></a>msgid ""
|
7846 |
-
<a name="cl-3011"></a>"The number of images before pagination is applied. Leave empty for the "
|
7847 |
-
<a name="cl-3012"></a>"default from the settings."
|
7848 |
-
<a name="cl-3013"></a>msgstr ""
|
7849 |
-
<a name="cl-3014"></a>
|
7850 |
-
<a name="cl-3015"></a>#: ../admin/tinymce/window.php:208
|
7851 |
-
<a name="cl-3016"></a>#, fuzzy
|
7852 |
-
<a name="cl-3017"></a>msgid "Slideshow dimensions"
|
7853 |
-
<a name="cl-3018"></a>msgstr "Aseta dimension arvo"
|
7854 |
-
<a name="cl-3019"></a>
|
7855 |
-
<a name="cl-3020"></a>#: ../admin/tinymce/window.php:219
|
7856 |
-
<a name="cl-3021"></a>#, fuzzy
|
7857 |
-
<a name="cl-3022"></a>msgid "Template name"
|
7858 |
-
<a name="cl-3023"></a>msgstr "Tiedostonimi"
|
7859 |
-
<a name="cl-3024"></a>
|
7860 |
-
<a name="cl-3025"></a>#: ../admin/tinymce/window.php:239
|
7861 |
-
<a name="cl-3026"></a>msgid "Select or enter album"
|
7862 |
-
<a name="cl-3027"></a>msgstr "Valitse tai anna albumi"
|
7863 |
-
<a name="cl-3028"></a>
|
7864 |
-
<a name="cl-3029"></a>#: ../admin/tinymce/window.php:241
|
7865 |
-
<a name="cl-3030"></a>msgid "Leave this empty to display all galleries."
|
7866 |
-
<a name="cl-3031"></a>msgstr ""
|
7867 |
-
<a name="cl-3032"></a>
|
7868 |
-
<a name="cl-3033"></a>#: ../admin/tinymce/window.php:245
|
7869 |
-
<a name="cl-3034"></a>#, fuzzy
|
7870 |
-
<a name="cl-3035"></a>msgid "Album display types"
|
7871 |
-
<a name="cl-3036"></a>msgstr "Albumi poistettu"
|
7872 |
-
<a name="cl-3037"></a>
|
7873 |
-
<a name="cl-3038"></a>#: ../admin/tinymce/window.php:248
|
7874 |
-
<a name="cl-3039"></a>msgid "Select how you want to display the albums"
|
7875 |
-
<a name="cl-3040"></a>msgstr ""
|
7876 |
-
<a name="cl-3041"></a>
|
7877 |
-
<a name="cl-3042"></a>#: ../admin/tinymce/window.php:255
|
7878 |
-
<a name="cl-3043"></a>msgid "Compact version"
|
7879 |
-
<a name="cl-3044"></a>msgstr "Supistettu versio"
|
7880 |
-
<a name="cl-3045"></a>
|
7881 |
-
<a name="cl-3046"></a>#: ../admin/tinymce/window.php:261
|
7882 |
-
<a name="cl-3047"></a>msgid "Extended version"
|
7883 |
-
<a name="cl-3048"></a>msgstr "Laajennettu versio"
|
7884 |
-
<a name="cl-3049"></a>
|
7885 |
-
<a name="cl-3050"></a>#: ../admin/tinymce/window.php:267
|
7886 |
-
<a name="cl-3051"></a>#, fuzzy
|
7887 |
-
<a name="cl-3052"></a>msgid "Gallery display types"
|
7888 |
-
<a name="cl-3053"></a>msgstr "Galleriapolku "
|
7889 |
-
<a name="cl-3054"></a>
|
7890 |
-
<a name="cl-3055"></a>#: ../admin/tinymce/window.php:270
|
7891 |
-
<a name="cl-3056"></a>msgid ""
|
7892 |
-
<a name="cl-3057"></a>"Select a template for the galleries (displayed after you click on an album)"
|
7893 |
-
<a name="cl-3058"></a>msgstr ""
|
7894 |
-
<a name="cl-3059"></a>
|
7895 |
-
<a name="cl-3060"></a>#: ../admin/tinymce/window.php:304
|
7896 |
-
<a name="cl-3061"></a>#, fuzzy
|
7897 |
-
<a name="cl-3062"></a>msgid "Select a picture"
|
7898 |
-
<a name="cl-3063"></a>msgstr "Valitse tai anna kuva"
|
7899 |
-
<a name="cl-3064"></a>
|
7900 |
-
<a name="cl-3065"></a>#: ../admin/tinymce/window.php:308
|
7901 |
-
<a name="cl-3066"></a>msgid "Select or enter picture"
|
7902 |
-
<a name="cl-3067"></a>msgstr "Valitse tai anna kuva"
|
7903 |
-
<a name="cl-3068"></a>
|
7904 |
-
<a name="cl-3069"></a>#: ../admin/tinymce/window.php:313 ../admin/tinymce/window.php:388
|
7905 |
-
<a name="cl-3070"></a>#: ../admin/tinymce/window.php:439
|
7906 |
-
<a name="cl-3071"></a>#, fuzzy
|
7907 |
-
<a name="cl-3072"></a>msgid "Options"
|
7908 |
-
<a name="cl-3073"></a>msgstr "Kuvateksti"
|
7909 |
-
<a name="cl-3074"></a>
|
7910 |
-
<a name="cl-3075"></a>#: ../admin/tinymce/window.php:316
|
7911 |
-
<a name="cl-3076"></a>msgid "Dimensions"
|
7912 |
-
<a name="cl-3077"></a>msgstr ""
|
7913 |
-
<a name="cl-3078"></a>
|
7914 |
-
<a name="cl-3079"></a>#: ../admin/tinymce/window.php:325
|
7915 |
-
<a name="cl-3080"></a>msgid "Effect"
|
7916 |
-
<a name="cl-3081"></a>msgstr "Efekti"
|
7917 |
-
<a name="cl-3082"></a>
|
7918 |
-
<a name="cl-3083"></a>#: ../admin/tinymce/window.php:328
|
7919 |
-
<a name="cl-3084"></a>msgid "No effect"
|
7920 |
-
<a name="cl-3085"></a>msgstr "Ei efektiä"
|
7921 |
-
<a name="cl-3086"></a>
|
7922 |
-
<a name="cl-3087"></a>#: ../admin/tinymce/window.php:330
|
7923 |
-
<a name="cl-3088"></a>msgid "Web 2.0"
|
7924 |
-
<a name="cl-3089"></a>msgstr "Web 2.0"
|
7925 |
-
<a name="cl-3090"></a>
|
7926 |
-
<a name="cl-3091"></a>#: ../admin/tinymce/window.php:338
|
7927 |
-
<a name="cl-3092"></a>msgid "No float"
|
7928 |
-
<a name="cl-3093"></a>msgstr "Ei kellutusta"
|
7929 |
-
<a name="cl-3094"></a>
|
7930 |
-
<a name="cl-3095"></a>#: ../admin/tinymce/window.php:346
|
7931 |
-
<a name="cl-3096"></a>msgid "Link"
|
7932 |
-
<a name="cl-3097"></a>msgstr ""
|
7933 |
-
<a name="cl-3098"></a>
|
7934 |
-
<a name="cl-3099"></a>#: ../admin/tinymce/window.php:347
|
7935 |
-
<a name="cl-3100"></a>msgid "Add an optional link to the image. Leave blank for no link."
|
7936 |
-
<a name="cl-3101"></a>msgstr ""
|
7937 |
-
<a name="cl-3102"></a>
|
7938 |
-
<a name="cl-3103"></a>#: ../admin/tinymce/window.php:351
|
7939 |
-
<a name="cl-3104"></a>msgid "Add an optional caption to the image. Leave blank for no caption."
|
7940 |
-
<a name="cl-3105"></a>msgstr ""
|
7941 |
-
<a name="cl-3106"></a>
|
7942 |
-
<a name="cl-3107"></a>#: ../admin/tinymce/window.php:364 ../admin/tinymce/window.php:426
|
7943 |
-
<a name="cl-3108"></a>msgid "The number of images that should be displayed."
|
7944 |
-
<a name="cl-3109"></a>msgstr ""
|
7945 |
-
<a name="cl-3110"></a>
|
7946 |
-
<a name="cl-3111"></a>#: ../admin/tinymce/window.php:368
|
7947 |
-
<a name="cl-3112"></a>#, fuzzy
|
7948 |
-
<a name="cl-3113"></a>msgid "Sort the images"
|
7949 |
-
<a name="cl-3114"></a>msgstr "Pyöritä kuvia"
|
7950 |
-
<a name="cl-3115"></a>
|
7951 |
-
<a name="cl-3116"></a>#: ../admin/tinymce/window.php:371
|
7952 |
-
<a name="cl-3117"></a>#, fuzzy
|
7953 |
-
<a name="cl-3118"></a>msgid "Upload order"
|
7954 |
-
<a name="cl-3119"></a>msgstr "Lataa kuva"
|
7955 |
-
<a name="cl-3120"></a>
|
7956 |
-
<a name="cl-3121"></a>#: ../admin/tinymce/window.php:372
|
7957 |
-
<a name="cl-3122"></a>#, fuzzy
|
7958 |
-
<a name="cl-3123"></a>msgid "Date taken"
|
7959 |
-
<a name="cl-3124"></a>msgstr "luotu (Pvm)"
|
7960 |
-
<a name="cl-3125"></a>
|
7961 |
-
<a name="cl-3126"></a>#: ../admin/tinymce/window.php:373
|
7962 |
-
<a name="cl-3127"></a>msgid "User defined"
|
7963 |
-
<a name="cl-3128"></a>msgstr ""
|
7964 |
-
<a name="cl-3129"></a>
|
7965 |
-
<a name="cl-3130"></a>#: ../admin/tinymce/window.php:375
|
7966 |
-
<a name="cl-3131"></a>msgid ""
|
7967 |
-
<a name="cl-3132"></a>"In what order the images are shown. Upload order uses the ID's, date taken "
|
7968 |
-
<a name="cl-3133"></a>"uses the EXIF data and user defined is the sort mode from the settings."
|
7969 |
-
<a name="cl-3134"></a>msgstr ""
|
7970 |
-
<a name="cl-3135"></a>
|
7971 |
-
<a name="cl-3136"></a>#: ../admin/tinymce/window.php:384 ../admin/tinymce/window.php:435
|
7972 |
-
<a name="cl-3137"></a>msgid "If a gallery is selected, only images from that gallery will be shown."
|
7973 |
-
<a name="cl-3138"></a>msgstr ""
|
7974 |
-
<a name="cl-3139"></a>
|
7975 |
-
<a name="cl-3140"></a>#: ../admin/tinymce/window.php:391 ../admin/tinymce/window.php:442
|
7976 |
-
<a name="cl-3141"></a>#, fuzzy
|
7977 |
-
<a name="cl-3142"></a>msgid "Select a template to display the images"
|
7978 |
-
<a name="cl-3143"></a>msgstr "Valitse esikatselukuva:"
|
7979 |
-
<a name="cl-3144"></a>
|
7980 |
-
<a name="cl-3145"></a>#: ../admin/tinymce/window.php:475
|
7981 |
-
<a name="cl-3146"></a>msgid "Insert"
|
7982 |
-
<a name="cl-3147"></a>msgstr "Lisää"
|
7983 |
-
<a name="cl-3148"></a>
|
7984 |
-
<a name="cl-3149"></a>#: ../admin/tinymce/window.php:511
|
7985 |
-
<a name="cl-3150"></a>#, fuzzy
|
7986 |
-
<a name="cl-3151"></a>msgid "You need to select a gallery."
|
7987 |
-
<a name="cl-3152"></a>msgstr "Mikään galleria ei ole valittuna !"
|
7988 |
-
<a name="cl-3153"></a>
|
7989 |
-
<a name="cl-3154"></a>#: ../admin/tinymce/window.php:515
|
7990 |
-
<a name="cl-3155"></a>msgid "You need to select a picture."
|
7991 |
-
<a name="cl-3156"></a>msgstr ""
|
7992 |
-
<a name="cl-3157"></a>
|
7993 |
-
<a name="cl-3158"></a>#: ../admin/tinymce/window.php:519 ../admin/tinymce/window.php:523
|
7994 |
-
<a name="cl-3159"></a>#, fuzzy
|
7995 |
-
<a name="cl-3160"></a>msgid "You need to select a number of images."
|
7996 |
-
<a name="cl-3161"></a>msgstr "Kuvien maksimimäärä"
|
7997 |
-
<a name="cl-3162"></a>
|
7998 |
-
<a name="cl-3163"></a>#: ../admin/wpmu.php:33
|
7999 |
-
<a name="cl-3164"></a>msgid "Update successfully"
|
8000 |
-
<a name="cl-3165"></a>msgstr "Päivitä onnistuneesti"
|
8001 |
-
<a name="cl-3166"></a>
|
8002 |
-
<a name="cl-3167"></a>#: ../admin/wpmu.php:50
|
8003 |
-
<a name="cl-3168"></a>msgid "Network Options"
|
8004 |
-
<a name="cl-3169"></a>msgstr "Verkkovaihtoehdot"
|
8005 |
-
<a name="cl-3170"></a>
|
8006 |
-
<a name="cl-3171"></a>#: ../admin/wpmu.php:58
|
8007 |
-
<a name="cl-3172"></a>msgid ""
|
8008 |
-
<a name="cl-3173"></a>"This is the default path for all blogs. With the placeholder %BLOG_ID% you "
|
8009 |
-
<a name="cl-3174"></a>"can organize the folder structure better."
|
8010 |
-
<a name="cl-3175"></a>msgstr ""
|
8011 |
-
<a name="cl-3176"></a>"Tämän on oletuspolku kaikille blogeille. Blogin tunnuksella %BLOG_ID% voit "
|
8012 |
-
<a name="cl-3177"></a>"järjestää hakemistot paremmin. Polun täytyy päättyä / -erikoismerkkiin."
|
8013 |
-
<a name="cl-3178"></a>
|
8014 |
-
<a name="cl-3179"></a>#: ../admin/wpmu.php:59
|
8015 |
-
<a name="cl-3180"></a>#, php-format
|
8016 |
-
<a name="cl-3181"></a>msgid "The default setting should be %s"
|
8017 |
-
<a name="cl-3182"></a>msgstr "Oletusasetus on %s"
|
8018 |
-
<a name="cl-3183"></a>
|
8019 |
-
<a name="cl-3184"></a>#: ../admin/wpmu.php:63
|
8020 |
-
<a name="cl-3185"></a>msgid "Enable upload quota check"
|
8021 |
-
<a name="cl-3186"></a>msgstr "Salli latauksen kokotarkistus"
|
8022 |
-
<a name="cl-3187"></a>
|
8023 |
-
<a name="cl-3188"></a>#: ../admin/wpmu.php:65
|
8024 |
-
<a name="cl-3189"></a>msgid "Should work if the gallery is bellow the blog.dir"
|
8025 |
-
<a name="cl-3190"></a>msgstr "Pitäisi toimia, jos galleria on blog.dir alla"
|
8026 |
-
<a name="cl-3191"></a>
|
8027 |
-
<a name="cl-3192"></a>#: ../admin/wpmu.php:69
|
8028 |
-
<a name="cl-3193"></a>msgid "Enable zip upload option"
|
8029 |
-
<a name="cl-3194"></a>msgstr "Salli ZIP-lataus"
|
8030 |
-
<a name="cl-3195"></a>
|
8031 |
-
<a name="cl-3196"></a>#: ../admin/wpmu.php:71
|
8032 |
-
<a name="cl-3197"></a>msgid "Allow users to upload zip folders."
|
8033 |
-
<a name="cl-3198"></a>msgstr "Salli käyttäjien ladata ZIP-hakemistoja."
|
8034 |
-
<a name="cl-3199"></a>
|
8035 |
-
<a name="cl-3200"></a>#: ../admin/wpmu.php:75
|
8036 |
-
<a name="cl-3201"></a>msgid "Enable import function"
|
8037 |
-
<a name="cl-3202"></a>msgstr "Salli Tuo (Import) -toiminto"
|
8038 |
-
<a name="cl-3203"></a>
|
8039 |
-
<a name="cl-3204"></a>#: ../admin/wpmu.php:77
|
8040 |
-
<a name="cl-3205"></a>msgid "Allow users to import images folders from the server."
|
8041 |
-
<a name="cl-3206"></a>msgstr "Salli käyttäjien tuoda kuvia palvelimelta."
|
8042 |
-
<a name="cl-3207"></a>
|
8043 |
-
<a name="cl-3208"></a>#: ../admin/wpmu.php:81
|
8044 |
-
<a name="cl-3209"></a>msgid "Enable style selection"
|
8045 |
-
<a name="cl-3210"></a>msgstr "Salli tyylin valinta (CSS)"
|
8046 |
-
<a name="cl-3211"></a>
|
8047 |
-
<a name="cl-3212"></a>#: ../admin/wpmu.php:83
|
8048 |
-
<a name="cl-3213"></a>msgid "Allow users to choose a style for the gallery."
|
8049 |
-
<a name="cl-3214"></a>msgstr "Salli käyttäjän valita gallerian tyyli (CSS)."
|
8050 |
-
<a name="cl-3215"></a>
|
8051 |
-
<a name="cl-3216"></a>#: ../admin/wpmu.php:87
|
8052 |
-
<a name="cl-3217"></a>msgid "Enable roles/capabilities"
|
8053 |
-
<a name="cl-3218"></a>msgstr "Salli roolit/toiminnot"
|
8054 |
-
<a name="cl-3219"></a>
|
8055 |
-
<a name="cl-3220"></a>#: ../admin/wpmu.php:89
|
8056 |
-
<a name="cl-3221"></a>msgid "Allow users to change the roles for other blog authors."
|
8057 |
-
<a name="cl-3222"></a>msgstr "Salli käyttäjien muuttavan muiden blogikirjoittajien rooleja."
|
8058 |
-
<a name="cl-3223"></a>
|
8059 |
-
<a name="cl-3224"></a>#: ../admin/wpmu.php:93
|
8060 |
-
<a name="cl-3225"></a>msgid "Default style"
|
8061 |
-
<a name="cl-3226"></a>msgstr "Oletustyyli"
|
8062 |
-
<a name="cl-3227"></a>
|
8063 |
-
<a name="cl-3228"></a>#: ../admin/wpmu.php:110
|
8064 |
-
<a name="cl-3229"></a>msgid "Choose the default style for the galleries."
|
8065 |
-
<a name="cl-3230"></a>msgstr "Valitse gallerioiden oletustyyli."
|
8066 |
-
<a name="cl-3231"></a>
|
8067 |
-
<a name="cl-3232"></a>#: ../lib/core.php:416
|
8068 |
-
<a name="cl-3233"></a>#, php-format
|
8069 |
-
<a name="cl-3234"></a>msgid ""
|
8070 |
-
<a name="cl-3235"></a>"Note : Based on your server memory limit you should not upload larger images "
|
8071 |
-
<a name="cl-3236"></a>"then <strong>%d x %d</strong> pixel"
|
8072 |
-
<a name="cl-3237"></a>msgstr ""
|
8073 |
-
<a name="cl-3238"></a>"Huom: Palvelimesi muistirajoituksen vuoksi sinun ei pitäisi ladata suurempia "
|
8074 |
-
<a name="cl-3239"></a>"kuvia kuin <strong>%d x %d</strong> pikseliä"
|
8075 |
-
<a name="cl-3240"></a>
|
8076 |
-
<a name="cl-3241"></a>#: ../lib/locale.php:112
|
8077 |
-
<a name="cl-3242"></a>msgid "Invalid URL Provided."
|
8078 |
-
<a name="cl-3243"></a>msgstr "Väärä URL"
|
8079 |
-
<a name="cl-3244"></a>
|
8080 |
-
<a name="cl-3245"></a>#: ../lib/locale.php:116 ../lib/locale.php:120
|
8081 |
-
<a name="cl-3246"></a>msgid "Could not create Temporary file."
|
8082 |
-
<a name="cl-3247"></a>msgstr "Tilapäistiedostoa ei voitu luoda."
|
8083 |
-
<a name="cl-3248"></a>
|
8084 |
-
<a name="cl-3249"></a>#: ../lib/meta.php:131
|
8085 |
-
<a name="cl-3250"></a>msgid " mm"
|
8086 |
-
<a name="cl-3251"></a>msgstr " mm"
|
8087 |
-
<a name="cl-3252"></a>
|
8088 |
-
<a name="cl-3253"></a>#: ../lib/meta.php:137
|
8089 |
-
<a name="cl-3254"></a>msgid " sec"
|
8090 |
-
<a name="cl-3255"></a>msgstr "s."
|
8091 |
-
<a name="cl-3256"></a>
|
8092 |
-
<a name="cl-3257"></a>#: ../lib/meta.php:141
|
8093 |
-
<a name="cl-3258"></a>msgid "Fired"
|
8094 |
-
<a name="cl-3259"></a>msgstr "Laukaistu"
|
8095 |
-
<a name="cl-3260"></a>
|
8096 |
-
<a name="cl-3261"></a>#: ../lib/meta.php:141
|
8097 |
-
<a name="cl-3262"></a>msgid "Not fired"
|
8098 |
-
<a name="cl-3263"></a>msgstr "Ei laukaistu"
|
8099 |
-
<a name="cl-3264"></a>
|
8100 |
-
<a name="cl-3265"></a>#: ../lib/meta.php:448 ../view/imagebrowser-exif.php:46
|
8101 |
-
<a name="cl-3266"></a>msgid "Aperture"
|
8102 |
-
<a name="cl-3267"></a>msgstr "Aukko"
|
8103 |
-
<a name="cl-3268"></a>
|
8104 |
-
<a name="cl-3269"></a>#: ../lib/meta.php:449 ../lib/meta.php:474
|
8105 |
-
<a name="cl-3270"></a>msgid "Credit"
|
8106 |
-
<a name="cl-3271"></a>msgstr "Tekijä"
|
8107 |
-
<a name="cl-3272"></a>
|
8108 |
-
<a name="cl-3273"></a>#: ../lib/meta.php:450
|
8109 |
-
<a name="cl-3274"></a>msgid "Camera"
|
8110 |
-
<a name="cl-3275"></a>msgstr "Kamera "
|
8111 |
-
<a name="cl-3276"></a>
|
8112 |
-
<a name="cl-3277"></a>#: ../lib/meta.php:453
|
8113 |
-
<a name="cl-3278"></a>msgid "Copyright"
|
8114 |
-
<a name="cl-3279"></a>msgstr "Copyright"
|
8115 |
-
<a name="cl-3280"></a>
|
8116 |
-
<a name="cl-3281"></a>#: ../lib/meta.php:454
|
8117 |
-
<a name="cl-3282"></a>msgid "Focal length"
|
8118 |
-
<a name="cl-3283"></a>msgstr "Polttoväli"
|
8119 |
-
<a name="cl-3284"></a>
|
8120 |
-
<a name="cl-3285"></a>#: ../lib/meta.php:455
|
8121 |
-
<a name="cl-3286"></a>msgid "ISO"
|
8122 |
-
<a name="cl-3287"></a>msgstr "ISO"
|
8123 |
-
<a name="cl-3288"></a>
|
8124 |
-
<a name="cl-3289"></a>#: ../lib/meta.php:456 ../view/imagebrowser-exif.php:54
|
8125 |
-
<a name="cl-3290"></a>msgid "Shutter speed"
|
8126 |
-
<a name="cl-3291"></a>msgstr "Suljinnopeus"
|
8127 |
-
<a name="cl-3292"></a>
|
8128 |
-
<a name="cl-3293"></a>#: ../lib/meta.php:460
|
8129 |
-
<a name="cl-3294"></a>msgid "Subject"
|
8130 |
-
<a name="cl-3295"></a>msgstr "Kohde"
|
8131 |
-
<a name="cl-3296"></a>
|
8132 |
-
<a name="cl-3297"></a>#: ../lib/meta.php:461
|
8133 |
-
<a name="cl-3298"></a>msgid "Make"
|
8134 |
-
<a name="cl-3299"></a>msgstr "Malli"
|
8135 |
-
<a name="cl-3300"></a>
|
8136 |
-
<a name="cl-3301"></a>#: ../lib/meta.php:462
|
8137 |
-
<a name="cl-3302"></a>msgid "Edit Status"
|
8138 |
-
<a name="cl-3303"></a>msgstr "Muokkaustila"
|
8139 |
-
<a name="cl-3304"></a>
|
8140 |
-
<a name="cl-3305"></a>#: ../lib/meta.php:463
|
8141 |
-
<a name="cl-3306"></a>msgid "Category"
|
8142 |
-
<a name="cl-3307"></a>msgstr "Aihealue"
|
8143 |
-
<a name="cl-3308"></a>
|
8144 |
-
<a name="cl-3309"></a>#: ../lib/meta.php:464
|
8145 |
-
<a name="cl-3310"></a>msgid "Keywords"
|
8146 |
-
<a name="cl-3311"></a>msgstr "Avainsanat"
|
8147 |
-
<a name="cl-3312"></a>
|
8148 |
-
<a name="cl-3313"></a>#: ../lib/meta.php:465
|
8149 |
-
<a name="cl-3314"></a>msgid "Date Created"
|
8150 |
-
<a name="cl-3315"></a>msgstr "luotu (Pvm)"
|
8151 |
-
<a name="cl-3316"></a>
|
8152 |
-
<a name="cl-3317"></a>#: ../lib/meta.php:466
|
8153 |
-
<a name="cl-3318"></a>msgid "Time Created"
|
8154 |
-
<a name="cl-3319"></a>msgstr "luotu (Aika)"
|
8155 |
-
<a name="cl-3320"></a>
|
8156 |
-
<a name="cl-3321"></a>#: ../lib/meta.php:467
|
8157 |
-
<a name="cl-3322"></a>msgid "Author Position"
|
8158 |
-
<a name="cl-3323"></a>msgstr "Tekijän paikka"
|
8159 |
-
<a name="cl-3324"></a>
|
8160 |
-
<a name="cl-3325"></a>#: ../lib/meta.php:468
|
8161 |
-
<a name="cl-3326"></a>msgid "City"
|
8162 |
-
<a name="cl-3327"></a>msgstr "Kaupunki"
|
8163 |
-
<a name="cl-3328"></a>
|
8164 |
-
<a name="cl-3329"></a>#: ../lib/meta.php:469
|
8165 |
-
<a name="cl-3330"></a>msgid "Location"
|
8166 |
-
<a name="cl-3331"></a>msgstr "Sijainti"
|
8167 |
-
<a name="cl-3332"></a>
|
8168 |
-
<a name="cl-3333"></a>#: ../lib/meta.php:470
|
8169 |
-
<a name="cl-3334"></a>msgid "Province/State"
|
8170 |
-
<a name="cl-3335"></a>msgstr "Maakunta/osavaltio"
|
8171 |
-
<a name="cl-3336"></a>
|
8172 |
-
<a name="cl-3337"></a>#: ../lib/meta.php:471
|
8173 |
-
<a name="cl-3338"></a>msgid "Country code"
|
8174 |
-
<a name="cl-3339"></a>msgstr "Maakoodi"
|
8175 |
-
<a name="cl-3340"></a>
|
8176 |
-
<a name="cl-3341"></a>#: ../lib/meta.php:472
|
8177 |
-
<a name="cl-3342"></a>msgid "Country"
|
8178 |
-
<a name="cl-3343"></a>msgstr "Maa"
|
8179 |
-
<a name="cl-3344"></a>
|
8180 |
-
<a name="cl-3345"></a>#: ../lib/meta.php:473
|
8181 |
-
<a name="cl-3346"></a>msgid "Headline"
|
8182 |
-
<a name="cl-3347"></a>msgstr "Otsikko"
|
8183 |
-
<a name="cl-3348"></a>
|
8184 |
-
<a name="cl-3349"></a>#: ../lib/meta.php:475
|
8185 |
-
<a name="cl-3350"></a>msgid "Source"
|
8186 |
-
<a name="cl-3351"></a>msgstr "Lähde"
|
8187 |
-
<a name="cl-3352"></a>
|
8188 |
-
<a name="cl-3353"></a>#: ../lib/meta.php:476
|
8189 |
-
<a name="cl-3354"></a>msgid "Copyright Notice"
|
8190 |
-
<a name="cl-3355"></a>msgstr "Copyright -merkintä"
|
8191 |
-
<a name="cl-3356"></a>
|
8192 |
-
<a name="cl-3357"></a>#: ../lib/meta.php:477
|
8193 |
-
<a name="cl-3358"></a>msgid "Contact"
|
8194 |
-
<a name="cl-3359"></a>msgstr "Kontakti"
|
8195 |
-
<a name="cl-3360"></a>
|
8196 |
-
<a name="cl-3361"></a>#: ../lib/meta.php:478
|
8197 |
-
<a name="cl-3362"></a>msgid "Last modified"
|
8198 |
-
<a name="cl-3363"></a>msgstr "Muokattu viimeksi"
|
8199 |
-
<a name="cl-3364"></a>
|
8200 |
-
<a name="cl-3365"></a>#: ../lib/meta.php:479
|
8201 |
-
<a name="cl-3366"></a>msgid "Program tool"
|
8202 |
-
<a name="cl-3367"></a>msgstr "Ohjelma"
|
8203 |
-
<a name="cl-3368"></a>
|
8204 |
-
<a name="cl-3369"></a>#: ../lib/meta.php:480
|
8205 |
-
<a name="cl-3370"></a>msgid "Format"
|
8206 |
-
<a name="cl-3371"></a>msgstr "Muoto"
|
8207 |
-
<a name="cl-3372"></a>
|
8208 |
-
<a name="cl-3373"></a>#: ../lib/meta.php:481
|
8209 |
-
<a name="cl-3374"></a>msgid "Image Width"
|
8210 |
-
<a name="cl-3375"></a>msgstr "Leveys"
|
8211 |
-
<a name="cl-3376"></a>
|
8212 |
-
<a name="cl-3377"></a>#: ../lib/meta.php:482
|
8213 |
-
<a name="cl-3378"></a>msgid "Image Height"
|
8214 |
-
<a name="cl-3379"></a>msgstr "Korkeus"
|
8215 |
-
<a name="cl-3380"></a>
|
8216 |
-
<a name="cl-3381"></a>#: ../lib/meta.php:483
|
8217 |
-
<a name="cl-3382"></a>msgid "Flash"
|
8218 |
-
<a name="cl-3383"></a>msgstr "Salama"
|
8219 |
-
<a name="cl-3384"></a>
|
8220 |
-
<a name="cl-3385"></a>#: ../lib/multisite.php:23
|
8221 |
-
<a name="cl-3386"></a>msgid ""
|
8222 |
-
<a name="cl-3387"></a>"Sorry, you have used your space allocation. Please delete some files to "
|
8223 |
-
<a name="cl-3388"></a>"upload more files."
|
8224 |
-
<a name="cl-3389"></a>msgstr ""
|
8225 |
-
<a name="cl-3390"></a>"Sori, olet käyttänyt tilavarauksesi. Poista joitakin tiedostoja, jotta voit "
|
8226 |
-
<a name="cl-3391"></a>"lisätä uusia."
|
8227 |
-
<a name="cl-3392"></a>
|
8228 |
-
<a name="cl-3393"></a>#: ../lib/ngg-db.php:342 ../lib/ngg-db.php:343
|
8229 |
-
<a name="cl-3394"></a>msgid "Album overview"
|
8230 |
-
<a name="cl-3395"></a>msgstr "Albumin yleistiedot"
|
8231 |
-
<a name="cl-3396"></a>
|
8232 |
-
<a name="cl-3397"></a>#: ../lib/shortcodes.php:276 ../nggfunctions.php:166 ../nggfunctions.php:651
|
8233 |
-
<a name="cl-3398"></a>msgid "[Gallery not found]"
|
8234 |
-
<a name="cl-3399"></a>msgstr "[Galleriaa ei löydy]"
|
8235 |
-
<a name="cl-3400"></a>
|
8236 |
-
<a name="cl-3401"></a>#: ../lib/shortcodes.php:340
|
8237 |
-
<a name="cl-3402"></a>msgid "[Pictures not found]"
|
8238 |
-
<a name="cl-3403"></a>msgstr "[Kuvia ei löydy]"
|
8239 |
-
<a name="cl-3404"></a>
|
8240 |
-
<a name="cl-3405"></a>#: ../lib/tags.php:35
|
8241 |
-
<a name="cl-3406"></a>msgid "No new tag specified!"
|
8242 |
-
<a name="cl-3407"></a>msgstr "Mitään uutta tägiä ei ole määritelty!"
|
8243 |
-
<a name="cl-3408"></a>
|
8244 |
-
<a name="cl-3409"></a>#: ../lib/tags.php:50
|
8245 |
-
<a name="cl-3410"></a>msgid "No new/old valid tag specified!"
|
8246 |
-
<a name="cl-3411"></a>msgstr "Mitään uutta/vanhaa tägiä ei ole määritelty!"
|
8247 |
-
<a name="cl-3412"></a>
|
8248 |
-
<a name="cl-3413"></a>#: ../lib/tags.php:86
|
8249 |
-
<a name="cl-3414"></a>msgid "No tag renamed."
|
8250 |
-
<a name="cl-3415"></a>msgstr "Mitään tägiä ei nimetty uudelleen."
|
8251 |
-
<a name="cl-3416"></a>
|
8252 |
-
<a name="cl-3417"></a>#: ../lib/tags.php:88
|
8253 |
-
<a name="cl-3418"></a>#, php-format
|
8254 |
-
<a name="cl-3419"></a>msgid "Renamed tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;"
|
8255 |
-
<a name="cl-3420"></a>msgstr "Uudelleennimetty tägit &laquo;%1$s&raquo; bis &laquo;%2$s&raquo; "
|
8256 |
-
<a name="cl-3421"></a>
|
8257 |
-
<a name="cl-3422"></a>#: ../lib/tags.php:95
|
8258 |
-
<a name="cl-3423"></a>msgid "No valid new tag."
|
8259 |
-
<a name="cl-3424"></a>msgstr "Ei kelvollista tägiä."
|
8260 |
-
<a name="cl-3425"></a>
|
8261 |
-
<a name="cl-3426"></a>#: ../lib/tags.php:112
|
8262 |
-
<a name="cl-3427"></a>msgid "No objects (post/page) found for specified old tags."
|
8263 |
-
<a name="cl-3428"></a>msgstr ""
|
8264 |
-
<a name="cl-3429"></a>"Määritellyille tägeille ei löydy mitään uutta kohdetta (Sivu/artikkeli)."
|
8265 |
-
<a name="cl-3430"></a>
|
8266 |
-
<a name="cl-3431"></a>#: ../lib/tags.php:141
|
8267 |
-
<a name="cl-3432"></a>msgid "No tag merged."
|
8268 |
-
<a name="cl-3433"></a>msgstr "Tägejä ei yhdistetty."
|
8269 |
-
<a name="cl-3434"></a>
|
8270 |
-
<a name="cl-3435"></a>#: ../lib/tags.php:143
|
8271 |
-
<a name="cl-3436"></a>#, php-format
|
8272 |
-
<a name="cl-3437"></a>msgid ""
|
8273 |
-
<a name="cl-3438"></a>"Merge tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;. %3$s objects edited."
|
8274 |
-
<a name="cl-3439"></a>msgstr ""
|
8275 |
-
<a name="cl-3440"></a>"Yhdistetty tägit &laquo;%1$s&raquo; bis &laquo;%2$s&raquo; . %3$s kohdetta "
|
8276 |
-
<a name="cl-3441"></a>"muokattu."
|
8277 |
-
<a name="cl-3442"></a>
|
8278 |
-
<a name="cl-3443"></a>#: ../lib/tags.php:146
|
8279 |
-
<a name="cl-3444"></a>msgid "Error. No enough tags for rename. Too for merge. Choose !"
|
8280 |
-
<a name="cl-3445"></a>msgstr ""
|
8281 |
-
<a name="cl-3446"></a>"Virhe. Tägejä ei tarpeeksi uudelleennimettäväksi tai yhdistettäväksi. "
|
8282 |
-
<a name="cl-3447"></a>"Valitse!"
|
8283 |
-
<a name="cl-3448"></a>
|
8284 |
-
<a name="cl-3449"></a>#: ../lib/tags.php:163
|
8285 |
-
<a name="cl-3450"></a>msgid "No tag specified!"
|
8286 |
-
<a name="cl-3451"></a>msgstr "Tägiä ei määritelty!"
|
8287 |
-
<a name="cl-3452"></a>
|
8288 |
-
<a name="cl-3453"></a>#: ../lib/tags.php:186
|
8289 |
-
<a name="cl-3454"></a>msgid "No tag deleted."
|
8290 |
-
<a name="cl-3455"></a>msgstr "Tägejä ei poistettu."
|
8291 |
-
<a name="cl-3456"></a>
|
8292 |
-
<a name="cl-3457"></a>#: ../lib/tags.php:188
|
8293 |
-
<a name="cl-3458"></a>#, php-format
|
8294 |
-
<a name="cl-3459"></a>msgid "%1s tag(s) deleted."
|
8295 |
-
<a name="cl-3460"></a>msgstr "%1s tägi(ä) poistettu."
|
8296 |
-
<a name="cl-3461"></a>
|
8297 |
-
<a name="cl-3462"></a>#: ../lib/tags.php:202
|
8298 |
-
<a name="cl-3463"></a>msgid "No new slug(s) specified!"
|
8299 |
-
<a name="cl-3464"></a>msgstr "Uutta lyhytnimeä (-nimiä) ei määritelty!"
|
8300 |
-
<a name="cl-3465"></a>
|
8301 |
-
<a name="cl-3466"></a>#: ../lib/tags.php:214
|
8302 |
-
<a name="cl-3467"></a>msgid "Tags number and slugs number isn't the same!"
|
8303 |
-
<a name="cl-3468"></a>msgstr "Tägien nimet ja numerot eivät vastaa toisiaan!"
|
8304 |
-
<a name="cl-3469"></a>
|
8305 |
-
<a name="cl-3470"></a>#: ../lib/tags.php:241
|
8306 |
-
<a name="cl-3471"></a>msgid "No slug edited."
|
8307 |
-
<a name="cl-3472"></a>msgstr "Lyhytnimiä ei muokattu."
|
8308 |
-
<a name="cl-3473"></a>
|
8309 |
-
<a name="cl-3474"></a>#: ../lib/tags.php:243
|
8310 |
-
<a name="cl-3475"></a>#, php-format
|
8311 |
-
<a name="cl-3476"></a>msgid "%s slug(s) edited."
|
8312 |
-
<a name="cl-3477"></a>msgstr "%s lyhytnimi(ä) muutettu."
|
8313 |
-
<a name="cl-3478"></a>
|
8314 |
-
<a name="cl-3479"></a>#: ../lib/xmlrpc.php:93
|
8315 |
-
<a name="cl-3480"></a>#, php-format
|
8316 |
-
<a name="cl-3481"></a>msgid ""
|
8317 |
-
<a name="cl-3482"></a>"XML-RPC services are disabled on this blog. An admin user can enable them "
|
8318 |
-
<a name="cl-3483"></a>"at %s"
|
8319 |
-
<a name="cl-3484"></a>msgstr ""
|
8320 |
-
<a name="cl-3485"></a>"XML-RPC Service eivät ole käytössä tässä blogissa. Administraattori voi "
|
8321 |
-
<a name="cl-3486"></a>"ottaa ne käyttöön paikassa %s "
|
8322 |
-
<a name="cl-3487"></a>
|
8323 |
-
<a name="cl-3488"></a>#: ../lib/xmlrpc.php:101
|
8324 |
-
<a name="cl-3489"></a>msgid "Bad login/pass combination."
|
8325 |
-
<a name="cl-3490"></a>msgstr "Käyttäjänimi/salasana väärin."
|
8326 |
-
<a name="cl-3491"></a>
|
8327 |
-
<a name="cl-3492"></a>#: ../lib/xmlrpc.php:157
|
8328 |
-
<a name="cl-3493"></a>msgid "You are not allowed to upload files to this site."
|
8329 |
-
<a name="cl-3494"></a>msgstr "Sinulla ei ole oikeuksia ladata tiedostoja tälle sivustolle."
|
8330 |
-
<a name="cl-3495"></a>
|
8331 |
-
<a name="cl-3496"></a>#: ../lib/xmlrpc.php:163 ../lib/xmlrpc.php:777 ../lib/xmlrpc.php:829
|
8332 |
-
<a name="cl-3497"></a>msgid "Could not find gallery "
|
8333 |
-
<a name="cl-3498"></a>msgstr "Galleriaa ei löytynyt."
|
8334 |
-
<a name="cl-3499"></a>
|
8335 |
-
<a name="cl-3500"></a>#: ../lib/xmlrpc.php:168 ../lib/xmlrpc.php:782 ../lib/xmlrpc.php:834
|
8336 |
-
<a name="cl-3501"></a>msgid "You are not allowed to upload files to this gallery."
|
8337 |
-
<a name="cl-3502"></a>msgstr "Sinulla ei ole oikeuksia ladata tiedostoja tähän galleriaan."
|
8338 |
-
<a name="cl-3503"></a>
|
8339 |
-
<a name="cl-3504"></a>#: ../lib/xmlrpc.php:180
|
8340 |
-
<a name="cl-3505"></a>msgid "This is no valid image file."
|
8341 |
-
<a name="cl-3506"></a>msgstr "Tiedostonimi ei ole sopiva!"
|
8342 |
-
<a name="cl-3507"></a>
|
8343 |
-
<a name="cl-3508"></a>#: ../lib/xmlrpc.php:192
|
8344 |
-
<a name="cl-3509"></a>msgid "Could not find image id "
|
8345 |
-
<a name="cl-3510"></a>msgstr "Kuva-ID ei löytynyt"
|
8346 |
-
<a name="cl-3511"></a>
|
8347 |
-
<a name="cl-3512"></a>#: ../lib/xmlrpc.php:199
|
8348 |
-
<a name="cl-3513"></a>#, php-format
|
8349 |
-
<a name="cl-3514"></a>msgid "Failed to delete image %1$s "
|
8350 |
-
<a name="cl-3515"></a>msgstr "Kuvan %1$s poisto ei onnistunut"
|
8351 |
-
<a name="cl-3516"></a>
|
8352 |
-
<a name="cl-3517"></a>#: ../lib/xmlrpc.php:208
|
8353 |
-
<a name="cl-3518"></a>#, php-format
|
8354 |
-
<a name="cl-3519"></a>msgid "Could not write file %1$s (%2$s)"
|
8355 |
-
<a name="cl-3520"></a>msgstr "Tiedoston %1$s (%2$s) tallennus ei onnistunut."
|
8356 |
-
<a name="cl-3521"></a>
|
8357 |
-
<a name="cl-3522"></a>#: ../lib/xmlrpc.php:275 ../lib/xmlrpc.php:327
|
8358 |
-
<a name="cl-3523"></a>msgid "Invalid image ID"
|
8359 |
-
<a name="cl-3524"></a>msgstr "Värää kuvan ID"
|
8360 |
-
<a name="cl-3525"></a>
|
8361 |
-
<a name="cl-3526"></a>#: ../lib/xmlrpc.php:278 ../lib/xmlrpc.php:330
|
8362 |
-
<a name="cl-3527"></a>msgid "Sorry, you must be able to edit this image"
|
8363 |
-
<a name="cl-3528"></a>msgstr "Sori, sinulla ei ole oikeuksia tämän kuvan muokkaukseen."
|
8364 |
-
<a name="cl-3529"></a>
|
8365 |
-
<a name="cl-3530"></a>#: ../lib/xmlrpc.php:336
|
8366 |
-
<a name="cl-3531"></a>msgid "Sorry, could not update the image"
|
8367 |
-
<a name="cl-3532"></a>msgstr "Kuvan päivitys ei onnistunut."
|
8368 |
-
<a name="cl-3533"></a>
|
8369 |
-
<a name="cl-3534"></a>#: ../lib/xmlrpc.php:372 ../lib/xmlrpc.php:604 ../lib/xmlrpc.php:704
|
8370 |
-
<a name="cl-3535"></a>#: ../lib/xmlrpc.php:739
|
8371 |
-
<a name="cl-3536"></a>msgid "Sorry, you must be able to manage galleries"
|
8372 |
-
<a name="cl-3537"></a>msgstr "Sori, sinulla ei ole oikeuksia gallerioiden muokkaukseen."
|
8373 |
-
<a name="cl-3538"></a>
|
8374 |
-
<a name="cl-3539"></a>#: ../lib/xmlrpc.php:378
|
8375 |
-
<a name="cl-3540"></a>msgid "Sorry, could not create the gallery"
|
8376 |
-
<a name="cl-3541"></a>msgstr "Gallerian luonti ei onnistunut."
|
8377 |
-
<a name="cl-3542"></a>
|
8378 |
-
<a name="cl-3543"></a>#: ../lib/xmlrpc.php:421 ../lib/xmlrpc.php:601
|
8379 |
-
<a name="cl-3544"></a>msgid "Invalid gallery ID"
|
8380 |
-
<a name="cl-3545"></a>msgstr "Väärä gallerian ID"
|
8381 |
-
<a name="cl-3546"></a>
|
8382 |
-
<a name="cl-3547"></a>#: ../lib/xmlrpc.php:424
|
8383 |
-
<a name="cl-3548"></a>msgid "Sorry, you must be able to manage this gallery"
|
8384 |
-
<a name="cl-3549"></a>msgstr "Sori, sinulla ei ole oikeuksia tämän gallerian muokkaukseen."
|
8385 |
-
<a name="cl-3550"></a>
|
8386 |
-
<a name="cl-3551"></a>#: ../lib/xmlrpc.php:430
|
8387 |
-
<a name="cl-3552"></a>msgid "Sorry, could not update the gallery"
|
8388 |
-
<a name="cl-3553"></a>msgstr "Gallerian päivitys ei onnistunut."
|
8389 |
-
<a name="cl-3554"></a>
|
8390 |
-
<a name="cl-3555"></a>#: ../lib/xmlrpc.php:470 ../lib/xmlrpc.php:522 ../lib/xmlrpc.php:564
|
8391 |
-
<a name="cl-3556"></a>#: ../lib/xmlrpc.php:637 ../lib/xmlrpc.php:671
|
8392 |
-
<a name="cl-3557"></a>msgid "Sorry, you must be able to manage albums"
|
8393 |
-
<a name="cl-3558"></a>msgstr "Sori, sinulla ei ole oikeuksia albumien muokkaukseen."
|
8394 |
-
<a name="cl-3559"></a>
|
8395 |
-
<a name="cl-3560"></a>#: ../lib/xmlrpc.php:476
|
8396 |
-
<a name="cl-3561"></a>msgid "Sorry, could not create the album"
|
8397 |
-
<a name="cl-3562"></a>msgstr "Albumin luonti ei onnistunut."
|
8398 |
-
<a name="cl-3563"></a>
|
8399 |
-
<a name="cl-3564"></a>#: ../lib/xmlrpc.php:519 ../lib/xmlrpc.php:561
|
8400 |
-
<a name="cl-3565"></a>msgid "Invalid album ID"
|
8401 |
-
<a name="cl-3566"></a>msgstr "Väärä albumin ID"
|
8402 |
-
<a name="cl-3567"></a>
|
8403 |
-
<a name="cl-3568"></a>#: ../lib/xmlrpc.php:528
|
8404 |
-
<a name="cl-3569"></a>msgid "Sorry, could not update the album"
|
8405 |
-
<a name="cl-3570"></a>msgstr "Albumin päivitys ei onnistunut"
|
8406 |
-
<a name="cl-3571"></a>
|
8407 |
-
<a name="cl-3572"></a>#: ../nggallery.php:122
|
8408 |
-
<a name="cl-3573"></a>msgid ""
|
8409 |
-
<a name="cl-3574"></a>"<strong>Translation by : </strong><a target=\"_blank\" href=\"http://"
|
8410 |
-
<a name="cl-3575"></a>"alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\">See here</a>"
|
8411 |
-
<a name="cl-3576"></a>msgstr ""
|
8412 |
-
<a name="cl-3577"></a>"<strong>Kääntänyt : </strong><a target=\"_blank\" href=\"http://alexrabe.de/"
|
8413 |
-
<a name="cl-3578"></a>"wordpress-plugins/wordtube/translation-of-plugins/\">Vesa Tiirikainen</a>"
|
8414 |
-
<a name="cl-3579"></a>
|
8415 |
-
<a name="cl-3580"></a>#: ../nggallery.php:123
|
8416 |
-
<a name="cl-3581"></a>msgid ""
|
8417 |
-
<a name="cl-3582"></a>"<strong>This translation is not yet updated for Version 1.9.0</strong>. If "
|
8418 |
-
<a name="cl-3583"></a>"you would like to help with translation, download the current po from the "
|
8419 |
-
<a name="cl-3584"></a>"plugin folder and read <a href=\"http://alexrabe.de/wordpress-plugins/"
|
8420 |
-
<a name="cl-3585"></a>"wordtube/translation-of-plugins/\">here</a> how you can translate the plugin."
|
8421 |
-
<a name="cl-3586"></a>msgstr ""
|
8422 |
-
<a name="cl-3587"></a>"<strong>Käännös voi olla puutteellinen, joten lähettäkää korjausehdotuksenne "
|
8423 |
-
<a name="cl-3588"></a>"kääntäjälle</strong>. Jos haluat auttaa käännöksissä, lataa voimassa oleva "
|
8424 |
-
<a name="cl-3589"></a>"po-tiedosto lisäosan hakemistosta ja lue <a href=\"http://alexrabe.de/"
|
8425 |
-
<a name="cl-3590"></a>"wordpress-plugins/wordtube/translation-of-plugins/\">here</a> miten lisäosan "
|
8426 |
-
<a name="cl-3591"></a>"voi kääntää.</p>"
|
8427 |
-
<a name="cl-3592"></a>
|
8428 |
-
<a name="cl-3593"></a>#: ../nggallery.php:232
|
8429 |
-
<a name="cl-3594"></a>msgid ""
|
8430 |
-
<a name="cl-3595"></a>"Sorry, NextCellent Gallery works only with a Memory Limit of 16 MB or higher"
|
8431 |
-
<a name="cl-3596"></a>msgstr "NextCellent Gallery vaatii web-palvelimella muistia vähintään 16MB "
|
8432 |
-
<a name="cl-3597"></a>
|
8433 |
-
<a name="cl-3598"></a>#: ../nggallery.php:261
|
8434 |
-
<a name="cl-3599"></a>msgid "Picture tag"
|
8435 |
-
<a name="cl-3600"></a>msgstr "Kuvan tägi"
|
8436 |
-
<a name="cl-3601"></a>
|
8437 |
-
<a name="cl-3602"></a>#: ../nggallery.php:262
|
8438 |
-
<a name="cl-3603"></a>msgid "Picture tag: %2$l."
|
8439 |
-
<a name="cl-3604"></a>msgstr "Kuvan tägi: %2$l."
|
8440 |
-
<a name="cl-3605"></a>
|
8441 |
-
<a name="cl-3606"></a>#: ../nggallery.php:263
|
8442 |
-
<a name="cl-3607"></a>msgid "Separate picture tags with commas."
|
8443 |
-
<a name="cl-3608"></a>msgstr "Erittele kuvien tägit pilkuilla."
|
8444 |
-
<a name="cl-3609"></a>
|
8445 |
-
<a name="cl-3610"></a>#: ../nggallery.php:397
|
8446 |
-
<a name="cl-3611"></a>msgid "loading"
|
8447 |
-
<a name="cl-3612"></a>msgstr "lataan..."
|
8448 |
-
<a name="cl-3613"></a>
|
8449 |
-
<a name="cl-3614"></a>#: ../nggallery.php:581
|
8450 |
-
<a name="cl-3615"></a>msgid "Get help"
|
8451 |
-
<a name="cl-3616"></a>msgstr "Apua"
|
8452 |
-
<a name="cl-3617"></a>
|
8453 |
-
<a name="cl-3618"></a>#: ../nggallery.php:663
|
8454 |
-
<a name="cl-3619"></a>msgid "Sorry, NextCellent Gallery is deactivated: NextGEN version "
|
8455 |
-
<a name="cl-3620"></a>msgstr "Sori, NextCellent Gallery on deaktivoitu: NextGEN versio"
|
8456 |
-
<a name="cl-3621"></a>
|
8457 |
-
<a name="cl-3622"></a>#: ../nggfunctions.php:42
|
8458 |
-
<a name="cl-3623"></a>msgid ""
|
8459 |
-
<a name="cl-3624"></a>"The <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</a> "
|
8460 |
-
<a name="cl-3625"></a>"and <a href=\"http://www.mozilla.com/firefox/\">a browser with Javascript "
|
8461 |
-
<a name="cl-3626"></a>"support</a> are needed."
|
8462 |
-
<a name="cl-3627"></a>msgstr ""
|
8463 |
-
<a name="cl-3628"></a>"Tarvitset <a href=\"http://www.macromedia.com/go/getflashplayer\">Adobe "
|
8464 |
-
<a name="cl-3629"></a>"Flash Playerin</a> ja <a href=\"http://www.mozilla.com/firefox/\">selaimen "
|
8465 |
-
<a name="cl-3630"></a>"Javascript -tuella </a>."
|
8466 |
-
<a name="cl-3631"></a>
|
8467 |
-
<a name="cl-3632"></a>#: ../nggfunctions.php:453
|
8468 |
-
<a name="cl-3633"></a>msgid "[Album not found]"
|
8469 |
-
<a name="cl-3634"></a>msgstr "[Albumia ei löydy]"
|
8470 |
-
<a name="cl-3635"></a>
|
8471 |
-
<a name="cl-3636"></a>#: ../nggfunctions.php:782
|
8472 |
-
<a name="cl-3637"></a>msgid "[SinglePic not found]"
|
8473 |
-
<a name="cl-3638"></a>msgstr "[Kuvaa ei löydy]"
|
8474 |
-
<a name="cl-3639"></a>
|
8475 |
-
<a name="cl-3640"></a>#: ../nggfunctions.php:918
|
8476 |
-
<a name="cl-3641"></a>msgid "Related images for"
|
8477 |
-
<a name="cl-3642"></a>msgstr "Liittyvät kuvat "
|
8478 |
-
<a name="cl-3643"></a>
|
8479 |
-
<a name="cl-3644"></a>#: ../view/album-compact.php:32 ../view/album-extend.php:30
|
8480 |
-
<a name="cl-3645"></a>msgid "Photos"
|
8481 |
-
<a name="cl-3646"></a>msgstr "Valokuvaa"
|
8482 |
-
<a name="cl-3647"></a>
|
8483 |
-
<a name="cl-3648"></a>#: ../view/gallery-caption.php:32 ../view/gallery.php:32
|
8484 |
-
<a name="cl-3649"></a>#: ../widgets/media-rss-widget.php:112
|
8485 |
-
<a name="cl-3650"></a>msgid "[View with PicLens]"
|
8486 |
-
<a name="cl-3651"></a>msgstr "[Katso PicLensillä]"
|
8487 |
-
<a name="cl-3652"></a>
|
8488 |
-
<a name="cl-3653"></a>#: ../view/imagebrowser-caption.php:26 ../view/imagebrowser-exif.php:30
|
8489 |
-
<a name="cl-3654"></a>#: ../view/imagebrowser.php:26
|
8490 |
-
<a name="cl-3655"></a>msgid "Back"
|
8491 |
-
<a name="cl-3656"></a>msgstr "Edellinen"
|
8492 |
-
<a name="cl-3657"></a>
|
8493 |
-
<a name="cl-3658"></a>#: ../view/imagebrowser-caption.php:29 ../view/imagebrowser-exif.php:33
|
8494 |
-
<a name="cl-3659"></a>#: ../view/imagebrowser.php:29
|
8495 |
-
<a name="cl-3660"></a>msgid "Next"
|
8496 |
-
<a name="cl-3661"></a>msgstr "Seuraava "
|
8497 |
-
<a name="cl-3662"></a>
|
8498 |
-
<a name="cl-3663"></a>#: ../view/imagebrowser-caption.php:31 ../view/imagebrowser-exif.php:35
|
8499 |
-
<a name="cl-3664"></a>#: ../view/imagebrowser.php:31
|
8500 |
-
<a name="cl-3665"></a>msgid "of"
|
8501 |
-
<a name="cl-3666"></a>msgstr " / "
|
8502 |
-
<a name="cl-3667"></a>
|
8503 |
-
<a name="cl-3668"></a>#: ../view/imagebrowser-exif.php:38
|
8504 |
-
<a name="cl-3669"></a>msgid "Meta data"
|
8505 |
-
<a name="cl-3670"></a>msgstr "Metadata"
|
8506 |
-
<a name="cl-3671"></a>
|
8507 |
-
<a name="cl-3672"></a>#: ../view/imagebrowser-exif.php:42
|
8508 |
-
<a name="cl-3673"></a>msgid "Camera / Type"
|
8509 |
-
<a name="cl-3674"></a>msgstr "Kamera / tyyppi"
|
8510 |
-
<a name="cl-3675"></a>
|
8511 |
-
<a name="cl-3676"></a>#: ../view/imagebrowser-exif.php:50
|
8512 |
-
<a name="cl-3677"></a>msgid "Focal Length"
|
8513 |
-
<a name="cl-3678"></a>msgstr "Polttoväli"
|
8514 |
-
<a name="cl-3679"></a>
|
8515 |
-
<a name="cl-3680"></a>#: ../widgets/media-rss-widget.php:19
|
8516 |
-
<a name="cl-3681"></a>msgid "Widget that displays Media RSS links for NextCellent Gallery."
|
8517 |
-
<a name="cl-3682"></a>msgstr "Vimpain, joka näyttä Media RSS -linkit NextCellent Galleryyn."
|
8518 |
-
<a name="cl-3683"></a>
|
8519 |
-
<a name="cl-3684"></a>#: ../widgets/media-rss-widget.php:20
|
8520 |
-
<a name="cl-3685"></a>msgid "NextCellent Media RSS"
|
8521 |
-
<a name="cl-3686"></a>msgstr "NextCellent Media RSS "
|
8522 |
-
<a name="cl-3687"></a>
|
8523 |
-
<a name="cl-3688"></a>#: ../widgets/media-rss-widget.php:68
|
8524 |
-
<a name="cl-3689"></a>msgid "Media RSS"
|
8525 |
-
<a name="cl-3690"></a>msgstr "Media RSS"
|
8526 |
-
<a name="cl-3691"></a>
|
8527 |
-
<a name="cl-3692"></a>#: ../widgets/media-rss-widget.php:69
|
8528 |
-
<a name="cl-3693"></a>msgid "Link to the main image feed"
|
8529 |
-
<a name="cl-3694"></a>msgstr "Linkki kuvien syötteeseen"
|
8530 |
-
<a name="cl-3695"></a>
|
8531 |
-
<a name="cl-3696"></a>#: ../widgets/media-rss-widget.php:79 ../widgets/widgets.php:122
|
8532 |
-
<a name="cl-3697"></a>#: ../widgets/widgets.php:211
|
8533 |
-
<a name="cl-3698"></a>msgid "Title:"
|
8534 |
-
<a name="cl-3699"></a>msgstr "Otsikko:"
|
8535 |
-
<a name="cl-3700"></a>
|
8536 |
-
<a name="cl-3701"></a>#: ../widgets/media-rss-widget.php:84
|
8537 |
-
<a name="cl-3702"></a>msgid "Show Media RSS icon"
|
8538 |
-
<a name="cl-3703"></a>msgstr "Näytä Media RSS -kuvake"
|
8539 |
-
<a name="cl-3704"></a>
|
8540 |
-
<a name="cl-3705"></a>#: ../widgets/media-rss-widget.php:88
|
8541 |
-
<a name="cl-3706"></a>msgid "Show the Media RSS link"
|
8542 |
-
<a name="cl-3707"></a>msgstr "Näytä Media RSS -linkki"
|
8543 |
-
<a name="cl-3708"></a>
|
8544 |
-
<a name="cl-3709"></a>#: ../widgets/media-rss-widget.php:91
|
8545 |
-
<a name="cl-3710"></a>msgid "Text for Media RSS link:"
|
8546 |
-
<a name="cl-3711"></a>msgstr "Teksti Media RSS -linkkiin."
|
8547 |
-
<a name="cl-3712"></a>
|
8548 |
-
<a name="cl-3713"></a>#: ../widgets/media-rss-widget.php:95
|
8549 |
-
<a name="cl-3714"></a>msgid "Tooltip text for Media RSS link:"
|
8550 |
-
<a name="cl-3715"></a>msgstr "Vinkkiteksti Media RSS -linkkiin."
|
8551 |
-
<a name="cl-3716"></a>
|
8552 |
-
<a name="cl-3717"></a>#: ../widgets/widgets.php:22
|
8553 |
-
<a name="cl-3718"></a>msgid "Show a NextCellent Gallery Slideshow"
|
8554 |
-
<a name="cl-3719"></a>msgstr "Näytä NextCellent Gallery diasarja"
|
8555 |
-
<a name="cl-3720"></a>
|
8556 |
-
<a name="cl-3721"></a>#: ../widgets/widgets.php:23
|
8557 |
-
<a name="cl-3722"></a>msgid "NextCellent Slideshow"
|
8558 |
-
<a name="cl-3723"></a>msgstr "NextCellent diasarja"
|
8559 |
-
<a name="cl-3724"></a>
|
8560 |
-
<a name="cl-3725"></a>#: ../widgets/widgets.php:64
|
8561 |
-
<a name="cl-3726"></a>msgid ""
|
8562 |
-
<a name="cl-3727"></a>"<a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash "
|
8563 |
-
<a name="cl-3728"></a>"Player</a> to see the slideshow."
|
8564 |
-
<a name="cl-3729"></a>msgstr ""
|
8565 |
-
<a name="cl-3730"></a>"<a href=\"http://www.macromedia.com/go/getflashplayer\">Lataa Flash Player</"
|
8566 |
-
<a name="cl-3731"></a>"a>, nähdäksesi diasarjan."
|
8567 |
-
<a name="cl-3732"></a>
|
8568 |
-
<a name="cl-3733"></a>#: ../widgets/widgets.php:126
|
8569 |
-
<a name="cl-3734"></a>msgid "Select Gallery:"
|
8570 |
-
<a name="cl-3735"></a>msgstr "Valitse galleria:"
|
8571 |
-
<a name="cl-3736"></a>
|
8572 |
-
<a name="cl-3737"></a>#: ../widgets/widgets.php:128
|
8573 |
-
<a name="cl-3738"></a>msgid "All images"
|
8574 |
-
<a name="cl-3739"></a>msgstr "Kaikki kuvat"
|
8575 |
-
<a name="cl-3740"></a>
|
8576 |
-
<a name="cl-3741"></a>#: ../widgets/widgets.php:142 ../widgets/widgets.php:235
|
8577 |
-
<a name="cl-3742"></a>msgid "Width:"
|
8578 |
-
<a name="cl-3743"></a>msgstr "Leveys:"
|
8579 |
-
<a name="cl-3744"></a>
|
8580 |
-
<a name="cl-3745"></a>#: ../widgets/widgets.php:145 ../widgets/widgets.php:238
|
8581 |
-
<a name="cl-3746"></a>msgid "Height:"
|
8582 |
-
<a name="cl-3747"></a>msgstr "Korkeus:"
|
8583 |
-
<a name="cl-3748"></a>
|
8584 |
-
<a name="cl-3749"></a>#: ../widgets/widgets.php:170
|
8585 |
-
<a name="cl-3750"></a>msgid "Add recent or random images from the galleries"
|
8586 |
-
<a name="cl-3751"></a>msgstr "Lisää uusimmat tai satunnaiset kuvat gallerioista"
|
8587 |
-
<a name="cl-3752"></a>
|
8588 |
-
<a name="cl-3753"></a>#: ../widgets/widgets.php:171
|
8589 |
-
<a name="cl-3754"></a>#, fuzzy
|
8590 |
-
<a name="cl-3755"></a>msgid "NextCellent Widget"
|
8591 |
-
<a name="cl-3756"></a>msgstr "NextCellent -vimpain"
|
8592 |
-
<a name="cl-3757"></a>
|
8593 |
-
<a name="cl-3758"></a>#: ../widgets/widgets.php:215
|
8594 |
-
<a name="cl-3759"></a>#, fuzzy
|
8595 |
-
<a name="cl-3760"></a>msgid "Show:"
|
8596 |
-
<a name="cl-3761"></a>msgstr "Näytä :"
|
8597 |
-
<a name="cl-3762"></a>
|
8598 |
-
<a name="cl-3763"></a>#: ../widgets/widgets.php:219
|
8599 |
-
<a name="cl-3764"></a>msgid "Original images"
|
8600 |
-
<a name="cl-3765"></a>msgstr "Alkuperäiskuvat"
|
8601 |
-
<a name="cl-3766"></a>
|
8602 |
-
<a name="cl-3767"></a>#: ../widgets/widgets.php:227
|
8603 |
-
<a name="cl-3768"></a>msgid "recent added "
|
8604 |
-
<a name="cl-3769"></a>msgstr "viimeksi lisätyt"
|
8605 |
-
<a name="cl-3770"></a>
|
8606 |
-
<a name="cl-3771"></a>#: ../widgets/widgets.php:231
|
8607 |
-
<a name="cl-3772"></a>msgid "Enable IE8 Web Slices"
|
8608 |
-
<a name="cl-3773"></a>msgstr "Aktivoi IE8 Web Slices"
|
8609 |
-
<a name="cl-3774"></a>
|
8610 |
-
<a name="cl-3775"></a>#: ../widgets/widgets.php:243
|
8611 |
-
<a name="cl-3776"></a>#, fuzzy
|
8612 |
-
<a name="cl-3777"></a>msgid "Select:"
|
8613 |
-
<a name="cl-3778"></a>msgstr "Valitse :"
|
8614 |
-
<a name="cl-3779"></a>
|
8615 |
-
<a name="cl-3780"></a>#: ../widgets/widgets.php:245
|
8616 |
-
<a name="cl-3781"></a>msgid "All galleries"
|
8617 |
-
<a name="cl-3782"></a>msgstr "Kaikki galleriat"
|
8618 |
-
<a name="cl-3783"></a>
|
8619 |
-
<a name="cl-3784"></a>#: ../widgets/widgets.php:246
|
8620 |
-
<a name="cl-3785"></a>msgid "Only which are not listed"
|
8621 |
-
<a name="cl-3786"></a>msgstr "Vain listaamattomat"
|
8622 |
-
<a name="cl-3787"></a>
|
8623 |
-
<a name="cl-3788"></a>#: ../widgets/widgets.php:247
|
8624 |
-
<a name="cl-3789"></a>msgid "Only which are listed"
|
8625 |
-
<a name="cl-3790"></a>msgstr "Vain listatut"
|
8626 |
-
<a name="cl-3791"></a>
|
8627 |
-
<a name="cl-3792"></a>#: ../widgets/widgets.php:251
|
8628 |
-
<a name="cl-3793"></a>#, fuzzy
|
8629 |
-
<a name="cl-3794"></a>msgid "Gallery ID:"
|
8630 |
-
<a name="cl-3795"></a>msgstr "Galleria ID :"
|
8631 |
-
<a name="cl-3796"></a>
|
8632 |
-
<a name="cl-3797"></a>#: ../widgets/widgets.php:253
|
8633 |
-
<a name="cl-3798"></a>msgid "Gallery IDs, separated by commas."
|
8634 |
-
<a name="cl-3799"></a>msgstr "Galleria IDt, erotettuna pilkuilla."
|
8635 |
-
<a name="cl-3800"></a>
|
8636 |
-
<a name="cl-3801"></a>#: ../xml/media-rss.php:50
|
8637 |
-
<a name="cl-3802"></a>msgid "No galleries have been yet created."
|
8638 |
-
<a name="cl-3803"></a>msgstr "Yhtään galleriaa ei ole vielä luotu."
|
8639 |
-
<a name="cl-3804"></a>
|
8640 |
-
<a name="cl-3805"></a>#: ../xml/media-rss.php:69
|
8641 |
-
<a name="cl-3806"></a>#, php-format
|
8642 |
-
<a name="cl-3807"></a>msgid "The gallery ID=%s does not exist."
|
8643 |
-
<a name="cl-3808"></a>msgstr "Galleria ID=%s ei ole olemassa."
|
8644 |
-
<a name="cl-3809"></a>
|
8645 |
-
<a name="cl-3810"></a>#: ../xml/media-rss.php:100
|
8646 |
-
<a name="cl-3811"></a>msgid "No album ID has been provided as parameter"
|
8647 |
-
<a name="cl-3812"></a>msgstr "Mitään albumi ID:tä ei ole annettu parametrina"
|
8648 |
-
<a name="cl-3813"></a>
|
8649 |
-
<a name="cl-3814"></a>#: ../xml/media-rss.php:108
|
8650 |
-
<a name="cl-3815"></a>#, php-format
|
8651 |
-
<a name="cl-3816"></a>msgid "The album ID=%s does not exist."
|
8652 |
-
<a name="cl-3817"></a>msgstr "Albumi ID %s ei ole olemassa"
|
8653 |
-
<a name="cl-3818"></a>
|
8654 |
-
<a name="cl-3819"></a>#: ../xml/media-rss.php:115
|
8655 |
-
<a name="cl-3820"></a>msgid "Invalid MediaRSS command"
|
8656 |
-
<a name="cl-3821"></a>msgstr "Virheellinen Media RSS -komento"
|
8657 |
-
<a name="cl-3822"></a>
|
8658 |
-
<a name="cl-3823"></a>#~ msgid "Choose files to upload"
|
8659 |
-
<a name="cl-3824"></a>#~ msgstr "Valitse ladattavat tiedostot"
|
8660 |
-
<a name="cl-3825"></a>
|
8661 |
-
<a name="cl-3826"></a>#~ msgid ""
|
8662 |
-
<a name="cl-3827"></a>#~ "The batch upload requires Adobe Flash 10, disable it if you have problems"
|
8663 |
-
<a name="cl-3828"></a>#~ msgstr ""
|
8664 |
-
<a name="cl-3829"></a>#~ "Flash-lataus vaatii Adbode Flash 10:n, ota pois käytöstä, jos sinulla on "
|
8665 |
-
<a name="cl-3830"></a>#~ "ongelmia."
|
8666 |
-
<a name="cl-3831"></a>
|
8667 |
-
<a name="cl-3832"></a>#~ msgid "Disable flash upload"
|
8668 |
-
<a name="cl-3833"></a>#~ msgstr "Ota flash-lataus pois käytöstä"
|
8669 |
-
<a name="cl-3834"></a>
|
8670 |
-
<a name="cl-3835"></a>#~ msgid "Upload multiple files at once by ctrl/shift-selecting in dialog"
|
8671 |
-
<a name="cl-3836"></a>#~ msgstr ""
|
8672 |
-
<a name="cl-3837"></a>#~ "Lataa useita tiedostoja kerralla valitsemalla ctrl/shift -näppäimin."
|
8673 |
-
<a name="cl-3838"></a>
|
8674 |
-
<a name="cl-3839"></a>#~ msgid "Enable flash based upload"
|
8675 |
-
<a name="cl-3840"></a>#~ msgstr "Ota Flash-lataus käyttöön"
|
8676 |
-
<a name="cl-3841"></a>
|
8677 |
-
<a name="cl-3842"></a>#~ msgid "Update Successfully"
|
8678 |
-
<a name="cl-3843"></a>#~ msgstr "Lataus onnistuui"
|
8679 |
-
<a name="cl-3844"></a>
|
8680 |
-
<a name="cl-3845"></a>#~ msgid "Manage Albums"
|
8681 |
-
<a name="cl-3846"></a>#~ msgstr "Hallitse albumeita"
|
8682 |
-
<a name="cl-3847"></a>
|
8683 |
-
<a name="cl-3848"></a>#~ msgid "Manage Galleries"
|
8684 |
-
<a name="cl-3849"></a>#~ msgstr "Hallitse gallerioita"
|
8685 |
-
<a name="cl-3850"></a>
|
8686 |
-
<a name="cl-3851"></a>#~ msgid "Bulk actions"
|
8687 |
-
<a name="cl-3852"></a>#~ msgstr "Massatoiminnot"
|
8688 |
-
<a name="cl-3853"></a>
|
8689 |
-
<a name="cl-3854"></a>#~ msgid "Width x height (in pixel). NextCellent Gallery will keep ratio size"
|
8690 |
-
<a name="cl-3855"></a>#~ msgstr ""
|
8691 |
-
<a name="cl-3856"></a>#~ "Leveys x korkeus (pikseleinä). NextGEN Gallery säilyttää mittasuhteet"
|
8692 |
-
<a name="cl-3857"></a>
|
8693 |
-
<a name="cl-3858"></a>#~ msgid "Ignore the aspect ratio, no portrait thumbnails"
|
8694 |
-
<a name="cl-3859"></a>#~ msgstr "Älä huomioi mittasuhteita, ei esikatselukuvia pystyssä"
|
8695 |
-
<a name="cl-3860"></a>
|
8696 |
-
<a name="cl-3861"></a>#~ msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size"
|
8697 |
-
<a name="cl-3862"></a>#~ msgstr ""
|
8698 |
-
<a name="cl-3863"></a>#~ "Leveys x korkeus (pikseleinä). NextCellent Gallery säilyttää sivusuhteen"
|
8699 |
-
<a name="cl-3864"></a>
|
8700 |
-
<a name="cl-3865"></a>#~ msgid "Tags (comma separated list)"
|
8701 |
-
<a name="cl-3866"></a>#~ msgstr "Tägit (pilkuilla erotettu lista)"
|
8702 |
-
<a name="cl-3867"></a>
|
8703 |
-
<a name="cl-3868"></a>#~ msgid "Thanks to all donators..."
|
8704 |
-
<a name="cl-3869"></a>#~ msgstr "Kiitos kaikille lahjoittajille..."
|
8705 |
-
<a name="cl-3870"></a>
|
8706 |
-
<a name="cl-3871"></a>#~ msgid "View all"
|
8707 |
-
<a name="cl-3872"></a>#~ msgstr "Katso kaikki"
|
8708 |
-
<a name="cl-3873"></a>
|
8709 |
-
<a name="cl-3874"></a>#~ msgid "Main NextCellent Gallery overview"
|
8710 |
-
<a name="cl-3875"></a>#~ msgstr "NextCellent Gallery yleisnäkymä"
|
8711 |
-
<a name="cl-3876"></a>
|
8712 |
-
<a name="cl-3877"></a>#~ msgid "Meta Data"
|
8713 |
-
<a name="cl-3878"></a>#~ msgstr "Metadata"
|
8714 |
-
<a name="cl-3879"></a>
|
8715 |
-
<a name="cl-3880"></a>#~ msgid "Tag"
|
8716 |
-
<a name="cl-3881"></a>#~ msgstr "Tägi"
|
8717 |
-
<a name="cl-3882"></a>
|
8718 |
-
<a name="cl-3883"></a>#~ msgid "Editing <strong>%s</strong>"
|
8719 |
-
<a name="cl-3884"></a>#~ msgstr "Muokataan <strong>%s</strong>"
|
8720 |
-
<a name="cl-3885"></a>
|
8721 |
-
<a name="cl-3886"></a>#~ msgid "Browsing <strong>%s</strong>"
|
8722 |
-
<a name="cl-3887"></a>#~ msgstr "Selataan <strong>%s</strong>"
|
8723 |
-
<a name="cl-3888"></a>
|
8724 |
-
<a name="cl-3889"></a>#~ msgid ""
|
8725 |
-
<a name="cl-3890"></a>#~ "Tip: Copy your stylesheet (nggallery.css) to your theme folder, so it "
|
8726 |
-
<a name="cl-3891"></a>#~ "will be not lost during a upgrade"
|
8727 |
-
<a name="cl-3892"></a>#~ msgstr ""
|
8728 |
-
<a name="cl-3893"></a>#~ "Vinkki: kopioi tyylitiedostosi (nggallery.css) teemahakemistoosi, niin se "
|
8729 |
-
<a name="cl-3894"></a>#~ "ei häviä seuraavan päivityksen yhteydessä."
|
8730 |
-
<a name="cl-3895"></a>
|
8731 |
-
<a name="cl-3896"></a>#~ msgid "Manage Image Tags"
|
8732 |
-
<a name="cl-3897"></a>#~ msgstr "Hallitse kuvien tägejä"
|
8733 |
-
<a name="cl-3898"></a>
|
8734 |
-
<a name="cl-3899"></a>#~ msgid "Show as"
|
8735 |
-
<a name="cl-3900"></a>#~ msgstr "Näytä"
|
8736 |
-
<a name="cl-3901"></a>
|
8737 |
-
<a name="cl-3902"></a>#~ msgid "Image list"
|
8738 |
-
<a name="cl-3903"></a>#~ msgstr "Kuvalista"
|
8739 |
-
<a name="cl-3904"></a>
|
8740 |
-
<a name="cl-3905"></a>#~ msgid "Width x Height"
|
8741 |
-
<a name="cl-3906"></a>#~ msgstr "Leveys x korkeus"
|
8742 |
-
<a name="cl-3907"></a>
|
8743 |
-
<a name="cl-3908"></a>#~ msgid "Float"
|
8744 |
-
<a name="cl-3909"></a>#~ msgstr "Kelluta"
|
8745 |
-
<a name="cl-3910"></a>
|
8746 |
-
<a name="cl-3911"></a>#~ msgid "Title :"
|
8747 |
-
<a name="cl-3912"></a>#~ msgstr "Otsikko :"
|
8748 |
-
<a name="cl-3913"></a>
|
8749 |
-
<a name="cl-3914"></a>#~ msgid "Width x Height :"
|
8750 |
-
<a name="cl-3915"></a>#~ msgstr "Leveys x korkeus:"
|
8751 |
-
</pre></div></td></tr></table>
|
8752 |
-
|
8753 |
-
</div>
|
8754 |
-
|
8755 |
-
|
8756 |
-
|
8757 |
-
|
8758 |
-
</div>
|
8759 |
-
</div>
|
8760 |
-
|
8761 |
-
|
8762 |
-
|
8763 |
-
|
8764 |
-
|
8765 |
-
|
8766 |
-
<script id="branch-dialog-template" type="text/html">
|
8767 |
-
|
8768 |
-
|
8769 |
-
<div class="tabbed-filter-widget branch-dialog">
|
8770 |
-
<div class="tabbed-filter">
|
8771 |
-
<input placeholder="Filter branches" class="filter-box" autosave="branch-dropdown-4335953" type="text">
|
8772 |
-
[[^ignoreTags]]
|
8773 |
-
<div class="aui-tabs horizontal-tabs aui-tabs-disabled filter-tabs">
|
8774 |
-
<ul class="tabs-menu">
|
8775 |
-
<li class="menu-item active-tab"><a href="#branches">Branches</a></li>
|
8776 |
-
<li class="menu-item"><a href="#tags">Tags</a></li>
|
8777 |
-
</ul>
|
8778 |
-
</div>
|
8779 |
-
[[/ignoreTags]]
|
8780 |
-
</div>
|
8781 |
-
|
8782 |
-
<div class="tab-pane active-pane" id="branches" data-filter-placeholder="Filter branches">
|
8783 |
-
<ol class="filter-list">
|
8784 |
-
<li class="empty-msg">No matching branches</li>
|
8785 |
-
[[#branches]]
|
8786 |
-
|
8787 |
-
[[#hasMultipleHeads]]
|
8788 |
-
[[#heads]]
|
8789 |
-
<li class="comprev filter-item">
|
8790 |
-
<a class="pjax-trigger" href="/niknetniko/nextcellent/src/[[changeset]]/lang/nggallery-fi.po?at=[[safeName]]"
|
8791 |
-
title="[[name]]">
|
8792 |
-
[[name]] ([[shortChangeset]])
|
8793 |
-
</a>
|
8794 |
-
</li>
|
8795 |
-
[[/heads]]
|
8796 |
-
[[/hasMultipleHeads]]
|
8797 |
-
[[^hasMultipleHeads]]
|
8798 |
-
<li class="comprev filter-item">
|
8799 |
-
<a class="pjax-trigger" href="/niknetniko/nextcellent/src/[[changeset]]/lang/nggallery-fi.po?at=[[safeName]]" title="[[name]]">
|
8800 |
-
[[name]]
|
8801 |
-
</a>
|
8802 |
-
</li>
|
8803 |
-
[[/hasMultipleHeads]]
|
8804 |
-
|
8805 |
-
[[/branches]]
|
8806 |
-
</ol>
|
8807 |
-
</div>
|
8808 |
-
<div class="tab-pane" id="tags" data-filter-placeholder="Filter tags">
|
8809 |
-
<ol class="filter-list">
|
8810 |
-
<li class="empty-msg">No matching tags</li>
|
8811 |
-
[[#tags]]
|
8812 |
-
<li class="comprev filter-item">
|
8813 |
-
<a class="pjax-trigger" href="/niknetniko/nextcellent/src/[[changeset]]/lang/nggallery-fi.po?at=[[safeName]]" title="[[name]]">
|
8814 |
-
[[name]]
|
8815 |
-
</a>
|
8816 |
-
</li>
|
8817 |
-
[[/tags]]
|
8818 |
-
</ol>
|
8819 |
-
</div>
|
8820 |
-
|
8821 |
-
</div>
|
8822 |
-
|
8823 |
-
</script>
|
8824 |
-
|
8825 |
-
|
8826 |
-
|
8827 |
-
|
8828 |
-
</div>
|
8829 |
-
|
8830 |
-
|
8831 |
-
|
8832 |
-
<form id="file-search-form" action="#"
|
8833 |
-
|
8834 |
-
data-revision="1c1562ecb0e994fde9fba00d66844dddcda9c403"
|
8835 |
-
>
|
8836 |
-
<input type="text" id="file-search-query" class="loading">
|
8837 |
-
<div id="filtered-files"></div>
|
8838 |
-
<div class="tip"><em>Tip:</em> Filter by directory path e.g. <strong>/media app.js</strong> to search for public<strong>/media/app.js</strong>.</div>
|
8839 |
-
<div class="tip"><em>Tip:</em> Use camelCasing e.g. <strong>ProjME</strong> to search for <strong>ProjectModifiedE</strong>vent.java.</div>
|
8840 |
-
<div class="tip"><em>Tip:</em> Filter by extension type e.g. <strong>/repo .js</strong> to search for all <strong>.js</strong> files in the <strong>/repo</strong> directory.</div>
|
8841 |
-
<div class="tip"><em>Tip:</em> Separate your search with spaces e.g. <strong>/ssh pom.xml</strong> to search for src<strong>/ssh/pom.xml</strong>.</div>
|
8842 |
-
<div class="tip"><em>Tip:</em> Use ↑ and ↓ arrow keys to navigate and <strong>return</strong> to view the file.</div>
|
8843 |
-
<div class="tip mod-osx"><em>Tip:</em> You can also navigate files with <strong>Ctrl+j</strong> <em>(next)</em> and <strong>Ctrl+k</strong> <em>(previous)</em> and view the file with <strong>Ctrl+o</strong>.</div>
|
8844 |
-
<div class="tip mod-win"><em>Tip:</em> You can also navigate files with <strong>Alt+j</strong> <em>(next)</em> and <strong>Alt+k</strong> <em>(previous)</em> and view the file with <strong>Alt+o</strong>.</div>
|
8845 |
-
<script id="filtered-files-template" type="text/html">
|
8846 |
-
|
8847 |
-
|
8848 |
-
<table class="aui aui-table-interactive bb-list">
|
8849 |
-
<thead>
|
8850 |
-
<tr class="assistive">
|
8851 |
-
<th class="name">Filename</th>
|
8852 |
-
</tr>
|
8853 |
-
</thead>
|
8854 |
-
<tbody>
|
8855 |
-
[[#files]]
|
8856 |
-
<tr class="iterable-item">
|
8857 |
-
<td class="name [[#isDirectory]]directory[[/isDirectory]]">
|
8858 |
-
<span class="aui-icon aui-icon-small[[#isDirectory]] aui-iconfont-devtools-folder-closed[[/isDirectory]][[^isDirectory]] aui-iconfont-devtools-file[[/isDirectory]]"></span>
|
8859 |
-
<a href="/niknetniko/nextcellent/src/[[node]]/[[name]][[#branch]][[#isDirectory]]/[[/isDirectory]]?at=[[branch]][[/branch]]"
|
8860 |
-
title="[[name]]" class="execute" tabindex="-1">
|
8861 |
-
[[&highlightedName]]
|
8862 |
-
</a>
|
8863 |
-
</td>
|
8864 |
-
</tr>
|
8865 |
-
[[/files]]
|
8866 |
-
</tbody>
|
8867 |
-
</table>
|
8868 |
-
|
8869 |
-
</script>
|
8870 |
-
</form>
|
8871 |
-
|
8872 |
-
|
8873 |
-
|
8874 |
-
|
8875 |
-
|
8876 |
-
<script id="image-upload-template" type="text/html">
|
8877 |
-
|
8878 |
-
|
8879 |
-
<form id="upload-image" method="POST"
|
8880 |
-
action="/xhr/niknetniko/nextcellent/image-upload/">
|
8881 |
-
<input type='hidden' name='csrfmiddlewaretoken' value='6eiWi83QXDbmPKktlRgHcUTNwJGwWWJ9' />
|
8882 |
-
|
8883 |
-
<div class="drop-target">
|
8884 |
-
<p class="centered">Drag image here</p>
|
8885 |
-
</div>
|
8886 |
-
|
8887 |
-
|
8888 |
-
<div>
|
8889 |
-
<button class="aui-button click-target">Select an image</button>
|
8890 |
-
<input name="file" type="file" class="hidden file-target"
|
8891 |
-
accept="image/jpeg, image/gif, image/png" />
|
8892 |
-
<input type="submit" class="hidden">
|
8893 |
-
</div>
|
8894 |
-
</form>
|
8895 |
-
|
8896 |
-
|
8897 |
-
</script>
|
8898 |
-
|
8899 |
-
|
8900 |
-
</div>
|
8901 |
-
</div>
|
8902 |
-
</div>
|
8903 |
-
|
8904 |
-
</div>
|
8905 |
-
</div>
|
8906 |
-
|
8907 |
-
<footer id="footer" role="contentinfo">
|
8908 |
-
<section class="footer-body">
|
8909 |
-
|
8910 |
-
<ul>
|
8911 |
-
<li>
|
8912 |
-
<a class="support-ga" target="_blank"
|
8913 |
-
data-support-gaq-page="Blog"
|
8914 |
-
href="http://blog.bitbucket.org">Blog</a>
|
8915 |
-
</li>
|
8916 |
-
<li>
|
8917 |
-
<a class="support-ga" target="_blank"
|
8918 |
-
data-support-gaq-page="Home"
|
8919 |
-
href="/support">Support</a>
|
8920 |
-
</li>
|
8921 |
-
<li>
|
8922 |
-
<a class="support-ga"
|
8923 |
-
data-support-gaq-page="PlansPricing"
|
8924 |
-
href="/plans">Plans & pricing</a>
|
8925 |
-
</li>
|
8926 |
-
<li>
|
8927 |
-
<a class="support-ga" target="_blank"
|
8928 |
-
data-support-gaq-page="DocumentationHome"
|
8929 |
-
href="//confluence.atlassian.com/display/BITBUCKET">Documentation</a>
|
8930 |
-
</li>
|
8931 |
-
<li>
|
8932 |
-
<a class="support-ga" target="_blank"
|
8933 |
-
data-support-gaq-page="DocumentationAPI"
|
8934 |
-
href="//confluence.atlassian.com/x/IYBGDQ">API</a>
|
8935 |
-
</li>
|
8936 |
-
<li>
|
8937 |
-
<a class="support-ga" target="_blank"
|
8938 |
-
data-support-gaq-page="SiteStatus"
|
8939 |
-
href="http://status.bitbucket.org/">Server status</a>
|
8940 |
-
</li>
|
8941 |
-
<li>
|
8942 |
-
<a class="support-ga" id="meta-info"
|
8943 |
-
data-support-gaq-page="MetaInfo"
|
8944 |
-
href="#">Version info</a>
|
8945 |
-
</li>
|
8946 |
-
<li>
|
8947 |
-
<a class="support-ga" target="_blank"
|
8948 |
-
data-support-gaq-page="EndUserAgreement"
|
8949 |
-
href="//www.atlassian.com/end-user-agreement?utm_source=bitbucket&utm_medium=link&utm_campaign=footer">Terms of service</a>
|
8950 |
-
</li>
|
8951 |
-
<li>
|
8952 |
-
<a class="support-ga" target="_blank"
|
8953 |
-
data-support-gaq-page="PrivacyPolicy"
|
8954 |
-
href="//www.atlassian.com/company/privacy?utm_source=bitbucket&utm_medium=link&utm_campaign=footer">Privacy policy</a>
|
8955 |
-
</li>
|
8956 |
-
</ul>
|
8957 |
-
<div id="meta-info-content" style="display: none;">
|
8958 |
-
<ul>
|
8959 |
-
|
8960 |
-
|
8961 |
-
<li><a href="/account/user/wpgetready/"
|
8962 |
-
class="view-language-link">English</a></li>
|
8963 |
-
|
8964 |
-
|
8965 |
-
<li>
|
8966 |
-
<a class="support-ga" target="_blank"
|
8967 |
-
data-support-gaq-page="GitDocumentation"
|
8968 |
-
href="http://git-scm.com/">Git 1.8.5.2</a>
|
8969 |
-
</li>
|
8970 |
-
<li>
|
8971 |
-
<a class="support-ga" target="_blank"
|
8972 |
-
data-support-gaq-page="HgDocumentation"
|
8973 |
-
href="http://mercurial.selenic.com/">Mercurial 2.9</a>
|
8974 |
-
</li>
|
8975 |
-
<li>
|
8976 |
-
<a class="support-ga" target="_blank"
|
8977 |
-
data-support-gaq-page="DjangoDocumentation"
|
8978 |
-
href="https://www.djangoproject.com/">Django 1.6.5</a>
|
8979 |
-
</li>
|
8980 |
-
<li>
|
8981 |
-
<a class="support-ga" target="_blank"
|
8982 |
-
data-support-gaq-page="PythonDocumentation"
|
8983 |
-
href="http://www.python.org/">Python 2.7.3</a>
|
8984 |
-
</li>
|
8985 |
-
<li>
|
8986 |
-
<a class="support-ga" target="_blank"
|
8987 |
-
data-support-gaq-page="DeployedVersion"
|
8988 |
-
href="#">c5245c080d0b / f8a094b2aa66 @ app19</a>
|
8989 |
-
</li>
|
8990 |
-
</ul>
|
8991 |
-
</div>
|
8992 |
-
<ul class="atlassian-links">
|
8993 |
-
<li>
|
8994 |
-
<a id="atlassian-jira-link" target="_blank" title="Track everything – bugs, tasks, deadlines, code – and pull reports to stay informed."
|
8995 |
-
href="http://www.atlassian.com/software/jira?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">JIRA</a>
|
8996 |
-
</li>
|
8997 |
-
<li>
|
8998 |
-
<a id="atlassian-confluence-link" target="_blank" title="Content Creation, Collaboration & Knowledge Sharing for Teams."
|
8999 |
-
href="http://www.atlassian.com/software/confluence/overview/team-collaboration-software?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">Confluence</a>
|
9000 |
-
</li>
|
9001 |
-
<li>
|
9002 |
-
<a id="atlassian-bamboo-link" target="_blank" title="Continuous integration and deployment, release management."
|
9003 |
-
href="http://www.atlassian.com/software/bamboo/overview?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">Bamboo</a>
|
9004 |
-
</li>
|
9005 |
-
<li>
|
9006 |
-
<a id="atlassian-stash-link" target="_blank" title="Git repo management, behind your firewall and Enterprise-ready."
|
9007 |
-
href="http://www.atlassian.com/software/stash?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">Stash</a>
|
9008 |
-
</li>
|
9009 |
-
<li>
|
9010 |
-
<a id="atlassian-sourcetree-link" target="_blank" title="A free Git and Mercurial desktop client for Mac or Windows."
|
9011 |
-
href="http://www.sourcetreeapp.com/?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">SourceTree</a>
|
9012 |
-
</li>
|
9013 |
-
<li>
|
9014 |
-
<a id="atlassian-hipchat-link" target="_blank" title="Group chat and IM built for teams."
|
9015 |
-
href="http://www.hipchat.com/?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer">HipChat</a>
|
9016 |
-
</li>
|
9017 |
-
</ul>
|
9018 |
-
<div id="footer-logo">
|
9019 |
-
<a target="_blank" title="Bitbucket is developed by Atlassian in San Francisco."
|
9020 |
-
href="http://www.atlassian.com?utm_source=bitbucket&utm_medium=logo&utm_campaign=bitbucket_footer">Atlassian</a>
|
9021 |
-
</div>
|
9022 |
-
|
9023 |
-
|
9024 |
-
|
9025 |
-
<div data-modules="components/mentions/index">
|
9026 |
-
<script id="mention-result" type="text/html">
|
9027 |
-
|
9028 |
-
<div class="aui-avatar aui-avatar-small">
|
9029 |
-
<div class="aui-avatar-inner">
|
9030 |
-
<img src="[[avatar_url]]">
|
9031 |
-
</div>
|
9032 |
-
</div>
|
9033 |
-
[[#display_name]]
|
9034 |
-
<span class="display-name">[[&display_name]]</span> <small class="username">[[&username]]</small>
|
9035 |
-
[[/display_name]]
|
9036 |
-
[[^display_name]]
|
9037 |
-
<span class="username">[[&username]]</span>
|
9038 |
-
[[/display_name]]
|
9039 |
-
[[#is_teammate]][[^is_team]]
|
9040 |
-
<span class="aui-lozenge aui-lozenge-complete aui-lozenge-subtle">teammate</span>
|
9041 |
-
[[/is_team]][[/is_teammate]]
|
9042 |
-
|
9043 |
-
</script>
|
9044 |
-
<script id="mention-call-to-action" type="text/html">
|
9045 |
-
|
9046 |
-
[[^query]]
|
9047 |
-
<li class="bb-typeahead-item">Begin typing to search for a user</li>
|
9048 |
-
[[/query]]
|
9049 |
-
[[#query]]
|
9050 |
-
<li class="bb-typeahead-item">Continue typing to search for a user</li>
|
9051 |
-
[[/query]]
|
9052 |
-
|
9053 |
-
</script>
|
9054 |
-
<script id="mention-no-results" type="text/html">
|
9055 |
-
|
9056 |
-
[[^searching]]
|
9057 |
-
<li class="bb-typeahead-item">Found no matching users for <em>[[query]]</em>.</li>
|
9058 |
-
[[/searching]]
|
9059 |
-
[[#searching]]
|
9060 |
-
<li class="bb-typeahead-item bb-typeahead-searching">Searching for <em>[[query]]</em>.</li>
|
9061 |
-
[[/searching]]
|
9062 |
-
|
9063 |
-
</script>
|
9064 |
-
</div>
|
9065 |
-
|
9066 |
-
|
9067 |
-
|
9068 |
-
<div data-modules="components/repo-typeahead/index">
|
9069 |
-
<script id="repo-typeahead-result" type="text/html">
|
9070 |
-
<span class="aui-avatar aui-avatar-project aui-avatar-xsmall">
|
9071 |
-
<span class="aui-avatar-inner">
|
9072 |
-
<img src="[[avatar]]">
|
9073 |
-
</span>
|
9074 |
-
</span>
|
9075 |
-
<span class="owner">[[&owner]]</span>/<span class="slug">[[&slug]]</span>
|
9076 |
-
|
9077 |
-
</script>
|
9078 |
-
</div>
|
9079 |
-
|
9080 |
-
<script id="share-form-template" type="text/html">
|
9081 |
-
|
9082 |
-
|
9083 |
-
<div class="error aui-message hidden">
|
9084 |
-
<span class="aui-icon icon-error"></span>
|
9085 |
-
<div class="message"></div>
|
9086 |
-
</div>
|
9087 |
-
<form class="aui">
|
9088 |
-
<table class="widget bb-list aui">
|
9089 |
-
<thead>
|
9090 |
-
<tr class="assistive">
|
9091 |
-
<th class="user">User</th>
|
9092 |
-
<th class="role">Role</th>
|
9093 |
-
<th class="actions">Actions</th>
|
9094 |
-
</tr>
|
9095 |
-
</thead>
|
9096 |
-
<tbody>
|
9097 |
-
<tr class="form">
|
9098 |
-
<td colspan="2">
|
9099 |
-
<input type="text" class="text bb-user-typeahead user-or-email"
|
9100 |
-
placeholder="Username or email address"
|
9101 |
-
autocomplete="off"
|
9102 |
-
data-bb-typeahead-focus="false"
|
9103 |
-
[[#disabled]]disabled[[/disabled]]>
|
9104 |
-
</td>
|
9105 |
-
<td class="actions">
|
9106 |
-
<button type="submit" class="aui-button aui-style" disabled>Add</button>
|
9107 |
-
</td>
|
9108 |
-
</tr>
|
9109 |
-
</tbody>
|
9110 |
-
</table>
|
9111 |
-
</form>
|
9112 |
-
|
9113 |
-
</script>
|
9114 |
-
<script id="share-detail-template" type="text/html">
|
9115 |
-
|
9116 |
-
|
9117 |
-
[[#username]]
|
9118 |
-
<td class="user
|
9119 |
-
[[#hasCustomGroups]]custom-groups[[/hasCustomGroups]]"
|
9120 |
-
[[#error]]data-error="[[error]]"[[/error]]>
|
9121 |
-
<div title="[[displayName]]">
|
9122 |
-
<a href="/[[username]]" class="user">
|
9123 |
-
<img class="avatar avatar16" src="[[avatar]]" />
|
9124 |
-
<span>[[displayName]]</span>
|
9125 |
-
</a>
|
9126 |
-
</div>
|
9127 |
-
</td>
|
9128 |
-
[[/username]]
|
9129 |
-
[[^username]]
|
9130 |
-
<td class="email
|
9131 |
-
[[#hasCustomGroups]]custom-groups[[/hasCustomGroups]]"
|
9132 |
-
[[#error]]data-error="[[error]]"[[/error]]>
|
9133 |
-
<div title="[[email]]">
|
9134 |
-
<span class="aui-icon aui-icon-small aui-iconfont-email"></span>
|
9135 |
-
[[email]]
|
9136 |
-
</div>
|
9137 |
-
</td>
|
9138 |
-
[[/username]]
|
9139 |
-
<td class="role
|
9140 |
-
[[#hasCustomGroups]]custom-groups[[/hasCustomGroups]]">
|
9141 |
-
<div>
|
9142 |
-
[[#group]]
|
9143 |
-
[[#hasCustomGroups]]
|
9144 |
-
<select class="group [[#noGroupChoices]]hidden[[/noGroupChoices]]">
|
9145 |
-
[[#groups]]
|
9146 |
-
<option value="[[slug]]"
|
9147 |
-
[[#isSelected]]selected[[/isSelected]]>
|
9148 |
-
[[name]]
|
9149 |
-
</option>
|
9150 |
-
[[/groups]]
|
9151 |
-
</select>
|
9152 |
-
[[/hasCustomGroups]]
|
9153 |
-
[[^hasCustomGroups]]
|
9154 |
-
<label>
|
9155 |
-
<input type="checkbox" class="admin"
|
9156 |
-
[[#isAdmin]]checked[[/isAdmin]]>
|
9157 |
-
Administrator
|
9158 |
-
</label>
|
9159 |
-
[[/hasCustomGroups]]
|
9160 |
-
[[/group]]
|
9161 |
-
[[^group]]
|
9162 |
-
<ul>
|
9163 |
-
<li class="permission aui-lozenge aui-lozenge-complete
|
9164 |
-
[[^read]]aui-lozenge-subtle[[/read]]"
|
9165 |
-
data-permission="read">
|
9166 |
-
read
|
9167 |
-
</li>
|
9168 |
-
<li class="permission aui-lozenge aui-lozenge-complete
|
9169 |
-
[[^write]]aui-lozenge-subtle[[/write]]"
|
9170 |
-
data-permission="write">
|
9171 |
-
write
|
9172 |
-
</li>
|
9173 |
-
<li class="permission aui-lozenge aui-lozenge-complete
|
9174 |
-
[[^admin]]aui-lozenge-subtle[[/admin]]"
|
9175 |
-
data-permission="admin">
|
9176 |
-
admin
|
9177 |
-
</li>
|
9178 |
-
</ul>
|
9179 |
-
[[/group]]
|
9180 |
-
</div>
|
9181 |
-
</td>
|
9182 |
-
<td class="actions
|
9183 |
-
[[#hasCustomGroups]]custom-groups[[/hasCustomGroups]]">
|
9184 |
-
<div>
|
9185 |
-
<a href="#" class="delete">
|
9186 |
-
<span class="aui-icon aui-icon-small aui-iconfont-remove">Delete</span>
|
9187 |
-
</a>
|
9188 |
-
</div>
|
9189 |
-
</td>
|
9190 |
-
|
9191 |
-
</script>
|
9192 |
-
<script id="share-team-template" type="text/html">
|
9193 |
-
|
9194 |
-
|
9195 |
-
<div class="clearfix">
|
9196 |
-
<span class="team-avatar-container">
|
9197 |
-
<img src="[[avatar]]" alt="[[display_name]]" title="[[display_name]]" class="avatar avatar32" />
|
9198 |
-
</span>
|
9199 |
-
<span class="team-name-container">
|
9200 |
-
[[display_name]]
|
9201 |
-
</span>
|
9202 |
-
</div>
|
9203 |
-
<p class="helptext">
|
9204 |
-
|
9205 |
-
Existing users are granted access to this team immediately.
|
9206 |
-
New users will be sent an invitation.
|
9207 |
-
|
9208 |
-
</p>
|
9209 |
-
<div class="share-form"></div>
|
9210 |
-
|
9211 |
-
</script>
|
9212 |
-
|
9213 |
-
</section>
|
9214 |
-
</footer>
|
9215 |
-
</div>
|
9216 |
-
|
9217 |
-
<script src="https://d3oaxc4q5k2d6q.cloudfront.net/m/f8a094b2aa66/jsi18n/en/djangojs.js"></script>
|
9218 |
-
|
9219 |
-
|
9220 |
-
<script id="require-js"
|
9221 |
-
src="https://d3oaxc4q5k2d6q.cloudfront.net/m/f8a094b2aa66/amd/build/main.js"
|
9222 |
-
data-main="https://d3oaxc4q5k2d6q.cloudfront.net/m/f8a094b2aa66/amd/build/main"
|
9223 |
-
data-page-module="repo/index"></script>
|
9224 |
-
|
9225 |
-
|
9226 |
-
|
9227 |
-
|
9228 |
-
<script>
|
9229 |
-
(function () {
|
9230 |
-
var ga = document.createElement('script');
|
9231 |
-
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
9232 |
-
ga.setAttribute('async', 'true');
|
9233 |
-
document.documentElement.firstChild.appendChild(ga);
|
9234 |
-
}());
|
9235 |
-
</script>
|
9236 |
-
|
9237 |
-
|
9238 |
-
|
9239 |
-
|
9240 |
-
<script id="source-changeset" type="text/html">
|
9241 |
-
|
9242 |
-
|
9243 |
-
<a href="/niknetniko/nextcellent/src/[[raw_node]]/[[path]]"
|
9244 |
-
class="[[#selected]]highlight[[/selected]]"
|
9245 |
-
data-hash="[[node]]">
|
9246 |
-
[[#author.username]]
|
9247 |
-
<img class="avatar avatar16" src="[[author.avatar]]"/>
|
9248 |
-
<span class="author" title="[[raw_author]]">[[author.display_name]]</span>
|
9249 |
-
[[/author.username]]
|
9250 |
-
[[^author.username]]
|
9251 |
-
<img class="avatar avatar16" src="https://d3oaxc4q5k2d6q.cloudfront.net/m/f8a094b2aa66/img/default_avatar/16/user_blue.png"/>
|
9252 |
-
<span class="author unmapped" title="[[raw_author]]">[[author]]</span>
|
9253 |
-
[[/author.username]]
|
9254 |
-
<time datetime="[[utctimestamp]]" data-title="true">[[utctimestamp]]</time>
|
9255 |
-
<span class="message">[[message]]</span>
|
9256 |
-
</a>
|
9257 |
-
|
9258 |
-
</script>
|
9259 |
-
<script id="embed-template" type="text/html">
|
9260 |
-
|
9261 |
-
|
9262 |
-
<form class="aui embed">
|
9263 |
-
<label for="embed-code">Embed this source in another page:</label>
|
9264 |
-
<input type="text" readonly="true" value="<script src="[[url]]"></script>" id="embed-code">
|
9265 |
-
</form>
|
9266 |
-
|
9267 |
-
</script>
|
9268 |
-
<script id="edit-form-template" type="text/html">
|
9269 |
-
|
9270 |
-
|
9271 |
-
|
9272 |
-
<form class="edit-form aui"
|
9273 |
-
data-repository="[[owner]]/[[slug]]"
|
9274 |
-
data-destination-repository="[[destinationOwner]]/[[destinationSlug]]"
|
9275 |
-
data-local-id="[[localID]]"
|
9276 |
-
data-is-writer="[[#isWriter]]true[[/isWriter]][[^isWriter]]false[[/isWriter]]"
|
9277 |
-
data-has-push-access="[[#hasPushAccess]]true[[/hasPushAccess]][[^hasPushAccess]]false[[/hasPushAccess]]"
|
9278 |
-
data-is-pull-request="[[#isPullRequest]]true[[/isPullRequest]][[^isPullRequest]]false[[/isPullRequest]]"
|
9279 |
-
data-hash="[[hash]]"
|
9280 |
-
data-branch="[[branch]]"
|
9281 |
-
data-path="[[path]]"
|
9282 |
-
data-is-create="[[isCreate]]"
|
9283 |
-
data-preview-url="/xhr/[[owner]]/[[slug]]/preview/[[hash]]/[[encodedPath]]"
|
9284 |
-
data-preview-error="We had trouble generating your preview."
|
9285 |
-
data-unsaved-changes-error="Your changes will be lost. Are you sure you want to leave?">
|
9286 |
-
<div class="toolbar clearfix">
|
9287 |
-
<div class="primary">
|
9288 |
-
<h2>
|
9289 |
-
[[#isCreate]]
|
9290 |
-
|
9291 |
-
Creating <span class="edit-path">[[path]]</span> on branch: <strong>[[branch]]</strong>
|
9292 |
-
|
9293 |
-
[[/isCreate]]
|
9294 |
-
[[^isCreate]]
|
9295 |
-
|
9296 |
-
Editing <span class="edit-path">[[path]]</span> on branch: <strong>[[branch]]</strong>
|
9297 |
-
|
9298 |
-
[[/isCreate]]
|
9299 |
-
</h2>
|
9300 |
-
</div>
|
9301 |
-
<div class="secondary">
|
9302 |
-
<div class="hunk-nav aui-buttons">
|
9303 |
-
<button class="prev-hunk-button aui-button aui-button aui-style"
|
9304 |
-
disabled="disabled" aria-disabled="true" title="previous change">▲</button>
|
9305 |
-
<button class="next-hunk-button aui-button aui-button aui-style"
|
9306 |
-
disabled="disabled" aria-disabled="true" title="next change">▼</button>
|
9307 |
-
</div>
|
9308 |
-
</div>
|
9309 |
-
</div>
|
9310 |
-
<div class="file-editor">
|
9311 |
-
<textarea id="id_source"></textarea>
|
9312 |
-
</div>
|
9313 |
-
<div class="preview-pane"></div>
|
9314 |
-
<div class="toolbar footer-toolbar clearfix">
|
9315 |
-
<div class="primary">
|
9316 |
-
<div id="syntax-mode" class="field">
|
9317 |
-
<label for="id_syntax-mode">Syntax mode:</label>
|
9318 |
-
<select id="id_syntax-mode">
|
9319 |
-
[[#syntaxes]]
|
9320 |
-
<option value="[[#mime]][[mime]][[/mime]][[^mime]][[mode]][[/mime]]">[[label]]</option>
|
9321 |
-
[[/syntaxes]]
|
9322 |
-
</select>
|
9323 |
-
</div>
|
9324 |
-
<div id="indent-mode" class="field">
|
9325 |
-
<label for="id_indent-mode">Indent mode:</label>
|
9326 |
-
<select id="id_indent-mode">
|
9327 |
-
<option value="tabs">Tabs</option>
|
9328 |
-
<option value="spaces">Spaces</option>
|
9329 |
-
</select>
|
9330 |
-
</div>
|
9331 |
-
<div id="indent-size" class="field">
|
9332 |
-
<label for="id_indent-size">Indent size:</label>
|
9333 |
-
<select id="id_indent-size">
|
9334 |
-
<option value="2">2</option>
|
9335 |
-
<option value="4">4</option>
|
9336 |
-
<option value="8">8</option>
|
9337 |
-
</select>
|
9338 |
-
</div>
|
9339 |
-
</div>
|
9340 |
-
<div class="secondary">
|
9341 |
-
[[^isCreate]]
|
9342 |
-
<button class="preview-button aui-button aui-style"
|
9343 |
-
disabled="disabled" aria-disabled="true"
|
9344 |
-
data-preview-label="View diff"
|
9345 |
-
data-edit-label="Edit file">View diff</button>
|
9346 |
-
[[/isCreate]]
|
9347 |
-
<button class="save-button aui-button aui-button-primary aui-style"
|
9348 |
-
disabled="disabled" aria-disabled="true">Commit</button>
|
9349 |
-
[[^isCreate]]
|
9350 |
-
<a class="cancel-link" href="#">Cancel</a>
|
9351 |
-
[[/isCreate]]
|
9352 |
-
</div>
|
9353 |
-
</div>
|
9354 |
-
</form>
|
9355 |
-
|
9356 |
-
</script>
|
9357 |
-
<script id="commit-form-template" type="text/html">
|
9358 |
-
|
9359 |
-
|
9360 |
-
<form class="aui commit-form"
|
9361 |
-
data-title="Commit changes"
|
9362 |
-
[[#isDelete]]
|
9363 |
-
data-default-message="[[filename]] deleted online with Bitbucket"
|
9364 |
-
[[/isDelete]]
|
9365 |
-
[[#isCreate]]
|
9366 |
-
data-default-message="[[filename]] created online with Bitbucket"
|
9367 |
-
[[/isCreate]]
|
9368 |
-
[[^isDelete]]
|
9369 |
-
[[^isCreate]]
|
9370 |
-
data-default-message="[[filename]] edited online with Bitbucket"
|
9371 |
-
[[/isCreate]]
|
9372 |
-
[[/isDelete]]
|
9373 |
-
data-fork-error="We had trouble creating your fork."
|
9374 |
-
data-commit-error="We had trouble committing your changes."
|
9375 |
-
data-pull-request-error="We had trouble creating your pull request."
|
9376 |
-
data-update-error="We had trouble updating your pull request."
|
9377 |
-
data-branch-conflict-error="A branch with that name already exists."
|
9378 |
-
data-forking-message="Forking repository"
|
9379 |
-
data-committing-message="Committing changes"
|
9380 |
-
data-merging-message="Branching and merging changes"
|
9381 |
-
data-creating-pr-message="Creating pull request"
|
9382 |
-
data-updating-pr-message="Updating pull request"
|
9383 |
-
data-cta-label="Commit"
|
9384 |
-
data-cancel-label="Cancel">
|
9385 |
-
[[#isDelete]]
|
9386 |
-
<div class="aui-message info">
|
9387 |
-
<span class="aui-icon icon-info"></span>
|
9388 |
-
<span class="message">
|
9389 |
-
|
9390 |
-
Committing this change will delete [[filename]] from your repository.
|
9391 |
-
|
9392 |
-
</span>
|
9393 |
-
</div>
|
9394 |
-
[[/isDelete]]
|
9395 |
-
<div class="aui-message error hidden">
|
9396 |
-
<span class="aui-icon icon-error"></span>
|
9397 |
-
<span class="message"></span>
|
9398 |
-
</div>
|
9399 |
-
[[^isWriter]]
|
9400 |
-
<div class="aui-message info">
|
9401 |
-
<span class="aui-icon icon-info"></span>
|
9402 |
-
<p class="title">
|
9403 |
-
|
9404 |
-
You don't have write access to this repository.
|
9405 |
-
|
9406 |
-
</p>
|
9407 |
-
<span class="message">
|
9408 |
-
|
9409 |
-
We'll create a fork for your changes and submit a
|
9410 |
-
pull request back to this repository.
|
9411 |
-
|
9412 |
-
</span>
|
9413 |
-
</div>
|
9414 |
-
[[/isWriter]]
|
9415 |
-
[[#isRename]]
|
9416 |
-
<div class="field-group">
|
9417 |
-
<label for="id_path">New path</label>
|
9418 |
-
<input type="text" id="id_path" class="text" value="[[path]]"/>
|
9419 |
-
</div>
|
9420 |
-
[[/isRename]]
|
9421 |
-
<div class="field-group">
|
9422 |
-
<label for="id_message">Commit message</label>
|
9423 |
-
<textarea id="id_message" class="long-field textarea"></textarea>
|
9424 |
-
</div>
|
9425 |
-
[[^isPullRequest]]
|
9426 |
-
[[#isWriter]]
|
9427 |
-
<fieldset class="group">
|
9428 |
-
<div class="checkbox">
|
9429 |
-
[[#hasPushAccess]]
|
9430 |
-
<input id="id_create-pullrequest" class="checkbox" type="checkbox">
|
9431 |
-
<label for="id_create-pullrequest">Create a pull request for this change</label>
|
9432 |
-
[[/hasPushAccess]]
|
9433 |
-
[[^hasPushAccess]]
|
9434 |
-
<input id="id_create-pullrequest" class="checkbox" type="checkbox" checked="checked" aria-disabled="true" disabled="true">
|
9435 |
-
<label for="id_create-pullrequest" title="Branch restrictions do not allow you to update this branch.">Create a pull request for this change</label>
|
9436 |
-
[[/hasPushAccess]]
|
9437 |
-
|
9438 |
-
</div>
|
9439 |
-
</fieldset>
|
9440 |
-
<div id="pr-fields">
|
9441 |
-
<div id="branch-name-group" class="field-group">
|
9442 |
-
<label for="id_branch-name">Branch name</label>
|
9443 |
-
<input type="text" id="id_branch-name" class="text long-field">
|
9444 |
-
</div>
|
9445 |
-
<div id="reviewers-group" class="field-group"
|
9446 |
-
data-api-url="/niknetniko/nextcellent/pull-request/xhr/reviewer/niknetniko/nextcellent/:reviewer_name">
|
9447 |
-
<label for="participants">Reviewers</label>
|
9448 |
-
<select id="participants" class="long-field" name="reviewers" multiple></select>
|
9449 |
-
<div class="error"></div>
|
9450 |
-
|
9451 |
-
</div>
|
9452 |
-
</div>
|
9453 |
-
[[/isWriter]]
|
9454 |
-
[[/isPullRequest]]
|
9455 |
-
<button type="submit" id="id_submit">Commit</button>
|
9456 |
-
</form>
|
9457 |
-
|
9458 |
-
</script>
|
9459 |
-
<script id="merge-message-template" type="text/html">
|
9460 |
-
Merged [[hash]] into [[branch]]
|
9461 |
-
|
9462 |
-
[[message]]
|
9463 |
-
|
9464 |
-
</script>
|
9465 |
-
<script id="commit-merge-error-template" type="text/html">
|
9466 |
-
|
9467 |
-
|
9468 |
-
|
9469 |
-
|
9470 |
-
We had trouble merging your changes. We stored them on the <strong>[[branch]]</strong> branch, so feel free to
|
9471 |
-
<a href="/[[owner]]/[[slug]]/full-commit/[[hash]]/[[path]]?at=[[encodedBranch]]">view them</a> or
|
9472 |
-
<a href="#" class="create-pull-request-link">create a pull request</a>.
|
9473 |
-
|
9474 |
-
|
9475 |
-
</script>
|
9476 |
-
|
9477 |
-
|
9478 |
-
|
9479 |
-
|
9480 |
-
<div id="recently-mentioned-1812593"
|
9481 |
-
data-value="[]"></div>
|
9482 |
-
|
9483 |
-
|
9484 |
-
|
9485 |
-
|
9486 |
-
|
9487 |
-
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"beacon-4.newrelic.com","queueTime":0,"licenseKey":"a2cef8c3d3","agent":"js-agent.newrelic.com/nr-412.min.js","transactionName":"Z11RZxdWW0cEVkYLDV4XdUYLVEFdClsdAAtEWkZQDlJBGgRFQhFMQl1DXFcZQ10AQkFYBFlUVlEXWEJHAA==","userAttributes":"SxpaQDpWQEANUFwWC1NZR1YBFQ9AF0BXTkBZS2xSFV4XDgNUXhEHHBpGQABFaloEWFdAWBJPQ1QAQ0dRBFFLQB8=","applicationID":"1841284","errorBeacon":"bam.nr-data.net","applicationTime":192}</script></body>
|
9488 |
-
</html>
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: NextCellent Gallery suomeksi\n"
|
4 |
+
"POT-Creation-Date: 2015-01-09 16:11+0100\n"
|
5 |
+
"PO-Revision-Date: \n"
|
6 |
+
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
7 |
+
"Language-Team: Vesa Tiirikainen <vesa@tiirikainen.fi>\n"
|
8 |
+
"Language: fi\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
13 |
+
"X-Generator: Poedit 1.7.1\n"
|
14 |
+
|
15 |
+
#: ../admin/about.php:9 ../admin/admin.php:171
|
16 |
+
msgid "About"
|
17 |
+
msgstr "Lisäosasta"
|
18 |
+
|
19 |
+
#: ../admin/about.php:12
|
20 |
+
msgid "Contributors"
|
21 |
+
msgstr "Tukijat"
|
22 |
+
|
23 |
+
#: ../admin/about.php:14
|
24 |
+
msgid ""
|
25 |
+
"This plugin is made possible by the great work of a lot of people. A special "
|
26 |
+
"thanks the following people:"
|
27 |
+
msgstr ""
|
28 |
+
"Monien ihmisten hieno työ on tehnyt tämän lisäosan mahdolliseksi. "
|
29 |
+
"Erityiskiitokset seuraaville ihmisille: "
|
30 |
+
|
31 |
+
#: ../admin/about.php:16
|
32 |
+
msgid "for their great documented code"
|
33 |
+
msgstr "heidän hienosta dokumentoidusta koodistaan"
|
34 |
+
|
35 |
+
#: ../admin/about.php:17
|
36 |
+
msgid "for jQuery, which is the best Web2.0 framework"
|
37 |
+
msgstr "jQuery:sta, parhaasta Web2.0 kehikosta"
|
38 |
+
|
39 |
+
#: ../admin/about.php:18
|
40 |
+
msgid "for the fantastic PHP Thumbnail Class"
|
41 |
+
msgstr "fantastisesta PHP Thumbnail -luokasta"
|
42 |
+
|
43 |
+
#: ../admin/about.php:19
|
44 |
+
msgid "for a lot of very useful plugins and ideas"
|
45 |
+
msgstr "useista hyvin kätevistä lisäosista ja ideoista"
|
46 |
+
|
47 |
+
#: ../admin/about.php:20
|
48 |
+
msgid "for Shutter Reloaded, a real lightweight image effect"
|
49 |
+
msgstr "Shutter Reloadedista - tosi kevyesttä kuvaefektistä"
|
50 |
+
|
51 |
+
#: ../admin/about.php:21
|
52 |
+
msgid "for the best Media Flash Scripts on earth"
|
53 |
+
msgstr "maailman parhaista Media Flash -skripteistä"
|
54 |
+
|
55 |
+
#: ../admin/about.php:22
|
56 |
+
msgid "for the Gallery Icon"
|
57 |
+
msgstr "Gallerian kuvakkeesta"
|
58 |
+
|
59 |
+
#: ../admin/about.php:23
|
60 |
+
msgid "for the Watermark plugin"
|
61 |
+
msgstr "Vesileima-lisäosasta"
|
62 |
+
|
63 |
+
#: ../admin/about.php:24
|
64 |
+
msgid "for maintaining this fork of NextGen Gallery"
|
65 |
+
msgstr "tämän NextGen Galleryn seuraajan ylläpidosta"
|
66 |
+
|
67 |
+
#: ../admin/about.php:25
|
68 |
+
msgid "The original translators for NextGen Gallery, who made the translations"
|
69 |
+
msgstr "NextGen Gallery alkuperäisistä kääntäjistä, jotka loivat käännökset"
|
70 |
+
|
71 |
+
#: ../admin/about.php:31 ../nggallery.php:386
|
72 |
+
msgid "NextCellent"
|
73 |
+
msgstr "NextCellent"
|
74 |
+
|
75 |
+
#: ../admin/about.php:33
|
76 |
+
msgid ""
|
77 |
+
"NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery by "
|
78 |
+
"Photocrati Media, which is the succesor to the work by Alex Rabe."
|
79 |
+
msgstr ""
|
80 |
+
"NextCellent Gallery perustuu NextGen Gallery by Photocrati Median versioon "
|
81 |
+
"1.9.13, joka on Alex Raben työn suora jatke."
|
82 |
+
|
83 |
+
#: ../admin/about.php:34
|
84 |
+
msgid "What do you get with NextCellent Gallery?"
|
85 |
+
msgstr "Mitä saat NextCellent Gallerylla?"
|
86 |
+
|
87 |
+
#: ../admin/about.php:36
|
88 |
+
msgid "Backward compatibility with NextGEN plugin version (1.9.13)"
|
89 |
+
msgstr "Taaksepäin yhteensopiva NextGEN -llisäosan versioon (1.9.13)"
|
90 |
+
|
91 |
+
#: ../admin/about.php:37
|
92 |
+
msgid ""
|
93 |
+
"Slow evolving code path, made only by NextGEN user's suggestions. Yep, you "
|
94 |
+
"read it right: slow in counterpart as fast. Older code is good enough to "
|
95 |
+
"keep a community and it worked (and works) for most people."
|
96 |
+
msgstr ""
|
97 |
+
"Hitaasti kehittyvä koodi, jonka muutokset perustuvat ainoastaan NextGENin "
|
98 |
+
"käyttäjien ehdotuksiin. Yep, olet oikeassa: hidas on nopean vastakohta. "
|
99 |
+
"Vanhempi koodi on tarpeeksi hyvää säilyttämään yhteisön ja se toimi (ja "
|
100 |
+
"toimii yhä) useimmilla käyttäjillä."
|
101 |
+
|
102 |
+
#: ../admin/about.php:38
|
103 |
+
msgid "A reliable way to work with already installed NextGEN galleries."
|
104 |
+
msgstr ""
|
105 |
+
"Luotettava tie työskennellä jo asennettujen NextGEN -gallerioiden kanssa."
|
106 |
+
|
107 |
+
#: ../admin/about.php:39
|
108 |
+
msgid ""
|
109 |
+
"A place for updating the plugin without using FTP manual updates, but "
|
110 |
+
"WordPress plugin repository."
|
111 |
+
msgstr ""
|
112 |
+
"Lisäosan päivitys suoraan WordPressin lisäosien hakemistosta, ei käsin "
|
113 |
+
"tehtyjä päivityksiä FTP:llä."
|
114 |
+
|
115 |
+
#: ../admin/about.php:40
|
116 |
+
msgid "Alternative path preserving backward compatibility (while possible)."
|
117 |
+
msgstr ""
|
118 |
+
"Vaihtoehtoinen tie säilyttää yhteensopivuus taaksepäin (aina kun "
|
119 |
+
"mahdollista)."
|
120 |
+
|
121 |
+
#: ../admin/about.php:46
|
122 |
+
msgid "How to support us?"
|
123 |
+
msgstr "Miten tukea meitä?"
|
124 |
+
|
125 |
+
#: ../admin/about.php:48
|
126 |
+
msgid "There are several ways to contribute:"
|
127 |
+
msgstr "On useita tapoja tukea: "
|
128 |
+
|
129 |
+
#: ../admin/about.php:50
|
130 |
+
msgid "Send us bugfixes / code changes"
|
131 |
+
msgstr "Lähetä meille bugikorjauksia / koodimuutoksia"
|
132 |
+
|
133 |
+
#: ../admin/about.php:50
|
134 |
+
msgid ""
|
135 |
+
"The most motivated support for this plugin are your ideas and brain work."
|
136 |
+
msgstr "Ideasi ja ajatuksesti ovat kaikkein motivoivin tuki tälle lisäosalle."
|
137 |
+
|
138 |
+
#: ../admin/about.php:51
|
139 |
+
msgid "Translate the plugin"
|
140 |
+
msgstr "Käännä lisäosa."
|
141 |
+
|
142 |
+
#: ../admin/about.php:51
|
143 |
+
msgid ""
|
144 |
+
"To help people to work with this plugin, we would like to have it in all "
|
145 |
+
"available languages."
|
146 |
+
msgstr ""
|
147 |
+
"Jotta ihmiset voivat työskennellä tämän lisäosan kanssa, haluaisimme sen "
|
148 |
+
"olevan saatavilla kaikilla kielillä."
|
149 |
+
|
150 |
+
#: ../admin/about.php:52
|
151 |
+
msgid "Place a link to the plugin in your blog/webpage"
|
152 |
+
msgstr "Pistä linkki lisäosaan blogiisi tai sivustollesi"
|
153 |
+
|
154 |
+
#: ../admin/about.php:52
|
155 |
+
msgid "Yes, sharing and linking are also supportive and helpful."
|
156 |
+
msgstr "Kyllä, jakaminen ja linkitys auttavat ja tukevat myös."
|
157 |
+
|
158 |
+
#: ../admin/addgallery.php:35 ../admin/addgallery.php:47
|
159 |
+
#: ../admin/addgallery.php:59 ../admin/addgallery.php:70 ../admin/album.php:88
|
160 |
+
#: ../admin/album.php:123 ../admin/album.php:145
|
161 |
+
#: ../admin/edit-thumbnail.php:19 ../admin/edit-thumbnail.php:22
|
162 |
+
#: ../admin/manage.php:188 ../admin/publish.php:7 ../admin/publish.php:10
|
163 |
+
#: ../admin/publish.php:13 ../admin/rotate.php:17 ../admin/rotate.php:20
|
164 |
+
#: ../admin/showmeta.php:10 ../admin/showmeta.php:13
|
165 |
+
msgid "Cheatin’ uh?"
|
166 |
+
msgstr "Huijaatko’ höh?"
|
167 |
+
|
168 |
+
#: ../admin/addgallery.php:52 ../admin/addgallery.php:83
|
169 |
+
msgid "Upload failed!"
|
170 |
+
msgstr "Lataus epäonnistui!"
|
171 |
+
|
172 |
+
#: ../admin/addgallery.php:75
|
173 |
+
msgid "Upload failed! "
|
174 |
+
msgstr "Lataus epäonnistui!"
|
175 |
+
|
176 |
+
#: ../admin/addgallery.php:80 ../admin/addgallery.php:295
|
177 |
+
#: ../admin/admin.php:330
|
178 |
+
msgid "You didn't select a gallery!"
|
179 |
+
msgstr "Mikään galleria ei ole valittuna !"
|
180 |
+
|
181 |
+
#: ../admin/addgallery.php:150 ../admin/admin.php:139
|
182 |
+
msgid "Add Gallery / Images"
|
183 |
+
msgstr "Lisää galleria / kuvia"
|
184 |
+
|
185 |
+
#: ../admin/addgallery.php:170
|
186 |
+
msgid "Image Files"
|
187 |
+
msgstr "Kuvatiedostot"
|
188 |
+
|
189 |
+
#: ../admin/addgallery.php:197
|
190 |
+
msgid "remove"
|
191 |
+
msgstr "poista"
|
192 |
+
|
193 |
+
#: ../admin/addgallery.php:198 ../admin/addgallery.php:446
|
194 |
+
msgid "Browse..."
|
195 |
+
msgstr "Selaa..."
|
196 |
+
|
197 |
+
#: ../admin/addgallery.php:199 ../admin/addgallery.php:237
|
198 |
+
#: ../admin/addgallery.php:464 ../admin/addgallery.php:512
|
199 |
+
msgid "Upload images"
|
200 |
+
msgstr "Lataa kuvia"
|
201 |
+
|
202 |
+
#: ../admin/addgallery.php:303 ../admin/addgallery.php:311
|
203 |
+
#, fuzzy
|
204 |
+
msgid "You didn't select a file!"
|
205 |
+
msgstr "Mikään galleria ei ole valittuna !"
|
206 |
+
|
207 |
+
#: ../admin/addgallery.php:351 ../admin/admin.php:477
|
208 |
+
msgid "New gallery"
|
209 |
+
msgstr "Uusi galleria"
|
210 |
+
|
211 |
+
#: ../admin/addgallery.php:354 ../admin/admin.php:482 ../admin/admin.php:534
|
212 |
+
#: ../admin/manage-galleries.php:414 ../admin/settings.php:286
|
213 |
+
msgid "Images"
|
214 |
+
msgstr "Kuvia"
|
215 |
+
|
216 |
+
#: ../admin/addgallery.php:357 ../admin/admin.php:485
|
217 |
+
msgid "ZIP file"
|
218 |
+
msgstr "ZIP-tiedosto"
|
219 |
+
|
220 |
+
#: ../admin/addgallery.php:360 ../admin/addgallery.php:453
|
221 |
+
#: ../admin/admin.php:488
|
222 |
+
msgid "Import folder"
|
223 |
+
msgstr "Tuo kuvahakemisto"
|
224 |
+
|
225 |
+
#: ../admin/addgallery.php:371
|
226 |
+
msgid "Add a new gallery"
|
227 |
+
msgstr "Lisää uusi galleria"
|
228 |
+
|
229 |
+
#: ../admin/addgallery.php:376 ../admin/album.php:547 ../admin/showmeta.php:33
|
230 |
+
#: ../admin/showmeta.php:59 ../admin/showmeta.php:84 ../admin/showmeta.php:108
|
231 |
+
msgid "Name"
|
232 |
+
msgstr "Nimi"
|
233 |
+
|
234 |
+
#: ../admin/addgallery.php:379
|
235 |
+
msgid "Create a new, empty gallery in the folder"
|
236 |
+
msgstr "Luo uusi tyhjä galleria hakemistoon"
|
237 |
+
|
238 |
+
#: ../admin/addgallery.php:381 ../admin/manage-galleries.php:282
|
239 |
+
msgid "Allowed characters for file and folder names are"
|
240 |
+
msgstr "Sallitut merkit tiedosto- ja hakemistonimille ovat"
|
241 |
+
|
242 |
+
#: ../admin/addgallery.php:384 ../admin/manage-galleries.php:411
|
243 |
+
#: ../admin/manage-images.php:292 ../admin/manage-images.php:510
|
244 |
+
#: ../admin/manage-images.php:732 ../admin/media-upload.php:225
|
245 |
+
#: ../admin/style.php:298
|
246 |
+
msgid "Description"
|
247 |
+
msgstr "Kuvaus"
|
248 |
+
|
249 |
+
#: ../admin/addgallery.php:386
|
250 |
+
msgid "Add a description. This is optional and can be changed later."
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: ../admin/addgallery.php:390
|
254 |
+
msgid "Add gallery"
|
255 |
+
msgstr "Lisää galleria"
|
256 |
+
|
257 |
+
#: ../admin/addgallery.php:398
|
258 |
+
msgid "Upload a ZIP File"
|
259 |
+
msgstr "Lataa ZIP-tiedosto"
|
260 |
+
|
261 |
+
#: ../admin/addgallery.php:403
|
262 |
+
msgid "Select ZIP file"
|
263 |
+
msgstr "Valitse Zip-tiedosto"
|
264 |
+
|
265 |
+
#: ../admin/addgallery.php:405
|
266 |
+
msgid "Upload a ZIP file with images"
|
267 |
+
msgstr "Lataa kuvia sisältävä zip-tiedosto"
|
268 |
+
|
269 |
+
#: ../admin/addgallery.php:409
|
270 |
+
msgid "or enter URL"
|
271 |
+
msgstr "tai anna Zip-tiedoston URL"
|
272 |
+
|
273 |
+
#: ../admin/addgallery.php:411
|
274 |
+
msgid "Import a ZIP file from a URL"
|
275 |
+
msgstr "Lataa kuvia sisältävä zip-tiedosto URLista"
|
276 |
+
|
277 |
+
#: ../admin/addgallery.php:415 ../admin/addgallery.php:469
|
278 |
+
msgid "in to"
|
279 |
+
msgstr "paikkaan"
|
280 |
+
|
281 |
+
#: ../admin/addgallery.php:417
|
282 |
+
msgid "a new gallery"
|
283 |
+
msgstr "uusi galleria"
|
284 |
+
|
285 |
+
#: ../admin/addgallery.php:428
|
286 |
+
msgid "Note: the upload limit on your server is "
|
287 |
+
msgstr "Huom: latausraja palvelimellasi on "
|
288 |
+
|
289 |
+
#: ../admin/addgallery.php:432
|
290 |
+
msgid "Start upload"
|
291 |
+
msgstr "Aloita lataus"
|
292 |
+
|
293 |
+
#: ../admin/addgallery.php:440
|
294 |
+
msgid "Import an image folder"
|
295 |
+
msgstr "Tuo palvelin-polusta:"
|
296 |
+
|
297 |
+
#: ../admin/addgallery.php:445
|
298 |
+
msgid "Import from server:"
|
299 |
+
msgstr "Tuo palvelimelta:"
|
300 |
+
|
301 |
+
#: ../admin/addgallery.php:448
|
302 |
+
msgid "Note: you can change the default path in the gallery settings"
|
303 |
+
msgstr "Huom : muuta oletuspolku gallerian asetuksista"
|
304 |
+
|
305 |
+
#: ../admin/addgallery.php:450
|
306 |
+
msgid ""
|
307 |
+
"Please note: If safe-mode is ON, you need to add the subfolder with thumbs "
|
308 |
+
"manually"
|
309 |
+
msgstr ""
|
310 |
+
"Varoitus : jos safe-mode = ON, alihakemiston esikatselukuvat on lisättävä "
|
311 |
+
"manuaalisesti"
|
312 |
+
|
313 |
+
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
314 |
+
msgid ""
|
315 |
+
"This will change folder and file names (e.g. remove spaces, special "
|
316 |
+
"characters, ...)"
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
320 |
+
msgid "You will need to update your URLs if you link directly to the images."
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
324 |
+
msgid "Press OK to proceed, and Cancel to stop."
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: ../admin/addgallery.php:470
|
328 |
+
msgid "Choose gallery"
|
329 |
+
msgstr "Valitse galleria"
|
330 |
+
|
331 |
+
#: ../admin/addgallery.php:492
|
332 |
+
#, fuzzy
|
333 |
+
msgid "Drop your files in this window"
|
334 |
+
msgstr "Tai voit tiputtaa tiedostot tähän ikkunaan. "
|
335 |
+
|
336 |
+
#: ../admin/addgallery.php:492
|
337 |
+
msgid "Or"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: ../admin/addgallery.php:493
|
341 |
+
msgid "Select Files"
|
342 |
+
msgstr "Valitse tiedostot"
|
343 |
+
|
344 |
+
#: ../admin/addgallery.php:508
|
345 |
+
msgid "Click here to use the browser upload instead"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: ../admin/addgallery.php:508
|
349 |
+
#, fuzzy
|
350 |
+
msgid "Use basic uploader"
|
351 |
+
msgstr "Käytä kuvaa vesileimana"
|
352 |
+
|
353 |
+
#: ../admin/addgallery.php:510
|
354 |
+
msgid "Advanced uploading"
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: ../admin/addgallery.php:510
|
358 |
+
#, fuzzy
|
359 |
+
msgid "Use advanced uploader"
|
360 |
+
msgstr "Käytä kuvaa vesileimana"
|
361 |
+
|
362 |
+
#: ../admin/addgallery.php:514
|
363 |
+
#, fuzzy, php-format
|
364 |
+
msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
365 |
+
msgstr "Skaalaa kuvat maksimileveyteen %1$dpx tai maksimikorkeuteen %2$dpx"
|
366 |
+
|
367 |
+
#: ../admin/admin.php:125 ../admin/admin.php:130 ../admin/admin.php:143
|
368 |
+
#: ../admin/admin.php:190 ../admin/admin.php:435
|
369 |
+
#: ../admin/manage-galleries.php:126
|
370 |
+
msgid "Galleries"
|
371 |
+
msgstr "Galleriat"
|
372 |
+
|
373 |
+
#: ../admin/admin.php:135 ../nggallery.php:671 ../nggfunctions.php:953
|
374 |
+
msgid "Overview"
|
375 |
+
msgstr "Yleinen"
|
376 |
+
|
377 |
+
#: ../admin/admin.php:147 ../admin/album.php:280 ../nggallery.php:401
|
378 |
+
msgid "Albums"
|
379 |
+
msgstr "Albumit"
|
380 |
+
|
381 |
+
#: ../admin/admin.php:151 ../admin/manage-images.php:733
|
382 |
+
#: ../admin/settings.php:369 ../admin/tags.php:98 ../lib/meta.php:459
|
383 |
+
#: ../nggallery.php:409
|
384 |
+
msgid "Tags"
|
385 |
+
msgstr "Tägit"
|
386 |
+
|
387 |
+
#: ../admin/admin.php:155 ../admin/settings.php:250 ../nggallery.php:417
|
388 |
+
msgid "Settings"
|
389 |
+
msgstr "Asetukset"
|
390 |
+
|
391 |
+
#: ../admin/admin.php:160 ../nggallery.php:425
|
392 |
+
msgid "Style"
|
393 |
+
msgstr "Tyyli"
|
394 |
+
|
395 |
+
#: ../admin/admin.php:166
|
396 |
+
msgid "Roles"
|
397 |
+
msgstr "Roolit"
|
398 |
+
|
399 |
+
#: ../admin/admin.php:171
|
400 |
+
msgid "About this Gallery"
|
401 |
+
msgstr "Tästä galleriasta "
|
402 |
+
|
403 |
+
#: ../admin/admin.php:177 ../admin/admin.php:198
|
404 |
+
msgid "Reset / Uninstall"
|
405 |
+
msgstr "Resetoi / poista"
|
406 |
+
|
407 |
+
#: ../admin/admin.php:194
|
408 |
+
msgid "Network settings"
|
409 |
+
msgstr "Verkkoasetukset"
|
410 |
+
|
411 |
+
#: ../admin/admin.php:304
|
412 |
+
msgid "You do not have the correct permission"
|
413 |
+
msgstr "Sinulla ei ole tarvittavia valtuuksia"
|
414 |
+
|
415 |
+
#: ../admin/admin.php:305
|
416 |
+
msgid "Unexpected Error"
|
417 |
+
msgstr "Odottamaton virhe"
|
418 |
+
|
419 |
+
#: ../admin/admin.php:306
|
420 |
+
msgid "A failure occurred"
|
421 |
+
msgstr "Tapahtui virhe"
|
422 |
+
|
423 |
+
#: ../admin/admin.php:310
|
424 |
+
msgid "You have attempted to queue too many files."
|
425 |
+
msgstr "Olet laittanut jonoon liian monta tiedostoa."
|
426 |
+
|
427 |
+
#: ../admin/admin.php:311
|
428 |
+
msgid "This file exceeds the maximum upload size for this site."
|
429 |
+
msgstr "Tiedosto on suurempi kuin tämän sivuston maksimi latauskoko."
|
430 |
+
|
431 |
+
#: ../admin/admin.php:312
|
432 |
+
msgid "This file is empty. Please try another."
|
433 |
+
msgstr "Tiedosto on tyhjä. Yritä uudelleen. "
|
434 |
+
|
435 |
+
#: ../admin/admin.php:313
|
436 |
+
msgid "This file type is not allowed. Please try another."
|
437 |
+
msgstr "Tiedostotyyppi ei ole sallittu. Yritä uudelleen. "
|
438 |
+
|
439 |
+
#: ../admin/admin.php:314
|
440 |
+
msgid "This file is not an image. Please try another."
|
441 |
+
msgstr "Tämä ei ole kuvatiedosto. Yritä toista tiedostoa."
|
442 |
+
|
443 |
+
#: ../admin/admin.php:315
|
444 |
+
msgid "Memory exceeded. Please try another smaller file."
|
445 |
+
msgstr "Muisti ylitetty. Yritä pienentää tiedostoa. "
|
446 |
+
|
447 |
+
#: ../admin/admin.php:316
|
448 |
+
msgid "This is larger than the maximum size. Please try another."
|
449 |
+
msgstr "Tiedosto on maksimikokoa suurempi. Yritä toista. "
|
450 |
+
|
451 |
+
#: ../admin/admin.php:317
|
452 |
+
msgid "An error occurred in the upload. Please try again later."
|
453 |
+
msgstr "Latauksessa tapahtui virhe.Yritä myöhemmin uudestaan."
|
454 |
+
|
455 |
+
#: ../admin/admin.php:318
|
456 |
+
msgid ""
|
457 |
+
"There was a configuration error. Please contact the server administrator."
|
458 |
+
msgstr "Konfiguraatiovirhe. Ota yhteys palvelimen hoitajaan. "
|
459 |
+
|
460 |
+
#: ../admin/admin.php:319
|
461 |
+
msgid "You may only upload 1 file."
|
462 |
+
msgstr "Voit ladata vain yhden tiedoston."
|
463 |
+
|
464 |
+
#: ../admin/admin.php:320
|
465 |
+
msgid "HTTP error."
|
466 |
+
msgstr "HTTP-virhe."
|
467 |
+
|
468 |
+
#: ../admin/admin.php:321
|
469 |
+
msgid "Upload failed."
|
470 |
+
msgstr "Lataus epäonnistui!"
|
471 |
+
|
472 |
+
#: ../admin/admin.php:322
|
473 |
+
msgid "IO error."
|
474 |
+
msgstr "IO-virhe."
|
475 |
+
|
476 |
+
#: ../admin/admin.php:323
|
477 |
+
msgid "Security error."
|
478 |
+
msgstr "Turvavirhe."
|
479 |
+
|
480 |
+
#: ../admin/admin.php:324
|
481 |
+
msgid "File canceled."
|
482 |
+
msgstr "Tiedosto peruutettu."
|
483 |
+
|
484 |
+
#: ../admin/admin.php:325
|
485 |
+
msgid "Upload stopped."
|
486 |
+
msgstr "Lataus lopetettu."
|
487 |
+
|
488 |
+
#: ../admin/admin.php:326
|
489 |
+
msgid "Dismiss"
|
490 |
+
msgstr "Poista"
|
491 |
+
|
492 |
+
#: ../admin/admin.php:327
|
493 |
+
msgid "Crunching…"
|
494 |
+
msgstr "Työskentelen…"
|
495 |
+
|
496 |
+
#: ../admin/admin.php:328
|
497 |
+
msgid "moved to the trash."
|
498 |
+
msgstr "siirretty roskakoriin."
|
499 |
+
|
500 |
+
#: ../admin/admin.php:329
|
501 |
+
#, php-format
|
502 |
+
msgid "“%s” has failed to upload due to an error"
|
503 |
+
msgstr "“%s” ei latautunut virheen takia"
|
504 |
+
|
505 |
+
#: ../admin/admin.php:352 ../nggallery.php:458
|
506 |
+
msgid "L O A D I N G"
|
507 |
+
msgstr "L A T A A N"
|
508 |
+
|
509 |
+
#: ../admin/admin.php:353 ../nggallery.php:459
|
510 |
+
msgid "Click to Close"
|
511 |
+
msgstr "Klikkaa sulkeaksesi"
|
512 |
+
|
513 |
+
#: ../admin/admin.php:440
|
514 |
+
msgid ""
|
515 |
+
"Welcome to your NextCellent Dashboard! This screen gives you all kinds of "
|
516 |
+
"information about NextCellent at glance. You can get help for any screen by "
|
517 |
+
"clicking the Help tab in the upper corner."
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: ../admin/admin.php:449
|
521 |
+
msgid "The boxes on your overview screen are:"
|
522 |
+
msgstr ""
|
523 |
+
|
524 |
+
#: ../admin/admin.php:450 ../admin/overview.php:407
|
525 |
+
msgid "At a Glance"
|
526 |
+
msgstr "Yleisnäkymä"
|
527 |
+
|
528 |
+
#: ../admin/admin.php:450
|
529 |
+
msgid ""
|
530 |
+
"Shows some general information about your site, such as the number of "
|
531 |
+
"pictures, albums and galleries."
|
532 |
+
msgstr ""
|
533 |
+
|
534 |
+
#: ../admin/admin.php:451 ../admin/overview.php:90
|
535 |
+
msgid "Latest News"
|
536 |
+
msgstr "Tuoreimmat uutiset"
|
537 |
+
|
538 |
+
#: ../admin/admin.php:451
|
539 |
+
#, fuzzy
|
540 |
+
msgid "The latest NextCellent news."
|
541 |
+
msgstr "Tuoreimmat uutiset"
|
542 |
+
|
543 |
+
#: ../admin/admin.php:453 ../admin/overview.php:94
|
544 |
+
msgid "Related plugins"
|
545 |
+
msgstr "Liittyvät lisäosat"
|
546 |
+
|
547 |
+
#: ../admin/admin.php:453
|
548 |
+
msgid "Shows plugins that extend NextCellent."
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: ../admin/admin.php:453 ../admin/overview.php:742
|
552 |
+
msgid "Pay attention"
|
553 |
+
msgstr "Ole tarkkana"
|
554 |
+
|
555 |
+
#: ../admin/admin.php:453
|
556 |
+
#, php-format
|
557 |
+
msgid ""
|
558 |
+
"third parties plugins that are compatible with NGG may not be "
|
559 |
+
"100% compatible with NextCellent Gallery!"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: ../admin/admin.php:455 ../admin/overview.php:87
|
563 |
+
msgid "Help me help YOU!"
|
564 |
+
msgstr "Auta minua auttamaan SINUA!"
|
565 |
+
|
566 |
+
#: ../admin/admin.php:455
|
567 |
+
msgid "Shows general information about he plugin and some links."
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: ../admin/admin.php:457 ../admin/overview.php:89
|
571 |
+
msgid "Translation"
|
572 |
+
msgstr "Käännös"
|
573 |
+
|
574 |
+
#: ../admin/admin.php:457
|
575 |
+
msgid "View information about the current translation."
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#: ../admin/admin.php:460 ../admin/overview.php:93
|
579 |
+
msgid "Server Settings"
|
580 |
+
msgstr "Palvelinasetukset"
|
581 |
+
|
582 |
+
#: ../admin/admin.php:460
|
583 |
+
#, fuzzy
|
584 |
+
msgid "Show all the server settings!."
|
585 |
+
msgstr "[Näytä kaikki]"
|
586 |
+
|
587 |
+
#: ../admin/admin.php:461 ../admin/overview.php:92
|
588 |
+
msgid "Plugin Check"
|
589 |
+
msgstr "Lisäosan tarkistus"
|
590 |
+
|
591 |
+
#: ../admin/admin.php:461
|
592 |
+
msgid "Check if there are known errors in your installation."
|
593 |
+
msgstr ""
|
594 |
+
|
595 |
+
#: ../admin/admin.php:475
|
596 |
+
msgid "On this page you can add galleries and pictures to those galleries."
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: ../admin/admin.php:477
|
600 |
+
#, fuzzy
|
601 |
+
msgid "Add new galleries to NextCellent."
|
602 |
+
msgstr "Lisää uusimmat tai satunnaiset kuvat gallerioista"
|
603 |
+
|
604 |
+
#: ../admin/admin.php:480
|
605 |
+
msgid "You must add a gallery before adding images!"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: ../admin/admin.php:482
|
609 |
+
#, fuzzy
|
610 |
+
msgid "Add new images to a gallery."
|
611 |
+
msgstr "Lisää galleria / kuvia"
|
612 |
+
|
613 |
+
#: ../admin/admin.php:485
|
614 |
+
#, fuzzy
|
615 |
+
msgid "Add images from a ZIP file."
|
616 |
+
msgstr "Lataa kuvia sisältävä zip-tiedosto"
|
617 |
+
|
618 |
+
#: ../admin/admin.php:488
|
619 |
+
#, fuzzy
|
620 |
+
msgid "Import a folder from the server as a new gallery."
|
621 |
+
msgstr "Salli käyttäjien tuoda kuvia palvelimelta."
|
622 |
+
|
623 |
+
#: ../admin/admin.php:505
|
624 |
+
#, fuzzy
|
625 |
+
msgid "Manage your images and galleries."
|
626 |
+
msgstr "Sori, sinulla ei ole oikeuksia gallerioiden muokkaukseen."
|
627 |
+
|
628 |
+
#: ../admin/admin.php:514
|
629 |
+
#, fuzzy
|
630 |
+
msgid "Organize your galleries into albums."
|
631 |
+
msgstr "Täällä voi hallita kuviasi, gallerioitasi ja albumeitasi."
|
632 |
+
|
633 |
+
#: ../admin/admin.php:514
|
634 |
+
msgid ""
|
635 |
+
"First select an album from the dropdown and then drag the galleries you want "
|
636 |
+
"to add or remove from the selected album."
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: ../admin/admin.php:523
|
640 |
+
#, fuzzy
|
641 |
+
msgid "Organize your pictures with tags."
|
642 |
+
msgstr "Erittele kuvien tägit pilkuilla."
|
643 |
+
|
644 |
+
#: ../admin/admin.php:523
|
645 |
+
msgid "Rename, delete and edit tags. Use the rename function to merge tags."
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: ../admin/admin.php:532
|
649 |
+
msgid ""
|
650 |
+
"Edit all of NextCellent's options. The options are sorted in multiple "
|
651 |
+
"categories."
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: ../admin/admin.php:533 ../admin/settings.php:285
|
655 |
+
msgid "General"
|
656 |
+
msgstr "Yleistä"
|
657 |
+
|
658 |
+
#: ../admin/admin.php:533
|
659 |
+
msgid ""
|
660 |
+
"General NextCellent options. Contains options for permalinks and related "
|
661 |
+
"images."
|
662 |
+
msgstr ""
|
663 |
+
|
664 |
+
#: ../admin/admin.php:534
|
665 |
+
msgid "All image-related options. Also contains options for thumbnails."
|
666 |
+
msgstr ""
|
667 |
+
|
668 |
+
#: ../admin/admin.php:535 ../admin/functions.php:212
|
669 |
+
#: ../admin/functions.php:374 ../admin/manage-images.php:263
|
670 |
+
#: ../admin/overview.php:418 ../admin/settings.php:287
|
671 |
+
#: ../admin/tinymce/window.php:120 ../admin/tinymce/window.php:153
|
672 |
+
#: ../admin/tinymce/window.php:277 ../admin/tinymce/window.php:398
|
673 |
+
#: ../admin/tinymce/window.php:449 ../lib/rewrite.php:220
|
674 |
+
#: ../lib/rewrite.php:229 ../nggallery.php:393
|
675 |
+
msgid "Gallery"
|
676 |
+
msgstr "Galleria"
|
677 |
+
|
678 |
+
#: ../admin/admin.php:535
|
679 |
+
msgid ""
|
680 |
+
"Everything about galleries. From sorting options to the number of images, "
|
681 |
+
"it's all in here."
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: ../admin/admin.php:536 ../admin/settings.php:288 ../admin/settings.php:546
|
685 |
+
msgid "Effects"
|
686 |
+
msgstr "Efektit "
|
687 |
+
|
688 |
+
#: ../admin/admin.php:536
|
689 |
+
msgid "Make your gallery look beautiful."
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: ../admin/admin.php:537 ../admin/settings.php:289 ../admin/settings.php:587
|
693 |
+
#: ../admin/tinymce/window.php:329
|
694 |
+
msgid "Watermark"
|
695 |
+
msgstr "Vesileima "
|
696 |
+
|
697 |
+
#: ../admin/admin.php:537
|
698 |
+
msgid "Who doesn't want theft-proof images?"
|
699 |
+
msgstr ""
|
700 |
+
|
701 |
+
#: ../admin/admin.php:538 ../admin/settings.php:290 ../admin/settings.php:483
|
702 |
+
#: ../admin/settings.php:493 ../admin/settings.php:694
|
703 |
+
#: ../admin/tinymce/window.php:159 ../lib/rewrite.php:218
|
704 |
+
#: ../widgets/widgets.php:29
|
705 |
+
msgid "Slideshow"
|
706 |
+
msgstr "Diasarja "
|
707 |
+
|
708 |
+
#: ../admin/admin.php:538
|
709 |
+
#, fuzzy
|
710 |
+
msgid "Edit options for the slideshow."
|
711 |
+
msgstr "Muokkaa"
|
712 |
+
|
713 |
+
#: ../admin/admin.php:539
|
714 |
+
msgid "Don't forget to press save!"
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: ../admin/admin.php:548
|
718 |
+
msgid "You can edit the css file to adjust how your gallery looks."
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: ../admin/admin.php:549
|
722 |
+
msgid ""
|
723 |
+
"When you save an edited file, NextCellent automatically saves it as a copy "
|
724 |
+
"in the folder ngg_styles. This protects your changes from upgrades."
|
725 |
+
msgstr ""
|
726 |
+
|
727 |
+
#: ../admin/admin.php:558
|
728 |
+
msgid ""
|
729 |
+
"You can assign the lowest user role that has access to a certain feature. "
|
730 |
+
"Needless to say, all greater user roles will also have access to that "
|
731 |
+
"feature."
|
732 |
+
msgstr ""
|
733 |
+
|
734 |
+
#: ../admin/admin.php:559
|
735 |
+
msgid ""
|
736 |
+
"NextCellent also works with various plugins that extend the default roles "
|
737 |
+
"capabilities."
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: ../admin/admin.php:568
|
741 |
+
msgid ""
|
742 |
+
"If 'someone' messed with your settings (yeah, definitely not you), you can "
|
743 |
+
"reset them here."
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: ../admin/admin.php:569
|
747 |
+
#, fuzzy
|
748 |
+
msgid "Attention!"
|
749 |
+
msgstr "Ole tarkkana"
|
750 |
+
|
751 |
+
#: ../admin/admin.php:569
|
752 |
+
msgid ""
|
753 |
+
"You should not use the Uninstall Plugin button, unless you know what you're "
|
754 |
+
"doing! It should never be necessary to press it."
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: ../admin/admin.php:581
|
758 |
+
#, fuzzy
|
759 |
+
msgid "For more information:"
|
760 |
+
msgstr "Täältä löytyy lisätietoa efekteistä:"
|
761 |
+
|
762 |
+
#: ../admin/admin.php:582
|
763 |
+
#, fuzzy
|
764 |
+
msgid "Support Forums"
|
765 |
+
msgstr ""
|
766 |
+
"<a href=\"http://wordpress.org/tags/nextcellent-gallery-nextgen-legacy\" "
|
767 |
+
"target=\"_blank\">Tukifoorumit (engl.)</a>"
|
768 |
+
|
769 |
+
#: ../admin/admin.php:583
|
770 |
+
#, fuzzy
|
771 |
+
msgid "Source Code"
|
772 |
+
msgstr "Lähde"
|
773 |
+
|
774 |
+
#: ../admin/ajax.php:291
|
775 |
+
msgid "You are not allowed to be here"
|
776 |
+
msgstr "Sinulla ei ole lupa olla täällä"
|
777 |
+
|
778 |
+
#: ../admin/ajax.php:389
|
779 |
+
#, php-format
|
780 |
+
msgid "Could create image with %s x %s pixel"
|
781 |
+
msgstr "Luotiin kuva kooltaan %s x %s pikseliä"
|
782 |
+
|
783 |
+
#: ../admin/album.php:97 ../admin/album.php:116 ../admin/album.php:161
|
784 |
+
#, fuzzy
|
785 |
+
msgid "Updated successfully"
|
786 |
+
msgstr "CSS-tiedosto päivitetty onnistuneesti."
|
787 |
+
|
788 |
+
#: ../admin/album.php:134
|
789 |
+
msgid "Album deleted"
|
790 |
+
msgstr "Albumi poistettu"
|
791 |
+
|
792 |
+
#: ../admin/album.php:272 ../admin/roles.php:59
|
793 |
+
msgid "Edit Album"
|
794 |
+
msgstr "Muokkaa albumia"
|
795 |
+
|
796 |
+
#: ../admin/album.php:286 ../admin/album.php:335
|
797 |
+
msgid "Select album"
|
798 |
+
msgstr "Valitse albumi"
|
799 |
+
|
800 |
+
#: ../admin/album.php:288
|
801 |
+
msgid "No album selected"
|
802 |
+
msgstr "Ei valittua albumia"
|
803 |
+
|
804 |
+
#: ../admin/album.php:299 ../admin/edit-thumbnail.php:150
|
805 |
+
#: ../admin/overview.php:539 ../admin/rotate.php:89 ../admin/wpmu.php:114
|
806 |
+
msgid "Update"
|
807 |
+
msgstr "Päivitä"
|
808 |
+
|
809 |
+
#: ../admin/album.php:301
|
810 |
+
msgid "Edit album"
|
811 |
+
msgstr "Muokkaa albumia"
|
812 |
+
|
813 |
+
#: ../admin/album.php:304 ../admin/manage-galleries.php:148
|
814 |
+
#: ../admin/manage-images.php:481 ../admin/tags.php:225
|
815 |
+
msgid "Delete"
|
816 |
+
msgstr "Poista"
|
817 |
+
|
818 |
+
#: ../admin/album.php:308
|
819 |
+
msgid "Add new album"
|
820 |
+
msgstr "Lisää uusi albumi"
|
821 |
+
|
822 |
+
#: ../admin/album.php:310
|
823 |
+
msgid "Add"
|
824 |
+
msgstr "Lisää"
|
825 |
+
|
826 |
+
#: ../admin/album.php:321
|
827 |
+
msgid "Show / hide used galleries"
|
828 |
+
msgstr "Näytä / piilota käytetyt galleriat"
|
829 |
+
|
830 |
+
#: ../admin/album.php:321
|
831 |
+
msgid "[Show all]"
|
832 |
+
msgstr "[Näytä kaikki]"
|
833 |
+
|
834 |
+
#: ../admin/album.php:322
|
835 |
+
msgid "Maximize the widget content"
|
836 |
+
msgstr "Maksimoi vimpaimen sisältö"
|
837 |
+
|
838 |
+
#: ../admin/album.php:322
|
839 |
+
msgid "[Maximize]"
|
840 |
+
msgstr "[Maksimoi]"
|
841 |
+
|
842 |
+
#: ../admin/album.php:323
|
843 |
+
msgid "Minimize the widget content"
|
844 |
+
msgstr "Minimoi vimpaimen sisältö"
|
845 |
+
|
846 |
+
#: ../admin/album.php:323
|
847 |
+
msgid "[Minimize]"
|
848 |
+
msgstr "[Minimoi]"
|
849 |
+
|
850 |
+
#: ../admin/album.php:325
|
851 |
+
msgid ""
|
852 |
+
"After you create and select a album, you can drag and drop a gallery or "
|
853 |
+
"another album into your new album below"
|
854 |
+
msgstr ""
|
855 |
+
"Kun olet luonut ja valinnut albumin, voit lisätä pudottamalla gallerian tai "
|
856 |
+
"toisen albumin uuteen albumiisi alla"
|
857 |
+
|
858 |
+
#: ../admin/album.php:351
|
859 |
+
msgid "Select gallery"
|
860 |
+
msgstr "Valitse galleria"
|
861 |
+
|
862 |
+
#: ../admin/album.php:380
|
863 |
+
msgid "Album ID"
|
864 |
+
msgstr "Album ID"
|
865 |
+
|
866 |
+
#: ../admin/album.php:393
|
867 |
+
msgid "No album selected!"
|
868 |
+
msgstr "Albumia ei valittuna"
|
869 |
+
|
870 |
+
#: ../admin/album.php:414
|
871 |
+
msgid "Album name:"
|
872 |
+
msgstr "Albumin nimi :"
|
873 |
+
|
874 |
+
#: ../admin/album.php:420
|
875 |
+
msgid "Album description:"
|
876 |
+
msgstr "Albumin kuvaus:"
|
877 |
+
|
878 |
+
#: ../admin/album.php:426
|
879 |
+
msgid "Select a preview image:"
|
880 |
+
msgstr "Valitse esikatselukuva:"
|
881 |
+
|
882 |
+
#: ../admin/album.php:429 ../admin/album.php:432
|
883 |
+
msgid "No picture"
|
884 |
+
msgstr "Ei kuvaa"
|
885 |
+
|
886 |
+
#: ../admin/album.php:443 ../admin/manage-images.php:281
|
887 |
+
msgid "Page Link to"
|
888 |
+
msgstr "Sivu linkitetty"
|
889 |
+
|
890 |
+
#: ../admin/album.php:445 ../admin/manage-images.php:284
|
891 |
+
msgid "Not linked"
|
892 |
+
msgstr "Ei linkitetty"
|
893 |
+
|
894 |
+
#: ../admin/album.php:458 ../admin/manage-galleries.php:288
|
895 |
+
#: ../admin/manage-galleries.php:320 ../admin/manage-galleries.php:350
|
896 |
+
#: ../admin/manage-images.php:568 ../admin/manage-images.php:603
|
897 |
+
#: ../admin/manage-images.php:634 ../admin/manage-images.php:664
|
898 |
+
msgid "OK"
|
899 |
+
msgstr "OK"
|
900 |
+
|
901 |
+
#: ../admin/album.php:460 ../admin/manage-galleries.php:290
|
902 |
+
#: ../admin/manage-galleries.php:322 ../admin/manage-galleries.php:352
|
903 |
+
#: ../admin/manage-images.php:569 ../admin/manage-images.php:604
|
904 |
+
#: ../admin/manage-images.php:635 ../admin/manage-images.php:665
|
905 |
+
#: ../admin/tinymce/window.php:472
|
906 |
+
msgid "Cancel"
|
907 |
+
msgstr "Peruuta"
|
908 |
+
|
909 |
+
#: ../admin/album.php:548 ../admin/manage-galleries.php:410
|
910 |
+
#: ../admin/manage-images.php:279 ../lib/meta.php:457
|
911 |
+
msgid "Title"
|
912 |
+
msgstr "Otsikko"
|
913 |
+
|
914 |
+
#: ../admin/album.php:549 ../lib/rewrite.php:232
|
915 |
+
msgid "Page"
|
916 |
+
msgstr "Sivu"
|
917 |
+
|
918 |
+
#: ../admin/edit-thumbnail.php:105
|
919 |
+
msgid "Select with the mouse the area for the new thumbnail"
|
920 |
+
msgstr "Valitse hiirellä uusi alue esikatselukuvalle"
|
921 |
+
|
922 |
+
#: ../admin/edit-thumbnail.php:119
|
923 |
+
msgid "Thumbnail updated"
|
924 |
+
msgstr "Esikatselukuva päivitetty"
|
925 |
+
|
926 |
+
#: ../admin/edit-thumbnail.php:124
|
927 |
+
msgid "Error updating thumbnail"
|
928 |
+
msgstr "Esikatselukuvan päivityksessä virhe"
|
929 |
+
|
930 |
+
#: ../admin/edit-thumbnail.php:133
|
931 |
+
msgid "Select the area for the thumbnail from the picture on the left."
|
932 |
+
msgstr "Valitse vasemmalla olevasta kuvasta esikatselukuvan alue."
|
933 |
+
|
934 |
+
#: ../admin/functions.php:43
|
935 |
+
msgid "No valid gallery name!"
|
936 |
+
msgstr "Gallerian nimi ei kelpaa!"
|
937 |
+
|
938 |
+
#: ../admin/functions.php:50 ../admin/functions.php:59
|
939 |
+
#: ../admin/functions.php:84 ../admin/functions.php:157
|
940 |
+
#: ../admin/functions.php:164 ../admin/functions.php:344
|
941 |
+
#: ../admin/functions.php:352
|
942 |
+
msgid "Directory"
|
943 |
+
msgstr "Hakemisto"
|
944 |
+
|
945 |
+
#: ../admin/functions.php:50
|
946 |
+
msgid "didn't exist. Please create first the main gallery folder "
|
947 |
+
msgstr "ei löydy. Luo ensin päägallerian hakemisto."
|
948 |
+
|
949 |
+
#: ../admin/functions.php:51 ../admin/functions.php:60
|
950 |
+
msgid "Check this link, if you didn't know how to set the permission :"
|
951 |
+
msgstr "Tarkista tästä linkistä, jos et tiedä miten valtuus asetetaan:"
|
952 |
+
|
953 |
+
#: ../admin/functions.php:59 ../admin/functions.php:84
|
954 |
+
msgid "is not writeable !"
|
955 |
+
msgstr "ei voi kirjoittaa !"
|
956 |
+
|
957 |
+
#: ../admin/functions.php:80 ../admin/functions.php:89
|
958 |
+
#: ../admin/functions.php:1102 ../lib/core.php:102
|
959 |
+
msgid "Unable to create directory "
|
960 |
+
msgstr "Hakemiston luonti ei onnistu"
|
961 |
+
|
962 |
+
#: ../admin/functions.php:93
|
963 |
+
msgid "The server setting Safe-Mode is on !"
|
964 |
+
msgstr "Palvelimella on käytössä Safe-Mode (PHP.INI)"
|
965 |
+
|
966 |
+
#: ../admin/functions.php:94
|
967 |
+
msgid "If you have problems, please create directory"
|
968 |
+
msgstr "Jos ongelmia, luo hakemisto"
|
969 |
+
|
970 |
+
#: ../admin/functions.php:95
|
971 |
+
msgid "and the thumbnails directory"
|
972 |
+
msgstr "ja Thumbnails-hakemisto"
|
973 |
+
|
974 |
+
#: ../admin/functions.php:95
|
975 |
+
msgid "with permission 777 manually !"
|
976 |
+
msgstr "valtuutus 777 manuaalisesti !"
|
977 |
+
|
978 |
+
#: ../admin/functions.php:122
|
979 |
+
#, php-format
|
980 |
+
msgid ""
|
981 |
+
"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
982 |
+
"or page with the shortcode %2$s.<br/>"
|
983 |
+
msgstr ""
|
984 |
+
"Galleria ID %1$s luonti onnistui. <br> Voit näyttää tämän gallerian "
|
985 |
+
"artikkelissasi tai sivullasi lyhytkoodilla %2$s .<br/>"
|
986 |
+
|
987 |
+
#: ../admin/functions.php:125 ../admin/functions.php:309
|
988 |
+
#: ../admin/functions.php:412
|
989 |
+
msgid "Edit gallery"
|
990 |
+
msgstr "Muokkaa galleriaa"
|
991 |
+
|
992 |
+
#: ../admin/functions.php:157 ../admin/functions.php:344
|
993 |
+
msgid "doesn`t exist!"
|
994 |
+
msgstr "ei ole olemassa !"
|
995 |
+
|
996 |
+
#: ../admin/functions.php:164 ../admin/functions.php:352
|
997 |
+
msgid "contains no pictures"
|
998 |
+
msgstr "ei sisällä kuvia "
|
999 |
+
|
1000 |
+
#: ../admin/functions.php:191
|
1001 |
+
msgid "Something went wrong when renaming"
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: ../admin/functions.php:191
|
1005 |
+
msgid "Importing was aborted."
|
1006 |
+
msgstr ""
|
1007 |
+
|
1008 |
+
#: ../admin/functions.php:209 ../admin/functions.php:371
|
1009 |
+
msgid "Database error. Could not add gallery!"
|
1010 |
+
msgstr "Tietokantavirhe. Gallerian lisäys ei onnistunut!"
|
1011 |
+
|
1012 |
+
#: ../admin/functions.php:212 ../admin/functions.php:374
|
1013 |
+
msgid "successfully created!"
|
1014 |
+
msgstr "luonti onnistui!"
|
1015 |
+
|
1016 |
+
#: ../admin/functions.php:299 ../admin/functions.php:407
|
1017 |
+
#: ../admin/functions.php:1219 ../admin/manage-galleries.php:80
|
1018 |
+
#: ../admin/manage-galleries.php:150 ../admin/manage-images.php:227
|
1019 |
+
#: ../admin/manage-images.php:372 ../admin/manage.php:227
|
1020 |
+
#: ../admin/manage.php:304
|
1021 |
+
msgid "Create new thumbnails"
|
1022 |
+
msgstr "Luo uudet esikatselukuvat"
|
1023 |
+
|
1024 |
+
#: ../admin/functions.php:304
|
1025 |
+
#, fuzzy
|
1026 |
+
msgid " picture(s) successfully renamed"
|
1027 |
+
msgstr " kuva(t) lisätty onnistuneesti"
|
1028 |
+
|
1029 |
+
#: ../admin/functions.php:306 ../admin/functions.php:410
|
1030 |
+
msgid " picture(s) successfully added"
|
1031 |
+
msgstr " kuva(t) lisätty onnistuneesti"
|
1032 |
+
|
1033 |
+
#: ../admin/functions.php:313
|
1034 |
+
#, fuzzy
|
1035 |
+
msgid "No images were added."
|
1036 |
+
msgstr " kuva(t) lisätty onnistuneesti"
|
1037 |
+
|
1038 |
+
#: ../admin/functions.php:465 ../admin/functions.php:545
|
1039 |
+
#: ../admin/functions.php:600 ../admin/functions.php:697
|
1040 |
+
#: ../admin/functions.php:751
|
1041 |
+
msgid "Object didn't contain correct data"
|
1042 |
+
msgstr "Objekti ei sisältänyt oikeita tietoja"
|
1043 |
+
|
1044 |
+
#: ../admin/functions.php:473
|
1045 |
+
msgid " is not writeable "
|
1046 |
+
msgstr "ei voida kirjoittaa !"
|
1047 |
+
|
1048 |
+
#: ../admin/functions.php:555 ../admin/functions.php:603
|
1049 |
+
#: ../admin/functions.php:703 ../admin/functions.php:754
|
1050 |
+
msgid " is not writeable"
|
1051 |
+
msgstr "ei voida kirjoittaa !"
|
1052 |
+
|
1053 |
+
#: ../admin/functions.php:757
|
1054 |
+
msgid "File do not exists"
|
1055 |
+
msgstr "Tiedosto ei ole olemassa"
|
1056 |
+
|
1057 |
+
#: ../admin/functions.php:761
|
1058 |
+
msgid "Couldn't restore original image"
|
1059 |
+
msgstr "Alkuperäisen kuvan palautus ei onnistunut "
|
1060 |
+
|
1061 |
+
#: ../admin/functions.php:877
|
1062 |
+
msgid "(Error : Couldn't not update data base)"
|
1063 |
+
msgstr "(Virhe : tietokannan päivitys ei onnistunut)"
|
1064 |
+
|
1065 |
+
#: ../admin/functions.php:884
|
1066 |
+
msgid "(Error : Couldn't not update meta data)"
|
1067 |
+
msgstr "(Virhe : metatietojen päivitys ei onnistunut)"
|
1068 |
+
|
1069 |
+
#: ../admin/functions.php:893
|
1070 |
+
msgid "(Error : Couldn't not find image)"
|
1071 |
+
msgstr "(Virhe : kuvaa ei löytynyt)"
|
1072 |
+
|
1073 |
+
#: ../admin/functions.php:1036
|
1074 |
+
msgid "No valid URL path "
|
1075 |
+
msgstr "URL-polku ei kelpaa"
|
1076 |
+
|
1077 |
+
#: ../admin/functions.php:1052
|
1078 |
+
msgid "Import via cURL failed."
|
1079 |
+
msgstr "cURL-tuonti epäonnistui. "
|
1080 |
+
|
1081 |
+
#: ../admin/functions.php:1069
|
1082 |
+
msgid "Uploaded file was no or a faulty zip file ! The server recognized : "
|
1083 |
+
msgstr ""
|
1084 |
+
"Ladattu tiedosto ei ollut tai oli väärä zip-tiedosto. Palvelimen ilmoitus :"
|
1085 |
+
|
1086 |
+
#: ../admin/functions.php:1086
|
1087 |
+
msgid "Could not get a valid foldername"
|
1088 |
+
msgstr "Ei kelvollista hakemistonimeä"
|
1089 |
+
|
1090 |
+
#: ../admin/functions.php:1097
|
1091 |
+
#, php-format
|
1092 |
+
msgid ""
|
1093 |
+
"Unable to create directory %s. Is its parent directory writable by the "
|
1094 |
+
"server?"
|
1095 |
+
msgstr ""
|
1096 |
+
"Hakemiston %s luonti ei onnistunut. Voiko päähakemistoon palvelimella "
|
1097 |
+
"kirjoittaa?"
|
1098 |
+
|
1099 |
+
#: ../admin/functions.php:1112
|
1100 |
+
msgid "Zip-File successfully unpacked"
|
1101 |
+
msgstr "Zip-tiedosto purettu onnistuneesti"
|
1102 |
+
|
1103 |
+
#: ../admin/functions.php:1143 ../admin/functions.php:1243
|
1104 |
+
msgid "No gallery selected !"
|
1105 |
+
msgstr "Ei galleriaa valittuna !"
|
1106 |
+
|
1107 |
+
#: ../admin/functions.php:1151 ../admin/functions.php:1268
|
1108 |
+
msgid "Failure in database, no gallery path set !"
|
1109 |
+
msgstr "Tietokantavirhe, gallerialle ei ole asetettu polkua!"
|
1110 |
+
|
1111 |
+
#: ../admin/functions.php:1175 ../admin/functions.php:1262
|
1112 |
+
msgid "is no valid image file!"
|
1113 |
+
msgstr "ei ole kelvollinen kuvatiedosto !"
|
1114 |
+
|
1115 |
+
#: ../admin/functions.php:1189 ../admin/functions.php:1387
|
1116 |
+
#: ../admin/functions.php:1464
|
1117 |
+
#, php-format
|
1118 |
+
msgid ""
|
1119 |
+
"Unable to write to directory %s. Is this directory writable by the server?"
|
1120 |
+
msgstr ""
|
1121 |
+
"Hakemistoon %s ei voi kirjoittaa. Onko hakemisto palvelimella "
|
1122 |
+
"kirjoitussuojattu?"
|
1123 |
+
|
1124 |
+
#: ../admin/functions.php:1196 ../admin/functions.php:1285
|
1125 |
+
msgid "Error, the file could not be moved to : "
|
1126 |
+
msgstr "Virhe: tiedostoa ei voitu siirtää kohtaan :"
|
1127 |
+
|
1128 |
+
#: ../admin/functions.php:1201 ../admin/functions.php:1289
|
1129 |
+
msgid "Error, the file permissions could not be set"
|
1130 |
+
msgstr "Virhe: oikeuksia tiedostolle ei voitu asettaa"
|
1131 |
+
|
1132 |
+
#: ../admin/functions.php:1224
|
1133 |
+
msgid " Image(s) successfully added"
|
1134 |
+
msgstr "Kuva(t) lisätty onnistuneesti"
|
1135 |
+
|
1136 |
+
#: ../admin/functions.php:1251
|
1137 |
+
msgid "Invalid upload. Error Code : "
|
1138 |
+
msgstr "Väärä lataus. Virhekoodi :"
|
1139 |
+
|
1140 |
+
#: ../admin/functions.php:1327
|
1141 |
+
#, php-format
|
1142 |
+
msgid ""
|
1143 |
+
"SAFE MODE Restriction in effect! You need to create the folder <strong>%s</"
|
1144 |
+
"strong> manually"
|
1145 |
+
msgstr ""
|
1146 |
+
"SAFE MODE -rajoitus käytössä! Sinun on luotava hakemisto <strong>%s</strong> "
|
1147 |
+
"manuaalisesti."
|
1148 |
+
|
1149 |
+
#: ../admin/functions.php:1328
|
1150 |
+
#, php-format
|
1151 |
+
msgid ""
|
1152 |
+
"When safe_mode is on, PHP checks to see if the owner (%s) of the current "
|
1153 |
+
"script matches the owner (%s) of the file to be operated on by a file "
|
1154 |
+
"function or its directory"
|
1155 |
+
msgstr ""
|
1156 |
+
"Kun Safe-Mode on käytössä, tarkistaa PHP, vastaako tämän skriptin (%s) "
|
1157 |
+
"omistaja (%s) tiedosto- tai hakemistotoiminnon omistajaa."
|
1158 |
+
|
1159 |
+
#: ../admin/functions.php:1381 ../admin/functions.php:1458
|
1160 |
+
msgid "The destination gallery does not exist"
|
1161 |
+
msgstr "Kohdegalleriaa ei ole olemassa"
|
1162 |
+
|
1163 |
+
#: ../admin/functions.php:1412 ../lib/xmlrpc.php:222
|
1164 |
+
#, php-format
|
1165 |
+
msgid "Failed to move image %1$s to %2$s"
|
1166 |
+
msgstr "Kuvan siirto paikasta %1$s paikkaan %2$s ei onnistunut"
|
1167 |
+
|
1168 |
+
#: ../admin/functions.php:1432
|
1169 |
+
#, php-format
|
1170 |
+
msgid "Moved %1$s picture(s) to gallery : %2$s ."
|
1171 |
+
msgstr " Siirretty %1$s kuva(t) galleriaan : %2$s ."
|
1172 |
+
|
1173 |
+
#: ../admin/functions.php:1491
|
1174 |
+
#, php-format
|
1175 |
+
msgid "Failed to copy image %1$s to %2$s"
|
1176 |
+
msgstr "Kuvan %1$s kopiointi %2$s kuvaksi ei onnistunut"
|
1177 |
+
|
1178 |
+
#: ../admin/functions.php:1505
|
1179 |
+
#, php-format
|
1180 |
+
msgid "Failed to copy database row for picture %s"
|
1181 |
+
msgstr "Kuvan %s tietokantarivin kopiointi epäonnistui"
|
1182 |
+
|
1183 |
+
#: ../admin/functions.php:1517
|
1184 |
+
#, php-format
|
1185 |
+
msgid ""
|
1186 |
+
"Image %1$s (%2$s) copied as image %3$s (%4$s) » The file already "
|
1187 |
+
"existed in the destination gallery."
|
1188 |
+
msgstr ""
|
1189 |
+
"Kuva %1$s (%2$s) kopioitu kuvaksi %3$s (%4$s) » tiedosto oli jo "
|
1190 |
+
"kohdegalleriassa."
|
1191 |
+
|
1192 |
+
#: ../admin/functions.php:1520
|
1193 |
+
#, php-format
|
1194 |
+
msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
|
1195 |
+
msgstr "Kuva %1$s (%2$s) kopioitu kuvaksi %3$s (%4$s)"
|
1196 |
+
|
1197 |
+
#: ../admin/functions.php:1529
|
1198 |
+
#, php-format
|
1199 |
+
msgid "Copied %1$s picture(s) to gallery: %2$s ."
|
1200 |
+
msgstr "Kopioitu %1$s kuva(a) galleriaan: %2$s ."
|
1201 |
+
|
1202 |
+
#: ../admin/functions.php:1637
|
1203 |
+
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
|
1204 |
+
msgstr ""
|
1205 |
+
"Tiedoston koko suurempi kuin sallittu (upload_max_filesize) "
|
1206 |
+
"ohjaustiedostossa php.ini"
|
1207 |
+
|
1208 |
+
#: ../admin/functions.php:1640
|
1209 |
+
msgid ""
|
1210 |
+
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
1211 |
+
"the HTML form"
|
1212 |
+
msgstr "Tiedosto on suurempi kuin HTML-lomakkeen määritys MAX_FILE_SIZE "
|
1213 |
+
|
1214 |
+
#: ../admin/functions.php:1643
|
1215 |
+
msgid "The uploaded file was only partially uploaded"
|
1216 |
+
msgstr "Tiedosto ladattu vain osittain"
|
1217 |
+
|
1218 |
+
#: ../admin/functions.php:1646
|
1219 |
+
msgid "No file was uploaded"
|
1220 |
+
msgstr "Yhtään tiedostoa ei ladattu"
|
1221 |
+
|
1222 |
+
#: ../admin/functions.php:1649
|
1223 |
+
msgid "Missing a temporary folder"
|
1224 |
+
msgstr "Tilapäiskansiota ei löydy"
|
1225 |
+
|
1226 |
+
#: ../admin/functions.php:1652
|
1227 |
+
msgid "Failed to write file to disk"
|
1228 |
+
msgstr "Levylle kirjoitus epäonnistui"
|
1229 |
+
|
1230 |
+
#: ../admin/functions.php:1655
|
1231 |
+
msgid "File upload stopped by extension"
|
1232 |
+
msgstr "Tiedoston lataus lopetettu"
|
1233 |
+
|
1234 |
+
#: ../admin/functions.php:1658
|
1235 |
+
msgid "Unknown upload error"
|
1236 |
+
msgstr "Tuntematon latausvirhe"
|
1237 |
+
|
1238 |
+
#: ../admin/install.php:23
|
1239 |
+
msgid "Sorry, NextCellent Gallery works only with a role called administrator"
|
1240 |
+
msgstr "NextCellent Gallery toimii vain roolissa \"Administrator\""
|
1241 |
+
|
1242 |
+
#: ../admin/install.php:102
|
1243 |
+
msgid ""
|
1244 |
+
"NextCellent Gallery : Tables could not created, please check your database "
|
1245 |
+
"settings"
|
1246 |
+
msgstr ""
|
1247 |
+
"NextCellent Gallery : Tauluja ei voitu luoda, tarkista tietokanta-asetukset "
|
1248 |
+
|
1249 |
+
#: ../admin/install.php:160
|
1250 |
+
msgid "[Show as slideshow]"
|
1251 |
+
msgstr "[Näytä diasarjana]"
|
1252 |
+
|
1253 |
+
#: ../admin/install.php:161
|
1254 |
+
msgid "[Show picture list]"
|
1255 |
+
msgstr "[Näytä kuvalista]"
|
1256 |
+
|
1257 |
+
#: ../admin/manage-galleries.php:68 ../admin/manage-images.php:195
|
1258 |
+
msgid "No images selected"
|
1259 |
+
msgstr "Yhtään kuvaa ei valittuna"
|
1260 |
+
|
1261 |
+
#: ../admin/manage-galleries.php:76 ../admin/manage-galleries.php:151
|
1262 |
+
#: ../admin/manage-images.php:223 ../admin/manage-images.php:373
|
1263 |
+
#: ../admin/manage.php:211 ../admin/manage.php:290 ../admin/settings.php:394
|
1264 |
+
msgid "Resize images"
|
1265 |
+
msgstr "Muuta kuvakokoa"
|
1266 |
+
|
1267 |
+
#: ../admin/manage-galleries.php:85
|
1268 |
+
#, php-format
|
1269 |
+
msgid ""
|
1270 |
+
"You are about to start the bulk edit for %s galleries \n"
|
1271 |
+
" \n"
|
1272 |
+
" 'Cancel' to stop, 'OK' to proceed."
|
1273 |
+
msgstr ""
|
1274 |
+
"Olet aloittamassa massapäivityksen %s galleriaan \n"
|
1275 |
+
" \n"
|
1276 |
+
" 'Peruuta' lopettaaksesi, 'OK' jatkaaksesi."
|
1277 |
+
|
1278 |
+
#: ../admin/manage-galleries.php:118 ../admin/manage-galleries.php:128
|
1279 |
+
msgid "Add new gallery"
|
1280 |
+
msgstr "Lisää uusi galleria"
|
1281 |
+
|
1282 |
+
#: ../admin/manage-galleries.php:132 ../admin/manage-galleries.php:135
|
1283 |
+
#: ../admin/manage-images.php:249 ../admin/manage-images.php:252
|
1284 |
+
msgid "Search Images"
|
1285 |
+
msgstr "Etsi kuvia"
|
1286 |
+
|
1287 |
+
#: ../admin/manage-galleries.php:147 ../admin/manage-images.php:370
|
1288 |
+
#, fuzzy
|
1289 |
+
msgid "Actions"
|
1290 |
+
msgstr "Sijainti"
|
1291 |
+
|
1292 |
+
#: ../admin/manage-galleries.php:149 ../admin/manage-images.php:371
|
1293 |
+
#: ../admin/manage.php:141 ../admin/manage.php:253
|
1294 |
+
msgid "Set watermark"
|
1295 |
+
msgstr "Aseta vesileima"
|
1296 |
+
|
1297 |
+
#: ../admin/manage-galleries.php:152 ../admin/manage-images.php:376
|
1298 |
+
#: ../admin/manage.php:146 ../admin/manage.php:274
|
1299 |
+
msgid "Import metadata"
|
1300 |
+
msgstr "Tuo metadata"
|
1301 |
+
|
1302 |
+
#: ../admin/manage-galleries.php:153 ../admin/manage-images.php:374
|
1303 |
+
#: ../admin/manage.php:136 ../admin/manage.php:250
|
1304 |
+
msgid "Recover from backup"
|
1305 |
+
msgstr "Palauta varmistuksesta"
|
1306 |
+
|
1307 |
+
#: ../admin/manage-galleries.php:155 ../admin/manage-images.php:385
|
1308 |
+
msgid "Apply"
|
1309 |
+
msgstr "Hyväksy"
|
1310 |
+
|
1311 |
+
#: ../admin/manage-galleries.php:219 ../admin/tags.php:251
|
1312 |
+
msgid "Edit"
|
1313 |
+
msgstr "Muokkaa"
|
1314 |
+
|
1315 |
+
#: ../admin/manage-galleries.php:260 ../admin/manage-images.php:541
|
1316 |
+
msgid "No entries found"
|
1317 |
+
msgstr "Mitään kohteita ei löydy"
|
1318 |
+
|
1319 |
+
#: ../admin/manage-galleries.php:278
|
1320 |
+
msgid "New Gallery"
|
1321 |
+
msgstr "Uusi galleria"
|
1322 |
+
|
1323 |
+
#: ../admin/manage-galleries.php:280
|
1324 |
+
msgid "Create a new , empty gallery below the folder"
|
1325 |
+
msgstr "Luo uusi, tyhjä galleria hakemiston alle"
|
1326 |
+
|
1327 |
+
#: ../admin/manage-galleries.php:308 ../admin/manage-images.php:622
|
1328 |
+
msgid "Resize Images to"
|
1329 |
+
msgstr "Muuta kuvien kooksi "
|
1330 |
+
|
1331 |
+
#: ../admin/manage-galleries.php:311 ../admin/manage-galleries.php:340
|
1332 |
+
#: ../admin/manage-images.php:625 ../admin/manage-images.php:653
|
1333 |
+
#: ../admin/settings.php:395 ../admin/settings.php:424
|
1334 |
+
#: ../admin/settings.php:698 ../admin/tinymce/window.php:210
|
1335 |
+
#: ../admin/tinymce/window.php:318
|
1336 |
+
msgid "Width"
|
1337 |
+
msgstr "Leveys"
|
1338 |
+
|
1339 |
+
#: ../admin/manage-galleries.php:313 ../admin/manage-galleries.php:340
|
1340 |
+
#: ../admin/manage-images.php:627 ../admin/manage-images.php:654
|
1341 |
+
#: ../admin/settings.php:397 ../admin/settings.php:426
|
1342 |
+
#: ../admin/settings.php:700 ../admin/tinymce/window.php:211
|
1343 |
+
#: ../admin/tinymce/window.php:320
|
1344 |
+
msgid "Height"
|
1345 |
+
msgstr "Korkeus"
|
1346 |
+
|
1347 |
+
#: ../admin/manage-galleries.php:315 ../admin/manage-images.php:629
|
1348 |
+
#: ../admin/settings.php:399
|
1349 |
+
msgid ""
|
1350 |
+
"Width and height (in pixels). NextCellent Gallery will keep the ratio size."
|
1351 |
+
msgstr ""
|
1352 |
+
"Leveys ja korkeus (pikseleinä). NextCellent Gallery säilyttää sivusuhteen."
|
1353 |
+
|
1354 |
+
#: ../admin/manage-galleries.php:339 ../admin/manage-images.php:652
|
1355 |
+
#: ../admin/media-upload.php:242 ../admin/settings.php:663
|
1356 |
+
msgid "Size"
|
1357 |
+
msgstr "Koko"
|
1358 |
+
|
1359 |
+
#: ../admin/manage-galleries.php:341 ../admin/manage-images.php:655
|
1360 |
+
#: ../admin/settings.php:428
|
1361 |
+
msgid "These values are maximum values "
|
1362 |
+
msgstr "Nämä ovat maksimiarvot."
|
1363 |
+
|
1364 |
+
#: ../admin/manage-galleries.php:344 ../admin/manage-images.php:658
|
1365 |
+
#: ../admin/settings.php:431
|
1366 |
+
msgid "Fixed size"
|
1367 |
+
msgstr "Kiinteä koko"
|
1368 |
+
|
1369 |
+
#: ../admin/manage-galleries.php:346 ../admin/manage-images.php:660
|
1370 |
+
#: ../admin/settings.php:433
|
1371 |
+
msgid "This will ignore the aspect ratio, so no portrait thumbnails"
|
1372 |
+
msgstr "Tämä ohittaa sivusuhteen, eli ei esikatselukuvia pystyssä."
|
1373 |
+
|
1374 |
+
#: ../admin/manage-galleries.php:409 ../admin/manage-images.php:729
|
1375 |
+
msgid "ID"
|
1376 |
+
msgstr "ID"
|
1377 |
+
|
1378 |
+
#: ../admin/manage-galleries.php:412 ../admin/manage-images.php:321
|
1379 |
+
#: ../admin/overview.php:771 ../admin/style.php:295 ../lib/meta.php:458
|
1380 |
+
msgid "Author"
|
1381 |
+
msgstr "Kirjoittaja"
|
1382 |
+
|
1383 |
+
#: ../admin/manage-galleries.php:413
|
1384 |
+
msgid "Page ID"
|
1385 |
+
msgstr "Sivu-ID"
|
1386 |
+
|
1387 |
+
#: ../admin/manage-images.php:34
|
1388 |
+
msgid "Gallery not found."
|
1389 |
+
msgstr "Galleriaa ei löydy. "
|
1390 |
+
|
1391 |
+
#: ../admin/manage-images.php:40
|
1392 |
+
msgid "Sorry, you have no access here"
|
1393 |
+
msgstr "Sori, oikeutesi eivät riitä"
|
1394 |
+
|
1395 |
+
#: ../admin/manage-images.php:203
|
1396 |
+
msgid "Copy image to..."
|
1397 |
+
msgstr "Sori, oikeutesi eivät riitä"
|
1398 |
+
|
1399 |
+
#: ../admin/manage-images.php:207
|
1400 |
+
msgid "Move image to..."
|
1401 |
+
msgstr "Siirrä kuva..."
|
1402 |
+
|
1403 |
+
#: ../admin/manage-images.php:211
|
1404 |
+
msgid "Add new tags"
|
1405 |
+
msgstr "Lisää tägejä"
|
1406 |
+
|
1407 |
+
#: ../admin/manage-images.php:215 ../admin/manage-images.php:382
|
1408 |
+
msgid "Delete tags"
|
1409 |
+
msgstr "Poista tägejä"
|
1410 |
+
|
1411 |
+
#: ../admin/manage-images.php:219
|
1412 |
+
msgid "Overwrite"
|
1413 |
+
msgstr "Kirjoita yli"
|
1414 |
+
|
1415 |
+
#: ../admin/manage-images.php:232
|
1416 |
+
#, php-format
|
1417 |
+
msgid ""
|
1418 |
+
"You are about to start the bulk edit for %s images \n"
|
1419 |
+
" \n"
|
1420 |
+
" 'Cancel' to stop, 'OK' to proceed."
|
1421 |
+
msgstr ""
|
1422 |
+
"Olet aloittamassa massamuokkauksen %s kuville\n"
|
1423 |
+
" \n"
|
1424 |
+
" 'Peruuta' lopettaaksesi, 'OK' jatkaaksesi."
|
1425 |
+
|
1426 |
+
#: ../admin/manage-images.php:246
|
1427 |
+
#, php-format
|
1428 |
+
msgid "Search results for “%s”"
|
1429 |
+
msgstr "Hakutulokset “%s”"
|
1430 |
+
|
1431 |
+
#: ../admin/manage-images.php:275 ../admin/settings.php:457
|
1432 |
+
msgid "Gallery settings"
|
1433 |
+
msgstr "Gallerian asetukset"
|
1434 |
+
|
1435 |
+
#: ../admin/manage-images.php:275
|
1436 |
+
msgid "Click here for more settings"
|
1437 |
+
msgstr "Klikkaa tästä lisäasetuksille"
|
1438 |
+
|
1439 |
+
#: ../admin/manage-images.php:294
|
1440 |
+
msgid "Preview image"
|
1441 |
+
msgstr "Katso kuvaa"
|
1442 |
+
|
1443 |
+
#: ../admin/manage-images.php:297
|
1444 |
+
msgid "No Picture"
|
1445 |
+
msgstr "Ei kuvaa"
|
1446 |
+
|
1447 |
+
#: ../admin/manage-images.php:319
|
1448 |
+
msgid "Path"
|
1449 |
+
msgstr "Polku "
|
1450 |
+
|
1451 |
+
#: ../admin/manage-images.php:334
|
1452 |
+
#, fuzzy
|
1453 |
+
msgid "Gallery ID"
|
1454 |
+
msgstr "Galleria ID=%s ei ole olemassa."
|
1455 |
+
|
1456 |
+
#: ../admin/manage-images.php:336
|
1457 |
+
msgid "Create new page"
|
1458 |
+
msgstr "Luo uusi sivu"
|
1459 |
+
|
1460 |
+
#: ../admin/manage-images.php:339
|
1461 |
+
msgid "Main page (No parent)"
|
1462 |
+
msgstr "Pääsivu (ei pääsivua)"
|
1463 |
+
|
1464 |
+
#: ../admin/manage-images.php:344
|
1465 |
+
msgid "Add page"
|
1466 |
+
msgstr "Lisää sivu"
|
1467 |
+
|
1468 |
+
#: ../admin/manage-images.php:354
|
1469 |
+
#, fuzzy
|
1470 |
+
msgid "Scan folder for new images"
|
1471 |
+
msgstr "Luo uusi, tyhjä galleria hakemiston alle"
|
1472 |
+
|
1473 |
+
#: ../admin/manage-images.php:355
|
1474 |
+
msgid "Old scanning"
|
1475 |
+
msgstr ""
|
1476 |
+
|
1477 |
+
#: ../admin/manage-images.php:356 ../admin/manage-images.php:391
|
1478 |
+
#: ../admin/manage-images.php:548 ../admin/settings.php:379
|
1479 |
+
#: ../admin/settings.php:447 ../admin/settings.php:537
|
1480 |
+
#: ../admin/settings.php:571 ../admin/settings.php:681
|
1481 |
+
#: ../admin/settings.php:833
|
1482 |
+
msgid "Save Changes"
|
1483 |
+
msgstr "Tallenna muutokset"
|
1484 |
+
|
1485 |
+
#: ../admin/manage-images.php:375
|
1486 |
+
msgid "Delete images"
|
1487 |
+
msgstr "Poista k
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|