NextGEN Gallery – WordPress Gallery Plugin - Version 0.50

Version Description

Download this release

Release Info

Developer alexrabe
Plugin Icon 128x128 NextGEN Gallery – WordPress Gallery Plugin
Version 0.50
Comparing to
See all releases

Code changes from version 0.43 to 0.50

admin/about.php CHANGED
@@ -84,6 +84,8 @@ function ngg_list_support() {
84
  "Lazy (German Translation)" => "http://www.lazychris.de/",
85
  "Lise (French Translation)" => "http://liseweb.fr/",
86
  "Anja (Dutch Translation)" => "http://www.werkgroepen.net/wordpress",
 
 
87
  "Wojciech Owczarek (Polish Translation)" => "http://www.owczi.net"
88
  );
89
 
84
  "Lazy (German Translation)" => "http://www.lazychris.de/",
85
  "Lise (French Translation)" => "http://liseweb.fr/",
86
  "Anja (Dutch Translation)" => "http://www.werkgroepen.net/wordpress",
87
+ "Adrian (Indonesian Translation)" => "http://adrian.web.id/",
88
+ "Mika Pennanen (Finnish Translation)" => "http://kapsi.fi/~penni",
89
  "Wojciech Owczarek (Polish Translation)" => "http://www.owczi.net"
90
  );
91
 
admin/addgallery.php CHANGED
@@ -4,7 +4,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
4
  include_once(NGGALLERY_ABSPATH.'/lib/thumbnail.inc.php');
5
 
6
  function nggallery_admin_add_gallery() {
7
-
8
  global $wpdb;
9
  $ngg_options = get_option('ngg_options');
10
 
@@ -20,7 +20,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
20
  if ($_FILES['zipfile']['error'] == 0)
21
  $messagetext = ngg_import_zipfile($defaultpath);
22
  else
23
- $messagetext = '<font color="res">'.__('Upload failed!','nggallery').'</font>';
24
  }
25
 
26
  if ($_POST['importfolder']){
@@ -30,31 +30,30 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
30
  }
31
 
32
  if ($_POST['uploadimage']){
33
- if ($_FILES['imagefiles']['error'] == 0)
34
  $messagetext = ngg_upload_images($defaultpath);
 
35
  else
36
- $messagetext = '<font color="res">'.__('Upload failed!','nggallery').'</font>';
37
  }
38
 
39
  // message windows
40
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
41
 
42
  ?>
43
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/jquery.js"></script>
44
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/interface.js"></script>
45
  <script type="text/javascript">
46
  var currentTab = null;
47
  var inSlide = false;
48
- $(document).ready(
49
  function()
50
  {
51
  var url, tab = 0, tabIteration = 0;
52
 
53
  url = window.location.href.split("#");
54
  if (url.length == 2 && url[1].indexOf('-slider') > 0) {
55
- currentTab = $('#' + url[1].substr(0, url[1].length-7));
56
  if (currentTab.size() == 1) {
57
- $('#slider div').each(
58
  function(iteration)
59
  {
60
  if(this === currentTab.get(0)) {
@@ -66,11 +65,11 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
66
  }
67
 
68
  if(!currentTab) {
69
- currentTab = $('#slider div:first');
70
  }
71
 
72
  currentTab.SlideToggleUp(500);
73
- $('#tabs a')
74
  .eq(tabIteration).addClass('active')
75
  .end()
76
  .bind('click', switchTab);
@@ -82,21 +81,30 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
82
  // get id from link
83
  var tabName = this.href.split('#')[1];
84
  this.blur();
85
- if (inSlide == false && currentTab.get(0) != $('#' + tabName.substr(0, tabName.length-7)).get(0)) {
86
- $('#tabs a').removeClass('active');
87
- $(this).addClass('active');
88
  inSlide = true;
89
  currentTab.SlideToggleUp(
90
  500,
91
  function()
92
  {
93
- currentTab = $('#' + tabName.substr(0, tabName.length-7)).SlideToggleUp(500, function(){inSlide=false;});
94
  }
95
  );
96
  } else {
97
  return false;
98
  }
99
  };
 
 
 
 
 
 
 
 
 
100
  </script>
101
  <div class="wrap" style="text-align: center">
102
  <div id="tabs">
@@ -113,7 +121,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
113
  <!-- create gallery -->
114
  <div id="addgallery" class="wrap" style="display:none">
115
  <h2><?php _e('Add new gallery', 'nggallery') ;?></h2>
116
- <form name="addgallery" id="post" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>" >
117
  <fieldset class="options">
118
  <table class="optiontable">
119
  <tr valign="top">
@@ -130,7 +138,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
130
  <!-- zip-file operation -->
131
  <div id="zipupload" class="wrap" style="display:none">
132
  <h2><?php _e('Upload a Zip-File', 'nggallery') ;?></h2>
133
- <form name="zipupload" id="post" method="POST" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#zipupload-slider'; ?>" >
134
  <fieldset class="options">
135
  <table class="optiontable">
136
  <tr valign="top">
@@ -146,7 +154,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
146
  <!-- import folder -->
147
  <div id="importfolder" class="wrap" style="display:none">
148
  <h2><?php _e('Import image folder', 'nggallery') ;?></h2>
149
- <form name="importfolder" id="post" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#importfolder-slider'; ?>" >
150
  <fieldset class="options">
151
  <table class="optiontable">
152
  <tr valign="top">
@@ -163,12 +171,12 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
163
  <!-- upload images -->
164
  <div id="uploadimage" class="wrap" style="display:none">
165
  <h2><?php _e('Upload Images', 'nggallery') ;?></h2>
166
- <form name="uploadimage" id="post" method="POST" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#uploadimage-slider'; ?>" >
167
  <fieldset class="options">
168
  <table class="optiontable">
169
  <tr valign="top">
170
  <th scope="row"><?php _e('Upload image', 'nggallery') ;?></th>
171
- <td><input type="file" name="imagefiles" id="imagefiles" size="35" class="uploadform"/></td>
172
  </tr>
173
  <tr valign="top">
174
  <th scope="row"><?php _e('in to', 'nggallery') ;?></th>
@@ -183,7 +191,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
183
  }
184
  ?>
185
  </select>
186
- <br /><?php _e('At the moment only a single file upload is supported.', 'nggallery') ;?></td>
187
  </tr>
188
  </table>
189
  <div class="submit"><input type="submit" name= "uploadimage" value="<?php _e('Upload images', 'nggallery') ;?>"/></div>
@@ -207,8 +215,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
207
  $new_pathname = preg_replace('|[^a-z0-9-]|i', '', $new_pathname);
208
 
209
  if (empty($new_pathname)) return '<font color="red">'.__('No valid gallery name!', 'nggallery'). '</font>';
210
- if ( substr(decoct(@fileperms($myabspath.$defaultpath)),1) != '0777' )
211
- return '<font color="red">'.__('Directory', 'nggallery').' <strong>'.$defaultpath.'</strong> '.__('didn\'t have the permissions 777!', 'nggallery').'</font>';
212
 
213
  $nggpath = $defaultpath.$new_pathname;
214
 
@@ -217,10 +225,10 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
217
 
218
  // create new directories
219
  if (!SAFE_MODE) {
220
- if (!@mkdir ($myabspath.$nggpath,0777)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$nggpath.'!</font>');
221
- if (!@chmod ($myabspath.$nggpath,0777)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$nggpath.'!</font>');
222
- if (!@mkdir ($myabspath.$nggpath.'/thumbs',0777)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$nggpath.'/thumbs !</font>');
223
- if (!@chmod ($myabspath.$nggpath.'/thumbs',0777)) return ('<font color="red">'.__('Unable to set directory permissions', 'nggallery').$nggpath.'/thumbs !</font>');
224
  } else {
225
  $safemode = '<br /><font color="green">'.__('The server Safe-Mode is on !', 'nggallery');
226
  $safemode .= '<br />'.__('Please create directory ', 'nggallery').'<strong>'.$nggpath.'</strong> ';
@@ -258,7 +266,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
258
  $check_thumbnail_folder = ngg_get_thumbnail_folder($gallerypath);
259
  if (!$check_thumbnail_folder) {
260
  if (SAFE_MODE) return '<font color="red">'.__('Thumbnail Directory', 'nggallery').' <strong>'.$gallerypath.'/thumbs</strong> '.__('doesn&#96;t exist', 'nggallery').'!<br />'.__('Please create the folder <i>thumbs</i> in your gallery folder.', 'nggallery').'</font>';
261
- else @mkdir ($gallerypath.'/thumbs',0777) or die ('<font color="red">'.__('Unable to create directory ', 'nggallery').$gallerypath.'/thumbs !</font>');
262
  }
263
 
264
  // take folder name as gallery name
@@ -306,19 +314,24 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
306
  if (is_array($pictures)) {
307
  foreach($pictures as $picture) {
308
 
309
- //TODO: Check for file permission
310
- $thumb = new ngg_Thumbnail($gallery_absfolder."/".$picture, TRUE);
311
- // echo $thumb->errmsg;
312
- // skip if file is not there
313
- if (!$thumb->error) {
314
- echo $gallery_absfolder."/".$picture;
315
- $thumb->resize($ngg_options[imgWidth],$ngg_options[imgHeight],$ngg_options[imgResampleMode]);
316
- $thumb->save($gallery_absfolder."/".$picture,$ngg_options[imgQuality]);
317
- }
318
- $thumb->destruct();
 
 
 
319
  }
320
  }
321
 
 
 
322
  return;
323
  }
324
 
@@ -331,7 +344,11 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
331
  if (is_array($pictures)) {
332
  foreach($pictures as $picture) {
333
 
334
- //TODO: Check for file permission
 
 
 
 
335
  $thumb = new ngg_Thumbnail($gallery_absfolder."/".$picture, TRUE);
336
  // echo $thumb->errmsg;
337
  // skip if file is not there
@@ -351,6 +368,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
351
  }
352
  }
353
 
 
 
354
  return;
355
  }
356
 
@@ -366,9 +385,16 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
366
  if (is_array($pictures)) {
367
  foreach($pictures as $picture) {
368
 
 
 
 
 
 
 
 
 
369
  $thumb = new ngg_Thumbnail($gallery_absfolder."/".utf8_decode($picture), TRUE);
370
-
371
- // echo $thumb->errmsg;
372
  // skip if file is not there
373
  if (!$thumb->error) {
374
  if ($ngg_options[thumbresizebefore]) {
@@ -376,13 +402,27 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
376
  $thumb->cropFromCenter($ngg_options[thumbwidth],$ngg_options[thumbResampleMode]);
377
  } else {
378
  if ($ngg_options[thumbcrop]) $thumb->cropFromCenter($ngg_options[thumbwidth],$ngg_options[thumbResampleMode]);
379
- else $thumb->resize($ngg_options[thumbwidth],$ngg_options[thumbheight],$ngg_options[thumbResampleMode]);
 
 
 
 
 
 
 
 
 
 
 
 
380
  }
381
  $thumb->save($gallery_absfolder.$thumbfolder.$prefix.$picture,$ngg_options[thumbquality]);
382
  }
383
  $thumb->destruct();
384
  }
385
  }
 
 
386
 
387
  return;
388
  }
@@ -394,7 +434,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
394
  require_once(NGGALLERY_ABSPATH.'/lib/pclzip.lib.php');
395
 
396
  $archive = new PclZip($file);
397
-
 
398
  if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) {
399
  die("Error : ".$archive->errorInfo(true));
400
  }
@@ -420,10 +461,10 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
420
 
421
  if (!is_dir($newfolder)) {
422
  // create new directories
423
- if (!@mkdir ($newfolder, 0777)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$newfolder.'!</font>');
424
- if (!@chmod ($newfolder, 0777)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$newfolder.'!</font>');
425
- if (!@mkdir ($newfolder.'/thumbs', 0777)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$newfolder.'/thumbs !</font>');
426
- if (!@chmod ($newfolder.'/thumbs', 0777)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$newfolder.'/thumbs !</font>');
427
  }
428
  else {
429
  return '<font color="red">'.__('Directory already exists, please rename zip file', 'nggallery').'!</font>';
@@ -444,40 +485,50 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
444
  // **************************************************************
445
  function ngg_upload_images($defaultpath) {
446
  // upload of pictures
447
- //TODO: Multiple upload form
448
 
449
  global $wpdb;
450
-
451
- $temp_file = $_FILES['imagefiles']['tmp_name'];
452
- $filename = $_FILES['imagefiles']['name'];
453
-
454
- $dest_gallery = $_POST['galleryselect'];
455
- if ($dest_gallery == 0) {
456
- @unlink($temp_file) or die ('<div class="updated"><p><strong>'.__('Unable to unlink file ', 'nggallery').$temp_zipfile.'!</strong></p></div>');
457
- return '<font color="red">'.__('No gallery selected !','nggallery').'</font>';
458
- }
459
-
460
- // get the path to the gallery
461
- $gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$dest_gallery' ");
462
- if (!$gallerypath){
463
- @unlink($temp_file) or die ('<div class="updated"><p><strong>'.__('Unable to unlink file ', 'nggallery').$temp_zipfile.'!</strong></p></div>');
464
- return '<font color="red">'.__('Failure in database, no gallery path set !','nggallery').'</font>';
465
- }
466
-
467
- $dest_file = WINABSPATH.$gallerypath."/".$filename;
468
 
469
- // save temp file to gallery
470
- if (!@move_uploaded_file($_FILES['imagefiles']['tmp_name'], $dest_file)) return '<font color="red">'.__('Error, the file could not moved to : ','nggallery').$dest_file.'</font>';
471
- if (!@chmod ($dest_file, 0666)) return '<font color="red">'.__('Error, the file permissions could not set','nggallery').'</font>';
472
-
473
  // Images must be an array
474
  $imageslist = array();
475
- $imageslist[] = $filename;
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
  //create thumbnails
478
  ngg_generatethumbnail(WINABSPATH.$gallerypath,$imageslist);
479
 
480
  // add images to database
 
481
  if (is_array($imageslist)) {
482
  foreach($imageslist as $picture) {
483
  $result = $wpdb->query("INSERT INTO $wpdb->nggpictures (galleryid, filename, alttext, exclude) VALUES ('$dest_gallery', '$picture', '$picture', 0) ");
@@ -485,7 +536,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
485
  }
486
  }
487
 
488
- return '<font color="green">'.__('Images successfully added','nggallery').'</font>';
489
 
490
  } // end function
491
 
4
  include_once(NGGALLERY_ABSPATH.'/lib/thumbnail.inc.php');
5
 
6
  function nggallery_admin_add_gallery() {
7
+
8
  global $wpdb;
9
  $ngg_options = get_option('ngg_options');
10
 
20
  if ($_FILES['zipfile']['error'] == 0)
21
  $messagetext = ngg_import_zipfile($defaultpath);
22
  else
23
+ $messagetext = '<font color="red">'.__('Upload failed!','nggallery').'</font>';
24
  }
25
 
26
  if ($_POST['importfolder']){
30
  }
31
 
32
  if ($_POST['uploadimage']){
33
+ if ($_FILES['MF__F_0_0']['error'] == 0) {
34
  $messagetext = ngg_upload_images($defaultpath);
35
+ }
36
  else
37
+ $messagetext = '<font color="red">'.__('Upload failed!','nggallery').'</font>';
38
  }
39
 
40
  // message windows
41
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
42
 
43
  ?>
 
 
44
  <script type="text/javascript">
45
  var currentTab = null;
46
  var inSlide = false;
47
+ jQuery(document).ready(
48
  function()
49
  {
50
  var url, tab = 0, tabIteration = 0;
51
 
52
  url = window.location.href.split("#");
53
  if (url.length == 2 && url[1].indexOf('-slider') > 0) {
54
+ currentTab = jQuery('#' + url[1].substr(0, url[1].length-7));
55
  if (currentTab.size() == 1) {
56
+ jQuery('#slider div').each(
57
  function(iteration)
58
  {
59
  if(this === currentTab.get(0)) {
65
  }
66
 
67
  if(!currentTab) {
68
+ currentTab = jQuery('#slider div:first');
69
  }
70
 
71
  currentTab.SlideToggleUp(500);
72
+ jQuery('#tabs a')
73
  .eq(tabIteration).addClass('active')
74
  .end()
75
  .bind('click', switchTab);
81
  // get id from link
82
  var tabName = this.href.split('#')[1];
83
  this.blur();
84
+ if (inSlide == false && currentTab.get(0) != jQuery('#' + tabName.substr(0, tabName.length-7)).get(0)) {
85
+ jQuery('#tabs a').removeClass('active');
86
+ jQuery(this).addClass('active');
87
  inSlide = true;
88
  currentTab.SlideToggleUp(
89
  500,
90
  function()
91
  {
92
+ currentTab = jQuery('#' + tabName.substr(0, tabName.length-7)).SlideToggleUp(500, function(){inSlide=false;});
93
  }
94
  );
95
  } else {
96
  return false;
97
  }
98
  };
99
+
100
+ jQuery(function(){
101
+ jQuery('#imagefiles').MultiFile({
102
+ STRING: {
103
+ remove:'<?php _e('remove', 'nggallery') ;?>'
104
+ }
105
+ });
106
+ });
107
+
108
  </script>
109
  <div class="wrap" style="text-align: center">
110
  <div id="tabs">
121
  <!-- create gallery -->
122
  <div id="addgallery" class="wrap" style="display:none">
123
  <h2><?php _e('Add new gallery', 'nggallery') ;?></h2>
124
+ <form name="addgallery" id="addgallery" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>" >
125
  <fieldset class="options">
126
  <table class="optiontable">
127
  <tr valign="top">
138
  <!-- zip-file operation -->
139
  <div id="zipupload" class="wrap" style="display:none">
140
  <h2><?php _e('Upload a Zip-File', 'nggallery') ;?></h2>
141
+ <form name="zipupload" id="zipupload" method="POST" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#zipupload-slider'; ?>" >
142
  <fieldset class="options">
143
  <table class="optiontable">
144
  <tr valign="top">
154
  <!-- import folder -->
155
  <div id="importfolder" class="wrap" style="display:none">
156
  <h2><?php _e('Import image folder', 'nggallery') ;?></h2>
157
+ <form name="importfolder" id="importfolder" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#importfolder-slider'; ?>" >
158
  <fieldset class="options">
159
  <table class="optiontable">
160
  <tr valign="top">
171
  <!-- upload images -->
172
  <div id="uploadimage" class="wrap" style="display:none">
173
  <h2><?php _e('Upload Images', 'nggallery') ;?></h2>
174
+ <form name="uploadimage" id="uploadimage" method="POST" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#uploadimage-slider'; ?>" >
175
  <fieldset class="options">
176
  <table class="optiontable">
177
  <tr valign="top">
178
  <th scope="row"><?php _e('Upload image', 'nggallery') ;?></th>
179
+ <td><input type="file" name="imagefiles" id="imagefiles" size="35" class="imagefiles"/></td>
180
  </tr>
181
  <tr valign="top">
182
  <th scope="row"><?php _e('in to', 'nggallery') ;?></th>
191
  }
192
  ?>
193
  </select>
194
+ <br /><?php echo _e('Note : The upload limit on your server is ','nggallery') . "<strong>" . ini_get('upload_max_filesize') . "Byte</strong>\n"; ?></td>
195
  </tr>
196
  </table>
197
  <div class="submit"><input type="submit" name= "uploadimage" value="<?php _e('Upload images', 'nggallery') ;?>"/></div>
215
  $new_pathname = preg_replace('|[^a-z0-9-]|i', '', $new_pathname);
216
 
217
  if (empty($new_pathname)) return '<font color="red">'.__('No valid gallery name!', 'nggallery'). '</font>';
218
+ if ( substr(decoct(@fileperms($myabspath.$defaultpath)),1) != NGGFOLDER_PERMISSION )
219
+ return '<font color="red">'.__('Directory', 'nggallery').' <strong>'.$defaultpath.'</strong> '.__('didn\'t have the permissions ', 'nggallery').NGGFOLDER_PERMISSION.'!</font>';
220
 
221
  $nggpath = $defaultpath.$new_pathname;
222
 
225
 
226
  // create new directories
227
  if (!SAFE_MODE) {
228
+ if (!@mkdir ($myabspath.$nggpath,NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$nggpath.'!</font>');
229
+ if (!@chmod ($myabspath.$nggpath,NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$nggpath.'!</font>');
230
+ if (!@mkdir ($myabspath.$nggpath.'/thumbs',NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$nggpath.'/thumbs !</font>');
231
+ if (!@chmod ($myabspath.$nggpath.'/thumbs',NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to set directory permissions', 'nggallery').$nggpath.'/thumbs !</font>');
232
  } else {
233
  $safemode = '<br /><font color="green">'.__('The server Safe-Mode is on !', 'nggallery');
234
  $safemode .= '<br />'.__('Please create directory ', 'nggallery').'<strong>'.$nggpath.'</strong> ';
266
  $check_thumbnail_folder = ngg_get_thumbnail_folder($gallerypath);
267
  if (!$check_thumbnail_folder) {
268
  if (SAFE_MODE) return '<font color="red">'.__('Thumbnail Directory', 'nggallery').' <strong>'.$gallerypath.'/thumbs</strong> '.__('doesn&#96;t exist', 'nggallery').'!<br />'.__('Please create the folder <i>thumbs</i> in your gallery folder.', 'nggallery').'</font>';
269
+ else @mkdir ($gallerypath.'/thumbs',NGGFOLDER_PERMISSION) or die ('<font color="red">'.__('Unable to create directory ', 'nggallery').$gallerypath.'/thumbs !</font>');
270
  }
271
 
272
  // take folder name as gallery name
314
  if (is_array($pictures)) {
315
  foreach($pictures as $picture) {
316
 
317
+ if (!is_writable($gallery_absfolder."/".$picture)) {
318
+ $messagetext .= $gallery_absfolder."/".$picture."<br />";
319
+ continue;
320
+ }
321
+
322
+ $thumb = new ngg_Thumbnail($gallery_absfolder."/".$picture, TRUE);
323
+ // echo $thumb->errmsg;
324
+ // skip if file is not there
325
+ if (!$thumb->error) {
326
+ $thumb->resize($ngg_options[imgWidth],$ngg_options[imgHeight],$ngg_options[imgResampleMode]);
327
+ $thumb->save($gallery_absfolder."/".$picture,$ngg_options[imgQuality]);
328
+ }
329
+ $thumb->destruct();
330
  }
331
  }
332
 
333
+ if(!empty($messagetext)) echo '<div id="message-error" class="error fade"><p><strong>'.__('Some pictures are not writeable :','nggallery').'</strong><br /><ul>'.$messagetext.'</ul></p></div>';
334
+
335
  return;
336
  }
337
 
344
  if (is_array($pictures)) {
345
  foreach($pictures as $picture) {
346
 
347
+ if (!is_writable($gallery_absfolder."/".$picture)) {
348
+ $messagetext .= $gallery_absfolder."/".$picture."<br />";
349
+ continue;
350
+ }
351
+
352
  $thumb = new ngg_Thumbnail($gallery_absfolder."/".$picture, TRUE);
353
  // echo $thumb->errmsg;
354
  // skip if file is not there
368
  }
369
  }
370
 
371
+ if(!empty($messagetext)) echo '<div id="message-error" class="error fade"><p><strong>'.__('Some pictures are not writeable :','nggallery').'</strong><br /><ul>'.$messagetext.'</ul></p></div>';
372
+
373
  return;
374
  }
375
 
385
  if (is_array($pictures)) {
386
  foreach($pictures as $picture) {
387
 
388
+ // check for existing thumbnail
389
+ if (file_exists($gallery_absfolder.$thumbfolder.$prefix.$picture)) {
390
+ if (!is_writable($gallery_absfolder.$thumbfolder.$prefix.$picture)) {
391
+ $messagetext .= $gallery_absfolder."/".$picture."<br />";
392
+ continue;
393
+ }
394
+ }
395
+
396
  $thumb = new ngg_Thumbnail($gallery_absfolder."/".utf8_decode($picture), TRUE);
397
+
 
398
  // skip if file is not there
399
  if (!$thumb->error) {
400
  if ($ngg_options[thumbresizebefore]) {
402
  $thumb->cropFromCenter($ngg_options[thumbwidth],$ngg_options[thumbResampleMode]);
403
  } else {
404
  if ($ngg_options[thumbcrop]) $thumb->cropFromCenter($ngg_options[thumbwidth],$ngg_options[thumbResampleMode]);
405
+ else {
406
+ // check for portrait format
407
+ if ($thumb->currentDimensions['height'] > $thumb->currentDimensions['width']) {
408
+ if ($ngg_options[thumbfix]) {
409
+ $thumb->resize($ngg_options[thumbwidth],0 ,$ngg_options[thumbResampleMode]);
410
+ // get optimal startpos
411
+ $ypos = intval(($thumb->currentDimensions['height'] - $ngg_options[thumbheight]) / 2);
412
+ $thumb->crop(0, $ypos, $ngg_options[thumbwidth],$ngg_options[thumbheight],$ngg_options[thumbResampleMode]);
413
+ }
414
+ } else {
415
+ $thumb->resize($ngg_options[thumbwidth],$ngg_options[thumbheight],$ngg_options[thumbResampleMode]);
416
+ }
417
+ }
418
  }
419
  $thumb->save($gallery_absfolder.$thumbfolder.$prefix.$picture,$ngg_options[thumbquality]);
420
  }
421
  $thumb->destruct();
422
  }
423
  }
424
+
425
+ if(!empty($messagetext)) echo '<div id="message-error" class="error fade"><p><strong>'.__('Some thumbnails are not writeable :','nggallery').'</strong><br /><ul>'.$messagetext.'</ul></p></div>';
426
 
427
  return;
428
  }
434
  require_once(NGGALLERY_ABSPATH.'/lib/pclzip.lib.php');
435
 
436
  $archive = new PclZip($file);
437
+
438
+ //TODO: Check PCLZIP_OPT_REMOVE_ALL_PATH to remove path
439
  if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) {
440
  die("Error : ".$archive->errorInfo(true));
441
  }
461
 
462
  if (!is_dir($newfolder)) {
463
  // create new directories
464
+ if (!@mkdir ($newfolder, NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$newfolder.'!</font>');
465
+ if (!@chmod ($newfolder, NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$newfolder.'!</font>');
466
+ if (!@mkdir ($newfolder.'/thumbs', NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to create directory ', 'nggallery').$newfolder.'/thumbs !</font>');
467
+ if (!@chmod ($newfolder.'/thumbs', NGGFOLDER_PERMISSION)) return ('<font color="red">'.__('Unable to set directory permissions ', 'nggallery').$newfolder.'/thumbs !</font>');
468
  }
469
  else {
470
  return '<font color="red">'.__('Directory already exists, please rename zip file', 'nggallery').'!</font>';
485
  // **************************************************************
486
  function ngg_upload_images($defaultpath) {
487
  // upload of pictures
 
488
 
489
  global $wpdb;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
 
 
 
 
 
491
  // Images must be an array
492
  $imageslist = array();
 
493
 
494
+ foreach ($_FILES as $key => $value) {
495
+
496
+ // look only for uploded files
497
+ if ($_FILES[$key]['error'] == 0) {
498
+
499
+ $temp_file = $_FILES[$key]['tmp_name'];
500
+ $filename = $_FILES[$key]['name'];
501
+
502
+ $dest_gallery = $_POST['galleryselect'];
503
+ if ($dest_gallery == 0) {
504
+ @unlink($temp_file) or die ('<div class="updated"><p><strong>'.__('Unable to unlink file ', 'nggallery').$temp_zipfile.'!</strong></p></div>');
505
+ return '<font color="red">'.__('No gallery selected !','nggallery').'</font>';
506
+ }
507
+
508
+ // get the path to the gallery
509
+ $gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$dest_gallery' ");
510
+ if (!$gallerypath){
511
+ @unlink($temp_file) or die ('<div class="updated"><p><strong>'.__('Unable to unlink file ', 'nggallery').$temp_zipfile.'!</strong></p></div>');
512
+ return '<font color="red">'.__('Failure in database, no gallery path set !','nggallery').'</font>';
513
+ }
514
+
515
+ $dest_file = WINABSPATH.$gallerypath."/".$filename;
516
+
517
+ // save temp file to gallery
518
+ if (!@move_uploaded_file($_FILES[$key]['tmp_name'], $dest_file)) return '<font color="red">'.__('Error, the file could not moved to : ','nggallery').$dest_file.'</font>';
519
+ if (!@chmod ($dest_file, NGGFILE_PERMISSION)) return '<font color="red">'.__('Error, the file permissions could not set','nggallery').'</font>';
520
+
521
+ // add to imagelist
522
+ $imageslist[] = $filename;
523
+
524
+ }
525
+ }
526
+
527
  //create thumbnails
528
  ngg_generatethumbnail(WINABSPATH.$gallerypath,$imageslist);
529
 
530
  // add images to database
531
+ $count_pic = 0;
532
  if (is_array($imageslist)) {
533
  foreach($imageslist as $picture) {
534
  $result = $wpdb->query("INSERT INTO $wpdb->nggpictures (galleryid, filename, alttext, exclude) VALUES ('$dest_gallery', '$picture', '$picture', 0) ");
536
  }
537
  }
538
 
539
+ return '<font color="green">'.$count_pic.__(' Images successfully added','nggallery').'</font>';
540
 
541
  } // end function
542
 
admin/admin.php CHANGED
@@ -1,10 +1,39 @@
1
  <?php
2
  // ************************************
3
  // ** Admin Section for NextGEN Gallery
4
- // ** for V 0.01
5
  // ** by Alex Rabe
6
  // ************************************
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  // add to menu
9
  add_action('admin_menu', 'add_nextgen_gallery_menu');
10
 
1
  <?php
2
  // ************************************
3
  // ** Admin Section for NextGEN Gallery
4
+ // ** for V 0.50
5
  // ** by Alex Rabe
6
  // ************************************
7
 
8
+ // add to header in admin area
9
+ add_action('admin_head', 'ngg_nocache');
10
+ function ngg_nocache() {
11
+ echo "\n".'<meta name="NextGEN" content="'.NGGVERSION.'" />';
12
+ echo "\n".'<meta http-equiv="pragma" content="no-cache" />'."\n";
13
+ }
14
+
15
+ // load script files
16
+ add_action('init', 'ngg_add_admin_js',1);
17
+ function ngg_add_admin_js() {
18
+ if ($wp_version < "2.2") {
19
+ wp_register_script('jquery', NGGALLERY_URLPATH .'admin/js/jquery.js', FALSE, '1.1.2');
20
+ }
21
+ switch ($_GET['page']) {
22
+ case "nggallery-manage-gallery" :
23
+ wp_enqueue_script('interface', NGGALLERY_URLPATH .'admin/js/interface.js', array('jquery'), '1.2');
24
+ wp_enqueue_script('thickbox', NGGALLERY_URLPATH .'thickbox/thickbox-pack.js', array('jquery'), '3.0.1');
25
+ break;
26
+ case "nggallery-manage-album" :
27
+ case "nggallery-options" :
28
+ wp_enqueue_script('interface', NGGALLERY_URLPATH .'admin/js/interface.js', array('jquery'), '1.2');
29
+ break;
30
+ case "nggallery-add-gallery" :
31
+ wp_enqueue_script('interface', NGGALLERY_URLPATH .'admin/js/interface.js', array('jquery'), '1.2');
32
+ wp_enqueue_script('mutlifile', NGGALLERY_URLPATH .'admin/js/jquery.MultiFile.js', array('jquery'), '1.1.1');
33
+ break;
34
+ }
35
+ }
36
+
37
  // add to menu
38
  add_action('admin_menu', 'add_nextgen_gallery_menu');
39
 
admin/album.php CHANGED
@@ -16,7 +16,7 @@ function nggallery_admin_manage_album() {
16
 
17
  if ($_POST['act_album'] > 0){
18
  $albumid = $_POST['act_album'];
19
-
20
  // get variable galleryContainer
21
  parse_str($_POST['sortorder']);
22
  if (is_array($galleryContainer)){
@@ -44,22 +44,20 @@ function nggallery_admin_manage_album() {
44
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
45
 
46
  ?>
47
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/jquery.js"></script>
48
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/interface.js"></script>
49
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>css/nggallery.css";</style>
50
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>admin/js/portlets.css";</style>
51
  <script type="text/javascript">
52
 
53
- $(document).ready(
54
  function()
55
  {
56
  //updating the height of the white backround box, it does not work without this stupid lines
57
  //problem: absolute positioning of the minimizing links in item_top does not work :(
58
  //position: absolute; right:5px; top:0px; border-bottom: 2px solid #003333; css lines of .groupItem .item_top a
59
- var hei = $('.wrap').height();
60
- $('.wrap').height(hei);
61
 
62
- $('div.groupWrapper').Sortable(
63
  {
64
  accept: 'groupItem',
65
  helperclass: 'sort_placeholder',
@@ -67,33 +65,33 @@ $(document).ready(
67
  tolerance: 'intersect'
68
  }
69
  )
70
- $('a.min').bind('click', toggleContent);
71
- $('.textarea1').Autoexpand([230,400]);
72
  }
73
  );
74
 
75
  var toggleContent = function(e)
76
  {
77
- var targetContent = $('div.itemContent', this.parentNode.parentNode);
78
  if (targetContent.css('display') == 'none') {
79
  targetContent.slideDown(300);
80
- $(this).html('[-]');
81
  } else {
82
  targetContent.slideUp(300);
83
- $(this).html('[+]');
84
  }
85
  return false;
86
  }
87
 
88
- function serialize(s)
89
  {
90
- serial = $.SortSerialize(s);
91
- $('input[@name=sortorder]').val(serial.hash);
92
  }
93
  </script>
94
  <div class="wrap" id="wrap" >
95
  <h3><?php _e('Manage Albums', 'nggallery') ?></h3>
96
- <form id="selectalbum" method="POST" onsubmit="serialize('galleryContainer')">
97
  <input name="sortorder" type="hidden" />
98
  <table width="100%" border="0" cellspacing="3" cellpadding="3" >
99
  <tr>
16
 
17
  if ($_POST['act_album'] > 0){
18
  $albumid = $_POST['act_album'];
19
+ echo $_POST['sortorder'];
20
  // get variable galleryContainer
21
  parse_str($_POST['sortorder']);
22
  if (is_array($galleryContainer)){
44
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
45
 
46
  ?>
 
 
47
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>css/nggallery.css";</style>
48
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>admin/js/portlets.css";</style>
49
  <script type="text/javascript">
50
 
51
+ jQuery(document).ready(
52
  function()
53
  {
54
  //updating the height of the white backround box, it does not work without this stupid lines
55
  //problem: absolute positioning of the minimizing links in item_top does not work :(
56
  //position: absolute; right:5px; top:0px; border-bottom: 2px solid #003333; css lines of .groupItem .item_top a
57
+ var hei = jQuery('.wrap').height();
58
+ jQuery('.wrap').height(hei);
59
 
60
+ jQuery('div.groupWrapper').Sortable(
61
  {
62
  accept: 'groupItem',
63
  helperclass: 'sort_placeholder',
65
  tolerance: 'intersect'
66
  }
67
  )
68
+ jQuery('a.min').bind('click', toggleContent);
69
+ jQuery('.textarea1').Autoexpand([230,400]);
70
  }
71
  );
72
 
73
  var toggleContent = function(e)
74
  {
75
+ var targetContent = jQuery('div.itemContent', this.parentNode.parentNode);
76
  if (targetContent.css('display') == 'none') {
77
  targetContent.slideDown(300);
78
+ jQuery(this).html('[-]');
79
  } else {
80
  targetContent.slideUp(300);
81
+ jQuery(this).html('[+]');
82
  }
83
  return false;
84
  }
85
 
86
+ function ngg_serialize(s)
87
  {
88
+ serial = jQuery.SortSerialize(s);
89
+ jQuery('input[@name=sortorder]').val(serial.hash);
90
  }
91
  </script>
92
  <div class="wrap" id="wrap" >
93
  <h3><?php _e('Manage Albums', 'nggallery') ?></h3>
94
+ <form id="selectalbum" method="POST" onsubmit="ngg_serialize('galleryContainer')">
95
  <input name="sortorder" type="hidden" />
96
  <table width="100%" border="0" cellspacing="3" cellpadding="3" >
97
  <tr>
admin/js/jquery.MultiFile.js ADDED
@@ -0,0 +1,247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ ### jQuery Multiple File Upload Plugin ###
3
+ By Diego A., http://www.fyneworks.com, diego@fyneworks.com
4
+
5
+ Website:
6
+ http://www.fyneworks.com/jquery/multiple-file-upload/
7
+ Project Page:
8
+ http://jquery.com/plugins/project/MultiFile/
9
+ Forums:
10
+ http://www.nabble.com/jQuery-Multiple-File-Upload-f20931.html
11
+ Blog:
12
+ http://fyneworks.blogspot.com/2007/04/multiple-file-upload-plugin-for-jquery.html
13
+
14
+ 12-April-2007: v1.1
15
+ Added events and file extension validation
16
+ See website for details.
17
+ */
18
+
19
+ /*# AVOID COLLISIONS #*/
20
+ (function($){
21
+ /*# AVOID COLLISIONS #*/
22
+
23
+ /*
24
+ ### Default implementation ###
25
+ The plugin will attach itself to file inputs
26
+ with the class 'multi' when the page loads
27
+ */
28
+ $(function(){
29
+ $.MultiFile();
30
+ });
31
+
32
+
33
+ // extend jQuery - $.MultiFile hook
34
+ $.extend($, {
35
+ MultiFile: function( o /* Object */ ){
36
+ return $("INPUT[@type='file'].multi").MultiFile(o);
37
+ }
38
+ });
39
+
40
+ // extend jQuery function library
41
+ $.extend($.fn, {
42
+
43
+ // MultiFile function
44
+ MultiFile: function( o /* Object */ ){
45
+ if(this._MultiFile){ return $(this); }
46
+ this._MultiFile = true;
47
+
48
+ // Bind to each element in current jQuery object
49
+ return $(this).each(function(i){
50
+ // Remember our ancestors...
51
+ var d = this;
52
+
53
+ //#########################################
54
+ // Find basic configuration in class string
55
+ // debug???
56
+ d.debug = (d.className.indexOf('debug')>0);
57
+ // limit number of files that can be selected?
58
+ d.max = (d.className.match(/\b((max|limit)\-[0-9]+)\b/gi));
59
+ if(d.max){
60
+ d.max = new Number((d.max+'').match(/[0-9]+/)[0]);
61
+ }else{
62
+ d.max = -1;
63
+ }
64
+ // limit extensions?
65
+ d.accept = (d.className.match(/\b(accept\-[\w\|]+)\b/gi)) || '';
66
+ d.accept = new String((d.accept+'')).replace(/^(accept|ext)\-/i,'');
67
+ //#########################################
68
+
69
+
70
+ // Attach a bunch of events, jQuery style ;-)
71
+ $.each("on,after".split(","), function(i,o){
72
+ $.each("FileSelect,FileRemove,FileAppend".split(","), function(j,event){
73
+ d[o+event] = function(e, v, m){ // default functions do absolutelly nothing...
74
+ // if(d.debug) alert(''+o+event+'' +'\nElement:' +e.name+ '\nValue: ' +v+ '\nMaster: ' +m.name+ '');
75
+ };
76
+ });
77
+ });
78
+ // Setup a global event handler
79
+ d.trigger = function(event, e){
80
+ var f = d[event];
81
+ if(f){
82
+ var v = $(this).attr('value');
83
+ var r = f(e, v, d);
84
+ if(r!=null) return r;
85
+ }
86
+ return true;
87
+ };
88
+
89
+
90
+ // Initialize options
91
+ if( typeof(o)=='number' ){ o = {max:o}; };
92
+ $.extend(d, d.data || {}, o);
93
+
94
+ // Default properties - INTERNAL USE ONLY
95
+ $.extend(d, {
96
+ STRING: d.STRING || {}, // used to hold string constants
97
+ n: 0, // How many elements are currently selected?
98
+ k: 'MF_', // Instance Key?
99
+ f: function(z){ return d.k+'_F_'+String(i)+'_'+String(z); }
100
+ });
101
+
102
+ // Visible text strings...
103
+ // $file = file name (with path), $ext = file extension
104
+ d.STRING = $.extend({
105
+ remove:'remove',
106
+ denied:'You cannot select a $ext file.\nTry again...',
107
+ selected:'File selected: $file'
108
+ }, d.STRING);
109
+
110
+
111
+ // Setup dynamic regular expression for extension validation
112
+ // - thanks to John-Paul Bader: http://smyck.de/2006/08/11/javascript-dynamic-regular-expresions/
113
+ if(String(d.accept).length>1){
114
+ d.rxAccept = new RegExp('\\.('+(d.accept?d.accept:'')+')$','gi');
115
+ };
116
+
117
+ // Create wrapper to hold our file list
118
+ d.w = d.k+'_MF_'+i; // Wrapper ID?
119
+ var x = $(d);
120
+ x.wrap('<div id="'+d.w+'"></div>');
121
+
122
+ // Bind a new element
123
+ d.add = function( e, ii ){
124
+
125
+ // Keep track of how many elements have been displayed
126
+ d.n++;
127
+
128
+ // Add reference to master element
129
+ e.d = d;
130
+
131
+ // Define element's ID and name (upload components need this!)
132
+ e.i = ii;//d.I;
133
+ e.id = d.f(e.i);
134
+ e.name = e.id;
135
+
136
+ // If we've reached maximum number, disable input e
137
+ if( d.max != -1 && d.n > (d.max+1) ){ // d.n Starts at 1, so add 1 to d.max.
138
+ e.disabled = true;
139
+ };
140
+
141
+ // Remember most recent e
142
+ d.current = e;
143
+
144
+ /// now let's use jQuery
145
+ e = $(e);
146
+
147
+ // Triggered when a file is selected
148
+ e.change(function(){
149
+
150
+ //# Trigger Event! onFileSelect
151
+ if(!d.trigger('onFileSelect', this, d)) return false;
152
+ //# End Event!
153
+
154
+ // check extension
155
+ if(d.accept){
156
+ var v = String(e.attr('value'));
157
+ if(!v.match(d.rxAccept)){
158
+ e.attr('value', '');
159
+ e.get(0).value = '';
160
+ alert(d.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi))));
161
+ return false;
162
+ }
163
+ };
164
+
165
+ // Hide this element: display:none is evil!
166
+ //this.style.display = 'block';
167
+ this.style.position = 'absolute';
168
+ this.style.left = '-1000px';
169
+
170
+ // Create a new file input element
171
+ var f = $('<input type="file" size="35"/>');
172
+
173
+ // Add it to the form
174
+ $(this).parent().prepend(f);
175
+
176
+ // Update list
177
+ d.list( this );
178
+
179
+ // Bind functionality
180
+ d.add( f.get(0), this.i+1 );
181
+
182
+ //# Trigger Event! afterFileSelect
183
+ if(!d.trigger('afterFileSelect', this, d)) return false;
184
+ //# End Event!
185
+
186
+ });
187
+
188
+ };
189
+ // Bind a new element
190
+
191
+ // Add a new file to the list
192
+ d.list = function( y ){
193
+
194
+ //# Trigger Event! onFileAppend
195
+ if(!d.trigger('onFileAppend', y, d)) return false;
196
+ //# End Event!
197
+
198
+ // Insert HTML
199
+ var
200
+ t = $('#'+d.w),
201
+ r = $('<div></div>'),
202
+ v = $(y).attr('value')+'',
203
+ a = $('<span class="file" title="'+d.STRING.selected.replace('$file', v)+'">'+v.match(/[^\/\\]+$/gi)[0]+'</span>'),
204
+ b = $('<a href="#'+d.w+'">'+d.STRING.remove+'</a>');
205
+ t.append(r);
206
+ r.append('[',b,']&nbsp;',a);//.prepend(y.i+': ');
207
+ b.click(function(){
208
+
209
+ //# Trigger Event! onFileRemove
210
+ if(!d.trigger('onFileRemove', y, d)) return false;
211
+ //# End Event!
212
+
213
+ d.n--;
214
+ d.current.disabled = false;
215
+ $('#'+d.f(y.i)).remove();
216
+ $(this).parent().remove();
217
+
218
+ //# Trigger Event! afterFileRemove
219
+ if(!d.trigger('afterFileRemove', y, d)) return false;
220
+ //# End Event!
221
+
222
+ return false;
223
+ });
224
+
225
+ //# Trigger Event! afterFileAppend
226
+ if(!d.trigger('afterFileAppend', y, d)) return false;
227
+ //# End Event!
228
+
229
+ };
230
+
231
+ // Bind first file element
232
+ if(!d.ft){ d.add(d, 0); d.ft = true; }
233
+ d.I++;
234
+ d.n++;
235
+
236
+ });
237
+ // each element
238
+
239
+ }
240
+ // MultiFile function
241
+
242
+ });
243
+ // extend jQuery function library
244
+
245
+ /*# AVOID COLLISIONS #*/
246
+ })(jQuery);
247
+ /*# AVOID COLLISIONS #*/
admin/js/jquery.MultiFile.pack.js ADDED
@@ -0,0 +1 @@
 
1
+ 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($){$(3(){$.E()});$.B($,{E:3(o){6 $("1b[@12=\'s\'].1A").E(o)}});$.B($.1s,{E:3(o){2(5.10){6 $(5)}5.10=C;6 $(5).P(3(i){g d=5;d.Y=(d.J.1r(\'Y\')>0);d.c=(d.J.q(/\\b((c|1e)\\-[0-9]+)\\b/u));2(d.c){d.c=H 15((d.c+\'\').q(/[0-9]+/)[0])}1R{d.c=-1}d.7=(d.J.q(/\\b(7\\-[\\w\\|]+)\\b/u))||\'\';d.7=H p((d.7+\'\')).N(/^(7|M)\\-/i,\'\');$.P("1C,1z".X(","),3(i,o){$.P("1x,1v,1q".X(","),3(j,a){d[o+a]=3(e,v,m){}})});d.h=3(a,e){g f=d[a];2(f){g v=$(5).D(\'G\');g r=f(e,v,d);2(r!=1c)6 r}6 C};2(1a(o)==\'17\'){o={c:o}};$.B(d,d.16||{},o);$.B(d,{l:d.l||{},n:0,k:\'14\',f:3(z){6 d.k+\'1Q\'+p(i)+\'1P\'+p(z)}});d.l=$.B({A:\'A\',11:\'1M 1L 1J a $M s.\\1H 1G...\',O:\'1F O: $s\'},d.l);2(p(d.7).1E>1){d.Z=H 1D(\'\\\\.(\'+(d.7?d.7:\'\')+\')$\',\'u\')};d.w=d.k+\'1B\'+i;g x=$(d);x.1y(\'<F L="\'+d.w+\'"></F>\');d.K=3(e,a){d.n++;e.d=d;e.i=a;e.L=d.f(e.i);e.1w=e.L;2(d.c!=-1&&d.n>(d.c+1)){e.W=C};d.V=e;e=$(e);e.1t(3(){2(!d.h(\'1p\',5,d))6 8;2(d.7){g v=p(e.D(\'G\'));2(!v.q(d.Z)){e.D(\'G\',\'\');1o(d.l.11.N(\'$M\',p(v.q(/\\.\\w{1,4}$/u))));6 8}};5.U.1n=\'1m\';5.U.1u=\'-1l\';g f=$(\'<1k 12="s"/>\');$(5).T().1j(f);d.S(5);d.K(f.1i(0),5.i+1);2(!d.h(\'1h\',5,d))6 8})};d.S=3(y){2(!d.h(\'1g\',y,d))6 8;g t=$(\'#\'+d.w),r=$(\'<F></F>\'),v=$(y).D(\'G\')+\'\',a=$(\'<R 1f="s" 1d="\'+d.l.O.N(\'$s\',v)+\'">\'+v.q(/[^\\/\\\\]+$/u)[0]+\'</R>\'),b=$(\'<a 1I="#\'+d.w+\'">\'+d.l.A+\'</a>\');t.13(r);r.13(\'[\',b,\']&1K;\',a);b.19(3(){2(!d.h(\'18\',y,d))6 8;d.n--;d.V.W=8;$(\'#\'+d.f(y.i)).A();$(5).T().A();2(!d.h(\'1N\',y,d))6 8;6 8});2(!d.h(\'1O\',y,d))6 8};2(!d.Q){d.K(d,0);d.Q=C}d.I++;d.n++})}})})(1S);',62,117,'||if|function||this|return|accept|false||||max||||var|trigger||||STRING||||String|match||file||gi||||||remove|extend|true|attr|MultiFile|div|value|new||className|add|id|ext|replace|selected|each|ft|span|list|parent|style|current|disabled|split|debug|rxAccept|_MultiFile|denied|type|append|MF_|Number|data|number|onFileRemove|click|typeof|INPUT|null|title|limit|class|onFileAppend|afterFileSelect|get|prepend|input|1000px|absolute|position|alert|onFileSelect|FileAppend|indexOf|fn|change|left|FileRemove|name|FileSelect|wrap|after|multi|_MF_|on|RegExp|length|File|again|nTry|href|select|nbsp|cannot|You|afterFileRemove|afterFileAppend|_|_F_|else|jQuery'.split('|'),0,{}));
admin/js/jquery.js CHANGED
@@ -1 +1 @@
1
- eval(function(p,a,c,k,e,d){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--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[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}('7(1C 1w.6=="T"){1w.T=1w.T;B 6=u(a,c){7(1w==q)v 1p 6(a,c);a=a||17;7(6.1t(a))v 1p 6(17)[6.E.27?"27":"2O"](a);7(1C a=="23"){B m=/^[^<]*(<(.|\\s)+>)[^>]*$/.2Q(a);7(m)a=6.3k([m[1]]);J v 1p 6(c).2o(a)}v q.6r(a.1l==2y&&a||(a.3Y||a.I&&a!=1w&&!a.24&&a[0]!=T&&a[0].24)&&6.3M(a)||[a])};7(1C $!="T")6.2S$=$;B $=6;6.E=6.8p={3Y:"1.1.2",8q:u(){v q.I},I:0,2b:u(1T){v 1T==T?6.3M(q):q[1T]},2r:u(a){B L=6(a);L.6p=q;v L},6r:u(a){q.I=0;[].1g.14(q,a);v q},K:u(E,1E){v 6.K(q,E,1E)},2h:u(1c){B 4c=-1;q.K(u(i){7(q==1c)4c=i});v 4c},1I:u(1Y,O,C){B 1c=1Y;7(1Y.1l==3t)7(O==T)v q.I&&6[C||"1I"](q[0],1Y)||T;J{1c={};1c[1Y]=O}v q.K(u(2h){P(B H 1x 1c)6.1I(C?q.1q:q,H,6.H(q,1c[H],C,2h,H))})},1m:u(1Y,O){v q.1I(1Y,O,"30")},2L:u(e){7(1C e=="23")v q.3u().3r(17.8t(e));B t="";6.K(e||q,u(){6.K(q.2I,u(){7(q.24!=8)t+=q.24!=1?q.60:6.E.2L([q])})});v t},2K:u(){B a=6.3k(1A);v q.K(u(){B b=a[0].3l(U);q.11.2X(b,q);22(b.1b)b=b.1b;b.4C(q)})},3r:u(){v q.3j(1A,U,1,u(a){q.4C(a)})},5i:u(){v q.3j(1A,U,-1,u(a){q.2X(a,q.1b)})},5j:u(){v q.3j(1A,12,1,u(a){q.11.2X(a,q)})},5t:u(){v q.3j(1A,12,-1,u(a){q.11.2X(a,q.2e)})},4g:u(){v q.6p||6([])},2o:u(t){v q.2r(6.31(q,u(a){v 6.2o(t,a)}),t)},4Y:u(4N){v q.2r(6.31(q,u(a){B a=a.3l(4N!=T?4N:U);a.$1H=16;v a}))},1D:u(t){v q.2r(6.1t(t)&&6.2q(q,u(2z,2h){v t.14(2z,[2h])})||6.3z(t,q))},2g:u(t){v q.2r(t.1l==3t&&6.3z(t,q,U)||6.2q(q,u(a){v(t.1l==2y||t.3Y)?6.3y(a,t)<0:a!=t}))},1M:u(t){v q.2r(6.2k(q.2b(),t.1l==3t?6(t).2b():t.I!=T&&(!t.1f||t.1f=="8v")?t:[t]))},4l:u(1s){v 1s?6.1D(1s,q).r.I>0:12},1a:u(1a){v 1a==T?(q.I?q[0].O:16):q.1I("O",1a)},4U:u(1a){v 1a==T?(q.I?q[0].2t:16):q.3u().3r(1a)},3j:u(1E,1P,3Z,E){B 4Y=q.I>1;B a=6.3k(1E);7(3Z<0)a.8w();v q.K(u(){B 1c=q;7(1P&&6.1f(q,"1P")&&6.1f(a[0],"3m"))1c=q.5J("20")[0]||q.4C(17.6n("20"));6.K(a,u(){E.14(1c,[4Y?q.3l(U):q])})})}};6.1z=6.E.1z=u(){B 1O=1A[0],a=1;7(1A.I==1){1O=q;a=0}B H;22(H=1A[a++])P(B i 1x H)1O[i]=H[i];v 1O};6.1z({8x:u(){7(6.2S$)$=6.2S$;v 6},1t:u(E){v!!E&&1C E!="23"&&!E.1f&&1C E[0]=="T"&&/u/i.1n(E+"")},4B:u(D){v D.66&&D.5I&&!D.5I.64},1f:u(D,Y){v D.1f&&D.1f.3K()==Y.3K()},K:u(1c,E,1E){7(1c.I==T)P(B i 1x 1c)E.14(1c[i],1E||[i,1c[i]]);J P(B i=0,6q=1c.I;i<6q;i++)7(E.14(1c[i],1E||[i,1c[i]])===12)3O;v 1c},H:u(D,O,C,2h,H){7(6.1t(O))O=O.3n(D,[2h]);B 6s=/z-?2h|7P-?8A|1d|58|8B-?28/i;v O&&O.1l==3Q&&C=="30"&&!6s.1n(H)?O+"4S":O},19:{1M:u(D,c){6.K(c.3o(/\\s+/),u(i,Q){7(!6.19.2V(D.19,Q))D.19+=(D.19?" ":"")+Q})},2f:u(D,c){D.19=c?6.2q(D.19.3o(/\\s+/),u(Q){v!6.19.2V(c,Q)}).6t(" "):""},2V:u(t,c){t=t.19||t;c=c.1R(/([\\.\\\\\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g,"\\\\$1");v t&&1p 4v("(^|\\\\s)"+c+"(\\\\s|$)").1n(t)}},4d:u(e,o,f){P(B i 1x o){e.1q["1N"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);P(B i 1x o)e.1q[i]=e.1q["1N"+i]},1m:u(e,p){7(p=="28"||p=="3V"){B 1N={},46,3P,d=["7d","8C","8D","8E"];6.K(d,u(){1N["8F"+q]=0;1N["8G"+q+"8H"]=0});6.4d(e,1N,u(){7(6.1m(e,"1h")!="1Z"){46=e.8I;3P=e.8J}J{e=6(e.3l(U)).2o(":4j").5l("2Z").4g().1m({4n:"1G",45:"8K",1h:"2D",7I:"0",8M:"0"}).5z(e.11)[0];B 3d=6.1m(e.11,"45");7(3d==""||3d=="4b")e.11.1q.45="6x";46=e.6y;3P=e.6z;7(3d==""||3d=="4b")e.11.1q.45="4b";e.11.33(e)}});v p=="28"?46:3P}v 6.30(e,p)},30:u(D,H,53){B L;7(H=="1d"&&6.W.1j)v 6.1I(D.1q,"1d");7(H=="4h"||H=="2v")H=6.W.1j?"3T":"2v";7(!53&&D.1q[H])L=D.1q[H];J 7(17.44&&17.44.4W){7(H=="2v"||H=="3T")H="4h";H=H.1R(/([A-Z])/g,"-$1").4m();B Q=17.44.4W(D,16);7(Q)L=Q.55(H);J 7(H=="1h")L="1Z";J 6.4d(D,{1h:"2D"},u(){B c=17.44.4W(q,"");L=c&&c.55(H)||""})}J 7(D.51){B 56=H.1R(/\\-(\\w)/g,u(m,c){v c.3K()});L=D.51[H]||D.51[56]}v L},3k:u(a){B r=[];6.K(a,u(i,1r){7(!1r)v;7(1r.1l==3Q)1r=1r.6C();7(1C 1r=="23"){B s=6.35(1r),1V=17.6n("1V"),2i=[];B 2K=!s.18("<1u")&&[1,"<42>","</42>"]||(!s.18("<6D")||!s.18("<20")||!s.18("<6E"))&&[1,"<1P>","</1P>"]||!s.18("<3m")&&[2,"<1P><20>","</20></1P>"]||(!s.18("<6F")||!s.18("<6G"))&&[3,"<1P><20><3m>","</3m></20></1P>"]||[0,"",""];1V.2t=2K[1]+s+2K[2];22(2K[0]--)1V=1V.1b;7(6.W.1j){7(!s.18("<1P")&&s.18("<20")<0)2i=1V.1b&&1V.1b.2I;J 7(2K[1]=="<1P>"&&s.18("<20")<0)2i=1V.2I;P(B n=2i.I-1;n>=0;--n)7(6.1f(2i[n],"20")&&!2i[n].2I.I)2i[n].11.33(2i[n])}1r=[];P(B i=0,l=1V.2I.I;i<l;i++)1r.1g(1V.2I[i])}7(1r.I===0&&!6.1f(1r,"3w"))v;7(1r[0]==T||6.1f(1r,"3w"))r.1g(1r);J r=6.2k(r,1r)});v r},1I:u(D,Y,O){B 2j=6.4B(D)?{}:{"P":"6J","6L":"19","4h":6.W.1j?"3T":"2v",2v:6.W.1j?"3T":"2v",2t:"2t",19:"19",O:"O",2W:"2W",2Z:"2Z",89:"6N",2Y:"2Y"};7(Y=="1d"&&6.W.1j&&O!=T){D.58=1;v D.1D=D.1D.1R(/4i\\([^\\)]*\\)/6O,"")+(O==1?"":"4i(1d="+O*6g+")")}J 7(Y=="1d"&&6.W.1j)v D.1D?4T(D.1D.6P(/4i\\(1d=(.*)\\)/)[1])/6g:1;7(Y=="1d"&&6.W.3h&&O==1)O=0.6R;7(2j[Y]){7(O!=T)D[2j[Y]]=O;v D[2j[Y]]}J 7(O==T&&6.W.1j&&6.1f(D,"3w")&&(Y=="81"||Y=="80"))v D.6T(Y).60;J 7(D.66){7(O!=T)D.6V(Y,O);7(6.W.1j&&/5E|3e/.1n(Y)&&!6.4B(D))v D.36(Y,2);v D.36(Y)}J{Y=Y.1R(/-([a-z])/6W,u(z,b){v b.3K()});7(O!=T)D[Y]=O;v D[Y]}},35:u(t){v t.1R(/^\\s+|\\s+$/g,"")},3M:u(a){B r=[];7(a.1l!=2y)P(B i=0,2R=a.I;i<2R;i++)r.1g(a[i]);J r=a.3N(0);v r},3y:u(b,a){P(B i=0,2R=a.I;i<2R;i++)7(a[i]==b)v i;v-1},2k:u(2u,3H){B r=[].3N.3n(2u,0);P(B i=0,5b=3H.I;i<5b;i++)7(6.3y(3H[i],r)==-1)2u.1g(3H[i]);v 2u},2q:u(1U,E,4k){7(1C E=="23")E=1p 4w("a","i","v "+E);B 1i=[];P(B i=0,2z=1U.I;i<2z;i++)7(!4k&&E(1U[i],i)||4k&&!E(1U[i],i))1i.1g(1U[i]);v 1i},31:u(1U,E){7(1C E=="23")E=1p 4w("a","v "+E);B 1i=[],r=[];P(B i=0,2z=1U.I;i<2z;i++){B 1a=E(1U[i],i);7(1a!==16&&1a!=T){7(1a.1l!=2y)1a=[1a];1i=1i.6Z(1a)}}B r=1i.I?[1i[0]]:[];5f:P(B i=1,5e=1i.I;i<5e;i++){P(B j=0;j<i;j++)7(1i[i]==r[j])5F 5f;r.1g(1i[i])}v r}});1p u(){B b=7L.71.4m();6.W={2N:/5D/.1n(b),3f:/3f/.1n(b),1j:/1j/.1n(b)&&!/3f/.1n(b),3h:/3h/.1n(b)&&!/(72|5D)/.1n(b)};6.7H=!6.W.1j||17.74=="75"};6.K({5u:"a.11",4z:"6.4z(a)",76:"6.2a(a,2,\'2e\')",7D:"6.2a(a,2,\'5s\')",78:"6.2B(a.11.1b,a)",79:"6.2B(a.1b)"},u(i,n){6.E[i]=u(a){B L=6.31(q,n);7(a&&1C a=="23")L=6.3z(a,L);v q.2r(L)}});6.K({5z:"3r",7b:"5i",2X:"5j",7e:"5t"},u(i,n){6.E[i]=u(){B a=1A;v q.K(u(){P(B j=0,2R=a.I;j<2R;j++)6(a[j])[n](q)})}});6.K({5l:u(1Y){6.1I(q,1Y,"");q.7g(1Y)},7h:u(c){6.19.1M(q,c)},7i:u(c){6.19.2f(q,c)},7k:u(c){6.19[6.19.2V(q,c)?"2f":"1M"](q,c)},2f:u(a){7(!a||6.1D(a,[q]).r.I)q.11.33(q)},3u:u(){22(q.1b)q.33(q.1b)}},u(i,n){6.E[i]=u(){v q.K(n,1A)}});6.K(["5q","5n","5p","5v"],u(i,n){6.E[n]=u(1T,E){v q.1D(":"+n+"("+1T+")",E)}});6.K(["28","3V"],u(i,n){6.E[n]=u(h){v h==T?(q.I?6.1m(q[0],n):16):q.1m(n,h.1l==3t?h:h+"4S")}});6.1z({1s:{"":"m[2]==\'*\'||6.1f(a,m[2])","#":"a.36(\'2J\')==m[2]",":":{5n:"i<m[3]-0",5p:"i>m[3]-0",2a:"m[3]-0==i",5q:"m[3]-0==i",2u:"i==0",2T:"i==r.I-1",5R:"i%2==0",5S:"i%2","2a-3s":"6.2a(a.11.1b,m[3],\'2e\',a)==a","2u-3s":"6.2a(a.11.1b,1,\'2e\')==a","2T-3s":"6.2a(a.11.7n,1,\'5s\')==a","7p-3s":"6.2B(a.11.1b).I==1",5u:"a.1b",3u:"!a.1b",5v:"6.E.2L.14([a]).18(m[3])>=0",3i:\'a.C!="1G"&&6.1m(a,"1h")!="1Z"&&6.1m(a,"4n")!="1G"\',1G:\'a.C=="1G"||6.1m(a,"1h")=="1Z"||6.1m(a,"4n")=="1G"\',7v:"!a.2W",2W:"a.2W",2Z:"a.2Z",2Y:"a.2Y||6.1I(a,\'2Y\')",2L:"a.C==\'2L\'",4j:"a.C==\'4j\'",5x:"a.C==\'5x\'",4G:"a.C==\'4G\'",5y:"a.C==\'5y\'",4R:"a.C==\'4R\'",5A:"a.C==\'5A\'",5B:"a.C==\'5B\'",3x:\'a.C=="3x"||6.1f(a,"3x")\',5C:"/5C|42|7A|3x/i.1n(a.1f)"},".":"6.19.2V(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.18(m[4])","$=":"z&&z.2U(z.I - m[4].I,m[4].I)==m[4]","*=":"z&&z.18(m[4])>=0","":"z",4u:u(m){v["",m[1],m[3],m[2],m[5]]},5P:"z=a[m[3]];7(!z||/5E|3e/.1n(m[3]))z=6.1I(a,m[3]);"},"[":"6.2o(m[2],a).I"},5M:[/^\\[ *(@)([a-2m-3C-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2m-3C-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2m-3C*-]*)/i],1Q:[/^(\\/?\\.\\.)/,"a.11",/^(>|\\/)/,"6.2B(a.1b)",/^(\\+)/,"6.2a(a,2,\'2e\')",/^(~)/,u(a){B s=6.2B(a.11.1b);v s.3N(6.3y(a,s)+1)}],3z:u(1s,1U,2g){B 1N,Q=[];22(1s&&1s!=1N){1N=1s;B f=6.1D(1s,1U,2g);1s=f.t.1R(/^\\s*,\\s*/,"");Q=2g?1U=f.r:6.2k(Q,f.r)}v Q},2o:u(t,1B){7(1C t!="23")v[t];7(1B&&!1B.24)1B=16;1B=1B||17;7(!t.18("//")){1B=1B.4H;t=t.2U(2,t.I)}J 7(!t.18("/")){1B=1B.4H;t=t.2U(1,t.I);7(t.18("/")>=1)t=t.2U(t.18("/"),t.I)}B L=[1B],2c=[],2T=16;22(t&&2T!=t){B r=[];2T=t;t=6.35(t).1R(/^\\/\\//i,"");B 3B=12;B 1J=/^[\\/>]\\s*([a-2m-9*-]+)/i;B m=1J.2Q(t);7(m){6.K(L,u(){P(B c=q.1b;c;c=c.2e)7(c.24==1&&(6.1f(c,m[1])||m[1]=="*"))r.1g(c)});L=r;t=t.1R(1J,"");7(t.18(" ")==0)5F;3B=U}J{P(B i=0;i<6.1Q.I;i+=2){B 1J=6.1Q[i];B m=1J.2Q(t);7(m){r=L=6.31(L,6.1t(6.1Q[i+1])?6.1Q[i+1]:u(a){v 40(6.1Q[i+1])});t=6.35(t.1R(1J,""));3B=U;3O}}}7(t&&!3B){7(!t.18(",")){7(L[0]==1B)L.4L();6.2k(2c,L);r=L=[1B];t=" "+t.2U(1,t.I)}J{B 34=/^([a-2m-3C-]+)(#)([a-2m-9\\\\*2S-]*)/i;B m=34.2Q(t);7(m){m=[0,m[2],m[3],m[1]]}J{34=/^([#.]?)([a-2m-9\\\\*2S-]*)/i;m=34.2Q(t)}7(m[1]=="#"&&L[L.I-1].4X){B 2l=L[L.I-1].4X(m[2]);7(6.W.1j&&2l&&2l.2J!=m[2])2l=6(\'[@2J="\'+m[2]+\'"]\',L[L.I-1])[0];L=r=2l&&(!m[3]||6.1f(2l,m[3]))?[2l]:[]}J{7(m[1]==".")B 4r=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.K(L,u(){B 3E=m[1]!=""||m[0]==""?"*":m[2];7(6.1f(q,"7J")&&3E=="*")3E="3g";6.2k(r,m[1]!=""&&L.I!=1?6.4x(q,[],m[1],m[2],4r):q.5J(3E))});7(m[1]=="."&&L.I==1)r=6.2q(r,u(e){v 4r.1n(e.19)});7(m[1]=="#"&&L.I==1){B 5K=r;r=[];6.K(5K,u(){7(q.36("2J")==m[2]){r=[q];v 12}})}L=r}t=t.1R(34,"")}}7(t){B 1a=6.1D(t,r);L=r=1a.r;t=6.35(1a.t)}}7(L&&L[0]==1B)L.4L();6.2k(2c,L);v 2c},1D:u(t,r,2g){22(t&&/^[a-z[({<*:.#]/i.1n(t)){B p=6.5M,m;6.K(p,u(i,1J){m=1J.2Q(t);7(m){t=t.7M(m[0].I);7(6.1s[m[1]].4u)m=6.1s[m[1]].4u(m);v 12}});7(m[1]==":"&&m[2]=="2g")r=6.1D(m[3],r,U).r;J 7(m[1]=="."){B 1J=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2q(r,u(e){v 1J.1n(e.19||"")},2g)}J{B f=6.1s[m[1]];7(1C f!="23")f=6.1s[m[1]][m[2]];40("f = u(a,i){"+(6.1s[m[1]].5P||"")+"v "+f+"}");r=6.2q(r,f,2g)}}v{r:r,t:t}},4x:u(o,r,1Q,Y,1J){P(B s=o.1b;s;s=s.2e)7(s.24==1){B 1M=U;7(1Q==".")1M=s.19&&1J.1n(s.19);J 7(1Q=="#")1M=s.36("2J")==Y;7(1M)r.1g(s);7(1Q=="#"&&r.I)3O;7(s.1b)6.4x(s,r,1Q,Y,1J)}v r},4z:u(D){B 4A=[];B Q=D.11;22(Q&&Q!=17){4A.1g(Q);Q=Q.11}v 4A},2a:u(Q,1i,3Z,D){1i=1i||1;B 1T=0;P(;Q;Q=Q[3Z]){7(Q.24==1)1T++;7(1T==1i||1i=="5R"&&1T%2==0&&1T>1&&Q==D||1i=="5S"&&1T%2==1&&Q==D)v Q}},2B:u(n,D){B r=[];P(;n;n=n.2e){7(n.24==1&&(!D||n!=D))r.1g(n)}v r}});6.G={1M:u(S,C,1o,F){7(6.W.1j&&S.3L!=T)S=1w;7(F)1o.F=F;7(!1o.2A)1o.2A=q.2A++;7(!S.$1H)S.$1H={};B 38=S.$1H[C];7(!38){38=S.$1H[C]={};7(S["39"+C])38[0]=S["39"+C]}38[1o.2A]=1o;S["39"+C]=q.5Y;7(!q.1k[C])q.1k[C]=[];q.1k[C].1g(S)},2A:1,1k:{},2f:u(S,C,1o){7(S.$1H){B i,j,k;7(C&&C.C){1o=C.1o;C=C.C}7(C&&S.$1H[C])7(1o)5U S.$1H[C][1o.2A];J P(i 1x S.$1H[C])5U S.$1H[C][i];J P(j 1x S.$1H)q.2f(S,j);P(k 1x S.$1H[C])7(k){k=U;3O}7(!k)S["39"+C]=16}},1S:u(C,F,S){F=6.3M(F||[]);7(!S)6.K(q.1k[C]||[],u(){6.G.1S(C,F,q)});J{B 1o=S["39"+C],1a,E=6.1t(S[C]);7(1o){F.61(q.2j({C:C,1O:S}));7((1a=1o.14(S,F))!==12)q.4F=U}7(E&&1a!==12)S[C]();q.4F=12}},5Y:u(G){7(1C 6=="T"||6.G.4F)v;G=6.G.2j(G||1w.G||{});B 3R;B c=q.$1H[G.C];B 1E=[].3N.3n(1A,1);1E.61(G);P(B j 1x c){1E[0].1o=c[j];1E[0].F=c[j].F;7(c[j].14(q,1E)===12){G.2n();G.2H();3R=12}}7(6.W.1j)G.1O=G.2n=G.2H=G.1o=G.F=16;v 3R},2j:u(G){7(!G.1O&&G.63)G.1O=G.63;7(G.65==T&&G.67!=T){B e=17.4H,b=17.64;G.65=G.67+(e.68||b.68);G.7Y=G.7Z+(e.6c||b.6c)}7(6.W.2N&&G.1O.24==3){B 3a=G;G=6.1z({},3a);G.1O=3a.1O.11;G.2n=u(){v 3a.2n()};G.2H=u(){v 3a.2H()}}7(!G.2n)G.2n=u(){q.3R=12};7(!G.2H)G.2H=u(){q.82=U};v G}};6.E.1z({3U:u(C,F,E){v q.K(u(){6.G.1M(q,C,E||F,F)})},6u:u(C,F,E){v q.K(u(){6.G.1M(q,C,u(G){6(q).6f(G);v(E||F).14(q,1A)},F)})},6f:u(C,E){v q.K(u(){6.G.2f(q,C,E)})},1S:u(C,F){v q.K(u(){6.G.1S(C,F,q)})},3X:u(){B a=1A;v q.6j(u(e){q.4M=q.4M==0?1:0;e.2n();v a[q.4M].14(q,[e])||12})},83:u(f,g){u 4O(e){B p=(e.C=="41"?e.84:e.85)||e.86;22(p&&p!=q)2G{p=p.11}2w(e){p=q};7(p==q)v 12;v(e.C=="41"?f:g).14(q,[e])}v q.41(4O).6k(4O)},27:u(f){7(6.3W)f.14(17,[6]);J{6.3c.1g(u(){v f.14(q,[6])})}v q}});6.1z({3W:12,3c:[],27:u(){7(!6.3W){6.3W=U;7(6.3c){6.K(6.3c,u(){q.14(17)});6.3c=16}7(6.W.3h||6.W.3f)17.87("6o",6.27,12)}}});1p u(){6.K(("88,8a,2O,8b,8d,52,6j,8e,"+"8f,8g,8h,41,6k,8j,42,"+"4R,8k,8l,8m,2C").3o(","),u(i,o){6.E[o]=u(f){v f?q.3U(o,f):q.1S(o)}});7(6.W.3h||6.W.3f)17.8n("6o",6.27,12);J 7(6.W.1j){17.8o("<8r"+"8s 2J=62 8u=U "+"3e=//:><\\/2d>");B 2d=17.4X("62");7(2d)2d.37=u(){7(q.3D!="1X")v;q.11.33(q);6.27()};2d=16}J 7(6.W.2N)6.50=3L(u(){7(17.3D=="8y"||17.3D=="1X"){4p(6.50);6.50=16;6.27()}},10);6.G.1M(1w,"2O",6.27)};7(6.W.1j)6(1w).6u("52",u(){B 1k=6.G.1k;P(B C 1x 1k){B 4Z=1k[C],i=4Z.I;7(i&&C!=\'52\')6w 6.G.2f(4Z[i-1],C);22(--i)}});6.E.1z({6A:u(V,21,M){q.2O(V,21,M,1)},2O:u(V,21,M,1W){7(6.1t(V))v q.3U("2O",V);M=M||u(){};B C="5d";7(21)7(6.1t(21)){M=21;21=16}J{21=6.3g(21);C="5V"}B 4e=q;6.3v({V:V,C:C,F:21,1W:1W,1X:u(2P,15){7(15=="2M"||!1W&&15=="5L")4e.1I("2t",2P.3G).4V().K(M,[2P.3G,15,2P]);J M.14(4e,[2P.3G,15,2P])}});v q},6B:u(){v 6.3g(q)},4V:u(){v q.2o("2d").K(u(){7(q.3e)6.59(q.3e);J 6.4a(q.2L||q.6H||q.2t||"")}).4g()}});7(!1w.3p)3p=u(){v 1p 6I("6K.6M")};6.K("5m,5Q,5O,5W,5N,5H".3o(","),u(i,o){6.E[o]=u(f){v q.3U(o,f)}});6.1z({2b:u(V,F,M,C,1W){7(6.1t(F)){M=F;F=16}v 6.3v({V:V,F:F,2M:M,4t:C,1W:1W})},6Q:u(V,F,M,C){v 6.2b(V,F,M,C,1)},59:u(V,M){v 6.2b(V,16,M,"2d")},6S:u(V,F,M){v 6.2b(V,F,M,"6m")},6U:u(V,F,M,C){7(6.1t(F)){M=F;F={}}v 6.3v({C:"5V",V:V,F:F,2M:M,4t:C})},6X:u(29){6.3q.29=29},6Y:u(5c){6.1z(6.3q,5c)},3q:{1k:U,C:"5d",29:0,5r:"70/x-73-3w-77",5h:U,48:U,F:16},3S:{},3v:u(s){s=6.1z({},6.3q,s);7(s.F){7(s.5h&&1C s.F!="23")s.F=6.3g(s.F);7(s.C.4m()=="2b"){s.V+=((s.V.18("?")>-1)?"&":"?")+s.F;s.F=16}}7(s.1k&&!6.4E++)6.G.1S("5m");B 4y=12;B N=1p 3p();N.7j(s.C,s.V,s.48);7(s.F)N.3A("7l-7m",s.5r);7(s.1W)N.3A("7o-4K-7q",6.3S[s.V]||"7s, 7t 7w 7x 4o:4o:4o 7z");N.3A("X-7B-7C","3p");7(N.7E)N.3A("7F","7G");7(s.5G)s.5G(N);7(s.1k)6.G.1S("5H",[N,s]);B 37=u(4s){7(N&&(N.3D==4||4s=="29")){4y=U;7(3I){4p(3I);3I=16}B 15;2G{15=6.5Z(N)&&4s!="29"?s.1W&&6.69(N,s.V)?"5L":"2M":"2C";7(15!="2C"){B 3F;2G{3F=N.4P("6b-4K")}2w(e){}7(s.1W&&3F)6.3S[s.V]=3F;B F=6.6i(N,s.4t);7(s.2M)s.2M(F,15);7(s.1k)6.G.1S("5N",[N,s])}J 6.3J(s,N,15)}2w(e){15="2C";6.3J(s,N,15,e)}7(s.1k)6.G.1S("5O",[N,s]);7(s.1k&&!--6.4E)6.G.1S("5Q");7(s.1X)s.1X(N,15);7(s.48)N=16}};B 3I=3L(37,13);7(s.29>0)57(u(){7(N){N.7N();7(!4y)37("29")}},s.29);2G{N.7Q(s.F)}2w(e){6.3J(s,N,16,e)}7(!s.48)37();v N},3J:u(s,N,15,e){7(s.2C)s.2C(N,15,e);7(s.1k)6.G.1S("5W",[N,s,e])},4E:0,5Z:u(r){2G{v!r.15&&7V.7W=="4G:"||(r.15>=5X&&r.15<7X)||r.15==6d||6.W.2N&&r.15==T}2w(e){}v 12},69:u(N,V){2G{B 6e=N.4P("6b-4K");v N.15==6d||6e==6.3S[V]||6.W.2N&&N.15==T}2w(e){}v 12},6i:u(r,C){B 4Q=r.4P("8c-C");B F=!C&&4Q&&4Q.18("N")>=0;F=C=="N"||F?r.8i:r.3G;7(C=="2d")6.4a(F);7(C=="6m")40("F = "+F);7(C=="4U")6("<1V>").4U(F).4V();v F},3g:u(a){B s=[];7(a.1l==2y||a.3Y)6.K(a,u(){s.1g(2x(q.Y)+"="+2x(q.O))});J P(B j 1x a)7(a[j]&&a[j].1l==2y)6.K(a[j],u(){s.1g(2x(j)+"="+2x(q))});J s.1g(2x(j)+"="+2x(a[j]));v s.6t("&")},4a:u(F){7(1w.54)1w.54(F);J 7(6.W.2N)1w.57(F,0);J 40.3n(1w,F)}});6.E.1z({1L:u(R,M){B 1G=q.1D(":1G");R?1G.26({28:"1L",3V:"1L",1d:"1L"},R,M):1G.K(u(){q.1q.1h=q.2E?q.2E:"";7(6.1m(q,"1h")=="1Z")q.1q.1h="2D"});v q},1K:u(R,M){B 3i=q.1D(":3i");R?3i.26({28:"1K",3V:"1K",1d:"1K"},R,M):3i.K(u(){q.2E=q.2E||6.1m(q,"1h");7(q.2E=="1Z")q.2E="2D";q.1q.1h="1Z"});v q},5g:6.E.3X,3X:u(E,4I){B 1E=1A;v 6.1t(E)&&6.1t(4I)?q.5g(E,4I):q.K(u(){6(q)[6(q).4l(":1G")?"1L":"1K"].14(6(q),1E)})},7a:u(R,M){v q.26({28:"1L"},R,M)},7c:u(R,M){v q.26({28:"1K"},R,M)},7f:u(R,M){v q.K(u(){B 5k=6(q).4l(":1G")?"1L":"1K";6(q).26({28:5k},R,M)})},7r:u(R,M){v q.26({1d:"1L"},R,M)},7u:u(R,M){v q.26({1d:"1K"},R,M)},7y:u(R,43,M){v q.26({1d:43},R,M)},26:u(H,R,1v,M){v q.1F(u(){q.2F=6.1z({},H);B 1u=6.R(R,1v,M);P(B p 1x H){B e=1p 6.3b(q,1u,p);7(H[p].1l==3Q)e.2s(e.Q(),H[p]);J e[H[p]](H)}})},1F:u(C,E){7(!E){E=C;C="3b"}v q.K(u(){7(!q.1F)q.1F={};7(!q.1F[C])q.1F[C]=[];q.1F[C].1g(E);7(q.1F[C].I==1)E.14(q)})}});6.1z({R:u(R,1v,E){B 1u=R&&R.1l==7K?R:{1X:E||!E&&1v||6.1t(R)&&R,25:R,1v:E&&1v||1v&&1v.1l!=4w&&1v};1u.25=(1u.25&&1u.25.1l==3Q?1u.25:{7R:7S,7T:5X}[1u.25])||7U;1u.1N=1u.1X;1u.1X=u(){6.6a(q,"3b");7(6.1t(1u.1N))1u.1N.14(q)};v 1u},1v:{},1F:{},6a:u(D,C){C=C||"3b";7(D.1F&&D.1F[C]){D.1F[C].4L();B f=D.1F[C][0];7(f)f.14(D)}},3b:u(D,1e,H){B z=q;B y=D.1q;B 4D=6.1m(D,"1h");y.5T="1G";z.a=u(){7(1e.49)1e.49.14(D,[z.2p]);7(H=="1d")6.1I(y,"1d",z.2p);J 7(6l(z.2p))y[H]=6l(z.2p)+"4S";y.1h="2D"};z.6v=u(){v 4T(6.1m(D,H))};z.Q=u(){B r=4T(6.30(D,H));v r&&r>-8z?r:z.6v()};z.2s=u(4f,43){z.4J=(1p 5o()).5w();z.2p=4f;z.a();z.4q=3L(u(){z.49(4f,43)},13)};z.1L=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1L=U;z.2s(0,D.1y[H]);7(H!="1d")y[H]="5a"};z.1K=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1K=U;z.2s(D.1y[H],0)};z.3X=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();7(4D=="1Z"){1e.1L=U;7(H!="1d")y[H]="5a";z.2s(0,D.1y[H])}J{1e.1K=U;z.2s(D.1y[H],0)}};z.49=u(32,47){B t=(1p 5o()).5w();7(t>1e.25+z.4J){4p(z.4q);z.4q=16;z.2p=47;z.a();7(D.2F)D.2F[H]=U;B 2c=U;P(B i 1x D.2F)7(D.2F[i]!==U)2c=12;7(2c){y.5T="";y.1h=4D;7(6.1m(D,"1h")=="1Z")y.1h="2D";7(1e.1K)y.1h="1Z";7(1e.1K||1e.1L)P(B p 1x D.2F)7(p=="1d")6.1I(y,p,D.1y[p]);J y[p]=""}7(2c&&6.1t(1e.1X))1e.1X.14(D)}J{B n=t-q.4J;B p=n/1e.25;z.2p=1e.1v&&6.1v[1e.1v]?6.1v[1e.1v](p,n,32,(47-32),1e.25):((-6h.7O(p*6h.8L)/2)+0.5)*(47-32)+32;z.a()}}}})}',62,545,'||||||jQuery|if|||||||||||||||||||this||||function|return||||||var|type|elem|fn|data|event|prop|length|else|each|ret|callback|xml|value|for|cur|speed|element|undefined|true|url|browser||name|||parentNode|false||apply|status|null|document|indexOf|className|val|firstChild|obj|opacity|options|nodeName|push|display|result|msie|global|constructor|css|test|handler|new|style|arg|expr|isFunction|opt|easing|window|in|orig|extend|arguments|context|typeof|filter|args|queue|hidden|events|attr|re|hide|show|add|old|target|table|token|replace|trigger|num|elems|div|ifModified|complete|key|none|tbody|params|while|string|nodeType|duration|animate|ready|height|timeout|nth|get|done|script|nextSibling|remove|not|index|tb|fix|merge|oid|z0|preventDefault|find|now|grep|pushStack|custom|innerHTML|first|cssFloat|catch|encodeURIComponent|Array|el|guid|sibling|error|block|oldblock|curAnim|try|stopPropagation|childNodes|id|wrap|text|success|safari|load|res|exec|al|_|last|substr|has|disabled|insertBefore|selected|checked|curCSS|map|firstNum|removeChild|re2|trim|getAttribute|onreadystatechange|handlers|on|originalEvent|fx|readyList|parPos|src|opera|param|mozilla|visible|domManip|clean|cloneNode|tr|call|split|XMLHttpRequest|ajaxSettings|append|child|String|empty|ajax|form|button|inArray|multiFilter|setRequestHeader|foundToken|9_|readyState|tag|modRes|responseText|second|ival|handleError|toUpperCase|setInterval|makeArray|slice|break|oWidth|Number|returnValue|lastModified|styleFloat|bind|width|isReady|toggle|jquery|dir|eval|mouseover|select|to|defaultView|position|oHeight|lastNum|async|step|globalEval|static|pos|swap|self|from|end|float|alpha|radio|inv|is|toLowerCase|visibility|00|clearInterval|timer|rec|isTimeout|dataType|_resort|RegExp|Function|getAll|requestDone|parents|matched|isXMLDoc|appendChild|oldDisplay|active|triggered|file|documentElement|fn2|startTime|Modified|shift|lastToggle|deep|handleHover|getResponseHeader|ct|submit|px|parseFloat|html|evalScripts|getComputedStyle|getElementById|clone|els|safariTimer|currentStyle|unload|force|execScript|getPropertyValue|newProp|setTimeout|zoom|getScript|1px|sl|settings|GET|rl|check|_toggle|processData|prepend|before|state|removeAttr|ajaxStart|lt|Date|gt|eq|contentType|previousSibling|after|parent|contains|getTime|checkbox|password|appendTo|image|reset|input|webkit|href|continue|beforeSend|ajaxSend|ownerDocument|getElementsByTagName|tmp|notmodified|parse|ajaxSuccess|ajaxComplete|_prefix|ajaxStop|even|odd|overflow|delete|POST|ajaxError|200|handle|httpSuccess|nodeValue|unshift|__ie_init|srcElement|body|pageX|tagName|clientX|scrollLeft|httpNotModified|dequeue|Last|scrollTop|304|xmlRes|unbind|100|Math|httpData|click|mouseout|parseInt|json|createElement|DOMContentLoaded|prevObject|ol|setArray|exclude|join|one|max|do|relative|clientHeight|clientWidth|loadIfModified|serialize|toString|thead|tfoot|td|th|textContent|ActiveXObject|htmlFor|Microsoft|class|XMLHTTP|readOnly|gi|match|getIfModified|9999|getJSON|getAttributeNode|post|setAttribute|ig|ajaxTimeout|ajaxSetup|concat|application|userAgent|compatible|www|compatMode|CSS1Compat|next|urlencoded|siblings|children|slideDown|prependTo|slideUp|Top|insertAfter|slideToggle|removeAttribute|addClass|removeClass|open|toggleClass|Content|Type|lastChild|If|only|Since|fadeIn|Thu|01|fadeOut|enabled|Jan|1970|fadeTo|GMT|textarea|Requested|With|prev|overrideMimeType|Connection|close|boxModel|right|object|Object|navigator|substring|abort|cos|font|send|slow|600|fast|400|location|protocol|300|pageY|clientY|method|action|cancelBubble|hover|fromElement|toElement|relatedTarget|removeEventListener|blur|readonly|focus|resize|content|scroll|dblclick|mousedown|mouseup|mousemove|responseXML|change|keydown|keypress|keyup|addEventListener|write|prototype|size|scr|ipt|createTextNode|defer|FORM|reverse|noConflict|loaded|10000|weight|line|Bottom|Right|Left|padding|border|Width|offsetHeight|offsetWidth|absolute|PI|left'.split('|'),0,{}))
1
+ eval(function(p,a,c,k,e,d){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--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[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}('7(1C 1w.6=="T"){1w.T=1w.T;B 6=u(a,c){7(1w==q)v 1p 6(a,c);a=a||17;7(6.1t(a))v 1p 6(17)[6.E.27?"27":"2O"](a);7(1C a=="23"){B m=/^[^<]*(<(.|\\s)+>)[^>]*$/.2Q(a);7(m)a=6.3k([m[1]]);J v 1p 6(c).2o(a)}v q.6r(a.1l==2y&&a||(a.3Y||a.I&&a!=1w&&!a.24&&a[0]!=T&&a[0].24)&&6.3M(a)||[a])};7(1C $!="T")6.2S$=$;B $=6;6.E=6.8p={3Y:"1.1.2",8q:u(){v q.I},I:0,2b:u(1T){v 1T==T?6.3M(q):q[1T]},2r:u(a){B L=6(a);L.6p=q;v L},6r:u(a){q.I=0;[].1g.14(q,a);v q},K:u(E,1E){v 6.K(q,E,1E)},2h:u(1c){B 4c=-1;q.K(u(i){7(q==1c)4c=i});v 4c},1I:u(1Y,O,C){B 1c=1Y;7(1Y.1l==3t)7(O==T)v q.I&&6[C||"1I"](q[0],1Y)||T;J{1c={};1c[1Y]=O}v q.K(u(2h){P(B H 1x 1c)6.1I(C?q.1q:q,H,6.H(q,1c[H],C,2h,H))})},1m:u(1Y,O){v q.1I(1Y,O,"30")},2L:u(e){7(1C e=="23")v q.3u().3r(17.8t(e));B t="";6.K(e||q,u(){6.K(q.2I,u(){7(q.24!=8)t+=q.24!=1?q.60:6.E.2L([q])})});v t},2K:u(){B a=6.3k(1A);v q.K(u(){B b=a[0].3l(U);q.11.2X(b,q);22(b.1b)b=b.1b;b.4C(q)})},3r:u(){v q.3j(1A,U,1,u(a){q.4C(a)})},5i:u(){v q.3j(1A,U,-1,u(a){q.2X(a,q.1b)})},5j:u(){v q.3j(1A,12,1,u(a){q.11.2X(a,q)})},5t:u(){v q.3j(1A,12,-1,u(a){q.11.2X(a,q.2e)})},4g:u(){v q.6p||6([])},2o:u(t){v q.2r(6.31(q,u(a){v 6.2o(t,a)}),t)},4Y:u(4N){v q.2r(6.31(q,u(a){B a=a.3l(4N!=T?4N:U);a.$1H=16;v a}))},1D:u(t){v q.2r(6.1t(t)&&6.2q(q,u(2z,2h){v t.14(2z,[2h])})||6.3z(t,q))},2g:u(t){v q.2r(t.1l==3t&&6.3z(t,q,U)||6.2q(q,u(a){v(t.1l==2y||t.3Y)?6.3y(a,t)<0:a!=t}))},1M:u(t){v q.2r(6.2k(q.2b(),t.1l==3t?6(t).2b():t.I!=T&&(!t.1f||t.1f=="8v")?t:[t]))},4l:u(1s){v 1s?6.1D(1s,q).r.I>0:12},1a:u(1a){v 1a==T?(q.I?q[0].O:16):q.1I("O",1a)},4U:u(1a){v 1a==T?(q.I?q[0].2t:16):q.3u().3r(1a)},3j:u(1E,1P,3Z,E){B 4Y=q.I>1;B a=6.3k(1E);7(3Z<0)a.8w();v q.K(u(){B 1c=q;7(1P&&6.1f(q,"1P")&&6.1f(a[0],"3m"))1c=q.5J("20")[0]||q.4C(17.6n("20"));6.K(a,u(){E.14(1c,[4Y?q.3l(U):q])})})}};6.1z=6.E.1z=u(){B 1O=1A[0],a=1;7(1A.I==1){1O=q;a=0}B H;22(H=1A[a++])P(B i 1x H)1O[i]=H[i];v 1O};6.1z({8x:u(){7(6.2S$)$=6.2S$;v 6},1t:u(E){v!!E&&1C E!="23"&&!E.1f&&1C E[0]=="T"&&/u/i.1n(E+"")},4B:u(D){v D.66&&D.5I&&!D.5I.64},1f:u(D,Y){v D.1f&&D.1f.3K()==Y.3K()},K:u(1c,E,1E){7(1c.I==T)P(B i 1x 1c)E.14(1c[i],1E||[i,1c[i]]);J P(B i=0,6q=1c.I;i<6q;i++)7(E.14(1c[i],1E||[i,1c[i]])===12)3O;v 1c},H:u(D,O,C,2h,H){7(6.1t(O))O=O.3n(D,[2h]);B 6s=/z-?2h|7P-?8A|1d|58|8B-?28/i;v O&&O.1l==3Q&&C=="30"&&!6s.1n(H)?O+"4S":O},19:{1M:u(D,c){6.K(c.3o(/\\s+/),u(i,Q){7(!6.19.2V(D.19,Q))D.19+=(D.19?" ":"")+Q})},2f:u(D,c){D.19=c?6.2q(D.19.3o(/\\s+/),u(Q){v!6.19.2V(c,Q)}).6t(" "):""},2V:u(t,c){t=t.19||t;c=c.1R(/([\\.\\\\\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g,"\\\\$1");v t&&1p 4v("(^|\\\\s)"+c+"(\\\\s|$)").1n(t)}},4d:u(e,o,f){P(B i 1x o){e.1q["1N"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);P(B i 1x o)e.1q[i]=e.1q["1N"+i]},1m:u(e,p){7(p=="28"||p=="3V"){B 1N={},46,3P,d=["7d","8C","8D","8E"];6.K(d,u(){1N["8F"+q]=0;1N["8G"+q+"8H"]=0});6.4d(e,1N,u(){7(6.1m(e,"1h")!="1Z"){46=e.8I;3P=e.8J}J{e=6(e.3l(U)).2o(":4j").5l("2Z").4g().1m({4n:"1G",45:"8K",1h:"2D",7I:"0",8M:"0"}).5z(e.11)[0];B 3d=6.1m(e.11,"45");7(3d==""||3d=="4b")e.11.1q.45="6x";46=e.6y;3P=e.6z;7(3d==""||3d=="4b")e.11.1q.45="4b";e.11.33(e)}});v p=="28"?46:3P}v 6.30(e,p)},30:u(D,H,53){B L;7(H=="1d"&&6.W.1j)v 6.1I(D.1q,"1d");7(H=="4h"||H=="2v")H=6.W.1j?"3T":"2v";7(!53&&D.1q[H])L=D.1q[H];J 7(17.44&&17.44.4W){7(H=="2v"||H=="3T")H="4h";H=H.1R(/([A-Z])/g,"-$1").4m();B Q=17.44.4W(D,16);7(Q)L=Q.55(H);J 7(H=="1h")L="1Z";J 6.4d(D,{1h:"2D"},u(){B c=17.44.4W(q,"");L=c&&c.55(H)||""})}J 7(D.51){B 56=H.1R(/\\-(\\w)/g,u(m,c){v c.3K()});L=D.51[H]||D.51[56]}v L},3k:u(a){B r=[];6.K(a,u(i,1r){7(!1r)v;7(1r.1l==3Q)1r=1r.6C();7(1C 1r=="23"){B s=6.35(1r),1V=17.6n("1V"),2i=[];B 2K=!s.18("<1u")&&[1,"<42>","</42>"]||(!s.18("<6D")||!s.18("<20")||!s.18("<6E"))&&[1,"<1P>","</1P>"]||!s.18("<3m")&&[2,"<1P><20>","</20></1P>"]||(!s.18("<6F")||!s.18("<6G"))&&[3,"<1P><20><3m>","</3m></20></1P>"]||[0,"",""];1V.2t=2K[1]+s+2K[2];22(2K[0]--)1V=1V.1b;7(6.W.1j){7(!s.18("<1P")&&s.18("<20")<0)2i=1V.1b&&1V.1b.2I;J 7(2K[1]=="<1P>"&&s.18("<20")<0)2i=1V.2I;P(B n=2i.I-1;n>=0;--n)7(6.1f(2i[n],"20")&&!2i[n].2I.I)2i[n].11.33(2i[n])}1r=[];P(B i=0,l=1V.2I.I;i<l;i++)1r.1g(1V.2I[i])}7(1r.I===0&&!6.1f(1r,"3w"))v;7(1r[0]==T||6.1f(1r,"3w"))r.1g(1r);J r=6.2k(r,1r)});v r},1I:u(D,Y,O){B 2j=6.4B(D)?{}:{"P":"6J","6L":"19","4h":6.W.1j?"3T":"2v",2v:6.W.1j?"3T":"2v",2t:"2t",19:"19",O:"O",2W:"2W",2Z:"2Z",89:"6N",2Y:"2Y"};7(Y=="1d"&&6.W.1j&&O!=T){D.58=1;v D.1D=D.1D.1R(/4i\\([^\\)]*\\)/6O,"")+(O==1?"":"4i(1d="+O*6g+")")}J 7(Y=="1d"&&6.W.1j)v D.1D?4T(D.1D.6P(/4i\\(1d=(.*)\\)/)[1])/6g:1;7(Y=="1d"&&6.W.3h&&O==1)O=0.6R;7(2j[Y]){7(O!=T)D[2j[Y]]=O;v D[2j[Y]]}J 7(O==T&&6.W.1j&&6.1f(D,"3w")&&(Y=="81"||Y=="80"))v D.6T(Y).60;J 7(D.66){7(O!=T)D.6V(Y,O);7(6.W.1j&&/5E|3e/.1n(Y)&&!6.4B(D))v D.36(Y,2);v D.36(Y)}J{Y=Y.1R(/-([a-z])/6W,u(z,b){v b.3K()});7(O!=T)D[Y]=O;v D[Y]}},35:u(t){v t.1R(/^\\s+|\\s+$/g,"")},3M:u(a){B r=[];7(a.1l!=2y)P(B i=0,2R=a.I;i<2R;i++)r.1g(a[i]);J r=a.3N(0);v r},3y:u(b,a){P(B i=0,2R=a.I;i<2R;i++)7(a[i]==b)v i;v-1},2k:u(2u,3H){B r=[].3N.3n(2u,0);P(B i=0,5b=3H.I;i<5b;i++)7(6.3y(3H[i],r)==-1)2u.1g(3H[i]);v 2u},2q:u(1U,E,4k){7(1C E=="23")E=1p 4w("a","i","v "+E);B 1i=[];P(B i=0,2z=1U.I;i<2z;i++)7(!4k&&E(1U[i],i)||4k&&!E(1U[i],i))1i.1g(1U[i]);v 1i},31:u(1U,E){7(1C E=="23")E=1p 4w("a","v "+E);B 1i=[],r=[];P(B i=0,2z=1U.I;i<2z;i++){B 1a=E(1U[i],i);7(1a!==16&&1a!=T){7(1a.1l!=2y)1a=[1a];1i=1i.6Z(1a)}}B r=1i.I?[1i[0]]:[];5f:P(B i=1,5e=1i.I;i<5e;i++){P(B j=0;j<i;j++)7(1i[i]==r[j])5F 5f;r.1g(1i[i])}v r}});1p u(){B b=7L.71.4m();6.W={2N:/5D/.1n(b),3f:/3f/.1n(b),1j:/1j/.1n(b)&&!/3f/.1n(b),3h:/3h/.1n(b)&&!/(72|5D)/.1n(b)};6.7H=!6.W.1j||17.74=="75"};6.K({5u:"a.11",4z:"6.4z(a)",76:"6.2a(a,2,\'2e\')",7D:"6.2a(a,2,\'5s\')",78:"6.2B(a.11.1b,a)",79:"6.2B(a.1b)"},u(i,n){6.E[i]=u(a){B L=6.31(q,n);7(a&&1C a=="23")L=6.3z(a,L);v q.2r(L)}});6.K({5z:"3r",7b:"5i",2X:"5j",7e:"5t"},u(i,n){6.E[i]=u(){B a=1A;v q.K(u(){P(B j=0,2R=a.I;j<2R;j++)6(a[j])[n](q)})}});6.K({5l:u(1Y){6.1I(q,1Y,"");q.7g(1Y)},7h:u(c){6.19.1M(q,c)},7i:u(c){6.19.2f(q,c)},7k:u(c){6.19[6.19.2V(q,c)?"2f":"1M"](q,c)},2f:u(a){7(!a||6.1D(a,[q]).r.I)q.11.33(q)},3u:u(){22(q.1b)q.33(q.1b)}},u(i,n){6.E[i]=u(){v q.K(n,1A)}});6.K(["5q","5n","5p","5v"],u(i,n){6.E[n]=u(1T,E){v q.1D(":"+n+"("+1T+")",E)}});6.K(["28","3V"],u(i,n){6.E[n]=u(h){v h==T?(q.I?6.1m(q[0],n):16):q.1m(n,h.1l==3t?h:h+"4S")}});6.1z({1s:{"":"m[2]==\'*\'||6.1f(a,m[2])","#":"a.36(\'2J\')==m[2]",":":{5n:"i<m[3]-0",5p:"i>m[3]-0",2a:"m[3]-0==i",5q:"m[3]-0==i",2u:"i==0",2T:"i==r.I-1",5R:"i%2==0",5S:"i%2","2a-3s":"6.2a(a.11.1b,m[3],\'2e\',a)==a","2u-3s":"6.2a(a.11.1b,1,\'2e\')==a","2T-3s":"6.2a(a.11.7n,1,\'5s\')==a","7p-3s":"6.2B(a.11.1b).I==1",5u:"a.1b",3u:"!a.1b",5v:"6.E.2L.14([a]).18(m[3])>=0",3i:\'a.C!="1G"&&6.1m(a,"1h")!="1Z"&&6.1m(a,"4n")!="1G"\',1G:\'a.C=="1G"||6.1m(a,"1h")=="1Z"||6.1m(a,"4n")=="1G"\',7v:"!a.2W",2W:"a.2W",2Z:"a.2Z",2Y:"a.2Y||6.1I(a,\'2Y\')",2L:"a.C==\'2L\'",4j:"a.C==\'4j\'",5x:"a.C==\'5x\'",4G:"a.C==\'4G\'",5y:"a.C==\'5y\'",4R:"a.C==\'4R\'",5A:"a.C==\'5A\'",5B:"a.C==\'5B\'",3x:\'a.C=="3x"||6.1f(a,"3x")\',5C:"/5C|42|7A|3x/i.1n(a.1f)"},".":"6.19.2V(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.18(m[4])","$=":"z&&z.2U(z.I - m[4].I,m[4].I)==m[4]","*=":"z&&z.18(m[4])>=0","":"z",4u:u(m){v["",m[1],m[3],m[2],m[5]]},5P:"z=a[m[3]];7(!z||/5E|3e/.1n(m[3]))z=6.1I(a,m[3]);"},"[":"6.2o(m[2],a).I"},5M:[/^\\[ *(@)([a-2m-3C-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2m-3C-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2m-3C*-]*)/i],1Q:[/^(\\/?\\.\\.)/,"a.11",/^(>|\\/)/,"6.2B(a.1b)",/^(\\+)/,"6.2a(a,2,\'2e\')",/^(~)/,u(a){B s=6.2B(a.11.1b);v s.3N(6.3y(a,s)+1)}],3z:u(1s,1U,2g){B 1N,Q=[];22(1s&&1s!=1N){1N=1s;B f=6.1D(1s,1U,2g);1s=f.t.1R(/^\\s*,\\s*/,"");Q=2g?1U=f.r:6.2k(Q,f.r)}v Q},2o:u(t,1B){7(1C t!="23")v[t];7(1B&&!1B.24)1B=16;1B=1B||17;7(!t.18("//")){1B=1B.4H;t=t.2U(2,t.I)}J 7(!t.18("/")){1B=1B.4H;t=t.2U(1,t.I);7(t.18("/")>=1)t=t.2U(t.18("/"),t.I)}B L=[1B],2c=[],2T=16;22(t&&2T!=t){B r=[];2T=t;t=6.35(t).1R(/^\\/\\//i,"");B 3B=12;B 1J=/^[\\/>]\\s*([a-2m-9*-]+)/i;B m=1J.2Q(t);7(m){6.K(L,u(){P(B c=q.1b;c;c=c.2e)7(c.24==1&&(6.1f(c,m[1])||m[1]=="*"))r.1g(c)});L=r;t=t.1R(1J,"");7(t.18(" ")==0)5F;3B=U}J{P(B i=0;i<6.1Q.I;i+=2){B 1J=6.1Q[i];B m=1J.2Q(t);7(m){r=L=6.31(L,6.1t(6.1Q[i+1])?6.1Q[i+1]:u(a){v 40(6.1Q[i+1])});t=6.35(t.1R(1J,""));3B=U;3O}}}7(t&&!3B){7(!t.18(",")){7(L[0]==1B)L.4L();6.2k(2c,L);r=L=[1B];t=" "+t.2U(1,t.I)}J{B 34=/^([a-2m-3C-]+)(#)([a-2m-9\\\\*2S-]*)/i;B m=34.2Q(t);7(m){m=[0,m[2],m[3],m[1]]}J{34=/^([#.]?)([a-2m-9\\\\*2S-]*)/i;m=34.2Q(t)}7(m[1]=="#"&&L[L.I-1].4X){B 2l=L[L.I-1].4X(m[2]);7(6.W.1j&&2l&&2l.2J!=m[2])2l=6(\'[@2J="\'+m[2]+\'"]\',L[L.I-1])[0];L=r=2l&&(!m[3]||6.1f(2l,m[3]))?[2l]:[]}J{7(m[1]==".")B 4r=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.K(L,u(){B 3E=m[1]!=""||m[0]==""?"*":m[2];7(6.1f(q,"7J")&&3E=="*")3E="3g";6.2k(r,m[1]!=""&&L.I!=1?6.4x(q,[],m[1],m[2],4r):q.5J(3E))});7(m[1]=="."&&L.I==1)r=6.2q(r,u(e){v 4r.1n(e.19)});7(m[1]=="#"&&L.I==1){B 5K=r;r=[];6.K(5K,u(){7(q.36("2J")==m[2]){r=[q];v 12}})}L=r}t=t.1R(34,"")}}7(t){B 1a=6.1D(t,r);L=r=1a.r;t=6.35(1a.t)}}7(L&&L[0]==1B)L.4L();6.2k(2c,L);v 2c},1D:u(t,r,2g){22(t&&/^[a-z[({<*:.#]/i.1n(t)){B p=6.5M,m;6.K(p,u(i,1J){m=1J.2Q(t);7(m){t=t.7M(m[0].I);7(6.1s[m[1]].4u)m=6.1s[m[1]].4u(m);v 12}});7(m[1]==":"&&m[2]=="2g")r=6.1D(m[3],r,U).r;J 7(m[1]=="."){B 1J=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2q(r,u(e){v 1J.1n(e.19||"")},2g)}J{B f=6.1s[m[1]];7(1C f!="23")f=6.1s[m[1]][m[2]];40("f = u(a,i){"+(6.1s[m[1]].5P||"")+"v "+f+"}");r=6.2q(r,f,2g)}}v{r:r,t:t}},4x:u(o,r,1Q,Y,1J){P(B s=o.1b;s;s=s.2e)7(s.24==1){B 1M=U;7(1Q==".")1M=s.19&&1J.1n(s.19);J 7(1Q=="#")1M=s.36("2J")==Y;7(1M)r.1g(s);7(1Q=="#"&&r.I)3O;7(s.1b)6.4x(s,r,1Q,Y,1J)}v r},4z:u(D){B 4A=[];B Q=D.11;22(Q&&Q!=17){4A.1g(Q);Q=Q.11}v 4A},2a:u(Q,1i,3Z,D){1i=1i||1;B 1T=0;P(;Q;Q=Q[3Z]){7(Q.24==1)1T++;7(1T==1i||1i=="5R"&&1T%2==0&&1T>1&&Q==D||1i=="5S"&&1T%2==1&&Q==D)v Q}},2B:u(n,D){B r=[];P(;n;n=n.2e){7(n.24==1&&(!D||n!=D))r.1g(n)}v r}});6.G={1M:u(S,C,1o,F){7(6.W.1j&&S.3L!=T)S=1w;7(F)1o.F=F;7(!1o.2A)1o.2A=q.2A++;7(!S.$1H)S.$1H={};B 38=S.$1H[C];7(!38){38=S.$1H[C]={};7(S["39"+C])38[0]=S["39"+C]}38[1o.2A]=1o;S["39"+C]=q.5Y;7(!q.1k[C])q.1k[C]=[];q.1k[C].1g(S)},2A:1,1k:{},2f:u(S,C,1o){7(S.$1H){B i,j,k;7(C&&C.C){1o=C.1o;C=C.C}7(C&&S.$1H[C])7(1o)5U S.$1H[C][1o.2A];J P(i 1x S.$1H[C])5U S.$1H[C][i];J P(j 1x S.$1H)q.2f(S,j);P(k 1x S.$1H[C])7(k){k=U;3O}7(!k)S["39"+C]=16}},1S:u(C,F,S){F=6.3M(F||[]);7(!S)6.K(q.1k[C]||[],u(){6.G.1S(C,F,q)});J{B 1o=S["39"+C],1a,E=6.1t(S[C]);7(1o){F.61(q.2j({C:C,1O:S}));7((1a=1o.14(S,F))!==12)q.4F=U}7(E&&1a!==12)S[C]();q.4F=12}},5Y:u(G){7(1C 6=="T"||6.G.4F)v;G=6.G.2j(G||1w.G||{});B 3R;B c=q.$1H[G.C];B 1E=[].3N.3n(1A,1);1E.61(G);P(B j 1x c){1E[0].1o=c[j];1E[0].F=c[j].F;7(c[j].14(q,1E)===12){G.2n();G.2H();3R=12}}7(6.W.1j)G.1O=G.2n=G.2H=G.1o=G.F=16;v 3R},2j:u(G){7(!G.1O&&G.63)G.1O=G.63;7(G.65==T&&G.67!=T){B e=17.4H,b=17.64;G.65=G.67+(e.68||b.68);G.7Y=G.7Z+(e.6c||b.6c)}7(6.W.2N&&G.1O.24==3){B 3a=G;G=6.1z({},3a);G.1O=3a.1O.11;G.2n=u(){v 3a.2n()};G.2H=u(){v 3a.2H()}}7(!G.2n)G.2n=u(){q.3R=12};7(!G.2H)G.2H=u(){q.82=U};v G}};6.E.1z({3U:u(C,F,E){v q.K(u(){6.G.1M(q,C,E||F,F)})},6u:u(C,F,E){v q.K(u(){6.G.1M(q,C,u(G){6(q).6f(G);v(E||F).14(q,1A)},F)})},6f:u(C,E){v q.K(u(){6.G.2f(q,C,E)})},1S:u(C,F){v q.K(u(){6.G.1S(C,F,q)})},3X:u(){B a=1A;v q.6j(u(e){q.4M=q.4M==0?1:0;e.2n();v a[q.4M].14(q,[e])||12})},83:u(f,g){u 4O(e){B p=(e.C=="41"?e.84:e.85)||e.86;22(p&&p!=q)2G{p=p.11}2w(e){p=q};7(p==q)v 12;v(e.C=="41"?f:g).14(q,[e])}v q.41(4O).6k(4O)},27:u(f){7(6.3W)f.14(17,[6]);J{6.3c.1g(u(){v f.14(q,[6])})}v q}});6.1z({3W:12,3c:[],27:u(){7(!6.3W){6.3W=U;7(6.3c){6.K(6.3c,u(){q.14(17)});6.3c=16}7(6.W.3h||6.W.3f)17.87("6o",6.27,12)}}});1p u(){6.K(("88,8a,2O,8b,8d,52,6j,8e,"+"8f,8g,8h,41,6k,8j,42,"+"4R,8k,8l,8m,2C").3o(","),u(i,o){6.E[o]=u(f){v f?q.3U(o,f):q.1S(o)}});7(6.W.3h||6.W.3f)17.8n("6o",6.27,12);J 7(6.W.1j){17.8o("<8r"+"8s 2J=62 8u=U "+"3e=//:><\\/2d>");B 2d=17.4X("62");7(2d)2d.37=u(){7(q.3D!="1X")v;q.11.33(q);6.27()};2d=16}J 7(6.W.2N)6.50=3L(u(){7(17.3D=="8y"||17.3D=="1X"){4p(6.50);6.50=16;6.27()}},10);6.G.1M(1w,"2O",6.27)};7(6.W.1j)6(1w).6u("52",u(){B 1k=6.G.1k;P(B C 1x 1k){B 4Z=1k[C],i=4Z.I;7(i&&C!=\'52\')6w 6.G.2f(4Z[i-1],C);22(--i)}});6.E.1z({6A:u(V,21,M){q.2O(V,21,M,1)},2O:u(V,21,M,1W){7(6.1t(V))v q.3U("2O",V);M=M||u(){};B C="5d";7(21)7(6.1t(21)){M=21;21=16}J{21=6.3g(21);C="5V"}B 4e=q;6.3v({V:V,C:C,F:21,1W:1W,1X:u(2P,15){7(15=="2M"||!1W&&15=="5L")4e.1I("2t",2P.3G).4V().K(M,[2P.3G,15,2P]);J M.14(4e,[2P.3G,15,2P])}});v q},6B:u(){v 6.3g(q)},4V:u(){v q.2o("2d").K(u(){7(q.3e)6.59(q.3e);J 6.4a(q.2L||q.6H||q.2t||"")}).4g()}});7(!1w.3p)3p=u(){v 1p 6I("6K.6M")};6.K("5m,5Q,5O,5W,5N,5H".3o(","),u(i,o){6.E[o]=u(f){v q.3U(o,f)}});6.1z({2b:u(V,F,M,C,1W){7(6.1t(F)){M=F;F=16}v 6.3v({V:V,F:F,2M:M,4t:C,1W:1W})},6Q:u(V,F,M,C){v 6.2b(V,F,M,C,1)},59:u(V,M){v 6.2b(V,16,M,"2d")},6S:u(V,F,M){v 6.2b(V,F,M,"6m")},6U:u(V,F,M,C){7(6.1t(F)){M=F;F={}}v 6.3v({C:"5V",V:V,F:F,2M:M,4t:C})},6X:u(29){6.3q.29=29},6Y:u(5c){6.1z(6.3q,5c)},3q:{1k:U,C:"5d",29:0,5r:"70/x-73-3w-77",5h:U,48:U,F:16},3S:{},3v:u(s){s=6.1z({},6.3q,s);7(s.F){7(s.5h&&1C s.F!="23")s.F=6.3g(s.F);7(s.C.4m()=="2b"){s.V+=((s.V.18("?")>-1)?"&":"?")+s.F;s.F=16}}7(s.1k&&!6.4E++)6.G.1S("5m");B 4y=12;B N=1p 3p();N.7j(s.C,s.V,s.48);7(s.F)N.3A("7l-7m",s.5r);7(s.1W)N.3A("7o-4K-7q",6.3S[s.V]||"7s, 7t 7w 7x 4o:4o:4o 7z");N.3A("X-7B-7C","3p");7(N.7E)N.3A("7F","7G");7(s.5G)s.5G(N);7(s.1k)6.G.1S("5H",[N,s]);B 37=u(4s){7(N&&(N.3D==4||4s=="29")){4y=U;7(3I){4p(3I);3I=16}B 15;2G{15=6.5Z(N)&&4s!="29"?s.1W&&6.69(N,s.V)?"5L":"2M":"2C";7(15!="2C"){B 3F;2G{3F=N.4P("6b-4K")}2w(e){}7(s.1W&&3F)6.3S[s.V]=3F;B F=6.6i(N,s.4t);7(s.2M)s.2M(F,15);7(s.1k)6.G.1S("5N",[N,s])}J 6.3J(s,N,15)}2w(e){15="2C";6.3J(s,N,15,e)}7(s.1k)6.G.1S("5O",[N,s]);7(s.1k&&!--6.4E)6.G.1S("5Q");7(s.1X)s.1X(N,15);7(s.48)N=16}};B 3I=3L(37,13);7(s.29>0)57(u(){7(N){N.7N();7(!4y)37("29")}},s.29);2G{N.7Q(s.F)}2w(e){6.3J(s,N,16,e)}7(!s.48)37();v N},3J:u(s,N,15,e){7(s.2C)s.2C(N,15,e);7(s.1k)6.G.1S("5W",[N,s,e])},4E:0,5Z:u(r){2G{v!r.15&&7V.7W=="4G:"||(r.15>=5X&&r.15<7X)||r.15==6d||6.W.2N&&r.15==T}2w(e){}v 12},69:u(N,V){2G{B 6e=N.4P("6b-4K");v N.15==6d||6e==6.3S[V]||6.W.2N&&N.15==T}2w(e){}v 12},6i:u(r,C){B 4Q=r.4P("8c-C");B F=!C&&4Q&&4Q.18("N")>=0;F=C=="N"||F?r.8i:r.3G;7(C=="2d")6.4a(F);7(C=="6m")40("F = "+F);7(C=="4U")6("<1V>").4U(F).4V();v F},3g:u(a){B s=[];7(a.1l==2y||a.3Y)6.K(a,u(){s.1g(2x(q.Y)+"="+2x(q.O))});J P(B j 1x a)7(a[j]&&a[j].1l==2y)6.K(a[j],u(){s.1g(2x(j)+"="+2x(q))});J s.1g(2x(j)+"="+2x(a[j]));v s.6t("&")},4a:u(F){7(1w.54)1w.54(F);J 7(6.W.2N)1w.57(F,0);J 40.3n(1w,F)}});6.E.1z({1L:u(R,M){B 1G=q.1D(":1G");R?1G.26({28:"1L",3V:"1L",1d:"1L"},R,M):1G.K(u(){q.1q.1h=q.2E?q.2E:"";7(6.1m(q,"1h")=="1Z")q.1q.1h="2D"});v q},1K:u(R,M){B 3i=q.1D(":3i");R?3i.26({28:"1K",3V:"1K",1d:"1K"},R,M):3i.K(u(){q.2E=q.2E||6.1m(q,"1h");7(q.2E=="1Z")q.2E="2D";q.1q.1h="1Z"});v q},5g:6.E.3X,3X:u(E,4I){B 1E=1A;v 6.1t(E)&&6.1t(4I)?q.5g(E,4I):q.K(u(){6(q)[6(q).4l(":1G")?"1L":"1K"].14(6(q),1E)})},7a:u(R,M){v q.26({28:"1L"},R,M)},7c:u(R,M){v q.26({28:"1K"},R,M)},7f:u(R,M){v q.K(u(){B 5k=6(q).4l(":1G")?"1L":"1K";6(q).26({28:5k},R,M)})},7r:u(R,M){v q.26({1d:"1L"},R,M)},7u:u(R,M){v q.26({1d:"1K"},R,M)},7y:u(R,43,M){v q.26({1d:43},R,M)},26:u(H,R,1v,M){v q.1F(u(){q.2F=6.1z({},H);B 1u=6.R(R,1v,M);P(B p 1x H){B e=1p 6.3b(q,1u,p);7(H[p].1l==3Q)e.2s(e.Q(),H[p]);J e[H[p]](H)}})},1F:u(C,E){7(!E){E=C;C="3b"}v q.K(u(){7(!q.1F)q.1F={};7(!q.1F[C])q.1F[C]=[];q.1F[C].1g(E);7(q.1F[C].I==1)E.14(q)})}});6.1z({R:u(R,1v,E){B 1u=R&&R.1l==7K?R:{1X:E||!E&&1v||6.1t(R)&&R,25:R,1v:E&&1v||1v&&1v.1l!=4w&&1v};1u.25=(1u.25&&1u.25.1l==3Q?1u.25:{7R:7S,7T:5X}[1u.25])||7U;1u.1N=1u.1X;1u.1X=u(){6.6a(q,"3b");7(6.1t(1u.1N))1u.1N.14(q)};v 1u},1v:{},1F:{},6a:u(D,C){C=C||"3b";7(D.1F&&D.1F[C]){D.1F[C].4L();B f=D.1F[C][0];7(f)f.14(D)}},3b:u(D,1e,H){B z=q;B y=D.1q;B 4D=6.1m(D,"1h");y.5T="1G";z.a=u(){7(1e.49)1e.49.14(D,[z.2p]);7(H=="1d")6.1I(y,"1d",z.2p);J 7(6l(z.2p))y[H]=6l(z.2p)+"4S";y.1h="2D"};z.6v=u(){v 4T(6.1m(D,H))};z.Q=u(){B r=4T(6.30(D,H));v r&&r>-8z?r:z.6v()};z.2s=u(4f,43){z.4J=(1p 5o()).5w();z.2p=4f;z.a();z.4q=3L(u(){z.49(4f,43)},13)};z.1L=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1L=U;z.2s(0,D.1y[H]);7(H!="1d")y[H]="5a"};z.1K=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1K=U;z.2s(D.1y[H],0)};z.3X=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();7(4D=="1Z"){1e.1L=U;7(H!="1d")y[H]="5a";z.2s(0,D.1y[H])}J{1e.1K=U;z.2s(D.1y[H],0)}};z.49=u(32,47){B t=(1p 5o()).5w();7(t>1e.25+z.4J){4p(z.4q);z.4q=16;z.2p=47;z.a();7(D.2F)D.2F[H]=U;B 2c=U;P(B i 1x D.2F)7(D.2F[i]!==U)2c=12;7(2c){y.5T="";y.1h=4D;7(6.1m(D,"1h")=="1Z")y.1h="2D";7(1e.1K)y.1h="1Z";7(1e.1K||1e.1L)P(B p 1x D.2F)7(p=="1d")6.1I(y,p,D.1y[p]);J y[p]=""}7(2c&&6.1t(1e.1X))1e.1X.14(D)}J{B n=t-q.4J;B p=n/1e.25;z.2p=1e.1v&&6.1v[1e.1v]?6.1v[1e.1v](p,n,32,(47-32),1e.25):((-6h.7O(p*6h.8L)/2)+0.5)*(47-32)+32;z.a()}}}})}',62,545,'||||||jQuery|if|||||||||||||||||||this||||function|return||||||var|type|elem|fn|data|event|prop|length|else|each|ret|callback|xml|value|for|cur|speed|element|undefined|true|url|browser||name|||parentNode|false||apply|status|null|document|indexOf|className|val|firstChild|obj|opacity|options|nodeName|push|display|result|msie|global|constructor|css|test|handler|new|style|arg|expr|isFunction|opt|easing|window|in|orig|extend|arguments|context|typeof|filter|args|queue|hidden|events|attr|re|hide|show|add|old|target|table|token|replace|trigger|num|elems|div|ifModified|complete|key|none|tbody|params|while|string|nodeType|duration|animate|ready|height|timeout|nth|get|done|script|nextSibling|remove|not|index|tb|fix|merge|oid|z0|preventDefault|find|now|grep|pushStack|custom|innerHTML|first|cssFloat|catch|encodeURIComponent|Array|el|guid|sibling|error|block|oldblock|curAnim|try|stopPropagation|childNodes|id|wrap|text|success|safari|load|res|exec|al|_|last|substr|has|disabled|insertBefore|selected|checked|curCSS|map|firstNum|removeChild|re2|trim|getAttribute|onreadystatechange|handlers|on|originalEvent|fx|readyList|parPos|src|opera|param|mozilla|visible|domManip|clean|cloneNode|tr|call|split|XMLHttpRequest|ajaxSettings|append|child|String|empty|ajax|form|button|inArray|multiFilter|setRequestHeader|foundToken|9_|readyState|tag|modRes|responseText|second|ival|handleError|toUpperCase|setInterval|makeArray|slice|break|oWidth|Number|returnValue|lastModified|styleFloat|bind|width|isReady|toggle|jquery|dir|eval|mouseover|select|to|defaultView|position|oHeight|lastNum|async|step|globalEval|static|pos|swap|self|from|end|float|alpha|radio|inv|is|toLowerCase|visibility|00|clearInterval|timer|rec|isTimeout|dataType|_resort|RegExp|Function|getAll|requestDone|parents|matched|isXMLDoc|appendChild|oldDisplay|active|triggered|file|documentElement|fn2|startTime|Modified|shift|lastToggle|deep|handleHover|getResponseHeader|ct|submit|px|parseFloat|html|evalScripts|getComputedStyle|getElementById|clone|els|safariTimer|currentStyle|unload|force|execScript|getPropertyValue|newProp|setTimeout|zoom|getScript|1px|sl|settings|GET|rl|check|_toggle|processData|prepend|before|state|removeAttr|ajaxStart|lt|Date|gt|eq|contentType|previousSibling|after|parent|contains|getTime|checkbox|password|appendTo|image|reset|input|webkit|href|continue|beforeSend|ajaxSend|ownerDocument|getElementsByTagName|tmp|notmodified|parse|ajaxSuccess|ajaxComplete|_prefix|ajaxStop|even|odd|overflow|delete|POST|ajaxError|200|handle|httpSuccess|nodeValue|unshift|__ie_init|srcElement|body|pageX|tagName|clientX|scrollLeft|httpNotModified|dequeue|Last|scrollTop|304|xmlRes|unbind|100|Math|httpData|click|mouseout|parseInt|json|createElement|DOMContentLoaded|prevObject|ol|setArray|exclude|join|one|max|do|relative|clientHeight|clientWidth|loadIfModified|serialize|toString|thead|tfoot|td|th|textContent|ActiveXObject|htmlFor|Microsoft|class|XMLHTTP|readOnly|gi|match|getIfModified|9999|getJSON|getAttributeNode|post|setAttribute|ig|ajaxTimeout|ajaxSetup|concat|application|userAgent|compatible|www|compatMode|CSS1Compat|next|urlencoded|siblings|children|slideDown|prependTo|slideUp|Top|insertAfter|slideToggle|removeAttribute|addClass|removeClass|open|toggleClass|Content|Type|lastChild|If|only|Since|fadeIn|Thu|01|fadeOut|enabled|Jan|1970|fadeTo|GMT|textarea|Requested|With|prev|overrideMimeType|Connection|close|boxModel|right|object|Object|navigator|substring|abort|cos|font|send|slow|600|fast|400|location|protocol|300|pageY|clientY|method|action|cancelBubble|hover|fromElement|toElement|relatedTarget|removeEventListener|blur|readonly|focus|resize|content|scroll|dblclick|mousedown|mouseup|mousemove|responseXML|change|keydown|keypress|keyup|addEventListener|write|prototype|size|scr|ipt|createTextNode|defer|FORM|reverse|noConflict|loaded|10000|weight|line|Bottom|Right|Left|padding|border|Width|offsetHeight|offsetWidth|absolute|PI|left'.split('|'),0,{}));jQuery.noConflict();
admin/manage.php CHANGED
@@ -172,6 +172,7 @@ function nggallery_manage_gallery_main() {
172
  global $wpdb;
173
 
174
  ?>
 
175
  <div class="wrap">
176
  <h2><?php _e('Gallery Overview', 'nggallery') ?></h2>
177
  <table id="the-list-x" width="100%" cellspacing="3" cellpadding="3" >
@@ -235,25 +236,22 @@ function nggallery_pciturelist() {
235
  $act_thumbnail_url = get_option ('siteurl')."/".$act_gallery->path.ngg_get_thumbnail_folder($act_gallery->path, FALSE);
236
  $act_thumb_prefix = ngg_get_thumbnail_prefix($act_gallery->path, FALSE);
237
 
238
- //TODO: Do with wp_register_script
239
  ?>
240
 
241
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/jquery.js"></script>
242
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/interface.js"></script>
243
- <script type="text/javascript"> $(document).ready(
244
  function() {
245
- $('.textarea1').Autoexpand([230,400]);
246
- /* $("input:checkbox").click(
247
  function() {
248
- $(this).parents('tr').Highlight(500, '#ff0', function(){$(this).parents('tr').css('backgroundColor', 'transparent');});
249
- // $(this).parents('tr').('#td.img').fadeOut(2000);
250
  }
251
  );
252
  */
253
  });
254
  </script>
255
- <script type="text/javascript"> var tb_pathToImage = '<?php echo NGGALLERY_URLPATH ?>thickbox/loadingAnimationv2.gif';</script>
256
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>thickbox/thickbox.js"></script>
257
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>thickbox/thickbox.css";</style>
258
  <style type="text/css" media="all">
259
  /** required for view button **/
172
  global $wpdb;
173
 
174
  ?>
175
+ <script type="text/javascript"> var tb_pathToImage = '<?php echo NGGALLERY_URLPATH ?>thickbox/loadingAnimationv3.gif';</script>
176
  <div class="wrap">
177
  <h2><?php _e('Gallery Overview', 'nggallery') ?></h2>
178
  <table id="the-list-x" width="100%" cellspacing="3" cellpadding="3" >
236
  $act_thumbnail_url = get_option ('siteurl')."/".$act_gallery->path.ngg_get_thumbnail_folder($act_gallery->path, FALSE);
237
  $act_thumb_prefix = ngg_get_thumbnail_prefix($act_gallery->path, FALSE);
238
 
 
239
  ?>
240
 
241
+ <script type="text/javascript">
242
+ jQuery(document).ready(
 
243
  function() {
244
+ jQuery('.textarea1').Autoexpand([230,400]);
245
+ /* jQuery("input:checkbox").click(
246
  function() {
247
+ jQuery(this).parents('tr').Highlight(500, '#ff0', function(){jQuery(this).parents('tr').css('backgroundColor', 'transparent');});
248
+ // jQuery(this).parents('tr').('#td.img').fadeOut(2000);
249
  }
250
  );
251
  */
252
  });
253
  </script>
254
+ <script type="text/javascript"> var tb_pathToImage = '<?php echo NGGALLERY_URLPATH ?>thickbox/loadingAnimationv3.gif';</script>
 
255
  <style type="text/css" media="all">@import "<?php echo NGGALLERY_URLPATH ?>thickbox/thickbox.css";</style>
256
  <style type="text/css" media="all">
257
  /** required for view button **/
admin/settings.php CHANGED
@@ -29,21 +29,19 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
29
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
30
 
31
  ?>
32
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/jquery.js"></script>
33
- <script type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/interface.js"></script>
34
  <script type="text/javascript">
35
  var currentTab = null;
36
  var inSlide = false;
37
- $(document).ready(
38
  function()
39
  {
40
  var url, tab = 0, tabIteration = 0;
41
 
42
  url = window.location.href.split("#");
43
  if (url.length == 2 && url[1].indexOf('-slider') > 0) {
44
- currentTab = $('#' + url[1].substr(0, url[1].length-7));
45
  if (currentTab.size() == 1) {
46
- $('#slider div').each(
47
  function(iteration)
48
  {
49
  if(this === currentTab.get(0)) {
@@ -55,11 +53,11 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
55
  }
56
 
57
  if(!currentTab) {
58
- currentTab = $('#slider div:first');
59
  }
60
  //Nicer, but buggy: DropToggleRight
61
  currentTab.SlideToggleUp(500);
62
- $('#tabs a')
63
  .eq(tabIteration).addClass('active')
64
  .end()
65
  .bind('click', switchTab);
@@ -71,15 +69,15 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
71
  // get id from link
72
  var tabName = this.href.split('#')[1];
73
  this.blur();
74
- if (inSlide == false && currentTab.get(0) != $('#' + tabName.substr(0, tabName.length-7)).get(0)) {
75
- $('#tabs a').removeClass('active');
76
- $(this).addClass('active');
77
  inSlide = true;
78
  currentTab.SlideToggleUp(
79
  500,
80
  function()
81
  {
82
- currentTab = $('#' + tabName.substr(0, tabName.length-7)).SlideToggleUp(500, function(){inSlide=false;});
83
  }
84
  );
85
  } else {
@@ -92,23 +90,27 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
92
  switch (value) {
93
  case "none":
94
  effectcode = "";
 
95
  break;
96
  case "thickbox":
97
  effectcode = 'class="thickbox" rel="%GALLERY_NAME%"';
 
98
  break;
99
  case "lightbox":
100
  effectcode = 'rel="lightbox[%GALLERY_NAME%]"';
 
101
  break;
102
  case "highslide":
103
  effectcode = 'class="highslide" onclick="return hs.expand(this, { slideshowGroup: %GALLERY_NAME% })"';
 
104
  break;
105
  default:
106
  break;
107
  }
108
- $("#thumbCode").val(effectcode);
109
  };
110
  function setcolor(fileid,color) {
111
- $(fileid).css("background", color );
112
  };
113
  </script>
114
  <div class="wrap" style="text-align: center">
@@ -162,6 +164,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
162
  <form name="thumbnailsettings" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#thumbnails-slider'; ?>" >
163
  <input type="hidden" name="page_options" value="thumbwidth,thumbheight,thumbfix,thumbcrop,thumbresizebefore,thumbquality,thumbResampleMode" />
164
  <fieldset class="options">
 
165
  <table class="optiontable editform">
166
  <tr valign="top">
167
  <th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
@@ -277,7 +280,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
277
  <div id="effects" style="display:none">
278
  <h2><?php _e('Effects','nggallery'); ?></h2>
279
  <form name="effectsform" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#effects-slider'; ?>" >
280
- <input type="hidden" name="page_options" value="thumbEffect,thumbCode" />
281
  <p><?php _e('Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Thickbox effect will automatic added to your theme.','nggallery'); ?>
282
  <?php _e('With the placeholder','nggallery'); ?><strong> %GALLERY_NAME% </strong> <?php _e('you can activate a navigation through the images (depend on the effect). Change the code line only , when you use a different thumbnail effect or you know what you do.','nggallery'); ?></p>
283
  <fieldset class="options">
@@ -298,6 +301,18 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
298
  <td><textarea id="thumbCode" name="thumbCode" cols="50" rows="5"><?php echo htmlspecialchars(stripslashes($ngg_options[thumbCode])); ?></textarea></td>
299
  </tr>
300
  </table>
 
 
 
 
 
 
 
 
 
 
 
 
301
  <div class="submit"><input type="submit" name="updateoption" value="<?php _e('Update') ;?> &raquo;"/></div>
302
  </fieldset>
303
  </form>
@@ -413,11 +428,11 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
413
 
414
  <div id="slideshow" style="display:none">
415
  <form name="player_options" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#slideshow-slider'; ?>" >
416
- <input type="hidden" name="page_options" value="irWidth,irHeight,irShuffle,irLinkfromdisplay,irShownavigation,irShowicons,irOverstretch,irRotatetime,irTransition,irBackcolor,irFrontcolor,irLightcolor" />
417
  <h2><?php _e('Slideshow','nggallery'); ?></h2>
418
  <fieldset class="options">
419
  <?php if (!NGGALLERY_IREXIST) { ?><p><div id="message" class="error fade"><p><?php _e('The imagerotator.swf is not in the nggallery folder, the slideshow will not work.','nggallery') ?></p></div></p><?php }?>
420
- <p><?php _e('The settings are used in the Flash Image Rotator Version 3.2 .', 'nggallery') ?>
421
  <?php _e('See more information for the Flash Player on the web page', 'nggallery') ?> <a href="http://www.jeroenwijering.com/?item=Flash_Image_Rotator" target="_blank">Flash Image Rotator from Jeroen Wijering</a>.<br />
422
  <table class="optiontable" border="0" >
423
  <tr>
@@ -462,13 +477,19 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
462
  <select size="1" name="irTransition">
463
  <option value="fade" <?php selected('fade', $ngg_options[irTransition]); ?> ><?php _e('fade', 'nggallery') ;?></option>
464
  <option value="bgfade" <?php selected('bgfade', $ngg_options[irTransition]); ?> ><?php _e('bgfade', 'nggallery') ;?></option>
 
465
  <option value="circles" <?php selected('circles', $ngg_options[irTransition]); ?> ><?php _e('circles', 'nggallery') ;?></option>
 
466
  <option value="blocks" <?php selected('blocks', $ngg_options[irTransition]); ?> ><?php _e('blocks', 'nggallery') ;?></option>
467
  <option value="fluids" <?php selected('fluids', $ngg_options[irTransition]); ?> ><?php _e('fluids', 'nggallery') ;?></option>
468
  <option value="lines" <?php selected('lines', $ngg_options[irTransition]); ?> ><?php _e('lines', 'nggallery') ;?></option>
469
  <option value="random" <?php selected('random', $ngg_options[irTransition]); ?> ><?php _e('random', 'nggallery') ;?></option>
470
  </select>
471
  </tr>
 
 
 
 
472
  <tr>
473
  <th><?php _e('Background Color','nggallery') ?>:</th>
474
  <td><input type="text" size="6" maxlength="6" id="irBackcolor" name="irBackcolor" onchange="setcolor('#previewBack', this.value)" value="<?php echo $ngg_options[irBackcolor] ?>" />
@@ -484,6 +505,11 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
484
  <td><input type="text" size="6" maxlength="6" id="irLightcolor" name="irLightcolor" onchange="setcolor('#previewLight', this.value)" value="<?php echo $ngg_options[irLightcolor] ?>" />
485
  <input type="text" size="1" readonly="readonly" id="previewLight" style="background-color: #<?php echo $ngg_options[irLightcolor] ?>" /></td>
486
  </tr>
 
 
 
 
 
487
  </table>
488
  <div class="clear"> &nbsp; </div>
489
  <div class="submit"><input type="submit" name="updateoption" value="<?php _e('Update') ;?> &raquo;"/></div>
29
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
30
 
31
  ?>
 
 
32
  <script type="text/javascript">
33
  var currentTab = null;
34
  var inSlide = false;
35
+ jQuery(document).ready(
36
  function()
37
  {
38
  var url, tab = 0, tabIteration = 0;
39
 
40
  url = window.location.href.split("#");
41
  if (url.length == 2 && url[1].indexOf('-slider') > 0) {
42
+ currentTab = jQuery('#' + url[1].substr(0, url[1].length-7));
43
  if (currentTab.size() == 1) {
44
+ jQuery('#slider div').each(
45
  function(iteration)
46
  {
47
  if(this === currentTab.get(0)) {
53
  }
54
 
55
  if(!currentTab) {
56
+ currentTab = jQuery('#slider div:first');
57
  }
58
  //Nicer, but buggy: DropToggleRight
59
  currentTab.SlideToggleUp(500);
60
+ jQuery('#tabs a')
61
  .eq(tabIteration).addClass('active')
62
  .end()
63
  .bind('click', switchTab);
69
  // get id from link
70
  var tabName = this.href.split('#')[1];
71
  this.blur();
72
+ if (inSlide == false && currentTab.get(0) != jQuery('#' + tabName.substr(0, tabName.length-7)).get(0)) {
73
+ jQuery('#tabs a').removeClass('active');
74
+ jQuery(this).addClass('active');
75
  inSlide = true;
76
  currentTab.SlideToggleUp(
77
  500,
78
  function()
79
  {
80
+ currentTab = jQuery('#' + tabName.substr(0, tabName.length-7)).SlideToggleUp(500, function(){inSlide=false;});
81
  }
82
  );
83
  } else {
90
  switch (value) {
91
  case "none":
92
  effectcode = "";
93
+ jQuery('#tbImage').hide("slow");
94
  break;
95
  case "thickbox":
96
  effectcode = 'class="thickbox" rel="%GALLERY_NAME%"';
97
+ jQuery('#tbImage').show("slow");
98
  break;
99
  case "lightbox":
100
  effectcode = 'rel="lightbox[%GALLERY_NAME%]"';
101
+ jQuery('#tbImage').hide("slow");
102
  break;
103
  case "highslide":
104
  effectcode = 'class="highslide" onclick="return hs.expand(this, { slideshowGroup: %GALLERY_NAME% })"';
105
+ jQuery('#tbImage').hide("slow");
106
  break;
107
  default:
108
  break;
109
  }
110
+ jQuery("#thumbCode").val(effectcode);
111
  };
112
  function setcolor(fileid,color) {
113
+ jQuery(fileid).css("background", color );
114
  };
115
  </script>
116
  <div class="wrap" style="text-align: center">
164
  <form name="thumbnailsettings" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#thumbnails-slider'; ?>" >
165
  <input type="hidden" name="page_options" value="thumbwidth,thumbheight,thumbfix,thumbcrop,thumbresizebefore,thumbquality,thumbResampleMode" />
166
  <fieldset class="options">
167
+ <p><?php _e('Please note : If you change the settings, you need to recreate the thumbnails under -> Manage Gallery .', 'nggallery') ?></p>
168
  <table class="optiontable editform">
169
  <tr valign="top">
170
  <th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
280
  <div id="effects" style="display:none">
281
  <h2><?php _e('Effects','nggallery'); ?></h2>
282
  <form name="effectsform" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#effects-slider'; ?>" >
283
+ <input type="hidden" name="page_options" value="thumbEffect,thumbCode,thickboxImage" />
284
  <p><?php _e('Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Thickbox effect will automatic added to your theme.','nggallery'); ?>
285
  <?php _e('With the placeholder','nggallery'); ?><strong> %GALLERY_NAME% </strong> <?php _e('you can activate a navigation through the images (depend on the effect). Change the code line only , when you use a different thumbnail effect or you know what you do.','nggallery'); ?></p>
286
  <fieldset class="options">
301
  <td><textarea id="thumbCode" name="thumbCode" cols="50" rows="5"><?php echo htmlspecialchars(stripslashes($ngg_options[thumbCode])); ?></textarea></td>
302
  </tr>
303
  </table>
304
+
305
+ <div id="tbImage" <?php if ($ngg_options[thumbEffect] != 'thickbox') echo 'style="display:none"'?> >
306
+ <table class="optiontable">
307
+ <tr valign="top">
308
+ <th><?php _e('Select loading image','nggallery') ?> :</th>
309
+ <td>
310
+ <label><input name="thickboxImage" id="v2" type="radio" title="Version 2" value="loadingAnimationv2.gif" <?php checked('loadingAnimationv2.gif', $ngg_options[thickboxImage]); ?> /></label> <img src="<?php echo NGGALLERY_URLPATH.'thickbox/loadingAnimationv2.gif' ?>" alt="Version 2" />
311
+ <label><input name="thickboxImage" id="v3" type="radio" title="Version 3" value="loadingAnimationv3.gif" <?php checked('loadingAnimationv3.gif', $ngg_options[thickboxImage]); ?> /></label> <img src="<?php echo NGGALLERY_URLPATH.'thickbox/loadingAnimationv3.gif' ?>" alt="Version 3" /></td>
312
+ </tr>
313
+ </table>
314
+ </div>
315
+
316
  <div class="submit"><input type="submit" name="updateoption" value="<?php _e('Update') ;?> &raquo;"/></div>
317
  </fieldset>
318
  </form>
428
 
429
  <div id="slideshow" style="display:none">
430
  <form name="player_options" method="POST" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']).'#slideshow-slider'; ?>" >
431
+ <input type="hidden" name="page_options" value="irWidth,irHeight,irShuffle,irLinkfromdisplay,irShownavigation,irShowicons,irOverstretch,irRotatetime,irTransition,irKenburns,irBackcolor,irFrontcolor,irLightcolor,irXHTMLvalid" />
432
  <h2><?php _e('Slideshow','nggallery'); ?></h2>
433
  <fieldset class="options">
434
  <?php if (!NGGALLERY_IREXIST) { ?><p><div id="message" class="error fade"><p><?php _e('The imagerotator.swf is not in the nggallery folder, the slideshow will not work.','nggallery') ?></p></div></p><?php }?>
435
+ <p><?php _e('The settings are used in the Flash Image Rotator Version 3.8 .', 'nggallery') ?>
436
  <?php _e('See more information for the Flash Player on the web page', 'nggallery') ?> <a href="http://www.jeroenwijering.com/?item=Flash_Image_Rotator" target="_blank">Flash Image Rotator from Jeroen Wijering</a>.<br />
437
  <table class="optiontable" border="0" >
438
  <tr>
477
  <select size="1" name="irTransition">
478
  <option value="fade" <?php selected('fade', $ngg_options[irTransition]); ?> ><?php _e('fade', 'nggallery') ;?></option>
479
  <option value="bgfade" <?php selected('bgfade', $ngg_options[irTransition]); ?> ><?php _e('bgfade', 'nggallery') ;?></option>
480
+ <option value="slowfade" <?php selected('slowfade', $ngg_options[irTransition]); ?> ><?php _e('slowfade', 'nggallery') ;?></option>
481
  <option value="circles" <?php selected('circles', $ngg_options[irTransition]); ?> ><?php _e('circles', 'nggallery') ;?></option>
482
+ <option value="bubbles" <?php selected('bubbles', $ngg_options[irTransition]); ?> ><?php _e('bubbles', 'nggallery') ;?></option>
483
  <option value="blocks" <?php selected('blocks', $ngg_options[irTransition]); ?> ><?php _e('blocks', 'nggallery') ;?></option>
484
  <option value="fluids" <?php selected('fluids', $ngg_options[irTransition]); ?> ><?php _e('fluids', 'nggallery') ;?></option>
485
  <option value="lines" <?php selected('lines', $ngg_options[irTransition]); ?> ><?php _e('lines', 'nggallery') ;?></option>
486
  <option value="random" <?php selected('random', $ngg_options[irTransition]); ?> ><?php _e('random', 'nggallery') ;?></option>
487
  </select>
488
  </tr>
489
+ <tr>
490
+ <th><?php _e('Use slow zooming effect','nggallery') ?>:</th>
491
+ <td><input name="irKenburns" type="checkbox" value="1" <?php checked('1', $ngg_options[irKenburns]); ?> /></td>
492
+ </tr>
493
  <tr>
494
  <th><?php _e('Background Color','nggallery') ?>:</th>
495
  <td><input type="text" size="6" maxlength="6" id="irBackcolor" name="irBackcolor" onchange="setcolor('#previewBack', this.value)" value="<?php echo $ngg_options[irBackcolor] ?>" />
505
  <td><input type="text" size="6" maxlength="6" id="irLightcolor" name="irLightcolor" onchange="setcolor('#previewLight', this.value)" value="<?php echo $ngg_options[irLightcolor] ?>" />
506
  <input type="text" size="1" readonly="readonly" id="previewLight" style="background-color: #<?php echo $ngg_options[irLightcolor] ?>" /></td>
507
  </tr>
508
+ <tr>
509
+ <th><?php _e('Try XHTML validation (with CDATA)','nggallery') ?>:</th>
510
+ <td><input name="irXHTMLvalid" type="checkbox" value="1" <?php checked('1', $ngg_options[irXHTMLvalid]); ?> />
511
+ <?php _e('Important : Could causes problem at some browser. Please recheck your page.','nggallery') ?></td>
512
+ </tr>
513
  </table>
514
  <div class="clear"> &nbsp; </div>
515
  <div class="submit"><input type="submit" name="updateoption" value="<?php _e('Update') ;?> &raquo;"/></div>
admin/setup.php CHANGED
@@ -26,7 +26,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
26
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
27
 
28
  ?>
29
-
30
  <div class="wrap">
31
  <h2><?php _e('Reset options', 'nggallery') ;?></h2>
32
  <form name="resetsettings" method="post">
26
  if(!empty($messagetext)) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
27
 
28
  ?>
29
+
30
  <div class="wrap">
31
  <h2><?php _e('Reset options', 'nggallery') ;?></h2>
32
  <form name="resetsettings" method="post">
changelog.txt CHANGED
@@ -1,6 +1,25 @@
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  V0.43 - 20.05.2007
5
  - Changed : Rename Thumbnail class to avoid php name collision
6
  - Bugfix : Missing translation flag in setup
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
4
+ V0.50 - 28.05.2007
5
+ - NEW : Select multiple files for upload (THX to Diego A., http://www.fyneworks.com)
6
+ - NEW : Sidebar widget contain now Slideshow, recent images and random images
7
+ - Added : New Option for Imagerotator 3.8 (Slow zoom effect)
8
+ - Added : Option for CDATA wrapper (not working proper)
9
+ - Added : Option for Thickbox Loading Image
10
+ - Added : CSS file for dKret2 (THK to Joern)
11
+ - Added : Better file permission check
12
+ - Changed : Fixed ratio create better thubnails in portrait mode
13
+ - Changed : All jQuery scripts are now in "No Conflict" mode
14
+ - Changed : Script loading now via wp_enqueue_script
15
+ - Changed : Add constant values for folder/file permission
16
+ - Changed : Use description in <A href title>
17
+ - Bugfix : Remove wrong DIV tag in slideshow
18
+ - Bugfix : Tag [Slideshow=id,width,height] didn't work proper
19
+ - Bugfix : Name conflict in Album script (serialize) (THX to Die-Andis)
20
+ - Bugfix : Changed check for CSS activation
21
+ - Bugfix : Changed check for safe-mode (Don't ask)
22
+
23
  V0.43 - 20.05.2007
24
  - Changed : Rename Thumbnail class to avoid php name collision
25
  - Bugfix : Missing translation flag in setup
css/Black_Minimalism .css CHANGED
@@ -98,6 +98,7 @@ it's only a template design
98
  /* ----------- Gallery style -------------*/
99
 
100
  .ngg-galleryoverview {
 
101
  margin-top: 10px;
102
  width: 100%;
103
  clear:both;
@@ -178,26 +179,15 @@ it's only a template design
178
  }
179
 
180
  /* ----------- Sidebar widget -------------*/
181
- .ngg-widget {
182
-
183
- }
184
-
185
- ul.ngg-randomlist {
186
- background:transparent none repeat scroll 0% !important;
187
- display:inline;
188
  margin:0pt;
189
- padding:0pt 0px 0px 0pt;
190
  }
191
 
192
- ul.ngg-randomlist img {
193
  border:2px solid #A9A9A9;
194
  margin:0pt 2px 2px 0px;
195
  padding:1px;
196
- }
197
-
198
- ul.ngg-randomlist li {
199
- display:block;
200
- float:left;
201
- padding:0pt 2px 0px 0px;
202
- position:relative;
203
- }
98
  /* ----------- Gallery style -------------*/
99
 
100
  .ngg-galleryoverview {
101
+ overflow: hidden;
102
  margin-top: 10px;
103
  width: 100%;
104
  clear:both;
179
  }
180
 
181
  /* ----------- Sidebar widget -------------*/
182
+ .ngg-widget,
183
+ .ngg-widget-slideshow {
184
+ overflow: hidden;
 
 
 
 
185
  margin:0pt;
186
+ padding:5px 0px 0px 0pt;
187
  }
188
 
189
+ .ngg-widget img {
190
  border:2px solid #A9A9A9;
191
  margin:0pt 2px 2px 0px;
192
  padding:1px;
193
+ }
 
 
 
 
 
 
 
css/ngg_dKret2.css ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ CSS Name: DKret2 Styles
3
+ Description: NextGEN dKret2 Gallery Stylesheet
4
+ Author: J. Kretzschmar
5
+ Version: 1.10
6
+
7
+ This is a template stylesheet that can be used with NextGEN Gallery. I tested the
8
+ styles with the dKret2 theme.
9
+
10
+ */
11
+
12
+ /* ----------- Album Styles Extend -------------*/
13
+
14
+ .ngg-albumoverview {
15
+ margin-top: 10px;
16
+ width: 100%;
17
+ clear:both;
18
+ display:block !important;
19
+ }
20
+
21
+ .ngg-album {
22
+ overflow: hidden;
23
+ padding: 5px;
24
+ margin-bottom: 5px;
25
+ border: 1px solid #cccccc;
26
+ }
27
+
28
+ .ngg-albumtitle {
29
+ text-align: left;
30
+ font-weight: bold;
31
+ margin:0px;
32
+ padding:0px;
33
+ font-size: 1.4em;
34
+ margin-bottom: 10px;
35
+ }
36
+
37
+ .ngg-thumbnail {
38
+ float: left;
39
+ margin-right: 12px;
40
+ }
41
+
42
+ .ngg-thumbnail img {
43
+ background-color:#FFFFFF;
44
+ border:1px solid #A9A9A9;
45
+ margin:4px 0px 4px 5px;
46
+ padding:4px;
47
+ position:relative;
48
+ }
49
+
50
+ .ngg-thumbnail img:hover {
51
+ background-color: #A9A9A9;
52
+ }
53
+
54
+ .ngg-description {
55
+ text-align: left;
56
+ }
57
+
58
+ /* ----------- Album Styles Compact -------------*/
59
+
60
+ .ngg-album-compact {
61
+ float:left;
62
+ height:180px;
63
+ padding-right:6px !important;
64
+ margin:0px !important;
65
+ text-align:left;
66
+ width:120px;
67
+ }
68
+
69
+ .ngg-album-compactbox {
70
+ background:transparent url(albumset.gif) no-repeat scroll 0%;
71
+ height:86px;
72
+ margin:0pt 0pt 6px !important;
73
+ padding:12px 0pt 0pt 7px !important;
74
+ width:120px;
75
+ }
76
+
77
+
78
+ .ngg-album-compactbox .Thumb {
79
+ border:1px solid #000000;
80
+ margin:0px !important;
81
+ padding:0px !important;
82
+ }
83
+
84
+ .ngg-album-compact h4 {
85
+ font-size:15px;
86
+ font-weight:bold;
87
+ margin-bottom:0px;
88
+ margin-top:0px;
89
+ width:110px;
90
+ }
91
+
92
+ .ngg-album-compact p {
93
+ font-size:11px;
94
+ margin-top:2px;
95
+ }
96
+
97
+ /* ----------- Gallery style -------------*/
98
+
99
+ .ngg-galleryoverview {
100
+ margin-top: 10px;
101
+ width: 100%;
102
+ clear:both;
103
+ display:block !important;
104
+ }
105
+
106
+ .ngg-gallery-thumbnail-box {
107
+ float: left;
108
+ }
109
+
110
+ .ngg-gallery-thumbnail {
111
+ float: left;
112
+ margin-right: 5px;
113
+ }
114
+
115
+ .ngg-gallery-thumbnail img {
116
+ background-color:#FFFFFF;
117
+ border:1px solid #A9A9A9;
118
+ display:block;
119
+ margin:4px 0px 4px 5px;
120
+ padding:4px;
121
+ position:relative;
122
+ }
123
+
124
+ .ngg-gallery-thumbnail img:hover {
125
+ background-color: #A9A9A9;
126
+ }
127
+
128
+ /* ----------- Gallery navigation -------------*/
129
+
130
+ .ngg-navigation {
131
+ font-size:0.9em !important;
132
+ clear:both !important;
133
+ display:block !important;
134
+ padding-top:15px;
135
+ text-align:center;
136
+
137
+ }
138
+
139
+ .ngg-navigation span {
140
+ font-weight:bold;
141
+ margin:0pt 6px;
142
+ }
143
+
144
+ .ngg-navigation a.page-numbers, a.next, a.prev {
145
+ border:1px solid #DDDDDD;
146
+ margin-right:3px;
147
+ padding:3px 7px;
148
+ }
149
+
150
+ .ngg-navigation a.page-numbers:hover, a.next:hover, a.prev:hover {
151
+ background-color: #0066CC;
152
+ color: #FFFFFF;
153
+ text-decoration: none;
154
+ }
155
+
156
+ /* ----------- Slideshow -------------*/
157
+ .slideshow {
158
+ margin-left: auto;
159
+ margin-right: auto;
160
+ text-align:center;
161
+ }
162
+
163
+ .slideshowlink {
164
+
165
+ }
166
+
167
+ /* ----------- Single picture -------------*/
168
+ .ngg-singlepic {
169
+ background-color:#FFFFFF;
170
+ border:1px solid #A9A9A9;
171
+ display:block;
172
+ margin:5px;
173
+ padding:4px;
174
+ position:relative;
175
+ }
176
+
177
+ /* ----------- Sidebar widget -------------*/
178
+ .ngg-widget,
179
+ .ngg-widget-slideshow {
180
+ overflow: hidden;
181
+ padding:5px 0px 0px 0pt;
182
+ }
183
+
184
+ .ngg-widget img {
185
+ border:2px solid #A9A9A9;
186
+ margin:0pt 2px 2px 0px;
187
+ padding:1px;
188
+ }
css/ngg_k2.css CHANGED
@@ -185,26 +185,15 @@ it's only a template design
185
  }
186
 
187
  /* ----------- Sidebar widget -------------*/
188
- .ngg-widget {
189
-
190
- }
191
-
192
- ul.ngg-randomlist {
193
- background:transparent none repeat scroll 0% !important;
194
- display:inline;
195
  margin:0pt;
196
- padding:0pt 0px 0px 0pt;
197
  }
198
 
199
- ul.ngg-randomlist img {
200
  border:2px solid #A9A9A9;
201
  margin:0pt 2px 2px 0px;
202
  padding:1px;
203
  }
204
-
205
- ul.ngg-randomlist li {
206
- display:block;
207
- float:left;
208
- padding:0pt 2px 0px 0px;
209
- position:relative;
210
- }
185
  }
186
 
187
  /* ----------- Sidebar widget -------------*/
188
+ .ngg-widget,
189
+ .ngg-widget-slideshow {
190
+ overflow: hidden;
 
 
 
 
191
  margin:0pt;
192
+ padding:5px 0px 0px 0pt;
193
  }
194
 
195
+ .ngg-widget img {
196
  border:2px solid #A9A9A9;
197
  margin:0pt 2px 2px 0px;
198
  padding:1px;
199
  }
 
 
 
 
 
 
 
css/ngg_shadow.css CHANGED
@@ -177,27 +177,16 @@ it's only a template design
177
  }
178
 
179
  /* ----------- Sidebar widget -------------*/
180
- .ngg-widget {
181
-
182
- }
183
 
184
- ul.ngg-randomlist {
185
- background:transparent none repeat scroll 0% !important;
186
- display:inline;
187
  margin:0pt;
188
- padding:0pt 0px 0px 0pt;
189
  }
190
 
191
- ul.ngg-randomlist img {
192
  border:2px solid #A9A9A9;
193
  margin:0pt 2px 2px 0px;
194
  padding:1px;
195
  }
196
-
197
- ul.ngg-randomlist li {
198
- display:block;
199
- float:left;
200
- padding:0pt 2px 0px 0px;
201
- position:relative;
202
- }
203
-
177
  }
178
 
179
  /* ----------- Sidebar widget -------------*/
 
 
 
180
 
181
+ .ngg-widget,
182
+ .ngg-widget-slideshow {
183
+ overflow: hidden;
184
  margin:0pt;
185
+ padding:5px 0px 0px 0pt;
186
  }
187
 
188
+ .ngg-widget img {
189
  border:2px solid #A9A9A9;
190
  margin:0pt 2px 2px 0px;
191
  padding:1px;
192
  }
 
 
 
 
 
 
 
 
css/nggallery.css CHANGED
@@ -2,7 +2,7 @@
2
  CSS Name: Default Styles
3
  Description: NextGEN Default Gallery Stylesheet
4
  Author: Alex Rabe
5
- Version: 1.10
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,
@@ -20,6 +20,7 @@ it's only a template design
20
  }
21
 
22
  .ngg-album {
 
23
  height: 130px;
24
  padding: 5px;
25
  margin-bottom: 5px;
@@ -98,6 +99,7 @@ it's only a template design
98
  /* ----------- Gallery style -------------*/
99
 
100
  .ngg-galleryoverview {
 
101
  margin-top: 10px;
102
  width: 100%;
103
  clear:both;
@@ -167,36 +169,25 @@ it's only a template design
167
 
168
  /* ----------- Single picture -------------*/
169
  .ngg-singlepic {
 
170
  background-color:#FFFFFF;
171
  border:1px solid #A9A9A9;
172
  display:block;
173
- margin:5px;
174
  padding:4px;
175
  position:relative;
176
  }
177
 
178
  /* ----------- Sidebar widget -------------*/
179
- .ngg-widget {
180
-
181
- }
182
-
183
- ul.ngg-randomlist {
184
- background:transparent none repeat scroll 0% !important;
185
- display:inline;
186
  margin:0pt;
187
- padding:0pt 0px 0px 0pt;
188
  }
189
 
190
- ul.ngg-randomlist img {
191
  border:2px solid #A9A9A9;
192
  margin:0pt 2px 2px 0px;
193
  padding:1px;
194
- }
195
-
196
- ul.ngg-randomlist li {
197
- display:block;
198
- float:left;
199
- padding:0pt 2px 0px 0px;
200
- position:relative;
201
- }
202
-
2
  CSS Name: Default Styles
3
  Description: NextGEN Default Gallery Stylesheet
4
  Author: Alex Rabe
5
+ Version: 1.000
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,
20
  }
21
 
22
  .ngg-album {
23
+ overflow: hidden;
24
  height: 130px;
25
  padding: 5px;
26
  margin-bottom: 5px;
99
  /* ----------- Gallery style -------------*/
100
 
101
  .ngg-galleryoverview {
102
+ overflow: hidden;
103
  margin-top: 10px;
104
  width: 100%;
105
  clear:both;
169
 
170
  /* ----------- Single picture -------------*/
171
  .ngg-singlepic {
172
+ float: right;
173
  background-color:#FFFFFF;
174
  border:1px solid #A9A9A9;
175
  display:block;
176
+ margin:4px 0px 4px 5px;
177
  padding:4px;
178
  position:relative;
179
  }
180
 
181
  /* ----------- Sidebar widget -------------*/
182
+ .ngg-widget,
183
+ .ngg-widget-slideshow {
184
+ overflow: hidden;
 
 
 
 
185
  margin:0pt;
186
+ padding:5px 0px 0px 0pt;
187
  }
188
 
189
+ .ngg-widget img {
190
  border:2px solid #A9A9A9;
191
  margin:0pt 2px 2px 0px;
192
  padding:1px;
193
+ }
 
 
 
 
 
 
 
 
lang/nggallery.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: NextGEN Gallery\n"
4
  "POT-Creation-Date: \n"
5
- "PO-Revision-Date: 2007-05-17 17:34+0100\n"
6
  "Last-Translator: Alex Rabe\n"
7
  "Language-Team: Alex Rabe\n"
8
  "MIME-Version: 1.0\n"
@@ -15,22 +15,22 @@ msgstr ""
15
  "X-Poedit-SearchPath-0: .\n"
16
  "X-Poedit-SearchPath-1: ..\n"
17
 
18
- #: ../nggallery.php:247
19
  msgid "Sorry, NextGEN Gallery works only under WordPress 2.1 or higher"
20
  msgstr ""
21
 
22
  #: ../nggbutton.php:36
23
- #: ../admin/addgallery.php:231
24
- #: ../admin/addgallery.php:282
25
- #: ../admin/admin.php:13
26
  #: ../admin/manage.php:44
27
- #: ../admin/manage.php:306
28
- #: ../admin/settings.php:119
29
  msgid "Gallery"
30
  msgstr ""
31
 
32
  #: ../nggbutton.php:37
33
- #: ../admin/admin.php:16
34
  msgid "Album"
35
  msgstr ""
36
 
@@ -57,14 +57,14 @@ msgid "Image list"
57
  msgstr ""
58
 
59
  #: ../nggbutton.php:64
60
- #: ../admin/settings.php:122
61
- #: ../admin/settings.php:261
62
- #: ../admin/settings.php:417
63
  msgid "Slideshow"
64
  msgstr ""
65
 
66
  #: ../nggbutton.php:75
67
- #: ../admin/album.php:100
68
  msgid "Select album"
69
  msgstr ""
70
 
@@ -101,8 +101,8 @@ msgid "No effect"
101
  msgstr ""
102
 
103
  #: ../nggbutton.php:124
104
- #: ../admin/settings.php:121
105
- #: ../admin/settings.php:315
106
  msgid "Watermark"
107
  msgstr ""
108
 
@@ -151,72 +151,123 @@ msgstr ""
151
  msgid "[Show picture list]"
152
  msgstr ""
153
 
154
- #: ../nggwidget.php:183
155
- msgid "NextGEN Random Image"
 
 
 
 
 
 
 
 
156
  msgstr ""
157
 
158
- #: ../nggwidget.php:220
159
- #: ../admin/album.php:215
 
 
 
 
 
 
 
 
 
160
  #: ../admin/manage.php:183
161
- #: ../admin/manage.php:313
162
  msgid "Title"
163
  msgstr ""
164
 
165
- #: ../nggwidget.php:222
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  msgid "Number of pics"
167
  msgstr ""
168
 
169
- #: ../nggwidget.php:233
170
- msgid "Width"
 
171
  msgstr ""
172
 
173
- #: ../nggwidget.php:234
174
- msgid "Height"
 
175
  msgstr ""
176
 
177
- #: ../nggwidget.php:236
 
178
  msgid "Mode"
179
  msgstr ""
180
 
181
- #: ../nggwidget.php:238
182
- #: ../admin/settings.php:451
 
183
  msgid "none"
184
  msgstr ""
185
 
186
- #: ../nggwidget.php:239
 
187
  msgid "web2.0"
188
  msgstr ""
189
 
190
- #: ../nggwidget.php:248
 
191
  msgid "Show in the main page"
192
  msgstr ""
193
 
194
- #: ../nggwidget.php:250
 
195
  msgid "yes"
196
  msgstr ""
197
 
198
- #: ../nggwidget.php:251
 
199
  msgid "no"
200
  msgstr ""
201
 
202
- #: ../nggwidget.php:254
 
203
  msgid "Show in"
204
  msgstr ""
205
 
206
- #: ../nggwidget.php:256
 
207
  msgid "All categories"
208
  msgstr ""
209
 
210
- #: ../nggwidget.php:257
 
211
  msgid "Only which are not listed"
212
  msgstr ""
213
 
214
- #: ../nggwidget.php:258
 
215
  msgid "Only which are listed"
216
  msgstr ""
217
 
218
- #: ../nggwidget.php:261
219
- msgid "Categories (id (use , to seperate))"
 
 
 
 
 
220
  msgstr ""
221
 
222
  #: ../admin/about.php:9
@@ -345,254 +396,267 @@ msgid "We would like to thank this people which support us in the work :"
345
  msgstr ""
346
 
347
  #: ../admin/addgallery.php:23
348
- #: ../admin/addgallery.php:36
349
  msgid "Upload failed!"
350
  msgstr ""
351
 
352
  #: ../admin/addgallery.php:103
353
- #: ../admin/addgallery.php:115
 
 
 
 
354
  msgid "Add new gallery"
355
  msgstr ""
356
 
357
- #: ../admin/addgallery.php:105
358
- #: ../admin/addgallery.php:132
359
  msgid "Upload a Zip-File"
360
  msgstr ""
361
 
362
- #: ../admin/addgallery.php:107
363
- #: ../admin/addgallery.php:148
364
  msgid "Import image folder"
365
  msgstr ""
366
 
367
- #: ../admin/addgallery.php:108
368
- #: ../admin/addgallery.php:165
369
  msgid "Upload Images"
370
  msgstr ""
371
 
372
- #: ../admin/addgallery.php:120
373
  msgid "New Gallery"
374
  msgstr ""
375
 
376
- #: ../admin/addgallery.php:122
377
  msgid "Create a new , empty gallery below the folder"
378
  msgstr ""
379
 
380
- #: ../admin/addgallery.php:123
381
  msgid "Allowed characters for file and folder names are"
382
  msgstr ""
383
 
384
- #: ../admin/addgallery.php:126
385
  msgid "Add gallery"
386
  msgstr ""
387
 
388
- #: ../admin/addgallery.php:137
389
  msgid "Select Zip-File"
390
  msgstr ""
391
 
392
- #: ../admin/addgallery.php:139
393
  msgid "Upload a zip file with images"
394
  msgstr ""
395
 
396
- #: ../admin/addgallery.php:142
397
  msgid "Start upload"
398
  msgstr ""
399
 
400
- #: ../admin/addgallery.php:153
401
  msgid "Import from Server path:"
402
  msgstr ""
403
 
404
- #: ../admin/addgallery.php:155
405
  msgid "Import a folder with images. Please note :"
406
  msgstr ""
407
 
408
- #: ../admin/addgallery.php:156
409
  msgid "For save_mode = ON you need to add the subfolder thumbs manually"
410
  msgstr ""
411
 
412
- #: ../admin/addgallery.php:159
413
  msgid "Import folder"
414
  msgstr ""
415
 
416
- #: ../admin/addgallery.php:170
417
  msgid "Upload image"
418
  msgstr ""
419
 
420
- #: ../admin/addgallery.php:174
421
  msgid "in to"
422
  msgstr ""
423
 
424
- #: ../admin/addgallery.php:176
425
  msgid "Choose gallery"
426
  msgstr ""
427
 
428
- #: ../admin/addgallery.php:186
429
- msgid "At the moment only a single file upload is supported."
430
  msgstr ""
431
 
432
- #: ../admin/addgallery.php:189
433
  msgid "Upload images"
434
  msgstr ""
435
 
436
- #: ../admin/addgallery.php:209
437
  msgid "No valid gallery name!"
438
  msgstr ""
439
 
440
- #: ../admin/addgallery.php:211
441
- #: ../admin/addgallery.php:216
442
- #: ../admin/addgallery.php:251
443
- #: ../admin/addgallery.php:255
444
  msgid "Directory"
445
  msgstr ""
446
 
447
- #: ../admin/addgallery.php:211
448
- msgid "didn't have the permissions 777!"
449
  msgstr ""
450
 
451
- #: ../admin/addgallery.php:216
452
  msgid "already exists!"
453
  msgstr ""
454
 
455
- #: ../admin/addgallery.php:220
456
- #: ../admin/addgallery.php:222
457
- #: ../admin/addgallery.php:261
458
- #: ../admin/addgallery.php:423
459
- #: ../admin/addgallery.php:425
460
  msgid "Unable to create directory "
461
  msgstr ""
462
 
463
- #: ../admin/addgallery.php:221
464
- #: ../admin/addgallery.php:424
465
- #: ../admin/addgallery.php:426
466
  msgid "Unable to set directory permissions "
467
  msgstr ""
468
 
469
- #: ../admin/addgallery.php:223
470
  msgid "Unable to set directory permissions"
471
  msgstr ""
472
 
473
- #: ../admin/addgallery.php:225
474
  msgid "The server Safe-Mode is on !"
475
  msgstr ""
476
 
477
- #: ../admin/addgallery.php:226
478
  msgid "Please create directory "
479
  msgstr ""
480
 
481
- #: ../admin/addgallery.php:227
482
  msgid "and the thumbnails directory "
483
  msgstr ""
484
 
485
- #: ../admin/addgallery.php:227
486
  msgid "with permission 777 manually !"
487
  msgstr ""
488
 
489
- #: ../admin/addgallery.php:231
490
  msgid "already exists"
491
  msgstr ""
492
 
493
- #: ../admin/addgallery.php:234
494
  msgid "Gallery successfully created!"
495
  msgstr ""
496
 
497
- #: ../admin/addgallery.php:251
498
- #: ../admin/addgallery.php:260
499
  msgid "doesn&#96;t exist"
500
  msgstr ""
501
 
502
- #: ../admin/addgallery.php:255
503
  msgid "contains no pictures"
504
  msgstr ""
505
 
506
- #: ../admin/addgallery.php:260
507
  msgid "Thumbnail Directory"
508
  msgstr ""
509
 
510
- #: ../admin/addgallery.php:260
511
  msgid "Please create the folder <i>thumbs</i> in your gallery folder."
512
  msgstr ""
513
 
514
- #: ../admin/addgallery.php:268
515
  msgid "Database error. Could not add gallery!"
516
  msgstr ""
517
 
518
- #: ../admin/addgallery.php:282
519
  msgid "successfully created!"
520
  msgstr ""
521
 
522
- #: ../admin/addgallery.php:282
523
  msgid " pictures added."
524
  msgstr ""
525
 
526
- #: ../admin/addgallery.php:414
 
 
 
 
 
 
 
 
 
527
  msgid "Uploaded file was no or a faulty zip file ! The server recognize : "
528
  msgstr ""
529
 
530
- #: ../admin/addgallery.php:429
531
  msgid "Directory already exists, please rename zip file"
532
  msgstr ""
533
 
534
- #: ../admin/addgallery.php:434
535
  msgid "Unable to unlink zip file "
536
  msgstr ""
537
 
538
- #: ../admin/addgallery.php:436
539
  msgid "Zip-File successfully unpacked"
540
  msgstr ""
541
 
542
- #: ../admin/addgallery.php:456
543
- #: ../admin/addgallery.php:463
544
  msgid "Unable to unlink file "
545
  msgstr ""
546
 
547
- #: ../admin/addgallery.php:457
548
  msgid "No gallery selected !"
549
  msgstr ""
550
 
551
- #: ../admin/addgallery.php:464
552
  msgid "Failure in database, no gallery path set !"
553
  msgstr ""
554
 
555
- #: ../admin/addgallery.php:470
556
  msgid "Error, the file could not moved to : "
557
  msgstr ""
558
 
559
- #: ../admin/addgallery.php:471
560
  msgid "Error, the file permissions could not set"
561
  msgstr ""
562
 
563
- #: ../admin/addgallery.php:488
564
- msgid "Images successfully added"
565
  msgstr ""
566
 
567
- #: ../admin/admin.php:14
568
  msgid "Add Gallery"
569
  msgstr ""
570
 
571
- #: ../admin/admin.php:15
572
  msgid "Manage Gallery"
573
  msgstr ""
574
 
575
- #: ../admin/admin.php:17
576
  msgid "Options"
577
  msgstr ""
578
 
579
- #: ../admin/admin.php:18
580
  msgid "Style"
581
  msgstr ""
582
 
583
- #: ../admin/admin.php:19
584
  msgid "Setup Gallery"
585
  msgstr ""
586
 
587
- #: ../admin/admin.php:19
588
  msgid "Setup"
589
  msgstr ""
590
 
591
- #: ../admin/admin.php:20
592
  msgid "About this Gallery"
593
  msgstr ""
594
 
595
- #: ../admin/admin.php:20
596
  msgid "About"
597
  msgstr ""
598
 
@@ -605,66 +669,66 @@ msgstr ""
605
  msgid "Album deleted"
606
  msgstr ""
607
 
608
- #: ../admin/album.php:95
609
  msgid "Manage Albums"
610
  msgstr ""
611
 
612
- #: ../admin/album.php:103
613
  msgid "No album selected"
614
  msgstr ""
615
 
616
- #: ../admin/album.php:116
617
  msgid "Add new album"
618
  msgstr ""
619
 
620
- #: ../admin/album.php:120
621
  #: ../admin/manage.php:207
622
- #: ../admin/manage.php:413
623
  msgid "Delete"
624
  msgstr ""
625
 
626
- #: ../admin/album.php:120
627
  msgid "Delete album ?"
628
  msgstr ""
629
 
630
- #: ../admin/album.php:122
631
- #: ../admin/settings.php:153
632
- #: ../admin/settings.php:196
633
- #: ../admin/settings.php:233
634
- #: ../admin/settings.php:270
635
- #: ../admin/settings.php:301
636
- #: ../admin/settings.php:407
637
- #: ../admin/settings.php:489
638
  msgid "Update"
639
  msgstr ""
640
 
641
- #: ../admin/album.php:128
642
  msgid "After you create and select a album, you can drag and drop a gallery into your album below"
643
  msgstr ""
644
 
645
- #: ../admin/album.php:133
646
  msgid "Select Gallery"
647
  msgstr ""
648
 
649
- #: ../admin/album.php:166
650
  msgid "Album Page ID"
651
  msgstr ""
652
 
653
- #: ../admin/album.php:178
654
  msgid "No album selected!"
655
  msgstr ""
656
 
657
- #: ../admin/album.php:213
658
  #: ../admin/manage.php:181
659
- #: ../admin/manage.php:378
660
  msgid "ID"
661
  msgstr ""
662
 
663
- #: ../admin/album.php:214
664
  msgid "Name"
665
  msgstr ""
666
 
667
- #: ../admin/album.php:216
668
  msgid "Page"
669
  msgstr ""
670
 
@@ -695,7 +759,7 @@ msgstr ""
695
  msgid "Update successfully"
696
  msgstr ""
697
 
698
- #: ../admin/manage.php:155
699
  msgid " picture(s) successfully added"
700
  msgstr ""
701
 
@@ -708,8 +772,8 @@ msgid "Gallery name"
708
  msgstr ""
709
 
710
  #: ../admin/manage.php:184
711
- #: ../admin/manage.php:332
712
- #: ../admin/manage.php:381
713
  #: ../admin/style.php:97
714
  msgid "Description"
715
  msgstr ""
@@ -723,7 +787,7 @@ msgid "Quantity"
723
  msgstr ""
724
 
725
  #: ../admin/manage.php:187
726
- #: ../admin/manage.php:384
727
  msgid "Action"
728
  msgstr ""
729
 
@@ -732,73 +796,73 @@ msgid "Edit"
732
  msgstr ""
733
 
734
  #: ../admin/manage.php:207
735
- #: ../admin/manage.php:413
736
  msgid "Delete this file ?"
737
  msgstr ""
738
 
739
  #: ../admin/manage.php:212
740
- #: ../admin/manage.php:418
741
  msgid "No entries found"
742
  msgstr ""
743
 
744
- #: ../admin/manage.php:315
745
  msgid "Page Link to"
746
  msgstr ""
747
 
748
- #: ../admin/manage.php:318
749
  msgid "Not linked"
750
  msgstr ""
751
 
752
- #: ../admin/manage.php:334
753
  msgid "Preview image"
754
  msgstr ""
755
 
756
- #: ../admin/manage.php:337
757
  msgid "No Picture"
758
  msgstr ""
759
 
760
- #: ../admin/manage.php:352
761
  msgid "Path"
762
  msgstr ""
763
 
764
- #: ../admin/manage.php:360
765
  msgid "Scan Folder for new images"
766
  msgstr ""
767
 
768
- #: ../admin/manage.php:361
769
- #: ../admin/manage.php:425
770
  msgid "Save Changes"
771
  msgstr ""
772
 
773
- #: ../admin/manage.php:366
774
  msgid "No action"
775
  msgstr ""
776
 
777
- #: ../admin/manage.php:367
778
  msgid "Set watermark"
779
  msgstr ""
780
 
781
- #: ../admin/manage.php:368
782
  msgid "Create new thumbnails"
783
  msgstr ""
784
 
785
- #: ../admin/manage.php:369
786
  msgid "Resize images"
787
  msgstr ""
788
 
789
- #: ../admin/manage.php:370
790
  msgid "Delete images"
791
  msgstr ""
792
 
793
- #: ../admin/manage.php:372
794
  msgid "OK"
795
  msgstr ""
796
 
797
- #: ../admin/manage.php:372
798
  msgid "No images selected"
799
  msgstr ""
800
 
801
- #: ../admin/manage.php:372
802
  #, php-format
803
  msgid ""
804
  "You are about to start the bulk edit for %s images \n"
@@ -806,24 +870,20 @@ msgid ""
806
  " 'Cancel' to stop, 'OK' to proceed."
807
  msgstr ""
808
 
809
- #: ../admin/manage.php:379
810
- #: ../admin/settings.php:266
811
  msgid "File name"
812
  msgstr ""
813
 
814
- #: ../admin/manage.php:380
815
- msgid "Thumbnail"
816
- msgstr ""
817
-
818
- #: ../admin/manage.php:382
819
  msgid "Alt &amp; Title Text"
820
  msgstr ""
821
 
822
- #: ../admin/manage.php:383
823
  msgid "exclude"
824
  msgstr ""
825
 
826
- #: ../admin/manage.php:412
827
  msgid "View"
828
  msgstr ""
829
 
@@ -969,348 +1029,376 @@ msgstr ""
969
  msgid "PHP Max Script Execute Time"
970
  msgstr ""
971
 
972
- #: ../admin/settings.php:116
973
- #: ../admin/settings.php:132
974
  msgid "General Options"
975
  msgstr ""
976
 
977
- #: ../admin/settings.php:117
978
- #: ../admin/settings.php:260
979
  msgid "Thumbnails"
980
  msgstr ""
981
 
982
- #: ../admin/settings.php:118
983
  msgid "Images"
984
  msgstr ""
985
 
986
- #: ../admin/settings.php:120
987
- #: ../admin/settings.php:278
988
  msgid "Effects"
989
  msgstr ""
990
 
991
- #: ../admin/settings.php:138
992
  msgid "Gallery path"
993
  msgstr ""
994
 
995
- #: ../admin/settings.php:140
996
  msgid "This is the default path for all galleries"
997
  msgstr ""
998
 
999
- #: ../admin/settings.php:143
1000
  msgid "Scan folders during runtime"
1001
  msgstr ""
1002
 
1003
- #: ../admin/settings.php:145
1004
  msgid "Search automatic in the folders for new images (not working)"
1005
  msgstr ""
1006
 
1007
- #: ../admin/settings.php:148
1008
  msgid "Delete image files"
1009
  msgstr ""
1010
 
1011
- #: ../admin/settings.php:150
1012
  msgid "Delete files, when removing a gallery in the database"
1013
  msgstr ""
1014
 
1015
- #: ../admin/settings.php:161
1016
  msgid "Thumbnail settings"
1017
  msgstr ""
1018
 
1019
  #: ../admin/settings.php:167
 
 
 
 
1020
  msgid "Width x height (in pixel)"
1021
  msgstr ""
1022
 
1023
- #: ../admin/settings.php:169
1024
  msgid "This values are maxium values "
1025
  msgstr ""
1026
 
1027
- #: ../admin/settings.php:172
1028
  msgid "Set fix dimension"
1029
  msgstr ""
1030
 
1031
- #: ../admin/settings.php:174
1032
  msgid "Ignore the aspect ratio, no portrait thumbnails"
1033
  msgstr ""
1034
 
1035
- #: ../admin/settings.php:177
1036
  msgid "Crop thumbnail from image"
1037
  msgstr ""
1038
 
1039
- #: ../admin/settings.php:179
1040
  msgid "Create square thumbnails from the center"
1041
  msgstr ""
1042
 
1043
- #: ../admin/settings.php:182
1044
  msgid "Do resize before cropping"
1045
  msgstr ""
1046
 
1047
- #: ../admin/settings.php:184
1048
  msgid "Generates square thumbnails without cropping to much"
1049
  msgstr ""
1050
 
1051
- #: ../admin/settings.php:187
1052
  msgid "Thumbnail quality"
1053
  msgstr ""
1054
 
1055
- #: ../admin/settings.php:191
1056
- #: ../admin/settings.php:221
1057
  msgid "Resample Mode"
1058
  msgstr ""
1059
 
1060
- #: ../admin/settings.php:193
1061
- #: ../admin/settings.php:224
1062
  msgid "Value between 1-5 (higher value, more CPU load)"
1063
  msgstr ""
1064
 
1065
- #: ../admin/settings.php:204
1066
  msgid "Image settings"
1067
  msgstr ""
1068
 
1069
- #: ../admin/settings.php:210
1070
  msgid "Resize Images"
1071
  msgstr ""
1072
 
1073
- #: ../admin/settings.php:213
1074
  msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size"
1075
  msgstr ""
1076
 
1077
- #: ../admin/settings.php:216
1078
  msgid "Image quality"
1079
  msgstr ""
1080
 
1081
- #: ../admin/settings.php:227
1082
  msgid "Add link in [singlepic] tag "
1083
  msgstr ""
1084
 
1085
- #: ../admin/settings.php:230
1086
  msgid "Add the fullsize picture as link. Didn't support watermark mode on the fly."
1087
  msgstr ""
1088
 
1089
- #: ../admin/settings.php:241
1090
  msgid "Gallery settings"
1091
  msgstr ""
1092
 
1093
- #: ../admin/settings.php:247
1094
  msgid "Number of images per page"
1095
  msgstr ""
1096
 
1097
- #: ../admin/settings.php:249
1098
  msgid "0 will disable pagination, all images on one page"
1099
  msgstr ""
1100
 
1101
- #: ../admin/settings.php:252
1102
  msgid "Integrate slideshow"
1103
  msgstr ""
1104
 
1105
- #: ../admin/settings.php:259
1106
  msgid "Show first"
1107
  msgstr ""
1108
 
1109
- #: ../admin/settings.php:264
1110
  msgid "Sort thumbnails"
1111
  msgstr ""
1112
 
1113
- #: ../admin/settings.php:265
1114
  msgid "Image ID"
1115
  msgstr ""
1116
 
1117
- #: ../admin/settings.php:267
1118
  msgid "Alt / Title text"
1119
  msgstr ""
1120
 
1121
- #: ../admin/settings.php:281
1122
  msgid "Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Thickbox effect will automatic added to your theme."
1123
  msgstr ""
1124
 
1125
- #: ../admin/settings.php:282
1126
  msgid "With the placeholder"
1127
  msgstr ""
1128
 
1129
- #: ../admin/settings.php:282
1130
  msgid "you can activate a navigation through the images (depend on the effect). Change the code line only , when you use a different thumbnail effect or you know what you do."
1131
  msgstr ""
1132
 
1133
- #: ../admin/settings.php:286
1134
  msgid "JavaScript Thumbnail effect"
1135
  msgstr ""
1136
 
1137
- #: ../admin/settings.php:289
1138
  msgid "None"
1139
  msgstr ""
1140
 
1141
- #: ../admin/settings.php:290
1142
  msgid "Thickbox"
1143
  msgstr ""
1144
 
1145
- #: ../admin/settings.php:291
1146
  msgid "Lightbox"
1147
  msgstr ""
1148
 
1149
- #: ../admin/settings.php:292
1150
  msgid "Highslide"
1151
  msgstr ""
1152
 
1153
- #: ../admin/settings.php:293
1154
  msgid "Custom"
1155
  msgstr ""
1156
 
1157
- #: ../admin/settings.php:297
1158
  msgid "Link Code line"
1159
  msgstr ""
1160
 
1161
- #: ../admin/settings.php:319
 
 
 
 
1162
  msgid "Preview"
1163
  msgstr ""
1164
 
1165
- #: ../admin/settings.php:321
1166
- #: ../admin/settings.php:325
1167
  msgid "Position"
1168
  msgstr ""
1169
 
1170
- #: ../admin/settings.php:345
1171
  msgid "Offset"
1172
  msgstr ""
1173
 
1174
- #: ../admin/settings.php:363
1175
  msgid "Use image as watermark"
1176
  msgstr ""
1177
 
1178
- #: ../admin/settings.php:366
1179
  msgid "URL to file"
1180
  msgstr ""
1181
 
1182
- #: ../admin/settings.php:373
1183
  msgid "Use text as watermark"
1184
  msgstr ""
1185
 
1186
- #: ../admin/settings.php:376
1187
  msgid "Font"
1188
  msgstr ""
1189
 
1190
- #: ../admin/settings.php:384
1191
  msgid "You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
1192
  msgstr ""
1193
 
1194
- #: ../admin/settings.php:388
1195
  msgid "Size"
1196
  msgstr ""
1197
 
1198
- #: ../admin/settings.php:392
1199
  msgid "Color"
1200
  msgstr ""
1201
 
1202
- #: ../admin/settings.php:394
1203
  msgid "(hex w/o #)"
1204
  msgstr ""
1205
 
1206
- #: ../admin/settings.php:397
1207
  msgid "Text"
1208
  msgstr ""
1209
 
1210
- #: ../admin/settings.php:401
1211
  msgid "Opaque"
1212
  msgstr ""
1213
 
1214
- #: ../admin/settings.php:419
1215
  msgid "The imagerotator.swf is not in the nggallery folder, the slideshow will not work."
1216
  msgstr ""
1217
 
1218
- #: ../admin/settings.php:420
1219
- msgid "The settings are used in the Flash Image Rotator Version 3.2 ."
1220
  msgstr ""
1221
 
1222
- #: ../admin/settings.php:421
1223
  msgid "See more information for the Flash Player on the web page"
1224
  msgstr ""
1225
 
1226
- #: ../admin/settings.php:424
1227
  msgid "Default size (W x H)"
1228
  msgstr ""
1229
 
1230
- #: ../admin/settings.php:429
1231
  msgid "Shuffle mode"
1232
  msgstr ""
1233
 
1234
- #: ../admin/settings.php:433
1235
  msgid "Show next image on click"
1236
  msgstr ""
1237
 
1238
- #: ../admin/settings.php:437
1239
  msgid "Show navigation bar"
1240
  msgstr ""
1241
 
1242
- #: ../admin/settings.php:441
1243
  msgid "Show loading icon"
1244
  msgstr ""
1245
 
1246
- #: ../admin/settings.php:445
1247
  msgid "Stretch image"
1248
  msgstr ""
1249
 
1250
- #: ../admin/settings.php:448
1251
  msgid "true"
1252
  msgstr ""
1253
 
1254
- #: ../admin/settings.php:449
1255
  msgid "false"
1256
  msgstr ""
1257
 
1258
- #: ../admin/settings.php:450
1259
  msgid "fit"
1260
  msgstr ""
1261
 
1262
- #: ../admin/settings.php:456
1263
  msgid "Duration time"
1264
  msgstr ""
1265
 
1266
- #: ../admin/settings.php:457
1267
  msgid "sec."
1268
  msgstr ""
1269
 
1270
- #: ../admin/settings.php:460
1271
  msgid "Transition / Fade effect"
1272
  msgstr ""
1273
 
1274
- #: ../admin/settings.php:463
1275
  msgid "fade"
1276
  msgstr ""
1277
 
1278
- #: ../admin/settings.php:464
1279
  msgid "bgfade"
1280
  msgstr ""
1281
 
1282
- #: ../admin/settings.php:465
 
 
 
 
1283
  msgid "circles"
1284
  msgstr ""
1285
 
1286
- #: ../admin/settings.php:466
 
 
 
 
1287
  msgid "blocks"
1288
  msgstr ""
1289
 
1290
- #: ../admin/settings.php:467
1291
  msgid "fluids"
1292
  msgstr ""
1293
 
1294
- #: ../admin/settings.php:468
1295
  msgid "lines"
1296
  msgstr ""
1297
 
1298
- #: ../admin/settings.php:469
1299
  msgid "random"
1300
  msgstr ""
1301
 
1302
- #: ../admin/settings.php:473
 
 
 
 
1303
  msgid "Background Color"
1304
  msgstr ""
1305
 
1306
- #: ../admin/settings.php:478
1307
  msgid "Texts / Buttons Color"
1308
  msgstr ""
1309
 
1310
- #: ../admin/settings.php:483
1311
  msgid "Rollover / Active Color"
1312
  msgstr ""
1313
 
 
 
 
 
 
 
 
 
1314
  #: ../admin/setup.php:10
1315
  msgid "Reset all settings to default parameter"
1316
  msgstr ""
2
  msgstr ""
3
  "Project-Id-Version: NextGEN Gallery\n"
4
  "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2007-05-28 00:51+0100\n"
6
  "Last-Translator: Alex Rabe\n"
7
  "Language-Team: Alex Rabe\n"
8
  "MIME-Version: 1.0\n"
15
  "X-Poedit-SearchPath-0: .\n"
16
  "X-Poedit-SearchPath-1: ..\n"
17
 
18
+ #: ../nggallery.php:252
19
  msgid "Sorry, NextGEN Gallery works only under WordPress 2.1 or higher"
20
  msgstr ""
21
 
22
  #: ../nggbutton.php:36
23
+ #: ../admin/addgallery.php:239
24
+ #: ../admin/addgallery.php:290
25
+ #: ../admin/admin.php:42
26
  #: ../admin/manage.php:44
27
+ #: ../admin/manage.php:303
28
+ #: ../admin/settings.php:121
29
  msgid "Gallery"
30
  msgstr ""
31
 
32
  #: ../nggbutton.php:37
33
+ #: ../admin/admin.php:45
34
  msgid "Album"
35
  msgstr ""
36
 
57
  msgstr ""
58
 
59
  #: ../nggbutton.php:64
60
+ #: ../admin/settings.php:124
61
+ #: ../admin/settings.php:264
62
+ #: ../admin/settings.php:432
63
  msgid "Slideshow"
64
  msgstr ""
65
 
66
  #: ../nggbutton.php:75
67
+ #: ../admin/album.php:98
68
  msgid "Select album"
69
  msgstr ""
70
 
101
  msgstr ""
102
 
103
  #: ../nggbutton.php:124
104
+ #: ../admin/settings.php:123
105
+ #: ../admin/settings.php:330
106
  msgid "Watermark"
107
  msgstr ""
108
 
151
  msgid "[Show picture list]"
152
  msgstr ""
153
 
154
+ #: ../nggwidget.php:140
155
+ msgid "Title:"
156
+ msgstr ""
157
+
158
+ #: ../nggwidget.php:141
159
+ msgid "Select Gallery:"
160
+ msgstr ""
161
+
162
+ #: ../nggwidget.php:152
163
+ msgid "Height:"
164
  msgstr ""
165
 
166
+ #: ../nggwidget.php:153
167
+ msgid "Width:"
168
+ msgstr ""
169
+
170
+ #: ../nggwidget.php:345
171
+ msgid "NextGEN Recent Image"
172
+ msgstr ""
173
+
174
+ #: ../nggwidget.php:385
175
+ #: ../nggwidget.php:584
176
+ #: ../admin/album.php:213
177
  #: ../admin/manage.php:183
178
+ #: ../admin/manage.php:310
179
  msgid "Title"
180
  msgstr ""
181
 
182
+ #: ../nggwidget.php:388
183
+ #: ../nggwidget.php:587
184
+ msgid "Display type"
185
+ msgstr ""
186
+
187
+ #: ../nggwidget.php:390
188
+ #: ../nggwidget.php:589
189
+ #: ../admin/manage.php:377
190
+ msgid "Thumbnail"
191
+ msgstr ""
192
+
193
+ #: ../nggwidget.php:391
194
+ #: ../nggwidget.php:590
195
+ msgid "Orginal"
196
+ msgstr ""
197
+
198
+ #: ../nggwidget.php:394
199
+ #: ../nggwidget.php:594
200
  msgid "Number of pics"
201
  msgstr ""
202
 
203
+ #: ../nggwidget.php:405
204
+ #: ../nggwidget.php:605
205
+ msgid "Width (px)"
206
  msgstr ""
207
 
208
+ #: ../nggwidget.php:407
209
+ #: ../nggwidget.php:607
210
+ msgid "Height (px)"
211
  msgstr ""
212
 
213
+ #: ../nggwidget.php:409
214
+ #: ../nggwidget.php:609
215
  msgid "Mode"
216
  msgstr ""
217
 
218
+ #: ../nggwidget.php:411
219
+ #: ../nggwidget.php:611
220
+ #: ../admin/settings.php:466
221
  msgid "none"
222
  msgstr ""
223
 
224
+ #: ../nggwidget.php:412
225
+ #: ../nggwidget.php:612
226
  msgid "web2.0"
227
  msgstr ""
228
 
229
+ #: ../nggwidget.php:416
230
+ #: ../nggwidget.php:616
231
  msgid "Show in the main page"
232
  msgstr ""
233
 
234
+ #: ../nggwidget.php:418
235
+ #: ../nggwidget.php:618
236
  msgid "yes"
237
  msgstr ""
238
 
239
+ #: ../nggwidget.php:419
240
+ #: ../nggwidget.php:619
241
  msgid "no"
242
  msgstr ""
243
 
244
+ #: ../nggwidget.php:422
245
+ #: ../nggwidget.php:622
246
  msgid "Show in"
247
  msgstr ""
248
 
249
+ #: ../nggwidget.php:424
250
+ #: ../nggwidget.php:624
251
  msgid "All categories"
252
  msgstr ""
253
 
254
+ #: ../nggwidget.php:425
255
+ #: ../nggwidget.php:625
256
  msgid "Only which are not listed"
257
  msgstr ""
258
 
259
+ #: ../nggwidget.php:426
260
+ #: ../nggwidget.php:626
261
  msgid "Only which are listed"
262
  msgstr ""
263
 
264
+ #: ../nggwidget.php:429
265
+ #: ../nggwidget.php:629
266
+ msgid "Categories (id (use , to seperate)"
267
+ msgstr ""
268
+
269
+ #: ../nggwidget.php:543
270
+ msgid "NextGEN Random Image"
271
  msgstr ""
272
 
273
  #: ../admin/about.php:9
396
  msgstr ""
397
 
398
  #: ../admin/addgallery.php:23
399
+ #: ../admin/addgallery.php:37
400
  msgid "Upload failed!"
401
  msgstr ""
402
 
403
  #: ../admin/addgallery.php:103
404
+ msgid "remove"
405
+ msgstr ""
406
+
407
+ #: ../admin/addgallery.php:111
408
+ #: ../admin/addgallery.php:123
409
  msgid "Add new gallery"
410
  msgstr ""
411
 
412
+ #: ../admin/addgallery.php:113
413
+ #: ../admin/addgallery.php:140
414
  msgid "Upload a Zip-File"
415
  msgstr ""
416
 
417
+ #: ../admin/addgallery.php:115
418
+ #: ../admin/addgallery.php:156
419
  msgid "Import image folder"
420
  msgstr ""
421
 
422
+ #: ../admin/addgallery.php:116
423
+ #: ../admin/addgallery.php:173
424
  msgid "Upload Images"
425
  msgstr ""
426
 
427
+ #: ../admin/addgallery.php:128
428
  msgid "New Gallery"
429
  msgstr ""
430
 
431
+ #: ../admin/addgallery.php:130
432
  msgid "Create a new , empty gallery below the folder"
433
  msgstr ""
434
 
435
+ #: ../admin/addgallery.php:131
436
  msgid "Allowed characters for file and folder names are"
437
  msgstr ""
438
 
439
+ #: ../admin/addgallery.php:134
440
  msgid "Add gallery"
441
  msgstr ""
442
 
443
+ #: ../admin/addgallery.php:145
444
  msgid "Select Zip-File"
445
  msgstr ""
446
 
447
+ #: ../admin/addgallery.php:147
448
  msgid "Upload a zip file with images"
449
  msgstr ""
450
 
451
+ #: ../admin/addgallery.php:150
452
  msgid "Start upload"
453
  msgstr ""
454
 
455
+ #: ../admin/addgallery.php:161
456
  msgid "Import from Server path:"
457
  msgstr ""
458
 
459
+ #: ../admin/addgallery.php:163
460
  msgid "Import a folder with images. Please note :"
461
  msgstr ""
462
 
463
+ #: ../admin/addgallery.php:164
464
  msgid "For save_mode = ON you need to add the subfolder thumbs manually"
465
  msgstr ""
466
 
467
+ #: ../admin/addgallery.php:167
468
  msgid "Import folder"
469
  msgstr ""
470
 
471
+ #: ../admin/addgallery.php:178
472
  msgid "Upload image"
473
  msgstr ""
474
 
475
+ #: ../admin/addgallery.php:182
476
  msgid "in to"
477
  msgstr ""
478
 
479
+ #: ../admin/addgallery.php:184
480
  msgid "Choose gallery"
481
  msgstr ""
482
 
483
+ #: ../admin/addgallery.php:194
484
+ msgid "Note : The upload limit on your server is "
485
  msgstr ""
486
 
487
+ #: ../admin/addgallery.php:197
488
  msgid "Upload images"
489
  msgstr ""
490
 
491
+ #: ../admin/addgallery.php:217
492
  msgid "No valid gallery name!"
493
  msgstr ""
494
 
495
+ #: ../admin/addgallery.php:219
496
+ #: ../admin/addgallery.php:224
497
+ #: ../admin/addgallery.php:259
498
+ #: ../admin/addgallery.php:263
499
  msgid "Directory"
500
  msgstr ""
501
 
502
+ #: ../admin/addgallery.php:219
503
+ msgid "didn't have the permissions "
504
  msgstr ""
505
 
506
+ #: ../admin/addgallery.php:224
507
  msgid "already exists!"
508
  msgstr ""
509
 
510
+ #: ../admin/addgallery.php:228
511
+ #: ../admin/addgallery.php:230
512
+ #: ../admin/addgallery.php:269
513
+ #: ../admin/addgallery.php:464
514
+ #: ../admin/addgallery.php:466
515
  msgid "Unable to create directory "
516
  msgstr ""
517
 
518
+ #: ../admin/addgallery.php:229
519
+ #: ../admin/addgallery.php:465
520
+ #: ../admin/addgallery.php:467
521
  msgid "Unable to set directory permissions "
522
  msgstr ""
523
 
524
+ #: ../admin/addgallery.php:231
525
  msgid "Unable to set directory permissions"
526
  msgstr ""
527
 
528
+ #: ../admin/addgallery.php:233
529
  msgid "The server Safe-Mode is on !"
530
  msgstr ""
531
 
532
+ #: ../admin/addgallery.php:234
533
  msgid "Please create directory "
534
  msgstr ""
535
 
536
+ #: ../admin/addgallery.php:235
537
  msgid "and the thumbnails directory "
538
  msgstr ""
539
 
540
+ #: ../admin/addgallery.php:235
541
  msgid "with permission 777 manually !"
542
  msgstr ""
543
 
544
+ #: ../admin/addgallery.php:239
545
  msgid "already exists"
546
  msgstr ""
547
 
548
+ #: ../admin/addgallery.php:242
549
  msgid "Gallery successfully created!"
550
  msgstr ""
551
 
552
+ #: ../admin/addgallery.php:259
553
+ #: ../admin/addgallery.php:268
554
  msgid "doesn&#96;t exist"
555
  msgstr ""
556
 
557
+ #: ../admin/addgallery.php:263
558
  msgid "contains no pictures"
559
  msgstr ""
560
 
561
+ #: ../admin/addgallery.php:268
562
  msgid "Thumbnail Directory"
563
  msgstr ""
564
 
565
+ #: ../admin/addgallery.php:268
566
  msgid "Please create the folder <i>thumbs</i> in your gallery folder."
567
  msgstr ""
568
 
569
+ #: ../admin/addgallery.php:276
570
  msgid "Database error. Could not add gallery!"
571
  msgstr ""
572
 
573
+ #: ../admin/addgallery.php:290
574
  msgid "successfully created!"
575
  msgstr ""
576
 
577
+ #: ../admin/addgallery.php:290
578
  msgid " pictures added."
579
  msgstr ""
580
 
581
+ #: ../admin/addgallery.php:333
582
+ #: ../admin/addgallery.php:371
583
+ msgid "Some pictures are not writeable :"
584
+ msgstr ""
585
+
586
+ #: ../admin/addgallery.php:425
587
+ msgid "Some thumbnails are not writeable :"
588
+ msgstr ""
589
+
590
+ #: ../admin/addgallery.php:455
591
  msgid "Uploaded file was no or a faulty zip file ! The server recognize : "
592
  msgstr ""
593
 
594
+ #: ../admin/addgallery.php:470
595
  msgid "Directory already exists, please rename zip file"
596
  msgstr ""
597
 
598
+ #: ../admin/addgallery.php:475
599
  msgid "Unable to unlink zip file "
600
  msgstr ""
601
 
602
+ #: ../admin/addgallery.php:477
603
  msgid "Zip-File successfully unpacked"
604
  msgstr ""
605
 
606
+ #: ../admin/addgallery.php:504
607
+ #: ../admin/addgallery.php:511
608
  msgid "Unable to unlink file "
609
  msgstr ""
610
 
611
+ #: ../admin/addgallery.php:505
612
  msgid "No gallery selected !"
613
  msgstr ""
614
 
615
+ #: ../admin/addgallery.php:512
616
  msgid "Failure in database, no gallery path set !"
617
  msgstr ""
618
 
619
+ #: ../admin/addgallery.php:518
620
  msgid "Error, the file could not moved to : "
621
  msgstr ""
622
 
623
+ #: ../admin/addgallery.php:519
624
  msgid "Error, the file permissions could not set"
625
  msgstr ""
626
 
627
+ #: ../admin/addgallery.php:539
628
+ msgid " Images successfully added"
629
  msgstr ""
630
 
631
+ #: ../admin/admin.php:43
632
  msgid "Add Gallery"
633
  msgstr ""
634
 
635
+ #: ../admin/admin.php:44
636
  msgid "Manage Gallery"
637
  msgstr ""
638
 
639
+ #: ../admin/admin.php:46
640
  msgid "Options"
641
  msgstr ""
642
 
643
+ #: ../admin/admin.php:47
644
  msgid "Style"
645
  msgstr ""
646
 
647
+ #: ../admin/admin.php:48
648
  msgid "Setup Gallery"
649
  msgstr ""
650
 
651
+ #: ../admin/admin.php:48
652
  msgid "Setup"
653
  msgstr ""
654
 
655
+ #: ../admin/admin.php:49
656
  msgid "About this Gallery"
657
  msgstr ""
658
 
659
+ #: ../admin/admin.php:49
660
  msgid "About"
661
  msgstr ""
662
 
669
  msgid "Album deleted"
670
  msgstr ""
671
 
672
+ #: ../admin/album.php:93
673
  msgid "Manage Albums"
674
  msgstr ""
675
 
676
+ #: ../admin/album.php:101
677
  msgid "No album selected"
678
  msgstr ""
679
 
680
+ #: ../admin/album.php:114
681
  msgid "Add new album"
682
  msgstr ""
683
 
684
+ #: ../admin/album.php:118
685
  #: ../admin/manage.php:207
686
+ #: ../admin/manage.php:410
687
  msgid "Delete"
688
  msgstr ""
689
 
690
+ #: ../admin/album.php:118
691
  msgid "Delete album ?"
692
  msgstr ""
693
 
694
+ #: ../admin/album.php:120
695
+ #: ../admin/settings.php:155
696
+ #: ../admin/settings.php:199
697
+ #: ../admin/settings.php:236
698
+ #: ../admin/settings.php:273
699
+ #: ../admin/settings.php:316
700
+ #: ../admin/settings.php:422
701
+ #: ../admin/settings.php:515
702
  msgid "Update"
703
  msgstr ""
704
 
705
+ #: ../admin/album.php:126
706
  msgid "After you create and select a album, you can drag and drop a gallery into your album below"
707
  msgstr ""
708
 
709
+ #: ../admin/album.php:131
710
  msgid "Select Gallery"
711
  msgstr ""
712
 
713
+ #: ../admin/album.php:164
714
  msgid "Album Page ID"
715
  msgstr ""
716
 
717
+ #: ../admin/album.php:176
718
  msgid "No album selected!"
719
  msgstr ""
720
 
721
+ #: ../admin/album.php:211
722
  #: ../admin/manage.php:181
723
+ #: ../admin/manage.php:375
724
  msgid "ID"
725
  msgstr ""
726
 
727
+ #: ../admin/album.php:212
728
  msgid "Name"
729
  msgstr ""
730
 
731
+ #: ../admin/album.php:214
732
  msgid "Page"
733
  msgstr ""
734
 
759
  msgid "Update successfully"
760
  msgstr ""
761
 
762
+ #: ../admin/manage.php:154
763
  msgid " picture(s) successfully added"
764
  msgstr ""
765
 
772
  msgstr ""
773
 
774
  #: ../admin/manage.php:184
775
+ #: ../admin/manage.php:329
776
+ #: ../admin/manage.php:378
777
  #: ../admin/style.php:97
778
  msgid "Description"
779
  msgstr ""
787
  msgstr ""
788
 
789
  #: ../admin/manage.php:187
790
+ #: ../admin/manage.php:381
791
  msgid "Action"
792
  msgstr ""
793
 
796
  msgstr ""
797
 
798
  #: ../admin/manage.php:207
799
+ #: ../admin/manage.php:410
800
  msgid "Delete this file ?"
801
  msgstr ""
802
 
803
  #: ../admin/manage.php:212
804
+ #: ../admin/manage.php:415
805
  msgid "No entries found"
806
  msgstr ""
807
 
808
+ #: ../admin/manage.php:312
809
  msgid "Page Link to"
810
  msgstr ""
811
 
812
+ #: ../admin/manage.php:315
813
  msgid "Not linked"
814
  msgstr ""
815
 
816
+ #: ../admin/manage.php:331
817
  msgid "Preview image"
818
  msgstr ""
819
 
820
+ #: ../admin/manage.php:334
821
  msgid "No Picture"
822
  msgstr ""
823
 
824
+ #: ../admin/manage.php:349
825
  msgid "Path"
826
  msgstr ""
827
 
828
+ #: ../admin/manage.php:357
829
  msgid "Scan Folder for new images"
830
  msgstr ""
831
 
832
+ #: ../admin/manage.php:358
833
+ #: ../admin/manage.php:422
834
  msgid "Save Changes"
835
  msgstr ""
836
 
837
+ #: ../admin/manage.php:363
838
  msgid "No action"
839
  msgstr ""
840
 
841
+ #: ../admin/manage.php:364
842
  msgid "Set watermark"
843
  msgstr ""
844
 
845
+ #: ../admin/manage.php:365
846
  msgid "Create new thumbnails"
847
  msgstr ""
848
 
849
+ #: ../admin/manage.php:366
850
  msgid "Resize images"
851
  msgstr ""
852
 
853
+ #: ../admin/manage.php:367
854
  msgid "Delete images"
855
  msgstr ""
856
 
857
+ #: ../admin/manage.php:369
858
  msgid "OK"
859
  msgstr ""
860
 
861
+ #: ../admin/manage.php:369
862
  msgid "No images selected"
863
  msgstr ""
864
 
865
+ #: ../admin/manage.php:369
866
  #, php-format
867
  msgid ""
868
  "You are about to start the bulk edit for %s images \n"
870
  " 'Cancel' to stop, 'OK' to proceed."
871
  msgstr ""
872
 
873
+ #: ../admin/manage.php:376
874
+ #: ../admin/settings.php:269
875
  msgid "File name"
876
  msgstr ""
877
 
878
+ #: ../admin/manage.php:379
 
 
 
 
879
  msgid "Alt &amp; Title Text"
880
  msgstr ""
881
 
882
+ #: ../admin/manage.php:380
883
  msgid "exclude"
884
  msgstr ""
885
 
886
+ #: ../admin/manage.php:409
887
  msgid "View"
888
  msgstr ""
889
 
1029
  msgid "PHP Max Script Execute Time"
1030
  msgstr ""
1031
 
1032
+ #: ../admin/settings.php:118
1033
+ #: ../admin/settings.php:134
1034
  msgid "General Options"
1035
  msgstr ""
1036
 
1037
+ #: ../admin/settings.php:119
1038
+ #: ../admin/settings.php:263
1039
  msgid "Thumbnails"
1040
  msgstr ""
1041
 
1042
+ #: ../admin/settings.php:120
1043
  msgid "Images"
1044
  msgstr ""
1045
 
1046
+ #: ../admin/settings.php:122
1047
+ #: ../admin/settings.php:281
1048
  msgid "Effects"
1049
  msgstr ""
1050
 
1051
+ #: ../admin/settings.php:140
1052
  msgid "Gallery path"
1053
  msgstr ""
1054
 
1055
+ #: ../admin/settings.php:142
1056
  msgid "This is the default path for all galleries"
1057
  msgstr ""
1058
 
1059
+ #: ../admin/settings.php:145
1060
  msgid "Scan folders during runtime"
1061
  msgstr ""
1062
 
1063
+ #: ../admin/settings.php:147
1064
  msgid "Search automatic in the folders for new images (not working)"
1065
  msgstr ""
1066
 
1067
+ #: ../admin/settings.php:150
1068
  msgid "Delete image files"
1069
  msgstr ""
1070
 
1071
+ #: ../admin/settings.php:152
1072
  msgid "Delete files, when removing a gallery in the database"
1073
  msgstr ""
1074
 
1075
+ #: ../admin/settings.php:163
1076
  msgid "Thumbnail settings"
1077
  msgstr ""
1078
 
1079
  #: ../admin/settings.php:167
1080
+ msgid "Please note : If you change the settings, you need to recreate the thumbnails under -> Manage Gallery ."
1081
+ msgstr ""
1082
+
1083
+ #: ../admin/settings.php:170
1084
  msgid "Width x height (in pixel)"
1085
  msgstr ""
1086
 
1087
+ #: ../admin/settings.php:172
1088
  msgid "This values are maxium values "
1089
  msgstr ""
1090
 
1091
+ #: ../admin/settings.php:175
1092
  msgid "Set fix dimension"
1093
  msgstr ""
1094
 
1095
+ #: ../admin/settings.php:177
1096
  msgid "Ignore the aspect ratio, no portrait thumbnails"
1097
  msgstr ""
1098
 
1099
+ #: ../admin/settings.php:180
1100
  msgid "Crop thumbnail from image"
1101
  msgstr ""
1102
 
1103
+ #: ../admin/settings.php:182
1104
  msgid "Create square thumbnails from the center"
1105
  msgstr ""
1106
 
1107
+ #: ../admin/settings.php:185
1108
  msgid "Do resize before cropping"
1109
  msgstr ""
1110
 
1111
+ #: ../admin/settings.php:187
1112
  msgid "Generates square thumbnails without cropping to much"
1113
  msgstr ""
1114
 
1115
+ #: ../admin/settings.php:190
1116
  msgid "Thumbnail quality"
1117
  msgstr ""
1118
 
1119
+ #: ../admin/settings.php:194
1120
+ #: ../admin/settings.php:224
1121
  msgid "Resample Mode"
1122
  msgstr ""
1123
 
1124
+ #: ../admin/settings.php:196
1125
+ #: ../admin/settings.php:227
1126
  msgid "Value between 1-5 (higher value, more CPU load)"
1127
  msgstr ""
1128
 
1129
+ #: ../admin/settings.php:207
1130
  msgid "Image settings"
1131
  msgstr ""
1132
 
1133
+ #: ../admin/settings.php:213
1134
  msgid "Resize Images"
1135
  msgstr ""
1136
 
1137
+ #: ../admin/settings.php:216
1138
  msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size"
1139
  msgstr ""
1140
 
1141
+ #: ../admin/settings.php:219
1142
  msgid "Image quality"
1143
  msgstr ""
1144
 
1145
+ #: ../admin/settings.php:230
1146
  msgid "Add link in [singlepic] tag "
1147
  msgstr ""
1148
 
1149
+ #: ../admin/settings.php:233
1150
  msgid "Add the fullsize picture as link. Didn't support watermark mode on the fly."
1151
  msgstr ""
1152
 
1153
+ #: ../admin/settings.php:244
1154
  msgid "Gallery settings"
1155
  msgstr ""
1156
 
1157
+ #: ../admin/settings.php:250
1158
  msgid "Number of images per page"
1159
  msgstr ""
1160
 
1161
+ #: ../admin/settings.php:252
1162
  msgid "0 will disable pagination, all images on one page"
1163
  msgstr ""
1164
 
1165
+ #: ../admin/settings.php:255
1166
  msgid "Integrate slideshow"
1167
  msgstr ""
1168
 
1169
+ #: ../admin/settings.php:262
1170
  msgid "Show first"
1171
  msgstr ""
1172
 
1173
+ #: ../admin/settings.php:267
1174
  msgid "Sort thumbnails"
1175
  msgstr ""
1176
 
1177
+ #: ../admin/settings.php:268
1178
  msgid "Image ID"
1179
  msgstr ""
1180
 
1181
+ #: ../admin/settings.php:270
1182
  msgid "Alt / Title text"
1183
  msgstr ""
1184
 
1185
+ #: ../admin/settings.php:284
1186
  msgid "Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Thickbox effect will automatic added to your theme."
1187
  msgstr ""
1188
 
1189
+ #: ../admin/settings.php:285
1190
  msgid "With the placeholder"
1191
  msgstr ""
1192
 
1193
+ #: ../admin/settings.php:285
1194
  msgid "you can activate a navigation through the images (depend on the effect). Change the code line only , when you use a different thumbnail effect or you know what you do."
1195
  msgstr ""
1196
 
1197
+ #: ../admin/settings.php:289
1198
  msgid "JavaScript Thumbnail effect"
1199
  msgstr ""
1200
 
1201
+ #: ../admin/settings.php:292
1202
  msgid "None"
1203
  msgstr ""
1204
 
1205
+ #: ../admin/settings.php:293
1206
  msgid "Thickbox"
1207
  msgstr ""
1208
 
1209
+ #: ../admin/settings.php:294
1210
  msgid "Lightbox"
1211
  msgstr ""
1212
 
1213
+ #: ../admin/settings.php:295
1214
  msgid "Highslide"
1215
  msgstr ""
1216
 
1217
+ #: ../admin/settings.php:296
1218
  msgid "Custom"
1219
  msgstr ""
1220
 
1221
+ #: ../admin/settings.php:300
1222
  msgid "Link Code line"
1223
  msgstr ""
1224
 
1225
+ #: ../admin/settings.php:308
1226
+ msgid "Select loading image"
1227
+ msgstr ""
1228
+
1229
+ #: ../admin/settings.php:334
1230
  msgid "Preview"
1231
  msgstr ""
1232
 
1233
+ #: ../admin/settings.php:336
1234
+ #: ../admin/settings.php:340
1235
  msgid "Position"
1236
  msgstr ""
1237
 
1238
+ #: ../admin/settings.php:360
1239
  msgid "Offset"
1240
  msgstr ""
1241
 
1242
+ #: ../admin/settings.php:378
1243
  msgid "Use image as watermark"
1244
  msgstr ""
1245
 
1246
+ #: ../admin/settings.php:381
1247
  msgid "URL to file"
1248
  msgstr ""
1249
 
1250
+ #: ../admin/settings.php:388
1251
  msgid "Use text as watermark"
1252
  msgstr ""
1253
 
1254
+ #: ../admin/settings.php:391
1255
  msgid "Font"
1256
  msgstr ""
1257
 
1258
+ #: ../admin/settings.php:399
1259
  msgid "You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
1260
  msgstr ""
1261
 
1262
+ #: ../admin/settings.php:403
1263
  msgid "Size"
1264
  msgstr ""
1265
 
1266
+ #: ../admin/settings.php:407
1267
  msgid "Color"
1268
  msgstr ""
1269
 
1270
+ #: ../admin/settings.php:409
1271
  msgid "(hex w/o #)"
1272
  msgstr ""
1273
 
1274
+ #: ../admin/settings.php:412
1275
  msgid "Text"
1276
  msgstr ""
1277
 
1278
+ #: ../admin/settings.php:416
1279
  msgid "Opaque"
1280
  msgstr ""
1281
 
1282
+ #: ../admin/settings.php:434
1283
  msgid "The imagerotator.swf is not in the nggallery folder, the slideshow will not work."
1284
  msgstr ""
1285
 
1286
+ #: ../admin/settings.php:435
1287
+ msgid "The settings are used in the Flash Image Rotator Version 3.8 ."
1288
  msgstr ""
1289
 
1290
+ #: ../admin/settings.php:436
1291
  msgid "See more information for the Flash Player on the web page"
1292
  msgstr ""
1293
 
1294
+ #: ../admin/settings.php:439
1295
  msgid "Default size (W x H)"
1296
  msgstr ""
1297
 
1298
+ #: ../admin/settings.php:444
1299
  msgid "Shuffle mode"
1300
  msgstr ""
1301
 
1302
+ #: ../admin/settings.php:448
1303
  msgid "Show next image on click"
1304
  msgstr ""
1305
 
1306
+ #: ../admin/settings.php:452
1307
  msgid "Show navigation bar"
1308
  msgstr ""
1309
 
1310
+ #: ../admin/settings.php:456
1311
  msgid "Show loading icon"
1312
  msgstr ""
1313
 
1314
+ #: ../admin/settings.php:460
1315
  msgid "Stretch image"
1316
  msgstr ""
1317
 
1318
+ #: ../admin/settings.php:463
1319
  msgid "true"
1320
  msgstr ""
1321
 
1322
+ #: ../admin/settings.php:464
1323
  msgid "false"
1324
  msgstr ""
1325
 
1326
+ #: ../admin/settings.php:465
1327
  msgid "fit"
1328
  msgstr ""
1329
 
1330
+ #: ../admin/settings.php:471
1331
  msgid "Duration time"
1332
  msgstr ""
1333
 
1334
+ #: ../admin/settings.php:472
1335
  msgid "sec."
1336
  msgstr ""
1337
 
1338
+ #: ../admin/settings.php:475
1339
  msgid "Transition / Fade effect"
1340
  msgstr ""
1341
 
1342
+ #: ../admin/settings.php:478
1343
  msgid "fade"
1344
  msgstr ""
1345
 
1346
+ #: ../admin/settings.php:479
1347
  msgid "bgfade"
1348
  msgstr ""
1349
 
1350
+ #: ../admin/settings.php:480
1351
+ msgid "slowfade"
1352
+ msgstr ""
1353
+
1354
+ #: ../admin/settings.php:481
1355
  msgid "circles"
1356
  msgstr ""
1357
 
1358
+ #: ../admin/settings.php:482
1359
+ msgid "bubbles"
1360
+ msgstr ""
1361
+
1362
+ #: ../admin/settings.php:483
1363
  msgid "blocks"
1364
  msgstr ""
1365
 
1366
+ #: ../admin/settings.php:484
1367
  msgid "fluids"
1368
  msgstr ""
1369
 
1370
+ #: ../admin/settings.php:485
1371
  msgid "lines"
1372
  msgstr ""
1373
 
1374
+ #: ../admin/settings.php:486
1375
  msgid "random"
1376
  msgstr ""
1377
 
1378
+ #: ../admin/settings.php:490
1379
+ msgid "Use slow zooming effect"
1380
+ msgstr ""
1381
+
1382
+ #: ../admin/settings.php:494
1383
  msgid "Background Color"
1384
  msgstr ""
1385
 
1386
+ #: ../admin/settings.php:499
1387
  msgid "Texts / Buttons Color"
1388
  msgstr ""
1389
 
1390
+ #: ../admin/settings.php:504
1391
  msgid "Rollover / Active Color"
1392
  msgstr ""
1393
 
1394
+ #: ../admin/settings.php:509
1395
+ msgid "Try XHTML validation (with CDATA)"
1396
+ msgstr ""
1397
+
1398
+ #: ../admin/settings.php:511
1399
+ msgid "Important : Could causes problem at some browser. Please recheck your page."
1400
+ msgstr ""
1401
+
1402
  #: ../admin/setup.php:10
1403
  msgid "Reset all settings to default parameter"
1404
  msgstr ""
lib/thumbnail.inc.php CHANGED
@@ -679,7 +679,7 @@ class ngg_Thumbnail {
679
  function gatherImageMeta() {
680
  //only attempt to retrieve info if exif exists
681
  if(function_exists("exif_read_data") && $this->format == 'JPG') {
682
- $imageData = exif_read_data($this->fileName);
683
  if(isset($imageData['Make']))
684
  $this->imageMeta['make'] = ucwords(strtolower($imageData['Make']));
685
  if(isset($imageData['Model']))
679
  function gatherImageMeta() {
680
  //only attempt to retrieve info if exif exists
681
  if(function_exists("exif_read_data") && $this->format == 'JPG') {
682
+ $imageData = @exif_read_data($this->fileName);
683
  if(isset($imageData['Make']))
684
  $this->imageMeta['make'] = ucwords(strtolower($imageData['Make']));
685
  if(isset($imageData['Model']))
nggallery.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: NextGEN Gallery
4
  Plugin URI: http://alexrabe.boelinger.com/?page_id=80
5
  Description: A NextGENeration Photo gallery for the WEB2.0(beta).
6
  Author: NextGEN DEV-Team
7
- Version: 0.43a
8
 
9
  Author URI: http://alexrabe.boelinger.com/
10
 
@@ -38,11 +38,14 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
38
 
39
  global $wpdb, $wp_version;
40
 
 
 
 
41
  //This works only in WP2.1 or higher
42
  if (version_compare($wp_version, '2.1', '>=')) {
43
 
44
  // Version and path to check version
45
- define('NGGVERSION', "0.43");
46
  define('NGGURL', "http://nextgen.boelinger.com/version.php");
47
 
48
  // define URL
@@ -52,13 +55,17 @@ define('NGGFOLDER', dirname(plugin_basename(__FILE__)));
52
  define('NGGALLERY_ABSPATH', $myabspath.'wp-content/plugins/' . NGGFOLDER .'/');
53
  define('NGGALLERY_URLPATH', get_option('siteurl').'/wp-content/plugins/' . NGGFOLDER.'/');
54
 
 
 
 
 
55
  // look for imagerotator
56
  define('NGGALLERY_IREXIST', file_exists(NGGALLERY_ABSPATH.'imagerotator.swf'));
57
 
58
  // get value for safe mode
59
  if ((gettype(ini_get('safe_mode')) == 'string')) {
60
  // if sever did in in a other way
61
- if (ini_get('safe_mode') == 'on') define('SAFE_MODE', TRUE);
62
  else define('SAFE_MODE', ini_get('safe_mode'));
63
  } else
64
  define('SAFE_MODE', ini_get('safe_mode'));
@@ -74,7 +81,7 @@ $wpdb->nggalbum = $wpdb->prefix . 'ngg_album';
74
  // Load language
75
  function nggallery_init ()
76
  {
77
- load_plugin_textdomain('nggallery','wp-content/plugins/' . NGGFOLDER.'/lang');
78
  }
79
 
80
  // Load admin panel
@@ -82,36 +89,34 @@ include_once ("ngginstall.php");
82
  include_once ("nggfunctions.php");
83
  include_once ("admin/admin.php");
84
 
85
- // add header to theme
86
- function integrate_nggheader() {
87
- global $ngg_options;
 
 
88
  echo "<meta name='NextGEN' content='".NGGVERSION."' />\n";
89
- echo "\n".'<style type="text/css" media="screen">@import "'.NGGALLERY_URLPATH.'css/'.$ngg_options[CSSfile].'";</style>';
 
90
  if ($ngg_options[thumbEffect] == "thickbox") {
91
- echo "\n".'<script type="text/javascript" src="'.NGGALLERY_URLPATH.'admin/js/jquery.js"></script>';
92
- //TODO: select v2 or v3 via option
93
- echo "\n".'<script type="text/javascript"> var tb_pathToImage = "'.NGGALLERY_URLPATH.'thickbox/loadingAnimationv2.gif";</script>';
94
- echo "\n".'<script type="text/javascript" src="'.NGGALLERY_URLPATH.'thickbox/thickbox.js"></script>';
95
- echo "\n".'<style type="text/css" media="screen">@import "'.NGGALLERY_URLPATH.'thickbox/thickbox.css";</style>'."\n";
 
 
 
 
 
 
96
  }
97
- if (!function_exists('integrate_swfobject'))
98
- echo "\n".'<script type="text/javascript" src="'.NGGALLERY_URLPATH.'js/swfobject.js'.'"></script>'."\n";
99
- }
100
- // Filter hook to activate CSS in header
101
- if ($ngg_options[activateCSS]) add_filter('wp_head', 'integrate_nggheader');
102
-
103
- add_action('admin_head', 'ngg_nocache');
104
- // add header to theme
105
- function ngg_nocache() {
106
- echo "\n".'<meta name="NextGEN" content="'.NGGVERSION.'" />';
107
- echo "\n".'<meta http-equiv="pragma" content="no-cache" />'."\n";
108
  }
109
 
110
  // load language file
111
  add_action('init', 'nggallery_init');
112
 
113
  add_action('activate_' . NGGFOLDER.'/nggallery.php', 'ngg_install');
114
- // init wpTable in wp-database if plugin is activated
115
  function ngg_install() {
116
  nggallery_install();
117
  }
4
  Plugin URI: http://alexrabe.boelinger.com/?page_id=80
5
  Description: A NextGENeration Photo gallery for the WEB2.0(beta).
6
  Author: NextGEN DEV-Team
7
+ Version: 0.50a
8
 
9
  Author URI: http://alexrabe.boelinger.com/
10
 
38
 
39
  global $wpdb, $wp_version;
40
 
41
+ // ini_set('display_errors', '1');
42
+ // ini_set('error_reporting', E_ALL);
43
+
44
  //This works only in WP2.1 or higher
45
  if (version_compare($wp_version, '2.1', '>=')) {
46
 
47
  // Version and path to check version
48
+ define('NGGVERSION', "0.50");
49
  define('NGGURL', "http://nextgen.boelinger.com/version.php");
50
 
51
  // define URL
55
  define('NGGALLERY_ABSPATH', $myabspath.'wp-content/plugins/' . NGGFOLDER .'/');
56
  define('NGGALLERY_URLPATH', get_option('siteurl').'/wp-content/plugins/' . NGGFOLDER.'/');
57
 
58
+ // Permission settings
59
+ define('NGGFOLDER_PERMISSION', 0777);
60
+ define('NGGFILE_PERMISSION', 0666);
61
+
62
  // look for imagerotator
63
  define('NGGALLERY_IREXIST', file_exists(NGGALLERY_ABSPATH.'imagerotator.swf'));
64
 
65
  // get value for safe mode
66
  if ((gettype(ini_get('safe_mode')) == 'string')) {
67
  // if sever did in in a other way
68
+ if (ini_get('safe_mode') == 'off') define('SAFE_MODE', FALSE);
69
  else define('SAFE_MODE', ini_get('safe_mode'));
70
  } else
71
  define('SAFE_MODE', ini_get('safe_mode'));
81
  // Load language
82
  function nggallery_init ()
83
  {
84
+ load_plugin_textdomain('nggallery','wp-content/plugins/' . NGGFOLDER.'/lang');
85
  }
86
 
87
  // Load admin panel
89
  include_once ("nggfunctions.php");
90
  include_once ("admin/admin.php");
91
 
92
+ // add javascript to header
93
+ add_action('wp_head', 'ngg_addjs', 1);
94
+ function ngg_addjs() {
95
+ global $wp_version, $ngg_options;
96
+
97
  echo "<meta name='NextGEN' content='".NGGVERSION."' />\n";
98
+ if ($ngg_options[activateCSS])
99
+ echo "\n".'<style type="text/css" media="screen">@import "'.NGGALLERY_URLPATH.'css/'.$ngg_options[CSSfile].'";</style>';
100
  if ($ngg_options[thumbEffect] == "thickbox") {
101
+ echo "\n".'<script type="text/javascript"> var tb_pathToImage = "'.NGGALLERY_URLPATH.'thickbox/'.$ngg_options[thickboxImage].'";</script>';
102
+ echo "\n".'<style type="text/css" media="screen">@import "'.NGGALLERY_URLPATH.'thickbox/thickbox.css";</style>'."\n";
103
+ if ($wp_version < "2.2") {
104
+ wp_enqueue_script('jquery', NGGALLERY_URLPATH .'admin/js/jquery.js', FALSE, '1.1.2');
105
+ }
106
+ wp_enqueue_script('thickbox', NGGALLERY_URLPATH .'thickbox/thickbox-pack.js', array('jquery'), '3.0.1');
107
+ }
108
+
109
+ // test for wordtube function
110
+ if (!function_exists('integrate_swfobject')) {
111
+ wp_enqueue_script('swfobject', NGGALLERY_URLPATH .'js/swfobject.js', FALSE, '1.5');
112
  }
 
 
 
 
 
 
 
 
 
 
 
113
  }
114
 
115
  // load language file
116
  add_action('init', 'nggallery_init');
117
 
118
  add_action('activate_' . NGGFOLDER.'/nggallery.php', 'ngg_install');
119
+ // init tables in wp-database if plugin is activated
120
  function ngg_install() {
121
  nggallery_install();
122
  }
nggfunctions.php CHANGED
@@ -66,8 +66,8 @@ function searchnggallerytags($content) {
66
  if($galleryID) {
67
  $search = $matches[0][$key];
68
  // get the size if they are set
69
- $ssWidth = $matches[3][$key];
70
- $ssHeight = $matches[5][$key];
71
  $replace= nggShowSlideshow($galleryID,$irWidth,$irHeight);
72
  $content= str_replace ($search, $replace, $content);
73
  }
@@ -88,10 +88,10 @@ function nggShowSlideshow($galleryID,$irWidth,$irHeight) {
88
  if (empty($irHeight)) $irHeight = $ngg_options[irHeight];
89
 
90
  $replace .= "\n".'<div class="slideshow" id="ngg_slideshow'.$galleryID.'">';
91
- $replace .= '<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see the slideshow.</p>';
92
  $replace .= "\n\t".'<script type="text/javascript">';
93
- // $replace .= "\n\t".'<!--';
94
- $replace .= "\n\t".'//<![CDATA[';
95
  $replace .= "\n\t\t".'var so = new SWFObject("'.NGGALLERY_URLPATH.'imagerotator.swf", "ngg_slideshow'.$galleryID.'", "'.$irWidth.'", "'.$irHeight.'", "7", "#'.$ngg_options[irBackcolor].'");';
96
  $replace .= "\n\t\t".'so.addParam("wmode", "opaque");';
97
  $replace .= "\n\t\t".'so.addVariable("file", "'.NGGALLERY_URLPATH.'nggextractXML.php?gid='.$galleryID.'");';
@@ -99,19 +99,19 @@ function nggShowSlideshow($galleryID,$irWidth,$irHeight) {
99
  if ($ngg_options[irLinkfromdisplay]) $replace .= "\n\t\t".'so.addVariable("linkfromdisplay", "false");';
100
  if ($ngg_options[irShownavigation]) $replace .= "\n\t\t".'so.addVariable("shownavigation", "true");';
101
  if ($ngg_options[irShowicons]) $replace .= "\n\t\t".'so.addVariable("showicons", "true");';
 
102
  $replace .= "\n\t\t".'so.addVariable("overstretch", "'.$ngg_options[irOverstretch].'");';
103
  $replace .= "\n\t\t".'so.addVariable("backcolor", "0x'.$ngg_options[irBackcolor].'");';
104
  $replace .= "\n\t\t".'so.addVariable("frontcolor", "0x'.$ngg_options[irFrontcolor].'");';
105
  $replace .= "\n\t\t".'so.addVariable("lightcolor", "0x'.$ngg_options[irLightcolor].'");';
106
  $replace .= "\n\t\t".'so.addVariable("rotatetime", "'.$ngg_options[irRotatetime].'");';
107
- $replace .= "\n\t\t".'so.addVariable("transition", "'.$ngg_options[irTransition].'");';
108
  $replace .= "\n\t\t".'so.addVariable("width", "'.$irWidth.'");';
109
  $replace .= "\n\t\t".'so.addVariable("height", "'.$irHeight.'");';
110
  $replace .= "\n\t\t".'so.write("ngg_slideshow'.$galleryID.'");';
111
- $replace .= "\n\t".'//]]>';
112
- // $replace .= "\n\t".'-->';
113
  $replace .= "\n\t".'</script>';
114
- $replace .= '</div>'."\n";
115
 
116
  return $replace;
117
  }
@@ -219,7 +219,7 @@ function nggShowGallery($galleryID) {
219
  );
220
  $gallerycontent .= '<div class="ngg-gallery-thumbnail-box">'."\n\t";
221
  $gallerycontent .= '<div class="ngg-gallery-thumbnail">'."\n\t";
222
- $gallerycontent .= '<a href="'.$folder_url.$picturefile.'" title="'.$picture->alttext.'" '.$thumbcode.' >';
223
  $gallerycontent .= '<img title="'.$picture->alttext.'" alt="'.$picture->alttext.'" src="'.$thumbnailURL.$thumb_prefix.$picture->filename.'" '.$thumbsize.' />';
224
  $gallerycontent .= '</a>'."\n".'</div>'."\n".'</div>'."\n";
225
  }
@@ -326,7 +326,7 @@ function nggSinglePicture($imageID,$width=250,$height=250,$mode="",$float="") {
326
  if ($ngg_options[thumbEffect] == "highslide") $thumbcode = str_replace("%GALLERY_NAME%", "'".$act_gallery->name."'", $thumbcode);
327
  else $thumbcode = str_replace("%GALLERY_NAME%", $act_gallery->name, $thumbcode);
328
 
329
- $link = '<a href="'.$folder_url.$picture->filename.'" title="'.$picture->alttext.'" '.$thumbcode.' >';
330
  }
331
 
332
  // add float to img
66
  if($galleryID) {
67
  $search = $matches[0][$key];
68
  // get the size if they are set
69
+ $irWidth = $matches[3][$key];
70
+ $irHeight = $matches[5][$key];
71
  $replace= nggShowSlideshow($galleryID,$irWidth,$irHeight);
72
  $content= str_replace ($search, $replace, $content);
73
  }
88
  if (empty($irHeight)) $irHeight = $ngg_options[irHeight];
89
 
90
  $replace .= "\n".'<div class="slideshow" id="ngg_slideshow'.$galleryID.'">';
91
+ $replace .= '<p>The <a href="http://www.macromedia.com/go/getflashplayer">Flash Player</a> and <a href="http://www.mozilla.com/firefox/">a browser with Javascript support</a> are needed..</p></div>';
92
  $replace .= "\n\t".'<script type="text/javascript">';
93
+ if ($ngg_options[irXHTMLvalid]) $replace .= "\n\t".'<!--';
94
+ if ($ngg_options[irXHTMLvalid]) $replace .= "\n\t".'//<![CDATA[';
95
  $replace .= "\n\t\t".'var so = new SWFObject("'.NGGALLERY_URLPATH.'imagerotator.swf", "ngg_slideshow'.$galleryID.'", "'.$irWidth.'", "'.$irHeight.'", "7", "#'.$ngg_options[irBackcolor].'");';
96
  $replace .= "\n\t\t".'so.addParam("wmode", "opaque");';
97
  $replace .= "\n\t\t".'so.addVariable("file", "'.NGGALLERY_URLPATH.'nggextractXML.php?gid='.$galleryID.'");';
99
  if ($ngg_options[irLinkfromdisplay]) $replace .= "\n\t\t".'so.addVariable("linkfromdisplay", "false");';
100
  if ($ngg_options[irShownavigation]) $replace .= "\n\t\t".'so.addVariable("shownavigation", "true");';
101
  if ($ngg_options[irShowicons]) $replace .= "\n\t\t".'so.addVariable("showicons", "true");';
102
+ if ($ngg_options[irKenburns]) $replace .= "\n\t\t".'so.addVariable("kenburns", "true");';
103
  $replace .= "\n\t\t".'so.addVariable("overstretch", "'.$ngg_options[irOverstretch].'");';
104
  $replace .= "\n\t\t".'so.addVariable("backcolor", "0x'.$ngg_options[irBackcolor].'");';
105
  $replace .= "\n\t\t".'so.addVariable("frontcolor", "0x'.$ngg_options[irFrontcolor].'");';
106
  $replace .= "\n\t\t".'so.addVariable("lightcolor", "0x'.$ngg_options[irLightcolor].'");';
107
  $replace .= "\n\t\t".'so.addVariable("rotatetime", "'.$ngg_options[irRotatetime].'");';
108
+ $replace .= "\n\t\t".'so.addVariable("transition", "'.$ngg_options[irTransition].'");';
109
  $replace .= "\n\t\t".'so.addVariable("width", "'.$irWidth.'");';
110
  $replace .= "\n\t\t".'so.addVariable("height", "'.$irHeight.'");';
111
  $replace .= "\n\t\t".'so.write("ngg_slideshow'.$galleryID.'");';
112
+ if ($ngg_options[irXHTMLvalid]) $replace .= "\n\t".'//]]>';
113
+ if ($ngg_options[irXHTMLvalid]) $replace .= "\n\t".'-->';
114
  $replace .= "\n\t".'</script>';
 
115
 
116
  return $replace;
117
  }
219
  );
220
  $gallerycontent .= '<div class="ngg-gallery-thumbnail-box">'."\n\t";
221
  $gallerycontent .= '<div class="ngg-gallery-thumbnail">'."\n\t";
222
+ $gallerycontent .= '<a href="'.$folder_url.$picturefile.'" title="'.$picture->description.'" '.$thumbcode.' >';
223
  $gallerycontent .= '<img title="'.$picture->alttext.'" alt="'.$picture->alttext.'" src="'.$thumbnailURL.$thumb_prefix.$picture->filename.'" '.$thumbsize.' />';
224
  $gallerycontent .= '</a>'."\n".'</div>'."\n".'</div>'."\n";
225
  }
326
  if ($ngg_options[thumbEffect] == "highslide") $thumbcode = str_replace("%GALLERY_NAME%", "'".$act_gallery->name."'", $thumbcode);
327
  else $thumbcode = str_replace("%GALLERY_NAME%", $act_gallery->name, $thumbcode);
328
 
329
+ $link = '<a href="'.$folder_url.$picture->filename.'" title="'.$picture->description.'" '.$thumbcode.' >';
330
  }
331
 
332
  // add float to img
ngginstall.php CHANGED
@@ -103,6 +103,7 @@ function ngg_default_options() {
103
  // Thumbnail Effect
104
  $ngg_options[thumbEffect] = "thickbox"; // select effect
105
  $ngg_options[thumbCode] = "class=\"thickbox\" rel=\"%GALLERY_NAME%\"";
 
106
 
107
  // Watermark settings
108
  $ngg_options[wmPos] = "botRight"; // Postion
@@ -117,6 +118,8 @@ function ngg_default_options() {
117
  $ngg_options[wmOpaque] = "100"; // Font Opaque
118
 
119
  // Image Rotator settings
 
 
120
  $ngg_options[irWidth] = 320;
121
  $ngg_options[irHeight] = 240;
122
  $ngg_options[irShuffle] = true;
@@ -126,6 +129,7 @@ function ngg_default_options() {
126
  $ngg_options[irOverstretch] = "true";
127
  $ngg_options[irRotatetime] = 10;
128
  $ngg_options[irTransition] = "random";
 
129
  $ngg_options[irBackcolor] = "000000";
130
  $ngg_options[irFrontcolor] = "FFFFFF";
131
  $ngg_options[irLightcolor] = "CC0000";
103
  // Thumbnail Effect
104
  $ngg_options[thumbEffect] = "thickbox"; // select effect
105
  $ngg_options[thumbCode] = "class=\"thickbox\" rel=\"%GALLERY_NAME%\"";
106
+ $ngg_options[thickboxImage] = "loadingAnimationv3.gif"; // thickbox Loading Image
107
 
108
  // Watermark settings
109
  $ngg_options[wmPos] = "botRight"; // Postion
118
  $ngg_options[wmOpaque] = "100"; // Font Opaque
119
 
120
  // Image Rotator settings
121
+
122
+ $ngg_options[irXHTMLvalid] = false;
123
  $ngg_options[irWidth] = 320;
124
  $ngg_options[irHeight] = 240;
125
  $ngg_options[irShuffle] = true;
129
  $ngg_options[irOverstretch] = "true";
130
  $ngg_options[irRotatetime] = 10;
131
  $ngg_options[irTransition] = "random";
132
+ $ngg_options[irKenburns] = false;
133
  $ngg_options[irBackcolor] = "000000";
134
  $ngg_options[irFrontcolor] = "FFFFFF";
135
  $ngg_options[irLightcolor] = "CC0000";
nggwidget.php CHANGED
@@ -1,278 +1,644 @@
1
- <?php
2
- /*
3
- Plugin Name: NextGEN Gallery Widget
4
- Description: Adds a sidebar widget to see random images in your NextGEN Gallery!
5
- Author: KeViN
6
- Version: 0.91b
7
- Author URI: http://www.kev.hu
8
- Plugin URI: http://www.kev.hu
9
-
10
- This program is free software; you can redistribute it and/or modify
11
- it under the terms of the GNU General Public License as published by
12
- the Free Software Foundation; either version 2 of the License, or
13
- (at your option) any later version.
14
-
15
- This program is distributed in the hope that it will be useful,
16
- but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- GNU General Public License for more details.
19
-
20
- You should have received a copy of the GNU General Public License
21
- along with this program; if not, write to the Free Software
22
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
-
24
- */
25
-
26
- function getCSVValues($string,$separator=",")
27
- {
28
- $string = str_replace('""', "'", $string);
29
- // split the string at double quotes "
30
- $bits = explode('"',$string);
31
- $elements = array();
32
- for ( $i=0; $i < count($bits) ; $i++ ) {
33
- /*
34
- odd numbered elements would have been
35
- enclosed by double quotes
36
- even numbered elements would not have been
37
- */
38
- if (($i%2) == 1) {
39
- /* if the element number is odd add the
40
- whole string to the output array */
41
- $elements[] = $bits[$i];
42
- } else
43
- {
44
- /* otherwise split the unquoted stuff at commas
45
- and add the elements to the array */
46
- $rest = $bits[$i];
47
- $rest = preg_replace("/^".$separator."/","",$rest);
48
- $rest = preg_replace("/".$separator."$/","",$rest);
49
- $elements = array_merge($elements,explode($separator,$rest));
50
- }
51
- }
52
- return $elements;
53
- }
54
-
55
- function widget_nextgenimage_init() {
56
-
57
- // Check for the required plugin functions. This will prevent fatal
58
- // errors occurring when you deactivate the dynamic-sidebar plugin.
59
- if ( !function_exists('register_sidebar_widget') )
60
- return;
61
-
62
- // This is the function that outputs our little Google search form.
63
- function widget_nextgenimage($args) {
64
-
65
- // $args is an array of strings that help widgets to conform to
66
- // the active theme: before_widget, before_title, after_widget,
67
- // and after_title are the array keys. Default tags: li and h2.
68
- extract($args);
69
-
70
- // Each widget can store its own options. We keep strings here.
71
- $options = get_option('widget_NextGenimage');
72
- $title = $options['title'];
73
- $number = $options['number'];
74
- $sizeX = $options['sizeX'];
75
- $sizeY = $options['sizeY'];
76
- $mode = $options['mode'];
77
- // $border = $options['border'];
78
- // $bordercolor = $options['bordercolor'];
79
- // $margin = $options['margin'];
80
-
81
- $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
82
- $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
83
- $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
84
-
85
- //origy ngg options
86
- $ngg_options = get_option('ngg_options');
87
-
88
- // get the effect code
89
- if ($ngg_options[thumbEffect] != "none") $thumbcode = stripslashes($ngg_options[thumbCode]);
90
- if ($ngg_options[thumbEffect] == "highslide") $thumbcode = str_replace("%GALLERY_NAME%", "'sidebar'", $thumbcode);
91
- else $thumbcode = str_replace("%GALLERY_NAME%", "sidebar", $thumbcode);
92
-
93
- // checking display status (category or home)
94
- $show_widget = false;
95
-
96
- // Make array for checking the categories
97
- $categorieslist = getCSVValues($categorylist,',');
98
-
99
- // Denied list -> enable everywhere and make false if found!
100
- if (($showcategory == "denied")) {
101
- $show_widget = true;
102
- foreach((get_the_category()) as $cat)
103
- { if ((in_array($cat->cat_ID , $categorieslist)))
104
- $show_widget = false;
105
- }
106
- }
107
-
108
- // Allow list -> false is the default -> enable if found
109
- if (($showcategory == "allow"))
110
- foreach((get_the_category()) as $cat)
111
- { if ((in_array($cat->cat_ID , $categorieslist)))
112
- $show_widget = true;
113
- }
114
-
115
- // All categories -> if it's not the home -> enable
116
- if (($showcategory == "all"))
117
- if ((is_home() != true))
118
- $show_widget = true;
119
-
120
-
121
- // Home page -> If yes -> enable
122
- if (($showinhome == "yes"))
123
- if ((is_home()))
124
- $show_widget = true;
125
-
126
- // here comes the display (v.08)
127
-
128
- // These lines generate our output. Widgets can be very complex
129
- // but as you can see here, they can also be very, very simple.
130
- $url_parts = parse_url(get_bloginfo('home'));
131
-
132
- // Null parameters check
133
- if ( ($number == '') ) $number = 2;
134
- if ( ($sizeX == '') ) $sizeX = 100;
135
- if ( ($sizeY == '') ) $sizeY = 75;
136
- // if ( ($border == '') ) $border = 0;
137
- // if ( ($bordercolor == '') ) $bordercolor = "#dadada";
138
- // if ( ($margin == '') ) $margin = 5;
139
-
140
- if ($show_widget) {
141
-
142
- echo $before_widget . $before_title . $title . $after_title;
143
- echo "\n".'<div class="ngg-widget"><ul class="ngg-randomlist">'."\n";
144
-
145
- for ($i=1; $i<=$number; $i++) {
146
-
147
- global $wpdb;
148
-
149
- // Get a random image from the database
150
- $imageID = $wpdb->get_var("SELECT pid FROM $wpdb->nggpictures ORDER by rand() limit 1");
151
-
152
- //if web20
153
- if ( ($mode == 'web20') ) {
154
- echo '<li><a href="'.ngg_get_image_url($imageID).'" title="" '.$thumbcode.'>';
155
- echo '<img src="'.NGGALLERY_URLPATH.'nggshow.php?pid='.$imageID.'&amp;width='.$sizeX.'&amp;height='.$sizeY.'&amp;mode=web20" />';
156
- echo '</a></li>'."\n";
157
- }
158
- else {
159
- echo '<li><a href="'.ngg_get_image_url($imageID).'" title="" '.$thumbcode.'>';
160
- echo '<img src="'.ngg_get_thumbnail_url($imageID).'" style="width:'.$sizeX.'px;height:'.$sizeY.'px;" />';
161
- echo '</a></li>'."\n";
162
- }
163
-
164
- //echo '</div>'."\n";
165
- }
166
-
167
- echo '</ul></div>'."\n";
168
- // echo '<div style="clear:both;"></div>'."\n";
169
- echo $after_widget;
170
- }
171
- }
172
-
173
- /**
174
- * @desc Output of plugin�s editform in te adminarea
175
- * @author KeViN
176
- */
177
-
178
- function widget_nextgenimage_control($number=1) {
179
-
180
- $options = get_option('widget_NextGenimage');
181
-
182
- if ( !is_array($options) )
183
- $options = array('title'=>'', 'buttontext'=>__('NextGEN Random Image','nggallery'));
184
-
185
- if ( $_POST['nextgen-submit'] ) {
186
- // Remember to sanitize and format use input appropriately.
187
- $options = "";
188
- $options['title'] = strip_tags(stripslashes($_POST['nextgen-title']));
189
- $options['number'] = strip_tags(stripslashes($_POST['nextgen-number']));
190
- $options['sizeX'] = /* 90; */ strip_tags(stripslashes($_POST['nextgen-sizeX']));
191
- $options['sizeY'] = /* 90; */ strip_tags(stripslashes($_POST['nextgen-sizeY']));
192
- $options['mode'] = /* "web20" ; */ strip_tags(stripslashes($_POST['nextgen-mode']));
193
- // $options['border'] = strip_tags(stripslashes($_POST['nextgen-border']));
194
- // $options['bordercolor'] = strip_tags(stripslashes($_POST['nextgen-bordercolor']));
195
- // $options['margin'] = strip_tags(stripslashes($_POST['nextgen-margin']));
196
-
197
- // Category controll (v0.8b)
198
- $options['showinhome'] = strip_tags(stripslashes($_POST['nextgen-showinhome']));
199
- $options['showcategory'] = strip_tags(stripslashes($_POST['nextgen-showcategory']));
200
- $options['categorylist'] = strip_tags(stripslashes($_POST['nextgen-categorylist']));
201
- update_option('widget_NextGenimage', $options);
202
- }
203
-
204
-
205
- // Be sure you format your options to be valid HTML attributes.
206
- $title = htmlspecialchars($options['title'], ENT_QUOTES);
207
- $number = htmlspecialchars($options['number'], ENT_QUOTES);
208
- $sizeX = htmlspecialchars($options['sizeX'], ENT_QUOTES);
209
- $sizeY = htmlspecialchars($options['sizeY'], ENT_QUOTES);
210
- $mode = htmlspecialchars($options['mode'], ENT_QUOTES);
211
- // $border = htmlspecialchars($options['border'], ENT_QUOTES);
212
- // $bordercolor = htmlspecialchars($options['bordercolor'], ENT_QUOTES);
213
- // $margin = htmlspecialchars($options['margin'], ENT_QUOTES);
214
-
215
- $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
216
- $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
217
- $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
218
- // Here comes the form
219
-
220
- echo'<p style="text-align:right;"><label for="nextgen-title">' . __('Title','nggallery') . ': <input style="width: 150px;" id="nextgen-title" name="nextgen-title" type="text" value="'.$title.'" /></label></p>';
221
-
222
- echo '<p style="text-align:right;"><label for="nextgen-number">' . __('Number of pics','nggallery').':';
223
- echo ' <select name="nextgen-number" size="1">';
224
- echo ' <option id="1" ';if (($number == 1)) echo 'selected="selected"'; echo ' value="1">1</option>';
225
- echo ' <option id="2" ';if (($number == 2)) echo 'selected="selected"'; echo ' value="2">2</option>';
226
- echo ' <option id="3" ';if (($number == 3)) echo 'selected="selected"'; echo ' value="3">3</option>';
227
- echo ' <option id="4" ';if (($number == 4)) echo 'selected="selected"'; echo ' value="4">4</option>';
228
- echo ' <option id="6" ';if (($number == 6)) echo 'selected="selected"'; echo ' value="6">6</option>';
229
- echo ' <option id="8" ';if (($number == 8)) echo 'selected="selected"'; echo ' value="8">8</option>';
230
- echo ' <option id="10" ';if (($number == 10)) echo 'selected="selected"'; echo ' value="10">10</option>';
231
- echo ' </select></label></p>';
232
-
233
- echo '<p style="text-align:right;"><label for="nextgen-sizeX">' . __('Width (px)','nggallery') . ': <input style="width: 150px;" id="nextgen-sizeX" name="nextgen-sizeX" type="text" value="'.$sizeX.'" /></label></p>';
234
-
235
- echo '<p style="text-align:right;"><label for="nextgen-sizeY">' . __('Height (px)','nggallery') . ': <input style="width: 150px;" id="nextgen-sizeY" name="nextgen-sizeY" type="text" value="'.$sizeY.'" /></label></p>';
236
-
237
- echo '<p style="text-align:right;"><label for="nextgen-number">' . __('Mode','nggallery').':';
238
- echo ' <select name="nextgen-mode" size="1">';
239
- echo ' <option id="none" ';if (($mode == "")) echo 'selected="selected"'; echo ' value="">'. __('none','nggallery').'</option>';
240
- echo ' <option id="web20" ';if (($mode == "web20")) echo 'selected="selected"'; echo ' value="web20">'. __('web2.0','nggallery').'</option>';
241
- echo ' </select></label></p>';
242
-
243
- // moved to CSS file
244
- // echo '<p style="text-align:right;"><label for="nextgen-border">' . __('Border (px):') . ' <input style="width: 150px;" id="nextgen-border" name="nextgen-border" type="text" value="'.$border.'" /></label></p>';
245
- // echo '<p style="text-align:right;"><label for="nextgen-bordercolor">' . __('Border color:') . ' <input style="width: 150px;" id="nextgen-bordercolor" name="nextgen-bordercolor" type="text" value="'.$bordercolor.'" /></label></p>';
246
- // echo '<p style="text-align:right;"><label for="nextgen-margin">' . __('Margin (px):') . ' <input style="width: 150px;" id="nextgen-margin" name="nextgen-margin" type="text" value="'.$margin.'" /></label></p>';
247
-
248
- // v0.8 - category control
249
- echo '<p style="text-align:right;"><label for="nextgen-showinhome">' . __('Show in the main page','nggallery').':';
250
- echo ' <select name="nextgen-showinhome" size="1">';
251
- echo ' <option id="1" ';if ($showinhome == "yes") echo 'selected="selected"'; echo ' value="yes" >'. __('yes','nggallery').'</option>';
252
- echo ' <option id="2" ';if ($showinhome == "no") echo 'selected="selected"'; echo ' value="no" >'. __('no','nggallery').'</option>';
253
- echo ' </select></label></p>';
254
-
255
- echo '<p style="text-align:right;"><label for="nextgen-showcategory">' . __('Show in','nggallery').':';
256
- echo ' <select name="nextgen-showcategory" size="1">';
257
- echo ' <option id="1" ';if (($showcategory == "all")) echo 'selected="selected"'; echo ' value="all" >'. __('All categories','nggallery').'</option>';
258
- echo ' <option id="2" ';if (($showcategory == "denied")) echo 'selected="selected"'; echo ' value="denied" >'. __('Only which are not listed','nggallery').'</option>';
259
- echo ' <option id="3" ';if (($showcategory == "allow")) echo 'selected="selected"'; echo ' value="allow" >'. __('Only which are listed','nggallery').'</option>';
260
- echo ' </select></label></p>';
261
-
262
- echo '<p style="text-align:right;"><label for="nextgen-categorylist">' . __('Categories (id (use , to seperate)','nggallery') . ': <input style="width: 150px;" id="nextgen-categorylist" name="nextgen-categorylist" type="text" value="'.$categorylist.'" /></label></p>';
263
-
264
-
265
- echo '<input type="hidden" id="nextgen-submit" name="nextgen-submit" value="1" />';
266
- }
267
-
268
-
269
- // This registers our widget so it appears with the other available
270
- // widgets and can be dragged and dropped into any active sidebars.
271
- register_sidebar_widget(array('NextGEN Random Image', 'widgets'), 'widget_nextgenimage');
272
- register_widget_control(array('NextGEN Random Image', 'widgets'), 'widget_nextgenimage_control', 300, 400);
273
- }
274
-
275
- // Run our code later in case this loads prior to any required plugins.
276
- add_action('widgets_init', 'widget_nextgenimage_init');
277
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: NextGEN Gallery Widget
4
+ Description: Adds a sidebar widget support to your NextGEN Gallery!
5
+ Author: KeViN
6
+ Version: 0.98b
7
+ Author URI: http://www.kev.hu
8
+ Plugin URI: http://www.kev.hu
9
+
10
+ This program is free software; you can redistribute it and/or modify
11
+ it under the terms of the GNU General Public License as published by
12
+ the Free Software Foundation; either version 2 of the License, or
13
+ (at your option) any later version.
14
+
15
+ This program is distributed in the hope that it will be useful,
16
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+ GNU General Public License for more details.
19
+
20
+ You should have received a copy of the GNU General Public License
21
+ along with this program; if not, write to the Free Software
22
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
+
24
+ */
25
+
26
+ function getCSVValues($string,$separator=",")
27
+ {
28
+ $string = str_replace('""', "'", $string);
29
+ // split the string at double quotes "
30
+ $bits = explode('"',$string);
31
+ $elements = array();
32
+ for ( $i=0; $i < count($bits) ; $i++ ) {
33
+ /*
34
+ odd numbered elements would have been
35
+ enclosed by double quotes
36
+ even numbered elements would not have been
37
+ */
38
+ if (($i%2) == 1) {
39
+ /* if the element number is odd add the
40
+ whole string to the output array */
41
+ $elements[] = $bits[$i];
42
+ } else
43
+ {
44
+ /* otherwise split the unquoted stuff at commas
45
+ and add the elements to the array */
46
+ $rest = $bits[$i];
47
+ $rest = preg_replace("/^".$separator."/","",$rest);
48
+ $rest = preg_replace("/".$separator."$/","",$rest);
49
+ $elements = array_merge($elements,explode($separator,$rest));
50
+ }
51
+ }
52
+ return $elements;
53
+ }
54
+
55
+ /**********************************************************/
56
+ /* Slidehow widget function
57
+ /**********************************************************/
58
+ function nggSlideshowWidget($galleryID,$irWidth,$irHeight) {
59
+
60
+ global $wpdb;
61
+ $ngg_options = get_option('ngg_options');
62
+
63
+ if (empty($irWidth) ) $irWidth = $ngg_options[irWidth];
64
+ if (empty($irHeight)) $irHeight = $ngg_options[irHeight];
65
+
66
+ $replace .= "\n".'<div class="ngg-widget-slideshow" id="ngg_widget_slideshow'.$galleryID.'">';
67
+ $replace .= '<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see the slideshow.</div>';
68
+ $replace .= "\n\t".'<script type="text/javascript">';
69
+ $replace .= "\n\t".'<!--';
70
+ $replace .= "\n\t".'//<![CDATA[';
71
+ $replace .= "\n\t\t".'var so = new SWFObject("'.NGGALLERY_URLPATH.'imagerotator.swf", "ngg_slideshow'.$galleryID.'", "'.$irWidth.'", "'.$irHeight.'", "7", "#'.$ngg_options[irBackcolor].'");';
72
+ $replace .= "\n\t\t".'so.addParam("wmode", "opaque");';
73
+ $replace .= "\n\t\t".'so.addVariable("file", "'.NGGALLERY_URLPATH.'nggextractXML.php?gid='.$galleryID.'");';
74
+ if (!$ngg_options[irShuffle]) $replace .= "\n\t\t".'so.addVariable("shuffle", "false");';
75
+ // if ($ngg_options[irLinkfromdisplay]) $replace .= "\n\t\t".'so.addVariable("linkfromdisplay", "false");';
76
+ // if ($ngg_options[irShownavigation]) $replace .= "\n\t\t".'so.addVariable("shownavigation", "true");';
77
+ if ($ngg_options[irShowicons]) $replace .= "\n\t\t".'so.addVariable("showicons", "true");';
78
+ $replace .= "\n\t\t".'so.addVariable("overstretch", "'.$ngg_options[irOverstretch].'");';
79
+ $replace .= "\n\t\t".'so.addVariable("backcolor", "0x'.$ngg_options[irBackcolor].'");';
80
+ $replace .= "\n\t\t".'so.addVariable("frontcolor", "0x'.$ngg_options[irFrontcolor].'");';
81
+ $replace .= "\n\t\t".'so.addVariable("lightcolor", "0x'.$ngg_options[irLightcolor].'");';
82
+ $replace .= "\n\t\t".'so.addVariable("rotatetime", "'.$ngg_options[irRotatetime].'");';
83
+ $replace .= "\n\t\t".'so.addVariable("transition", "'.$ngg_options[irTransition].'");';
84
+ $replace .= "\n\t\t".'so.addVariable("width", "'.$irWidth.'");';
85
+ $replace .= "\n\t\t".'so.addVariable("height", "'.$irHeight.'");';
86
+ $replace .= "\n\t\t".'so.write("ngg_widget_slideshow'.$galleryID.'");';
87
+ $replace .= "\n\t".'//]]>';
88
+ $replace .= "\n\t".'-->';
89
+ $replace .= "\n\t".'</script>';
90
+
91
+ echo $replace;
92
+ }
93
+
94
+
95
+ /**********************************************************/
96
+ /* Slidehow widget control
97
+ /**********************************************************/
98
+ function widget_ngg_slideshow() {
99
+
100
+ // Check for the required plugin functions.
101
+ if ( !function_exists('register_sidebar_widget') )
102
+ return;
103
+
104
+ function widget_show_ngg_slideshow($args) {
105
+
106
+ extract($args);
107
+
108
+ // Each widget can store its own options. We keep strings here.
109
+ $options = get_option('widget_nggslideshow');
110
+
111
+ // These lines generate our output.
112
+ echo $before_widget . $before_title . $options['title'] . $after_title;
113
+ $url_parts = parse_url(get_bloginfo('home'));
114
+ nggSlideshowWidget($options['galleryid'] , $options['width'] , $options['height']);
115
+ echo $after_widget;
116
+
117
+ }
118
+
119
+ // Admin section
120
+ function widget_control_ngg_slideshow() {
121
+ global $wpdb;
122
+ $options = get_option('widget_nggslideshow');
123
+ if ( !is_array($options) )
124
+ $options = array('title'=>'Slideshow', 'galleryid'=>'0','height'=>'120','width'=>'160',);
125
+
126
+ if ( $_POST['ngg-submit'] ) {
127
+
128
+ $options['title'] = strip_tags(stripslashes($_POST['ngg-title']));
129
+ $options['galleryid'] = $_POST['ngg-galleryid'];
130
+ $options['height'] = $_POST['ngg-height'];
131
+ $options['width'] = $_POST['ngg-width'];
132
+ update_option('widget_nggslideshow', $options);
133
+ }
134
+
135
+ $title = htmlspecialchars($options['title'], ENT_QUOTES);
136
+ $height = $options['height'];
137
+ $width = $options['width'];
138
+
139
+ // The Box content
140
+ echo '<p style="text-align:right;"><label for="ngg-title">' . __('Title:', 'nggallery') . ' <input style="width: 200px;" id="ngg-title" name="ngg-title" type="text" value="'.$title.'" /></label></p>';
141
+ echo '<p style="text-align:right;"><label for="ngg-galleryid">' . __('Select Gallery:', 'nggallery'). ' </label>';
142
+ echo '<select size="1" name="ngg-galleryid" id="ngg-galleryid">';
143
+ $tables = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY 'name' ASC ");
144
+ if($tables) {
145
+ foreach($tables as $table) {
146
+ echo '<option value="'.$table->gid.'" ';
147
+ if ($table->gid == $options['galleryid']) echo "selected='selected' ";
148
+ echo '>'.$table->name.'</option>'."\n\t";
149
+ }
150
+ }
151
+ echo '</select></p>';
152
+ echo '<p style="text-align:right;"><label for="ngg-height">' . __('Height:', 'nggallery') . ' <input style="width: 50px;" id="ngg-height" name="ngg-height" type="text" value="'.$height.'" /></label></p>';
153
+ echo '<p style="text-align:right;"><label for="ngg-width">' . __('Width:', 'nggallery') . ' <input style="width: 50px;" id="ngg-width" name="ngg-width" type="text" value="'.$width.'" /></label></p>';
154
+ echo '<input type="hidden" id="ngg-submit" name="ngg-submit" value="1" />';
155
+
156
+ }
157
+
158
+ register_sidebar_widget(array('NextGEN Slideshow', 'widgets'), 'widget_show_ngg_slideshow');
159
+ register_widget_control(array('NextGEN Slideshow', 'widgets'), 'widget_control_ngg_slideshow', 300, 200);
160
+ }
161
+
162
+ /*******************************************************/
163
+ /* DISPLAY FUNCTION TO THE RECENT & RANDOM IMAGES
164
+ /*******************************************************/
165
+ function nggDisplayImagesWidget($thumb,$number,$sizeX,$sizeY,$mode,$imgtype,$thumbcode) {
166
+
167
+
168
+ // Put your HTML code here if you want to personalize the image display!
169
+ $IMGbefore = ''; // NOT IN USE!
170
+ $IMGafter = ''; // NOT IN USE!
171
+
172
+ $Abefore = ''; // NOT IN USE!
173
+ $Aafter = ''; // NOT IN USE!
174
+
175
+ for ($i=1; $i<=$number; $i++) {
176
+
177
+ global $wpdb;
178
+
179
+ // Get a random image from the database
180
+ if (($imgtype == "random")) {
181
+ $imageID = $wpdb->get_var("SELECT pid FROM $wpdb->nggpictures ORDER by rand() limit 1");
182
+ }
183
+ else {
184
+ // Get the $i latest image from the database
185
+ $imageID = $wpdb->get_var("SELECT pid FROM $wpdb->nggpictures ORDER by pid DESC limit ".$i.",1");
186
+ }
187
+
188
+ // [0.97] new variable -> Set up the strings
189
+ $Astart = '<a href="'.ngg_get_image_url($imageID).'" title="" '.$thumbcode.'>';
190
+ $Aend = '</a>';
191
+
192
+
193
+ // Here comes the display
194
+ echo $Abefore;
195
+
196
+ // [0.95] new function -> Thumbnail or Normal image
197
+ if ( ($thumb == "false") ) {
198
+ // NORMAL IMAGE mode
199
+ if ( ($mode == 'web20') ) {
200
+ // [0.95] [deleted] -> <li> </li>
201
+ // [0.97] [edited] -> class="ngg-widget-img" -> id="ngg-widget-img"
202
+ // [0.98] [deleted] -> id="ngg-widget-img"
203
+ echo $Astart;
204
+ echo $IMGbefore.'<img src="'.NGGALLERY_URLPATH.'nggshow.php?pid='.$imageID.'&amp;width='.$sizeX.'&amp;height='.$sizeY.'&amp;mode=web20" />';
205
+ echo $Aend.$IMGafter."\n";
206
+ }
207
+ else {
208
+ // [0.95] [deleted] -> <li> </li>
209
+ // [0.97] [edited] -> class="ngg-widget-img" -> id="ngg-widget-img"
210
+ // [0.98] [deleted] -> id="ngg-widget-img"
211
+ echo $Astart;
212
+ echo $IMGbefore.'<img src="'.NGGALLERY_URLPATH.'nggshow.php?pid='.$imageID.'&amp;width='.$sizeX.'&amp;height='.$sizeY.'" />';
213
+ echo $Aend.$IMGafter."\n";
214
+ }
215
+ }
216
+ else {
217
+ // THUMBNAIL mode
218
+ //if web20
219
+ if ( ($mode == 'web20') ) {
220
+
221
+ // [0.95] [deleted] -> <li> </li>
222
+ // [0.95] [edited] -> class="ngg-widget-img"
223
+ echo $Astart;
224
+ // [0.95] [deleted] -> nggshow because it displays the ORIGYNAL picture and not the THUMBNAIL!
225
+ // [0.95] [new line] -> showreflection.php -> for the web20 thumbnail!
226
+ echo $IMGbefore.'<img src="'.NGGALLERY_URLPATH.'showreflection.php?pid='.$imageID.'&amp;width='.$sizeX.'&amp;height='.$sizeY.' />';
227
+ echo $Aend.$IMGafter."\n";
228
+ }
229
+ else {
230
+ echo $Astart;
231
+ echo $IMGbefore.'<img src="'.ngg_get_thumbnail_url($imageID).'" style="width:'.$sizeX.'px;height:'.$sizeY.'px;" />';
232
+ echo $Aend.$IMGafter."\n";
233
+ }
234
+ }
235
+
236
+ echo $Aafter;
237
+
238
+ }
239
+ }
240
+
241
+ /**********************************************************/
242
+ /* Recent widget
243
+ /**********************************************************/
244
+
245
+ /* HERE COMES THE RECENT IMAGE WIDGET */
246
+
247
+
248
+ function widget_ngg_recentimage() {
249
+
250
+ // Check for the required plugin functions. This will prevent fatal
251
+ // errors occurring when you deactivate the dynamic-sidebar plugin.
252
+ if ( !function_exists('register_sidebar_widget') )
253
+ return;
254
+
255
+ // This is the function that outputs our little widget...
256
+ function widget_nextgenrecentimage($args) {
257
+
258
+ // $args is an array of strings that help widgets to conform to
259
+ // the active theme: before_widget, before_title, after_widget,
260
+ // and after_title are the array keys.
261
+ extract($args);
262
+
263
+ // Each widget can store its own options. We keep strings here.
264
+ $options = get_option('widget_NextGenrecentimage');
265
+
266
+ $title = $options['title'];
267
+ $thumb = $options['thumb'];
268
+ $number = $options['number'];
269
+ $sizeX = $options['sizeX'];
270
+ $sizeY = $options['sizeY'];
271
+ $mode = $options['mode'];
272
+
273
+ $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
274
+ $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
275
+ $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
276
+
277
+ // [0.95] -> [add function -> imagetype (imgtype) -> random or recent
278
+ $imgtype = "recent"; //$options['imgtype'];
279
+
280
+ //origy ngg options
281
+ $ngg_options = get_option('ngg_options');
282
+
283
+ // get the effect code
284
+ if ($ngg_options[thumbEffect] != "none") $thumbcode = stripslashes($ngg_options[thumbCode]);
285
+ if ($ngg_options[thumbEffect] == "highslide") $thumbcode = str_replace("%GALLERY_NAME%", "'sidebar'", $thumbcode);
286
+ else $thumbcode = str_replace("%GALLERY_NAME%", "sidebar", $thumbcode);
287
+
288
+
289
+ $show_widget = false; // checking display status (category or home)
290
+ $categorieslist = getCSVValues($categorylist,','); // Make array for checking the categories
291
+
292
+ if (($showcategory == "denied")) { // Denied list -> enable everywhere and make false if found!
293
+ $show_widget = true;
294
+ foreach((get_the_category()) as $cat)
295
+ { if ((in_array($cat->cat_ID , $categorieslist)))
296
+ $show_widget = false;
297
+ }
298
+ }
299
+
300
+ if (($showcategory == "allow")) // Allow list -> false is the default -> enable if found
301
+ foreach((get_the_category()) as $cat)
302
+ { if ((in_array($cat->cat_ID , $categorieslist)))
303
+ $show_widget = true;
304
+ }
305
+
306
+ if (($showcategory == "all")) // All categories -> if it's not the home -> enable
307
+ if ((is_home() != true))
308
+ $show_widget = true;
309
+
310
+ if (($showinhome == "yes")) // Home page -> If yes -> enable
311
+ if ((is_home()))
312
+ $show_widget = true;
313
+
314
+
315
+ $url_parts = parse_url(get_bloginfo('home'));
316
+
317
+ // Null parameters check
318
+ if ( ($number == '') ) $number = 1;
319
+ if ( ($sizeX == '') ) $sizeX = 190;
320
+ if ( ($sizeY == '') ) $sizeY = 190;
321
+
322
+ if ($show_widget) {
323
+
324
+ echo $before_widget . $before_title . $title . $after_title;
325
+ echo "\n".'<div class="ngg-widget">'."\n";
326
+
327
+ nggDisplayImagesWidget($thumb,$number,$sizeX,$sizeY,$mode,$imgtype,$thumbcode);
328
+
329
+ echo '</div>'."\n";
330
+ // v.095 [deleted] -> echo '<div style="clear:both;"></div>'."\n";
331
+ echo $after_widget;
332
+ }
333
+ }
334
+
335
+ /**
336
+ * @desc Output of plugin�s editform in te adminarea
337
+ * @author KeViN
338
+ */
339
+
340
+ function widget_nextgenrecentimage_control($number=1) {
341
+
342
+ $options = get_option('widget_NextGenrecentimage');
343
+
344
+ if ( !is_array($options) )
345
+ $options = array('title'=>'Recent Images', 'buttontext'=>__('NextGEN Recent Image','nggallery'));
346
+
347
+ if ( $_POST['nextgen-recentsubmit'] ) {
348
+ // Remember to sanitize and format use input appropriately.
349
+ $options = "";
350
+ $options['title'] = strip_tags(stripslashes($_POST['nextgen-recenttitle']));
351
+ $options['thumb'] = strip_tags(stripslashes($_POST['nextgen-recentthumb']));
352
+ $options['number'] = strip_tags(stripslashes($_POST['nextgen-recentnumber']));
353
+ $options['sizeX'] = strip_tags(stripslashes($_POST['nextgen-recentsizeX']));
354
+ $options['sizeY'] = strip_tags(stripslashes($_POST['nextgen-recentsizeY']));
355
+
356
+ // [0.80] [new functiions and newvariables] -> Category controll
357
+ $options['showinhome'] = strip_tags(stripslashes($_POST['nextgen-recentshowinhome']));
358
+ $options['showcategory']= strip_tags(stripslashes($_POST['nextgen-recentshowcategory']));
359
+ $options['categorylist']= strip_tags(stripslashes($_POST['nextgen-recentcategorylist']));
360
+
361
+ // [0.95] [new variable] -> (random / recent)
362
+ $options['imgtype'] = strip_tags(stripslashes($_POST['nextgen-recentimgtype']));
363
+
364
+ update_option('widget_NextGenrecentimage', $options);
365
+ }
366
+
367
+ // Be sure you format your options to be valid HTML attributes.
368
+ $title = htmlspecialchars($options['title'], ENT_QUOTES);
369
+ $thumb = htmlspecialchars($options['thumb'], ENT_QUOTES);
370
+ $number = htmlspecialchars($options['number'], ENT_QUOTES);
371
+ $sizeX = htmlspecialchars($options['sizeX'], ENT_QUOTES);
372
+ $sizeY = htmlspecialchars($options['sizeY'], ENT_QUOTES);
373
+ $mode = htmlspecialchars($options['mode'], ENT_QUOTES);
374
+
375
+ // [0.80] [new functiions and newvariables] -> Category controll
376
+ $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
377
+ $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
378
+ $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
379
+
380
+ // [0.95] [new variable] -> (random / recent)
381
+ $mode = htmlspecialchars($options['imgtype'], ENT_QUOTES);
382
+
383
+ // Here comes the form
384
+
385
+ echo'<p style="text-align:right;"><label for="nextgen-recenttitle">' . __('Title','nggallery') . ': <input style="width: 150px;" id="nextgen-recenttitle" name="nextgen-recenttitle" type="text" value="'.$title.'" /></label></p>';
386
+
387
+ // [0.95] [new function] -> Thumbnail or Normal Image?
388
+ echo '<p style="text-align:right;"><label for="nextgen-recentthumb">' . __('Display type','nggallery').':';
389
+ echo ' <select name="nextgen-recentthumb" size="1">';
390
+ echo ' <option id="1" ';if (($thumb == "true")) echo 'selected="selected"'; echo ' value="true">' . __('Thumbnail','nggallery') . '</option>';
391
+ echo ' <option id="2" ';if (($thumb == "false")) echo 'selected="selected"'; echo ' value="false">' . __('Orginal','nggallery') . '</option>';
392
+ echo ' </select></label></p>';
393
+
394
+ echo '<p style="text-align:right;"><label for="nextgen-recentnumber">' . __('Number of pics','nggallery').':';
395
+ echo ' <select name="nextgen-recentnumber" size="1">';
396
+ echo ' <option id="1" ';if (($number == 1)) echo 'selected="selected"'; echo ' value="1">1</option>';
397
+ echo ' <option id="2" ';if (($number == 2)) echo 'selected="selected"'; echo ' value="2">2</option>';
398
+ echo ' <option id="3" ';if (($number == 3)) echo 'selected="selected"'; echo ' value="3">3</option>';
399
+ echo ' <option id="4" ';if (($number == 4)) echo 'selected="selected"'; echo ' value="4">4</option>';
400
+ echo ' <option id="6" ';if (($number == 6)) echo 'selected="selected"'; echo ' value="6">6</option>';
401
+ echo ' <option id="8" ';if (($number == 8)) echo 'selected="selected"'; echo ' value="8">8</option>';
402
+ echo ' <option id="10" ';if (($number == 10)) echo 'selected="selected"'; echo ' value="10">10</option>';
403
+ echo ' </select></label></p>';
404
+
405
+ echo '<p style="text-align:right;"><label for="nextgen-recentsizeX">' . __('Width (px)','nggallery') . ': <input style="width: 50px;" id="nextgen-recentsizeX" name="nextgen-recentsizeX" type="text" value="'.$sizeX.'" /></label></p>';
406
+
407
+ echo '<p style="text-align:right;"><label for="nextgen-recentsizeY">' . __('Height (px)','nggallery') . ': <input style="width: 50px;" id="nextgen-recentsizeY" name="nextgen-recentsizeY" type="text" value="'.$sizeY.'" /></label></p>';
408
+
409
+ echo '<p style="text-align:right;"><label for="nextgen-recentnumber">' . __('Mode','nggallery').':';
410
+ echo ' <select name="nextgen-recentmode" size="1">';
411
+ echo ' <option id="none" ';if (($mode == "")) echo 'selected="selected"'; echo ' value="">'. __('none','nggallery').'</option>';
412
+ echo ' <option id="web20" ';if (($mode == "web20")) echo 'selected="selected"'; echo ' value="web20">'. __('web2.0','nggallery').'</option>';
413
+ echo ' </select></label></p>';
414
+
415
+ // [0.80] [new variables] -> category control
416
+ echo '<p style="text-align:right;"><label for="nextgen-recentshowinhome">' . __('Show in the main page','nggallery').':';
417
+ echo ' <select name="nextgen-recentshowinhome" size="1">';
418
+ echo ' <option id="1" ';if ($showinhome == "yes") echo 'selected="selected"'; echo ' value="yes" >'. __('yes','nggallery').'</option>';
419
+ echo ' <option id="2" ';if ($showinhome == "no") echo 'selected="selected"'; echo ' value="no" >'. __('no','nggallery').'</option>';
420
+ echo ' </select></label></p>';
421
+
422
+ echo '<p style="text-align:right;"><label for="nextgen-recentshowcategory">' . __('Show in','nggallery').':';
423
+ echo ' <select name="nextgen-recentshowcategory" size="1">';
424
+ echo ' <option id="1" ';if (($showcategory == "all")) echo 'selected="selected"'; echo ' value="all" >'. __('All categories','nggallery').'</option>';
425
+ echo ' <option id="2" ';if (($showcategory == "denied")) echo 'selected="selected"'; echo ' value="denied" >'. __('Only which are not listed','nggallery').'</option>';
426
+ echo ' <option id="3" ';if (($showcategory == "allow")) echo 'selected="selected"'; echo ' value="allow" >'. __('Only which are listed','nggallery').'</option>';
427
+ echo ' </select></label></p>';
428
+
429
+ echo '<p style="text-align:right;"><label for="nextgen-recentcategorylist">' . __('Categories (id (use , to seperate)','nggallery') . ': <input style="width: 150px;" id="nextgen-recentcategorylist" name="nextgen-recentcategorylist" type="text" value="'.$categorylist.'" /></label></p>';
430
+
431
+ echo '<input type="hidden" id="nextgen-recentsubmit" name="nextgen-recentsubmit" value="1" />';
432
+ }
433
+
434
+ // This registers our widget so it appears with the other available
435
+ // widgets and can be dragged and dropped into any active sidebars.
436
+ register_sidebar_widget(array('NextGEN Recent Image', 'widgets'), 'widget_nextgenrecentimage');
437
+ register_widget_control(array('NextGEN Recent Image', 'widgets'), 'widget_nextgenrecentimage_control', 300, 400);
438
+ }
439
+
440
+
441
+ /* */
442
+
443
+ /**********************************************************/
444
+ /* Random widget
445
+ /**********************************************************/
446
+ function widget_ngg_randomimage() {
447
+
448
+ // Check for the required plugin functions. This will prevent fatal
449
+ // errors occurring when you deactivate the dynamic-sidebar plugin.
450
+ if ( !function_exists('register_sidebar_widget') )
451
+ return;
452
+
453
+ // This is the function that outputs our little widget...
454
+ function widget_nextgenimage($args) {
455
+
456
+ // $args is an array of strings that help widgets to conform to
457
+ // the active theme: before_widget, before_title, after_widget,
458
+ // and after_title are the array keys.
459
+ extract($args);
460
+
461
+ // Each widget can store its own options. We keep strings here.
462
+ $options = get_option('widget_NextGenimage');
463
+
464
+ $title = $options['title'];
465
+ $thumb = $options['thumb'];
466
+ $number = $options['number'];
467
+ $sizeX = $options['sizeX'];
468
+ $sizeY = $options['sizeY'];
469
+ $mode = $options['mode'];
470
+
471
+ $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
472
+ $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
473
+ $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
474
+
475
+ // [0.95] -> [add function -> imagetype (imgtype) -> random or recent
476
+ $imgtype = "random"; //$options['imgtype'];
477
+
478
+ //origy ngg options
479
+ $ngg_options = get_option('ngg_options');
480
+
481
+ // get the effect code
482
+ if ($ngg_options[thumbEffect] != "none") $thumbcode = stripslashes($ngg_options[thumbCode]);
483
+ if ($ngg_options[thumbEffect] == "highslide") $thumbcode = str_replace("%GALLERY_NAME%", "'sidebar'", $thumbcode);
484
+ else $thumbcode = str_replace("%GALLERY_NAME%", "sidebar", $thumbcode);
485
+
486
+
487
+ $show_widget = false; // checking display status (category or home)
488
+ $categorieslist = getCSVValues($categorylist,','); // Make array for checking the categories
489
+
490
+ if (($showcategory == "denied")) { // Denied list -> enable everywhere and make false if found!
491
+ $show_widget = true;
492
+ foreach((get_the_category()) as $cat)
493
+ { if ((in_array($cat->cat_ID , $categorieslist)))
494
+ $show_widget = false;
495
+ }
496
+ }
497
+
498
+ if (($showcategory == "allow")) // Allow list -> false is the default -> enable if found
499
+ foreach((get_the_category()) as $cat)
500
+ { if ((in_array($cat->cat_ID , $categorieslist)))
501
+ $show_widget = true;
502
+ }
503
+
504
+ if (($showcategory == "all")) // All categories -> if it's not the home -> enable
505
+ if ((is_home() != true))
506
+ $show_widget = true;
507
+
508
+ if (($showinhome == "yes")) // Home page -> If yes -> enable
509
+ if ((is_home()))
510
+ $show_widget = true;
511
+
512
+
513
+ $url_parts = parse_url(get_bloginfo('home'));
514
+
515
+ // Null parameters check
516
+ if ( ($number == '') ) $number = 1;
517
+ if ( ($sizeX == '') ) $sizeX = 190;
518
+ if ( ($sizeY == '') ) $sizeY = 190;
519
+
520
+ if ($show_widget) {
521
+
522
+ echo $before_widget . $before_title . $title . $after_title;
523
+ echo "\n".'<div class="ngg-widget">'."\n";
524
+
525
+ nggDisplayImagesWidget($thumb,$number,$sizeX,$sizeY,$mode,$imgtype,$thumbcode);
526
+
527
+ echo '</div>'."\n";
528
+ // v.095 [deleted] -> echo '<div style="clear:both;"></div>'."\n";
529
+ echo $after_widget;
530
+ }
531
+ }
532
+
533
+ /**
534
+ * @desc Output of plugin�s editform in te adminarea
535
+ * @author KeViN
536
+ */
537
+
538
+ function widget_nextgenimage_control($number=1) {
539
+
540
+ $options = get_option('widget_NextGenimage');
541
+
542
+ if ( !is_array($options) )
543
+ $options = array('title'=>'', 'buttontext'=>__('NextGEN Random Image','nggallery'));
544
+
545
+ if ( $_POST['nextgen-submit'] ) {
546
+ // Remember to sanitize and format use input appropriately.
547
+ $options = "";
548
+ $options['title'] = strip_tags(stripslashes($_POST['nextgen-title']));
549
+ $options['thumb'] = strip_tags(stripslashes($_POST['nextgen-thumb']));
550
+ $options['number'] = strip_tags(stripslashes($_POST['nextgen-number']));
551
+ $options['sizeX'] = strip_tags(stripslashes($_POST['nextgen-sizeX']));
552
+ $options['sizeY'] = strip_tags(stripslashes($_POST['nextgen-sizeY']));
553
+ $options['mode'] = strip_tags(stripslashes($_POST['nextgen-mode']));
554
+
555
+ // [0.80] [new functiions and newvariables] -> Category controll
556
+ $options['showinhome'] = strip_tags(stripslashes($_POST['nextgen-showinhome']));
557
+ $options['showcategory']= strip_tags(stripslashes($_POST['nextgen-showcategory']));
558
+ $options['categorylist']= strip_tags(stripslashes($_POST['nextgen-categorylist']));
559
+
560
+ // [0.95] [new variable] -> (random / recent)
561
+ $options['imgtype'] = strip_tags(stripslashes($_POST['nextgen-imgtype']));
562
+
563
+ update_option('widget_NextGenimage', $options);
564
+ }
565
+
566
+ // Be sure you format your options to be valid HTML attributes.
567
+ $title = htmlspecialchars($options['title'], ENT_QUOTES);
568
+ $thumb = htmlspecialchars($options['thumb'], ENT_QUOTES);
569
+ $number = htmlspecialchars($options['number'], ENT_QUOTES);
570
+ $sizeX = htmlspecialchars($options['sizeX'], ENT_QUOTES);
571
+ $sizeY = htmlspecialchars($options['sizeY'], ENT_QUOTES);
572
+ //$mode = htmlspecialchars($options['mode'], ENT_QUOTES);
573
+
574
+ // [0.80] [new functiions and newvariables] -> Category controll
575
+ $showinhome = htmlspecialchars($options['showinhome'], ENT_QUOTES);
576
+ $showcategory = htmlspecialchars($options['showcategory'], ENT_QUOTES);
577
+ $categorylist = htmlspecialchars($options['categorylist'], ENT_QUOTES);
578
+
579
+ // [0.95] [new variable] -> (random / recent)
580
+ $mode = htmlspecialchars($options['imgtype'], ENT_QUOTES);
581
+
582
+ // Here comes the form
583
+
584
+ echo'<p style="text-align:right;"><label for="nextgen-title">' . __('Title','nggallery') . ': <input style="width: 150px;" id="nextgen-title" name="nextgen-title" type="text" value="'.$title.'" /></label></p>';
585
+
586
+ // [0.95] [new function] -> Thumbnail or Normal Image?
587
+ echo '<p style="text-align:right;"><label for="nextgen-thumb">' . __('Display type','nggallery').':';
588
+ echo ' <select name="nextgen-thumb" size="1">';
589
+ echo ' <option id="1" ';if (($thumb == "true")) echo 'selected="selected"'; echo ' value="true">' . __('Thumbnail','nggallery') . '</option>';
590
+ echo ' <option id="2" ';if (($thumb == "false")) echo 'selected="selected"'; echo ' value="false">' . __('Orginal','nggallery') . '</option>';
591
+ echo ' </select></label></p>';
592
+
593
+
594
+ echo '<p style="text-align:right;"><label for="nextgen-number">' . __('Number of pics','nggallery').':';
595
+ echo ' <select name="nextgen-number" size="1">';
596
+ echo ' <option id="1" ';if (($number == 1)) echo 'selected="selected"'; echo ' value="1">1</option>';
597
+ echo ' <option id="2" ';if (($number == 2)) echo 'selected="selected"'; echo ' value="2">2</option>';
598
+ echo ' <option id="3" ';if (($number == 3)) echo 'selected="selected"'; echo ' value="3">3</option>';
599
+ echo ' <option id="4" ';if (($number == 4)) echo 'selected="selected"'; echo ' value="4">4</option>';
600
+ echo ' <option id="6" ';if (($number == 6)) echo 'selected="selected"'; echo ' value="6">6</option>';
601
+ echo ' <option id="8" ';if (($number == 8)) echo 'selected="selected"'; echo ' value="8">8</option>';
602
+ echo ' <option id="10" ';if (($number == 10)) echo 'selected="selected"'; echo ' value="10">10</option>';
603
+ echo ' </select></label></p>';
604
+
605
+ echo '<p style="text-align:right;"><label for="nextgen-sizeX">' . __('Width (px)','nggallery') . ': <input style="width: 50px;" id="nextgen-sizeX" name="nextgen-sizeX" type="text" value="'.$sizeX.'" /></label></p>';
606
+
607
+ echo '<p style="text-align:right;"><label for="nextgen-sizeY">' . __('Height (px)','nggallery') . ': <input style="width: 50px;" id="nextgen-sizeY" name="nextgen-sizeY" type="text" value="'.$sizeY.'" /></label></p>';
608
+
609
+ echo '<p style="text-align:right;"><label for="nextgen-number">' . __('Mode','nggallery').':';
610
+ echo ' <select name="nextgen-mode" size="1">';
611
+ echo ' <option id="none" ';if (($mode == "")) echo 'selected="selected"'; echo ' value="">'. __('none','nggallery').'</option>';
612
+ echo ' <option id="web20" ';if (($mode == "web20")) echo 'selected="selected"'; echo ' value="web20">'. __('web2.0','nggallery').'</option>';
613
+ echo ' </select></label></p>';
614
+
615
+ // [0.80] [new variables] -> category control
616
+ echo '<p style="text-align:right;"><label for="nextgen-showinhome">' . __('Show in the main page','nggallery').':';
617
+ echo ' <select name="nextgen-showinhome" size="1">';
618
+ echo ' <option id="1" ';if ($showinhome == "yes") echo 'selected="selected"'; echo ' value="yes" >'. __('yes','nggallery').'</option>';
619
+ echo ' <option id="2" ';if ($showinhome == "no") echo 'selected="selected"'; echo ' value="no" >'. __('no','nggallery').'</option>';
620
+ echo ' </select></label></p>';
621
+
622
+ echo '<p style="text-align:right;"><label for="nextgen-showcategory">' . __('Show in','nggallery').':';
623
+ echo ' <select name="nextgen-showcategory" size="1">';
624
+ echo ' <option id="1" ';if (($showcategory == "all")) echo 'selected="selected"'; echo ' value="all" >'. __('All categories','nggallery').'</option>';
625
+ echo ' <option id="2" ';if (($showcategory == "denied")) echo 'selected="selected"'; echo ' value="denied" >'. __('Only which are not listed','nggallery').'</option>';
626
+ echo ' <option id="3" ';if (($showcategory == "allow")) echo 'selected="selected"'; echo ' value="allow" >'. __('Only which are listed','nggallery').'</option>';
627
+ echo ' </select></label></p>';
628
+
629
+ echo '<p style="text-align:right;"><label for="nextgen-categorylist">' . __('Categories (id (use , to seperate)','nggallery') . ': <input style="width: 150px;" id="nextgen-categorylist" name="nextgen-categorylist" type="text" value="'.$categorylist.'" /></label></p>';
630
+
631
+ echo '<input type="hidden" id="nextgen-submit" name="nextgen-submit" value="1" />';
632
+ }
633
+
634
+ // This registers our widget so it appears with the other available
635
+ // widgets and can be dragged and dropped into any active sidebars.
636
+ register_sidebar_widget(array('NextGEN Random Image', 'widgets'), 'widget_nextgenimage');
637
+ register_widget_control(array('NextGEN Random Image', 'widgets'), 'widget_nextgenimage_control', 300, 400);
638
+ }
639
+
640
+ // Run our code later in case this loads prior to any required plugins.
641
+ add_action('widgets_init', 'widget_ngg_randomimage');
642
+ add_action('widgets_init', 'widget_ngg_slideshow');
643
+ add_action('widgets_init', 'widget_ngg_recentimage');
644
  ?>
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
  === NextGEN Gallery ===
2
  Contributors: Alex Rabe
3
  Donate link: http://alexrabe.boelinger.com/?page_id=80
4
- Tags: flash, slideshow, images, gallery, media, admin, post
5
  Requires at least: 2.1.3
6
  Tested up to: 2.2
7
- Stable tag: 0.43
8
 
9
- NextGEN Gallery is a Image Gallery plugin for WordPress.
10
 
11
  == Description ==
12
 
@@ -22,7 +22,7 @@ Features:
22
  * Multiple CSS Stylesheet : Use a nice shadow effect for your thumbnails with your own CSS file
23
  * Slideshow : Full integrated flash slideshow
24
  * TinyMCE : Button integration for easy adding the gallery tags
25
- * Sidebar Widget : Show a random picture at your sidebar
26
 
27
 
28
  PLEASE NOTE !! This gallery plugin is still in development, it can be contain many bugs !
1
  === NextGEN Gallery ===
2
  Contributors: Alex Rabe
3
  Donate link: http://alexrabe.boelinger.com/?page_id=80
4
+ Tags: photos, flash, slideshow, images, gallery, media, admin, post
5
  Requires at least: 2.1.3
6
  Tested up to: 2.2
7
+ Stable tag: 0.50
8
 
9
+ NextGEN Gallery is a full integrated Image Gallery plugin for WordPress.
10
 
11
  == Description ==
12
 
22
  * Multiple CSS Stylesheet : Use a nice shadow effect for your thumbnails with your own CSS file
23
  * Slideshow : Full integrated flash slideshow
24
  * TinyMCE : Button integration for easy adding the gallery tags
25
+ * Sidebar Widget : Show a slideshow, random or recent picture at your sidebar
26
 
27
 
28
  PLEASE NOTE !! This gallery plugin is still in development, it can be contain many bugs !
thickbox/thickbox-pack.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Thickbox 3 - One Box To Rule Them All.
3
+ * By Cody Lindley (http://www.codylindley.com)
4
+ * Copyright (c) 2007 cody lindley
5
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
6
+ */
7
+
8
+ //Version 3.0.1 : alex.rabe : jQuery no colision mode, loading image
9
+
10
+ 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}('(8($){$(9).2k(8(){1d(\'a.14, 2l.14, 2m.14\');1e=1f 1g();1e.M=2n});8 1d(b){$(b).o(8(){6 t=N.O||N.1B||I;6 a=N.q||N.1C;6 g=N.1D||P;15(t,a,g);N.2o();J P})}8 15(d,f,g){2p{3(1h 9.r.K.1E==="1i"){$("r","L").p({z:"1F%",u:"1F%"});$("L").p("1G","2q");3(9.1H("1j")===I){$("r").A("<16 5=\'1j\'></16><4 5=\'E\'></4><4 5=\'7\'></4>");$("#E").o(B)}}n{3(9.1H("E")===I){$("r").A("<4 5=\'E\'></4><4 5=\'7\'>");$("#E").o(B)}}3(d===I){d=""}$("r").A("<4 5=\'F\'><1I M=\'"+1e.M+"\' /></4>");$(\'#F\').2r();6 h;3(f.W("?")!==-1){h=f.2s(0,f.W("?"))}n{h=f}6 i=/\\.1J|\\.1K|\\.1L|\\.1M|\\.1N/g;6 j=h.1O().1P(i);3(j==\'.1J\'||j==\'.1K\'||j==\'.1L\'||j==\'.1M\'||j==\'.1N\'){1k="";1l="";X="";1m="";1n="";Q="";1o="";1p=P;3(g){C=$("a[@1D="+g+"]").2t();1Q(v=0;((v<C.18)&&(Q===""));v++){6 k=C[v].q.1O().1P(i);3(!(C[v].q==f)){3(1p){1m=C[v].O;1n=C[v].q;Q="<19 5=\'1R\'>&1a;&1a;<a q=\'#\'>2u &2v;</a></19>"}n{1k=C[v].O;1l=C[v].q;X="<19 5=\'1S\'>&1a;&1a;<a q=\'#\'>&2w; 2x</a></19>"}}n{1p=1T;1o="1g "+(v+1)+" 2y "+(C.18)}}}R=1f 1g();R.1q=8(){R.1q=I;6 a=1U();6 x=a[0]-1V;6 y=a[1]-1V;6 b=R.u;6 c=R.z;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}Y=b+30;1b=c+2z;$("#7").A("<a q=\'\' 5=\'1W\' O=\'1r\'><1I 5=\'2A\' M=\'"+f+"\' u=\'"+b+"\' z=\'"+c+"\' 1C=\'"+d+"\'/></a>"+"<4 5=\'2B\'>"+d+"<4 5=\'2C\'>"+1o+X+Q+"</4></4><4 5=\'2D\'><a q=\'#\' 5=\'S\' O=\'1r\'>1s</a> 1t 1u 1v</4>");$("#S").o(B);3(!(X==="")){8 Z(){3($(9).T("o",Z)){$(9).T("o",Z)}$("#7").D();$("r").A("<4 5=\'7\'></4>");15(1k,1l,g);J P}$("#1S").o(Z)}3(!(Q==="")){8 1w(){$("#7").D();$("r").A("<4 5=\'7\'></4>");15(1m,1n,g);J P}$("#1R").o(1w)}9.1c=8(e){3(e==I){G=1X.1x}n{G=e.1Y}3(G==27){B()}n 3(G==2E){3(!(Q=="")){9.1c="";1w()}}n 3(G==2F){3(!(X=="")){9.1c="";Z()}}};11();$("#F").D();$("#1W").o(B);$("#7").p({U:"V"})};R.M=f}n{6 l=f.1Z(/^[^\\?]+\\??/,\'\');6 m=20(l);Y=(m[\'u\']*1)+30||2G;1b=(m[\'z\']*1)+2H||2I;12=Y-30;13=1b-2J;3(f.W(\'21\')!=-1){22=f.1y(\'2K\');$("#7").A("<4 5=\'23\'><4 5=\'1z\'>"+d+"</4><4 5=\'24\'><a q=\'#\' 5=\'S\' O=\'1r\'>1s</a> 1t 1u 1v</4></4><16 2L=\'0\' 2M=\'0\' M=\'"+22[0]+"\' 5=\'1A\' 1B=\'1A\' K=\'u:"+(12+29)+"s;z:"+(13+17)+"s;\' 1q=\'25()\'> </16>")}n{3($("#7").p("U")!="V"){3(m[\'26\']!="1T"){$("#7").A("<4 5=\'23\'><4 5=\'1z\'>"+d+"</4><4 5=\'24\'><a q=\'#\' 5=\'S\'>1s</a> 1t 1u 1v</4></4><4 5=\'H\' K=\'u:"+12+"s;z:"+13+"s\'></4>")}n{$("#E").T();$("#7").A("<4 5=\'H\' 2N=\'2O\' K=\'u:"+12+"s;z:"+13+"s;\'></4>")}}n{$("#H")[0].K.u=12+"s";$("#H")[0].K.z=13+"s";$("#H")[0].2P=0;$("#1z").L(d)}}$("#S").o(B);3(f.W(\'2Q\')!=-1){$("#H").L($(\'#\'+m[\'2R\']).L());11();$("#F").D();$("#7").p({U:"V"})}n 3(f.W(\'21\')!=-1){11();3(2S[\'1A\']===1i){$("#F").D();$("#7").p({U:"V"});$(9).2T(8(e){6 a=e.1x;3(a==27){B()}})}}n{$("#H").2U(f+="&2V="+(1f 2W().2X()),8(){11();$("#F").D();1d("#H a.14");$("#7").p({U:"V"})})}}3(!m[\'26\']){9.2Y=8(e){3(e==I){G=1X.1x}n{G=e.1Y}3(G==27){B()}}}}2Z(e){}}8 25(){$("#F").D();$("#7").p({U:"V"})}8 B(){$("#31").T("o");$("#E").T("o");$("#S").T("o");$("#7").32("33",8(){$(\'#7,#E,#1j\').D()});$("#F").D();3(1h 9.r.K.1E=="1i"){$("r","L").p({z:"28",u:"28"});$("L").p("1G","")}9.1c="";J P}8 11(){$("#7").p({34:\'-\'+2a((Y/2),10)+\'s\',u:Y+\'s\'});3(!(2b.35.36&&1h 37==\'8\')){$("#7").p({38:\'-\'+2a((1b/2),10)+\'s\'})}}8 20(a){6 b={};3(!a){J b}6 c=a.1y(/[;&]/);1Q(6 i=0;i<c.18;i++){6 d=c[i].1y(\'=\');3(!d||d.18!=2){39}6 e=2c(d[0]);6 f=2c(d[1]);f=f.1Z(/\\+/g,\' \');b[e]=f}J b}8 1U(){6 a=9.3a;6 w=2d.2e||2f.2e||(a&&a.2g)||9.r.2g;6 h=2d.2h||2f.2h||(a&&a.2i)||9.r.2i;2j=[w,h];J 2j}})(2b);',62,197,'|||if|div|id|var|TB_window|function|document||||||||||||||else|click|css|href|body|px||width|TB_Counter||||height|append|tb_remove|TB_TempArray|remove|TB_overlay|TB_load|keycode|TB_ajaxContent|null|return|style|html|src|this|title|false|TB_NextHTML|imgPreloader|TB_closeWindowButton|unbind|display|block|indexOf|TB_PrevHTML|TB_WIDTH|goPrev||tb_position|ajaxContentW|ajaxContentH|thickbox|tb_show|iframe||length|span|nbsp|TB_HEIGHT|onkeydown|tb_init|imgLoader|new|Image|typeof|undefined|TB_HideSelect|TB_PrevCaption|TB_PrevURL|TB_NextCaption|TB_NextURL|TB_imageCount|TB_FoundURL|onload|Close|close|or|Esc|Key|goNext|keyCode|split|TB_ajaxWindowTitle|TB_iframeContent|name|alt|rel|maxHeight|100|overflow|getElementById|img|jpg|jpeg|png|gif|bmp|toLowerCase|match|for|TB_next|TB_prev|true|tb_getPageSize|150|TB_ImageOff|event|which|replace|tb_parseQuery|TB_iframe|urlNoQuery|TB_title|TB_closeAjaxWindow|tb_showIframe|modal||auto||parseInt|jQuery|unescape|window|innerWidth|self|clientWidth|innerHeight|clientHeight|arrayPageSize|ready|area|input|tb_pathToImage|blur|try|hidden|show|substr|get|Next|gt|lt|Prev|of|60|TB_Image|TB_caption|TB_secondLine|TB_closeWindow|190|188|630|40|440|45|TB_|frameborder|hspace|class|TB_modal|scrollTop|TB_inline|inlineId|frames|keyup|load|random|Date|getTime|onkeyup|catch||TB_imageOff|fadeOut|fast|marginLeft|browser|msie|XMLHttpRequest|marginTop|continue|documentElement'.split('|'),0,{}))
thickbox/thickbox.js CHANGED
@@ -5,4 +5,302 @@
5
  * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
6
  */
7
 
8
- 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}('$(9).2t(8(){1o(\'a.15, 3a.15, 33.15\');1r=1s 1x();1r.P=2p});8 1o(b){$(b).o(8(){6 t=T.R||T.1U||I;6 a=T.q||T.1P;6 g=T.1F||O;1c(t,a,g);T.2l();L O})}8 1c(d,f,g){38{3(1y 9.r.J.20==="1t"){$("r","K").p({C:"1V%",v:"1V%"});$("K").p("2i","2A");3(9.1Z("1A")===I){$("r").z("<18 5=\'1A\'></18><4 5=\'F\'></4><4 5=\'7\'></4>");$("#F").o(A)}}n{3(9.1Z("F")===I){$("r").z("<4 5=\'F\'></4><4 5=\'7\'>");$("#F").o(A)}}3(d===I){d=""}$("r").z("<4 5=\'G\'><1C P=\'"+1r.P+"\' /></4>");$(\'#G\').2k();6 h;3(f.W("?")!==-1){h=f.2j(0,f.W("?"))}n{h=f}6 i=/\\.2f|\\.2d|\\.2b|\\.28|\\.26/g;6 j=h.25().24(i);3(j==\'.2f\'||j==\'.2d\'||j==\'.2b\'||j==\'.28\'||j==\'.26\'){1h="";1v="";Y="";1u="";1m="";Q="";1l="";1q=O;3(g){B=$("a[@1F="+g+"]").2Q();1T(u=0;((u<B.1b)&&(Q===""));u++){6 k=B[u].q.25().24(i);3(!(B[u].q==f)){3(1q){1u=B[u].R;1m=B[u].q;Q="<1a 5=\'1W\'>&19;&19;<a q=\'#\'>2C &2z;</a></1a>"}n{1h=B[u].R;1v=B[u].q;Y="<1a 5=\'21\'>&19;&19;<a q=\'#\'>&2w; 2u</a></1a>"}}n{1q=1O;1l="1x "+(u+1)+" 2s "+(B.1b)}}}V=1s 1x();V.1j=8(){V.1j=I;6 a=1I();6 x=a[0]-1H;6 y=a[1]-1H;6 b=V.v;6 c=V.C;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}Z=b+30;16=c+2r;$("#7").z("<a q=\'\' 5=\'1E\' R=\'1i\'><1C 5=\'2q\' P=\'"+f+"\' v=\'"+b+"\' C=\'"+c+"\' 1P=\'"+d+"\'/></a>"+"<4 5=\'2o\'>"+d+"<4 5=\'2n\'>"+1l+Y+Q+"</4></4><4 5=\'2m\'><a q=\'#\' 5=\'M\' R=\'1i\'>1g</a> 1f 1e 1n</4>");$("#M").o(A);3(!(Y==="")){8 X(){3($(9).S("o",X)){$(9).S("o",X)}$("#7").D();$("r").z("<4 5=\'7\'></4>");1c(1h,1v,g);L O}$("#21").o(X)}3(!(Q==="")){8 1d(){$("#7").D();$("r").z("<4 5=\'7\'></4>");1c(1u,1m,g);L O}$("#1W").o(1d)}9.14=8(e){3(e==I){E=1B.1z}n{E=e.2g}3(E==27){A()}n 3(E==39){3(!(Q=="")){9.14="";1d()}}n 3(E==37){3(!(Y=="")){9.14="";X()}}};13();$("#G").D();$("#1E").o(A);$("#7").p({N:"U"})};V.P=f}n{6 l=f.2a(/^[^\\?]+\\??/,\'\');6 m=2e(l);Z=(m[\'v\']*1)+30||36;16=(m[\'C\']*1)+35||34;12=Z-30;11=16-32;3(f.W(\'23\')!=-1){1D=f.1w(\'2Z\');$("#7").z("<4 5=\'22\'><4 5=\'1k\'>"+d+"</4><4 5=\'1G\'><a q=\'#\' 5=\'M\' R=\'1i\'>1g</a> 1f 1e 1n</4></4><18 2Y=\'0\' 2W=\'0\' P=\'"+1D[0]+"\' 5=\'1p\' 1U=\'1p\' J=\'v:"+(12+29)+"s;C:"+(11+17)+"s;\' 1j=\'1Q()\'> </18>")}n{3($("#7").p("N")!="U"){3(m[\'1X\']!="1O"){$("#7").z("<4 5=\'22\'><4 5=\'1k\'>"+d+"</4><4 5=\'1G\'><a q=\'#\' 5=\'M\'>1g</a> 1f 1e 1n</4></4><4 5=\'H\' J=\'v:"+12+"s;C:"+11+"s\'></4>")}n{$("#F").S();$("#7").z("<4 5=\'H\' 2U=\'2T\' J=\'v:"+12+"s;C:"+11+"s;\'></4>")}}n{$("#H")[0].J.v=12+"s";$("#H")[0].J.C=11+"s";$("#H")[0].2S=0;$("#1k").K(d)}}$("#M").o(A);3(f.W(\'2R\')!=-1){$("#H").K($(\'#\'+m[\'2P\']).K());13();$("#G").D();$("#7").p({N:"U"})}n 3(f.W(\'23\')!=-1){13();3(2O[\'1p\']===1t){$("#G").D();$("#7").p({N:"U"});$(9).2L(8(e){6 a=e.1z;3(a==27){A()}})}}n{$("#H").2K(f+="&2J="+(1s 2I().2H()),8(){13();$("#G").D();1o("#H a.15");$("#7").p({N:"U"})})}}3(!m[\'1X\']){9.2G=8(e){3(e==I){E=1B.1z}n{E=e.2g}3(E==27){A()}}}}2M(e){}}8 1Q(){$("#G").D();$("#7").p({N:"U"})}8 A(){$("#2N").S("o");$("#F").S("o");$("#M").S("o");$("#7").2F("2E",8(){$(\'#7,#F,#1A\').D()});$("#G").D();3(1y 9.r.J.20=="1t"){$("r","K").p({C:"1S",v:"1S"});$("K").p("2i","")}9.14="";L O}8 13(){$("#7").p({2D:\'-\'+1R((Z/2),10)+\'s\',v:Z+\'s\'});3(!(2B.2y.2V&&1y 2x==\'8\')){$("#7").p({2X:\'-\'+1R((16/2),10)+\'s\'})}}8 2e(a){6 b={};3(!a){L b}6 c=a.1w(/[;&]/);1T(6 i=0;i<c.1b;i++){6 d=c[i].1w(\'=\');3(!d||d.1b!=2){2v}6 e=1Y(d[0]);6 f=1Y(d[1]);f=f.2a(/\\+/g,\' \');b[e]=f}L b}8 1I(){6 a=9.31;6 w=1N.1M||1L.1M||(a&&a.2c)||9.r.2c;6 h=1N.1K||1L.1K||(a&&a.1J)||9.r.1J;2h=[w,h];L 2h}',62,197,'|||if|div|id|var|TB_window|function|document||||||||||||||else|click|css|href|body|px||TB_Counter|width||||append|tb_remove|TB_TempArray|height|remove|keycode|TB_overlay|TB_load|TB_ajaxContent|null|style|html|return|TB_closeWindowButton|display|false|src|TB_NextHTML|title|unbind|this|block|imgPreloader|indexOf|goPrev|TB_PrevHTML|TB_WIDTH||ajaxContentH|ajaxContentW|tb_position|onkeydown|thickbox|TB_HEIGHT||iframe|nbsp|span|length|tb_show|goNext|Esc|or|close|TB_PrevCaption|Close|onload|TB_ajaxWindowTitle|TB_imageCount|TB_NextURL|Key|tb_init|TB_iframeContent|TB_FoundURL|imgLoader|new|undefined|TB_NextCaption|TB_PrevURL|split|Image|typeof|keyCode|TB_HideSelect|event|img|urlNoQuery|TB_ImageOff|rel|TB_closeAjaxWindow|150|tb_getPageSize|clientHeight|innerHeight|self|innerWidth|window|true|alt|tb_showIframe|parseInt|auto|for|name|100|TB_next|modal|unescape|getElementById|maxHeight|TB_prev|TB_title|TB_iframe|match|toLowerCase|bmp||gif||replace|png|clientWidth|jpeg|tb_parseQuery|jpg|which|arrayPageSize|overflow|substr|show|blur|TB_closeWindow|TB_secondLine|TB_caption|tb_pathToImage|TB_Image|60|of|ready|Prev|continue|lt|XMLHttpRequest|browser|gt|hidden|jQuery|Next|marginLeft|fast|fadeOut|onkeyup|getTime|Date|random|load|keyup|catch|TB_imageOff|frames|inlineId|get|TB_inline|scrollTop|TB_modal|class|msie|hspace|marginTop|frameborder|TB_||documentElement|45|input|440|40|630|188|try|190|area'.split('|'),0,{}))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
6
  */
7
 
8
+ //Version 3.0.1 : alex.rabe : jQuery no colision mode, loading image
9
+
10
+ // var tb_pathToImage = "images/loadingAnimation.gif";
11
+
12
+ /*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
13
+
14
+ /*# AVOID COLLISIONS #*/
15
+ (function($){
16
+ /*# AVOID COLLISIONS #*/
17
+
18
+ //on page load call tb_init
19
+ $(document).ready(function(){
20
+ tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
21
+ imgLoader = new Image();// preload image
22
+ imgLoader.src = tb_pathToImage;
23
+ });
24
+
25
+ //add thickbox to href & area elements that have a class of .thickbox
26
+ function tb_init(domChunk){
27
+ $(domChunk).click(function(){
28
+ var t = this.title || this.name || null;
29
+ var a = this.href || this.alt;
30
+ var g = this.rel || false;
31
+ tb_show(t,a,g);
32
+ this.blur();
33
+ return false;
34
+ });
35
+ }
36
+
37
+ function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
38
+
39
+ try {
40
+ if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
41
+ $("body","html").css({height: "100%", width: "100%"});
42
+ $("html").css("overflow","hidden");
43
+ if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
44
+ $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
45
+ $("#TB_overlay").click(tb_remove);
46
+ }
47
+ }else{//all others
48
+ if(document.getElementById("TB_overlay") === null){
49
+ $("body").append("<div id='TB_overlay'></div><div id='TB_window'>");
50
+ $("#TB_overlay").click(tb_remove);
51
+ }
52
+ }
53
+
54
+ if(caption===null){caption="";}
55
+ $("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
56
+ $('#TB_load').show();//show loader
57
+
58
+ var baseURL;
59
+ if(url.indexOf("?")!==-1){ //ff there is a query string involved
60
+ baseURL = url.substr(0, url.indexOf("?"));
61
+ }else{
62
+ baseURL = url;
63
+ }
64
+
65
+ var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;
66
+ var urlType = baseURL.toLowerCase().match(urlString);
67
+
68
+ if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
69
+
70
+ TB_PrevCaption = "";
71
+ TB_PrevURL = "";
72
+ TB_PrevHTML = "";
73
+ TB_NextCaption = "";
74
+ TB_NextURL = "";
75
+ TB_NextHTML = "";
76
+ TB_imageCount = "";
77
+ TB_FoundURL = false;
78
+ if(imageGroup){
79
+ TB_TempArray = $("a[@rel="+imageGroup+"]").get();
80
+ for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
81
+ var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
82
+ if (!(TB_TempArray[TB_Counter].href == url)) {
83
+ if (TB_FoundURL) {
84
+ TB_NextCaption = TB_TempArray[TB_Counter].title;
85
+ TB_NextURL = TB_TempArray[TB_Counter].href;
86
+ TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
87
+ } else {
88
+ TB_PrevCaption = TB_TempArray[TB_Counter].title;
89
+ TB_PrevURL = TB_TempArray[TB_Counter].href;
90
+ TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
91
+ }
92
+ } else {
93
+ TB_FoundURL = true;
94
+ TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);
95
+ }
96
+ }
97
+ }
98
+
99
+ imgPreloader = new Image();
100
+ imgPreloader.onload = function(){
101
+ imgPreloader.onload = null;
102
+
103
+ // Resizing large images - orginal by Christian Montoya edited by me.
104
+ var pagesize = tb_getPageSize();
105
+ var x = pagesize[0] - 150;
106
+ var y = pagesize[1] - 150;
107
+ var imageWidth = imgPreloader.width;
108
+ var imageHeight = imgPreloader.height;
109
+ if (imageWidth > x) {
110
+ imageHeight = imageHeight * (x / imageWidth);
111
+ imageWidth = x;
112
+ if (imageHeight > y) {
113
+ imageWidth = imageWidth * (y / imageHeight);
114
+ imageHeight = y;
115
+ }
116
+ } else if (imageHeight > y) {
117
+ imageWidth = imageWidth * (y / imageHeight);
118
+ imageHeight = y;
119
+ if (imageWidth > x) {
120
+ imageHeight = imageHeight * (x / imageWidth);
121
+ imageWidth = x;
122
+ }
123
+ }
124
+ // End Resizing
125
+
126
+ TB_WIDTH = imageWidth + 30;
127
+ TB_HEIGHT = imageHeight + 60;
128
+ $("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>");
129
+
130
+ $("#TB_closeWindowButton").click(tb_remove);
131
+
132
+ if (!(TB_PrevHTML === "")) {
133
+ function goPrev(){
134
+ if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
135
+ $("#TB_window").remove();
136
+ $("body").append("<div id='TB_window'></div>");
137
+ tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
138
+ return false;
139
+ }
140
+ $("#TB_prev").click(goPrev);
141
+ }
142
+
143
+ if (!(TB_NextHTML === "")) {
144
+ function goNext(){
145
+ $("#TB_window").remove();
146
+ $("body").append("<div id='TB_window'></div>");
147
+ tb_show(TB_NextCaption, TB_NextURL, imageGroup);
148
+ return false;
149
+ }
150
+ $("#TB_next").click(goNext);
151
+
152
+ }
153
+
154
+ document.onkeydown = function(e){
155
+ if (e == null) { // ie
156
+ keycode = event.keyCode;
157
+ } else { // mozilla
158
+ keycode = e.which;
159
+ }
160
+ if(keycode == 27){ // close
161
+ tb_remove();
162
+ } else if(keycode == 190){ // display previous image
163
+ if(!(TB_NextHTML == "")){
164
+ document.onkeydown = "";
165
+ goNext();
166
+ }
167
+ } else if(keycode == 188){ // display next image
168
+ if(!(TB_PrevHTML == "")){
169
+ document.onkeydown = "";
170
+ goPrev();
171
+ }
172
+ }
173
+ };
174
+
175
+ tb_position();
176
+ $("#TB_load").remove();
177
+ $("#TB_ImageOff").click(tb_remove);
178
+ $("#TB_window").css({display:"block"}); //for safari using css instead of show
179
+ };
180
+
181
+ imgPreloader.src = url;
182
+ }else{//code to show html pages
183
+
184
+ var queryString = url.replace(/^[^\?]+\??/,'');
185
+ var params = tb_parseQuery( queryString );
186
+
187
+ TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
188
+ TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
189
+ ajaxContentW = TB_WIDTH - 30;
190
+ ajaxContentH = TB_HEIGHT - 45;
191
+
192
+ if(url.indexOf('TB_iframe') != -1){
193
+ urlNoQuery = url.split('TB_');
194
+ $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' onload='tb_showIframe()'> </iframe>");
195
+ }else{
196
+ if($("#TB_window").css("display") != "block"){
197
+ if(params['modal'] != "true"){
198
+ $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
199
+ }else{
200
+ $("#TB_overlay").unbind();
201
+ $("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
202
+ }
203
+ }else{
204
+ $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
205
+ $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
206
+ $("#TB_ajaxContent")[0].scrollTop = 0;
207
+ $("#TB_ajaxWindowTitle").html(caption);
208
+ }
209
+ }
210
+
211
+ $("#TB_closeWindowButton").click(tb_remove);
212
+
213
+ if(url.indexOf('TB_inline') != -1){
214
+ $("#TB_ajaxContent").html($('#' + params['inlineId']).html());
215
+ tb_position();
216
+ $("#TB_load").remove();
217
+ $("#TB_window").css({display:"block"});
218
+ }else if(url.indexOf('TB_iframe') != -1){
219
+ tb_position();
220
+ if(frames['TB_iframeContent'] === undefined){//be nice to safari
221
+ $("#TB_load").remove();
222
+ $("#TB_window").css({display:"block"});
223
+ $(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}});
224
+ }
225
+ }else{
226
+ $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
227
+ tb_position();
228
+ $("#TB_load").remove();
229
+ tb_init("#TB_ajaxContent a.thickbox");
230
+ $("#TB_window").css({display:"block"});
231
+ });
232
+ }
233
+
234
+ }
235
+
236
+ if(!params['modal']){
237
+ document.onkeyup = function(e){
238
+ if (e == null) { // ie
239
+ keycode = event.keyCode;
240
+ } else { // mozilla
241
+ keycode = e.which;
242
+ }
243
+ if(keycode == 27){ // close
244
+ tb_remove();
245
+ }
246
+ };
247
+ }
248
+
249
+ } catch(e) {
250
+ //nothing here
251
+ }
252
+ }
253
+
254
+ //helper functions below
255
+ function tb_showIframe(){
256
+ $("#TB_load").remove();
257
+ $("#TB_window").css({display:"block"});
258
+ }
259
+
260
+ function tb_remove() {
261
+ $("#TB_imageOff").unbind("click");
262
+ $("#TB_overlay").unbind("click");
263
+ $("#TB_closeWindowButton").unbind("click");
264
+ $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();});
265
+ $("#TB_load").remove();
266
+ if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
267
+ $("body","html").css({height: "auto", width: "auto"});
268
+ $("html").css("overflow","");
269
+ }
270
+ document.onkeydown = "";
271
+ return false;
272
+ }
273
+
274
+ function tb_position() {
275
+ $("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
276
+ if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
277
+ $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
278
+ }
279
+ }
280
+
281
+ function tb_parseQuery ( query ) {
282
+ var Params = {};
283
+ if ( ! query ) {return Params;}// return empty object
284
+ var Pairs = query.split(/[;&]/);
285
+ for ( var i = 0; i < Pairs.length; i++ ) {
286
+ var KeyVal = Pairs[i].split('=');
287
+ if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
288
+ var key = unescape( KeyVal[0] );
289
+ var val = unescape( KeyVal[1] );
290
+ val = val.replace(/\+/g, ' ');
291
+ Params[key] = val;
292
+ }
293
+ return Params;
294
+ }
295
+
296
+ function tb_getPageSize(){
297
+ var de = document.documentElement;
298
+ var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
299
+ var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
300
+ arrayPageSize = [w,h];
301
+ return arrayPageSize;
302
+ }
303
+
304
+ /*# AVOID COLLISIONS #*/
305
+ })(jQuery);
306
+ /*# AVOID COLLISIONS #*/